Example usage for com.jgoodies.forms.layout CellConstraints xyw

List of usage examples for com.jgoodies.forms.layout CellConstraints xyw

Introduction

In this page you can find the example usage for com.jgoodies.forms.layout CellConstraints xyw.

Prototype

public CellConstraints xyw(int col, int row, int colSpan) 

Source Link

Document

Sets the column, row, width, and height; uses a height (row span) of 1 and the horizontal and vertical default alignments.

Examples:

 cc.xyw(1, 3, 7); cc.xyw(1, 3, 2); 

Usage

From source file:net.pms.medialibrary.gui.dialogs.TextInputDialog.java

License:Open Source License

public TextInputDialog(String description, String initialValue) {
    ((java.awt.Frame) getOwner())
            .setIconImage(new ImageIcon(getClass().getResource("/resources/images/icon-16.png")).getImage());
    setTitle(Messages.getString("ML.TextInputDialog.Title"));

    //initialize components
    tfValue = new JTextField(initialValue);
    tfValue.addKeyListener(new KeyAdapter() {
        @Override/*from   w  w  w .j  a  v a  2 s.c  om*/
        public void keyPressed(KeyEvent e) {
            if (e.getKeyCode() == KeyEvent.VK_ENTER) {
                for (ActionListener l : actionAddValueListeners) {
                    l.actionPerformed(new ActionEvent(new Object(), 0, "Add"));
                }
                dispose();
            } else if (e.getKeyCode() == KeyEvent.VK_ESCAPE) {
                dispose();
            }
        }
    });

    //build panel
    FormLayout layout = new FormLayout("5px, r:p, 5px, 200, 5px", "3px, p, 1px, p");
    PanelBuilder builder = new PanelBuilder(layout);
    builder.setOpaque(true);

    CellConstraints cc = new CellConstraints();

    builder.addLabel(description, cc.xy(2, 2));
    builder.add(tfValue, cc.xy(4, 2));

    JButton bCancel = new JButton(Messages.getString("ML.TextInputDialog.bCancel"));
    if (bCancel.getPreferredSize().width < MIN_BUTTON_WIDTH)
        bCancel.setPreferredSize(new Dimension(MIN_BUTTON_WIDTH, bCancel.getPreferredSize().height));
    bCancel.addMouseListener(new MouseAdapter() {
        @Override
        public void mouseClicked(MouseEvent e) {
            dispose();
        }
    });
    JButton bOk = new JButton(Messages.getString("ML.TextInputDialog.bOk"));
    if (bOk.getPreferredSize().width < MIN_BUTTON_WIDTH)
        bOk.setPreferredSize(new Dimension(MIN_BUTTON_WIDTH, bOk.getPreferredSize().height));
    bOk.addMouseListener(new MouseAdapter() {
        @Override
        public void mouseClicked(MouseEvent e) {
            for (ActionListener l : actionAddValueListeners) {
                l.actionPerformed(new ActionEvent(new Object(), 0, "Add"));
            }
        }
    });

    JPanel bPanel = new JPanel();
    bPanel.setAlignmentX(CENTER_ALIGNMENT);
    bPanel.add(bOk);
    bPanel.add(bCancel);
    builder.add(bPanel, cc.xyw(2, 4, 3));

    add(builder.getPanel());
    pack();
}

From source file:net.pms.medialibrary.gui.shared.ConditionEntryPanel.java

License:Open Source License

private void applyLayout(ConditionValueType conditionValueType) {
    FormLayout layoutCCondition = new FormLayout("10:grow, 3px, p", // columns
            "p"); // rows
    PanelBuilder builderCCondition = new PanelBuilder(layoutCCondition);
    builderCCondition.setOpaque(true);// w w  w  .  ja  v a2 s  .co  m

    CellConstraints cc = new CellConstraints();

    switch (conditionValueType) {
    case TIMESPAN:
        Object selectedItemCD = cbConditionUnit.getSelectedItem();
        cbConditionUnit.removeAllItems();
        for (ConditionUnit unit : ConditionUnit.values()) {
            if (unit.toString().startsWith("TIMESPAN_")) {
                cbConditionUnit.addItem(
                        new ConditionUnitCBItem(unit, Messages.getString("ML.Condition.Unit." + unit)));
            }
        }
        if (selectedItemCD != null) {
            cbConditionUnit.setSelectedItem(selectedItemCD);
        } else {
            cbConditionUnit.setSelectedItem(new ConditionUnitCBItem(ConditionUnit.TIMESPAN_MINUTES,
                    Messages.getString("ML.Condition.Unit." + ConditionUnit.TIMESPAN_MINUTES)));
        }

        builderCCondition.add(tfCondition, cc.xy(1, 1));
        builderCCondition.add(cbConditionUnit, cc.xy(3, 1));
        break;
    case FILESIZE:
        selectedItemCD = cbConditionUnit.getSelectedItem();
        cbConditionUnit.removeAllItems();
        for (ConditionUnit unit : ConditionUnit.values()) {
            if (unit.toString().startsWith("FILESIZE_")) {
                cbConditionUnit.addItem(
                        new ConditionUnitCBItem(unit, Messages.getString("ML.Condition.Unit." + unit)));
            }
        }
        if (selectedItemCD != null) {
            cbConditionUnit.setSelectedItem(selectedItemCD);
        } else {
            cbConditionUnit.setSelectedItem(new ConditionUnitCBItem(ConditionUnit.FILESIZE_MEGABYTE,
                    Messages.getString("ML.Condition.Unit." + ConditionUnit.FILESIZE_MEGABYTE)));
        }

        builderCCondition.add(tfCondition, cc.xy(1, 1));
        builderCCondition.add(cbConditionUnit, cc.xy(3, 1));
        break;
    case DATETIME:
        builderCCondition.add(calendar, cc.xyw(1, 1, 3));
        break;
    default:
        builderCCondition.add(tfCondition, cc.xyw(1, 1, 3));
        break;
    }
    cCondition.removeAll();
    cCondition.add(builderCCondition.getPanel());
    cCondition.validate();
}

From source file:net.pms.medialibrary.gui.shared.FileImportTemplatePanel.java

License:Open Source License

/**
 * Places the visual components correctly in the grid. Components being shown are the combo box containing 
 * the templates, all file properties with their list of engines and the buttons
 *//*from w w  w . j  a  v a 2s.  c  om*/
private void placeComponents() {
    FormLayout layout = new FormLayout("fill:p:grow, 5px, p, 5px, p, 5px, p", "p, 5px, fill:p:grow");
    PanelBuilder builder = new PanelBuilder(layout);
    builder.setOpaque(true);

    CellConstraints cc = new CellConstraints();

    //create top panel with combo box and and buttons
    builder.addLabel(Messages.getString("ML.FileImportConfigurationPanel.lTemplate"),
            cc.xy(1, 1, CellConstraints.RIGHT, CellConstraints.DEFAULT));
    builder.add(cbTemplate, cc.xy(3, 1));
    builder.add(bNewTemplate, cc.xy(5, 1));
    builder.add(bDeleteTemplate, cc.xy(7, 1));
    builder.add(tpProperties, cc.xyw(1, 3, 7));

    //build the dialog
    setLayout(new GridLayout());
    removeAll();
    add(builder.getPanel());

    for (ActionListener l : repaintListeners) {
        l.actionPerformed(new ActionEvent(this, 0, "Repaint"));
    }
}

From source file:net.pms.medialibrary.gui.tab.GeneralOptionsView.java

License:Open Source License

