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

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

Introduction

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

Prototype

public void appendRow(RowSpec rowSpec) 

Source Link

Document

Appends the given row specification to the bottom of all rows.

Usage

From source file:tvbrowser.core.filters.filtercomponents.DateFilterComponent.java

License:Open Source License

@Override
public JPanel getSettingsPanel() {

    FormLayout layout = new FormLayout("pref, 3dlu, fill:pref:grow, 3dlu, pref", "");
    JPanel content = new JPanel(layout);
    content.setBorder(Borders.DIALOG_BORDER);

    CellConstraints cc = new CellConstraints();
    int currentRow = 1;

    layout.appendRow(RowSpec.decode("pref"));
    layout.appendRow(RowSpec.decode("5dlu"));
    content.add(UiUtilities.createHelpTextArea(mLocalizer.msg("description", "")), cc.xyw(1, currentRow, 5));

    layout.appendRow(RowSpec.decode("pref"));
    layout.appendRow(RowSpec.decode("3dlu"));

    content.add(new JLabel(mLocalizer.msg("from.1", "From today plus")), cc.xy(1, currentRow += 2));
    mFromSpinner = new JSpinner(new SpinnerNumberModel(0, 0, 28, 1));
    mFromSpinner.setValue(0);//  ww  w.  j  a  v a  2s.c o  m
    content.add(mFromSpinner, cc.xy(3, currentRow));
    content.add(new JLabel(mLocalizer.msg("from.2", "days")), cc.xy(5, currentRow));

    layout.appendRow(RowSpec.decode("pref"));

    content.add(new JLabel(mLocalizer.msg("to.1", "Until today plus")), cc.xy(1, currentRow += 2));
    mToSpinner = new JSpinner(new SpinnerNumberModel(7, 0, 28, 1));
    mToSpinner.setValue(7);
    content.add(mToSpinner, cc.xy(3, currentRow));
    content.add(new JLabel(mLocalizer.msg("to.2", "days")), cc.xy(5, currentRow));

    JPanel centerPanel = new JPanel(new BorderLayout());
    centerPanel.add(content, BorderLayout.NORTH);
    return centerPanel;
}

From source file:tvbrowser.ui.configassistant.AuthenticationChannelCardPanel.java

License:Open Source License

public void createPanel() {
    mSettingsPanelList = new ArrayList<SettingsPanel>(0);

    FormLayout layout = new FormLayout("5dlu,default:grow,5dlu");
    PanelBuilder pb = new PanelBuilder(layout, new ScrollableJPanel());

    TvDataServiceProxy[] tvDataServices = TvDataServiceProxyManager.getInstance().getDataServices();

    for (TvDataServiceProxy dataService : tvDataServices) {
        SettingsPanel panel = dataService.getAuthenticationPanel();

        if (panel != null) {
            mSettingsPanelList.add(panel);

            layout.appendRow(RowSpec.decode("10dlu"));
            layout.appendRow(RowSpec.decode("default"));

            JComponent x = pb.addSeparator(dataService.getInfo().getName(), CC.xyw(1, layout.getRowCount(), 3));

            try {
                Method getFont = x.getComponent(0).getClass().getMethod("getFont", new Class[0]);
                Method setFont = x.getComponent(0).getClass().getMethod("setFont", new Class[] { Font.class });

                Font f = (Font) getFont.invoke(x.getComponent(0), new Object[0]);
                f = f.deriveFont(Font.BOLD);
                setFont.invoke(x.getComponent(0), new Object[] { f });
            } catch (Exception e) {
            }//from ww  w.j  a v a 2s.  c  om

            layout.appendRow(RowSpec.decode("5dlu"));
            layout.appendRow(RowSpec.decode("fill:default:grow"));

            pb.add(panel, CC.xy(2, layout.getRowCount()));
        }
    }

    mContent = new JPanel(new FormLayout("15dlu,default:grow,15dlu",
            "default,15dlu,default,5dlu,fill:0dlu:grow,5dlu,default,15dlu"));
    mContent.add(new StatusPanel(StatusPanel.CHANNELS), CC.xyw(1, 1, 3));
    mContent.add(UiUtilities.createHtmlHelpTextArea(mLocalizer.msg("info1",
            "<div style=\"font-weight:bold;\">Some TV data sources need authentication. You need to enter the authentication data if you want to get TV data for the channels of the shown TV data sources.</div>")),
            CC.xy(2, 3));

    mScrollPane = new JScrollPane(pb.getPanel());
    mScrollPane.setBorder(null);
    mScrollPane.setViewportBorder(null);
    mScrollPane.getViewport().setOpaque(false);

    mContent.add(mScrollPane, CC.xy(2, 5));

    mContent.add(UiUtilities.createHtmlHelpTextArea(mLocalizer.msg("info2",
            "<div style=\"color:green;font-weight:bold;font-size:medium;\">If you don't need the channels of the listed TV data sources you can skip to the next step.</div>")),
            CC.xy(2, 7));
}

From source file:tvbrowser.ui.settings.LookAndFeelSettingsTab.java

License:Open Source License

