Example usage for com.jgoodies.forms.layout FormLayout setColumnGroups

List of usage examples for com.jgoodies.forms.layout FormLayout setColumnGroups

Introduction

In this page you can find the example usage for com.jgoodies.forms.layout FormLayout setColumnGroups.

Prototype

public void setColumnGroups(int[][] groupOfIndices) 

Source Link

Document

Sets the column groups, where each column in a group gets the same group wide width.

Usage

From source file:org.springframework.richclient.layout.TableLayoutBuilder.java

License:Apache License

private FormLayout createLayout() {
    ColumnSpec[] columnSpecsArray = (ColumnSpec[]) columnSpecs.toArray(new ColumnSpec[columnSpecs.size()]);
    RowSpec[] rowSpecArray = (RowSpec[]) rowSpecs.toArray(new RowSpec[rowSpecs.size()]);
    FormLayout layout = new FormLayout(columnSpecsArray, rowSpecArray);
    layout.setColumnGroups(adjustedColGroupIndices);
    layout.setRowGroups(adjustedRowGroupIndices);
    return layout;
}

From source file:phex.gui.dialogs.options.DebugPane.java

License:Open Source License

/**
 * Called when preparing this settings pane for display the first time. Can
 * be overriden to implement the look of the settings pane.
 */// w w w .j  av  a  2s  .  c om
protected void prepareComponent() {
    setLayout(new BorderLayout());

    //JPanel contentPanel = new FormDebugPanel();
    JPanel contentPanel = new JPanel();
    add(contentPanel, BorderLayout.CENTER);

    FormLayout layout = new FormLayout("10dlu, d, 6dlu, d, 6dlu, d, 6dlu, d, 2dlu:grow", // columns
            "p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p"); // rows 
    layout.setColumnGroups(new int[][] { { 2, 4, 6 } });
    layout.setRowGroups(new int[][] { { 3, 5, 7 } });
    contentPanel.setLayout(layout);

    PanelBuilder builder = new PanelBuilder(layout, contentPanel);
    CellConstraints cc = new CellConstraints();

    builder.addSeparator(Localizer.getString("DebugSettings_DebugSettings"), cc.xywh(1, 1, 7, 1));

    /*downloadTypeChkbx = new JCheckBox(
    Localizer.getString( "Download" ),
    Logger.isTypeLogged( Logger.DOWNLOAD ) );
    downloadTypeChkbx.setToolTipText( Localizer.getString( 
    "DebugSettings_TTTDownloadType" ) );
    builder.add( downloadTypeChkbx, cc.xy( 2, 3 ) );
            
    uploadTypeChkbx = new JCheckBox(
    Localizer.getString( "Upload" ),
    Logger.isTypeLogged( Logger.UPLOAD ) );
    uploadTypeChkbx.setToolTipText( Localizer.getString( 
    "DebugSettings_TTTUploadType" ) );
    builder.add( uploadTypeChkbx, cc.xy( 4, 3 ) );
            
    searchTypeChkbx = new JCheckBox(
    Localizer.getString( "Search" ),
    Logger.isTypeLogged( Logger.SEARCH ) );
    searchTypeChkbx.setToolTipText( Localizer.getString( 
    "DebugSettings_TTTSearchType" ) );
    builder.add( searchTypeChkbx, cc.xy( 6, 3 ) );
            
    downloadNetTypeChkbx = new JCheckBox(
    Localizer.getString( "DownloadNet" ),
    Logger.isTypeLogged( Logger.DOWNLOAD_NET ) );
    downloadNetTypeChkbx.setToolTipText( Localizer.getString( 
    "DebugSettings_TTTDownloadNetType" ) );
    builder.add( downloadNetTypeChkbx, cc.xy( 8, 3 ) );
            
    netTypeChkbx = new JCheckBox(
    Localizer.getString( "Network" ),
    Logger.isTypeLogged( Logger.NETWORK ) );
    netTypeChkbx.setToolTipText( Localizer.getString( 
    "DebugSettings_TTTNetworkType" ) );
    builder.add( netTypeChkbx, cc.xy( 2, 5 ) );
            
    guiTypeChkbx = new JCheckBox(
    Localizer.getString( "GUI" ),
    Logger.isTypeLogged( Logger.GUI ) );
    guiTypeChkbx.setToolTipText( Localizer.getString( 
    "DebugSettings_TTTGuiType" ) );
    builder.add( guiTypeChkbx, cc.xy( 4, 5 ) );
            
    performanceTypeChkbx = new JCheckBox(
    Localizer.getString( "Performance" ),
    Logger.isTypeLogged( Logger.PERFORMANCE ) );
    performanceTypeChkbx.setToolTipText( Localizer.getString( 
    "DebugSettings_TTTPerformanceType" ) );
    builder.add( performanceTypeChkbx, cc.xy( 6, 5 ) );
                
    JLabel label = builder.addLabel(
    Localizer.getString( "DebugSettings_LogLevel" ) + ": ", cc.xy( 2, 7 ) );
    label.setToolTipText( Localizer.getString( 
    "DebugSettings_TTTLogLevel" ) );
            
    String[] logLevels = new String[] 
    {
    "Finest", "Finer", "Fine", "Config", "Info", "Warning", "Severe"
    };
    logLevelCbBx = new JComboBox( logLevels );
    logLevelCbBx.setSelectedIndex( Logger.getVerboseLevel() );
    logLevelCbBx.setToolTipText( Localizer.getString( 
    "DebugSettings_TTTLogLevel" ) );
    builder.add( logLevelCbBx, cc.xy( 4, 7 ) );
    */
}

From source file:phex.gui.dialogs.options.I2PPane.java

License:Open Source License

/**
 * Called when preparing this settings pane for display the first time. Can
 * be overriden to implement the look of the settings pane.
 *//*  www . j a v a2 s. c  o  m*/
