List of usage examples for com.jgoodies.forms.builder PanelBuilder getRowCount
public final int getRowCount()
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(); }