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

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

Introduction

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

Prototype

@Override
public final synchronized void addPropertyChangeListener(PropertyChangeListener listener) 

Source Link

Document

Adds a PropertyChangeListener to the listener list.

Usage

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