List of usage examples for com.jgoodies.forms.layout FormLayout appendRow
public void appendRow(RowSpec rowSpec)
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(); } }); }