List of usage examples for com.jgoodies.binding.value ValueModel addValueChangeListener
void addValueChangeListener(PropertyChangeListener listener);
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 w w . j ava 2s.c o m*/ 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.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 av a2 s.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.TagsPreferencesPanel.java
License:Open Source License
/** * Initializes radio-buttons./* w w w. j a va 2 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); }
From source file:com.salas.bb.remixfeeds.prefs.BloggingPreferencesPanel.java
License:Open Source License
/** * Creates the panel./*from www . j av a2 s . c om*/ * * @param parent parent dialog. * @param trigger trigger. * @param preferences blogging preferences object to manipulate. */ public BloggingPreferencesPanel(JDialog parent, ValueModel trigger, BloggingPreferences preferences) { ptbAdvanced = GlobalController.SINGLETON.getFeatureManager().isPtbAdvanced(); originalPrefs = preferences; prefs = preferences.createClone(); trigger.addValueChangeListener(new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent evt) { Object newValue = evt.getNewValue(); if (Boolean.TRUE.equals(newValue)) { originalPrefs.copyFrom(prefs); PostToBlogAction.update(); FeedLinkPostToBlogAction.update(); } } }); Component tfWording = ComponentsFactory.createWrappedMultilineLabel(Strings.message("ptb.prefs.wording")); Dimension btnSize = new Dimension(21, 21); btnAdd = new JButton(new AddAction()); btnAdd.setPreferredSize(btnSize); btnDelete = new JButton(new DeleteAction()); btnDelete.setPreferredSize(btnSize); pnlBlogDetails = new BlogDetailsPreferencesPanel(parent); cbBlogs = new JComboBox(); cbBlogs.addItemListener(new BlogSelectionListener()); onBlogSelected(null); populateListAndSelect(prefs.getDefaultBlog()); // Layout BBFormBuilder builder = new BBFormBuilder("max(p;100dlu), 2dlu, p, 2dlu, p, 2dlu, p, 0:grow", this); builder.setDefaultDialogBorder(); builder.append(tfWording, 8); builder.appendUnrelatedComponentsGapRow(2); builder.append(buildPostTextEditorOptionsPanel(), 8); builder.appendUnrelatedComponentsGapRow(2); builder.append(cbBlogs, btnAdd); builder.append(btnDelete); builder.append(UifUtilities.makePublisherPlanIcon(!ptbAdvanced)); builder.appendUnrelatedComponentsGapRow(2); builder.append(pnlBlogDetails, 8); }
From source file:com.salas.bb.views.PagingControl.java
License:Open Source License
/** * Creates a control with the page model. * * @param pageModel the integer model containing the page number. * @param pageCountModel the integer model for the number of pages. *//*w w w . j ava2 s.c om*/ public PagingControl(ValueModel pageModel, ValueModel pageCountModel) { super(pageModel); this.pageCountModel = pageCountModel; pageCountModel.addValueChangeListener(new PageCountModelListener()); setPageCount((Integer) pageCountModel.getValue()); pageModel.addValueChangeListener(new PageModelListener()); }
From source file:com.salas.bb.whatshot.ListModel.java
License:Open Source License
/** * Creates a list model for a given engine. * * @param engine engine./*from w w w . java 2s. c o m*/ * @param mdlStarz starz filter model. * @param mdlOnlyUnread unread only flag model. * @param mdlTimeOption time options. */ public ListModel(Engine engine, ValueModel mdlStarz, ValueModel mdlOnlyUnread, ValueModel mdlTimeOption) { this.engine = engine; this.mdlStarz = mdlStarz; this.mdlOnlyUnread = mdlOnlyUnread; this.mdlTimeOption = mdlTimeOption; resolver = new LinkResolver(this); FilterListener fl = new FilterListener(); mdlStarz.addValueChangeListener(fl); mdlOnlyUnread.addValueChangeListener(fl); mdlTimeOption.addValueChangeListener(fl); }
From source file:de.dal33t.powerfolder.ConfigurationEntry.java
License:Open Source License
/** * Creates a model containing the value of the configuration entry. * <p>/*from w w w . j ava2 s . c om*/ * Changes from "below" won't be reflected. * <p> * TODO Resolve problem: Model not buffered! * * @param controller * @return a value model bound to the configuration entry. * @deprecated do not use util problems are resolved */ @Deprecated public ValueModel getModel(final Controller controller) { Reject.ifNull(controller, "Controller is null"); ValueModel model = new ValueHolder(getValue(controller), false); model.addValueChangeListener(new PropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent evt) { setValue(controller, (String) evt.getNewValue()); } }); return model; }
From source file:de.dal33t.powerfolder.ui.FilterModel.java
License:Open Source License
protected FilterModel(Controller controller, ValueModel searchFieldVM) { super(controller); this.searchFieldVM = searchFieldVM; searchFieldVM.addValueChangeListener(new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent evt) { if (task != null) { // cancel if seach field changed before delay was reached task.cancel();//w w w .j av a2 s . c om } task = new TimerTask() { public void run() { preScheduleFiltering(); scheduleFiltering(); task = null; } }; // schedule to filter after DELAY to make sure that fast typer // can complete their words before filtering getController().schedule(task, DELAY); } }); }
From source file:de.dal33t.powerfolder.ui.FilterModel.java
License:Open Source License
public void setFlatMode(ValueModel flatMode) { this.flatMode = flatMode; flatMode.addValueChangeListener(new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent evt) { TimerTask flatTask = new TimerTask() { public void run() { scheduleFiltering(); }/*from w ww .j a v a 2s .com*/ }; getController().schedule(flatTask, DELAY); } }); }
From source file:de.dal33t.powerfolder.ui.information.folder.files.DirectoryFilter.java
License:Open Source License
/** * Filter of a folder directory./*w ww.j a v a2 s . c o m*/ * * @param controller */ public DirectoryFilter(Controller controller, ValueModel searchFieldVM, ValueModel searchModeVM) { super(controller, searchFieldVM); this.searchModeVM = searchModeVM; searchModeVM.addValueChangeListener(new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent evt) { queueFilterEvent(); } }); folderListener = new MyFolderListener(); running = new AtomicBoolean(); pending = new AtomicBoolean(); transferManager = getController().getTransferManager(); listeners = new CopyOnWriteArrayList<DirectoryFilterListener>(); }