private Component buildScanner() {
    final FormLayout layout = new FormLayout("p, 5px, 100px, 3dlu, p, 3dlu, p, 3dlu, fill:10:grow",
            "p, 3dlu,  p, 3dlu, p, 3dlu, p");
    final PanelBuilder builder = new PanelBuilder(layout);
    builder.setOpaque(true);/*  w  w  w.  j a  v  a2 s . c  om*/
    final CellConstraints cc = new CellConstraints();

    JComponent sScanner = builder.addSeparator(Messages.getString("ML.GeneralOptionsView.sScanner"),
            cc.xyw(1, 1, 9));
    sScanner = (JComponent) sScanner.getComponent(0);
    sScanner.setFont(sScanner.getFont().deriveFont(Font.BOLD));

    final JLabel lScanState = builder.addLabel(Messages.getString("ML.GeneralOptionsView.lScanState"),
            cc.xy(1, 3));
    this.lScanState = new JLabel(Messages.getString("ML.ScanState.IDLE"));
    builder.add(this.lScanState, cc.xy(3, 3));
    this.bStartPauseScan = new JButton(Messages.getString("ML.GeneralOptionsView.bPause"));
    lScanState.setPreferredSize(
            new Dimension(lScanState.getPreferredSize().width, bStartPauseScan.getPreferredSize().height));
    this.bStartPauseScan.addMouseListener(new MouseAdapter() {
        @Override
        public void mouseClicked(final MouseEvent e) {
            if (scanState == ScanState.RUNNING) {
                try {
                    libraryManager.pauseScan();
                    bStartPauseScan.setText(Messages.getString("ML.GeneralOptionsView.bResume"));
                } catch (final ScanStateException ex) {
                    if (log.isInfoEnabled()) {
                        log.info("Unable to pause scan when its state is " + ex.getCurrentState()
                                + ". It can only be used when in state " + ex.getExpectedState());
                    }
                }
            } else if (scanState == ScanState.PAUSED) {
                try {
                    libraryManager.unPauseScan();
                    bStartPauseScan.setText(Messages.getString("ML.GeneralOptionsView.bPause"));
                } catch (final ScanStateException ex) {
                    if (log.isInfoEnabled()) {
                        log.info("Unable to pause scan when its state is " + ex.getCurrentState()
                                + ". It can only be used when in state " + ex.getExpectedState());
                    }
                }
            }
        }
    });
    builder.add(this.bStartPauseScan, cc.xy(5, 3));
    this.bStopScan = new JButton(Messages.getString("ML.GeneralOptionsView.bStopScan"));
    this.bStopScan.addMouseListener(new MouseAdapter() {
        @Override
        public void mouseClicked(final MouseEvent e) {
            libraryManager.stopScan();
        }

    });
    builder.add(this.bStopScan, cc.xy(7, 3));

    this.bScanFolder = new JButton(Messages.getString("ML.GeneralOptionsView.bScanFolder"));
    this.bScanFolder.addMouseListener(new MouseAdapter() {
        @Override
        public void mouseClicked(final MouseEvent e) {
            final JFileChooser fc = new JFileChooser(MediaLibraryStorage.getInstance()
                    .getMetaDataValue(MetaDataKeys.LAST_SCAN_FOLDER_PATH.toString()));
            fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

            if (fc.showOpenDialog(bScanFolder.getTopLevelAncestor()) == JFileChooser.APPROVE_OPTION) {
                final ScanFolderDialog d = new ScanFolderDialog(fc.getSelectedFile().getAbsolutePath());
                d.setModal(true);
                d.setResizable(false);
                d.pack();
                d.setLocation(GUIHelper.getCenterDialogOnParentLocation(d.getSize(), bScanFolder));

                d.setVisible(true);
                if (d.isDoImport()) {
                    final File f = new File(d.getManagedFolder().getPath());
                    MediaLibraryStorage.getInstance()
                            .setMetaDataValue(MetaDataKeys.LAST_SCAN_FOLDER_PATH.toString(), f.getParent());
                    importScannerService.scan(d.getManagedFolder());
                }
            }
        }

    });
    builder.add(this.bScanFolder, cc.xyw(1, 5, 3));
    return builder.getPanel();
}

From source file:net.pms.medialibrary.gui.tab.GeneralOptionsView.java

License:Open Source License

private Component buildGeneral() {
    final FormLayout layout = new FormLayout("r:p, 3px, fill:10:grow, 3px, p, 3px, p, 3px, p, 3px, p",
            "p, 3px, p, 3px, p");
    final PanelBuilder builder = new PanelBuilder(layout);
    builder.setOpaque(true);/*from  ww w.ja v  a 2  s . co  m*/
    final CellConstraints cc = new CellConstraints();

    //header
    final JLabel lPictureFolderPathTitle = new JLabel(
            Messages.getString("ML.GeneralOptionsView.lPictureFolderPathTitle"));
    builder.add(lPictureFolderPathTitle, cc.xy(1, 1));

    //picture save folder path
    tfPictureFolderPathValue = new JTextField();
    tfPictureFolderPathValue.setEditable(false);
    builder.add(tfPictureFolderPathValue, cc.xyw(3, 1, 7));

    final JButton bBrowsePictureFolderPath = new JButton(
            Messages.getString("ML.GeneralOptionsView.bBrowsePictureFolderPath"));
    bBrowsePictureFolderPath.addMouseListener(new MouseAdapter() {

        @Override
        public void mouseClicked(final MouseEvent e) {
            JFileChooser chooser = null;
            final File f = new File(tfPictureFolderPathValue.getText());
            if (f.isDirectory()) {
                chooser = new JFileChooser(f.getAbsoluteFile());
            } else {
                chooser = new JFileChooser();
            }

            chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
            final int returnVal = chooser.showDialog((Component) e.getSource(),
                    Messages.getString("ML.General.FolderChooser.Title"));
            if (returnVal == JFileChooser.APPROVE_OPTION) {
                final String folderPath = chooser.getSelectedFile().getAbsolutePath();
                tfPictureFolderPathValue.setText(folderPath);
            }
        }
    });
    builder.add(bBrowsePictureFolderPath, cc.xy(11, 1));

    //prefixes to ignore
    lOmitPrefix = new JLabel(Messages.getString("ML.General.OmitPrefixes.Heading"));
    builder.add(lOmitPrefix, cc.xy(1, 3));

    tfOmitPrefix = new JTextField();
    builder.add(tfOmitPrefix, cc.xyw(3, 3, 3));

    builder.addLabel(Messages.getString("ML.General.OmitPrefixes.When"), cc.xy(7, 3));

    cbOmitSorting = new JCheckBox(Messages.getString("ML.General.OmitPrefixes.Sort"));
    builder.add(cbOmitSorting, cc.xy(9, 3));

    cbOmitFiltering = new JCheckBox(Messages.getString("ML.General.OmitPrefixes.Filter"));
    builder.add(cbOmitFiltering, cc.xy(11, 3));

    //set initial values
    tfPictureFolderPathValue.setText(libConfig.getPictureSaveFolderPath());

    final OmitPrefixesConfiguration omitCfg = libConfig.getOmitPrefixesConfiguration();
    String prefixes = "";
    for (final String k : omitCfg.getPrefixes()) {
        prefixes += k + " ";
    }
    prefixes = prefixes.trim();

    tfOmitPrefix.setText(prefixes);
    cbOmitSorting.setSelected(omitCfg.isSorting());
    cbOmitFiltering.setSelected(omitCfg.isFiltering());

    return builder.getPanel();
}

From source file:net.pms.medialibrary.gui.tab.GeneralOptionsView.java

License:Open Source License

