diff options
Diffstat (limited to 'base/console/src/com/netscape/admin/certsrv/ug/CMSUGTabPanel.java')
-rw-r--r-- | base/console/src/com/netscape/admin/certsrv/ug/CMSUGTabPanel.java | 136 |
1 files changed, 136 insertions, 0 deletions
diff --git a/base/console/src/com/netscape/admin/certsrv/ug/CMSUGTabPanel.java b/base/console/src/com/netscape/admin/certsrv/ug/CMSUGTabPanel.java new file mode 100644 index 000000000..b2f2b1c37 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/ug/CMSUGTabPanel.java @@ -0,0 +1,136 @@ +// --- BEGIN COPYRIGHT BLOCK --- +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; version 2 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License along +// with this program; if not, write to the Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +// +// (C) 2007 Red Hat, Inc. +// All rights reserved. +// --- END COPYRIGHT BLOCK --- +package com.netscape.admin.certsrv.ug; + +import com.netscape.admin.certsrv.*; +import javax.swing.*; +import javax.swing.event.*; +import com.netscape.management.client.*; +import com.netscape.management.client.util.*; +import javax.swing.tree.*; +import java.awt.event.*; +import java.awt.*; + +/** + * Base Class for Tabbed right hand pane + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + */ +public class CMSUGTabPanel extends CMSBasePanel + implements IResourceSelectionListener, ChangeListener, + IRefreshTabPanel +{ + /*========================================================== + * variables + *==========================================================*/ + private static String PANEL_NAME = "CMSUGTABPANEL"; + + protected JTabbedPane mTabbedPane; //tabbed panel + protected CMSBaseResourceModel mModel; //resource model + protected ResourceObject mParent; //tree node parent + + /*========================================================== + * constructors + *==========================================================*/ + public CMSUGTabPanel(CMSBaseResourceModel model, ResourceObject parent) { + super(PANEL_NAME); + mModel = model; + mParent = parent; + mModel.addIResourceSelectionListener(this); + + setLayout(new BorderLayout()); + // Look and Feel + mTabbedPane = new NSTabbedPane(); + add("Center", mTabbedPane); + } + + /*========================================================== + * public methods + *==========================================================*/ + + /** + * Retrieve Resource Model + */ + public CMSBaseResourceModel getResourceModel() { + return mModel; + } + + //== IResourceListener === + + public void select(IResourceObject parent, Object viewInstance) { + //System.out.println("CMSTabPanel: select() "+ parent); + if (parent == mParent) { + try { + mTabbedPane.addChangeListener(this); + mTabbedPane.setSelectedIndex(0); + CMSBaseUGTab selectedPanel = (CMSBaseUGTab) mTabbedPane.getComponentAt(0); + if ( selectedPanel != null ) + selectedPanel.initialize(); + mTabbedPane.invalidate(); + mTabbedPane.validate(); + } catch (ArrayIndexOutOfBoundsException e) { + //NO TAB SO IGNORE + } + } + } + + public boolean unselect(IResourceObject parent, Object viewInstance) { + return true; + } + + public CMSBasePanel getSelectedTab() { + //Debug.println("CMSUGTabPanel: getSelectedTab()"); + return (CMSBasePanel)mTabbedPane.getSelectedComponent(); + } + + //== ChangeListener == + public void stateChanged(ChangeEvent e) { + //Debug.println("CMSTabPanel: stateChanged()"); + CMSBaseUGTab selectedPanel = (CMSBaseUGTab)mTabbedPane.getSelectedComponent(); + if ( selectedPanel != null ) + selectedPanel.initialize(); + mTabbedPane.invalidate(); + mTabbedPane.validate(); + mTabbedPane.repaint(1); + } + + /** + * Add Panels to the Tab Panel. ChangeListener is + * added automatically. + * + * @param p CMS Panel to be added + */ + public void addTab(CMSBaseUGTab p) { + mTabbedPane.addTab(p.getTitle(), p); + } + + /*========================================================== + * protected methods + *==========================================================*/ + + //look and feel + class NSTabbedPane extends JTabbedPane { +/* + public String getUIClassID() { + return "SecondaryTabbedPaneUI"; + } +*/ + } + +} |