@Override
protected void prepareComponent() {
    FormLayout layout = new FormLayout("10dlu, right:d, 2dlu, 50dlu, " + // 4 columns
            "10dlu, right:d, 2dlu, 50dlu, 2dlu:grow", // 5 columns
            "p, 3dlu, p, 3dlu, p, 3dlu, " + // 6 rows
                    "p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, " + // 8 rows
                    "p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu" // 8 rows
    );
    layout.setRowGroups(new int[][] { { 3, 5, 9, 11, 13, 15, 21 } });
    layout.setColumnGroups(new int[][] { { 4, 8 }, { 2, 6 } });

    setLayout(layout);
    //FormDebugPanel contentPanel = new FormDebugPanel();
    //JPanel contentPanel = new JPanel();
    //add( this, BorderLayout.CENTER );
    PanelBuilder builder = new PanelBuilder(layout, this);
    CellConstraints cc = new CellConstraints();

    builder.addSeparator(Localizer.getString("I2CPSettings"), cc.xywh(1, 1, 9, 1));

    i2cpHostLabel = builder.addLabel(Localizer.getString("I2CPHost") + ": ", cc.xy(2, 3));
    i2cpHostTF = new JTextField(I2PPrefs.I2CPHost.get(), 15);
    builder.add(i2cpHostTF, cc.xy(4, 3));

    i2cpPortLabel = builder.addLabel(Localizer.getString("I2CPPort") + ": ", cc.xy(6, 3));
    i2cpPortTF = new IntegerTextField(I2PPrefs.I2CPPort.get().toString(), 5, 5);
    builder.add(i2cpPortTF, cc.xy(8, 3));

    builder.addSeparator(Localizer.getString("I2PTunnelSettings"), cc.xywh(1, 5, 9, 1));

    inboundLengthLabel = builder.addLabel(Localizer.getString("InboundLength") + ": ", cc.xy(2, 9));
    inboundLengthTF = new IntegerTextField(I2PPrefs.InboundLength.get().toString(), 1, 1);
    builder.add(inboundLengthTF, cc.xy(4, 9));

    outboundLengthLabel = builder.addLabel(Localizer.getString("OutboundLength") + ": ", cc.xy(6, 9));
    outboundLengthTF = new IntegerTextField(I2PPrefs.OutboundLength.get().toString(), 1, 1);
    builder.add(outboundLengthTF, cc.xy(8, 9));

    inboundLengthVarianceLabel = builder.addLabel(Localizer.getString("InboundLengthVariance") + ": ",
            cc.xy(2, 11));
    inboundLengthVarianceTF = new IntegerTextField(I2PPrefs.InboundLengthVariance.get().toString(), 1, 1);
    builder.add(inboundLengthVarianceTF, cc.xy(4, 11));

    outboundLengthVarianceLabel = builder.addLabel(Localizer.getString("OutboundLengthVariance") + ": ",
            cc.xy(6, 11));
    outboundLengthVarianceTF = new IntegerTextField(I2PPrefs.OutboundLengthVariance.get().toString(), 1, 1);
    builder.add(outboundLengthVarianceTF, cc.xy(8, 11));

    inboundQuantityLabel = builder.addLabel(Localizer.getString("InboundQuantity") + ": ", cc.xy(2, 13));
    inboundQuantityTF = new IntegerTextField(I2PPrefs.InboundQuantity.get().toString(), 1, 1);
    builder.add(inboundQuantityTF, cc.xy(4, 13));

    outboundQuantityLabel = builder.addLabel(Localizer.getString("OutboundQuantity") + ": ", cc.xy(6, 13));
    outboundQuantityTF = new IntegerTextField(I2PPrefs.OutboundQuantity.get().toString(), 1, 1);
    builder.add(outboundQuantityTF, cc.xy(8, 13));

    inboundBackupQuantityLabel = builder.addLabel(Localizer.getString("InboundBackupQuantity") + ": ",
            cc.xy(2, 15));
    inboundBackupQuantityTF = new IntegerTextField(I2PPrefs.InboundBackupQuantity.get().toString(), 1, 1);
    builder.add(inboundBackupQuantityTF, cc.xy(4, 15));

    outboundBackupQuantityLabel = builder.addLabel(Localizer.getString("OutboundBackupQuantity") + ": ",
            cc.xy(6, 15));
    outboundBackupQuantityTF = new IntegerTextField(I2PPrefs.OutboundBackupQuantity.get().toString(), 1, 1);
    builder.add(outboundBackupQuantityTF, cc.xy(8, 15));

    refreshEnableState();
}

From source file:phex.gui.dialogs.options.NetworkPane.java

License:Open Source License

/**
 * Called when preparing this settings pane for display the first time. Can
 * be overriden to implement the look of the settings pane.
 *//*from  w  w w  .j a v a2 s  .co  m*/
protected void prepareComponent() {
    setLayout(new BorderLayout());

    JPanel contentPanel = new JPanel();
    //JPanel contentPanel = new FormDebugPanel();
    add(contentPanel, BorderLayout.CENTER);

    FormLayout layout = new FormLayout("10dlu, right:d, 2dlu, d, " + "10dlu, right:d, 2dlu, d, 2dlu:grow", // columns
            "p, 3dlu, p, 3dlu, p, 3dlu, p, 8dlu, " + "p, 3dlu, p, 3dlu, p, 8dlu, " + "p, 3dlu, p");
    layout.setColumnGroups(new int[][] { { 4, 8 }, { 2, 6 } });
    layout.setRowGroups(new int[][] { { 3, 5, 9, 11, 13, 17 } });

    PanelBuilder builder = new PanelBuilder(layout, contentPanel);

    CellConstraints cc = new CellConstraints();

    int row = 1;
    builder.addSeparator(Localizer.getString("NetworkSettings"), cc.xywh(1, row, 9, 1));

    row += 2;
    builder.addLabel(Localizer.getString("ListeningPort") + ": ", cc.xy(2, row));
    listeningPortTF = new IntegerTextField(NetworkPrefs.ListeningPort.get().toString(), 5, 5);
    builder.add(listeningPortTF, cc.xy(4, row));

    builder.addLabel(Localizer.getString("ConnectionTimeout") + ": ", cc.xy(6, row));
    connectionTimeoutTF = new IntegerTextField(
            String.valueOf(NetworkPrefs.TcpConnectTimeout.get().intValue() / 1000), 3, 3);
    builder.add(connectionTimeoutTF, cc.xy(8, row));

    row += 2;
    JLabel label = builder.addLabel(Localizer.getString("NetworkSettings_MaxConcurrentConnectAttempts") + ": ",
            cc.xy(6, row));
    label.setToolTipText(Localizer.getString("NetworkSettings_TTTMaxConcurrentConnectAttempts"));
    maxConcurrentConnectAttemptsTF = new IntegerTextField(
            NetworkPrefs.MaxConcurrentConnectAttempts.get().toString(), 2, 2);
    maxConcurrentConnectAttemptsTF
            .setToolTipText(Localizer.getString("NetworkSettings_TTTMaxConcurrentConnectAttempts"));
    builder.add(maxConcurrentConnectAttemptsTF, cc.xy(8, row));

    row += 2;
    autoConnectChkbx = new JCheckBox(Localizer.getString("AutoConnectOnStartup"),
            ConnectionPrefs.AutoConnectOnStartup.get().booleanValue());
    builder.add(autoConnectChkbx, cc.xywh(2, row, 3, 1));

    connectedToLANChkbx = new JCheckBox(Localizer.getString("ConnectedToLAN"),
            NetworkPrefs.ConnectedToLAN.get().booleanValue());
    connectedToLANChkbx.setToolTipText(Localizer.getString("TTTConnectedToLAN"));
    builder.add(connectedToLANChkbx, cc.xywh(6, row, 3, 1));

    row += 2;
    builder.addSeparator(Localizer.getString("UltrapeerSettings"), cc.xywh(1, row, 9, 1));

    row += 2;
    allowToBeUPChkbx = new JCheckBox(Localizer.getString("AllowToBecomeUltrapeer"),
            ConnectionPrefs.AllowToBecomeUP.get().booleanValue());
    allowToBeUPChkbx.setToolTipText(Localizer.getString("TTTAllowToBecomeUltrapeer"));
    allowToBeUPChkbx.addActionListener(new CheckboxActionListener());
    builder.add(allowToBeUPChkbx, cc.xywh(2, row, 3, 1));

    forceToBeUPChkbx = new JCheckBox(Localizer.getString("ForceToBeUltrapeer"),
            ConnectionPrefs.ForceToBeUltrapeer.get().booleanValue());
    forceToBeUPChkbx.setToolTipText(Localizer.getString("TTTForceToBeUltrapeer"));
    forceToBeUPChkbx.addActionListener(new CheckboxActionListener());
    builder.add(forceToBeUPChkbx, cc.xywh(6, row, 3, 1));

    row += 2;
    up2upConnectionsLabel = builder.addLabel(Localizer.getString("ConnectionsToUltrapeers") + ": ",
            cc.xy(2, row));
    up2upConnectionsLabel.setToolTipText(Localizer.getString("TTTToUltrapeers"));
    up2upConnectionsTF = new IntegerTextField(ConnectionPrefs.Up2UpConnections.get().toString(), 2, 2);
    up2upConnectionsTF.setToolTipText(Localizer.getString("TTTToUltrapeers"));
    builder.add(up2upConnectionsTF, cc.xy(4, row));

    up2LeafConnectionsLabel = builder.addLabel(Localizer.getString("ConnectionsToLeafs") + ": ", cc.xy(6, row));
    up2LeafConnectionsLabel.setToolTipText(Localizer.getString("TTTToLeafs"));

    up2LeafConnectionsTF = new IntegerTextField(ConnectionPrefs.Up2LeafConnections.get().toString(), 3, 3);
    up2LeafConnectionsTF.setToolTipText(Localizer.getString("TTTToLeafs"));
    builder.add(up2LeafConnectionsTF, cc.xy(8, row));

    row += 2;
    builder.addSeparator(Localizer.getString("LeafSettings"), cc.xywh(1, row, 9, 1));

    row += 2;
    leaf2upConnectionsLabel = builder.addLabel(Localizer.getString("ConnectionsToUltrapeers") + ": ",
            cc.xy(2, row));
    leaf2upConnectionsLabel.setToolTipText(Localizer.getString("TTTToUltrapeers"));

    leaf2upConnectionsTF = new IntegerTextField(ConnectionPrefs.Leaf2UpConnections.get().toString(), 2, 1);
    leaf2upConnectionsTF.setToolTipText(Localizer.getString("TTTToUltrapeers"));
    builder.add(leaf2upConnectionsTF, cc.xy(4, row));

    refreshEnableState();
}