private JComponent buildLibrary() {
    final FormLayout layout = new FormLayout("p, right:p, 5px, 40px, 3dlu, p, 3dlu, fill:0:grow, p",
            "p, p, p, p");
    final PanelBuilder builder = new PanelBuilder(layout);
    builder.setOpaque(true);//from  w  ww.j  a va2  s  .  c  o m
    final CellConstraints cc = new CellConstraints();

    JComponent sManageLibrary = builder.addSeparator(Messages.getString("ML.GeneralOptionsView.sManageLibrary"),
            cc.xyw(1, 1, 9));
    sManageLibrary = (JComponent) sManageLibrary.getComponent(0);
    sManageLibrary.setFont(sManageLibrary.getFont().deriveFont(Font.BOLD));

    builder.addLabel(Messages.getString("ML.GeneralOptionsView.lVideos"), cc.xy(2, 2));
    this.lVideoCount = new JLabel(String.valueOf(this.libraryManager.getVideoCount()));
    builder.add(this.lVideoCount, cc.xy(4, 2));
    this.bClearVideo = new JButton(Messages.getString("ML.GeneralOptionsView.bClear"));
    this.bClearVideo.addMouseListener(new MouseAdapter() {
        @Override
        public void mouseClicked(final MouseEvent e) {
            switch (JOptionPane.showConfirmDialog(bClearVideo.getTopLevelAncestor(),
                    Messages.getString("ML.GeneralOptionsView.DeleteAllVideosMsg"))) {
            case JOptionPane.YES_OPTION:
                libraryManager.clearVideo();
                break;
            }
        }

    });
    builder.add(this.bClearVideo, cc.xy(6, 2));

    final JButton bResetLibrary = new JButton(Messages.getString("ML.GeneralOptionsView.bResetLibrary"));
    bResetLibrary.addMouseListener(new MouseAdapter() {
        @Override
        public void mouseClicked(final MouseEvent e) {
            if (JOptionPane.showConfirmDialog(bClearVideo.getTopLevelAncestor(),
                    String.format(Messages.getString("ML.GeneralOptionsView.ResetDBMsg"),
                            System.getProperty("line.separator"))) == JOptionPane.YES_OPTION) {
                try {
                    // reset the storage
                    libraryManager.resetStorage();

                    // update the configuration fields that have to be
                    final MediaLibraryConfiguration config = MediaLibraryConfiguration.getInstance();
                    cbEnableMediaLibrary.setSelected(config.isMediaLibraryEnabled());
                    tfPictureFolderPathValue.setText(config.getPictureSaveFolderPath());

                    final OmitPrefixesConfiguration omitCfg = libConfig.getOmitPrefixesConfiguration();
                    String prefixes = "";
                    for (final String k : omitCfg.getPrefixes()) {
                        prefixes += k + " ";
                    }
                    prefixes = prefixes.trim();
                    tfOmitPrefix.setText(prefixes);
                    cbOmitFiltering.setSelected(omitCfg.isFiltering());
                    cbOmitSorting.setSelected(omitCfg.isSorting());
                    net.pms.PMS.get().getFrame()
                            .setStatusLine(Messages.getString("ML.GeneralOptionsView.ResetDBDoneMsg"));
                } catch (final Exception ex) {
                    log.error("Failed to reset data base", ex);
                }
            }
        }
    });
    builder.add(bResetLibrary, cc.xy(9, 2));

    builder.addLabel(Messages.getString("ML.GeneralOptionsView.lTracks"), cc.xy(2, 3));
    this.lAudioCount = new JLabel(String.valueOf(this.libraryManager.getAudioCount()));
    builder.add(this.lAudioCount, cc.xy(4, 3));
    this.bClearAudio = new JButton(Messages.getString("ML.GeneralOptionsView.bClear"));
    this.bClearAudio.addMouseListener(new MouseAdapter() {
        @Override
        public void mouseClicked(final MouseEvent e) {
            switch (JOptionPane.showConfirmDialog(bClearAudio.getTopLevelAncestor(),
                    Messages.getString("ML.GeneralOptionsView.DeleteAllTracksMsg"))) {
            case JOptionPane.YES_OPTION:
                libraryManager.clearAudio();
                break;
            }
        }

    });
    builder.add(this.bClearAudio, cc.xy(6, 3));

    final JButton bCleanLibrary = new JButton(Messages.getString("ML.GeneralOptionsView.bClearLibrary"));
    bCleanLibrary.addMouseListener(new MouseAdapter() {
        @Override
        public void mouseClicked(final MouseEvent e) {
            if (JOptionPane.showConfirmDialog(bClearVideo.getTopLevelAncestor(),
                    String.format(Messages.getString("ML.GeneralOptionsView.CleanDBMsg"),
                            System.getProperty("line.separator"))) == JOptionPane.YES_OPTION) {
                try {
                    // clean the storage
                    libraryManager.cleanStorage();
                } catch (final Exception ex) {
                    log.error("Failed the library", ex);
                }
            }
        }
    });
    builder.add(bCleanLibrary, cc.xy(9, 3));

    builder.addLabel(Messages.getString("ML.GeneralOptionsView.lPictures"), cc.xy(2, 4));
    this.lPicturesCount = new JLabel(String.valueOf(this.libraryManager.getPictureCount()));
    builder.add(this.lPicturesCount, cc.xy(4, 4));
    this.bClearPictures = new JButton(Messages.getString("ML.GeneralOptionsView.bClear"));
    this.bClearPictures.addMouseListener(new MouseAdapter() {
        @Override
        public void mouseClicked(final MouseEvent e) {
            switch (JOptionPane.showConfirmDialog(bClearPictures.getTopLevelAncestor(),
                    Messages.getString("ML.GeneralOptionsView.DeleteAllPicturesMsg"))) {
            case JOptionPane.YES_OPTION:
                libraryManager.clearAudio();
                break;
            }
        }

    });
    builder.add(this.bClearPictures, cc.xy(6, 4));

    return builder.getPanel();
}

From source file:net.pms.movieinfo.MovieInfo.java

License:Open Source License

@Override
public JComponent config() {
    FormLayout layout = new FormLayout(
            "left:pref, 2dlu, p,2dlu, p,2dlu, p, 2dlu, p, 2dlu, p,2dlu, p,200dlu, pref:grow", //$NON-NLS-1$
            "p, 5dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, 0:grow"); //$NON-NLS-1$
    PanelBuilder builder = new PanelBuilder(layout);
    builder.setBorder(Borders.EMPTY_BORDER);
    builder.setOpaque(false);/*  www  .  j av a2s.c o m*/

    CellConstraints cc = new CellConstraints();

    JComponent cmp = builder.addSeparator("MOVIE INFO CONFIG", cc.xy(1, 1));
    cmp = (JComponent) cmp.getComponent(0);
    cmp.setFont(cmp.getFont().deriveFont(Font.BOLD));

    PluginsField = new JTextField();
    if (Plugins != null)
        PluginsField.setText(Plugins);
    PluginsField.addKeyListener(new KeyListener() {

        @Override
        public void keyPressed(KeyEvent e) {
        }

        @Override
        public void keyTyped(KeyEvent e) {
        }

        @Override
        public void keyReleased(KeyEvent e) {
            PMS.getConfiguration().setCustomProperty("cmd", PluginsField.getText());
        }

    });
    builder.addLabel("Plugins:", cc.xy(1, 3));
    builder.add(PluginsField, cc.xyw(3, 3, 12));

    NumberOfActorsField = new JTextField();
    if (NumberOfActors != null)
        NumberOfActorsField.setText(NumberOfActors);
    NumberOfActorsField.addKeyListener(new KeyListener() {

        @Override
        public void keyPressed(KeyEvent e) {
        }

        @Override
        public void keyTyped(KeyEvent e) {
        }

        @Override
        public void keyReleased(KeyEvent e) {
            PMS.getConfiguration().setCustomProperty("cmd", NumberOfActorsField.getText());
        }

    });
    builder.addLabel("NumberOfActors:", cc.xy(1, 5));
    builder.add(NumberOfActorsField, cc.xy(3, 5));

    CoverField = new JCheckBox();
    CoverField.addKeyListener(new KeyListener() {

        @Override
        public void keyPressed(KeyEvent e) {
        }

        @Override
        public void keyTyped(KeyEvent e) {
        }

        @Override
        public void keyReleased(KeyEvent e) {
            PMS.getConfiguration().setCustomProperty("cmd", CoverField.getText());
        }

    });
    builder.addLabel("Download Cover To Folder:", cc.xy(5, 5));
    builder.add(CoverField, cc.xy(7, 5));

    DisplayInfoField = new JTextField();
    if (DisplayInfo != null)
        DisplayInfoField.setText(DisplayInfo);
    DisplayInfoField.addKeyListener(new KeyListener() {

        @Override
        public void keyPressed(KeyEvent e) {
        }

        @Override
        public void keyTyped(KeyEvent e) {
        }

        @Override
        public void keyReleased(KeyEvent e) {
            PMS.getConfiguration().setCustomProperty("cmd", DisplayInfoField.getText());
        }

    });
    builder.addLabel("DisplayInfo:", cc.xy(13, 5));
    builder.add(DisplayInfoField, cc.xyw(14, 5, 2));

    LinelengthField = new JTextField();
    if (Linelength != null)
        LinelengthField.setText(Linelength);
    LinelengthField.addKeyListener(new KeyListener() {

        @Override
        public void keyPressed(KeyEvent e) {
        }

        @Override
        public void keyTyped(KeyEvent e) {
        }

        @Override
        public void keyReleased(KeyEvent e) {
            PMS.getConfiguration().setCustomProperty("cmd", LinelengthField.getText());
        }

    });
    builder.addLabel("Linelength:", cc.xy(9, 5));
    builder.add(LinelengthField, cc.xy(11, 5));

    FilterField = new JTextField();
    if (Filter != null)
        FilterField.setText(Filter);
    FilterField.addKeyListener(new KeyListener() {

        @Override
        public void keyPressed(KeyEvent e) {
        }

        @Override
        public void keyTyped(KeyEvent e) {
        }

        @Override
        public void keyReleased(KeyEvent e) {
            PMS.getConfiguration().setCustomProperty("cmd", FilterField.getText());
        }

    });
    builder.addLabel("Filter:", cc.xy(1, 7));
    builder.add(FilterField, cc.xyw(3, 7, 12));

    return builder.getPanel();
}

