List of usage examples for com.jgoodies.binding.value BufferedValueModel BufferedValueModel
public BufferedValueModel(ValueModel subject, ValueModel triggerChannel)
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 . ja va2s . com 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
private void initGuideComponents(ValueModel triggerChannel) { // Guide selection mode group ValueModel gsmModel = new BufferedValueModel( new PropertyAdapter(userPrefs, UserPreferences.PROP_GUIDE_SELECTION_MODE), triggerChannel); rbGSMFirst = createRadioButton(gsmModel, UserPreferences.GSM_FIRST_FEED, Strings.message("userprefs.tab.guides.select.first.feed")); rbGSMLastSeen = createRadioButton(gsmModel, UserPreferences.GSM_LAST_SEEN_FEED, Strings.message("userprefs.tab.guides.select.last.seen.feed")); rbGSMNoFeed = createRadioButton(gsmModel, UserPreferences.GSM_NO_FEED, Strings.message("userprefs.tab.guides.select.no.feed")); // Publication chPing = createCheckBox(userPrefs, Strings.message("userprefs.tab.guides.ping.url"), UserPreferences.PROP_PING_ON_RL_PUBLICATION); chPing.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { updatePingURLState();// ww w . j a v a2s . co m } }); tfPingURL = new JTextField(); tfPingURL.setDocument(new DocumentAdapter(new BufferedValueModel( new PropertyAdapter(userPrefs, UserPreferences.PROP_PING_ON_RL_PUBLICATION_URL), triggerChannel))); updatePingURLState(); String ttPing = Strings.message("userprefs.tab.guides.ping.wording"); chPing.setToolTipText(ttPing); tfPingURL.setToolTipText(ttPing); }
From source file:com.salas.bb.dialogs.AdvancedPreferencesPanel.java
License:Open Source License
/** * Initializes proxy components./*from ww w.jav a2 s . c om*/ * * @param triggerChannel trigger. */ private void initProxyComponents(ValueModel triggerChannel) { chProxyEnabled = createCheckBox(userPrefs, Strings.message("userprefs.tab.advanced.use.proxy"), UserPreferences.PROP_PROXY_ENABLED); tfProxyHost = new JTextField(); tfProxyHost.setDocument(new DocumentAdapter(new BufferedValueModel( new PropertyAdapter(userPrefs, UserPreferences.PROP_PROXY_HOST), triggerChannel))); lbProxyPort = ComponentsFactory.createLabel(Strings.message("userprefs.tab.advanced.use.proxy.port")); spinProxyPort = new JSpinner(new SpinnerModelAdapter(new BoundedRangeAdapter(new BufferedValueModel( new PropertyAdapter(userPrefs, UserPreferences.PROP_PROXY_PORT), triggerChannel), 80, 80, 65536))); spinProxyPort.setEditor(new JSpinner.NumberEditor(spinProxyPort, "#")); lbProxyExclusions = ComponentsFactory.createLabel(Strings.message("userprefs.tab.advanced.no.proxy.for")); tfProxyExclusions = new JTextField(); tfProxyExclusions.setDocument(new DocumentAdapter(new BufferedValueModel( new PropertyAdapter(userPrefs, UserPreferences.PROP_PROXY_EXCLUSIONS), triggerChannel))); StateUpdatingToggleListener.install(chProxyEnabled, tfProxyHost, lbProxyPort, spinProxyPort, lbProxyExclusions, tfProxyExclusions); }
From source file:com.salas.bb.dialogs.AdvancedPreferencesPanel.java
License:Open Source License
/** * Helper function to create a checkbox. * @param obj Object holding property./*from w w w .j a v a 2 s .co m*/ * @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)));// w ww.j av a2s .c om 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./*from w ww . ja va2 s . c o m*/ * * @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/* w ww. j a v a2 s . c o m*/ 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.StarzPanel.java
License:Open Source License
/** * Helper to create and configure a JSlider. * * @param propertyName name of property to bind to. * * @return newly created JSlider.//from w w w . j a va 2s . co m */ private JSlider createStarzSlider(String propertyName) { JSlider res; res = new JSlider(); res.setOrientation(SwingConstants.HORIZONTAL); res.setMaximum(4); res.setMinimum(0); res.setPaintTicks(true); res.setMajorTickSpacing(1); res.setSnapToTicks(true); res.setModel(new BoundedRangeAdapter( new BufferedValueModel(new PropertyAdapter(preferences, propertyName), triggerChannel), 0, 0, 4)); return res; }
From source file:com.salas.bb.dialogs.TagsPreferencesPanel.java
License:Open Source License
/** * Initializes components.// ww w .ja v a2 s. c o 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.dialogs.TagsPreferencesPanel.java
License:Open Source License
/** * Initializes radio-buttons./*from ww w . j av a2 s. c o m*/ * * @param bbsAllowed <code>TRUE</code> if BB Service selection is allowed. * @param triggerChannel changes commit trigger channel. */ private void initRadioButtons(boolean bbsAllowed, ValueModel triggerChannel) { ValueModel storageModel = new BufferedValueModel( new PropertyAdapter(userPrefs, UserPreferences.PROP_TAGS_STORAGE), triggerChannel); storageModel.addValueChangeListener(new StorageTypeListener()); rbStorageNone = ComponentsFactory.createRadioButton(Strings.message("userprefs.tab.tags.dont.share")); rbStorageNone.setModel(new RadioButtonAdapter(storageModel, UserPreferences.TAGS_STORAGE_NONE)); rbStorageBBS = ComponentsFactory.createRadioButton(Strings.message("userprefs.tab.tags.bbservice")); rbStorageBBS.setModel(new RadioButtonAdapter(storageModel, UserPreferences.TAGS_STORAGE_BB_SERVICE)); rbStorageDelicious = ComponentsFactory.createRadioButton(Strings.message("userprefs.tab.tags.delicious")); rbStorageDelicious.setModel(new RadioButtonAdapter(storageModel, UserPreferences.TAGS_STORAGE_DELICIOUS)); rbStorageBBS.setEnabled(bbsAllowed); }