public JPanel createSettingsPanel() {
    FormLayout layout = new FormLayout("5dlu, pref, 3dlu, fill:default:grow, 3dlu, pref, 5dlu", "");

    CellConstraints cc = new CellConstraints();
    mSettingsPn = new JPanel(layout);
    mSettingsPn.setBorder(Borders.DIALOG_BORDER);

    layout.appendRow(RowSpec.decode("pref"));
    mSettingsPn.add(DefaultComponentFactory.getInstance()
            .createSeparator(mLocalizer.msg("lookAndFeel", "Look and Feel")), cc.xyw(1, 1, 7));

    layout.appendRow(RowSpec.decode("5dlu"));
    layout.appendRow(RowSpec.decode("pref"));

    mSettingsPn.add(new JLabel(mLocalizer.msg("channelPosition", "Channel list position") + ":"), cc.xy(2, 3));

    mPluginViewPosition = new JComboBox(new String[] { Localizer.getLocalization(Localizer.I18N_LEFT),
            Localizer.getLocalization(Localizer.I18N_RIGHT) });

    if (Settings.propPluginViewIsLeft.getBoolean()) {
        mPluginViewPosition.setSelectedIndex(1);
    } else {//from   w  w w  .  j  a v  a 2s.  co  m
        mPluginViewPosition.setSelectedIndex(0);
    }

    mPluginViewPosition.addActionListener(new ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent e) {
            updateRestartMessage();
        }
    });

    mSettingsPn.add(mPluginViewPosition, cc.xy(4, 3));

    layout.appendRow(RowSpec.decode("5dlu"));
    layout.appendRow(RowSpec.decode("pref"));

    mSettingsPn.add(new JLabel(mLocalizer.msg("dateFormat", "Layout of Datelist") + ":"), cc.xy(2, 5));

    mDateLayout = new JComboBox(new String[] { mLocalizer.msg("dateFormat.datelist", "List"),
            mLocalizer.msg("dateFormat.calendarTable", "Calendar (Table)"),
            mLocalizer.msg("dateFormat.calendarButtons", "Calendar (Buttons)") });

    mDateLayout.setSelectedIndex(Settings.propViewDateLayout.getInt());

    mDateLayout.addActionListener(new ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent e) {
            updateRestartMessage();
        }
    });

    mSettingsPn.add(mDateLayout, cc.xy(4, 5));

    layout.appendRow(RowSpec.decode("5dlu"));
    layout.appendRow(RowSpec.decode("pref"));

    mSettingsPn.add(new JLabel(mLocalizer.msg("theme", "Theme") + ":"), cc.xy(2, 7));

    LookAndFeelObj[] lfObjects = getLookAndFeelObjs();
    Arrays.sort(lfObjects);
    mLfComboBox = new JComboBox(lfObjects);

    String lfName = Settings.propLookAndFeel.getString();
    for (LookAndFeelObj lfObject : lfObjects) {
        if (lfObject.getLFClassName().equals(lfName)) {
            mLfComboBox.setSelectedItem(lfObject);
        }
    }

    mLfComboBox.addActionListener(new ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent e) {
            lookChanged();
        }
    });

    mSettingsPn.add(mLfComboBox, cc.xy(4, 7));

    mConfigBtn = new JButton(mLocalizer.msg("config", "Config"));
    mConfigBtn.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            configTheme();
        }
    });

    mSettingsPn.add(mConfigBtn, cc.xy(6, 7));

    layout.appendRow(RowSpec.decode("3dlu"));
    layout.appendRow(RowSpec.decode("pref"));

    mSettingsPn.add(new JLabel(mLocalizer.msg("icons", "Icons") + ":"), cc.xy(2, 9));

    mIconThemes = new JComboBox(IconLoader.getInstance().getAvailableThemes());
    mIconThemes.setRenderer(new DefaultListCellRenderer() {
        @Override
        public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected,
                boolean cellHasFocus) {
            JLabel label = (JLabel) super.getListCellRendererComponent(list, value, index, isSelected,
                    cellHasFocus);
            if (value != null) {
                label.setText(((IconTheme) value).getName());
                label.setToolTipText(((IconTheme) value).getComment());
            }
            return label;
        }
    });

    if (Settings.propIcontheme.getString() != null) {
        IconTheme theme = IconLoader.getInstance()
                .getIconTheme(IconLoader.getInstance().getIconThemeFile(Settings.propIcontheme.getString()));
        if (theme.loadTheme()) {
            mIconThemes.setSelectedItem(theme);
        } else {
            mIconThemes.setSelectedItem(IconLoader.getInstance().getDefaultTheme());
        }
    } else {
        mIconThemes.setSelectedItem(IconLoader.getInstance().getDefaultTheme());
    }

    mSettingsPn.add(mIconThemes, cc.xy(4, 9));

    layout.appendRow(RowSpec.decode("3dlu"));
    layout.appendRow(RowSpec.decode("pref"));

    mSettingsPn.add(new LinkButton(mLocalizer.msg("findMoreIcons", "You can find more Icons on our Web-Page."),
            "http://www.tvbrowser.org/iconthemes.php"), cc.xy(4, 11));

    layout.appendRow(RowSpec.decode("fill:3dlu:grow"));
    layout.appendRow(RowSpec.decode("pref"));

    mRestartMessage = UiUtilities.createHelpTextArea(mLocalizer.msg("restartNote", "Please Restart"));
    mRestartMessage.setForeground(Color.RED);
    mRestartMessage.setVisible(mSomethingChanged);

    mSettingsPn.add(mRestartMessage, cc.xyw(1, 13, 6));

    if (!mSomethingChanged) {
        mStartLookAndIndex = mLfComboBox.getSelectedIndex();
        mStartIconIndex = mIconThemes.getSelectedIndex();
        mStartPluginViewPositionIndex = mPluginViewPosition.getSelectedIndex();
        mJGoodiesStartTheme = Settings.propJGoodiesTheme.getString();
        mJGoodiesStartShadow = Settings.propJGoodiesShadow.getBoolean();
        mSkinLFStartTheme = Settings.propSkinLFThemepack.getString();
    }

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

    lookChanged();

    return mSettingsPn;
}

From source file:tvbrowser.ui.settings.ProgramTableSettingsTab.java

License:Open Source License

/**
 * Creates the settings panel for this tab.
 *///from  w w  w. ja v  a2 s .co m