From source file:phex.gui.tabs.download.DownloadOverviewPanel.java

License:Open Source License

private JPanel buildInfoPanel() {
    JPanel subPanel = new JPanel();
    CellConstraints cc = new CellConstraints();
    FormLayout layout = new FormLayout(
            "d, 4dlu, right:d, " + "fill:8dlu:grow, d, 4dlu, right:d, " + "fill:8dlu:grow, d, 4dlu, right:d", // columns

            "p, 2dlu, p, 2dlu, p, 2dlu, p, 6dlu, p, 2dlu, p, 2dlu, p"); //rows
    layout.setColumnGroups(new int[][] { { 1, 5, 9 }, { 3, 7, 11 } });
    PanelBuilder panelBuilder = new PanelBuilder(layout, subPanel);

    panelBuilder.addSeparator(Localizer.getString("DownloadOverview_Transfer"),
            cc.xywh(1, 1, layout.getColumnCount(), 1));

    JLabel label = new JLabel(Localizer.getString("DownloadOverview_Downloaded"));
    panelBuilder.add(label, cc.xy(1, 3));
    downloadedLabel = new JLabel();
    panelBuilder.add(downloadedLabel, cc.xy(3, 3));

    label = new JLabel(Localizer.getString("DownloadOverview_Remaining"));
    panelBuilder.add(label, cc.xy(5, 3));
    remainingLabel = new JLabel();
    panelBuilder.add(remainingLabel, cc.xy(7, 3));

    label = new JLabel(Localizer.getString("DownloadOverview_DownloadRate"));
    panelBuilder.add(label, cc.xy(9, 3));
    downloadRateLabel = new JLabel();
    panelBuilder.add(downloadRateLabel, cc.xy(11, 3));

    label = new JLabel(Localizer.getString("DownloadOverview_FileSize"));
    panelBuilder.add(label, cc.xy(1, 5));
    totalSizeLabel = new JLabel();
    panelBuilder.add(totalSizeLabel, cc.xy(3, 5));

    label = new JLabel(Localizer.getString("DownloadOverview_EstimatedTime"));
    panelBuilder.add(label, cc.xy(5, 5));
    etaLabel = new JLabel();
    panelBuilder.add(etaLabel, cc.xy(7, 5));

    label = new JLabel(Localizer.getString("DownloadOverview_MaximalRate"));
    panelBuilder.add(label, cc.xy(9, 5));
    maxRateLabel = new JLabel();
    panelBuilder.add(maxRateLabel, cc.xy(11, 5));

    label = new JLabel(Localizer.getString("DownloadOverview_LastDownloaded"));
    panelBuilder.add(label, cc.xy(1, 7));
    lastDownloadedLabel = new JLabel();
    panelBuilder.add(lastDownloadedLabel, cc.xy(3, 7));

    label = new JLabel(Localizer.getString("DownloadOverview_Created"));
    panelBuilder.add(label, cc.xy(9, 7));
    createdLabel = new JLabel();
    panelBuilder.add(createdLabel, cc.xy(11, 7));

    panelBuilder.addSeparator(Localizer.getString("DownloadOverview_Candidates"), cc.xywh(1, 9, 11, 1));

    label = new JLabel(Localizer.getString("DownloadOverview_DownloadingCandidates"));
    panelBuilder.add(label, cc.xy(1, 11));
    downloadingCandidatesLabel = new JLabel();
    panelBuilder.add(downloadingCandidatesLabel, cc.xy(3, 11));

    label = new JLabel(Localizer.getString("DownloadOverview_QueuedCandidates"));
    panelBuilder.add(label, cc.xy(5, 11));
    queuedCandidatesLabel = new JLabel();
    panelBuilder.add(queuedCandidatesLabel, cc.xy(7, 11));

    label = new JLabel(Localizer.getString("DownloadOverview_ConnectingCandidates"));
    panelBuilder.add(label, cc.xy(9, 11));
    connectingCandidatesLabel = new JLabel();
    panelBuilder.add(connectingCandidatesLabel, cc.xy(11, 11));

    label = new JLabel(Localizer.getString("DownloadOverview_GoodCandidates"));
    panelBuilder.add(label, cc.xy(1, 13));
    goodCandidatesLabel = new JLabel();
    panelBuilder.add(goodCandidatesLabel, cc.xy(3, 13));

    label = new JLabel(Localizer.getString("DownloadOverview_BadCandidates"));
    panelBuilder.add(label, cc.xy(5, 13));
    badCandidatesLabel = new JLabel();
    panelBuilder.add(badCandidatesLabel, cc.xy(7, 13));

    label = new JLabel(Localizer.getString("DownloadOverview_TotalCandidates"));
    panelBuilder.add(label, cc.xy(9, 13));
    totalCandidatesLabel = new JLabel();
    panelBuilder.add(totalCandidatesLabel, cc.xy(11, 13));

    return subPanel;
}

From source file:phex.gui.tabs.network.NetworkTab.java

License:Open Source License

