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, boolean observeChanges) 

Source Link

Document

Constructs a PropertyAdapter for the given bean channel and property name; observes changes if specified.

Usage

From source file:com.salas.bb.remixfeeds.editor.PostEditor.java

License:Open Source License

/**
 * Sets the target blog.//from  ww w  . j  a v a  2  s  .  com
 *
 * @param targetBlog   the target blog.
 */
public void setTargetBlog(TargetBlog targetBlog) {
    this.targetBlog = targetBlog;

    // Initialize the arrays
    cbCategories = new JComboBox();
    categories = new ArrayListModel();
    category = targetBlog.getDefaultCategory();

    initCategories(targetBlog, targetBlog.getDefaultCategory());
    PropertyAdapter adapter = new PropertyAdapter(this, "category", true);
    cbCategories = new JComboBox(new ComboBoxAdapter((ListModel) categories, adapter));
    setDraft(targetBlog.isDraft());

    updateTitle(new TargetBlog[] { targetBlog });
}

From source file:com.salas.bb.remixfeeds.editor.PostEditorAdv.java

License:Open Source License

/**
 * Sets the list of target blogs. Initializes their category lists and creates checkboxes for the
 * layout. This method must be called before opening the dialog.
 *
 * @param targetBlogs   the list of target blogs.
 * @param selected      the list of selected blogs.
 *//*from  w ww. j a  v a2  s  .co m*/
public void setTargetBlogs(TargetBlog[] targetBlogs, TargetBlog[] selected) {
    int blogs = targetBlogs.length;
    this.targetBlogs = targetBlogs;
    java.util.List<TargetBlog> selBlogs = Arrays.asList(selected);

    // Initialize the arrays
    pcCategories = new CategoriesLabel[blogs];
    chTargetBlog = new JCheckBox[blogs];
    categories = new ArrayListModel[blogs];
    category = new TargetBlog.Category[blogs][];
    categoryProperties = new SyntheticCategoryProperty[blogs];

    for (int i = 0; i < targetBlogs.length; i++) {
        categoryProperties[i] = new SyntheticCategoryProperty(i);

        TargetBlog blog = targetBlogs[i];
        initCategories(blog, i, new TargetBlog.Category[] { blog.getDefaultCategory() });

        PropertyAdapter adapter = new PropertyAdapter(categoryProperties[i], SyntheticCategoryProperty.PROP,
                true);
        pcCategories[i] = new CategoriesLabel(categories[i], adapter);

        chTargetBlog[i] = new JCheckBox(blog.getTitle());

        if (selBlogs.contains(blog)) {
            chTargetBlog[i].setSelected(true);
            setDraft(blog.isDraft());
        }
    }

    updateTitle(selected);
}

From source file:com.salas.bb.remixfeeds.prefs.BlogDetailsPreferencesPanel.java

License:Open Source License

/**
 * Binds components to the properties of the preferences proxy.
 *
 * @param parent parent dialog.//from w  ww.j  ava 2s. co m
 */