public JPanel createSettingsPanel() {
    FormLayout layout = new FormLayout("5dlu, pref, 3dlu, pref, 3dlu, pref, fill:pref:grow, 3dlu", "");
    mSettingsPn = new JPanel(layout);
    mSettingsPn.setBorder(Borders.DIALOG_BORDER);

    CellConstraints cc = new CellConstraints();
    int currentRow = 1;

    // Layout-Rows ****************************************
    layout.appendRow(RowSpec.decode("pref"));
    layout.appendRow(RowSpec.decode("5dlu"));
    layout.appendRow(RowSpec.decode("pref"));
    layout.appendRow(RowSpec.decode("3dlu"));
    layout.appendRow(RowSpec.decode("pref"));
    layout.appendRow(RowSpec.decode("3dlu"));
    layout.appendRow(RowSpec.decode("pref"));
    layout.appendRow(RowSpec.decode("3dlu"));
    layout.appendRow(RowSpec.decode("pref"));
    layout.appendRow(RowSpec.decode("10dlu"));

    mSettingsPn.add(DefaultComponentFactory.getInstance().createSeparator(mLocalizer.msg("layout", "Layout")),
            cc.xyw(1, currentRow, 8));
    mSettingsPn.add(new JLabel(mLocalizer.msg("programArrangement", "Program arrangement")),
            cc.xy(2, (currentRow += 2)));

    // program table layout
    String[] arrangementArr = { mLocalizer.msg(Settings.LAYOUT_TIME_SYNCHRONOUS, "Time synchronous"),
            mLocalizer.msg(Settings.LAYOUT_REAL_SYNCHRONOUS, "Real time synchronous"),
            mLocalizer.msg(Settings.LAYOUT_COMPACT, "Compact"),
            mLocalizer.msg(Settings.LAYOUT_REAL_COMPACT, "Real compact"),
            mLocalizer.msg(Settings.LAYOUT_TIME_BLOCK, "Time block"),
            mLocalizer.msg(Settings.LAYOUT_COMPACT_TIME_BLOCK, "Compact time block"),
            mLocalizer.msg(Settings.LAYOUT_OPTIMIZED_COMPACT_TIME_BLOCK, "Optimized compact time block") };
    mProgramArrangementCB = new JComboBox(arrangementArr);
    if (Settings.propTableLayout.getString().equals(Settings.LAYOUT_COMPACT)) {
        mProgramArrangementCB.setSelectedIndex(2);
    } else if (Settings.propTableLayout.getString().equals(Settings.LAYOUT_REAL_COMPACT)) {
        mProgramArrangementCB.setSelectedIndex(3);
    } else if (Settings.propTableLayout.getString().equals(Settings.LAYOUT_TIME_SYNCHRONOUS)) {
        mProgramArrangementCB.setSelectedIndex(0);
    } else if (Settings.propTableLayout.getString().equals(Settings.LAYOUT_TIME_BLOCK)) {
        mProgramArrangementCB.setSelectedIndex(4);
    } else if (Settings.propTableLayout.getString().equals(Settings.LAYOUT_COMPACT_TIME_BLOCK)) {
        mProgramArrangementCB.setSelectedIndex(5);
    } else if (Settings.propTableLayout.getString().equals(Settings.LAYOUT_OPTIMIZED_COMPACT_TIME_BLOCK)) {
        mProgramArrangementCB.setSelectedIndex(6);
    } else {
        mProgramArrangementCB.setSelectedIndex(1);
    }

    mLastSelectedLayoutIndex = (short) mProgramArrangementCB.getSelectedIndex();

    mSettingsPn.add(mProgramArrangementCB, cc.xy(4, currentRow));

    // Cut long titles
    mCutLongTitlesCB = new JCheckBox(mLocalizer.msg("cutTitle", "Cut long titles"),
            Settings.propProgramTableCutTitle.getBoolean());
    mSettingsPn.add(mCutLongTitlesCB, cc.xyw(2, (currentRow += 2), 2));
    mCutLongTitlesSelection = new JSpinner(
            new SpinnerNumberModel(Settings.propProgramTableCutTitleLines.getInt(), 1, 3, 1));
    mSettingsPn.add(mCutLongTitlesSelection, cc.xy(4, currentRow));
    mCutLongTitlesLabel = new JLabel(mLocalizer.msg("lines", "Lines"));
    mSettingsPn.add(mCutLongTitlesLabel, cc.xy(6, currentRow));

    mCutLongTitlesCB.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            mCutLongTitlesSelection.setEnabled(mCutLongTitlesCB.isSelected());
            mCutLongTitlesLabel.setEnabled(mCutLongTitlesCB.isSelected());
        }
    });
    mCutLongTitlesCB.getActionListeners()[0].actionPerformed(null);

    // Short descriptions N lines
    mDescriptionLines = new JSpinner(
            new SpinnerNumberModel(Settings.propProgramPanelMaxLines.getInt(), 1, 5, 1));
    mSettingsPn.add(new JLabel(mLocalizer.msg("shortDescription", "Short description")),
            cc.xyw(2, currentRow += 2, 2));
    mSettingsPn.add(mDescriptionLines, cc.xy(4, currentRow));
    mSettingsPn.add(new JLabel(mLocalizer.msg("lines", "Lines")), cc.xy(6, currentRow));

    // Short programs no description
    mShortProgramsCB = new JCheckBox(mLocalizer.msg("shortPrograms", "If duration less than"),
            Settings.propProgramPanelShortDurationActive.getBoolean());
    mSettingsPn.add(mShortProgramsCB, cc.xyw(2, (currentRow += 2), 2));
    mShortProgramsMinutes = new JSpinner(
            new SpinnerNumberModel(Settings.propProgramPanelShortDurationMinutes.getInt(), 1, 30, 1));
    mSettingsPn.add(mShortProgramsMinutes, cc.xy(4, currentRow));
    mShortProgramsLabel = new JLabel(mLocalizer.msg("shortPrograms2", "minutes, then hide description"));
    mSettingsPn.add(mShortProgramsLabel, cc.xy(6, currentRow));

    mShortProgramsCB.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            mShortProgramsMinutes.setEnabled(mShortProgramsCB.isSelected());
            mShortProgramsLabel.setEnabled(mShortProgramsCB.isSelected());
        }
    });
    mShortProgramsCB.getActionListeners()[0].actionPerformed(null);

    // Column Rows ***************************************
    layout.appendRow(RowSpec.decode("pref"));
    layout.appendRow(RowSpec.decode("5dlu"));
    layout.appendRow(RowSpec.decode("pref"));
    layout.appendRow(RowSpec.decode("10dlu"));

    mSettingsPn.add(DefaultComponentFactory.getInstance()
            .createSeparator(mLocalizer.msg("columnwidth", "column width")), cc.xyw(1, (currentRow += 2), 8));

    // column width
    int width = Settings.propColumnWidth.getInt();

    if (width > Settings.MAX_COLUMN_WIDTH) {
        width = Settings.MAX_COLUMN_WIDTH;
    }

    if (width < Settings.MIN_COLUMN_WIDTH) {
        width = Settings.MIN_COLUMN_WIDTH;
    }

    mColWidth = new JSpinner(
            new SpinnerNumberModel(width, Settings.MIN_COLUMN_WIDTH, Settings.MAX_COLUMN_WIDTH, 1));

    mSettingsPn.add(new JLabel(mLocalizer.msg("widthInPixels", "Width in Pixels")),
            cc.xy(2, (currentRow += 2)));
    mSettingsPn.add(mColWidth, cc.xy(4, currentRow));

    mDefaultBtn = new JButton(Localizer.getLocalization(Localizer.I18N_DEFAULT));
    mDefaultBtn.addActionListener(this);

    mSettingsPn.add(mDefaultBtn, cc.xy(6, currentRow));

    // Column Rows ***************************************
    layout.appendRow(RowSpec.decode("pref"));
    layout.appendRow(RowSpec.decode("5dlu"));
    layout.appendRow(RowSpec.decode("pref"));
    layout.appendRow(RowSpec.decode("3dlu"));
    layout.appendRow(RowSpec.decode("pref"));
    layout.appendRow(RowSpec.decode("10dlu"));

    mSettingsPn.add(DefaultComponentFactory.getInstance().createSeparator(mLocalizer.msg("range", "Range")),
            cc.xyw(1, (currentRow += 2), 8));

    mSettingsPn.add(new JLabel(mLocalizer.msg("startOfDay", "Start of day")), cc.xy(2, (currentRow += 2)));

    TwoSpinnerDateModel startModel = new TwoSpinnerDateModel();

    mStartOfDayTimeSp = new JSpinner(startModel);
    startModel.setMe(mStartOfDayTimeSp);

    JSpinner.DateEditor dateEditor = new JSpinner.DateEditor(mStartOfDayTimeSp, Settings.getTimePattern());
    mStartOfDayTimeSp.setEditor(dateEditor);
    mSettingsPn.add(mStartOfDayTimeSp, cc.xy(4, currentRow));
    mSettingsPn.add(new JLabel("(" + Localizer.getLocalization(Localizer.I18N_TODAY) + ")"),
            cc.xy(6, currentRow));
    CaretPositionCorrector.createCorrector(dateEditor.getTextField(), new char[] { ':' }, -1);

    mSettingsPn.add(new JLabel(mLocalizer.msg("endOfDay", "End of day")), cc.xy(2, (currentRow += 2)));

    TwoSpinnerDateModel endModel = new TwoSpinnerDateModel();

    mEndOfDayTimeSp = new JSpinner(endModel);
    endModel.setMe(mEndOfDayTimeSp);

    dateEditor = new JSpinner.DateEditor(mEndOfDayTimeSp, Settings.getTimePattern());
    mEndOfDayTimeSp.setEditor(dateEditor);
    mSettingsPn.add(mEndOfDayTimeSp, cc.xy(4, currentRow));
    mSettingsPn.add(new JLabel("(" + mLocalizer.msg("nextDay", "next day") + ")"), cc.xy(6, currentRow));
    CaretPositionCorrector.createCorrector(dateEditor.getTextField(), new char[] { ':' }, -1);

    int minutes;
    Calendar cal = Calendar.getInstance();
    minutes = Settings.propProgramTableStartOfDay.getInt();
    cal.set(Calendar.HOUR_OF_DAY, minutes / 60);
    cal.set(Calendar.MINUTE, minutes % 60);
    mStartOfDayTimeSp.setValue(cal.getTime());

    minutes = Settings.propProgramTableEndOfDay.getInt();
    cal.set(Calendar.HOUR_OF_DAY, minutes / 60);
    cal.set(Calendar.MINUTE, minutes % 60);
    mEndOfDayTimeSp.setValue(cal.getTime());

    // Table Background ***************************************
    layout.appendRow(RowSpec.decode("pref"));
    layout.appendRow(RowSpec.decode("5dlu"));
    layout.appendRow(RowSpec.decode("pref"));
    layout.appendRow(RowSpec.decode("10dlu"));

    mSettingsPn.add(DefaultComponentFactory.getInstance().createSeparator(
            mLocalizer.msg("tableBackground", "Table background")), cc.xyw(1, (currentRow += 2), 8));

    mSettingsPn.add(new JLabel(mLocalizer.msg("tableBackgroundStyle", "Table background style")),
            cc.xy(2, (currentRow += 2)));

    TableBackgroundStyle[] styles = getTableBackgroundStyles();
    mBackgroundStyleCB = new JComboBox(styles);

    String style = Settings.propTableBackgroundStyle.getString();
    for (int i = 0; i < styles.length; i++) {
        if (styles[i].getSettingsString().equals(style)) {
            mBackgroundStyleCB.setSelectedIndex(i);
            break;
        }
    }

    mBackgroundStyleCB.addItemListener(new ItemListener() {
        public void itemStateChanged(ItemEvent e) {
            updateBackgroundStyleConfigureButton();
        }
    });

    mSettingsPn.add(mBackgroundStyleCB, cc.xy(4, currentRow));

    mConfigBackgroundStyleBt = new JButton(mLocalizer.ellipsisMsg("configure", "Configure"));

    mConfigBackgroundStyleBt.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            ConfigureBackgroundStyleDialog dlg = new ConfigureBackgroundStyleDialog(mBackgroundStyleCB,
                    (TableBackgroundStyle) mBackgroundStyleCB.getSelectedItem());
            dlg.show();
        }
    });

    mSettingsPn.add(mConfigBackgroundStyleBt, cc.xy(6, currentRow));

    // Foreground color
    layout.appendRow(RowSpec.decode("pref"));
    layout.appendRow(RowSpec.decode("5dlu"));
    layout.appendRow(RowSpec.decode("pref"));
    layout.appendRow(RowSpec.decode("5dlu"));

    mForegroundColorLb = new ColorLabel(Settings.propProgramPanelForegroundColor.getColor());
    mForegroundColorLb.setStandardColor(Settings.propProgramPanelForegroundColor.getDefaultColor());
    ColorButton programPanelForegroundColorChangeBtn = new ColorButton(mForegroundColorLb);

    mSettingsPn.add(
            DefaultComponentFactory.getInstance().createSeparator(mLocalizer.msg("foreground", "Foreground")),
            cc.xyw(1, (currentRow += 2), 8));

    mSettingsPn.add(new JLabel(mLocalizer.msg("fontColor", "Font color")), cc.xy(2, (currentRow += 2)));
    mSettingsPn.add(mForegroundColorLb, cc.xy(4, currentRow));
    mSettingsPn.add(programPanelForegroundColorChangeBtn, cc.xy(6, currentRow));

    // Miscellaneous *********************************************
    layout.appendRow(RowSpec.decode("pref"));
    layout.appendRow(RowSpec.decode("5dlu"));
    layout.appendRow(RowSpec.decode("pref"));
    layout.appendRow(RowSpec.decode("3dlu"));
    layout.appendRow(RowSpec.decode("pref"));

    mSettingsPn.add(DefaultComponentFactory.getInstance().createSeparator(mLocalizer.msg("mouse", "Mouse")),
            cc.xyw(1, (currentRow += 2), 8));

    mMouseOverCb = new JCheckBox(mLocalizer.msg("MouseOver", "Mouse-Over-Effect"));
    mMouseOverCb.setSelected(Settings.propProgramTableMouseOver.getBoolean());
    mSettingsPn.add(mMouseOverCb, cc.xy(2, (currentRow += 2)));

    mMouseOverColorLb = new ColorLabel(Settings.propProgramTableMouseOverColor.getColor());
    mMouseOverColorLb.setStandardColor(Settings.propProgramTableMouseOverColor.getDefaultColor());
    final ColorButton mouseOverColorChangeBtn = new ColorButton(mMouseOverColorLb);
    mMouseOverCb.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            boolean enabled = mMouseOverCb.isSelected();
            mMouseOverColorLb.setEnabled(enabled);
            mouseOverColorChangeBtn.setEnabled(enabled);
        }
    });
    mMouseOverCb.getActionListeners()[0].actionPerformed(null);

    mSettingsPn.add(mMouseOverColorLb, cc.xy(4, currentRow));
    mSettingsPn.add(mouseOverColorChangeBtn, cc.xy(6, currentRow));

    // auto scrolling
    mAutoScrollCb = new JCheckBox(mLocalizer.msg("mouseAutoScroll", "Throw'n scroll"));
    mAutoScrollCb.setSelected(Settings.propProgramTableMouseAutoScroll.getBoolean());
    mSettingsPn.add(mAutoScrollCb, cc.xyw(2, (currentRow += 2), 6));

    updateBackgroundStyleConfigureButton();

    return mSettingsPn;
}

