List of usage examples for com.jgoodies.binding.beans PropertyAdapter addPropertyChangeListener
@Override public final synchronized void addPropertyChangeListener(PropertyChangeListener listener)
From source file:com.salas.bb.views.ArticleListPanel.java
License:Open Source License
/** * Constructs panel with list of articles for selected channel. *///from w w w .j a v a 2s .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); }