List of usage examples for com.intellij.openapi.ui DialogWrapper showAndGet
public boolean showAndGet()
From source file:org.exbin.deltahex.intellij.DeltaHexFileEditor.java
License:Apache License
private JPopupMenu createContextMenu() { final JPopupMenu result = new JPopupMenu(); final JMenuItem cutMenuItem = new JMenuItem("Cut"); cutMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, metaMask)); cutMenuItem.setEnabled(codeArea.hasSelection() && codeArea.isEditable()); cutMenuItem.addActionListener(new ActionListener() { @Override// www . j ava 2 s . c om public void actionPerformed(ActionEvent e) { codeArea.cut(); result.setVisible(false); } }); result.add(cutMenuItem); final JMenuItem copyMenuItem = new JMenuItem("Copy"); copyMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, metaMask)); copyMenuItem.setEnabled(codeArea.hasSelection()); copyMenuItem.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { codeArea.copy(); result.setVisible(false); } }); result.add(copyMenuItem); final JMenuItem copyAsCodeMenuItem = new JMenuItem("Copy as Code"); copyAsCodeMenuItem.setEnabled(codeArea.hasSelection()); copyAsCodeMenuItem.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { codeArea.copyAsCode(); result.setVisible(false); } }); result.add(copyAsCodeMenuItem); final JMenuItem pasteMenuItem = new JMenuItem("Paste"); pasteMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, metaMask)); pasteMenuItem.setEnabled(codeArea.canPaste() && codeArea.isEditable()); pasteMenuItem.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { codeArea.paste(); result.setVisible(false); } }); result.add(pasteMenuItem); final JMenuItem pasteFromCodeMenuItem = new JMenuItem("Paste from Code"); pasteFromCodeMenuItem.setEnabled(codeArea.canPaste() && codeArea.isEditable()); pasteFromCodeMenuItem.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { try { codeArea.pasteFromCode(); } catch (IllegalArgumentException ex) { JOptionPane.showMessageDialog(editorPanel, ex.getMessage(), "Unable to Paste Code", JOptionPane.ERROR_MESSAGE); } result.setVisible(false); } }); result.add(pasteFromCodeMenuItem); final JMenuItem deleteMenuItem = new JMenuItem("Delete"); deleteMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, 0)); deleteMenuItem.setEnabled(codeArea.hasSelection() && codeArea.isEditable()); deleteMenuItem.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { codeArea.delete(); result.setVisible(false); } }); result.add(deleteMenuItem); result.addSeparator(); final JMenuItem selectAllMenuItem = new JMenuItem("Select All"); selectAllMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A, metaMask)); selectAllMenuItem.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { codeArea.selectAll(); result.setVisible(false); } }); result.add(selectAllMenuItem); result.addSeparator(); final JMenuItem goToMenuItem = new JMenuItem("Go To..."); goToMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_G, metaMask)); goToMenuItem.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { goToHandler.getGoToLineAction().actionPerformed(null); } }); result.add(goToMenuItem); final JMenuItem findMenuItem = new JMenuItem("Find..."); findMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F, metaMask)); findMenuItem.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { showSearchPanel(false); } }); result.add(findMenuItem); final JMenuItem replaceMenuItem = new JMenuItem("Replace..."); replaceMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_H, metaMask)); replaceMenuItem.setEnabled(codeArea.isEditable()); replaceMenuItem.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { showSearchPanel(true); } }); result.add(replaceMenuItem); result.addSeparator(); final JMenuItem optionsMenuItem = new JMenuItem("Options..."); optionsMenuItem.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { final DeltaHexOptionsPanelBorder optionsPanel = new DeltaHexOptionsPanelBorder(); optionsPanel.setFromCodeArea(codeArea); optionsPanel.setShowValuesPanel(valuesPanelVisible); optionsPanel.setPreferredSize(new Dimension(640, 480)); OptionsControlPanel optionsControlPanel = new OptionsControlPanel(); JPanel dialogPanel = WindowUtils.createDialogPanel(optionsPanel, optionsControlPanel); final DialogWrapper dialog = DialogUtils.createDialog(dialogPanel, "Options"); WindowUtils.assignGlobalKeyListener(dialogPanel, optionsControlPanel.createOkCancelListener()); optionsControlPanel.setHandler(new OptionsControlHandler() { @Override public void controlActionPerformed(OptionsControlHandler.ControlActionType actionType) { if (actionType == OptionsControlHandler.ControlActionType.SAVE) { optionsPanel.store(); } if (actionType != OptionsControlHandler.ControlActionType.CANCEL) { optionsPanel.applyToCodeArea(codeArea); boolean applyShowValuesPanel = optionsPanel.isShowValuesPanel(); if (applyShowValuesPanel) { showValuesPanel(); } else { hideValuesPanel(); } applyFromCodeArea(); switchDeltaMemoryMode(optionsPanel.isDeltaMemoryMode()); codeArea.repaint(); } dialog.close(0); } }); dialog.setSize(650, 460); dialog.showAndGet(); } }); result.add(optionsMenuItem); return result; }
From source file:org.exbin.deltahex.intellij.EncodingsHandler.java
License:Apache License
private void init() { encodings = new ArrayList<>(); encodingButtonGroup = new ButtonGroup(); encodingActionListener = new ActionListener() { @Override/*from w w w.ja va 2s . co m*/ public void actionPerformed(ActionEvent e) { setSelectedEncoding(((JRadioButtonMenuItem) e.getSource()).getText()); } }; utfEncodingRadioButtonMenuItem = new JRadioButtonMenuItem(); utfEncodingRadioButtonMenuItem.setSelected(true); utfEncodingRadioButtonMenuItem.setText(UTF_ENCODING_TEXT); utfEncodingRadioButtonMenuItem.setToolTipText(UTF_ENCODING_TOOLTIP); utfEncodingActionListener = new java.awt.event.ActionListener() { @Override public void actionPerformed(java.awt.event.ActionEvent evt) { setSelectedEncoding(ENCODING_UTF8); } }; utfEncodingRadioButtonMenuItem.addActionListener(utfEncodingActionListener); encodingButtonGroup.add(utfEncodingRadioButtonMenuItem); manageEncodingsAction = new AbstractAction() { @Override public void actionPerformed(ActionEvent e) { final TextEncodingPanel textEncodingPanel = new TextEncodingPanel(); textEncodingPanel.setHandler(EncodingsHandler.this); textEncodingPanel.setEncodingList(encodings); final OptionsControlPanel controlPanel = new OptionsControlPanel(); JPanel dialogPanel = WindowUtils.createDialogPanel(textEncodingPanel, controlPanel); DialogWrapper dialog = DialogUtils.createDialog(dialogPanel, "Manage Encodings"); controlPanel.setHandler(new OptionsControlHandler() { @Override public void controlActionPerformed(OptionsControlHandler.ControlActionType actionType) { if (actionType != OptionsControlHandler.ControlActionType.CANCEL) { encodings = textEncodingPanel.getEncodingList(); rebuildEncodings(); if (actionType == OptionsControlHandler.ControlActionType.SAVE) { // Save encodings for (int i = 0; i < encodings.size(); i++) { preferences.setValue( DeltaHexFileEditor.PREFERENCES_ENCODING_PREFIX + Integer.toString(i), encodings.get(i)); } preferences.unsetValue(DeltaHexFileEditor.PREFERENCES_ENCODING_PREFIX + Integer.toString(encodings.size())); } } dialog.close(0); } }); textEncodingPanel.setAddEncodingsOperation(new TextEncodingPanel.AddEncodingsOperation() { @Override public List<String> run(List<String> usedEncodings) { final List<String> result = new ArrayList<>(); final AddEncodingPanel addEncodingPanel = new AddEncodingPanel(); addEncodingPanel.setUsedEncodings(usedEncodings); DefaultControlPanel controlPanel = new DefaultControlPanel( addEncodingPanel.getResourceBundle()); JPanel dialogPanel = WindowUtils.createDialogPanel(addEncodingPanel, controlPanel); final DialogWrapper addEncodingDialog = DialogUtils.createDialog(dialogPanel, "Add Encodings"); controlPanel.setHandler(new DefaultControlHandler() { @Override public void controlActionPerformed(DefaultControlHandler.ControlActionType actionType) { if (actionType == DefaultControlHandler.ControlActionType.OK) { result.addAll(addEncodingPanel.getEncodings()); } addEncodingDialog.close(0); } }); WindowUtils.assignGlobalKeyListener(addEncodingDialog.getWindow(), controlPanel.createOkCancelListener()); addEncodingDialog.showAndGet(); return result; } }); WindowUtils.assignGlobalKeyListener(dialog.getWindow(), controlPanel.createOkCancelListener()); dialog.showAndGet(); } }; ActionUtils.setupAction(manageEncodingsAction, resourceBundle, "manageEncodingsAction"); manageEncodingsAction.putValue(ActionUtils.ACTION_DIALOG_MODE, true); manageEncodingsAction.putValue(Action.NAME, manageEncodingsAction.getValue(Action.NAME) + ActionUtils.DIALOG_MENUITEM_EXT); toolsEncodingMenu = new JMenu(); toolsEncodingMenu.add(utfEncodingRadioButtonMenuItem); toolsEncodingMenu.addSeparator(); toolsEncodingMenu.add(manageEncodingsAction); toolsEncodingMenu.setText(resourceBundle.getString("toolsEncodingMenu.text")); toolsEncodingMenu.setToolTipText(resourceBundle.getString("toolsEncodingMenu.shortDescription")); }
From source file:org.exbin.deltahex.intellij.GoToHandler.java
License:Apache License
public Action getGoToLineAction() { if (goToLineAction == null) { goToLineAction = new AbstractAction() { @Override// ww w . ja v a2 s . co m public void actionPerformed(ActionEvent e) { final GoToHexPanel goToPanel = new GoToHexPanel(); DefaultControlPanel goToControlPanel = new DefaultControlPanel(goToPanel.getResourceBundle()); goToPanel.setCursorPosition(codeArea.getCaretPosition().getDataPosition()); goToPanel.setMaxPosition(codeArea.getDataSize()); JPanel dialogPanel = WindowUtils.createDialogPanel(goToPanel, goToControlPanel); WindowUtils.assignGlobalKeyListener(dialogPanel, goToControlPanel.createOkCancelListener()); final DialogWrapper dialog = DialogUtils.createDialog(dialogPanel, "Go To Position", goToPanel.getInitFocusComponent()); goToControlPanel.setHandler(new DefaultControlHandler() { @Override public void controlActionPerformed(DefaultControlHandler.ControlActionType actionType) { if (actionType == DefaultControlHandler.ControlActionType.OK) { goToPanel.acceptInput(); codeArea.setCaretPosition(goToPanel.getGoToPosition()); } dialog.close(0); } }); dialog.showAndGet(); } }; } return goToLineAction; }
From source file:org.exbin.deltahex.intellij.panel.DeltaHexOptionsPanel.java
License:Open Source License
private void selectFontButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_selectFontButtonActionPerformed final TextFontPanel textFontPanel = new TextFontPanel(); DefaultControlPanel textFontControlPanel = new DefaultControlPanel(); textFontPanel.setStoredFont(deltaHexFont); textFontPanel.setVisible(true);//from w w w. j a v a2 s . c o m JPanel dialogPanel = WindowUtils.createDialogPanel(textFontPanel, textFontControlPanel); WindowUtils.assignGlobalKeyListener(dialogPanel, textFontControlPanel.createOkCancelListener()); final DialogWrapper dialog = DialogUtils.createDialog(dialogPanel, "Select Font"); textFontControlPanel.setHandler(new DefaultControlHandler() { @Override public void controlActionPerformed(DefaultControlHandler.ControlActionType actionType) { if (actionType == DefaultControlHandler.ControlActionType.OK) { deltaHexFont = textFontPanel.getStoredFont(); updateFontTextField(); useDefaultFontCheckBox.setSelected(false); } dialog.close(0); } }); dialog.showAndGet(); }
From source file:org.exbin.deltahex.intellij.panel.HexSearchPanel.java
License:Apache License
private void optionsButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_optionsButtonActionPerformed cancelSearch();/*from w w w . jav a 2 s . c om*/ final FindHexPanel findHexPanel = new FindHexPanel(); findHexPanel.setSelected(); findHexPanel.setSearchHistory(searchHistory); findHexPanel.setSearchParameters(searchParameters); replaceParameters.setPerformReplace(replaceMode); findHexPanel.setReplaceParameters(replaceParameters); findHexPanel.setHexCodePopupMenuHandler(hexCodePopupMenuHandler); DefaultControlPanel controlPanel = new DefaultControlPanel(findHexPanel.getResourceBundle()); JPanel dialogPanel = WindowUtils.createDialogPanel(findHexPanel, controlPanel); final DialogWrapper dialog = DialogUtils.createDialog(dialogPanel, "Find Text"); findHexPanel.setMultilineEditorListener(new FindHexPanel.MultilineEditorListener() { @Override public SearchCondition multilineEdit(SearchCondition condition) { final HexMultilinePanel multilinePanel = new HexMultilinePanel(); multilinePanel.setHexCodePopupMenuHandler(hexCodePopupMenuHandler); multilinePanel.setCondition(condition); DefaultControlPanel controlPanel = new DefaultControlPanel(); JPanel dialogPanel = WindowUtils.createDialogPanel(multilinePanel, controlPanel); final DialogWrapper multilineDialog = DialogUtils.createDialog(dialogPanel, "Multiline Hex/Text"); final SearchConditionResult result = new SearchConditionResult(); controlPanel.setHandler(new DefaultControlHandler() { @Override public void controlActionPerformed(DefaultControlHandler.ControlActionType actionType) { if (actionType == DefaultControlHandler.ControlActionType.OK) { result.searchCondition = multilinePanel.getCondition(); updateFindStatus(); } multilineDialog.close(0); } }); WindowUtils.assignGlobalKeyListener(multilineDialog.getWindow(), controlPanel.createOkCancelListener()); // multilineDialog.setLocationRelativeTo(dialog); multilineDialog.showAndGet(); multilinePanel.detachMenu(); return result.searchCondition; } class SearchConditionResult { SearchCondition searchCondition = null; } }); controlPanel.setHandler(new DefaultControlHandler() { @Override public void controlActionPerformed(DefaultControlHandler.ControlActionType actionType) { if (actionType == ControlActionType.OK) { SearchParameters dialogSearchParameters = findHexPanel.getSearchParameters(); ((SearchHistoryModel) findComboBox.getModel()) .addSearchCondition(dialogSearchParameters.getCondition()); dialogSearchParameters.setFromParameters(dialogSearchParameters); findComboBoxEditorComponent.setItem(dialogSearchParameters.getCondition()); updateFindStatus(); ReplaceParameters dialogReplaceParameters = findHexPanel.getReplaceParameters(); switchReplaceMode(dialogReplaceParameters.isPerformReplace()); hexSearchPanelApi.performFind(dialogSearchParameters); } findHexPanel.detachMenu(); dialog.close(0); } }); WindowUtils.assignGlobalKeyListener(dialog.getWindow(), controlPanel.createOkCancelListener()); // dialog.setLocationRelativeTo(frameModule.getFrame()); dialog.showAndGet(); }