private void initComponents(JDialog parent) {
    vmURL = new BufferedValueModel(new PropertyAdapter(proxy, TargetBlog.PROP_API_URL, true), trigger);
    vmUser = new BufferedValueModel(new PropertyAdapter(proxy, TargetBlog.PROP_USER, true), trigger);
    vmPass = new BufferedValueModel(new PropertyAdapter(proxy, TargetBlog.PROP_PASSWORD, true), trigger);

    tfTitle.setDocument(new DocumentAdapter(new PropertyAdapter(proxy, TargetBlog.PROP_TITLE, true)));
    tfURL.setDocument(new DocumentAdapter(vmURL));
    tfURLSummary.setDocument(new DocumentAdapter(
            new URLSummaryConverter(new PropertyAdapter(proxy, TargetBlog.PROP_API_URL, true))));
    tfURLSummary.setEditable(false);
    tfUser.setDocument(new DocumentAdapter(vmUser));
    tfPassword.setDocument(new DocumentAdapter(vmPass));

    taDescription = ComponentsFactory.createInstructionsArea("");

    loadCategoriesLookup();

    ValueModel mdlDefaultCategory = new PropertyAdapter(proxy, TargetBlog.PROP_DEFAULT_CATEGORY, true);
    ComboBoxAdapter adapter = new ComboBoxAdapter((ListModel) lmdlCategories, mdlDefaultCategory);
    cbDefaultCategory = new JComboBox(adapter);

    ValueModel mdlBlog = new PropertyAdapter(proxy, TargetBlog.PROP_BLOG, true);
    adapter = new ComboBoxAdapter((ListModel) lmdlBlogs, mdlBlog);
    cbBlog = new JComboBox(adapter);

    ValueModel mdlDraft = new PropertyAdapter(proxy, TargetBlog.PROP_DRAFT, true);
    rbPublic.setModel(new RadioButtonAdapter(mdlDraft, Boolean.FALSE));
    rbDraft.setModel(new RadioButtonAdapter(mdlDraft, Boolean.TRUE));

    Collection apis = WeblogAPIs.getWeblogAPIs();
    ValueModel mdlAPIs = new PropertyAdapter(proxy, TargetBlog.PROP_API_TYPE, true);
    vmAPI = new BufferedValueModel(mdlAPIs, trigger);
    adapter = new ComboBoxAdapter(apis.toArray(), vmAPI);
    cbWeblogAPIType = new JComboBox(adapter);
    vmAPI.addPropertyChangeListener(new WeblogTypeChangeListener());

    btnSetup = new JButton(new SetupAction(parent));
    btnFetchCategories = new JButton();
    actFetchCategories = new FetchCategoriesAction(); // It uses btnFetchCategories (hence the order)
    btnFetchCategories.setAction(actFetchCategories);
    btnFetchBlogs = new JButton();
    actFetchBlogs = new FetchBlogsAction(); // It uses btnFetchBlogs (hence the order)
    btnFetchBlogs.setAction(actFetchBlogs);

    // Templates
    Set<String> templateNames = Templates.getUserTemplates().keySet();
    lmTemplateNames = new ArrayListModel(templateNames);

    ValueModel mdlTemplates = new PropertyAdapter(proxy, TargetBlog.PROP_TEMPLATE_NAME, true);
    cbTemplate = new JComboBox(new ComboBoxAdapter((ListModel) lmTemplateNames, mdlTemplates));
    btnTemplateEditor = new JButton(new TemplateEditorAction());

    proxy.addPropertyChangeListener(TargetBlogProxy.PROP_BLOG_PREFERENCES, this);
    updateViewState();
}

From source file:com.salas.bb.remixfeeds.prefs.BloggingPreferencesPanel.java

License:Open Source License

private Component buildPostTextEditorOptionsPanel() {
    JLabel lbPostEditor = new JLabel(Strings.message("ptb.prefs.editor.label"));
    ValueModel orientMdl = new PropertyAdapter(new EditorModeFilter(), BloggingPreferences.PROP_RICH_EDITOR,
            true);/*from   w w w . ja va 2 s  .  c  o  m*/
    JRadioButton rbRichEditor = BasicComponentFactory.createRadioButton(orientMdl, true,
            Strings.message("ptb.prefs.editor.rich"));
    rbRichEditor.setToolTipText(Strings.message("ptb.prefs.editor.rich.tt"));
    JRadioButton rbPlainEditor = BasicComponentFactory.createRadioButton(orientMdl, false,
            Strings.message("ptb.prefs.editor.plain"));
    rbPlainEditor.setToolTipText(Strings.message("ptb.prefs.editor.plain.tt"));

    lbPostEditor.setEnabled(ptbAdvanced);
    rbRichEditor.setEnabled(ptbAdvanced);
    rbPlainEditor.setEnabled(ptbAdvanced);

    BBFormBuilder builder = new BBFormBuilder("max(60dlu;p), 4dlu, p, 2dlu, p, 2dlu, p");
    builder.append(lbPostEditor);
    builder.append(rbRichEditor);
    builder.append(rbPlainEditor);
    builder.append(UifUtilities.makePublisherPlanIcon(!ptbAdvanced));

    return builder.getPanel();
}