From source file:tvbrowser.ui.update.SoftwareUpdateDlg.java

License:Open Source License

private void createGui(String downloadUrl, boolean onlyUpdate, SoftwareUpdateItem[] itemArr) {
    mDownloadUrl = downloadUrl;//from w  w w.ja va  2  s  .co  m
    setTitle(mLocalizer.msg("title", "Download plugins"));

    if (mIsVersionChange) {
        setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
    }

    JPanel contentPane = (JPanel) getContentPane();
    contentPane.setLayout(new BorderLayout(0, 10));
    contentPane.setBorder(BorderFactory.createEmptyBorder(10, 10, 11, 11));
    mCloseBtn = new JButton(Localizer.getLocalization(Localizer.I18N_CLOSE));
    mCloseBtn.addActionListener(this);
    mCloseBtn.setEnabled(!mIsVersionChange);

    mDownloadBtn = new JButton(mLocalizer.msg("download", "Download selected items"));
    mDownloadBtn.addActionListener(this);

    mHelpBtn = new JButton(mLocalizer.msg("openWebsite", "Open website"),
            TVBrowserIcons.webBrowser(TVBrowserIcons.SIZE_SMALL));
    mHelpBtn.addActionListener(this);
    mHelpBtn.setEnabled(false);

    ButtonBarBuilder2 builder = new ButtonBarBuilder2();

    if (onlyUpdate && !mIsVersionChange) {
        mAutoUpdates = new JCheckBox(mLocalizer.msg("autoUpdates", "Find plugin updates automatically"),
                Settings.propAutoUpdatePlugins.getBoolean());
        mAutoUpdates.addItemListener(new ItemListener() {
            public void itemStateChanged(ItemEvent e) {
                Settings.propAutoUpdatePlugins.setBoolean(e.getStateChange() == ItemEvent.SELECTED);
            }
        });

        builder.addFixed(mAutoUpdates);
        builder.addRelatedGap();
    }
    builder.addFixed(mHelpBtn);

    builder.addGlue();
    builder.addFixed(mDownloadBtn);

    builder.addRelatedGap();
    builder.addFixed(mCloseBtn);

    final CellConstraints cc = new CellConstraints();

    FormLayout layout = new FormLayout("default,5dlu,0dlu:grow", "default");

    JPanel northPn = new JPanel(layout);
    northPn.add(
            new JLabel(onlyUpdate ? mLocalizer.msg("updateHeader", "Updates for installed plugins were found.")
                    : mLocalizer.msg("header", "Here you can download new plugins and updates for it.")),
            cc.xyw(1, 1, 3));

    JPanel southPn = new JPanel(new BorderLayout());

    southPn.add(builder.getPanel(), BorderLayout.SOUTH);

    ArrayList<SoftwareUpdateItem> selectedItems = new ArrayList<SoftwareUpdateItem>();
    for (SoftwareUpdateItem item : itemArr) {
        if (item.isAlreadyInstalled() && item.getInstalledVersion().compareTo(item.getVersion()) < 0) {
            selectedItems.add(item);
        }
    }

    mDownloadBtn.setEnabled(!selectedItems.isEmpty());

    mSoftwareUpdateItemList = new SelectableItemList(
            selectedItems.toArray(new SoftwareUpdateItem[selectedItems.size()]), itemArr);
    mSoftwareUpdateItemList.addListSelectionListener(this);
    mSoftwareUpdateItemList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    mSoftwareUpdateItemList.setListUI(new MyListUI());
    mSoftwareUpdateItemList.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);

    mSoftwareUpdateItemList.addCenterRendererComponent(PluginsSoftwareUpdateItem.class,
            new SelectableItemRendererCenterComponentIf() {
                private final ImageIcon NEW_VERSION_ICON = IconLoader.getInstance().getIconFromTheme("status",
                        "software-update-available", 16);

                public JPanel createCenterPanel(JList list, Object value, int index, boolean isSelected,
                        boolean isEnabled, JScrollPane parentScrollPane, int leftColumnWidth) {
                    FormLayout lay = new FormLayout("5dlu,default,5dlu,default:grow",
                            "2dlu,default,2dlu,fill:pref:grow,2dlu");
                    EnhancedPanelBuilder pb = new EnhancedPanelBuilder(lay);
                    pb.getPanel().setOpaque(false);

                    SoftwareUpdateItem item = (SoftwareUpdateItem) value;

                    JLabel label = pb.addLabel(
                            HTMLTextHelper.convertHtmlToText(item.getName()) + " " + item.getVersion(),
                            cc.xy(2, 2));
                    label.setFont(label.getFont().deriveFont(Font.BOLD, label.getFont().getSize2D() + 2));

                    int width = parentScrollPane.getSize().width
                            - parentScrollPane.getVerticalScrollBar().getWidth() - leftColumnWidth
                            - Sizes.dialogUnitXAsPixel(5, pb.getPanel()) * 4 - parentScrollPane.getInsets().left
                            - parentScrollPane.getInsets().right;

                    if (width <= 0) {
                        width = Settings.propColumnWidth.getInt();
                    }

                    TextAreaIcon icon = new TextAreaIcon(
                            HTMLTextHelper.convertHtmlToText(item.getDescription()), new JLabel().getFont(),
                            width, 2);

                    JLabel iconLabel = new JLabel("");
                    iconLabel.setIcon(icon);

                    pb.add(iconLabel, cc.xyw(2, 4, 3));

                    JLabel label3 = new JLabel();

                    if (item.isAlreadyInstalled()) {
                        Version installedVersion = item.getInstalledVersion();
                        if ((installedVersion != null) && (installedVersion.compareTo(item.getVersion()) < 0)) {
                            label.setIcon(NEW_VERSION_ICON);

                            label3.setText("(" + mLocalizer.msg("installed", "Installed version: ")
                                    + installedVersion.toString() + ")");
                            label3.setFont(label3.getFont().deriveFont(label3.getFont().getSize2D() + 2));

                            pb.add(label3, cc.xy(4, 2));
                        }
                    }

                    if (isSelected && isEnabled) {
                        label.setForeground(list.getSelectionForeground());

                        String author = item.getProperty("author");
                        String website = item.getWebsite();

                        FormLayout authorAndWebsiteLayout = new FormLayout("default,5dlu,default", "default");
                        JPanel authorAndWebsite = new JPanel(authorAndWebsiteLayout);
                        authorAndWebsite.setOpaque(false);

                        if (author != null) {
                            lay.appendRow(RowSpec.decode("2dlu"));
                            lay.appendRow(RowSpec.decode("default"));
                            lay.appendRow(RowSpec.decode("2dlu"));

                            pb.add(authorAndWebsite, cc.xyw(2, 7, 3));

                            JLabel authorLabel = new JLabel(mLocalizer.msg("author", "Author"));
                            authorLabel.setFont(authorLabel.getFont().deriveFont(Font.BOLD));
                            authorLabel.setForeground(list.getSelectionForeground());
                            authorLabel.setHorizontalAlignment(SwingConstants.RIGHT);

                            JLabel authorName = new JLabel(HTMLTextHelper.convertHtmlToText(author));
                            authorName.setForeground(list.getSelectionForeground());

                            authorAndWebsite.add(authorLabel, cc.xy(1, 1));
                            authorAndWebsite.add(authorName, cc.xy(3, 1));
                        }

                        if (website != null) {
                            if (author == null) {
                                lay.appendRow(RowSpec.decode("2dlu"));
                                lay.appendRow(RowSpec.decode("default"));
                                lay.appendRow(RowSpec.decode("2dlu"));

                                pb.add(authorAndWebsite, cc.xyw(2, 7, 3));
                            } else {
                                authorAndWebsiteLayout.appendRow(RowSpec.decode("1dlu"));
                                authorAndWebsiteLayout.appendRow(RowSpec.decode("default"));
                            }

                            JLabel webLabel = new JLabel(mLocalizer.msg("website", "Website"));
                            webLabel.setFont(webLabel.getFont().deriveFont(Font.BOLD));
                            webLabel.setForeground(list.getSelectionForeground());
                            webLabel.setHorizontalAlignment(SwingConstants.RIGHT);

                            LinkButton webLink = new LinkButton(HTMLTextHelper.convertHtmlToText(website));
                            webLink.setForeground(list.getSelectionForeground());

                            authorAndWebsite.add(webLabel, cc.xy(1, author == null ? 1 : 3));
                            authorAndWebsite.add(webLink, cc.xy(3, author == null ? 1 : 3));
                        }

                        icon.setMaximumLineCount(-1);
                        iconLabel.setForeground(list.getSelectionForeground());

                        label3.setForeground(list.getSelectionForeground());
                    } else {
                        if (!item.isStable()) {
                            label.setForeground(new Color(200, 0, 0));
                        } else {
                            label.setForeground(list.getForeground());
                        }

                        icon.setMaximumLineCount(1);
                        iconLabel.setForeground(list.getSelectionForeground());
                        iconLabel.setForeground(list.getForeground());
                        label3.setForeground(Color.gray);
                    }

                    return pb.getPanel();
                }

                public void calculateSize(JList list, int index, JPanel contPane) {
                    if (list.getUI() instanceof MyListUI) {
                        ((MyListUI) list.getUI()).setCellHeight(index, contPane.getPreferredSize().height);
                    }
                }
            });

    mSoftwareUpdateItemList.addMouseListener(new MouseAdapter() {
        @Override
        public void mousePressed(MouseEvent e) {
            if (SwingUtilities.isRightMouseButton(e) && e.isPopupTrigger()) {
                showPopupMenu(e);
            }
        }

        @Override
        public void mouseReleased(MouseEvent e) {
            if (SwingUtilities.isRightMouseButton(e) && e.isPopupTrigger()) {
                showPopupMenu(e);
            }
        }
    });

    if (!onlyUpdate) {
        layout.appendRow(RowSpec.decode("5dlu"));
        layout.appendRow(RowSpec.decode("default"));

        JLabel filterLabel = new JLabel(
                mLocalizer.msg("filterLabel", "Show only Plugins with the following category:"));

        northPn.add(filterLabel, cc.xy(1, 3));

        ArrayList<FilterItem> filterList = new ArrayList<FilterItem>(0);

        for (SoftwareUpdateItem item : itemArr) {
            int index = 0;

            for (int i = 0; i < filterList.size(); i++) {
                int compareValue = filterList.get(i).compareTo(item.getCategory());

                if (compareValue == 0) {
                    index = -1;
                    break;
                } else if (compareValue < 0) {
                    index = i + 1;
                }
            }

            if (index != -1) {
                filterList.add(index, new FilterItem(item.getCategory()));
            }
        }

        filterList.add(0, new FilterItem("all"));

        JComboBox filterBox = new JComboBox(filterList.toArray());

        mSoftwareUpdateItemList.setFilterComboBox(filterBox);

        northPn.add(filterBox, cc.xy(3, 3));
    }

    contentPane.add(northPn, BorderLayout.NORTH);
    contentPane.add(mSoftwareUpdateItemList, BorderLayout.CENTER);
    contentPane.add(southPn, BorderLayout.SOUTH);

    Settings.layoutWindow("softwareUpdateDlg", this, new Dimension(700, 600));

    setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);

    addWindowListener(new WindowAdapter() {
        @Override
        public void windowClosing(WindowEvent e) {
            if (!mIsVersionChange || mSoftwareUpdateItemList.getSelection().length == 0) {
                close();
            }
        }
    });

    UiUtilities.registerForClosing(this);
}