From source file:net.pms.newgui.FoldTab.java

License:Open Source License

public JComponent build() {
    FormLayout layout = new FormLayout(
            "left:pref, 50dlu, pref, 150dlu, pref, 25dlu, pref, 25dlu, pref, default:grow", //$NON-NLS-1$
            "p, 3dlu,  p, 3dlu, p, 3dlu,  p, 3dlu, p, 15dlu, p, 3dlu, p, 3dlu,  p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 15dlu, fill:default:grow"); //$NON-NLS-1$
    PanelBuilder builder = new PanelBuilder(layout);
    builder.setBorder(Borders.DLU4_BORDER);
    builder.setOpaque(true);/*from w w  w  .  ja v  a2  s.  c  o m*/

    CellConstraints cc = new CellConstraints();

    df = new DefaultListModel();
    if (PMS.getConfiguration().getFolders() != null && PMS.getConfiguration().getFolders().length() > 0) {
        try {
            File f[] = PMS.get().loadFoldersConf(PMS.getConfiguration().getFolders());
            for (File file : f) {
                df.addElement(file.getAbsolutePath());
            }
            if (f == null || f.length == 0) {
                df.addElement(ALL_DRIVES);
            }
        } catch (IOException e1) {
            PMS.error(null, e1);
        }
    } else
        df.addElement(ALL_DRIVES);
    FList = new JList();
    FList.setModel(df);
    JScrollPane pane = new JScrollPane(FList);

    JComponent cmp = builder.addSeparator(Messages.getString("FoldTab.13"), cc.xyw(1, 1, 10)); //$NON-NLS-1$
    cmp = (JComponent) cmp.getComponent(0);
    cmp.setFont(cmp.getFont().deriveFont(Font.BOLD));

    tncheckBox = new JCheckBox(Messages.getString("NetworkTab.2")); //$NON-NLS-1$
    tncheckBox.setContentAreaFilled(false);
    tncheckBox.addItemListener(new ItemListener() {

        public void itemStateChanged(ItemEvent e) {
            PMS.getConfiguration().setThumbnailsEnabled((e.getStateChange() == ItemEvent.SELECTED));
        }

    });
    if (PMS.getConfiguration().getThumbnailsEnabled())
        tncheckBox.setSelected(true);
    builder.add(tncheckBox, cc.xyw(1, 3, 3));

    seekpos = new JTextField("" + configuration.getThumbnailSeekPos()); //$NON-NLS-1$
    seekpos.addKeyListener(new KeyListener() {

        @Override
        public void keyPressed(KeyEvent e) {
        }

        @Override
        public void keyTyped(KeyEvent e) {
        }

        @Override
        public void keyReleased(KeyEvent e) {
            try {
                int ab = Integer.parseInt(seekpos.getText());
                configuration.setThumbnailSeekPos(ab);
            } catch (NumberFormatException nfe) {
            }

        }

    });

    builder.addLabel(Messages.getString("NetworkTab.16"), cc.xyw(4, 3, 3)); //$NON-NLS-1$
    builder.add(seekpos, cc.xyw(6, 3, 2));

    mplayer_thumb = new JCheckBox(Messages.getString("FoldTab.14")); //$NON-NLS-1$
    mplayer_thumb.setContentAreaFilled(false);
    mplayer_thumb.addItemListener(new ItemListener() {

        public void itemStateChanged(ItemEvent e) {
            PMS.getConfiguration().setUseMplayerForVideoThumbs((e.getStateChange() == ItemEvent.SELECTED));
        }

    });
    if (PMS.getConfiguration().isUseMplayerForVideoThumbs())
        mplayer_thumb.setSelected(true);
    builder.add(mplayer_thumb, cc.xyw(1, 5, 3));

    dvdiso_thumb = new JCheckBox(Messages.getString("FoldTab.19"));
    dvdiso_thumb.setContentAreaFilled(false);
    dvdiso_thumb.addItemListener(new ItemListener() {

        public void itemStateChanged(ItemEvent e) {
            PMS.getConfiguration().setDvdIsoThumbnails((e.getStateChange() == ItemEvent.SELECTED));
        }

    });
    if (PMS.getConfiguration().isDvdIsoThumbnails())
        dvdiso_thumb.setSelected(true);
    builder.add(dvdiso_thumb, cc.xyw(3, 5, 3));

    final KeyedComboBoxModel thumbKCBM = new KeyedComboBoxModel(new Object[] { "0", "1", "2" }, //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$
            new Object[] { Messages.getString("FoldTab.15"), Messages.getString("FoldTab.23"), //$NON-NLS-1$//$NON-NLS-2$
                    Messages.getString("FoldTab.24") }); //$NON-NLS-1$
    audiothumbnail = new JComboBox(thumbKCBM);
    audiothumbnail.setEditable(false);

    thumbKCBM.setSelectedKey("" + configuration.getAudioThumbnailMethod()); //$NON-NLS-1$

    audiothumbnail.addItemListener(new ItemListener() {

        public void itemStateChanged(ItemEvent e) {
            if (e.getStateChange() == ItemEvent.SELECTED) {

                try {
                    configuration
                            .setAudioThumbnailMethod(Integer.parseInt((String) thumbKCBM.getSelectedKey()));
                    PMS.get().getFrame().setReloadable(true);
                } catch (NumberFormatException nfe) {
                }

            }
        }

    });
    builder.addLabel(Messages.getString("FoldTab.26"), cc.xyw(1, 7, 3)); //$NON-NLS-1$
    builder.add(audiothumbnail, cc.xyw(4, 7, 4));

    builder.addLabel(Messages.getString("FoldTab.27"), cc.xyw(1, 9, 3)); //$NON-NLS-1$
    defaultThumbFolder = new JTextField(configuration.getAlternateThumbFolder());
    defaultThumbFolder.addKeyListener(new KeyListener() {

        @Override
        public void keyPressed(KeyEvent e) {
        }

        @Override
        public void keyTyped(KeyEvent e) {
        }

        @Override
        public void keyReleased(KeyEvent e) {
            configuration.setAlternateThumbFolder(defaultThumbFolder.getText());
        }

    });
    builder.add(defaultThumbFolder, cc.xyw(4, 9, 3));

    JButton select = new JButton("..."); //$NON-NLS-1$
    select.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            JFileChooser chooser = null;
            try {
                chooser = new JFileChooser();
            } catch (Exception ee) {
                chooser = new JFileChooser(new RestrictedFileSystemView());
            }
            chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
            int returnVal = chooser.showDialog((Component) e.getSource(), Messages.getString("FoldTab.28")); //$NON-NLS-1$
            if (returnVal == JFileChooser.APPROVE_OPTION) {
                defaultThumbFolder.setText(chooser.getSelectedFile().getAbsolutePath());
                PMS.get().getFrame().setReloadable(true);
                configuration.setAlternateThumbFolder(chooser.getSelectedFile().getAbsolutePath());
            }
        }

    });
    builder.add(select, cc.xyw(7, 9, 1));

    cmp = builder.addSeparator(Messages.getString("NetworkTab.15"), cc.xyw(1, 11, 10)); //$NON-NLS-1$
    cmp = (JComponent) cmp.getComponent(0);
    cmp.setFont(cmp.getFont().deriveFont(Font.BOLD));

    hidevideosettings = new JCheckBox(Messages.getString("FoldTab.6")); //$NON-NLS-1$
    hidevideosettings.setContentAreaFilled(false);
    if (PMS.getConfiguration().getHideVideoSettings())
        hidevideosettings.setSelected(true);
    hidevideosettings.addItemListener(new ItemListener() {

        public void itemStateChanged(ItemEvent e) {
            PMS.getConfiguration().setHideVideoSettings((e.getStateChange() == ItemEvent.SELECTED));
            PMS.get().getFrame().setReloadable(true);
        }

    });

    hidetranscode = new JCheckBox(Messages.getString("FoldTab.33")); //$NON-NLS-1$
    hidetranscode.setContentAreaFilled(false);
    if (PMS.getConfiguration().getHideTranscodeEnabled())
        hidetranscode.setSelected(true);
    hidetranscode.addItemListener(new ItemListener() {
        public void itemStateChanged(ItemEvent e) {
            PMS.getConfiguration().setHideTranscodeEnabled((e.getStateChange() == ItemEvent.SELECTED));
            PMS.get().getFrame().setReloadable(true);
        }
    });

    hidemedialibraryfolder = new JCheckBox(Messages.getString("FoldTab.32")); //$NON-NLS-1$
    hidemedialibraryfolder.setContentAreaFilled(false);
    if (PMS.getConfiguration().isHideMediaLibraryFolder())
        hidemedialibraryfolder.setSelected(true);
    hidemedialibraryfolder.addItemListener(new ItemListener() {

        public void itemStateChanged(ItemEvent e) {
            PMS.getConfiguration().setHideMediaLibraryFolder((e.getStateChange() == ItemEvent.SELECTED));
            PMS.get().getFrame().setReloadable(true);
        }

    });

    archive = new JCheckBox(Messages.getString("NetworkTab.1")); //$NON-NLS-1$
    archive.setContentAreaFilled(false);
    archive.addItemListener(new ItemListener() {

        public void itemStateChanged(ItemEvent e) {
            PMS.getConfiguration().setArchiveBrowsing(e.getStateChange() == ItemEvent.SELECTED);
            if (PMS.get().getFrame() != null)
                PMS.get().getFrame().setReloadable(true);
        }

    });
    if (PMS.getConfiguration().isArchiveBrowsing())
        archive.setSelected(true);

    builder.add(archive, cc.xyw(1, 13, 3));

    /*disablefakesize = new JCheckBox(Messages.getString("FoldTab.11"));  //$NON-NLS-1$
    disablefakesize.setContentAreaFilled(false);
    if (PMS.getConfiguration().isDisableFakeSize())
       disablefakesize.setSelected(true);
    disablefakesize.addItemListener(new ItemListener() {
            
      public void itemStateChanged(ItemEvent e) {
     PMS.getConfiguration().setDisableFakeSize((e.getStateChange() == ItemEvent.SELECTED));
     PMS.get().getFrame().setReloadable(true);
      }
               
    });
    builder.add(disablefakesize,          cc.xyw(1,  7, 7));
    */
    final JButton cachereset = new JButton(Messages.getString("NetworkTab.18")); //$NON-NLS-1$

    cacheenable = new JCheckBox(Messages.getString("NetworkTab.17")); //$NON-NLS-1$
    cacheenable.setContentAreaFilled(false);
    cacheenable.setSelected(PMS.getConfiguration().getUseCache());
    cacheenable.addItemListener(new ItemListener() {

        public void itemStateChanged(ItemEvent e) {
            PMS.getConfiguration().setUseCache((e.getStateChange() == ItemEvent.SELECTED));
            cachereset.setEnabled(PMS.getConfiguration().getUseCache());
            PMS.get().getFrame().setReloadable(true);
            if ((LooksFrame) PMS.get().getFrame() != null)
                ((LooksFrame) PMS.get().getFrame()).getFt()
                        .setScanLibraryEnabled(PMS.getConfiguration().getUseCache());
        }

    });

    //cacheenable.setEnabled(false);

    builder.add(cacheenable, cc.xy(1, 19));

    cachereset.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            int option = JOptionPane.showConfirmDialog((Component) PMS.get().getFrame(),
                    Messages.getString("NetworkTab.13") + //$NON-NLS-1$
            Messages.getString("NetworkTab.19"), //$NON-NLS-1$
                    "Question", //$NON-NLS-1$
                    JOptionPane.YES_NO_OPTION);
            if (option == JOptionPane.YES_OPTION) {
                PMS.get().getDatabase().init(true);
            }

        }

    });
    builder.add(cachereset, cc.xyw(4, 19, 4));

    cachereset.setEnabled(PMS.getConfiguration().getUseCache());

    builder.add(hidevideosettings, cc.xyw(4, 13, 3));

    builder.add(hidetranscode, cc.xyw(8, 13, 3));

    builder.add(hidemedialibraryfolder, cc.xyw(8, 19, 3));

    hideextensions = new JCheckBox(Messages.getString("FoldTab.5")); //$NON-NLS-1$
    hideextensions.setContentAreaFilled(false);
    if (PMS.getConfiguration().isHideExtensions())
        hideextensions.setSelected(true);
    hideextensions.addItemListener(new ItemListener() {

        public void itemStateChanged(ItemEvent e) {
            PMS.getConfiguration().setHideExtensions((e.getStateChange() == ItemEvent.SELECTED));
            PMS.get().getFrame().setReloadable(true);
        }

    });
    builder.add(hideextensions, cc.xyw(1, 15, 3));

    hideengines = new JCheckBox(Messages.getString("FoldTab.8")); //$NON-NLS-1$
    hideengines.setContentAreaFilled(false);
    if (PMS.getConfiguration().isHideEngineNames())
        hideengines.setSelected(true);
    hideengines.addItemListener(new ItemListener() {

        public void itemStateChanged(ItemEvent e) {
            PMS.getConfiguration().setHideEngineNames((e.getStateChange() == ItemEvent.SELECTED));
            PMS.get().getFrame().setReloadable(true);
        }

    });
    builder.add(hideengines, cc.xyw(4, 15, 3));

    hideemptyfolders = new JCheckBox(Messages.getString("FoldTab.31")); //$NON-NLS-1$
    hideemptyfolders.setContentAreaFilled(false);
    if (PMS.getConfiguration().isHideEmptyFolders())
        hideemptyfolders.setSelected(true);
    hideemptyfolders.addItemListener(new ItemListener() {

        public void itemStateChanged(ItemEvent e) {
            PMS.getConfiguration().setHideEmptyFolders((e.getStateChange() == ItemEvent.SELECTED));
            PMS.get().getFrame().setReloadable(true);
        }

    });
    builder.add(hideemptyfolders, cc.xyw(8, 15, 3));

    itunes = new JCheckBox(Messages.getString("FoldTab.30")); //$NON-NLS-1$
    itunes.setContentAreaFilled(false);
    if (PMS.getConfiguration().getItunesEnabled())
        itunes.setSelected(true);
    if (!(Platform.isMac() || Platform.isWindows()))
        itunes.setEnabled(false);
    itunes.addItemListener(new ItemListener() {

        public void itemStateChanged(ItemEvent e) {
            PMS.getConfiguration().setItunesEnabled((e.getStateChange() == ItemEvent.SELECTED));
            PMS.get().getFrame().setReloadable(true);
        }

    });
    builder.add(itunes, cc.xyw(1, 17, 3));

    iphoto = new JCheckBox(Messages.getString("FoldTab.29")); //$NON-NLS-1$
    iphoto.setContentAreaFilled(false);
    if (PMS.getConfiguration().getIphotoEnabled())
        iphoto.setSelected(true);
    if (!Platform.isMac())
        iphoto.setEnabled(false);
    iphoto.addItemListener(new ItemListener() {
        public void itemStateChanged(ItemEvent e) {
            PMS.getConfiguration().setIphotoEnabled((e.getStateChange() == ItemEvent.SELECTED));
            PMS.get().getFrame().setReloadable(true);
        }
    });
    builder.add(iphoto, cc.xyw(4, 17, 3));

    final KeyedComboBoxModel kcbm = new KeyedComboBoxModel(new Object[] { "0", "1" }, //$NON-NLS-1$//$NON-NLS-2$
            new Object[] { Messages.getString("FoldTab.15"), Messages.getString("FoldTab.16") }); //$NON-NLS-1$ //$NON-NLS-2$
    sortmethod = new JComboBox(kcbm);
    sortmethod.setEditable(false);

    kcbm.setSelectedKey("" + configuration.getSortMethod()); //$NON-NLS-1$

    sortmethod.addItemListener(new ItemListener() {

        public void itemStateChanged(ItemEvent e) {
            if (e.getStateChange() == ItemEvent.SELECTED) {

                try {
                    configuration.setSortMethod(Integer.parseInt((String) kcbm.getSelectedKey()));
                    PMS.get().getFrame().setReloadable(true);
                } catch (NumberFormatException nfe) {
                }

            }
        }

    });

    builder.addLabel(Messages.getString("FoldTab.18"), cc.xyw(1, 21, 3)); //$NON-NLS-1$
    builder.add(sortmethod, cc.xyw(4, 21, 4));

    FormLayout layoutFolders = new FormLayout("left:pref, left:pref, pref, pref, pref, 0:grow", //$NON-NLS-1$
            "p, 3dlu, p, 3dlu, fill:default:grow"); //$NON-NLS-1$
    PanelBuilder builderFolder = new PanelBuilder(layoutFolders);
    builderFolder.setOpaque(true);

    cmp = builderFolder.addSeparator(Messages.getString("FoldTab.7"), cc.xyw(1, 1, 6)); //$NON-NLS-1$
    cmp = (JComponent) cmp.getComponent(0);
    cmp.setFont(cmp.getFont().deriveFont(Font.BOLD));

    JButton but = new JButton(LooksFrame.readImageIcon("folder_new-32.png")); //$NON-NLS-1$
    //but.setBorder(BorderFactory.createEmptyBorder());
    but.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent e) {
            JFileChooser chooser = null;
            try {
                chooser = new JFileChooser();
            } catch (Exception ee) {
                chooser = new JFileChooser(new RestrictedFileSystemView());
            }
            chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
            //int returnVal = chooser.showDialog((Component) e.getSource(), Messages.getString("FoldTab.9")); //$NON-NLS-1$
            int returnVal = chooser.showOpenDialog((Component) e.getSource());
            if (returnVal == JFileChooser.APPROVE_OPTION) {
                ((DefaultListModel) FList.getModel()).add(FList.getModel().getSize(),
                        chooser.getSelectedFile().getAbsolutePath());
                if (FList.getModel().getElementAt(0).equals(ALL_DRIVES))
                    ((DefaultListModel) FList.getModel()).remove(0);
                updateModel();
            }
        }
    });
    builderFolder.add(but, cc.xy(1, 3));
    JButton but2 = new JButton(LooksFrame.readImageIcon("button_cancel-32.png")); //$NON-NLS-1$
    //but2.setBorder(BorderFactory.createEtchedBorder());
    but2.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent e) {
            if (FList.getSelectedIndex() > -1) {
                ((DefaultListModel) FList.getModel()).remove(FList.getSelectedIndex());
                if (FList.getModel().getSize() == 0)
                    ((DefaultListModel) FList.getModel()).add(0, ALL_DRIVES);
                updateModel();
            }
        }
    });
    builderFolder.add(but2, cc.xy(2, 3));

    JButton but3 = new JButton(LooksFrame.readImageIcon("kdevelop_down-32.png")); //$NON-NLS-1$
    but3.setToolTipText(Messages.getString("FoldTab.12")); //$NON-NLS-1$
    // but3.setBorder(BorderFactory.createEmptyBorder());
    but3.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            DefaultListModel model = ((DefaultListModel) FList.getModel());
            for (int i = 0; i < model.size() - 1; i++) {
                if (FList.isSelectedIndex(i)) {
                    String value = model.get(i).toString();
                    model.set(i, model.get(i + 1));
                    model.set(i + 1, value);
                    FList.setSelectedIndex(i + 1);
                    updateModel();
                    break;
                }
            }
        }
    });

    builderFolder.add(but3, cc.xy(3, 3));
    JButton but4 = new JButton(LooksFrame.readImageIcon("up-32.png")); //$NON-NLS-1$
    but4.setToolTipText(Messages.getString("FoldTab.12")); //$NON-NLS-1$
    //  but4.setBorder(BorderFactory.createEmptyBorder());
    but4.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            DefaultListModel model = ((DefaultListModel) FList.getModel());
            for (int i = 1; i < model.size(); i++) {
                if (FList.isSelectedIndex(i)) {
                    String value = model.get(i).toString();

                    model.set(i, model.get(i - 1));
                    model.set(i - 1, value);
                    FList.setSelectedIndex(i - 1);
                    updateModel();
                    break;

                }
            }
        }
    });
    builderFolder.add(but4, cc.xy(4, 3));

    but5 = new JButton(LooksFrame.readImageIcon("search-32.png")); //$NON-NLS-1$
    but5.setToolTipText(Messages.getString("FoldTab.2")); //$NON-NLS-1$
    //but5.setBorder(BorderFactory.createEmptyBorder());
    but5.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            if (PMS.getConfiguration().getUseCache()) {
                if (!PMS.get().getDatabase().isScanLibraryRunning()) {
                    int option = JOptionPane.showConfirmDialog((Component) PMS.get().getFrame(),
                            Messages.getString("FoldTab.3") + //$NON-NLS-1$
                    Messages.getString("FoldTab.4"), //$NON-NLS-1$
                            "Question", //$NON-NLS-1$
                            JOptionPane.YES_NO_OPTION);
                    if (option == JOptionPane.YES_OPTION) {
                        PMS.get().getDatabase().scanLibrary();
                        but5.setIcon(LooksFrame.readImageIcon("viewmagfit-32.png")); //$NON-NLS-1$
                    }
                } else {
                    int option = JOptionPane.showConfirmDialog((Component) PMS.get().getFrame(),
                            Messages.getString("FoldTab.10"), //$NON-NLS-1$
                            "Question", //$NON-NLS-1$
                            JOptionPane.YES_NO_OPTION);
                    if (option == JOptionPane.YES_OPTION) {
                        PMS.get().getDatabase().stopScanLibrary();
                        PMS.get().getFrame().setStatusLine(null);
                        but5.setIcon(LooksFrame.readImageIcon("search-32.png")); //$NON-NLS-1$
                    }
                }
            }
        }
    });
    builderFolder.add(but5, cc.xy(5, 3));
    but5.setEnabled(PMS.getConfiguration().getUseCache());

    builderFolder.add(pane, cc.xyw(1, 5, 6));

    builder.add(builderFolder.getPanel(), cc.xyw(1, 25, 10));

    return builder.getPanel();
}

