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

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

Introduction

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

Prototype

public Window getWindow() 

Source Link

Usage

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//w w w .j  ava 2 s  . 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.panel.HexSearchPanel.java

License:Apache License

private void optionsButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_optionsButtonActionPerformed
    cancelSearch();//from   w  w w.ja v  a2 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();
}