From source file:twitterplugin.TwitterDialog.java

License:Open Source License

private void createGui(final Program program, final String format) {
    final JPanel panel = (JPanel) getContentPane();
    panel.setBorder(Borders.DLU4_BORDER);
    final FormLayout layout = new FormLayout("3dlu, fill:min:grow, 3dlu");
    panel.setLayout(layout);/*  ww w  .  j  a v  a 2  s .  c  o  m*/

    int currentRow = 1;

    layout.appendRow(RowSpec.decode("pref"));
    layout.appendRow(RowSpec.decode("5dlu"));

    final CellConstraints cc = new CellConstraints();
    panel.add(
            DefaultComponentFactory.getInstance().createSeparator(mLocalizer.msg("message", "Twitter Message")),
            cc.xyw(1, currentRow, 3));

    layout.appendRow(RowSpec.decode("fill:pref:grow"));
    layout.appendRow(RowSpec.decode("5dlu"));

    mMessage = new JTextArea();
    mMessage.setLineWrap(true);
    mMessage.setWrapStyleWord(true);
    panel.add(new JScrollPane(mMessage), cc.xy(2, currentRow += 2));

    layout.appendRow(RowSpec.decode("pref"));
    layout.appendRow(RowSpec.decode("5dlu"));

    final JLabel warningCounter = new JLabel("");
    panel.add(warningCounter, cc.xy(2, currentRow += 2));

    final ButtonBarBuilder buttonBar = new ButtonBarBuilder();
    buttonBar.addGlue();

    final JButton ok = new JButton(Localizer.getLocalization(Localizer.I18N_OK));
    ok.addActionListener(new ActionListener() {
        public void actionPerformed(final ActionEvent e) {
            okPressed();
        }
    });
    final JButton cancel = new JButton(Localizer.getLocalization(Localizer.I18N_CANCEL));
    cancel.addActionListener(new ActionListener() {
        public void actionPerformed(final ActionEvent e) {
            close();
        }
    });

    buttonBar.addGriddedButtons(new JButton[] { ok, cancel });

    layout.appendRow(RowSpec.decode("pref"));
    layout.appendRow(RowSpec.decode("5dlu"));

    panel.add(buttonBar.getPanel(), cc.xyw(1, currentRow += 2, 3));

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

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

    mMessage.getDocument().addDocumentListener(new DocumentListener() {
        public void insertUpdate(final DocumentEvent e) {
            updateWarning();
        }

        public void removeUpdate(final DocumentEvent e) {
            updateWarning();
        }

        public void changedUpdate(final DocumentEvent e) {
            updateWarning();
        }

        private void updateWarning() {
            final int num = TWEET_MAX_CHARS - mMessage.getText().trim().length();
            warningCounter.setText(mLocalizer.msg("counter", "{0} chars left", num));
            if (num < 0) {
                warningCounter.setForeground(Color.RED);
            } else {
                warningCounter.setForeground(new JLabel().getForeground());
            }
            ok.setEnabled(num >= 0 && num != TWEET_MAX_CHARS);
        }

    });
    mMessage.setText(new ParamParser().analyse(format, program));
}

