001    /* ========================================================================
002     * JCommon : a free general purpose class library for the Java(tm) platform
003     * ========================================================================
004     *
005     * (C) Copyright 2000-2005, by Object Refinery Limited and Contributors.
006     * 
007     * Project Info:  http://www.jfree.org/jcommon/index.html
008     *
009     * This library is free software; you can redistribute it and/or modify it 
010     * under the terms of the GNU Lesser General Public License as published by 
011     * the Free Software Foundation; either version 2.1 of the License, or 
012     * (at your option) any later version.
013     *
014     * This library is distributed in the hope that it will be useful, but 
015     * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 
016     * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public 
017     * License for more details.
018     *
019     * You should have received a copy of the GNU Lesser General Public
020     * License along with this library; if not, write to the Free Software
021     * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, 
022     * USA.  
023     *
024     * [Java is a trademark or registered trademark of Sun Microsystems, Inc. 
025     * in the United States and other countries.]
026     * 
027     * ---------------
028     * RootEditor.java
029     * ---------------
030     * (C) Copyright 2004, by Thomas Morgner and Contributors.
031     *
032     * Original Author:  Thomas Morgner;
033     * Contributor(s):   David Gilbert (for Object Refinery Limited);
034     *
035     * $Id: RootEditor.java,v 1.4 2005/10/18 13:23:37 mungady Exp $
036     *
037     * Changes
038     * -------
039     * 07-Jun-2004 : Added JCommon header (DG);
040     *
041     */
042    
043    package org.jfree.ui.tabbedui;
044    
045    import java.beans.PropertyChangeListener;
046    
047    import javax.swing.JComponent;
048    import javax.swing.JMenu;
049    
050    /**
051     * A root editor reprensents a tab in a TabbedUI.
052     *
053     * @author Thomas Morgner
054     */
055    public interface RootEditor {
056    
057        /**
058         * Sets the editor active or inactive.
059         * 
060         * @param b  a boolean.
061         */
062        public void setActive(boolean b);
063      
064        /**
065         * Returns the active or inactive status of the editor.
066         * 
067         * @return A boolean.
068         */
069        public boolean isActive();
070    
071        /**
072         * Returns the editor name.
073         * 
074         * @return The editor name.
075         */
076        public String getEditorName();
077    
078        /**
079         * Returns the menus.
080         * 
081         * @return The menus.
082         */
083        public JMenu[] getMenus();
084        
085        /**
086         * Returns the toolbar.
087         * 
088         * @return The toolbar.
089         */
090        public JComponent getToolbar();
091    
092        /**
093         * Returns the main panel.
094         * 
095         * @return The main panel.
096         */
097        public JComponent getMainPanel();
098    
099        /**
100         * Checks, whether this root editor is enabled.
101         *
102         * @return true, if the editor is enabled, false otherwise.
103         */
104        public boolean isEnabled();
105    
106        /**
107         * Adds a property change listener.
108         * 
109         * @param property  the property name.
110         * @param l  the listener.
111         */
112        public void addPropertyChangeListener(String property, PropertyChangeListener l);
113        
114        /**
115         * Removes a property change listener.
116         * 
117         * @param property  the property name.
118         * @param l  the listener.
119         */
120        public void removePropertyChangeListener(String property, PropertyChangeListener l);
121    
122        /**
123         * Adds a property change listener.
124         * 
125         * @param l  the listener.
126         */
127        public void addPropertyChangeListener(PropertyChangeListener l);
128        
129        /**
130         * Removes a property change listener.
131         * 
132         * @param l  the listener.
133         */
134        public void removePropertyChangeListener(PropertyChangeListener l);
135    
136    }