public void initComponent(DGuiSettings guiSettings) {
    CellConstraints cc = new CellConstraints();
    FormLayout layout = new FormLayout("2dlu, fill:d:grow, 2dlu", // columns
            "2dlu, fill:d:grow, 4dlu, d, 2dlu"); //rows
    PanelBuilder contentBuilder = new PanelBuilder(layout, this);

    //JPanel upperPanel = new FormDebugPanel();
    JPanel upperPanel = new JPanel();
    FWElegantPanel upperElegantPanel = new FWElegantPanel(Localizer.getString("Connections"), upperPanel);
    layout = new FormLayout("0dlu, d, 2dlu, d, 10dlu:grow, d, 2dlu, d, 2dlu, d, 0dlu", // columns
            "fill:d:grow, 3dlu, p"); //rows
    PanelBuilder upperBuilder = new PanelBuilder(layout, upperPanel);

    networkModel = new NetworkTableModel(hostMgr.getNetworkHostsContainer());
    networkTable = new FWTable(new FWSortedTableModel(networkModel));
    GUIUtils.updateTableFromDGuiSettings(guiSettings, networkTable, NETWORK_TABLE_IDENTIFIER);

    // TODO3 try for a improced table sorting strategy.
    //((FWSortedTableModel)networkTable.getModel()).setTable( networkTable );

    networkTable.activateAllHeaderActions();
    networkTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
    networkTable.getSelectionModel().addListSelectionListener(new SelectionHandler());
    MouseHandler mouseHandler = new MouseHandler();
    networkTable.addMouseListener(mouseHandler);
    GUIRegistry.getInstance().getGuiUpdateTimer().addTable(networkTable);
    networkTableScrollPane = FWTable.createFWTableScrollPane(networkTable);
    networkTableScrollPane.addMouseListener(mouseHandler);

    upperBuilder.add(networkTableScrollPane, cc.xywh(2, 1, 9, 1));

    JLabel label = new JLabel(Localizer.getString("NetworkTab_MyAddress"));
    upperBuilder.add(label, cc.xy(2, 3));
    myIPLabel = new JLabel("");
    myIPLabel.addMouseListener(new MouseAdapter() {
        @Override/*w w  w  .  ja va2 s.  c o  m*/
        public void mouseReleased(MouseEvent e) {
            if (e.isPopupTrigger()) {
                popupMenu((Component) e.getSource(), e.getX(), e.getY());
            }
        }

        @Override
        public void mousePressed(MouseEvent e) {
            if (e.isPopupTrigger()) {
                popupMenu((Component) e.getSource(), e.getX(), e.getY());
            }
        }

        private void popupMenu(Component source, int x, int y) {
            JPopupMenu menu = new JPopupMenu();
            menu.add(new CopyMyIpAction());
            menu.show(source, x, y);
        }
    });
    upperBuilder.add(myIPLabel, cc.xy(4, 3));

    label = new JLabel(Localizer.getString("ConnectTo") + Localizer.getChar("ColonSign"));
    upperBuilder.add(label, cc.xy(6, 3));

    // TODO2 add connection and disconnect network buttons to ConnectTo status line
    //       because it is not available from toolbar anymore...

    ConnectToHostHandler connectToHostHandler = new ConnectToHostHandler();

    connectToComboModel = new DefaultComboBoxModel(NetworkTabPrefs.ConnectToHistory.get().toArray());
    connectToComboBox = new JComboBox(connectToComboModel);
    connectToComboBox.setEditable(true);
    JTextField editor = ((JTextField) connectToComboBox.getEditor().getEditorComponent());
    Keymap keymap = JTextField.addKeymap("ConnectToEditor", editor.getKeymap());
    editor.setKeymap(keymap);
    keymap.addActionForKeyStroke(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), connectToHostHandler);
    GUIUtils.assignKeymapToComboBoxEditor(keymap, connectToComboBox);
    connectToComboBox.setSelectedItem("");
    connectToComboBox.setPrototypeDisplayValue("123.123.123.123:12345");
    upperBuilder.add(connectToComboBox, cc.xy(8, 3));

    JButton connectHostButton = new JButton(Localizer.getString("Connect"));
    connectHostButton.addActionListener(connectToHostHandler);
    upperBuilder.add(connectHostButton, cc.xy(10, 3));

    /////////////////////////// Lower Panel ////////////////////////////////

    JPanel lowerPanel = new JPanel();
    //JPanel lowerPanel = new FormDebugPanel();
    layout = new FormLayout("d, fill:10dlu:grow, d", // columns
            "top:p"); //rows
    layout.setColumnGroups(new int[][] { { 1, 3 } });
    PanelBuilder lowerBuilder = new PanelBuilder(layout, lowerPanel);

    NetFavoritesPanel favoritesPanel = new NetFavoritesPanel(hostMgr.getFavoritesContainer());
    lowerBuilder.add(favoritesPanel, cc.xy(1, 1));

    JPanel cacheStatusPanel = new JPanel();
    //JPanel cacheStatusPanel = new FormDebugPanel();
    layout = new FormLayout("8dlu, right:d, 2dlu, right:d, 2dlu, d, 2dlu:grow, 8dlu", // columns
            "p, 3dlu, p, 3dlu, p, 3dlu, bottom:p:grow"); //rows
    PanelBuilder cacheStatusBuilder = new PanelBuilder(layout, cacheStatusPanel);
    lowerBuilder.add(cacheStatusPanel, cc.xy(3, 1));

    cacheStatusBuilder.addSeparator(Localizer.getString("NetworkTab_ConnectionInfo"), cc.xywh(1, 1, 8, 1));

    cacheStatusBuilder.addLabel(Localizer.getString("NetworkTab_HostCacheContains"), cc.xy(2, 3));
    catcherStatLabel = new JLabel();
    cacheStatusBuilder.add(catcherStatLabel, cc.xy(4, 3));
    cacheStatusBuilder.addLabel(Localizer.getString("NetworkTab_Hosts"), cc.xy(6, 3));

    //Node status information
    cacheStatusBuilder.addLabel(Localizer.getString("NetworkTab_NodeStatus"), cc.xy(2, 7));
    nodeStatusLabel = new JLabel();
    if (servent.isUltrapeer()) {
        String text2 = Localizer.getString("NetworkTab_UltraPeer");
        nodeStatusLabel.setText(text2);
        cacheStatusBuilder.add(nodeStatusLabel, cc.xy(4, 7));
    } else {
        String text2 = Localizer.getString("NetworkTab_LeafMode");
        nodeStatusLabel.setText(text2);
        cacheStatusBuilder.add(nodeStatusLabel, cc.xy(4, 7));
    }

    //cacheStatusBuilder.addLabel( Localizer.getString( "NetworkTab_GWebCacheContains" ), 
    //    cc.xy( 2, 5 ) );
    //gWebCacheStatLabel = new JLabel(  );
    //cacheStatusBuilder.add( gWebCacheStatLabel, cc.xy( 4, 5 ) );
    //cacheStatusBuilder.addLabel( Localizer.getString( "NetworkTab_Caches" ), 
    //    cc.xy( 6, 5 ) );

    //final JButton queryWebCache = new JButton( Localizer.getString( "QueryGWebCache" ) );
    //queryWebCache.setToolTipText( Localizer.getString( "TTTQueryGWebCache" ) );
    //queryWebCache.addActionListener( new ActionListener()
    //    {
    //        public void actionPerformed( ActionEvent e )
    //        {
    //            queryWebCache.setEnabled( false );
    //            Runnable runner = new Runnable()
    //            {
    //                public void run()
    //                {
    //                    try
    //                    {
    //                        gWebCacheCont.queryMoreHosts( false );
    //                        gWebCacheCont.queryMoreGWebCaches( false );
    //                    }
    //                    catch ( Throwable th )
    //                    {
    //                        NLogger.error( NLoggerNames.GLOBAL, th, th );
    //                    }
    //                    finally
    //                    {
    //                        queryWebCache.setEnabled( true );
    //                    }
    //                }
    //            };
    //            Environment.getInstance().executeOnThreadPool( runner,
    //                "UserGWebCacheQuery-" + Integer.toHexString(runner.hashCode()) );
    //        }
    //    } );
    //cacheStatusBuilder.add( queryWebCache, cc.xywh( 2, 7, 5, 1 ) );

    // Workaround for very strange j2se 1.4 split pane layout behaivor
    /*Dimension nullDim = new Dimension( 0, 0 );
    upperPanel.setMinimumSize( nullDim );
    lowerPanel.setMinimumSize( nullDim );
            
    Dimension dim = new Dimension( 400, 200 );
    upperPanel.setPreferredSize( dim );
    lowerPanel.setPreferredSize( dim );
            
    JSplitPane splitPane = new JSplitPane( JSplitPane.VERTICAL_SPLIT, upperPanel,
    lowerPanel );
    splitPane.setBorder( BorderFactory.createEmptyBorder( 4, 4, 4, 4) );
    splitPane.setDividerSize( 4 );
    splitPane.setOneTouchExpandable( false );
    splitPane.setResizeWeight( 0.5 );
    splitPane.setDividerLocation( 0.25 );*/

    contentBuilder.add(upperElegantPanel, cc.xy(2, 2));
    contentBuilder.add(lowerPanel, cc.xy(2, 4));
    //add(BorderLayout.CENTER, upperPanel );
    //add(BorderLayout.SOUTH, lowerPanel );

    // Set up cell renderer to provide the correct color based on connection.
    networkRowRenderer = new NetworkRowRenderer(hostMgr.getNetworkHostsContainer());
    List<TableColumn> colList = networkTable.getColumns(true);
    for (TableColumn column : colList) {
        column.setCellRenderer(networkRowRenderer);
    }

    // Setup popup menu...
    networkPopup = new FWPopupMenu();

    FWAction action;
    action = new DisconnectHostAction();
    addTabAction(DISCONNECT_HOST_ACTION_KEY, action);

    networkTable.getActionMap().put(DISCONNECT_HOST_ACTION_KEY, action);
    networkTable.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT)
            .put((KeyStroke) action.getValue(FWAction.ACCELERATOR_KEY), DISCONNECT_HOST_ACTION_KEY);
    networkPopup.addAction(action);

    networkPopup.addSeparator();

    action = new AddToFavoritesAction();
    addTabAction(ADD_TO_FAVORITES_ACTION_KEY, action);
    networkPopup.addAction(action);

    action = new BrowseHostAction();
    addTabAction(BROWSE_HOST_ACTION_KEY, action);
    //networkToolbar.addAction( action );
    networkPopup.addAction(action);

    action = new ChatToHostAction();
    addTabAction(CHAT_TO_HOST_ACTION_KEY, action);
    //networkToolbar.addAction( action );
    networkPopup.addAction(action);

    BanHostActionProvider banHostActionProvider = new BanHostActionProvider();
    BanHostActionUtils.BanHostActionMenu bhActionMenu = BanHostActionUtils
            .createActionMenu(banHostActionProvider);
    networkPopup.add(bhActionMenu.menu);
    addTabActions(bhActionMenu.actions);
    networkPopup.addSeparator();

    JMenu netMenu = new JMenu(Localizer.getString("Network"));
    netMenu.add(GUIRegistry.getInstance().getGlobalAction(GUIRegistry.CONNECT_NETWORK_ACTION));
    netMenu.add(GUIRegistry.getInstance().getGlobalAction(GUIRegistry.DISCONNECT_NETWORK_ACTION));
    /*netMenu.add( GUIRegistry.getInstance().getGlobalAction(
    GUIRegistry.JOIN_NETWORK_ACTION ) );*/
    networkPopup.add(netMenu);

    updateAction = new UpdateAction();

    updateIpLabel(GUIRegistry.getInstance().getServent().getLocalAddress());
}