From source file:twitterplugin.TwitterSettingsTab.java

License:Open Source License

public JPanel createSettingsPanel() {
    final FormLayout layout = new FormLayout("3dlu,pref,fill:min:grow,3dlu");
    final CellConstraints cc = new CellConstraints();

    final PanelBuilder panel = new PanelBuilder(layout);

    layout.appendRow(RowSpec.decode("3dlu"));
    layout.appendRow(RowSpec.decode("pref"));

    String auth = mLocalizer.msg("auth.notDefined", "Not stored");
    boolean enableDelete = false;
    if (mSettings.getAccessToken() != null) {
        auth = mLocalizer.msg("auth.oauth", "OAuth access token stored");
        enableDelete = true;//from w w  w.  ja  va  2s  .com
        mUserStored = true;
    }

    final JLabel user = new JLabel(mLocalizer.msg("auth", "Authentication") + ": " + auth);
    panel.add(user, cc.xyw(2, panel.getRowCount(), panel.getColumnCount() - 1));

    layout.appendRow(RowSpec.decode("3dlu"));
    layout.appendRow(RowSpec.decode("pref"));

    final JButton delete = new JButton(Localizer.getLocalization(Localizer.I18N_DELETE),
            Plugin.getPluginManager().getIconFromTheme(TwitterPlugin.getInstance(),
                    new ThemeIcon("actions", "edit-delete", 16)));

    delete.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            mUserStored = false;
            user.setText(mLocalizer.msg("auth.notDefined", "Not stored"));
            delete.setEnabled(false);
        }
    });

    delete.setEnabled(enableDelete);

    panel.add(delete, cc.xy(2, panel.getRowCount()));

    layout.appendRow(RowSpec.decode("10dlu"));
    layout.appendRow(RowSpec.decode("pref"));

    panel.addSeparator(mLocalizer.msg("format", "Twitter Format"),
            cc.xyw(1, panel.getRowCount(), panel.getColumnCount()));

    layout.appendRow(RowSpec.decode("3dlu"));
    layout.appendRow(RowSpec.decode("fill:min:grow"));

    mFormat = new ParamInputField(mSettings.getFormat());

    panel.add(mFormat, cc.xyw(2, panel.getRowCount(), panel.getColumnCount() - 2));

    return panel.getPanel();
}

