Example usage for com.jgoodies.forms.builder PanelBuilder getRow

List of usage examples for com.jgoodies.forms.builder PanelBuilder getRow

Introduction

In this page you can find the example usage for com.jgoodies.forms.builder PanelBuilder getRow.

Prototype

public final int getRow() 

Source Link

Document

Returns the cursor's row.

Usage

From source file:imdbplugin.ImdbSettingsTab.java

License:Open Source License

public JPanel createSettingsPanel() {
    final PanelBuilder panel = new PanelBuilder(new FormLayout("3dlu, fill:pref:grow, 3dlu, pref, 3dlu",
            "pref, 3dlu, pref, 3dlu, pref, 3dlu, pref, 3dlu, pref, 3dlu, pref, 3dlu, pref"));

    final CellConstraints cc = new CellConstraints();

    final JLabel excludedChannels = new JLabel(createExcludeChannelsLabelText());
    panel.add(excludedChannels, cc.xy(2, panel.getRow()));
    final JButton channelConfig = new JButton(Localizer.getLocalization(Localizer.I18N_EDIT));
    channelConfig.addActionListener(new ActionListener() {
        public void actionPerformed(final ActionEvent e) {
            ChannelChooserDlg chooser;/*from w w w.j a  v  a  2  s .  c  o  m*/

            final Component parent = UiUtilities.getBestDialogParent(mParent);
            if (parent instanceof JFrame) {
                chooser = new ChannelChooserDlg((JFrame) parent, mExcludedChannels, null,
                        ChannelChooserDlg.SELECTABLE_ITEM_LIST);
            } else {
                chooser = new ChannelChooserDlg((JDialog) parent, mExcludedChannels, null,
                        ChannelChooserDlg.SELECTABLE_ITEM_LIST);
            }
            UiUtilities.centerAndShow(chooser);

            mExcludedChannels = chooser.getChannels();
            excludedChannels.setText(createExcludeChannelsLabelText());
        }
    });

    panel.add(channelConfig, cc.xy(4, panel.getRow()));
    panel.nextRow(2);

    panel.add(new JLabel(mLocalizer.msg("minimumRating", "Minimum rating to show in plugin tree")),
            cc.xy(2, panel.getRow()));
    mMinRating = new JSpinner(new SpinnerNumberModel(mSettings.getMinimumRating() / 10.0, 0.0, 10.0, 0.1));
    panel.add(mMinRating, cc.xy(4, panel.getRow()));
    panel.nextRow(2);

    panel.addSeparator(mLocalizer.msg("titleDatabase", "Database"), cc.xyw(1, panel.getRow(), 5));
    panel.nextRow(2);

    panel.add(new JLabel(mLocalizer.msg("lastUpdate", "Last update")), cc.xy(2, panel.getRow()));
    mLabelUpdate = new JLabel();
    panel.add(mLabelUpdate, cc.xy(4, panel.getRow()));
    panel.nextRow(2);

    panel.add(new JLabel(mLocalizer.msg("movies", "Movies")), cc.xy(2, panel.getRow()));
    mLabelRatings = new JLabel();
    panel.add(mLabelRatings, cc.xy(4, panel.getRow()));
    panel.nextRow(2);

    panel.add(new JLabel(mLocalizer.msg("size", "Size")), cc.xy(2, panel.getRow()));
    mLabelSize = new JLabel();
    panel.add(mLabelSize, cc.xy(4, panel.getRow()));
    panel.nextRow(2);

    updateStatistics();

    final JButton update = new JButton(mLocalizer.msg("updateDB", "Update Database"));
    update.addActionListener(new ActionListener() {

        public void actionPerformed(final ActionEvent e) {
            mImdbPlugin.showUpdateDialog();
            updateStatistics();
        }
    });

    final JPanel buttons = new JPanel(new FlowLayout(FlowLayout.LEFT));
    buttons.add(update);

    panel.add(buttons, cc.xyw(2, panel.getRow(), 3));
    panel.nextRow(2);

    return panel.getPanel();
}

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

License:Open Source License

/**
 * Creates a new instance of ReminderFrame.
 *
 * @param list//from  w  w w. j a  v a2 s  .  c o  m
 *          The list of all reminders.
 * @param reminders
 *          The reminders to show.
 * @param autoCloseSecs
 *          The number seconds to wait before auto-closing the window. -1
 *          disables auto-closing.
 */
