Example usage for com.jgoodies.forms.layout Sizes dialogUnitXAsPixel

List of usage examples for com.jgoodies.forms.layout Sizes dialogUnitXAsPixel

Introduction

In this page you can find the example usage for com.jgoodies.forms.layout Sizes dialogUnitXAsPixel.

Prototype

public static int dialogUnitXAsPixel(int dluX, Component component) 

Source Link

Document

Converts horizontal dialog units and returns pixels.

Usage

From source file:calendarexportplugin.exporter.AppleSettingsDialog.java

License:Open Source License

private void createGui(final CalendarExportSettings settings) {
    setTitle(mLocalizer.msg("title", "iCal Calendar Settings"));

    UiUtilities.registerForClosing(this);

    JPanel content = (JPanel) getContentPane();
    content.setBorder(Borders.DLU4_BORDER);

    CellConstraints cc = new CellConstraints();

    content.setLayout(new FormLayout("5dlu, 15dlu, fill:pref:grow, 3dlu, 100dlu",
            "pref, 3dlu,pref, 3dlu,pref, 3dlu,pref, 3dlu,pref, 3dlu,pref, 3dlu,pref, 3dlu,pref, fill:3dlu:grow ,pref, 3dlu,pref"));

    content.add(new JLabel(mLocalizer.msg("select", "Select Calendar")), cc.xyw(2, 3, 2));
    mCalendarChooser = new JTextField();
    content.add(mCalendarChooser, cc.xy(5, 3));

    ButtonBarBuilder2 builder = new ButtonBarBuilder2();
    builder.addGlue();/*from w  w  w  .  jav a  2  s  .  co  m*/

    mOkButton = new JButton(Localizer.getLocalization(Localizer.I18N_OK));

    mOkButton.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            okPressed(settings);
        }
    });

    getRootPane().setDefaultButton(mOkButton);

    JButton cancel = new JButton(Localizer.getLocalization(Localizer.I18N_CANCEL));

    cancel.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            close();
        }
    });

    builder.addButton(new JButton[] { mOkButton, cancel });
    content.add(builder.getPanel(), cc.xyw(1, 19, 5));
    loadValues(settings);

    setSize(Sizes.dialogUnitXAsPixel(200, this), Sizes.dialogUnitYAsPixel(100, this));
}

From source file:captureplugin.drivers.simpledevice.SimpleConfigDialog.java

License:Open Source License

/**
 * Create the Gui/*from w  w w .  j a v  a2 s.  c o  m*/
 */