From source file:uk.ac.ebi.caf.component.factory.PreferencePanelFactory.java

License:Open Source License

public static void getPreferenceEditor(final BooleanPreference preference, JComponent component,
        final Action onFocusLost, FormLayout layout) {

    final JLabel label = LabelFactory.newFormLabel(preference.getName(), preference.getDescription());

    final JCheckBox active = new JCheckBox();

    active.setSelected(preference.get());

    component.add(label, cc.xy(1, layout.getRowCount()));
    component.add(active, cc.xy(3, layout.getRowCount()));
    layout.appendRow(new RowSpec(Sizes.DLUY4));
    layout.appendRow(new RowSpec(Sizes.PREFERRED));

    active.addChangeListener(new ChangeListener() {
        @Override//from  w ww .  ja va 2s  .c o  m
        public void stateChanged(ChangeEvent e) {
            preference.put(active.isSelected());
            onFocusLost.actionPerformed(
                    new ActionEvent(active, ActionEvent.ACTION_PERFORMED, "Object state updated"));

        }
    });
}

From source file:uk.ac.ebi.caf.component.factory.PreferencePanelFactory.java

License:Open Source License

public static void getPreferenceEditor(final IntegerPreference preference, final JComponent component,
        final Action onFocusLost, FormLayout layout) {

    final JLabel label = LabelFactory.newFormLabel(preference.getName(), preference.getDescription());

    final SpinnerNumberModel model = new SpinnerNumberModel(preference.get().intValue(), Integer.MIN_VALUE,
            Integer.MAX_VALUE, 1);

    final JSpinner spinner = new JSpinner(model);

    spinner.setEditor(new JSpinner.NumberEditor(spinner, "#"));

    // spinner.setPreferredSize(new Dimension(64, spinner.getPreferredSize().height));

    component.add(label, cc.xy(1, layout.getRowCount()));
    component.add(spinner, cc.xy(3, layout.getRowCount()));
    layout.appendRow(new RowSpec(Sizes.DLUY4));
    layout.appendRow(new RowSpec(Sizes.PREFERRED));

    spinner.addChangeListener(new ChangeListener() {
        @Override/*from ww  w . j  av  a 2s .c  o  m*/
        public void stateChanged(ChangeEvent e) {
            if (!preference.get().equals(spinner.getValue())) {
                preference.put((Integer) model.getValue());
            }
        }
    });

    addFocusLostAction(spinner, onFocusLost, preference);

}

