SliceAnalysisParams (@NotNull PsiElement element, SliceManager.@NotNull StoredSettingsBean storedSettingsBean, @NotNull String dialogTitle) { AnalysisScope analysisScope = new AnalysisScope(element.getContainingFile()); Module module = ModuleUtilCore.findModuleForPsiElement(element); Project myProject = element.getProject(); final SliceForwardAdditionalUi ui = new SliceForwardAdditionalUi(); ui.getMyShowDerefs().setSelected(storedSettingsBean.showDereferences); AnalysisUIOptions analysisUIOptions = new AnalysisUIOptions(); analysisUIOptions.loadState(storedSettingsBean.analysisUIOptions); List<ModelScopeItem> items = BaseAnalysisActionDialog.standardItems(myProject, analysisScope, module, element); BaseAnalysisActionDialog dialog = new BaseAnalysisActionDialog(dialogTitle, LangBundle.message("separator.analyze.scope"), myProject, items, analysisUIOptions, true) { @Override protected JComponent getAdditionalActionSettings(@NotNull Project project) { return ui.getPanel(); } }; if (!dialog.showAndGet()) { return null; } storedSettingsBean.analysisUIOptions.loadState(analysisUIOptions); storedSettingsBean.showDereferences = ui.getMyShowDerefs().isSelected(); AnalysisScope scope = dialog.getScope(analysisScope); SliceAnalysisParams params = new SliceAnalysisParams(); params.scope = scope; params.dataFlowToThis = myDataFlowToThis; params.showInstanceDereferences = ui.getMyShowDerefs().isSelected(); return params; }