private void createGui() {
    JPanel panel = (JPanel) getContentPane();

    setTitle(mLocalizer.msg("title", "Device Settings"));

    panel.setLayout(new FormLayout("3dlu, pref, 3dlu, fill:pref:grow, 3dlu, pref, 3dlu",
            "pref, 5dlu, pref, 3dlu, pref, 5dlu, fill:min:grow, 3dlu, pref, 3dlu, pref"));
    panel.setBorder(Borders.DIALOG_BORDER);

    CellConstraints cc = new CellConstraints();

    panel.add(
            DefaultComponentFactory.getInstance().createSeparator(mLocalizer.msg("deviceName", "Device name")),
            cc.xyw(1, 1, 7));

    panel.add(new JLabel(mLocalizer.msg("deviceNameInput", "Name") + ":"), cc.xy(2, 3));
    mName = new JTextField(mDevice.getName());
    panel.add(mName, cc.xyw(4, 3, 3));

    panel.add(DefaultComponentFactory.getInstance()
            .createSeparator(mLocalizer.msg("channelAssignment", "Channel assignment")), cc.xyw(1, 5, 7));

    mTable = new JTable(new ConfigTableModel(mConfig, mLocalizer.msg("external", "external")));
    mTable.getTableHeader().setReorderingAllowed(false);
    mTable.getColumnModel().getColumn(0).setCellRenderer(new ChannelTableCellRenderer());
    mTable.getColumnModel().getColumn(1).setCellRenderer(new ExternalChannelTableCellRenderer());
    mTable.getColumnModel().getColumn(1).setCellEditor(new ExternalChannelTableCellEditor(mConfig));
    panel.add(new JScrollPane(mTable), cc.xyw(2, 7, 5));

    JButton fetch = new JButton(mLocalizer.msg("fetchChannels", "Fetch Channellist"));

    fetch.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    SimpleChannel[] lists = mConnection.getAvailableChannels();

                    if (lists == null) {
                        JOptionPane.showMessageDialog(SimpleConfigDialog.this,
                                mLocalizer.msg("errorChannels", "Could not load external channels"),
                                mLocalizer.msg("errorTitle", "Error"), JOptionPane.ERROR_MESSAGE);
                    } else {
                        mConfig.setExternalChannels(lists);
                    }

                    mTable.repaint();
                }
            });
        }
    });

    panel.add(fetch, cc.xy(6, 9));

    ButtonBarBuilder2 builder = new ButtonBarBuilder2();
    builder.addGlue();

    JButton ok = new JButton(Localizer.getLocalization(Localizer.I18N_OK));
    ok.addActionListener(new ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent e) {
            if (mTable.isEditing()) {
                TableCellEditor editor = mTable.getCellEditor();
                if (editor != null) {
                    editor.stopCellEditing();
                }
            }
            mReturn = JOptionPane.OK_OPTION;
            setVisible(false);
        }
    });

    JButton cancel = new JButton(Localizer.getLocalization(Localizer.I18N_CANCEL));
    cancel.addActionListener(new ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent e) {
            setVisible(false);
        }
    });

    builder.addButton(new JButton[] { ok, cancel });

    panel.add(builder.getPanel(), cc.xyw(1, 11, 7));

    getRootPane().setDefaultButton(ok);
    UiUtilities.registerForClosing(this);

    setSize(Sizes.dialogUnitXAsPixel(250, this), Sizes.dialogUnitXAsPixel(200, this));
}

From source file:de.dal33t.powerfolder.ui.util.FileSelectorFactory.java

License:Open Source License

/**
 * Creates a file selection field. A browse button is attached at the right
 * side//from w w  w .  j a va2  s.c  o  m
 *
 * @param title              the title of the filechoose if pressed the browse button
 * @param fileSelectionModel the file base value model, will get/write base as String
 * @param fileSelectionMode  the selection mode of the filechooser
 * @param fileFilter         the filefilter used for the filechooser. may be null will
 *                           ignore it then
 * @param open               true ? show open dialog : show save dialog
 * @return
 */
public static JComponent createFileSelectionField(final String title, final ValueModel fileSelectionModel,
        final int fileSelectionMode, final FileFilter fileFilter, final boolean open) {
    if (fileSelectionModel == null) {
        throw new NullPointerException("Filebase value model is null");
    }
    if (fileSelectionModel.getValue() != null && !(fileSelectionModel.getValue() instanceof String)) {
        throw new IllegalArgumentException("Value of fileselection is not of type String");
    }
    // text          button
    FormLayout layout = new FormLayout("122dlu, 3dlu, pref", "pref");
    PanelBuilder builder = new PanelBuilder(layout);

    // The textfield
    final JTextField textField = BasicComponentFactory.createTextField(fileSelectionModel, false);
    textField.setEditable(false);
    Dimension p = textField.getPreferredSize();
    p.width = Sizes.dialogUnitXAsPixel(30, textField);
    textField.setPreferredSize(p);

    // The button
    final JButton button = new JButtonMini(Icons.getIconById(Icons.DIRECTORY),
            Translation.getTranslation("folder_create.dialog.select_directory.text"));

    // Button logic
    button.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {

            File fileSelection = null;
            if (fileSelectionModel.getValue() != null) {
                fileSelection = new File((String) fileSelectionModel.getValue());
            }

            JFileChooser fileChooser = DialogFactory.createFileChooser();
            fileChooser.setFileSelectionMode(fileSelectionMode);

            if (fileSelection != null) {
                fileChooser.setSelectedFile(fileSelection);
                fileChooser.setCurrentDirectory(fileSelection);
            }

            fileChooser.setDialogTitle(title);
            fileChooser.setFileSelectionMode(fileSelectionMode);
            if (fileFilter != null) {
                fileChooser.setFileFilter(fileFilter);
            }
            int result;
            if (open) {
                result = fileChooser.showOpenDialog(button);
            } else {
                result = fileChooser.showSaveDialog(button);
            }

            File selectedFile = fileChooser.getSelectedFile();

            if (result == JFileChooser.APPROVE_OPTION && selectedFile != null) {
                fileSelectionModel.setValue(selectedFile.getAbsolutePath());
            }
        }
    });

    CellConstraints cc = new CellConstraints();
    builder.add(textField, cc.xy(1, 1));
    builder.add(button, cc.xy(3, 1));

    JPanel panel = builder.getPanel();
    panel.addPropertyChangeListener("enabled", new PropertyChangeListener() {
        public void propertyChange(PropertyChangeEvent evt) {
            boolean enabled = (Boolean) evt.getNewValue();
            textField.setEnabled(enabled);
            button.setEnabled(enabled);
        }
    });
    return panel;
}