From source file:phex.gui.tabs.search.filterpanel.QuickFilterPanel.java

License:Open Source License

/**
 * //  www .ja  va2s  . c  o m
 */
private void initializeComponent() {
    setOpaque(false);

    CellConstraints cc = new CellConstraints();
    FormLayout layout = new FormLayout("6dlu, right:d, 2dlu, d, 2dlu, d, 8dlu, right:d, 2dlu, d, 2dlu, d, 6dlu", // columns
            "6dlu, p, 4dlu, p, 4dlu, p, 6dlu,"); // rows
    PanelBuilder panelBuilder = new PanelBuilder(layout, this);
    layout.setColumnGroups(new int[][] { { 2, 8 }, { 4, 10 }, { 6, 12 } });

    JLabel label = panelBuilder.addLabel(Localizer.getString("SearchTab_WithTerms"), cc.xywh(2, 2, 1, 1));
    label.setToolTipText(Localizer.getString("SearchTab_TTTWithTerms"));

    QuickFilterActivationHandler activationHandler = new QuickFilterActivationHandler();

    withTermsTF = new JTextField(8);
    withTermsTF.addKeyListener(activationHandler);
    withTermsTF.setToolTipText(Localizer.getString("SearchTab_TTTWithTerms"));
    Keymap keymap = JTextField.addKeymap("SearchFilterTextEditor", withTermsTF.getKeymap());
    withTermsTF.setKeymap(keymap);
    GUIUtils.assignKeymapToTextField(keymap, withTermsTF);
    panelBuilder.add(withTermsTF, cc.xywh(4, 2, 3, 1));

    label = panelBuilder.addLabel(Localizer.getString("SearchTab_WithoutTerms"), cc.xywh(8, 2, 1, 1));
    label.setToolTipText(Localizer.getString("SearchTab_TTTWithoutTerms"));

    withoutTermsTF = new JTextField(8);
    withoutTermsTF.addKeyListener(activationHandler);
    withoutTermsTF.setToolTipText(Localizer.getString("SearchTab_TTTWithoutTerms"));
    keymap = JTextField.addKeymap("SearchFilterTextEditor", withoutTermsTF.getKeymap());
    withoutTermsTF.setKeymap(keymap);
    GUIUtils.assignKeymapToTextField(keymap, withoutTermsTF);
    panelBuilder.add(withoutTermsTF, cc.xywh(10, 2, 3, 1));

    label = panelBuilder.addLabel(Localizer.getString("SearchTab_FileType"), cc.xywh(2, 4, 1, 1));
    label.setToolTipText(Localizer.getString("SearchTab_TTTFileType"));

    mediaTypeComboBox = new JComboBox(MediaType.getAllMediaTypes());
    mediaTypeComboBox.addItemListener(activationHandler);
    mediaTypeComboBox.setRenderer(new MediaTypeListRenderer());
    panelBuilder.add(mediaTypeComboBox, cc.xywh(4, 4, 3, 1));

    label = panelBuilder.addLabel(Localizer.getString("SearchTab_MinFileSize"), cc.xywh(2, 6, 1, 1));
    label.setToolTipText(Localizer.getString("SearchTab_TTTMinFileSize"));

    minFileSizeTF = new IntegerTextField(9);
    minFileSizeTF.addKeyListener(activationHandler);
    minFileSizeTF.setToolTipText(Localizer.getString("SearchTab_TTTMinFileSize"));
    keymap = JTextField.getKeymap("SearchFilterTextEditor");
    minFileSizeTF.setKeymap(keymap);
    GUIUtils.assignKeymapToTextField(keymap, minFileSizeTF);
    panelBuilder.add(minFileSizeTF, cc.xywh(4, 6, 1, 1));

    minFileSizeUnitComboBox = new FWSizeDefComboBox();
    minFileSizeUnitComboBox.addItemListener(activationHandler);
    minFileSizeUnitComboBox.setToolTipText(Localizer.getString("SearchTab_TTTMinFileSize"));
    panelBuilder.add(minFileSizeUnitComboBox, cc.xywh(6, 6, 1, 1));

    label = panelBuilder.addLabel(Localizer.getString("SearchTab_MaxFileSize"), cc.xywh(8, 6, 1, 1));
    label.setToolTipText(Localizer.getString("SearchTab_TTTMaxFileSize"));

    maxFileSizeTF = new IntegerTextField(9);
    maxFileSizeTF.addKeyListener(activationHandler);
    maxFileSizeTF.setToolTipText(Localizer.getString("SearchTab_TTTMaxFileSize"));
    keymap = JTextField.getKeymap("SearchFilterTextEditor");
    maxFileSizeTF.setKeymap(keymap);
    GUIUtils.assignKeymapToTextField(keymap, maxFileSizeTF);
    panelBuilder.add(maxFileSizeTF, cc.xywh(10, 6, 1, 1));

    maxFileSizeUnitComboBox = new FWSizeDefComboBox();
    maxFileSizeUnitComboBox.addItemListener(activationHandler);
    maxFileSizeUnitComboBox.setToolTipText(Localizer.getString("SearchTab_TTTMaxFileSize"));
    panelBuilder.add(maxFileSizeUnitComboBox, cc.xywh(12, 6, 1, 1));
}

