Example usage for com.jgoodies.binding.value ValueModel addValueChangeListener

List of usage examples for com.jgoodies.binding.value ValueModel addValueChangeListener

Introduction

In this page you can find the example usage for com.jgoodies.binding.value ValueModel addValueChangeListener.

Prototype

void addValueChangeListener(PropertyChangeListener listener);

Source Link

Document

Registers the given PropertyChangeListener with this ValueModel.

Usage

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>();
}