From source file:de.dal33t.powerfolder.ui.util.UIUtil.java

License:Open Source License

/**
 * Sets a preferred minimum width in Dialog units (dlu) on a component
 *
 * @param dlu//  w  w w .  jav  a  2  s .c o m
 *            the size in dlu
 * @param comp
 *            the component
 */
public static void ensureMinimumWidth(int dlu, JComponent comp) {
    // Ensure minimum dimension
    Dimension dims = comp.getPreferredSize();
    dims.width = Sizes.dialogUnitXAsPixel(dlu, comp);
    comp.setPreferredSize(dims);
}

From source file:golemplugin.GolemDialog.java

License:Open Source License

public GolemDialog(Window w) {
    super(w);//from ww w.  ja v a  2  s.c om
    setModal(true);

    createGui();

    setSize(Sizes.dialogUnitXAsPixel(200, this), Sizes.dialogUnitYAsPixel(200, this));

}

From source file:i18nplugin.TranslationDialog.java

License:Open Source License

private void createGui(final int splitPos) {
    setTitle(mLocalizer.msg("title", "Translation Tool"));

    JPanel panel = (JPanel) getContentPane();
    panel.setBorder(Borders.DLU4_BORDER);

    panel.setLayout(new FormLayout("3dlu, left:pref, 3dlu, pref, 3dlu, pref, fill:pref:grow, 3dlu",
            "pref, 5dlu, pref, 3dlu, pref, 5dlu, pref, 5dlu, fill:10dlu:grow, 3dlu, pref"));

    CellConstraints cc = new CellConstraints();

    panel.add(DefaultComponentFactory.getInstance()
            .createSeparator(mLocalizer.msg("chooseLanguage", "Choose Language")), cc.xyw(1, 1, 8));

    panel.add(new JLabel(mLocalizer.msg("language", "Language:")), cc.xy(2, 3));

    mCurrentLocales = new Vector<Locale>();
    Locale[] locales = mLocalizer.getAllAvailableLocales();

    for (Locale locale : locales) {
        if (!locale.getLanguage().equals("en")) {
            mCurrentLocales.add(locale);
        }/* www  .j ava2s  .  c  om*/
    }

    mLanguageCB = new JComboBox(mCurrentLocales);
    mLanguageCB.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            Locale loc = (Locale) mLanguageCB.getSelectedItem();

            mTreeRenderer.setCurrentLocale(loc);
            mEditor.save();
            mEditor.setCurrentLocale(loc);
            filterChanged(mFilterTF.getText());
            mTree.repaint();
        }
    });

    mLanguageCB.setRenderer(new DefaultListCellRenderer() {
        public java.awt.Component getListCellRendererComponent(javax.swing.JList list, Object value, int index,
                boolean isSelected, boolean cellHasFocus) {
            return super.getListCellRendererComponent(list, ((Locale) value).getDisplayName(), index,
                    isSelected, cellHasFocus);
        }
    });

    panel.add(mLanguageCB, cc.xy(4, 3));

    JButton newButton = new JButton(TVBrowserIcons.newIcon(TVBrowserIcons.SIZE_SMALL));
    newButton.setToolTipText(mLocalizer.msg("newLanguage", "Add new language"));

    newButton.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            addLanguage();
        }
    });

    panel.add(newButton, cc.xy(6, 3));

    panel.add(DefaultComponentFactory.getInstance().createSeparator(mLocalizer.msg("translate", "Translate")),
            cc.xyw(1, 5, 8));

    panel.add(new JLabel(mLocalizer.msg("search", "Search:")), cc.xy(2, 7));

    mFilterTF = new JTextField();
    panel.add(mFilterTF, cc.xy(4, 7));

    mClearFilterB = new JButton(IconLoader.getInstance().getIconFromTheme("action", "process-stop", 16));
    mClearFilterB.setEnabled(false);
    mClearFilterB.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            mFilterTF.setText(null);
        }
    });
    panel.add(mClearFilterB, cc.xy(6, 7));

    DefaultMutableTreeNode root = createRootNode();

    mTree = new JTree(root) {
        public void updateUI() {
            setUI(new SingleAndDoubleClickTreeUI(SingleAndDoubleClickTreeUI.AUTO_COLLAPSE_EXPAND,
                    getSelectionPath()));
            invalidate();
        }
    };

    mTreeRenderer = new PropertiesTreeCellRenderer(Locale.GERMAN);
    mTree.setCellRenderer(mTreeRenderer);

    mSplitpane = new JSplitPane();
    mSplitpane.setLeftComponent(new JScrollPane(mTree));

    panel.add(mSplitpane, cc.xyw(2, 9, 6));

    mEditor = new TranslatorEditor(Locale.GERMAN);
    final JPanel cardPanel = new JPanel(new CardLayout());

    cardPanel.add(mEditor, EDITOR);

    JEditorPane help = new JEditorPane("text/html", mLocalizer.msg("helpText", "<h1>Help missing</h1>"));
    help.setEditable(false);

    cardPanel.add(new JScrollPane(help, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
            ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER), HELP);

    mTree.addTreeSelectionListener(new TreeSelectionListener() {
        public void valueChanged(TreeSelectionEvent e) {
            CardLayout cl = (CardLayout) (cardPanel.getLayout());

            if (mTree.getSelectionPath() != null) {
                Object node = mTree.getSelectionPath().getLastPathComponent();

                if (node instanceof PropertiesEntryNode) {
                    mEditor.save();
                    mEditor.setSelectedProperties((PropertiesEntryNode) node);
                    cl.show(cardPanel, EDITOR);
                } else {
                    cl.show(cardPanel, HELP);
                }
            } else {
                cl.show(cardPanel, HELP);
            }

        }
    });

    mTree.setSelectionPath(new TreePath(root));

    mSplitpane.setRightComponent(cardPanel);

    if (splitPos > 0) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                mSplitpane.setDividerLocation(splitPos);
            }
        });
    }

    ButtonBarBuilder2 buttonbar = new ButtonBarBuilder2();

    JButton save = new JButton(mLocalizer.msg("save", "Save"));

    save.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            save();
        }
    });

    JButton cancel = new JButton(Localizer.getLocalization(Localizer.I18N_CANCEL));
    cancel.addActionListener(new ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent e) {
            close();
        }
    });

    JButton export = new JButton(IconLoader.getInstance().getIconFromTheme("actions", "document-save-as", 16));
    export.setToolTipText(mLocalizer.msg("export", "Export Translations to File"));

    export.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            export();
        }
    });

    LinkButton link = new LinkButton(mLocalizer.msg("getHelp", "Get Help"),
            mLocalizer.msg("getHelpUrl", "http://enwiki.tvbrowser.org"));

    buttonbar.addFixed(export);
    buttonbar.addGlue();
    buttonbar.addFixed(link);
    buttonbar.addGlue();
    buttonbar.addButton(new JButton[] { save, cancel });

    panel.add(buttonbar.getPanel(), cc.xyw(2, 11, 6));

    getRootPane().setDefaultButton(cancel);
    UiUtilities.registerForClosing(this);

    setSize(Sizes.dialogUnitXAsPixel(500, this), Sizes.dialogUnitYAsPixel(410, this));

    mLanguageCB.setSelectedIndex(0);

    mFilterTF.getDocument().addDocumentListener(new DocumentListener() {
        public void removeUpdate(DocumentEvent e) {
            filterChanged(mFilterTF.getText());
        }

        public void insertUpdate(DocumentEvent e) {
            filterChanged(mFilterTF.getText());
        }

        public void changedUpdate(DocumentEvent e) {
            filterChanged(mFilterTF.getText());
        }
    });

}