public ReminderFrame(final ReminderList list, final AbstractList<ReminderListItem> reminders,
        final int autoCloseSecs) {
    mGlobalReminderList = list;
    mReminderItems = reminders;

    // Check whether we have to use a frame or dialog
    // Workaround: If there is a modal dialog open a frame is not usable. All
    //             user interaction will be ignored.
    //             -> If there is a modal dialog open, we show this reminder as
    //                dialog, otherwise as frame.
    final Window parent = UiUtilities.getLastModalChildOf(MainFrame.getInstance());
    String title = mLocalizer.msg("title", "Reminder");

    // if this is a favorite, change the title to the name of the favorite
    if (reminders.size() == 1) {
        boolean found = false;
        for (Favorite favorite : FavoriteTreeModel.getInstance().getFavoriteArr()) {
            for (Program program : favorite.getPrograms()) {
                if (program.equals(reminders.get(0).getProgram())) {
                    title = favorite.getName();
                    found = true;
                    break;
                }
            }
            if (found) {
                break;
            }
        }
    }

    mDialog = new JDialog(parent, title);
    UiUtilities.registerForClosing(this);

    final JPanel jcontentPane = new JPanel(new BorderLayout(0, 10));
    jcontentPane.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
    mDialog.setContentPane(jcontentPane);

    mLayout = new FormLayout("pref:grow,3dlu,pref", "pref,3dlu");
    final PanelBuilder programsPanel = new PanelBuilder(mLayout);
    CellConstraints cc = new CellConstraints();

    final Date today = Date.getCurrentDate();
    programsPanel.add(mHeader = new JLabel(""), cc.xyw(1, 1, 3));
    programsPanel.setRow(3);
    int remainingMinutesMax = 0;

    ArrayList<ProgramPanel> panels = new ArrayList<ProgramPanel>(reminders.size());

    for (ReminderListItem reminder : reminders) {
        Program program = reminder.getProgram();
        mGlobalReminderList.blockProgram(program);
        // text label
        String msg;
        final int progMinutesAfterMidnight = program.getStartTime();
        int remainingMinutes = 0;
        if (today.compareTo(program.getDate()) >= 0
                && IOUtilities.getMinutesAfterMidnight() > progMinutesAfterMidnight) {
            msg = updateRunningTime();
        } else {
            msg = mLocalizer.msg("soonStarts", "Soon starts");
            remainingMinutes = ReminderPlugin.getTimeToProgramStart(program);
        }
        mHeader.setText(msg);
        remainingMinutesMax = Math.max(remainingMinutesMax, remainingMinutes);

        List<JComponent> componentList = new ArrayList<JComponent>();
        mComponents.put(reminder, componentList);

        final ProgramPanel panel = new ProgramPanel(program,
                new ProgramPanelSettings(
                        new PluginPictureSettings(PluginPictureSettings.ALL_PLUGINS_SETTINGS_TYPE), false,
                        ProgramPanelSettings.X_AXIS));
        componentList.add(panel);
        panels.add(panel);
        panel.setMinimumSize(new Dimension(300, 50));
        panel.setWidth(300);
        // register panel with tooltip manager
        panel.setToolTipText("");
        panel.addPluginContextMenuMouseListener(ReminderPluginProxy.getInstance());

        final JPanel channelPanel = new JPanel(new BorderLayout());
        componentList.add(channelPanel);
        if (program.getLength() > 0) {
            final JLabel endTime = new JLabel(
                    mLocalizer.msg("endTime", "until {0}", program.getEndTimeString()));
            channelPanel.add(endTime, BorderLayout.PAGE_START);
        }
        String channelName = program.getChannel().getName();
        JLabel channelLabel = new JLabel();
        channelLabel.setToolTipText(channelName);
        channelLabel.setIcon(UiUtilities.createChannelIcon(program.getChannel().getIcon()));
        channelLabel.setHorizontalTextPosition(SwingConstants.RIGHT);
        channelPanel.add(channelLabel, BorderLayout.CENTER);
        channelLabel = new JLabel(channelName);
        channelPanel.add(channelLabel, BorderLayout.PAGE_END);

        int layoutStartRow = programsPanel.getRowCount();
        mLayout.appendRow(RowSpec.decode("pref"));
        programsPanel.add(panel, cc.xy(1, programsPanel.getRow(), CellConstraints.FILL, CellConstraints.FILL));
        programsPanel.add(channelPanel,
                cc.xy(3, programsPanel.getRow(), CellConstraints.LEFT, CellConstraints.TOP));
        programsPanel.nextRow();

        String comment = reminder.getComment();
        if (comment != null && comment.length() > 0) {
            mLayout.appendRow(RowSpec.decode("2dlu"));
            mLayout.appendRow(RowSpec.decode("pref"));
            mLayout.appendRow(RowSpec.decode("2dlu"));
            JLabel commentLabel = new JLabel(comment);
            componentList.add(commentLabel);
            programsPanel.add(commentLabel, cc.xyw(1, programsPanel.getRow() + 1, 3));
            programsPanel.nextRow(3);
        }
        int layoutEndRow = programsPanel.getRowCount();
        mPanelRange.put(reminder, new Integer[] { layoutStartRow, layoutEndRow });
    }

    // initialize close button with full text, so it can show the countdown later without size problems
    mRemainingSecs = autoCloseSecs;
    mAutoCloseAtMillis = System.currentTimeMillis() + 1000 * autoCloseSecs;
    final JPanel btnPanel = new JPanel(new BorderLayout(10, 0));
    mCloseBtText = Localizer.getLocalization(Localizer.I18N_CLOSE);
    int seconds = mRemainingSecs;
    if (ReminderPlugin.getInstance().getSettings().getProperty("showTimeCounter", "false")
            .compareTo("true") == 0) {
        seconds = 10;
    }
    mCloseBt = new JButton(getCloseButtonText(seconds));
    mDialog.getRootPane().setDefaultButton(mCloseBt);

    for (ReminderListItem reminder : reminders) {
        if (reminder.getMinutes() < remainingMinutesMax) {
            remainingMinutesMax = reminder.getMinutes();
        }
    }

    mReminderCB = new JComboBox();
    int i = 0;
    while (i < REMIND_VALUE_ARR.length && REMIND_VALUE_ARR[i] < remainingMinutesMax) {
        mReminderCB.addItem(REMIND_MSG_ARR[i]);
        i++;
    }
    // don't show reminder selection if it contains only the
    // entry "don't remind me"
    mReminderCB.setVisible(mReminderCB.getItemCount() > 1);

    btnPanel.add(mReminderCB, BorderLayout.WEST);
    btnPanel.add(mCloseBt, BorderLayout.EAST);

    final JScrollPane scrollPane = new JScrollPane(programsPanel.getPanel());
    scrollPane.setBorder(BorderFactory.createEmptyBorder());
    jcontentPane.add(scrollPane, BorderLayout.CENTER);
    jcontentPane.add(btnPanel, BorderLayout.SOUTH);

    mCloseBt.addActionListener(new ActionListener() {
        public void actionPerformed(final ActionEvent event) {
            close();
        }
    });

    if (mRemainingSecs > 0) {
        updateCloseBtText();
        mAutoCloseTimer = new Timer(1000, new ActionListener() {
            public void actionPerformed(final ActionEvent evt) {
                handleTimerEvent();
            }
        });
        mAutoCloseTimer.start();
    }

    for (ProgramPanel programPanel : panels) {
        programPanel.setMinimumSize(new Dimension(300, 50));
    }
    mDialog.pack();

    mCloseBt.setText(mCloseBtText);
    mDialog.setAlwaysOnTop(ReminderPlugin.getInstance().getSettings().getProperty("alwaysOnTop", "true")
            .equalsIgnoreCase("true"));

    UiUtilities.centerAndShow(mDialog);
    mDialog.toFront();

    if (mDialog.isAlwaysOnTop()) {
        mDialog.addWindowFocusListener(new WindowFocusListener() {
            public void windowGainedFocus(final WindowEvent e) {
            }

            public void windowLostFocus(final WindowEvent e) {
                mDialog.setAlwaysOnTop(false);
                UiUtilities.getLastModalChildOf(MainFrame.getInstance()).toFront();
            }
        });
    }

    mDialog.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
    mDialog.addWindowListener(new WindowAdapter() {
        public void windowClosing(final WindowEvent e) {
            close();
        }
    });

    for (ReminderListItem reminder : reminders) {
        reminder.getProgram().addChangeListener(this);
    }
}

