Example usage for com.intellij.openapi.ui DialogWrapper showAndGet

List of usage examples for com.intellij.openapi.ui DialogWrapper showAndGet

Introduction

In this page you can find the example usage for com.intellij.openapi.ui DialogWrapper showAndGet.

Prototype

public boolean showAndGet() 

Source Link

Document

Show the modal dialog and check if it was closed with OK.

Usage

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();
}