From source file:idontwant2see.ExclusionTablePanel.java

License:Open Source License

protected ExclusionTablePanel(final IDontWant2SeeSettings settings) {
    Localizer mLocalizer = IDontWant2See.mLocalizer;
    mTableModel = new IDontWant2SeeSettingsTableModel(settings.getSearchList(),
            settings.getLastEnteredExclusionString());

    final IDontWant2SeeSettingsTableRenderer renderer = new IDontWant2SeeSettingsTableRenderer(
            settings.getLastUsedDate());
    mTable = new JTable(mTableModel);
    mTableModel.setTable(mTable);/*from   w w w  .j a  v a 2  s  . co m*/
    mTable.setRowHeight(25);
    mTable.setPreferredScrollableViewportSize(new Dimension(200, 150));
    mTable.getColumnModel().getColumn(0).setCellRenderer(renderer);
    mTable.getColumnModel().getColumn(1).setCellRenderer(renderer);
    mTable.getColumnModel().getColumn(1)
            .setMaxWidth(Locale.getDefault().getLanguage().equals("de") ? Sizes.dialogUnitXAsPixel(80, mTable)
                    : Sizes.dialogUnitXAsPixel(55, mTable));
    mTable.getColumnModel().getColumn(1).setMinWidth(mTable.getColumnModel().getColumn(1).getMaxWidth());
    mTable.getTableHeader().setReorderingAllowed(false);
    mTable.getTableHeader().setResizingAllowed(false);

    final JScrollPane scrollPane = new JScrollPane(mTable);

    mTable.addMouseListener(new MouseAdapter() {
        public void mouseClicked(final MouseEvent e) {
            final int column = mTable.columnAtPoint(e.getPoint());

            if (column == 1) {
                final int row = mTable.rowAtPoint(e.getPoint());

                mTable.getModel().setValueAt(!((Boolean) mTable.getValueAt(row, column)), row, 1);
                mTable.repaint();
            }
        }
    });

    mTable.addKeyListener(new KeyAdapter() {
        public void keyPressed(final KeyEvent e) {
            if (e.getKeyCode() == KeyEvent.VK_DELETE) {
                deleteSelectedRows();
                e.consume();
            } else if (mTable.getSelectedColumn() == 1
                    && (e.getKeyCode() == KeyEvent.VK_F2 || e.getKeyCode() == KeyEvent.VK_SPACE)) {
                mTable.getModel().setValueAt(!((Boolean) mTable.getValueAt(mTable.getSelectedRow(), 1)),
                        mTable.getSelectedRow(), 1);
                mTable.repaint();
            }
        }
    });

    addAncestorListener(new AncestorListener() {
        public void ancestorAdded(final AncestorEvent event) {
            for (int row = 0; row < mTableModel.getRowCount(); row++) {
                if (mTableModel.isLastChangedRow(row)) {
                    final Rectangle rect = mTable.getCellRect(row, 0, true);
                    rect.setBounds(0, scrollPane.getVisibleRect().height + rect.y - rect.height, 0, 0);

                    mTable.scrollRectToVisible(rect);
                    break;
                }
            }
        }

        public void ancestorMoved(final AncestorEvent event) {
        }

        public void ancestorRemoved(final AncestorEvent event) {
        }
    });

    final JButton add = new JButton(mLocalizer.msg("settings.add", "Add entry"),
            IDontWant2See.getInstance().createImageIcon("actions", "document-new", 16));
    add.addActionListener(new ActionListener() {
        public void actionPerformed(final ActionEvent e) {
            mTableModel.addRow();
            mTable.scrollRectToVisible(mTable.getCellRect(mTableModel.getRowCount() - 1, 0, true));
        }
    });

    final JButton delete = new JButton(mLocalizer.msg("settings.delete", "Delete selected entries"),
            IDontWant2See.getInstance().createImageIcon("actions", "edit-delete", 16));
    delete.setEnabled(false);
    delete.addActionListener(new ActionListener() {
        public void actionPerformed(final ActionEvent e) {
            deleteSelectedRows();
        }
    });

    mTable.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
        public void valueChanged(final ListSelectionEvent e) {
            if (!e.getValueIsAdjusting()) {
                delete.setEnabled(e.getFirstIndex() >= 0);
            }
        }
    });

    final FormLayout layout = new FormLayout("default,0dlu:grow,default",
            "fill:default:grow,1dlu,default,4dlu,default,5dlu,pref");
    final PanelBuilder pb = new PanelBuilder(layout, this);
    final CellConstraints cc = new CellConstraints();

    int y = 1;

    pb.add(scrollPane, cc.xyw(1, y++, 3));

    final PanelBuilder pb2 = new PanelBuilder(
            new FormLayout("default,3dlu:grow,default,3dlu:grow,default,3dlu:grow,default", "default"));

    final ColorLabel blueLabel = new ColorLabel(IDontWant2SeeSettingsTableRenderer.LAST_CHANGED_COLOR);
    blueLabel.setText(mLocalizer.msg("changed", "Last change"));
    pb2.add(blueLabel, cc.xy(1, 1));

    final ColorLabel yellowLabel = new ColorLabel(IDontWant2SeeSettingsTableRenderer.LAST_USAGE_7_COLOR);
    yellowLabel.setText(mLocalizer.msg("unusedSince", "Not used for {0} days",
            IDontWant2SeeSettingsTableRenderer.OUTDATED_7_DAY_COUNT));
    pb2.add(yellowLabel, cc.xy(3, 1));

    final ColorLabel orangeLabel = new ColorLabel(IDontWant2SeeSettingsTableRenderer.LAST_USAGE_30_COLOR);
    orangeLabel.setText(mLocalizer.msg("unusedSince", "Not used for {0} days",
            IDontWant2SeeSettingsTableRenderer.OUTDATED_30_DAY_COUNT));
    pb2.add(orangeLabel, cc.xy(5, 1));

    final ColorLabel redLabel = new ColorLabel(IDontWant2SeeSettingsTableRenderer.NOT_VALID_COLOR);
    redLabel.setText(mLocalizer.msg("invalid", "Invalid"));
    pb2.add(redLabel, cc.xy(7, 1));

    pb.add(pb2.getPanel(), cc.xyw(1, ++y, 3));

    y++;
    pb.add(add, cc.xy(1, ++y));
    pb.add(delete, cc.xy(3, y++));
    pb.add(UiUtilities.createHelpTextArea(mLocalizer.msg("settings.help",
            "To edit a value double click a cell. You can use wildcard * to search for any text.")),
            cc.xyw(1, ++y, 3));
}

