List of usage examples for com.jgoodies.binding.adapter ToggleButtonAdapter ToggleButtonAdapter
public ToggleButtonAdapter(ValueModel subject)
From source file:com.salas.bb.dialogs.AdvancedPreferencesPanel.java
License:Open Source License
private void initComponents(ValueModel triggerChannel) { chShowTipsBox = ComponentsFactory.createCheckBox( Strings.message("userprefs.tab.general.show.tip.of.the.day"), new ToggleButtonAdapter( new BufferedValueModel(TipOfTheDayDialog.showingTipsModel(), triggerChannel))); String msg = Strings.message("userprefs.tab.general.check.for.new.versions"); if (ApplicationLauncher.isAutoUpdatesEnabled()) { chDoUpdatesCheck = ComponentsFactory.createCheckBox(msg, new ToggleButtonAdapter(new BufferedValueModel( new PropertyAdapter(userPrefs, UserPreferences.PROP_CHECKING_FOR_UPDATES_ON_STARTUP), triggerChannel))); } else {/*from w ww . j av a2 s . c om*/ msg = msg.replaceAll("&", ""); chDoUpdatesCheck = new JCheckBox(msg); chDoUpdatesCheck.setSelected(true); chDoUpdatesCheck.setEnabled(false); } chAlwaysUseEnglish = ComponentsFactory .createCheckBox(Strings.message("userprefs.tab.advanced.always.use.english"), new ToggleButtonAdapter(new BufferedValueModel( new PropertyAdapter(userPrefs, UserPreferences.PROP_ALWAYS_USE_ENGLISH), triggerChannel))); tfInternetBrowser = new JTextField(); tfInternetBrowser.setDocument(new DocumentAdapter(new BufferedValueModel( new PropertyAdapter(userPrefs, UserPreferences.PROP_INTERNET_BROWSER), triggerChannel))); if (BrowserLauncher.isUsingJWSBrowser()) { tfInternetBrowser.setEnabled(false); tfInternetBrowser.setToolTipText(Strings.message("userprefs.tab.advanced.browser.tooltip.disabled")); } else { tfInternetBrowser.setEnabled(true); tfInternetBrowser.setToolTipText(Strings.message("userprefs.tab.advanced.browser.tooltip.enabled")); } initProxyComponents(triggerChannel); SpinnerModelAdapter spinModelFeedSelectionDelay = new SpinnerModelAdapter(new BoundedRangeAdapter( new BufferedValueModel(new PropertyAdapter(userPrefs, UserPreferences.PROP_FEED_SELECTION_DELAY), triggerChannel), 0, 0, 1000)); spinModelFeedSelectionDelay.setStepSize(100); chAAText = createCheckBox(userPrefs, Strings.message("userprefs.tab.advanced.antialiased.fonts"), UserPreferences.PROP_AA_TEXT); // The following code registers listener on Apply/Accept actions to track down // changes in BlogStarz limits. If changes are detected then channel list is // repainted. saveInitialLimits(); triggerChannel.addValueChangeListener(new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent evt) { if (Boolean.TRUE.equals(evt.getNewValue())) doRepaintChannelList(); } }); chShowUnreadButtonMenu = createCheckBox(userPrefs, Strings.message("userprefs.tab.advanced.show.the.unread.buttons.menu"), UserPreferences.PROP_SHOW_UNREAD_BUTTON_MENU); SpinnerModelAdapter spinModelFeedImportLimit = new SpinnerModelAdapter(new BoundedRangeAdapter( new BufferedValueModel(new PropertyAdapter(userPrefs, UserPreferences.PROP_FEED_IMPORT_LIMIT), triggerChannel), 1, 1, UserPreferences.MAX_FEED_IMPORT_LIMITATION)); spinModelFeedImportLimit.setStepSize(100); spinFeedImportLimit = new JSpinner(spinModelFeedImportLimit); initGuideComponents(triggerChannel); chHideOldArticles = createCheckBox(feedRS, Strings.message("userprefs.tab.articles.hide.articles.older.than"), "suppressingOlderThan"); chDisplayFullTitles = createCheckBox(feedRS, Strings.message("userprefs.tab.articles.display.full.titles"), "displayingFullTitles"); chSortingAscending = createCheckBox(feedRS, Strings.message("userprefs.tab.articles.sort.earlier.articles.first"), "sortingAscending"); tfSuppressOlderThan = new JTextField(); tfSuppressOlderThan.setDocument(new DocumentAdapter( new BufferedValueModel(new PropertyAdapter(feedRS, "suppressOlderThanString"), triggerChannel))); chCopyLinksInHREFFormat = createCheckBox(userPrefs, Strings.message("userprefs.tab.articles.use.href.format.for.links.copied.to.clipboard"), UserPreferences.PROP_COPY_LINKS_IN_HREF_FORMAT); chBrowseOnTitleDblClick = createCheckBox(userPrefs, Strings.message("userprefs.tab.articles.browse.on.double.click.over.the.title"), UserPreferences.PROP_BROWSE_ON_DBL_CLICK); chShowAppIconInSystray = createCheckBox(userPrefs, Strings.message("userprefs.tab.advanced.show.appicon.in.systray"), UserPreferences.PROP_SHOW_APPICON_IN_SYSTRAY); chMinimizeToSystray = createCheckBox(userPrefs, Strings.message("userprefs.tab.advanced.minimize.to.systray"), UserPreferences.PROP_MINIMIZE_TO_SYSTRAY); // Dock icon ValueModel modeModel = new BufferedValueModel( new BIDModeToStringConverter(new PropertyAdapter(userPrefs, UserPreferences.PROP_DIB_MODE)), triggerChannel); cbBIDMode = new JComboBox(new ComboBoxAdapter(BIDModeToStringConverter.MODES, modeModel)); }
From source file:com.salas.bb.dialogs.AdvancedPreferencesPanel.java
License:Open Source License
/** * Helper function to create a checkbox. * @param obj Object holding property./*w w w. j a v a 2 s .c om*/ * @param label Label for checkbox. * @param propertyName Property to save on object. * @return new JCheckbox. */ private JCheckBox createCheckBox(Object obj, String label, String propertyName) { return ComponentsFactory.createCheckBox(label, new ToggleButtonAdapter( new BufferedValueModel(new PropertyAdapter(obj, propertyName), triggerChannel))); }
From source file:com.salas.bb.dialogs.GeneralPreferencesPanel.java
License:Open Source License
private void initComponents(UserPreferences settings, FeedRenderingSettings frs, ValueModel triggerChannel) { chReadOnChanChange = ComponentsFactory.createCheckBox( Strings.message("userprefs.tab.general.when.changing.feeds.mark.all.articles.read"), new ToggleButtonAdapter(new BufferedValueModel( new PropertyAdapter(settings, UserPreferences.PROP_MARK_READ_WHEN_CHANGING_CHANNELS), triggerChannel)));//from w w w .j ava2 s. c o m chReadOnGuideChange = ComponentsFactory.createCheckBox( Strings.message("userprefs.tab.general.when.changing.guides.mark.all.articles.read"), new ToggleButtonAdapter(new BufferedValueModel( new PropertyAdapter(settings, UserPreferences.PROP_MARK_READ_WHEN_CHANGING_GUIDES), triggerChannel))); chReadOnDelay = ComponentsFactory.createCheckBox( Strings.message("userprefs.tab.general.mark.article.as.read.on.delay"), new ToggleButtonAdapter(new BufferedValueModel( new PropertyAdapter(settings, UserPreferences.PROP_MARK_READ_AFTER_DELAY), triggerChannel))); tfReadOnDelaySeconds = new JTextField(); tfReadOnDelaySeconds.setDocument(new DocumentAdapter(new BufferedValueModel( new PropertyAdapter(settings, "markReadAfterSecondsString"), triggerChannel))); configurePurgeControls(settings, triggerChannel); rssPollInterval = new JTextField(); rssPollInterval.setDocument(new DocumentAdapter( new BufferedValueModel(new PropertyAdapter(settings, "rssPollIntervalString"), triggerChannel))); cbTheme = new JComboBox(); ValueModel valueModel = new BufferedValueModel(new PropertyAdapter(frs, RenderingSettingsNames.THEME), triggerChannel); cbTheme.setModel(new ThemeListModel(valueModel)); cbFontFamilies = new JComboBox(); final BufferedValueModel vmMainFont = new BufferedValueModel(new MainFontFamilyValueModel(frs), triggerChannel); cbFontFamilies.setModel(new FontFamiliesListModel(vmMainFont)); valueModel.addValueChangeListener(new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent evt) { Theme theme = (Theme) evt.getNewValue(); Font newFont = theme.getMainFontDirect(); vmMainFont.setValue(newFont.getFamily()); } }); chShowToolbar = ComponentsFactory.createCheckBox(Strings.message("userprefs.tab.general.show.toolbar"), new ToggleButtonAdapter(new BufferedValueModel( new PropertyAdapter(settings, UserPreferences.PROP_SHOW_TOOLBAR), triggerChannel))); chShowToolbarLabels = ComponentsFactory .createCheckBox(Strings.message("userprefs.tab.general.show.toolbar.labels"), new ToggleButtonAdapter(new BufferedValueModel( new PropertyAdapter(settings, UserPreferences.PROP_SHOW_TOOLBAR_LABELS), triggerChannel))); chShowToolbar.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { onShowToolbar(); } }); onShowToolbar(); }
From source file:com.salas.bb.dialogs.GeneralPreferencesPanel.java
License:Open Source License
/** * Configures the purge controls./* w w w . j a v a 2 s.com*/ * * @param settings settings. * @param triggerChannel trigger. */ private void configurePurgeControls(UserPreferences settings, ValueModel triggerChannel) { PropertyAdapter propCheck, propCount; propCheck = new PropertyAdapter(settings, UserPreferences.PROP_PRESERVE_UNREAD); propCount = new PropertyAdapter(settings, "purgeCountString"); BufferedValueModel modelCheck = null, modelCount; // The order of initialization dictates the order of events upon change. // We need checkbox event to be fired before the count when it wasn't selected initially, // and vice versa when it was. if (!settings.isPreserveUnread()) modelCheck = new BufferedValueModel(propCheck, triggerChannel); modelCount = new BufferedValueModel(propCount, triggerChannel); if (settings.isPreserveUnread()) modelCheck = new BufferedValueModel(propCheck, triggerChannel); chDoNotRemoveUnread = ComponentsFactory.createCheckBox( Strings.message("userprefs.tab.general.do.not.purge.unread.articles"), new ToggleButtonAdapter(modelCheck)); purgeCount = new JTextField(); purgeCount.setDocument(new DocumentAdapter(modelCount)); }
From source file:com.salas.bb.dialogs.ReadingListsPanel.java
License:Open Source License
/** Initializes components. */ private void initComponents() { // Updating/*from w ww .j a v a 2 s . c om*/ rbUpdateManually = ComponentsFactory .createRadioButton(Strings.message("userprefs.tab.readinglists.updates.manual")); rbUpdatePeriodically = ComponentsFactory .createRadioButton(Strings.message("userprefs.tab.readinglists.updates.periodical")); cbUpdatePeriod = new JComboBox(new Object[] { PERIOD_ONCE_PER_RUN, PERIOD_DAILY, PERIOD_HOURLY }); ButtonGroup g1 = new ButtonGroup(); g1.add(rbUpdateManually); g1.add(rbUpdatePeriodically); setUpdatePeriodState(); PeriodMonitor monitor = new PeriodMonitor(new BufferedValueModel( new PropertyAdapter(prefs, UserPreferences.PROP_READING_LIST_UPDATE_PERIOD), triggerChannel)); rbUpdateManually.addChangeListener(monitor); rbUpdatePeriodically.addChangeListener(monitor); cbUpdatePeriod.addItemListener(monitor); ValueModel updatesModel = new BufferedValueModel( new PropertyAdapter(prefs, UserPreferences.PROP_ON_READING_LIST_UPDATE_ACTIONS), triggerChannel); // Applying changes rbChangeSilently = ComponentsFactory.createRadioButton( Strings.message("userprefs.tab.readinglists.action.accept.silently"), new RadioButtonAdapter(updatesModel, new Integer(UserPreferences.RL_UPDATE_NONE))); rbChangeWithNotification = ComponentsFactory.createRadioButton( Strings.message("userprefs.tab.readinglists.action.notify"), new RadioButtonAdapter(updatesModel, new Integer(UserPreferences.RL_UPDATE_NOTIFY))); rbChangeWithConfirmation = ComponentsFactory.createRadioButton( Strings.message("userprefs.tab.readinglists.action.confirm"), new RadioButtonAdapter(updatesModel, new Integer(UserPreferences.RL_UPDATE_CONFIRM))); // Get Latest command actions chUpdateFeeds = ComponentsFactory.createCheckBox( Strings.message("userprefs.tab.readinglists.command.latest.articles"), new ToggleButtonAdapter(new BufferedValueModel( new PropertyAdapter(prefs, UserPreferences.PROP_UPDATE_FEEDS), triggerChannel))); chUpdateReadingLists = ComponentsFactory .createCheckBox(Strings.message("userprefs.tab.readinglists.command.lists.changes"), new ToggleButtonAdapter(new BufferedValueModel( new PropertyAdapter(prefs, UserPreferences.PROP_UPDATE_READING_LISTS), triggerChannel))); new MandatoryCheckBoxController(chUpdateFeeds, chUpdateReadingLists); }
From source file:com.salas.bb.dialogs.TagsPreferencesPanel.java
License:Open Source License
/** * Initializes components./* ww w . j a va2 s. co m*/ * * @param bbsAllowed <code>TRUE</code> if BB Service selection is allowed. * @param triggerChannel changes commit trigger channel. */ private void initComponents(boolean bbsAllowed, ValueModel triggerChannel) { initRadioButtons(bbsAllowed, triggerChannel); tfDeliciousUser = new JTextField(); tfDeliciousUser.setDocument(new DocumentAdapter(new BufferedValueModel( new PropertyAdapter(this.userPrefs, UserPreferences.PROP_TAGS_DELICIOUS_USER), triggerChannel))); tfDeliciousPassword = new JPasswordField(); tfDeliciousPassword.setDocument(new DocumentAdapter(new BufferedValueModel( new PropertyAdapter(this.userPrefs, UserPreferences.PROP_TAGS_DELICIOUS_PASSWORD), triggerChannel))); ValueModel autoFetchModel = new BufferedValueModel( new PropertyAdapter(userPrefs, UserPreferences.PROP_TAGS_AUTOFETCH), triggerChannel); chAutoFetch = ComponentsFactory.createCheckBox(Strings.message("userprefs.tab.tags.autofetch"), new ToggleButtonAdapter(autoFetchModel)); lbBBSWording = ComponentsFactory .createWrappedMultilineLabel(Strings.message("userprefs.tab.tags.wording.bbservice")); lbDIUWording = ComponentsFactory .createWrappedMultilineLabel(Strings.message("userprefs.tab.tags.wording.delicious")); chPinTagging = ComponentsFactory.createCheckBox("Tag pins with", new ToggleButtonAdapter(new BufferedValueModel( new PropertyAdapter(userPrefs, UserPreferences.PROP_PIN_TAGGING), triggerChannel))); tfPinTags = new JTextField(); tfPinTags.setDocument(new DocumentAdapter(new BufferedValueModel( new PropertyAdapter(userPrefs, UserPreferences.PROP_PIN_TAGS), triggerChannel))); }
From source file:com.salas.bb.service.SyncSettingsPanel.java
License:Open Source License
/** * Binds components to data in preferences object. * * @param triggerChannel value model./*from w ww . j a va2 s .c o m*/ */ private void initComponents(ValueModel triggerChannel) { btnSyncNow = new JButton(new SyncWrapperAction(SyncFullAction.getInstance())); final JPopupMenu menu = new JPopupMenu(); menu.add(new SyncWrapperAction(SyncInAction.getInstance())); menu.add(new SyncWrapperAction(SyncOutAction.getInstance())); btnMoreSyncOptions = new CustomPopupButton(btnSyncNow, Strings.message("service.sync.more"), menu); rbModePeriodical = ComponentsFactory.createRadioButton(Strings.message("service.sync.synchronize.every")); rbModeEachRun = ComponentsFactory .createRadioButton(Strings.message("service.sync.synchronize.each.application.run")); rbModeManual = ComponentsFactory .createRadioButton(Strings.message("service.sync.manual.synchronization.only")); ButtonGroup bg = new ButtonGroup(); bg.add(rbModePeriodical); bg.add(rbModeEachRun); bg.add(rbModeManual); rbModePeriodical.addItemListener(new PeriodicalSelectionListener()); tfSyncPeriod.setEnabled(false); chFeedList = ComponentsFactory .createCheckBox(Strings.message("service.sync.feed.list"), new ToggleButtonAdapter(new BufferedValueModel( new PropertyAdapter(servicePrefs, ServicePreferences.PROP_SYNC_FEEDS), triggerChannel))); chFeedList.addActionListener(new FullSyncEnabled()); chPreferences = ComponentsFactory.createCheckBox(Strings.message("service.sync.preferences"), new ToggleButtonAdapter(new BufferedValueModel( new PropertyAdapter(servicePrefs, ServicePreferences.PROP_SYNC_PREFERENCES), triggerChannel))); new MandatoryCheckBoxController(chFeedList, chPreferences); tfEmail.setDocument(new DocumentAdapter( new BufferedValueModel(new PropertyAdapter(servicePrefs, "email"), triggerChannel))); tfPassword.setDocument(new DocumentAdapter( new BufferedValueModel(new PropertyAdapter(servicePrefs, "password"), triggerChannel))); tfSyncPeriod.setDocument(new DocumentAdapter(new BufferedValueModel( new PropertyAdapter(new ServicePreferencesWrapper(servicePrefs), "syncPeriod"), triggerChannel))); updateFullSyncButton(); updateSyncDatesView(); selectMode(); }
From source file:com.salas.bb.twitter.TwitterPreferencesPanel.java
License:Open Source License
/** * Creates the panel./*from w w w .ja v a 2 s .c o m*/ * * @param parent parent dialog. * @param trigger trigger. * @param preferences preferences object to manipulate. */ public TwitterPreferencesPanel(JDialog parent, ValueModel trigger, TwitterPreferences preferences) { prefs = preferences; Component tfWording = ComponentsFactory .createWrappedMultilineLabel(Strings.message("userprefs.tab.twitter.wording")); // Layout BBFormBuilder builder = new BBFormBuilder("7dlu, p, 4dlu, p:grow", this); builder.setDefaultDialogBorder(); JCheckBox chEnabled = ComponentsFactory.createCheckBox(Strings.message("userprefs.tab.twitter.enable"), new ToggleButtonAdapter(new BufferedValueModel( new PropertyAdapter(preferences, TwitterPreferences.PROP_ENABLED), trigger))); JCheckBox chProfilePics = ComponentsFactory.createCheckBox( Strings.message("userprefs.tab.twitter.profile.pics"), new ToggleButtonAdapter(new BufferedValueModel( new PropertyAdapter(preferences, TwitterPreferences.PROP_PROFILE_PICS), trigger))); JCheckBox chPasteLink = ComponentsFactory.createCheckBox( Strings.message("userprefs.tab.twitter.paste.link"), new ToggleButtonAdapter(new BufferedValueModel( new PropertyAdapter(preferences, TwitterPreferences.PROP_PASTE_LINK), trigger))); JLabel lbScreenName = new JLabel(Strings.message("userprefs.tab.twitter.screenname")); JLabel lbPassword = new JLabel(Strings.message("userprefs.tab.twitter.password")); JTextField tfScreenName = new JTextField(); tfScreenName.setDocument(new DocumentAdapter(new BufferedValueModel( new PropertyAdapter(preferences, TwitterPreferences.PROP_SCREEN_NAME), trigger))); JPasswordField tfPassword = new JPasswordField(); tfPassword.setDocument(new DocumentAdapter(new BufferedValueModel( new PropertyAdapter(preferences, TwitterPreferences.PROP_PASSWORD), trigger))); StateUpdatingToggleListener.install(chEnabled, lbScreenName, tfScreenName, lbPassword, tfPassword, chProfilePics); builder.append(tfWording, 4); builder.appendUnrelatedComponentsGapRow(2); builder.append(chEnabled, 4); builder.setLeadingColumnOffset(1); builder.nextLine(); builder.append(lbScreenName, tfScreenName); builder.append(lbPassword, tfPassword); builder.setLeadingColumnOffset(3); builder.nextLine(); builder.append(chProfilePics); builder.append(chPasteLink); }
From source file:com.salas.bb.utils.uif.ComponentsFactory.java
License:Open Source License
/** * Creates check-box with mnemonized text. * * @param textWithMnemonic text with mnemonic mark. * @param bean bean to bind this check box to. * @param propertyName name of the bean property. * @param trigger channel to trigger the commit operation. * * @return created check-box./*from w ww .ja v a 2 s .c om*/ */ public static JCheckBox createCheckBox(String textWithMnemonic, Object bean, String propertyName, ValueModel trigger) { return createCheckBox(textWithMnemonic, new ToggleButtonAdapter(new BufferedValueModel(new PropertyAdapter(bean, propertyName), trigger))); }
From source file:com.salas.bb.whatshot.Dialog.java
License:Open Source License
/** * Creates search dialog.//from w ww .j a v a2s .c om * * @param owner dialog's parent frame. * @param engine engine to use. * @param set guides set to pick the guides from. * @param listener selection listener. */ public Dialog(Frame owner, Engine engine, final GuidesSet set, ActionListener listener) { super(owner, Strings.message("whatshot.dialog.title")); guidesSet = set; pnlProgress = new ProgressPanel(Strings.message("whatshot.inprogress")); scrollPanel = buildResultsPanel(); setModal(false); // Only unread selector Preferences prefs = Application.getUserPreferences(); ValueModel mdlOnlyUnread = new PreferencesAdapter(prefs, PROP_WH_UNREAD_ONLY, false); chOnlyUnread = ComponentsFactory.createCheckBox(Strings.message("whatshot.unreadonly"), new ToggleButtonAdapter(mdlOnlyUnread)); // Time options ValueModel mdlTimeOption = new AbstractConverter( new PreferencesAdapter(prefs, PROP_WH_TIME_OPTION, TimeOption.THIS_WEEK.getCode())) { public Object convertFromSubject(Object o) { return TimeOption.fromCode((Integer) o); } public void setValue(Object o) { TimeOption to = (TimeOption) o; subject.setValue(to.getCode()); } }; cbTimeOptions = new JComboBox(new ComboBoxAdapter(TimeOption.OPTIONS, mdlTimeOption)); // Starz selector ValueModel mdlStarz = new PreferencesAdapter(prefs, PROP_WH_STARZ, 1); starz = new StarsSelectionComponent(new BoundedRangeAdapter(mdlStarz, 0, 1, 5)); // Make toolbar fonts smaller UifUtilities.smallerFont(chOnlyUnread); UifUtilities.smallerFont(cbTimeOptions); // Setup button btnSetup = new JButton(Strings.message("whatshot.setup")); btnSetup.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { SetupDialog sd = new SetupDialog(GlobalModel.SINGLETON.getUserPreferences()); sd.open(); } }); UifUtilities.smallerFont(btnSetup); // Results model and list model = new ListModel(engine, mdlStarz, mdlOnlyUnread, mdlTimeOption); onSetupChange(); itemsList = new ResultsList(model) { @Override protected ResultGroupPanel createGroupPanel(ResultGroup group) { return new ResultGroupPanel(group.getName(), group.getName(), GROUP_COLOR_1, GROUP_COLOR_2); } }; itemsList.addActionListener(listener); // Start populating SwingWorker scanner = model.scan(); scanner.addPropertyChangeListener(new ScannerListener()); scanner.execute(); }