From source file:net.pms.newgui.GeneralTab.java

License:Open Source License

public JComponent build() {
    // Apply the orientation for the locale
    Locale locale = new Locale(configuration.getLanguage());
    ComponentOrientation orientation = ComponentOrientation.getOrientation(locale);
    String colSpec = FormLayoutUtil.getColSpec(COL_SPEC, orientation);

    FormLayout layout = new FormLayout(colSpec, ROW_SPEC);
    PanelBuilder builder = new PanelBuilder(layout);
    builder.border(Borders.DLU4);/* ww  w . j av a  2s .  c  om*/
    builder.opaque(true);

    CellConstraints cc = new CellConstraints();

    smcheckBox = new JCheckBox(Messages.getString("NetworkTab.3"));
    smcheckBox.setContentAreaFilled(false);
    smcheckBox.addItemListener(new ItemListener() {
        public void itemStateChanged(ItemEvent e) {
            configuration.setMinimized((e.getStateChange() == ItemEvent.SELECTED));
        }
    });

    if (configuration.isMinimized()) {
        smcheckBox.setSelected(true);
    }

    JComponent cmp = builder.addSeparator(Messages.getString("NetworkTab.5"),
            FormLayoutUtil.flip(cc.xyw(1, 1, 9), colSpec, orientation));
    cmp = (JComponent) cmp.getComponent(0);
    cmp.setFont(cmp.getFont().deriveFont(Font.BOLD));
    builder.addLabel(Messages.getString("NetworkTab.0"),
            FormLayoutUtil.flip(cc.xy(1, 7), colSpec, orientation));
    final KeyedComboBoxModel kcbm = new KeyedComboBoxModel(
            new Object[] { "ar", "bg", "ca", "zhs", "zht", "cz", "da", "nl", "en", "fi", "fr", "de", "el", "iw",
                    "is", "it", "ja", "ko", "no", "pl", "pt", "br", "ro", "ru", "sl", "es", "sv", "tr" },
            new Object[] { "Arabic", "Bulgarian", "Catalan", "Chinese (Simplified)", "Chinese (Traditional)",
                    "Czech", "Danish", "Dutch", "English", "Finnish", "French", "German", "Greek", "Hebrew",
                    "Icelandic", "Italian", "Japanese", "Korean", "Norwegian", "Polish", "Portuguese",
                    "Portuguese (Brazilian)", "Romanian", "Russian", "Slovenian", "Spanish", "Swedish",
                    "Turkish" });
    langs = new JComboBox(kcbm);
    langs.setEditable(false);
    String defaultLang = null;
    if (configuration.getLanguage() != null && configuration.getLanguage().length() > 0) {
        defaultLang = configuration.getLanguage();
    } else {
        defaultLang = Locale.getDefault().getLanguage();
    }
    if (defaultLang == null) {
        defaultLang = "en";
    }
    kcbm.setSelectedKey(defaultLang);
    if (langs.getSelectedIndex() == -1) {
        langs.setSelectedIndex(0);
    }

    langs.addItemListener(new ItemListener() {
        public void itemStateChanged(ItemEvent e) {
            if (e.getStateChange() == ItemEvent.SELECTED) {
                configuration.setLanguage((String) kcbm.getSelectedKey());

            }
        }
    });

    builder.add(langs, FormLayoutUtil.flip(cc.xyw(3, 7, 7), colSpec, orientation));

    builder.add(smcheckBox, FormLayoutUtil.flip(cc.xyw(1, 9, 9), colSpec, orientation));

    JButton service = new JButton(Messages.getString("NetworkTab.4"));
    service.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            if (PMS.get().installWin32Service()) {
                JOptionPane.showMessageDialog(
                        (JFrame) (SwingUtilities.getWindowAncestor((Component) PMS.get().getFrame())),
                        Messages.getString("NetworkTab.11") + Messages.getString("NetworkTab.12"),
                        Messages.getString("Dialog.Information"), JOptionPane.INFORMATION_MESSAGE);

            } else {
                JOptionPane.showMessageDialog(
                        (JFrame) (SwingUtilities.getWindowAncestor((Component) PMS.get().getFrame())),
                        Messages.getString("NetworkTab.14"), Messages.getString("Dialog.Error"),
                        JOptionPane.ERROR_MESSAGE);
            }
        }
    });

    builder.add(service, FormLayoutUtil.flip(cc.xy(1, 11), colSpec, orientation));

    if (System.getProperty(LooksFrame.START_SERVICE) != null || !Platform.isWindows()) {
        service.setEnabled(false);
    }

    JButton checkForUpdates = new JButton(Messages.getString("NetworkTab.8"));

    checkForUpdates.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            LooksFrame frame = (LooksFrame) PMS.get().getFrame();
            frame.checkForUpdates();
        }
    });

    builder.add(checkForUpdates, FormLayoutUtil.flip(cc.xy(1, 13), colSpec, orientation));

    autoUpdateCheckBox = new JCheckBox(Messages.getString("NetworkTab.9"));
    autoUpdateCheckBox.setContentAreaFilled(false);
    autoUpdateCheckBox.addItemListener(new ItemListener() {
        public void itemStateChanged(ItemEvent e) {
            configuration.setAutoUpdate((e.getStateChange() == ItemEvent.SELECTED));
        }
    });

    if (configuration.isAutoUpdate()) {
        autoUpdateCheckBox.setSelected(true);
    }

    builder.add(autoUpdateCheckBox, FormLayoutUtil.flip(cc.xyw(7, 13, 3), colSpec, orientation));

    if (!Build.isUpdatable()) {
        checkForUpdates.setEnabled(false);
        autoUpdateCheckBox.setEnabled(false);
    }

    host = new JTextField(configuration.getServerHostname());
    host.addKeyListener(new KeyAdapter() {
        @Override
        public void keyReleased(KeyEvent e) {
            configuration.setHostname(host.getText());
        }
    });

    port = new JTextField(configuration.getServerPort() != 5001 ? "" + configuration.getServerPort() : "");
    port.addKeyListener(new KeyAdapter() {
        @Override
        public void keyReleased(KeyEvent e) {
            try {
                String p = port.getText();
                if (StringUtils.isEmpty(p)) {
                    p = "5001";
                }
                int ab = Integer.parseInt(p);
                configuration.setServerPort(ab);
            } catch (NumberFormatException nfe) {
                logger.debug("Could not parse port from \"" + port.getText() + "\"");
            }

        }
    });

    cmp = builder.addSeparator(Messages.getString("NetworkTab.22"),
            FormLayoutUtil.flip(cc.xyw(1, 21, 9), colSpec, orientation));
    cmp = (JComponent) cmp.getComponent(0);
    cmp.setFont(cmp.getFont().deriveFont(Font.BOLD));

    final KeyedComboBoxModel networkInterfaces = createNetworkInterfacesModel();
    networkinterfacesCBX = new JComboBox(networkInterfaces);
    networkInterfaces.setSelectedKey(configuration.getNetworkInterface());
    networkinterfacesCBX.addItemListener(new ItemListener() {
        public void itemStateChanged(ItemEvent e) {
            if (e.getStateChange() == ItemEvent.SELECTED) {
                configuration.setNetworkInterface((String) networkInterfaces.getSelectedKey());
            }
        }
    });

    ip_filter = new JTextField(configuration.getIpFilter());
    ip_filter.addKeyListener(new KeyAdapter() {
        @Override
        public void keyReleased(KeyEvent e) {
            configuration.setIpFilter(ip_filter.getText());
        }
    });

    maxbitrate = new JTextField(configuration.getMaximumBitrate());
    maxbitrate.addKeyListener(new KeyAdapter() {
        @Override
        public void keyReleased(KeyEvent e) {
            PMS.getConfiguration().setMaximumBitrate(maxbitrate.getText());
        }
    });

    builder.addLabel(Messages.getString("NetworkTab.20"),
            FormLayoutUtil.flip(cc.xy(1, 23), colSpec, orientation));
    builder.add(networkinterfacesCBX, FormLayoutUtil.flip(cc.xyw(3, 23, 7), colSpec, orientation));
    builder.addLabel(Messages.getString("NetworkTab.23"),
            FormLayoutUtil.flip(cc.xy(1, 25), colSpec, orientation));
    builder.add(host, FormLayoutUtil.flip(cc.xyw(3, 25, 7), colSpec, orientation));
    builder.addLabel(Messages.getString("NetworkTab.24"),
            FormLayoutUtil.flip(cc.xy(1, 27), colSpec, orientation));
    builder.add(port, FormLayoutUtil.flip(cc.xyw(3, 27, 7), colSpec, orientation));
    builder.addLabel(Messages.getString("NetworkTab.30"),
            FormLayoutUtil.flip(cc.xy(1, 29), colSpec, orientation));
    builder.add(ip_filter, FormLayoutUtil.flip(cc.xyw(3, 29, 7), colSpec, orientation));
    builder.addLabel(Messages.getString("NetworkTab.35"),
            FormLayoutUtil.flip(cc.xy(1, 31), colSpec, orientation));
    builder.add(maxbitrate, FormLayoutUtil.flip(cc.xyw(3, 31, 7), colSpec, orientation));

    cmp = builder.addSeparator(Messages.getString("NetworkTab.31"),
            FormLayoutUtil.flip(cc.xyw(1, 33, 9), colSpec, orientation));
    cmp = (JComponent) cmp.getComponent(0);
    cmp.setFont(cmp.getFont().deriveFont(Font.BOLD));

    newHTTPEngine = new JCheckBox(Messages.getString("NetworkTab.32"));
    newHTTPEngine.setSelected(configuration.isHTTPEngineV2());
    newHTTPEngine.addItemListener(new ItemListener() {
        public void itemStateChanged(ItemEvent e) {
            configuration.setHTTPEngineV2((e.getStateChange() == ItemEvent.SELECTED));
        }
    });
    builder.add(newHTTPEngine, FormLayoutUtil.flip(cc.xyw(1, 35, 9), colSpec, orientation));

    preventSleep = new JCheckBox(Messages.getString("NetworkTab.33"));
    preventSleep.setSelected(configuration.isPreventsSleep());
    preventSleep.addItemListener(new ItemListener() {
        public void itemStateChanged(ItemEvent e) {
            configuration.setPreventsSleep((e.getStateChange() == ItemEvent.SELECTED));
        }
    });
    builder.add(preventSleep, FormLayoutUtil.flip(cc.xyw(1, 37, 9), colSpec, orientation));

    JCheckBox fdCheckBox = new JCheckBox(Messages.getString("NetworkTab.38"));
    fdCheckBox.setContentAreaFilled(false);
    fdCheckBox.addItemListener(new ItemListener() {
        public void itemStateChanged(ItemEvent e) {
            configuration.setRendererForceDefault((e.getStateChange() == ItemEvent.SELECTED));
        }
    });

    if (configuration.isRendererForceDefault()) {
        fdCheckBox.setSelected(true);
    }

    builder.addLabel(Messages.getString("NetworkTab.36"),
            FormLayoutUtil.flip(cc.xy(1, 39), colSpec, orientation));

    ArrayList<RendererConfiguration> allConfs = RendererConfiguration.getAllRendererConfigurations();
    ArrayList<Object> keyValues = new ArrayList<Object>();
    ArrayList<Object> nameValues = new ArrayList<Object>();
    keyValues.add("");
    nameValues.add(Messages.getString("NetworkTab.37"));

    if (allConfs != null) {
        sortRendererConfiurationsByName(allConfs);
        for (RendererConfiguration renderer : allConfs) {
            if (renderer != null) {
                keyValues.add(renderer.getRendererName());
                nameValues.add(renderer.getRendererName());
            }
        }
    }

    final KeyedComboBoxModel renderersKcbm = new KeyedComboBoxModel(
            (Object[]) keyValues.toArray(new Object[keyValues.size()]),
            (Object[]) nameValues.toArray(new Object[nameValues.size()]));
    renderers = new JComboBox(renderersKcbm);
    renderers.setEditable(false);
    String defaultRenderer = configuration.getRendererDefault();
    renderersKcbm.setSelectedKey(defaultRenderer);

    if (renderers.getSelectedIndex() == -1) {
        renderers.setSelectedIndex(0);
    }

    builder.add(renderers, FormLayoutUtil.flip(cc.xyw(3, 39, 7), colSpec, orientation));

    builder.add(fdCheckBox, FormLayoutUtil.flip(cc.xyw(1, 41, 9), colSpec, orientation));

    cmp = builder.addSeparator(Messages.getString("NetworkTab.34"),
            FormLayoutUtil.flip(cc.xyw(1, 43, 9), colSpec, orientation));
    cmp = (JComponent) cmp.getComponent(0);
    cmp.setFont(cmp.getFont().deriveFont(Font.BOLD));

    pPlugins = new JPanel(new GridLayout());
    builder.add(pPlugins, FormLayoutUtil.flip(cc.xyw(1, 45, 9), colSpec, orientation));

    JPanel panel = builder.getPanel();

    // Apply the orientation to the panel and all components in it
    panel.applyComponentOrientation(orientation);

    JScrollPane scrollPane = new JScrollPane(panel, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
            JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
    scrollPane.setBorder(BorderFactory.createEmptyBorder());

    return scrollPane;
}