From source file:soundreminder.SoundReminder.java

License:Open Source License

public ActionMenu getButtonAction() {
    final ContextMenuAction openDialog = new ContextMenuAction(
            mLocalizer.msg("editSoundList", "Edit sound list"),
            createImageIcon("status", "audio-volume-high", 16));
    openDialog.putValue(Plugin.BIG_ICON, createImageIcon("status", "audio-volume-high", 22));
    openDialog.setActionListener(new ActionListener() {
        public void actionPerformed(final ActionEvent e) {
            final Window w = UiUtilities.getLastModalChildOf(getParentFrame());

            JDialog temDlg = null;

            if (w instanceof JDialog) {
                temDlg = new JDialog((JDialog) w, true);
            } else {
                temDlg = new JDialog((JFrame) w, true);
            }/*from   w w  w  .j a  va 2 s  . c  o  m*/

            final JDialog exclusionListDlg = temDlg;
            exclusionListDlg.setTitle(mLocalizer.msg("title", "Sound reminder") + " - "
                    + mLocalizer.msg("editSoundList", "Edit sound list"));

            UiUtilities.registerForClosing(new WindowClosingIf() {
                public void close() {
                    exclusionListDlg.dispose();
                }

                public JRootPane getRootPane() {
                    return exclusionListDlg.getRootPane();
                }
            });

            final SoundTablePanel soundPanel = new SoundTablePanel();

            final JButton ok = new JButton(Localizer.getLocalization(Localizer.I18N_OK));
            ok.addActionListener(new ActionListener() {
                public void actionPerformed(final ActionEvent e) {
                    soundPanel.saveSettings();
                    exclusionListDlg.dispose();
                }
            });

            final JButton cancel = new JButton(Localizer.getLocalization(Localizer.I18N_CANCEL));
            cancel.addActionListener(new ActionListener() {
                public void actionPerformed(final ActionEvent e) {
                    exclusionListDlg.dispose();
                }
            });

            final FormLayout layout = new FormLayout("0dlu:grow,default,3dlu,default",
                    "fill:default:grow,2dlu,default,5dlu,default");
            layout.setColumnGroups(new int[][] { { 2, 4 } });

            final CellConstraints cc = new CellConstraints();
            final PanelBuilder pb = new PanelBuilder(layout, (JPanel) exclusionListDlg.getContentPane());
            pb.setDefaultDialogBorder();

            pb.add(soundPanel, cc.xyw(1, 1, 4));
            pb.addSeparator("", cc.xyw(1, 3, 4));
            pb.add(ok, cc.xy(2, 5));
            pb.add(cancel, cc.xy(4, 5));

            layoutWindow("soundListDlg", exclusionListDlg, new Dimension(600, 450));
            exclusionListDlg.setVisible(true);
        }
    });

    return new ActionMenu(openDialog);
}

From source file:tvbrowser.extras.favoritesplugin.wizards.WizardDlg.java

License:Open Source License

private JPanel createButtonPanel(int[] btns) {
    mDoneBtn = new JButton(mLocalizer.msg("done", "Done"));
    mDoneBtn.setEnabled(false);//from   w w  w.  jav  a 2s.c  o m
    mCancelBtn = new JButton(Localizer.getLocalization(Localizer.I18N_CANCEL));
    mCancelBtn.setEnabled(false);
    mNextBtn = new JButton(Localizer.getLocalization(Localizer.I18N_NEXT) + " >>");
    mNextBtn.setEnabled(false);
    mBackBtn = new JButton("<< " + Localizer.getLocalization(Localizer.I18N_BACK));
    mBackBtn.setEnabled(false);

    JPanel panel = new JPanel(new FormLayout("fill:pref:grow, pref, 3dlu, pref", "pref"));
    CellConstraints cc = new CellConstraints();

    if (!mStep.isSingleStep()) {
        FormLayout layout = new FormLayout("pref, 3dlu, pref", "pref");
        layout.setColumnGroups(new int[][] { { 1, 3 } });
        JPanel nextpanel = new JPanel(layout);
        nextpanel.add(mBackBtn, cc.xy(1, 1));
        nextpanel.add(mNextBtn, cc.xy(3, 1));
        panel.add(nextpanel, cc.xy(2, 1));
    }

    ButtonBarBuilder2 builder = new ButtonBarBuilder2();
    builder.addButton(mDoneBtn);
    builder.addRelatedGap();
    builder.addFixed(mCancelBtn);
    panel.add(builder.getPanel(), cc.xy(4, 1));

    for (int btn : btns) {
        if (btn == WizardStep.BUTTON_DONE) {
            mDoneBtn.setEnabled(true);
        } else if (btn == WizardStep.BUTTON_BACK) {
            mBackBtn.setEnabled(true);
        } else if (btn == WizardStep.BUTTON_NEXT) {
            mNextBtn.setEnabled(true);
        } else if (btn == WizardStep.BUTTON_CANCEL) {
            mCancelBtn.setEnabled(true);
        }
    }

    mDoneBtn.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            if (mStep.isValid()) {
                mDataObject = mStep.createDataObject(mDataObject);
                close(FINISH);
            }
        }
    });

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

    mNextBtn.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            if (mStep.isValid()) {
                mDataObject = mStep.createDataObject(mDataObject);
                switchToStep(mStep.next());
            }
        }
    });

    mBackBtn.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            switchToStep(mStep.back());
        }
    });

    if (mNextBtn.isEnabled() && !mStep.isSingleStep()) {
        getRootPane().setDefaultButton(mNextBtn);
    } else {
        getRootPane().setDefaultButton(mDoneBtn);
    }

    AbstractAction a = new AbstractAction() {
        public void actionPerformed(ActionEvent e) {
            if (mBackBtn.isEnabled()) {
                mBackBtn.dispatchEvent(
                        new KeyEvent(mBackBtn, KeyEvent.KEY_PRESSED, 0, 0, KeyEvent.VK_SPACE, ' '));
                mBackBtn.dispatchEvent(
                        new KeyEvent(mBackBtn, KeyEvent.KEY_RELEASED, 0, 0, KeyEvent.VK_SPACE, ' '));
            }
        }
    };

    KeyStroke stroke = KeyStroke.getKeyStroke(KeyEvent.VK_BACK_SPACE, 0);
    getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(stroke, "BACK");
    getRootPane().getActionMap().put("BACK", a);

    stroke = KeyStroke.getKeyStroke(KeyEvent.VK_BACK_SPACE, InputEvent.ALT_MASK);
    getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(stroke, "BACK");
    getRootPane().getActionMap().put("BACK", a);

    return panel;
}

From source file:tvbrowser.extras.reminderplugin.ReminderSettingsTab.java

License:Open Source License

/**
 * Creates the settings panel for this tab.
 *//*from   w  w  w.  j a  va  2 s. com*/
