Example usage for com.jgoodies.binding.beans PropertyAdapter PropertyAdapter

List of usage examples for com.jgoodies.binding.beans PropertyAdapter PropertyAdapter

Introduction

In this page you can find the example usage for com.jgoodies.binding.beans PropertyAdapter PropertyAdapter.

Prototype

public PropertyAdapter(ValueModel beanChannel, String propertyName) 

Source Link

Document

Constructs a PropertyAdapter for the given bean channel and property name; does not observe changes.

Usage

From source file:ambit2.ui.QueryBrowser.java

License:Open Source License

protected JTable addWidgets(T model) {

    JTable table = new JTable() {
        @Override//from  w w  w  .  j  a v  a2 s  .  c  o m
        public TableCellRenderer getCellRenderer(int row, int column) {
            Object value = getValueAt(row, column);
            Object renderer = null;
            if (value != null) {
                renderer = defaultRenderersByColumnClass.get(value.getClass());
                if (renderer == null) {
                    renderer = getDefaultRenderer(value.getClass().getSuperclass());
                }
            } else
                renderer = super.getCellRenderer(row, column);
            if (renderer instanceof JLabel)
                ((JLabel) renderer).setHorizontalAlignment(SwingConstants.RIGHT);
            return (TableCellRenderer) renderer;

        }

        @Override
        public TableCellEditor getCellEditor(int row, int column) {

            Object value = getValueAt(row, column);
            Object editor = null;
            if (value != null) {
                editor = defaultEditorsByColumnClass.get(value.getClass());

                if (editor != null) {
                    return (TableCellEditor) editor;
                } else {
                    return getDefaultEditor(value.getClass().getSuperclass());
                }
            } else
                return super.getCellEditor(row, column);
        }

        public void createDefaultColumnsFromModel() {
            TableModel m = getModel();
            BrowserMode mode = BrowserMode.Spreadsheet;
            if (m instanceof IBrowserMode)
                mode = ((IBrowserMode) m).getBrowserMode();
            else
                mode = BrowserMode.Spreadsheet;
            if (m != null) {
                // Remove any current columns

                TableColumnModel cm = getColumnModel();

                while (cm.getColumnCount() > 0) {
                    cm.removeColumn(cm.getColumn(0));
                }
                for (int i = 0; i < m.getColumnCount(); i++) {
                    EditableHeaderTableColumn newColumn = new EditableHeaderTableColumn();
                    newColumn.setModelIndex(i);
                    // newColumn.setCellRenderer(cellRenderer);

                    addColumn(newColumn);

                    if ((getColumnClass(i) == Boolean.class) && (m instanceof ISelectableRecords)) {
                        PropertyAdapter selectionAdapter = new PropertyAdapter(this.dataModel, "selection");
                        SelectionInList<ISelectableRecords.SELECTION_MODE> list = new SelectionInList<ISelectableRecords.SELECTION_MODE>(
                                ISelectableRecords.SELECTION_MODE.values(), selectionAdapter);
                        JComboBox box = BasicComponentFactory.createComboBox(list);
                        AutoCompleteDecorator.decorate(box);
                        ((EditableHeaderTableColumn) newColumn).setHeaderEditor(new DefaultCellEditor(box));
                    } else {
                        ((EditableHeaderTableColumn) newColumn).setHeaderEditor(new DefaultCellEditor(
                                new JComboBox(new HeaderComboBoxModel(this, i, headerActions))));
                    }

                }
                if (getTableHeader() != null)
                    getTableHeader().setColumnModel(cm);

                setCellSize(this);

            }

        };
    };
    table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
    table.setTableHeader(new EditableHeader(table.getColumnModel(), false));
    table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    table.setRowSelectionAllowed(true);
    table.setColumnSelectionAllowed(false);
    table.setIntercellSpacing(new Dimension(3, 3));
    if (model instanceof IBrowserMode)
        ((IBrowserMode) model).addPropertyChangeListener(getImageRenderer(BrowserMode.Spreadsheet));
    table.setDefaultRenderer(Image.class, getImageRenderer(BrowserMode.Spreadsheet));
    table.setDefaultRenderer(IMolecule.class, getImageRenderer(BrowserMode.Spreadsheet));
    table.setDefaultRenderer(Molecule.class, getImageRenderer(BrowserMode.Spreadsheet));
    table.setDefaultRenderer(AtomContainer.class, getImageRenderer(BrowserMode.Spreadsheet));
    table.setDefaultRenderer(IAtomContainer.class, getImageRenderer(BrowserMode.Spreadsheet));
    table.setDefaultRenderer(SuppleAtomContainer.class, getImageRenderer(BrowserMode.Spreadsheet));
    table.addMouseListener(new MouseAdapter() {
        @Override
        public void mouseReleased(MouseEvent e) {

            if (e.isPopupTrigger()) { // show 3d
                int row = browser_table.rowAtPoint(e.getPoint());
                int col = browser_table.columnAtPoint(e.getPoint());
                Object value = browser_table.getValueAt(row, col);
                JPopupMenu menu = new JPopupMenu();
                buildPopupMenu(e.getComponent(), value, row, col, menu);
                menu.show(e.getComponent(), e.getX(), e.getY());

            }
        }
    });

    /*
     * table.setPreferredScrollableViewportSize(new Dimension(
     * cellSize.width * 3, (cellSize.height + 30) * 2));
     */

    ListSelectionListener listener = new ListSelectionListener() {
        public void valueChanged(ListSelectionEvent e) {
            if (e.getValueIsAdjusting())
                return;
            int row = browser_table.getSelectedRow();
            int col = browser_table.getSelectedColumn();
            // If cell selection is enabled, both row and column change
            // events are fired
            if (e.getSource() == browser_table.getSelectionModel() && browser_table.getRowSelectionAllowed()) {
                row = browser_table.getSelectedRow();
            }
            if (e.getSource() == browser_table.getColumnModel().getSelectionModel()
                    && browser_table.getColumnSelectionAllowed()) {
                col = browser_table.getSelectedColumn();
            }
            if ((browser_table.getSelectedRow() >= 0) && (browser_table.getSelectedColumn() >= 0))
                setRecord(row, col);
        }
    };
    table.getSelectionModel().addListSelectionListener(listener);
    table.getColumnModel().getSelectionModel().addListSelectionListener(listener);
    table.setShowHorizontalLines(BrowserMode.Spreadsheet.showGridHorizontal());
    table.setShowVerticalLines(BrowserMode.Spreadsheet.showGridVertical());
    table.setGridColor(Color.gray);
    setCellSize(table);
    return table;
}

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  ww w. jav  a2  s.  co 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.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();//from  w ww  . j a  va2s .  c o  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.//  w  w w.  j a  v a  2s.c  o  m
 *
 * @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  ww .j ava 2s . com*/
 * @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  ww  w  . j av  a  2s .co  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  ww.j  a v a2 s  . c om
 *
 * @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 va  2 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 va2 s.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.//from w  w w  .  ja v a 2  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)));
}