Java源码示例:com.intellij.openapi.ui.DialogBuilder
示例1
private static void doShowError(String title, String description, DialogBuilder builder) {
builder.setTitle(title);
final JTextArea textArea = new JTextArea();
textArea.setEditable(false);
textArea.setText(description);
textArea.setWrapStyleWord(false);
textArea.setLineWrap(true);
final JScrollPane scrollPane = ScrollPaneFactory.createScrollPane(textArea);
scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
final JPanel panel = new JPanel(new BorderLayout(10, 0));
panel.setPreferredSize(new Dimension(600, 400));
panel.add(scrollPane, BorderLayout.CENTER);
panel.add(new JBLabel("Details:", Messages.getErrorIcon(), SwingConstants.LEFT), BorderLayout.NORTH);
builder.setCenterPanel(panel);
builder.setButtonsAlignment(SwingConstants.CENTER);
builder.addOkAction();
builder.show();
}
示例2
@Override
public void actionPerformed(@Nonnull AnActionEvent e) {
final DateFilterComponent dateComponent = new DateFilterComponent(false, DateFormatUtil.getDateFormat().getDelegate());
VcsLogDateFilter currentFilter = myFilterModel.getFilter();
if (currentFilter != null) {
if (currentFilter.getBefore() != null) {
dateComponent.setBefore(currentFilter.getBefore().getTime());
}
if (currentFilter.getAfter() != null) {
dateComponent.setAfter(currentFilter.getAfter().getTime());
}
}
DialogBuilder db = new DialogBuilder(DateFilterPopupComponent.this);
db.addOkAction();
db.setCenterPanel(dateComponent.getPanel());
db.setPreferredFocusComponent(dateComponent.getPanel());
db.setTitle("Select Period");
if (DialogWrapper.OK_EXIT_CODE == db.show()) {
long after = dateComponent.getAfter();
long before = dateComponent.getBefore();
VcsLogDateFilter filter = new VcsLogDateFilterImpl(after > 0 ? new Date(after) : null, before > 0 ? new Date(before) : null);
myFilterModel.setFilter(filter);
}
}
示例3
private static void showDialog(MergeRequestImpl data) {
DialogBuilder builder = new DialogBuilder(data.getProject());
builder.setDimensionServiceKey(data.getGroupKey());
builder.setTitle(data.getWindowTitle());
Disposable parent = Disposable.newDisposable();
builder.addDisposable(parent);
MergePanel2 mergePanel = createMergeComponent(data, builder, parent);
builder.setCenterPanel(mergePanel.getComponent());
builder.setPreferredFocusComponent(mergePanel.getPreferredFocusedComponent());
builder.setHelpId(data.getHelpId());
int result = builder.show();
MergeRequestImpl lastData = mergePanel.getMergeRequest();
if (lastData != null) {
lastData.setResult(result);
}
}
示例4
private static void configureAction(DialogBuilder builder,
DialogBuilder.CustomizableAction customizableAction,
ActionButtonPresentation presentation) {
customizableAction.setText(presentation.getName());
String actionName = presentation.getName();
final int index = actionName.indexOf('&');
final char mnemonic;
if (index >= 0 && index < actionName.length() - 1) {
mnemonic = actionName.charAt(index + 1);
actionName = actionName.substring(0, index) + actionName.substring(index + 1);
}
else {
mnemonic = 0;
}
final Action action = ((DialogBuilder.ActionDescriptor)customizableAction).getAction(builder.getDialogWrapper());
action.putValue(Action.NAME, actionName);
if (mnemonic > 0) {
action.putValue(Action.MNEMONIC_KEY, Integer.valueOf(mnemonic));
}
}
示例5
@RequiredUIAccess
@Nonnull
@Override
public AsyncResult<Void> configureTask(RunConfiguration runConfiguration, T task) {
final Artifact[] artifacts = ArtifactManager.getInstance(myProject).getArtifacts();
Set<ArtifactPointer> pointers = new THashSet<>();
for (Artifact artifact : artifacts) {
pointers.add(ArtifactPointerManager.getInstance(myProject).create(artifact));
}
pointers.addAll(task.getArtifactPointers());
ArtifactChooser chooser = new ArtifactChooser(new ArrayList<>(pointers));
chooser.markElements(task.getArtifactPointers());
chooser.setPreferredSize(new Dimension(400, 300));
DialogBuilder builder = new DialogBuilder(myProject);
builder.setTitle(CompilerBundle.message("build.artifacts.before.run.selector.title"));
builder.setDimensionServiceKey("#BuildArtifactsBeforeRunChooser");
builder.addOkAction();
builder.addCancelAction();
builder.setCenterPanel(chooser);
builder.setPreferredFocusComponent(chooser);
AsyncResult<Void> result = builder.showAsync();
result.doWhenDone(() -> task.setArtifactPointers(chooser.getMarkedElements()));
return result;
}
示例6
/**
* 初始化 message 监听更新 ok 按钮可用状态
*
* @param builder the builder
* @param dialog the dialog
* @param index the index
*/
private static void showMessage(@NotNull DialogBuilder builder,
@NotNull MoveToOtherOssSettingsDialog dialog,
int index) {
boolean isClientEnable = OssState.getStatus(index);
boolean isValidInput = StringUtils.isNotBlank(dialog.getDomain().getText())
&& !DOMAIN_DEFAULT_MESSAGE.equals(dialog.getDomain().getText());
dialog.getMessage().setText(isClientEnable ? "" : "当前 OSS 不可用");
dialog.getMessage().setForeground(isClientEnable ? JBColor.WHITE : JBColor.RED);
builder.setOkActionEnabled(isClientEnable && isValidInput);
}
示例7
public DialogWrapper createTemplateDialog(Project project) {
Template template = new Template(project);
DialogBuilder builder = new DialogBuilder(project);
builder.setTitle("Git / Hg Mercurial Commit Message Template.");
builder.setCenterPanel(template.getMainPanel());
builder.removeAllActions();
builder.addOkAction();
builder.addCancelAction();
boolean isOk = builder.show() == DialogWrapper.OK_EXIT_CODE;
if (isOk) {
TemplateFileHandler.storeFile(project, template.getTemplateContent());
}
return builder.getDialogWrapper();
}
示例8
private void testTemplate() {
CodeTemplate template = new CodeTemplate(getTemplateName(), getClassName(), getTemplate(),
getClassNumber(), getFileEncoding(), getTemplateLanguage(), getTargetLanguage());
final List<ClassEntry> classEntries = inputClassIndices()
.map(i ->
getSelectedTestInput().createInput("SomeClass" + i)
)
.collect(Collectors.toList());
Object result;
try {
result = templateEngine.evaluate(template, classEntries, classEntries.get(0));
} catch (Throwable e) {
result = e;
}
final DialogBuilder builder = new DialogBuilder(this.templateEdit);
builder.addCloseButton().setText("Close");
if(result instanceof GeneratedSource) {
builder.setTitle(((GeneratedSource) result).getClassName());
builder.setCenterPanel(
Editors.createSourceEditor(null, getTargetLanguage(), ((GeneratedSource) result).getContent(), true).getComponent());
} else {
Throwable error = (Throwable) result;
builder.setTitle("Failed!");
builder.setCenterPanel(
Editors.createSourceEditor(null, "txt",
error.getMessage() + "\n\n" + ExceptionUtil.getThrowableText(error), true)
.getComponent());
}
builder.show();
}
示例9
private void showSource(Project project, String language, String className, String content) {
final Editor editor = Editors.createSourceEditor(project, language, content, true);
try {
final DialogBuilder builder = new DialogBuilder(project);
builder.addCloseButton().setText("Close");
builder.setCenterPanel(editor.getComponent());
builder.setTitle(className);
builder.show();
} finally {
Editors.release(editor);
}
}
示例10
/**
* 创建普通对话框
* @param message
* @param okText
* @param cancelText
* @return
*/
public static boolean createDialog(String message, String okText, String cancelText) {
DialogBuilder builder = new DialogBuilder();
builder.setTitle("Dialog Message");
builder.resizable(false);
builder.setCenterPanel(new JLabel(message, Messages.getInformationIcon(), SwingConstants.CENTER));
builder.addOkAction().setText(okText);
builder.addCancelAction().setText(cancelText);
builder.setButtonsAlignment(SwingConstants.CENTER);
return builder.show() == 0;
}
示例11
@Override
public void actionPerformed(AnActionEvent event) {
final Project project = event.getProject();
Module[] modules = ModuleManager.getInstance(project).getModules();
List<Pair<Module, PsiFile>> selectModulesList = new ArrayList<Pair<Module, PsiFile>>();
for (Module module : modules) {
GradleBuildFile file = GradleBuildFile.get(module);
if (file != null && !GradleUtil.isLibrary(file)) {
selectModulesList.add(Pair.create(module, file.getPsiFile()));
}
}
if (selectModulesList.size() > 1) {
final DialogBuilder builder = new DialogBuilder();
builder.setTitle("Freeline Reporter");
builder.resizable(false);
builder.setCenterPanel(new JLabel("There are multiple application modules, Please select the exact one.",
Messages.getInformationIcon(), SwingConstants.CENTER));
builder.addOkAction().setText("Cancel");
for (final Pair<Module, PsiFile> pair : selectModulesList) {
builder.addAction(new AbstractAction(":" + pair.first.getName()) {
@Override
public void actionPerformed(ActionEvent e) {
builder.getDialogWrapper().close(DialogWrapper.CANCEL_EXIT_CODE);
report(project, pair.getSecond());
}
});
}
if (builder.show() > -1) {
//return false;
}
} else if (selectModulesList.size() == 1) {
report(project, selectModulesList.get(0).getSecond());
}
}
示例12
public CodeDialogBuilder(Project project, String title, String producedCode) {
dialogBuilder = new DialogBuilder(project);
dialogBuilder.setTitle(title);
JPanel centerPanel = new JPanel(new BorderLayout());
codeArea = prepareCodeArea(producedCode);
centerPanel.add(new JBScrollPane(codeArea), BorderLayout.CENTER);
dialogBuilder.setCenterPanel(centerPanel);
topPanel = new JPanel(new GridLayout(0, 2));
centerPanel.add(topPanel, BorderLayout.PAGE_START);
dialogBuilder.removeAllActions();
}
示例13
private void showDialog(String steps, ExtractConceptDialog form) {
final DialogBuilder builder = new DialogBuilder(editor.getProject());
form.setData(steps, getConceptFileNames(), builder);
builder.setCenterPanel(form.getRootPane());
builder.setTitle("Extract Concept");
builder.removeAllActions();
builder.show();
}
示例14
public void setData(String data, List<String> files, DialogBuilder builder) {
this.builder = builder;
this.steps.setColumns(50);
this.steps.setRows(10);
this.steps.setEditable(false);
this.steps.setText(data);
for (String file : files) this.files.addItem(file);
}
示例15
public static void show(final ExecutionException e, final String title, final Project project) {
if (e instanceof RunCanceledByUserException) {
return;
}
if (ApplicationManager.getApplication().isUnitTestMode()) {
throw new RuntimeException(e.getLocalizedMessage());
}
final String message = e.getMessage();
if (message == null || message.length() < 100) {
Messages.showErrorDialog(project, message == null ? "exception was thrown" : message, title);
return;
}
final DialogBuilder builder = new DialogBuilder(project);
builder.setTitle(title);
final JTextArea textArea = new JTextArea();
textArea.setEditable(false);
textArea.setForeground(UIUtil.getLabelForeground());
textArea.setBackground(UIUtil.getLabelBackground());
textArea.setFont(UIUtil.getLabelFont());
textArea.setText(message);
textArea.setWrapStyleWord(false);
textArea.setLineWrap(true);
final JScrollPane scrollPane = ScrollPaneFactory.createScrollPane(textArea);
scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
final JPanel panel = new JPanel(new BorderLayout(10, 0));
panel.setPreferredSize(new Dimension(500, 200));
panel.add(scrollPane, BorderLayout.CENTER);
panel.add(new JLabel(Messages.getErrorIcon()), BorderLayout.WEST);
builder.setCenterPanel(panel);
builder.setButtonsAlignment(SwingConstants.CENTER);
builder.addOkAction();
builder.show();
}
示例16
public MergePanel2(DialogBuilder builder, @Nonnull Disposable parent) {
ArrayList<EditorPlace> editorPlaces = new ArrayList<EditorPlace>();
EditorPlace.EditorListener placeListener = new EditorPlace.EditorListener() {
@Override
public void onEditorCreated(EditorPlace place) {
if (myDuringCreation) return;
disposeMergeList();
myDuringCreation = true;
try {
tryInitView();
}
finally {
myDuringCreation = false;
}
}
@Override
public void onEditorReleased(Editor releasedEditor) {
LOG.assertTrue(!myDuringCreation);
disposeMergeList();
}
};
for (int i = 0; i < EDITORS_COUNT; i++) {
EditorPlace editorPlace = new EditorPlace(new DiffEditorState(i), indexToColumn(i), this);
Disposer.register(parent, editorPlace);
editorPlaces.add(editorPlace);
editorPlace.addListener(placeListener);
myEditorsPanels[i] = new LabeledComponent();
myEditorsPanels[i].setLabelLocation(BorderLayout.NORTH);
myEditorsPanels[i].setComponent(editorPlace);
}
FontSizeSynchronizer.attachTo(editorPlaces);
myPanel = new DiffPanelOuterComponent(TextDiffType.MERGE_TYPES, createToolbar());
myPanel.insertDiffComponent(new ThreePanels(myEditorsPanels, myDividers), new MyScrollingPanel());
myProvider = new MyDataProvider();
myPanel.setDataProvider(myProvider);
myBuilder = builder;
}
示例17
public void setActions(final DialogBuilder builder, MergePanel2 mergePanel, final Convertor<DialogWrapper, Boolean> preOkHook) {
builder.removeAllActions(); // otherwise dialog will get default actions (OK, Cancel)
if (myOkButtonPresentation != null) {
if (builder.getOkAction() == null) {
builder.addOkAction();
}
configureAction(builder, builder.getOkAction(), myOkButtonPresentation);
builder.setOkOperation(new Runnable() {
@Override
public void run() {
if (preOkHook != null && !preOkHook.convert(builder.getDialogWrapper())) return;
myOkButtonPresentation.run(builder.getDialogWrapper());
}
});
}
if (myCancelButtonPresentation != null) {
if (builder.getCancelAction() == null) {
builder.addCancelAction();
}
configureAction(builder, builder.getCancelAction(), myCancelButtonPresentation);
builder.setCancelOperation(new Runnable() {
@Override
public void run() {
myCancelButtonPresentation.run(builder.getDialogWrapper());
}
});
}
if (getMergeContent() != null && mergePanel.getMergeList() != null) {
new AllResolvedListener(mergePanel, builder.getDialogWrapper());
}
}
示例18
protected void showChangesDialog(@Nonnull String title, @Nonnull List<Change> changes) {
DialogBuilder dialogBuilder = new DialogBuilder(myProject);
dialogBuilder.setTitle(title);
dialogBuilder.setActionDescriptors(new DialogBuilder.ActionDescriptor[]{new DialogBuilder.CloseDialogAction()});
final ChangesBrowser changesBrowser =
new ChangesBrowser(myProject, null, changes, null, false, true, null, ChangesBrowser.MyUseCase.COMMITTED_CHANGES, null);
changesBrowser.setChangesToDisplay(changes);
dialogBuilder.setCenterPanel(changesBrowser);
dialogBuilder.setPreferredFocusComponent(changesBrowser.getPreferredFocusedComponent());
dialogBuilder.showNotModal();
}
示例19
@RequiredUIAccess
public static void showChangesDialog(@Nonnull Project project, @Nonnull String title, @Nonnull List<Change> changes) {
DialogBuilder dialogBuilder = new DialogBuilder(project);
dialogBuilder.setTitle(title);
dialogBuilder.setActionDescriptors(new DialogBuilder.CloseDialogAction());
final ChangesBrowser changesBrowser =
new ChangesBrowser(project, null, changes, null, false, true, null, ChangesBrowser.MyUseCase.COMMITTED_CHANGES, null);
changesBrowser.setChangesToDisplay(changes);
dialogBuilder.setCenterPanel(changesBrowser);
dialogBuilder.setPreferredFocusComponent(changesBrowser.getPreferredFocusedComponent());
dialogBuilder.showNotModal();
}
示例20
public static void showParentEnvironmentDialog(@Nonnull Component parent) {
EnvVariablesTable table = new EnvVariablesTable();
table.setValues(convertToVariables(new TreeMap<>(new GeneralCommandLine().getParentEnvironment()), true));
table.getActionsPanel().setVisible(false);
DialogBuilder builder = new DialogBuilder(parent);
builder.setTitle(ExecutionBundle.message("environment.variables.system.dialog.title"));
builder.centerPanel(table.getComponent());
builder.addCloseButton();
builder.show();
}
示例21
@Override
public void actionPerformed(ActionEvent e) {
DialogBuilder dialogBuilder = new DialogBuilder((Component)e.getSource());
dialogBuilder.setTitle("Markdown Javadoc Rendering Options");
dialogBuilder.addOkAction();
dialogBuilder.addCancelAction();
RenderingOptionsForm form = new RenderingOptionsForm(options.renderingOptions);
dialogBuilder.setCenterPanel(form.getComponent());
int exitCode = dialogBuilder.show();
if (exitCode == DialogWrapper.OK_EXIT_CODE) {
options.renderingOptions = form.get();
}
}
示例22
/**
* 检查是否需要载入Freeline
*
* @param project
* @return
*/
public static boolean checkInstall(@NotNull final Project project) {
final FreelineStatus status = getFreelineStatus(project);
if (GradleUtil.isSyncInProgress(project)) {
NotificationUtils.errorMsgDialog("Waiting for sync project to complete");
return false;
}
if (status.hasInitFreeline()) {
return true;
}
if (status.getGradleBuildFiles().size() < 1) {
NotificationUtils.errorMsgDialog("It's not an Android Gradle project Currently?");
return false;
}
if (status.isExistClasspath() && status.isExistPlugin() && !status.isExistFreelineCore()) {
NotificationUtils.errorNotification("Execute task initFreeline and download freeline dependencies...");
initFreeline(project);
return false;
}
if (DialogUtil.createDialog("Detected that you did not installFreeline Freeline, Whether installFreeline Automatically?",
"Install Freeline Automatically", "Cancel")) {
Module[] modules = ModuleManager.getInstance(project).getModules();
List<Pair<Module, PsiFile>> selectModulesList = new ArrayList<Pair<Module, PsiFile>>();
for (Module module : modules) {
GradleBuildFile file = GradleBuildFile.get(module);
if (file != null && !GradleUtil.isLibrary(file)) {
selectModulesList.add(Pair.create(module, file.getPsiFile()));
}
}
// 多个app模块的情况
if (selectModulesList.size() > 1) {
final DialogBuilder builder = new DialogBuilder();
builder.setTitle("Install Freeline");
builder.resizable(false);
builder.setCenterPanel(new JLabel("There are multiple application modules, Please select the module to be installed Freeline.",
Messages.getInformationIcon(), SwingConstants.CENTER));
builder.addOkAction().setText("Cancel");
for (final Pair<Module, PsiFile> pair : selectModulesList) {
builder.addAction(new AbstractAction(":" + pair.first.getName()) {
@Override
public void actionPerformed(ActionEvent e) {
builder.getDialogWrapper().close(DialogWrapper.CANCEL_EXIT_CODE);
installFreeline(project, status, pair.getSecond());
}
});
}
if (builder.show() > -1) {
return false;
}
} else if (selectModulesList.size() == 1) {
installFreeline(project, status, selectModulesList.get(0).getSecond());
} else {
NotificationUtils.errorMsgDialog("Can not found Application Module! Please Sync Project.");
return false;
}
}
return false;
}
示例23
public static void showError(@NotNull Project project, @NotNull String title, @NotNull String description) {
doShowError(title, description, new DialogBuilder(project));
}
示例24
public static void showError(@NotNull Component owner, @NotNull String title, @NotNull String description) {
doShowError(title, description, new DialogBuilder(owner));
}
示例25
public SyncProjectDialog(@NotNull Project project) {
this.project = project;
this.directoryMapping = createDirectoryMapping(project);
final UnnamedConfigurable configurable =
P4Vcs.getInstance(project).getRootConfigurable(directoryMapping);
if (!(configurable instanceof P4VcsRootConfigurable)) {
this.setupProblem = P4Bundle.getString("checkout.config.error.invalid-project");
this.directoryField = null;
this.dialog = null;
this.configurable = null;
return;
}
this.configurable = (P4VcsRootConfigurable) configurable;
JComponent component = configurable.createComponent();
if (component == null) {
this.setupProblem = P4Bundle.getString("checkout.config.error.invalid-project");
this.directoryField = null;
this.dialog = null;
return;
}
this.setupProblem = null;
JPanel dirPanel = new JPanel(new BorderLayout());
this.directoryField = new TextFieldWithBrowseButton();
dirPanel.add(directoryField, BorderLayout.CENTER);
directoryField.setButtonEnabled(true);
directoryField.addBrowseFolderListener(
P4Bundle.getString("checkout.config.directory.chooser.title"),
P4Bundle.getString("checkout.config.directory.chooser.desc"),
project,
FileChooserDescriptorFactory.createSingleLocalFileDescriptor()
);
JLabel dirLabel = SwingUtil.createLabelFor(P4Bundle.getString("checkout.config.directory"), directoryField);
dirPanel.add(dirLabel, BorderLayout.WEST);
this.dialog = new DialogBuilder(project)
.centerPanel(component)
.title(P4Bundle.getString("checkout.config.title"));
dialog.setNorthPanel(dirPanel);
}
示例26
boolean askReloadFromDisk(VirtualFile file, Document document) {
if (myConflictAppeared != null) {
Throwable trace = myConflictAppeared;
myConflictAppeared = null;
throw new IllegalStateException("Unexpected memory-disk conflict in tests for " + file.getPath() + ", please use FileDocumentManager#reloadFromDisk or avoid VFS refresh", trace);
}
String message = UIBundle.message("file.cache.conflict.message.text", file.getPresentableUrl());
DialogBuilder builder = new DialogBuilder();
builder.setCenterPanel(new JLabel(message, Messages.getQuestionIcon(), SwingConstants.CENTER));
builder.addOkAction().setText(UIBundle.message("file.cache.conflict.load.fs.changes.button"));
builder.addCancelAction().setText(UIBundle.message("file.cache.conflict.keep.memory.changes.button"));
builder.addAction(new AbstractAction(UIBundle.message("file.cache.conflict.show.difference.button")) {
@Override
public void actionPerformed(ActionEvent e) {
Project project = ProjectLocator.getInstance().guessProjectForFile(file);
String fsContent = LoadTextUtil.loadText(file).toString();
DocumentContent content1 = DiffContentFactory.getInstance().create(project, fsContent, file.getFileType());
DocumentContent content2 = DiffContentFactory.getInstance().create(project, document, file);
String title = UIBundle.message("file.cache.conflict.for.file.dialog.title", file.getPresentableUrl());
String title1 = UIBundle.message("file.cache.conflict.diff.content.file.system.content");
String title2 = UIBundle.message("file.cache.conflict.diff.content.memory.content");
DiffRequest request = new SimpleDiffRequest(title, content1, content2, title1, title2);
request.putUserData(DiffUserDataKeys.GO_TO_SOURCE_DISABLE, true);
DialogBuilder diffBuilder = new DialogBuilder(project);
DiffRequestPanel diffPanel = DiffManager.getInstance().createRequestPanel(project, diffBuilder, diffBuilder.getWindow());
diffPanel.setRequest(request);
diffBuilder.setCenterPanel(diffPanel.getComponent());
diffBuilder.setDimensionServiceKey("FileDocumentManager.FileCacheConflict");
diffBuilder.addOkAction().setText(UIBundle.message("file.cache.conflict.save.changes.button"));
diffBuilder.addCancelAction();
diffBuilder.setTitle(title);
if (diffBuilder.show() == DialogWrapper.OK_EXIT_CODE) {
builder.getDialogWrapper().close(DialogWrapper.CANCEL_EXIT_CODE);
}
}
});
builder.setTitle(UIBundle.message("file.cache.conflict.dialog.title"));
builder.setButtonsAlignment(SwingConstants.CENTER);
builder.setHelpId("reference.dialogs.fileCacheConflict");
return builder.show() == 0;
}
示例27
static void showDiffDialog(DialogBuilder builder, Collection hints) {
builder.showModal(!hints.contains(DiffTool.HINT_SHOW_NOT_MODAL_DIALOG));
}
示例28
private static MergePanel2 createMergeComponent(DiffRequest data, DialogBuilder builder, @Nonnull Disposable parent) {
MergePanel2 mergePanel = new MergePanel2(builder, parent);
mergePanel.setDiffRequest(data);
return mergePanel;
}
示例29
public void setActions(final DialogBuilder builder, MergePanel2 mergePanel) {
setActions(builder, mergePanel, null);
}
示例30
private void editPattern(@Nullable final String item) {
final FileType type = myRecognizedFileType.getSelectedFileType();
if (type == null) return;
final String title = item == null
? FileTypesBundle.message("filetype.edit.add.pattern.title")
: FileTypesBundle.message("filetype.edit.edit.pattern.title");
final Language oldLanguage = item == null ? null : myTempTemplateDataLanguages.findAssociatedFileType(item);
final FileTypePatternDialog dialog = new FileTypePatternDialog(item, type, oldLanguage);
final DialogBuilder builder = new DialogBuilder(myPatterns);
builder.setPreferredFocusComponent(dialog.getPatternField());
builder.setCenterPanel(dialog.getMainPanel());
builder.setTitle(title);
builder.showModal(true);
if (builder.getDialogWrapper().isOK()) {
final String pattern = dialog.getPatternField().getText();
if (StringUtil.isEmpty(pattern)) return;
final FileNameMatcher matcher = FileTypeManager.parseFromString(pattern);
FileType registeredFileType = findExistingFileType(matcher);
if (registeredFileType != null && registeredFileType != type) {
if (registeredFileType.isReadOnly()) {
Messages.showMessageDialog(myPatterns.myPatternsList, FileTypesBundle
.message("filetype.edit.add.pattern.exists.error", registeredFileType.getDescription()), title,
Messages.getErrorIcon());
return;
}
else {
if (Messages.OK ==
Messages.showOkCancelDialog(myPatterns.myPatternsList, FileTypesBundle
.message("filetype.edit.add.pattern.exists.message", registeredFileType.getDescription()),
FileTypesBundle.message("filetype.edit.add.pattern.exists.title"),
FileTypesBundle.message("filetype.edit.add.pattern.reassign.button"),
CommonBundle.getCancelButtonText(), Messages.getQuestionIcon())) {
myTempPatternsTable.removeAssociation(matcher, registeredFileType);
if(oldLanguage != null) {
myTempTemplateDataLanguages.removeAssociation(matcher, oldLanguage);
}
myReassigned.put(matcher, registeredFileType);
}
else {
return;
}
}
}
if (item != null) {
final FileNameMatcher oldMatcher = FileTypeManager.parseFromString(item);
myTempPatternsTable.removeAssociation(oldMatcher, type);
if(oldLanguage != null) {
myTempTemplateDataLanguages.removeAssociation(oldMatcher, oldLanguage);
}
}
myTempPatternsTable.addAssociation(matcher, type);
myTempTemplateDataLanguages.addAssociation(matcher, dialog.getTemplateDataLanguage());
updateExtensionList();
final int index = myPatterns.getListModel().indexOf(matcher.getPresentableString());
if (index >= 0) {
ScrollingUtil.selectItem(myPatterns.myPatternsList, index);
}
IdeFocusManager.getGlobalInstance().doForceFocusWhenFocusSettlesDown(myPatterns.myPatternsList);
}
}