public JPanel createSettingsPanel() {
    FormLayout layout = new FormLayout("5dlu,pref,5dlu,pref,pref:grow,3dlu,pref,3dlu,pref,5dlu",
            "pref,5dlu,pref,1dlu,pref,1dlu,pref,1dlu,pref,10dlu,pref,5dlu,"
                    + "pref,10dlu,pref,5dlu,pref,10dlu,pref,5dlu,pref,10dlu,"
                    + "pref,5dlu,pref,3dlu,pref,10dlu,pref,5dlu,pref");
    layout.setColumnGroups(new int[][] { { 7, 9 } });
    PanelBuilder pb = new PanelBuilder(layout, new ScrollableJPanel());
    pb.setDefaultDialogBorder();

    CellConstraints cc = new CellConstraints();

    final String[] extArr = { ".wav", ".aif", ".rmf", ".au", ".mid" };
    String soundFName = mSettings.getProperty("soundfile", "/");
    String msg = mLocalizer.msg("soundFileFilter", "Sound file ({0})", "*.wav, *.aif, *.rmf, *.au, *.mid");

    mReminderWindowChB = new JCheckBox(mLocalizer.msg("reminderWindow", "Reminder window"),
            mSettings.getProperty("usemsgbox", "false").equalsIgnoreCase("true"));

    mShowAlwaysOnTop = new JCheckBox(mLocalizer.msg("alwaysOnTop", "Show always on top"),
            mSettings.getProperty("alwaysOnTop", "true").equalsIgnoreCase("true"));
    mShowAlwaysOnTop.setEnabled(mReminderWindowChB.isSelected());

    JPanel reminderWindowCfg = new JPanel(new FormLayout("12dlu,default:grow", "pref,1dlu,pref"));
    reminderWindowCfg.add(mReminderWindowChB, cc.xyw(1, 1, 2));
    reminderWindowCfg.add(mShowAlwaysOnTop, cc.xy(2, 3));

    mSoundFileChB = new FileCheckBox(mLocalizer.msg("playlingSound", "Play sound"), new File(soundFName), 0,
            false);

    JFileChooser soundChooser = new JFileChooser((String) null);
    soundChooser.setFileFilter(new ExtensionFileFilter(extArr, msg));

    mSoundFileChB.setFileChooser(soundChooser);

    mSoundFileChB.setSelected(mSettings.getProperty("usesound", "false").equals("true"));

    mBeep = new JCheckBox(mLocalizer.msg("beep", "Speaker sound"),
            mSettings.getProperty("usebeep", "true").equalsIgnoreCase("true"));

    mExecFileStr = mSettings.getProperty("execfile", "");
    mExecParamStr = mSettings.getProperty("execparam", "");

    final JButton soundTestBt = new JButton(mLocalizer.msg("test", "Test"));

    mExecChB = new JCheckBox(mLocalizer.msg("executeProgram", "Execute program"));
    mExecChB.setSelected(mSettings.getProperty("useexec", "false").equals("true"));

    mExecFileDialogBtn = new JButton(mLocalizer.msg("executeConfig", "Configure"));
    mExecFileDialogBtn.setEnabled(mExecChB.isSelected());

    mPluginLabel = new JLabel();
    JButton choose = new JButton(mLocalizer.msg("selectPlugins", "Choose Plugins"));

    mClientPluginTargets = ReminderPlugin.getInstance().getClientPluginsTargets();

    handlePluginSelection();

    choose.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            try {
                Window parent = UiUtilities.getLastModalChildOf(MainFrame.getInstance());
                PluginChooserDlg chooser = null;
                chooser = new PluginChooserDlg(parent, mClientPluginTargets, null,
                        ReminderPluginProxy.getInstance());

                chooser.setLocationRelativeTo(parent);
                chooser.setVisible(true);

                if (chooser.getReceiveTargets() != null) {
                    mClientPluginTargets = chooser.getReceiveTargets();
                }

                handlePluginSelection();
            } catch (Exception ee) {
                ee.printStackTrace();
            }
        }
    });

    int autoCloseReminderTime = 10;
    try {
        String asString = mSettings.getProperty("autoCloseReminderTime", "10");
        autoCloseReminderTime = Integer.parseInt(asString);

        if (autoCloseReminderTime == 0) {
            autoCloseReminderTime = 10;
        }
    } catch (Exception exc) {
        // ignore
    }

    mCloseOnEnd = new JRadioButton(mLocalizer.msg("autoCloseReminderAtProgramEnd", "Program end"),
            mSettings.getProperty("autoCloseBehaviour", "onEnd").equals("onEnd"));
    mCloseOnEnd.setEnabled(mReminderWindowChB.isSelected());

    mCloseNever = new JRadioButton(mLocalizer.msg("autoCloseNever", "Never close"),
            mSettings.getProperty("autoCloseBehaviour", "onEnd").equals("never"));
    mCloseNever.setEnabled(mReminderWindowChB.isSelected());

    mCloseOnTime = new JRadioButton(mLocalizer.ellipsisMsg("autoCloseAfterTime", "After time"),
            mSettings.getProperty("autoCloseBehaviour", "onEnd").equals("onTime"));
    mCloseOnTime.setEnabled(mReminderWindowChB.isSelected());

    ButtonGroup bg = new ButtonGroup();

    bg.add(mCloseOnEnd);
    bg.add(mCloseNever);
    bg.add(mCloseOnTime);

    mAutoCloseReminderTimeSp = new JSpinner(
            new SpinnerNumberModel(autoCloseReminderTime, autoCloseReminderTime < 5 ? 1 : 5, 600, 1));
    mAutoCloseReminderTimeSp.setEnabled(mCloseOnTime.isSelected() && mReminderWindowChB.isSelected());

    mShowTimeCounter = new JCheckBox(mLocalizer.msg("showTimeCounter", "Show time counter"),
            mSettings.getProperty("showTimeCounter", "false").compareTo("true") == 0);
    mShowTimeCounter.setEnabled(!mCloseNever.isSelected() && mReminderWindowChB.isSelected());

    PanelBuilder autoClosePanel = new PanelBuilder(
            new FormLayout("12dlu,default,2dlu,default:grow", "pref,2dlu,pref,2dlu,pref,2dlu,pref,10dlu,pref"));
    autoClosePanel.add(mCloseOnEnd, cc.xyw(1, 1, 4));
    autoClosePanel.add(mCloseNever, cc.xyw(1, 3, 4));
    autoClosePanel.add(mCloseOnTime, cc.xyw(1, 5, 4));
    autoClosePanel.add(mAutoCloseReminderTimeSp, cc.xy(2, 7));

    final JLabel secondsLabel = autoClosePanel.addLabel(mLocalizer.msg("seconds", "seconds (0 = off)"),
            cc.xy(4, 7));

    autoClosePanel.add(mShowTimeCounter, cc.xyw(1, 9, 4));

    secondsLabel.setEnabled(mCloseOnTime.isSelected() && mReminderWindowChB.isSelected());

    String defaultReminderEntryStr = (String) mSettings.get("defaultReminderEntry");
    mDefaultReminderEntryList = new JComboBox(ReminderDialog.SMALL_REMIND_MSG_ARR);
    if (defaultReminderEntryStr != null) {
        try {
            int inx = Integer.parseInt(defaultReminderEntryStr);
            if (inx < ReminderDialog.SMALL_REMIND_MSG_ARR.length) {
                mDefaultReminderEntryList.setSelectedIndex(inx);
            }
        } catch (NumberFormatException e) {
            // ignore
        }
    }

    mShowTimeSelectionDlg = new JCheckBox(
            mLocalizer.msg("showTimeSelectionDialog", "Show time selection dialog"));
    mShowTimeSelectionDlg
            .setSelected(mSettings.getProperty("showTimeSelectionDialog", "true").compareTo("true") == 0);
    mShowRemovedDlg = new JCheckBox(
            mLocalizer.msg("showRemovedDialog", "Show removed reminders after data update"));
    mShowRemovedDlg.setSelected(mSettings.getProperty("showRemovedDialog", "true").compareTo("true") == 0);

    pb.addSeparator(mLocalizer.msg("remindBy", "Remind me by"), cc.xyw(1, 1, 10));

    pb.add(reminderWindowCfg, cc.xyw(2, 3, 4));
    pb.add(mSoundFileChB, cc.xyw(2, 5, 4));
    pb.add(mSoundFileChB.getButton(), cc.xy(7, 5));
    pb.add(soundTestBt, cc.xy(9, 5));
    pb.add(mBeep, cc.xy(2, 7));
    pb.add(mExecChB, cc.xyw(2, 9, 4));
    pb.add(mExecFileDialogBtn, cc.xyw(7, 9, 3));

    pb.addSeparator(mLocalizer.msg("sendToPlugin", "Send reminded program to"), cc.xyw(1, 11, 10));

    pb.add(mPluginLabel, cc.xyw(2, 13, 4));
    pb.add(choose, cc.xyw(7, 13, 3));

    final JLabel c = (JLabel) pb
            .addSeparator(mLocalizer.msg("autoCloseReminder", "Automatically close reminder"),
                    cc.xyw(1, 15, 10))
            .getComponent(0);
    c.setEnabled(mReminderWindowChB.isSelected());

    pb.add(autoClosePanel.getPanel(), cc.xyw(2, 17, 5));

    JPanel reminderEntry = new JPanel(new FlowLayout(FlowLayout.LEADING, 0, 0));
    reminderEntry.add(mDefaultReminderEntryList);

    pb.addSeparator(mLocalizer.msg("defaltReminderEntry", "Default reminder time"), cc.xyw(1, 19, 10));
    pb.add(reminderEntry, cc.xyw(2, 21, 4));

    pb.addSeparator(mLocalizer.msg("miscSettings", "Misc settings"), cc.xyw(1, 23, 10));
    pb.add(mShowTimeSelectionDlg, cc.xyw(2, 25, 7));
    pb.add(mShowRemovedDlg, cc.xyw(2, 27, 7));

    pb.addSeparator(DefaultMarkingPrioritySelectionPanel.getTitle(), cc.xyw(1, 29, 10));
    pb.add(mMarkingsPanel = DefaultMarkingPrioritySelectionPanel
            .createPanel(ReminderPlugin.getInstance().getMarkPriority(), false, false), cc.xyw(2, 31, 9));

    mReminderWindowChB.addItemListener(new ItemListener() {
        public void itemStateChanged(ItemEvent e) {
            mShowAlwaysOnTop.setEnabled(e.getStateChange() == ItemEvent.SELECTED);
            c.setEnabled(e.getStateChange() == ItemEvent.SELECTED);
            secondsLabel.setEnabled(e.getStateChange() == ItemEvent.SELECTED && mCloseOnTime.isSelected());
            mCloseOnEnd.setEnabled(e.getStateChange() == ItemEvent.SELECTED);
            mCloseNever.setEnabled(e.getStateChange() == ItemEvent.SELECTED);
            mCloseOnTime.setEnabled(e.getStateChange() == ItemEvent.SELECTED);
            mShowTimeCounter.setEnabled(e.getStateChange() == ItemEvent.SELECTED && !mCloseNever.isSelected());
            mAutoCloseReminderTimeSp
                    .setEnabled(e.getStateChange() == ItemEvent.SELECTED && mCloseOnTime.isSelected());
        }
    });

    soundTestBt.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent evt) {
            if (evt.getActionCommand().compareTo(mLocalizer.msg("test", "Test")) == 0) {
                mTestSound = ReminderPlugin.playSound(mSoundFileChB.getTextField().getText());
                if (mTestSound != null) {
                    soundTestBt.setText(mLocalizer.msg("stop", "Stop"));
                }
                if (mTestSound != null) {
                    if (mTestSound instanceof SourceDataLine) {
                        ((SourceDataLine) mTestSound).addLineListener(new LineListener() {
                            public void update(LineEvent event) {
                                if (event.getType() == Type.CLOSE) {
                                    soundTestBt.setText(mLocalizer.msg("test", "Test"));
                                }
                            }
                        });
                    } else if (mTestSound instanceof Sequencer) {
                        new Thread("Test MIDI sound") {
                            public void run() {
                                setPriority(Thread.MIN_PRIORITY);
                                while (((Sequencer) mTestSound).isRunning()) {
                                    try {
                                        Thread.sleep(100);
                                    } catch (Exception ee) {
                                    }
                                }

                                soundTestBt.setText(mLocalizer.msg("test", "Test"));
                            }
                        }.start();
                    }
                }
            } else if (mTestSound != null) {
                if (mTestSound instanceof SourceDataLine && ((SourceDataLine) mTestSound).isRunning()) {
                    ((SourceDataLine) mTestSound).stop();
                } else if (mTestSound instanceof Sequencer && ((Sequencer) mTestSound).isRunning()) {
                    ((Sequencer) mTestSound).stop();
                }
            }
        }
    });

    mSoundFileChB.getCheckBox().addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            soundTestBt.setEnabled(mSoundFileChB.isSelected());
        }
    });

    mSoundFileChB.getTextField().addKeyListener(new KeyAdapter() {
        public void keyReleased(KeyEvent e) {
            String text = mSoundFileChB.getTextField().getText();
            if ((new File(text)).isFile()) {
                boolean notFound = true;
                for (String extension : extArr) {
                    if (text.toLowerCase().endsWith(extension)) {
                        notFound = false;
                        break;
                    }
                }

                if (notFound) {
                    soundTestBt.setEnabled(false);
                } else {
                    soundTestBt.setEnabled(true);
                }
            } else {
                soundTestBt.setEnabled(false);
            }
        }
    });
    mSoundFileChB.getTextField().getKeyListeners()[0].keyReleased(null);

    mExecChB.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            mExecFileDialogBtn.setEnabled(mExecChB.isSelected());
            if (mExecFileDialogBtn.isEnabled()) {
                showFileSettingsDialog();
            }
        }
    });

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

    ItemListener autoCloseListener = new ItemListener() {
        public void itemStateChanged(ItemEvent e) {
            mAutoCloseReminderTimeSp.setEnabled(mCloseOnTime.isSelected());
            secondsLabel.setEnabled(mCloseOnTime.isSelected());
            mShowTimeCounter.setEnabled(mCloseOnTime.isSelected() || mCloseOnEnd.isSelected());
        }
    };

    mCloseOnEnd.addItemListener(autoCloseListener);
    mCloseOnTime.addItemListener(autoCloseListener);

    mCloseOnTime.addItemListener(new ItemListener() {
        public void itemStateChanged(ItemEvent e) {
            mShowTimeCounter.setEnabled(e.getStateChange() == ItemEvent.SELECTED);
        }
    });

    JScrollPane scrollPane = new JScrollPane(pb.getPanel());
    scrollPane.setBorder(null);
    scrollPane.setViewportBorder(null);

    JPanel scrollPanel = new JPanel(new FormLayout("default:grow", "default"));
    scrollPanel.add(scrollPane, cc.xy(1, 1));

    return scrollPanel;
}