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     * RootPanel.java
029     * --------------
030     * (C)opyright 2004, by Thomas Morgner and Contributors.
031     *
032     * Original Author:  Thomas Morgner;
033     * Contributor(s):   David Gilbert (for Object Refinery Limited);
034     *
035     * $Id: RootPanel.java,v 1.4 2005/10/18 13:23:37 mungady Exp $
036     *
037     * Changes
038     * -------------------------
039     * 16.02.2004 : Initial version
040     *
041     */
042    
043    package org.jfree.ui.tabbedui;
044    
045    import javax.swing.JComponent;
046    
047    /**
048     * A root panel is a panel implementation of an root editor.
049     *
050     * @author Thomas Morgner
051     */
052    public abstract class RootPanel extends JComponent implements RootEditor {
053    
054        /**a flag indicating whether this editor is the currently active editor. */
055        private boolean active;
056    
057        /**
058         * Default constructor.
059         */
060        public RootPanel() {
061            // nothing required.
062        }
063    
064        /**
065         * Returns a flag that indicates whether the panel is active or not.
066         * 
067         * @return A flag.
068         */
069        public final boolean isActive() {
070            return this.active;
071        }
072    
073        /**
074         * Called when the panel is activated.
075         */
076        protected void panelActivated()
077        {
078        }
079    
080        /**
081         * Called when the panel is deactivated.
082         */
083        protected void panelDeactivated()
084        {
085        }
086    
087        /**
088         * Sets the status of the panel to active or inactive.
089         * 
090         * @param active  the flag.
091         */
092        public final void setActive(final boolean active) {
093            if (this.active == active) {
094                return;
095            }
096            this.active = active;
097            if (active) {
098                panelActivated();
099            } 
100            else {
101                panelDeactivated();
102            }
103        }
104    
105        /**
106         * Returns the main panel. Returns the self reference, as this panel
107         * implements all necessary methods.
108         *
109         * @return The main panel.
110         */
111        public JComponent getMainPanel() {
112            return this;
113        }
114    
115        /**
116         * Returns the toolbar. This default implementation return null, to indicate
117         * that no toolbar is used.
118         *
119         * @return The toolbar.
120         */
121        public JComponent getToolbar() {
122            return null;
123        }
124    
125    
126    }