From source file:imdbplugin.ImdbUpdateDialog.java

License:Open Source License

private void createGui() {
    setTitle(mLocalizer.msg("downloadingTitle", "Downloading IMDb-Data"));

    final JPanel panel = (JPanel) getContentPane();
    panel.setLayout(new FormLayout("fill:pref:grow", "pref, 3dlu, pref, fill:3dlu:grow, pref"));
    panel.setBorder(Borders.DLU4_BORDER);

    final CellConstraints cc = new CellConstraints();

    final JLabel label = new JLabel(mLocalizer.msg("downloadingMsg", "Processing IMDb data..."));
    panel.add(label, cc.xy(1, 1));/*from   w  ww. j  ava  2  s  .  c  om*/
    final JProgressBar progressBar = new JProgressBar();
    panel.add(progressBar, cc.xy(1, 3));

    final JButton cancel = new JButton(Localizer.getLocalization(Localizer.I18N_CANCEL));
    cancel.addActionListener(new ActionListener() {
        public void actionPerformed(final ActionEvent e) {
            cancelPressed();
        }
    });
    final ButtonBarBuilder builder = new ButtonBarBuilder();
    builder.addGlue();
    builder.addGriddedButtons(new JButton[] { cancel });
    panel.add(builder.getPanel(), cc.xy(1, 5));

    mMonitor = new ProgressBarProgressMonitor(progressBar, label);
    setSize(Sizes.dialogUnitXAsPixel(200, this), Sizes.dialogUnitYAsPixel(100, this));
}