From source file:com.salas.bb.views.ArticleListPanel.java

License:Open Source License

/**
 * Constructs panel with list of articles for selected channel.
 *///from ww  w . j a  v a2s . com
public ArticleListPanel() {
    super(Strings.message("panel.articles"));

    setPreferredSize(new Dimension(300, 100));

    RenderingManager.addPropertyChangeListener(RenderingSettingsNames.THEME, this);

    // Register own controller listener
    GlobalController.SINGLETON.addControllerListener(new ControllerListener());
    PropertyChangeListener articleViewChangeHandler = new ArticleViewChangeHandler();
    GlobalModel.SINGLETON.getGlobalRenderingSettings().addPropertyChangeListener("articleViewMode",
            articleViewChangeHandler);

    // Set the sub-toolbar (right justified in the CoolInternalFrame)
    pageModel = new ValueHolder(0);
    pageModel.addValueChangeListener(new PageModelListener());
    ValueModel pageCountModel = new ValueHolder(0);
    subToolBar = createSubtoolbar();
    setHeaderControl(subToolBar);

    // Create the list that will contain the channels. Uses a custom
    // renderer.
    HTMLFeedDisplayConfig htmlConfig = new HTMLFeedDisplayConfig();
    ImageFeedDisplayConfig imageConfig = new ImageFeedDisplayConfig();
    RenderingManager.addPropertyChangeListener(htmlConfig.getRenderingManagerListener());
    RenderingManager.addPropertyChangeListener(imageConfig.getRenderingManagerListener());

    // Get page size user preferences and subscribe to updates
    UserPreferences preferences = GlobalModel.SINGLETON.getUserPreferences();
    PropertyAdapter paPageSize = new PropertyAdapter(preferences, UserPreferences.PROP_PAGE_SIZE, true);
    paPageSize.addPropertyChangeListener(new PageSizeListener());

    feedDisplay = new CompositeFeedDisplay(htmlConfig, imageConfig, pageModel, pageCountModel);
    feedDisplay.setPageSize(preferences.getPageSize());

    // Setup data-adapter
    FeedDisplayAdapter adapter = new FeedDisplayAdapter(feedDisplay);
    GlobalController.SINGLETON.addControllerListener(adapter);

    // Create scroll pane and put list in it
    JScrollPane listSP = new JumplessScrollPane(feedDisplay.getComponent());
    listSP.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
    listSP.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);
    listSP.setFocusable(false);
    listSP.setBorder(null);

    // Register viewport to enable correct scrolling
    feedDisplay.setViewport(listSP.getViewport());

    JPanel content = new JPanel(new BorderLayout());
    content.add(new PagingPanel(pageModel, pageCountModel), BorderLayout.NORTH);
    content.add(listSP, BorderLayout.CENTER);

    // Register scroll pane
    setContent(content);

    setFeedTitle(null);
}

From source file:com.salas.bb.views.mainframe.FeedsPanel.java

License:Open Source License

/**
 * Creates sub-toolbar component./*from w  w w.  j  a  va 2s .c  o  m*/
 *
 * @return component.
 */
private JComponent createSubtoolbar() {
    UserPreferences uPrefs = GlobalModel.SINGLETON.getUserPreferences();
    String propName = UserPreferences.PROP_GOOD_CHANNEL_STARZ;
    PropertyAdapter propertyAdapter = new PropertyAdapter(uPrefs, propName, true);
    BoundedRangeAdapter model = new BoundedRangeAdapter(propertyAdapter, 0, 1, 5);

    StarsSelectionComponent starsSelector = new StarsSelectionComponent(model);
    starsSelector.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));

    // Install Starz Selector and its proactive tip
    MouseListener tipAdapter = new TipOfTheDay.TipMouseAdapter(TipOfTheDay.TIP_STARZ_FILTER, true);
    starsSelector.addMouseListener(tipAdapter);

    JPanel pnl = new JPanel(new BorderLayout());
    pnl.add(starsSelector, BorderLayout.CENTER);

    return pnl;
}

