/* * @(#)BrowserPreviewRenderer.java * * Copyright (c) 2005-2010 Werner Randelshofer, Immensee, Switzerland. * All rights reserved. * * You may not use, copy or modify this file, except in compliance with the * license agreement you entered into with Werner Randelshofer. * For details see accompanying license terms. */ package ch.randelshofer.quaqua; import java.awt.*; import javax.swing.tree.*; /** * Identifies components that can be used to paint the preview column in a * JBrowser. Unlike other renderers, this one is not just used for a rubber stamp. * The renderer is added to the preview column of the JBrowser. * <p> * For example, to use a JLabel as a BrowserPreviewRenderer, you * would write something like this: * <pre> * class MyPreviewRenderer extends JLabel implements BrowserPreviewRenderer { * public MyPreviewRenderer() { * setOpaque(true); * } * public Component getPreviewRendererRendererComponent( * JBrowser browser, * TreePath[] paths * ) * { * setText((paths.length == 1) * ? values[0].getLastPathComponent().toString() * : values.length+" items"); * return this; * } * } * </pre> * * @author Werner Randelshofer * @version $Id: BrowserPreviewRenderer.java 361 2010-11-21 11:19:20Z wrandelshofer $ */ public interface BrowserPreviewRenderer { /** * Return a component that has been configured to display the specified * value. That component is then added to the preview column of the JBrowser. * * @param browser The JBrowser we're painting. * @param paths The paths returned by browser.getSelectionPaths(). This * is granted to be a non-null array containing at least one element. * */ public Component getPreviewRendererComponent( JBrowser browser, TreePath[] paths ); }