From source file:net.sf.jabref.FieldContentSelector.java

License:Open Source License

/**
 * /* w  w  w.  j  a  v  a2s. c o m*/
 * Create a new FieldContentSelector.
 * 
 * @param frame
 *            The one JabRef-Frame.
 * @param panel
 *            The basepanel the entry-editor is on.
 * @param owner
 *            The window/frame/dialog which should be the owner of the
 *            content selector dialog.
 * @param editor
 *            The entry editor which will be appended by the text selected
 *            by the user from the combobox.
 * @param metaData
 *            The metadata that contains the list of items to display in the
 *            combobox under the key Globals.SELECTOR_META_PREFIX +
 *            editor.getFieldName().
 * @param action
 *            The action that will be performed to after an item from the
 *            combobox has been appended to the text in the entryeditor.
 * @param horizontalLayout
 *            Whether to put a 2 pixel horizontal strut between combobox and
 *            button.
 */
public FieldContentSelector(JabRefFrame frame, final BasePanel panel, Window owner, final FieldEditor editor,
        final MetaData metaData, final AbstractAction action, boolean horizontalLayout, String delimiter) {

    this.frame = frame;
    this.editor = editor;
    this.metaData = metaData;
    this.owner = owner;
    this.action = action;
    this.delimiter = delimiter;

    comboBox = new JComboBox() {

        @Override
        public Dimension getPreferredSize() {
            Dimension parents = super.getPreferredSize();
            if (parents.width > GUIGlobals.MAX_CONTENT_SELECTOR_WIDTH) {
                parents.width = GUIGlobals.MAX_CONTENT_SELECTOR_WIDTH;
            }
            return parents;
        }
    };

    GridBagLayout gbl = new GridBagLayout();
    GridBagConstraints con = new GridBagConstraints();

    setLayout(gbl);

    // comboBox.setEditable(true);

    comboBox.setMaximumRowCount(35);

    // Set the width of the popup independent of the size of th box itself:
    comboBox.putClientProperty(Options.COMBO_POPUP_PROTOTYPE_DISPLAY_VALUE_KEY,
            "The longest text in the combo popup menu. And even longer.");

    rebuildComboBox();

    con.gridwidth = horizontalLayout ? 3 : GridBagConstraints.REMAINDER;
    con.fill = GridBagConstraints.HORIZONTAL;
    con.weightx = 1;
    gbl.setConstraints(comboBox, con);

    comboBox.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            /*
             * These conditions signify arrow key navigation in the dropdown
             * list, so we should not react to it. I'm not sure if this is
             * well defined enough to be guaranteed to work everywhere.
             */
            if (e.getActionCommand().equals("comboBoxChanged") && (e.getModifiers() == 0)) {
                return;
            }

            selectionMade();
        }
    });
    // Add an action for the Enter key that signals a selection:
    comboBox.getInputMap().put(KeyStroke.getKeyStroke("ENTER"), "enter");
    comboBox.getActionMap().put("enter", new AbstractAction() {

        @Override
        public void actionPerformed(ActionEvent actionEvent) {
            selectionMade();
            comboBox.setPopupVisible(false);
        }
    });

    add(comboBox);

    if (horizontalLayout) {
        add(Box.createHorizontalStrut(Sizes.dialogUnitXAsPixel(2, this)));
    }

    JButton manage = new JButton(Globals.lang("Manage"));
    gbl.setConstraints(manage, con);
    add(manage);

    manage.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            ContentSelectorDialog2 csd = new ContentSelectorDialog2(FieldContentSelector.this.owner,
                    FieldContentSelector.this.frame, panel, true, metaData, editor.getFieldName());
            Util.placeDialog(csd, FieldContentSelector.this.frame);

            // Calling setVisible(true) will open the modal dialog and block
            // for the dialog to close.
            csd.setVisible(true);

            // So we need to rebuild the ComboBox afterwards
            rebuildComboBox();
        }
    });
}

