List of usage examples for com.jgoodies.binding.beans PropertyAdapter PropertyAdapter
public PropertyAdapter(ValueModel beanChannel, String propertyName, boolean observeChanges)
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(); } }); }