From source file:net.pms.newgui.NavigationShareTab.java

License:Open Source License

public JComponent build() {
    // Apply the orientation for the locale
    Locale locale = new Locale(configuration.getLanguage());
    ComponentOrientation orientation = ComponentOrientation.getOrientation(locale);
    String colSpec = FormLayoutUtil.getColSpec(PANEL_COL_SPEC, orientation);

    // Set basic layout
    FormLayout layout = new FormLayout(colSpec, PANEL_ROW_SPEC);
    PanelBuilder builder = new PanelBuilder(layout);
    builder.border(Borders.DLU4);// w  w w  .ja  va  2 s.c o m
    builder.opaque(true);

    CellConstraints cc = new CellConstraints();

    // Init all gui components
    initSimpleComponents(cc);
    PanelBuilder builderSharedFolder = initSharedFoldersGuiComponents(cc);

    // Build gui with initialized components
    JComponent cmp = builder.addSeparator(Messages.getString("FoldTab.13"),
            FormLayoutUtil.flip(cc.xyw(1, 1, 10), colSpec, orientation));
    cmp = (JComponent) cmp.getComponent(0);
    cmp.setFont(cmp.getFont().deriveFont(Font.BOLD));

    builder.add(thumbgenCheckBox, FormLayoutUtil.flip(cc.xyw(1, 3, 3), colSpec, orientation));
    builder.addLabel(Messages.getString("NetworkTab.16"),
            FormLayoutUtil.flip(cc.xyw(4, 3, 3), colSpec, orientation));
    builder.add(seekpos, FormLayoutUtil.flip(cc.xyw(6, 3, 1), colSpec, orientation));

    builder.add(mplayer_thumb, FormLayoutUtil.flip(cc.xyw(1, 5, 3), colSpec, orientation));
    builder.add(dvdiso_thumb, FormLayoutUtil.flip(cc.xyw(3, 5, 3), colSpec, orientation));

    builder.add(image_thumb, FormLayoutUtil.flip(cc.xyw(1, 7, 3), colSpec, orientation));

    builder.addLabel(Messages.getString("FoldTab.26"),
            FormLayoutUtil.flip(cc.xyw(1, 9, 3), colSpec, orientation));
    builder.add(audiothumbnail, FormLayoutUtil.flip(cc.xyw(4, 9, 3), colSpec, orientation));

    builder.addLabel(Messages.getString("FoldTab.27"),
            FormLayoutUtil.flip(cc.xyw(1, 11, 1), colSpec, orientation));
    builder.add(defaultThumbFolder, FormLayoutUtil.flip(cc.xyw(4, 11, 3), colSpec, orientation));
    builder.add(select, FormLayoutUtil.flip(cc.xyw(7, 11, 1), colSpec, orientation));

    cmp = builder.addSeparator(Messages.getString("NetworkTab.15"),
            FormLayoutUtil.flip(cc.xyw(1, 13, 10), colSpec, orientation));
    cmp = (JComponent) cmp.getComponent(0);
    cmp.setFont(cmp.getFont().deriveFont(Font.BOLD));

    builder.add(archive, FormLayoutUtil.flip(cc.xyw(1, 15, 3), colSpec, orientation));
    builder.add(hidevideosettings, FormLayoutUtil.flip(cc.xyw(4, 15, 2), colSpec, orientation));
    builder.add(hidetranscode, FormLayoutUtil.flip(cc.xyw(7, 15, 4), colSpec, orientation));

    builder.add(hideextensions, FormLayoutUtil.flip(cc.xyw(1, 17, 3), colSpec, orientation));
    builder.add(hideengines, FormLayoutUtil.flip(cc.xyw(4, 17, 2), colSpec, orientation));
    builder.add(hideemptyfolders, FormLayoutUtil.flip(cc.xyw(7, 17, 4), colSpec, orientation));

    builder.add(itunes, FormLayoutUtil.flip(cc.xyw(1, 19, 3), colSpec, orientation));
    builder.add(iphoto, FormLayoutUtil.flip(cc.xyw(4, 19, 2), colSpec, orientation));
    builder.add(aperture, FormLayoutUtil.flip(cc.xyw(7, 19, 4), colSpec, orientation));

    builder.add(cacheenable, FormLayoutUtil.flip(cc.xy(1, 21), colSpec, orientation));
    builder.add(cachereset, FormLayoutUtil.flip(cc.xyw(4, 21, 2), colSpec, orientation));
    builder.add(hidemedialibraryfolder, FormLayoutUtil.flip(cc.xyw(7, 21, 4), colSpec, orientation));

    builder.addLabel(Messages.getString("FoldTab.18"),
            FormLayoutUtil.flip(cc.xyw(1, 23, 3), colSpec, orientation));
    builder.add(sortmethod, FormLayoutUtil.flip(cc.xyw(4, 23, 3), colSpec, orientation));

    builder.add(builderSharedFolder.getPanel(), FormLayoutUtil.flip(cc.xyw(1, 27, 10), colSpec, orientation));

    JPanel panel = builder.getPanel();

    // Apply the orientation to the panel and all components in it
    panel.applyComponentOrientation(orientation);

    JScrollPane scrollPane = new JScrollPane(panel, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
            JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
    scrollPane.setBorder(BorderFactory.createEmptyBorder());
    return scrollPane;
}