From source file:net.sf.jabref.gui.FieldContentSelector.java

License:Open Source License

/**
 *
 * Create a new FieldContentSelector.//from   w  w w  .jav a2s . c om
 *
 * @param frame
 *            The one JabRef-Frame.
 * @param panel
 *            The basepanel the entry-editor is on.
 * @param owner
 *            The window/frame/dialog which should be the owner of the
 *            content selector dialog.
 * @param editor
 *            The entry editor which will be appended by the text selected
 *            by the user from the combobox.
 * @param metaData
 *            The metadata that contains the list of items to display in the
 *            combobox under the key Globals.SELECTOR_META_PREFIX +
 *            editor.getFieldName().
 * @param action
 *            The action that will be performed to after an item from the
 *            combobox has been appended to the text in the entryeditor.
 * @param horizontalLayout
 *            Whether to put a 2 pixel horizontal strut between combobox and
 *            button.
 */
public FieldContentSelector(JabRefFrame frame, final BasePanel panel, Window owner, final FieldEditor editor,
        final MetaData metaData, final AbstractAction action, boolean horizontalLayout, String delimiter) {

    this.editor = editor;
    this.metaData = metaData;
    this.action = action;
    this.delimiter = delimiter;

    comboBox = new JComboBox<String>() {

        @Override
        public Dimension getPreferredSize() {
            Dimension parents = super.getPreferredSize();
            if (parents.width > GUIGlobals.MAX_CONTENT_SELECTOR_WIDTH) {
                parents.width = GUIGlobals.MAX_CONTENT_SELECTOR_WIDTH;
            }
            return parents;
        }
    };

    GridBagLayout gbl = new GridBagLayout();
    GridBagConstraints con = new GridBagConstraints();

    setLayout(gbl);

    // comboBox.setEditable(true);

    comboBox.setMaximumRowCount(35);

    // Set the width of the popup independent of the size of th box itself:
    comboBox.putClientProperty(Options.COMBO_POPUP_PROTOTYPE_DISPLAY_VALUE_KEY,
            "The longest text in the combo popup menu. And even longer.");

    rebuildComboBox();

    con.gridwidth = horizontalLayout ? 3 : GridBagConstraints.REMAINDER;
    con.fill = GridBagConstraints.HORIZONTAL;
    con.weightx = 1;
    gbl.setConstraints(comboBox, con);

    comboBox.addActionListener(e -> {
        /*
         * These conditions signify arrow key navigation in the dropdown
         * list, so we should not react to it. I'm not sure if this is
         * well defined enough to be guaranteed to work everywhere.
         */
        if ("comboBoxChanged".equals(e.getActionCommand()) && (e.getModifiers() == 0)) {
            return;
        }

        selectionMade();
    });
    // Add an action for the Enter key that signals a selection:
    comboBox.getInputMap().put(KeyStroke.getKeyStroke("ENTER"), "enter");
    comboBox.getActionMap().put("enter", new AbstractAction() {

        @Override
        public void actionPerformed(ActionEvent actionEvent) {
            selectionMade();
            comboBox.setPopupVisible(false);
        }
    });

    add(comboBox);

    if (horizontalLayout) {
        add(Box.createHorizontalStrut(Sizes.dialogUnitXAsPixel(2, this)));
    }

    JButton manage = new JButton(Localization.lang("Manage"));
    gbl.setConstraints(manage, con);
    add(manage);

    manage.addActionListener(e -> {
        ContentSelectorDialog2 csd = new ContentSelectorDialog2(owner, frame, panel, true, metaData,
                editor.getFieldName());
        PositionWindow.placeDialog(csd, frame);

        // Calling setVisible(true) will open the modal dialog and block
        // for the dialog to close.
        csd.setVisible(true);

        // So we need to rebuild the ComboBox afterwards
        rebuildComboBox();
    });
}