From source file:com.salas.bb.views.querybuilder.CriteriaBuilder.java

License:Open Source License

/**
 * Creates builder and initializes it with available properties.
 *
 * @param aAvailableProperties all properties available for use.
 * @param aCriteria criteria to manage.// w w w .  j  av  a 2s  . com
 *
 * @throws NullPointerException if available properties aren't specified.
 */
public CriteriaBuilder(Collection aAvailableProperties, ICriteria aCriteria) {
    availableProperties = aAvailableProperties;

    PropertyAdapter model = new PropertyAdapter(aCriteria, ICriteria.PROP_VALUE, true);
    valueEditor = new CompositePropertyVE(model);

    initGUI();

    setCriteria(aCriteria);
}

From source file:fi.smaa.jsmaa.gui.RankSelectorGroup.java

License:Open Source License

@SuppressWarnings("serial")
private JComboBox createComboBox(Rank r) {
    ValueModel valueModel = new PropertyAdapter<Rank>(r, Rank.PROPERTY_RANK, true);
    JComboBox chooser = new JComboBox(new ComboBoxAdapter<Rank>(listModel, valueModel));
    chooser.setToolTipText("Rank in descending order, 1 is the best/most important, 2 the second, etc.");

    chooser.addActionListener(new AbstractAction() {
        public void actionPerformed(ActionEvent e) {
            comboBoxSelected((JComboBox) e.getSource());
        }/* ww  w .  j  av  a 2 s.c o m*/
    });
    return chooser;
}

From source file:net.sf.mpxj.explorer.FileChooserView.java

License:Open Source License

/**
 * Constructor./*ww w. j  a  va  2  s.  co  m*/
 * 
 * @param parent parent component for the dialog
 * @param model file choose model
 */
public FileChooserView(Component parent, FileChooserModel model) {
    m_fileChooser = new JFileChooser();
    m_parent = parent;
    m_model = model;

    PropertyAdapter<FileChooserModel> adapter = new PropertyAdapter<FileChooserModel>(m_model, "showDialog",
            true);
    adapter.addValueChangeListener(new PropertyChangeListener() {
        @Override
        public void propertyChange(PropertyChangeEvent evt) {
            openFileChooser();
        }
    });

    PropertyAdapter<FileChooserModel> extensionsAdaptor = new PropertyAdapter<FileChooserModel>(m_model,
            "extensions", true);
    extensionsAdaptor.addValueChangeListener(new PropertyChangeListener() {
        @Override
        public void propertyChange(PropertyChangeEvent evt) {
            setFileFilter();
        }
    });
}

From source file:net.sf.mpxj.explorer.FileSaverView.java

License:Open Source License

/**
 * Constructor./*from  w  ww.jav a 2  s .c  o m*/
 *
 * @param parent parent component for the dialog
 * @param model file save model
 */
public FileSaverView(Component parent, FileSaverModel model) {
    m_fileChooser = new JFileChooser();
    m_parent = parent;
    m_model = model;

    PropertyAdapter<FileSaverModel> adapter = new PropertyAdapter<FileSaverModel>(m_model, "showDialog", true);
    adapter.addValueChangeListener(new PropertyChangeListener() {
        @Override
        public void propertyChange(PropertyChangeEvent evt) {
            openFileChooser();
        }
    });

    PropertyAdapter<FileSaverModel> extensionsAdaptor = new PropertyAdapter<FileSaverModel>(m_model,
            "extensions", true);
    extensionsAdaptor.addValueChangeListener(new PropertyChangeListener() {
        @Override
        public void propertyChange(PropertyChangeEvent evt) {
            setFileFilter();
        }
    });
}