From source file:uk.ac.ebi.caf.component.factory.PreferencePanelFactory.java

License:Open Source License

public static void getPreferenceEditor(final StringPreference preference, final JComponent component,
        final Action onFocusLost, FormLayout layout) {

    final JLabel label = LabelFactory.newFormLabel(preference.getName(), preference.getDescription());
    final JTextField field = FieldFactory.newField(preference.get());

    component.add(label, cc.xy(1, layout.getRowCount()));

    component.add(field, cc.xy(3, layout.getRowCount()));
    layout.appendRow(new RowSpec(Sizes.DLUY4));
    layout.appendRow(new RowSpec(Sizes.PREFERRED));

    // fires to change the preference an the focus lost action
    final Timer timer = new Timer(1750, new ActionListener() {
        @Override//w ww . j ava2  s  .com
        public void actionPerformed(ActionEvent e) {
            String value = field.getText();
            if (!value.equals(preference.get())) {
                if (field.getText().isEmpty()) {
                    field.setText(preference.getDefault());
                } else {
                    preference.put(value);
                    onFocusLost.actionPerformed(e);
                }
            }
        }
    });
    timer.setRepeats(false);

    field.getDocument().addDocumentListener(new DocumentListener() {
        @Override
        public void insertUpdate(DocumentEvent e) {
            timer.restart();
        }

        @Override
        public void removeUpdate(DocumentEvent e) {
            timer.restart();
        }

        @Override
        public void changedUpdate(DocumentEvent e) {
            timer.restart();
        }
    });

}