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

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

Introduction

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

Prototype

public final int getRowCount() 

Source Link

Document

Returns the number of rows in the form.

Usage

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

License:Open Source License

/**
 * Creates a new instance of ReminderFrame.
 *
 * @param list//  ww w  . j  a va2s. 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:twitterplugin.TwitterLoginDialog.java

License:Open Source License

/**
 * Create Gui//from w ww.j  av  a  2  s. co  m
 */
private void createGui() {
    setTitle(mLocalizer.msg("login", "Login"));

    UiUtilities.registerForClosing(this);

    PanelBuilder content = new PanelBuilder(
            new FormLayout("5dlu, pref:grow(0.5), 3dlu, 100dlu, fill:pref:grow(0.5), 5dlu"));

    CellConstraints cc = new CellConstraints();

    final Twitter twitter = new TwitterFactory().getInstance();
    twitter.setOAuthConsumer(mSettings.getConsumerKey(), mSettings.getConsumerSecret());
    try {
        mRequestToken = twitter.getOAuthRequestToken();
        mAuthorizationUrl = mRequestToken.getAuthorizationURL();
    } catch (TwitterException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }

    content.appendRow("3dlu");
    content.appendRow("pref");
    mLabelBrowser = new JLabel("1. " + mLocalizer.msg("step1", "Open authentication page on Twitter"));
    content.add(mLabelBrowser, cc.xy(2, content.getRowCount()));
    mUrlButton = new JButton(mLocalizer.msg("openBrowser", "Open browser"));
    mUrlButton.setToolTipText(mAuthorizationUrl);
    content.add(mUrlButton, cc.xy(4, content.getRowCount()));
    mUrlButton.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            Launch.openURL(mAuthorizationUrl);
        }
    });

    content.appendRow("3dlu");
    content.appendRow("pref");
    mLabelPin = new JLabel("2. " + mLocalizer.msg("step2", "Enter PIN from web page"));
    content.add(mLabelPin, cc.xy(2, content.getRowCount()));
    mPIN = new JTextField();
    content.add(mPIN, cc.xy(4, content.getRowCount()));

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

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

    ok.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            mReturnValue = JOptionPane.OK_OPTION;
            AccessToken accessToken = null;
            try {
                String pin = mPIN.getText().trim();
                if (pin.length() > 0) {
                    accessToken = twitter.getOAuthAccessToken(mRequestToken, pin);
                } else {
                    accessToken = twitter.getOAuthAccessToken();
                }
            } catch (TwitterException te) {
                if (401 == te.getStatusCode()) {
                    System.out.println("Unable to get the access token.");
                } else {
                    te.printStackTrace();
                }
            }
            try {
                twitter.verifyCredentials().getId();
                mSettings.setAccessToken(accessToken);
            } catch (TwitterException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }
            setVisible(false);
        }
    });

    getRootPane().setDefaultButton(ok);

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

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

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

    content.appendRow("fill:pref:grow");
    content.appendRow("pref");
    content.add(builder.getPanel(), cc.xyw(1, content.getRowCount(), 4));

    content.appendRow("5dlu");
    content.setBorder(Borders.DIALOG_BORDER);
    getContentPane().add(content.getPanel());

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

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;// www  .  ja v  a 2 s.c o m
        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();
}