From source file:tvpearlplugin.TVPearlPluginSettingsTab.java

License:Open Source License

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

    final PanelBuilder builder = new PanelBuilder(layout, new ScrollableJPanel());
    // builder.setDefaultDialogBorder();
    builder.setBorder(null);// w  w w.java  2 s.  c  o m

    final CellConstraints cc = new CellConstraints();

    mUpdateAtStart = new JCheckBox(mLocalizer.msg("updateAtStart", "Update after TV-Browser start"),
            mSettings.getUpdatePearlsAfterStart());
    mUpdateAfterUpdateFinished = new JCheckBox(
            mLocalizer.msg("updateAfterUpdateFinished", "Update after program data download"),
            mSettings.getUpdatePearlsAfterDataUpdate());
    mUpdateManual = new JCheckBox(mLocalizer.msg("updateManual", "Update manual"),
            mSettings.getUpdatePearlsManually());
    mViewOption = new JComboBox(getViewOption());
    if (mSettings.getShowAllPearls()) {
        mViewOption.setSelectedIndex(0);
    } else if (mSettings.getShowSubscribedChannels()) {
        mViewOption.setSelectedIndex(1);
    } else if (mSettings.getShowFoundPearls()) {
        mViewOption.setSelectedIndex(2);
    }
    if (mViewOption.getSelectedIndex() < 0) {
        mViewOption.setSelectedIndex(0);
    }
    mMarkPearl = new JCheckBox(mLocalizer.msg("markPearl", "Mark pearls within the TV-Browser"),
            mSettings.getMarkPearls());
    mMarkPriority = new JComboBox(getPriorities());
    mMarkPriority.setRenderer(new MarkPriorityComboBoxRenderer());
    mMarkPriority.setSelectedIndex(mSettings.getMarkPriority() + 1);
    mShowInfoModal = new JCheckBox(mLocalizer.msg("modal", "modal Info dialog"), mSettings.getShowInfoModal());

    mClientPluginTargets = TVPearlPlugin.getInstance().getClientPluginsTargets();
    mPluginLabel = new JLabel();
    handlePluginSelection();

    final JButton choose = new JButton(mLocalizer.msg("selectPlugins", "Choose Plugins"));
    choose.addActionListener(new ActionListener() {
        public void actionPerformed(final ActionEvent e) {
            try {
                final Window w = UiUtilities.getLastModalChildOf(MainFrame.getInstance());
                PluginChooserDlg chooser = null;
                if (w instanceof JDialog) {
                    chooser = new PluginChooserDlg((JDialog) w, mClientPluginTargets, null,
                            TVPearlPlugin.getInstance());
                } else {
                    chooser = new PluginChooserDlg((JFrame) w, mClientPluginTargets, null,
                            TVPearlPlugin.getInstance());
                }
                chooser.setVisible(true);

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

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

    final JPanel pluginPanel = new JPanel(new FormLayout("fill:pref:grow, 3dlu, pref", "default"));
    pluginPanel.add(mPluginLabel, cc.xy(1, 1));
    pluginPanel.add(choose, cc.xy(3, 1));

    mEnableFilter = new JCheckBox(mLocalizer.msg("enableFilter", "enable filter"),
            mSettings.getFilterEnabled());
    mFilterShowOnly = new JRadioButton(mLocalizer.msg("filterShowOnly", "show only"),
            mSettings.getFilterIncluding());
    mFilterShowNot = new JRadioButton(mLocalizer.msg("filterShowNot", "show not"),
            mSettings.getFilterExcluding());
    final ButtonGroup group = new ButtonGroup();
    group.add(mFilterShowOnly);
    group.add(mFilterShowNot);
    mFilterComposer = new JTextArea(3, 10);
    mFilterComposer.setText(getComposers());
    final JScrollPane scrollComposer = new JScrollPane(mFilterComposer);

    mEnableFilter.addActionListener(new ActionListener() {

        public void actionPerformed(final ActionEvent e) {
            updateFilterEnabled();
        }
    });
    updateFilterEnabled();

    builder.appendRow(FormFactory.PREF_ROWSPEC);
    builder.setRow(2);
    builder.addLabel(mLocalizer.msg("view", "View"), cc.xy(2, builder.getRow()));
    builder.add(mViewOption, cc.xy(4, builder.getRow()));

    newLine(builder);
    builder.add(mShowInfoModal, cc.xyw(2, builder.getRow(), 3));

    addSeparator(builder, mLocalizer.msg("programTable", "Program table"));

    newLine(builder);
    builder.add(mMarkPearl, cc.xyw(2, builder.getRow(), 3));

    newLine(builder);
    builder.addLabel(mLocalizer.msg("markPriority", "Mark priority"), cc.xy(2, builder.getRow()));
    builder.add(mMarkPriority, cc.xy(4, builder.getRow()));

    addSeparator(builder, mLocalizer.msg("sendToPlugin", "Send reminded program to"));

    newLine(builder);
    builder.add(pluginPanel, cc.xyw(2, builder.getRow(), 3));

    addSeparator(builder, mLocalizer.msg("updateOption", "Update options"));

    newLine(builder);
    builder.add(mUpdateAtStart, cc.xyw(2, builder.getRow(), 3));

    newLine(builder);
    builder.add(mUpdateAfterUpdateFinished, cc.xyw(2, builder.getRow(), 3));

    newLine(builder);
    builder.add(mUpdateManual, cc.xyw(2, builder.getRow(), 3));

    addSeparator(builder, mLocalizer.msg("filter", "Filter"));

    newLine(builder);
    builder.add(mEnableFilter, cc.xyw(2, builder.getRow(), 3));

    newLine(builder);
    builder.add(mFilterShowOnly, cc.xyw(2, builder.getRow(), 3));

    newLine(builder);
    builder.add(mFilterShowNot, cc.xyw(2, builder.getRow(), 3));

    newLine(builder);
    builder.add(scrollComposer, cc.xyw(2, builder.getRow(), 3));

    builder.nextRow(2);

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

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

    return scrollPanel;
}

From source file:zattooplugin.ZattooSettingsTab.java

License:Open Source License

public JPanel createSettingsPanel() {
    final PanelBuilder builder = new PanelBuilder(new FormLayout(FormFactory.RELATED_GAP_COLSPEC.encode() + ","
            + FormFactory.PREF_COLSPEC.encode() + "," + FormFactory.RELATED_GAP_COLSPEC.encode() + ","
            + FormFactory.PREF_COLSPEC.encode() + "," + FormFactory.GLUE_COLSPEC.encode(), ""));
    final CellConstraints cc = new CellConstraints();

    final ZattooCountry[] countries = new ZattooCountry[] {
            new ZattooCountry("de", mLocalizer.msg("country_de", "Germany")),
            // new ZattooCountry("at", mLocalizer.msg("country_at", "Austria")),
            new ZattooCountry("ch", mLocalizer.msg("country_ch", "Switzerland")) };

    mCountry = new JComboBox(countries);
    mCountry.setSelectedItem(new ZattooCountry(mSettings.getCountry(), ""));

    builder.appendRow(FormFactory.LINE_GAP_ROWSPEC);
    builder.appendRow(FormFactory.PREF_ROWSPEC);
    builder.nextRow();// www.j  a  v  a2s .  c om
    builder.add(new JLabel(mLocalizer.msg("country", "Country:")), cc.xy(2, builder.getRow()));
    builder.add(mCountry, cc.xy(4, builder.getRow()));

    mRbLocalPlayer = new JRadioButton(mLocalizer.msg("localPlayer", "Use local player"),
            mSettings.getUseLocalPlayer());
    mRbLocalPlayer.setEnabled(ZattooPlugin.canUseLocalPlayer());
    mRbWebPlayer = new JRadioButton(mLocalizer.msg("webPlayer", "Use web player"), mSettings.getUseWebPlayer());
    mRbPrism = new JRadioButton(mLocalizer.msg("prism", "Mozilla Prism"), mSettings.getUsePrismPlayer());

    ButtonGroup buttonGroup = new ButtonGroup();
    buttonGroup.add(mRbLocalPlayer);
    buttonGroup.add(mRbWebPlayer);
    buttonGroup.add(mRbPrism);

    builder.appendRow(FormFactory.PARAGRAPH_GAP_ROWSPEC);
    builder.appendRow(FormFactory.PREF_ROWSPEC);
    builder.nextRow(2);
    builder.addSeparator(mLocalizer.msg("player", "Player"));

    builder.appendRow(FormFactory.LINE_GAP_ROWSPEC);
    builder.appendRow(FormFactory.PREF_ROWSPEC);
    builder.nextRow(2);
    builder.add(mRbLocalPlayer, cc.xyw(2, builder.getRow(), builder.getColumnCount() - 1));

    builder.appendRow(FormFactory.LINE_GAP_ROWSPEC);
    builder.appendRow(FormFactory.PREF_ROWSPEC);
    builder.nextRow(2);
    builder.add(mRbWebPlayer, cc.xyw(2, builder.getRow(), builder.getColumnCount() - 1));

    builder.appendRow(FormFactory.LINE_GAP_ROWSPEC);
    builder.appendRow(FormFactory.PREF_ROWSPEC);
    builder.nextRow(2);
    builder.add(mRbPrism, cc.xyw(2, builder.getRow(), builder.getColumnCount() - 1));

    return builder.getPanel();
}