summaryrefslogtreecommitdiffstats
path: root/pki/base/console/src/com/netscape/admin/certsrv/CMSBaseMenuInfo.java
diff options
context:
space:
mode:
Diffstat (limited to 'pki/base/console/src/com/netscape/admin/certsrv/CMSBaseMenuInfo.java')
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/CMSBaseMenuInfo.java178
1 files changed, 178 insertions, 0 deletions
diff --git a/pki/base/console/src/com/netscape/admin/certsrv/CMSBaseMenuInfo.java b/pki/base/console/src/com/netscape/admin/certsrv/CMSBaseMenuInfo.java
new file mode 100644
index 000000000..cb1909f22
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/CMSBaseMenuInfo.java
@@ -0,0 +1,178 @@
+// --- 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;
+
+import javax.swing.*;
+import javax.swing.tree.*;
+import javax.swing.event.*;
+import com.netscape.management.client.*;
+import com.netscape.management.client.util.*;
+import java.util.*;
+
+/**
+ * This class represents the menu item selection and associated
+ * call back function.
+ *
+ * @author Jack Pan-Chen
+ * @version $Revision$, $Date$
+ * @see com.netscape.admin.certsrv
+ */
+public class CMSBaseMenuInfo implements IMenuInfo {
+
+ /*==========================================================
+ * variables
+ *==========================================================*/
+ //framework level menu catagory ids
+ public static String MENU_FILE = Framework.MENU_FILE;
+ public static String MENU_VIEW = Framework.MENU_VIEW;
+ public static String MENU_OBJECT = ResourcePage.MENU_OBJECT;
+
+ //menu bar menu items
+ public static String MENU_KEYCERT = CMSAdminResources.MENU_KEYCERT;
+ public static String MENU_REFRESH = CMSAdminResources.MENU_REFRESH;
+ public static String MENU_KEYCERT_MANAGEMENT = CMSAdminResources.MENU_KEYCERT_MANAGEMENT;
+ public static String MENU_PKCS11 = CMSAdminResources.MENU_PKCS11;
+ public static String MENU_NEWCERT = CMSAdminResources.MENU_NEWCERT;
+
+ //context menu items
+
+
+ protected Vector mMenuCategoryIDs; //stores the ids
+ protected Vector mCategoryIDMenuItems; //stores the menu items associated
+ //with the specified id
+ protected Vector mMenuItemsIDs; //stores the item ids
+ protected Vector mActionListeners; //stores the action listeners
+
+ protected ResourceBundle mResource;
+
+ /*==========================================================
+ * constructors
+ *==========================================================*/
+ public CMSBaseMenuInfo() {
+ mResource = ResourceBundle.getBundle(CMSAdminResources.class.getName());
+ mMenuCategoryIDs = new Vector();
+ mCategoryIDMenuItems = new Vector();
+ mMenuItemsIDs = new Vector();
+ mActionListeners = new Vector();
+ }
+
+ /*==========================================================
+ * public methods
+ *==========================================================*/
+
+ /**
+ * Register menu items and associated action obejct
+ * @param id menu catagory ID
+ * @param item menu item
+ * @param action IMenuAction object
+ */
+ public void registerMenuItem(String id, String keyword, IMenuAction action) {
+ IMenuItem item = getMenuItemText(keyword);
+
+ //register menu item and action pair
+ int i = mMenuItemsIDs.indexOf(item.getID());
+ if (i == -1) {
+ mMenuItemsIDs.addElement(item.getID());
+ mActionListeners.addElement(action);
+ } else {
+ mActionListeners.setElementAt(action,i);
+ }
+
+ //register catgory id and associated menu items
+ i = mMenuCategoryIDs.indexOf(id);
+ if (i == -1) {
+ mMenuCategoryIDs.addElement(id);
+ mCategoryIDMenuItems.addElement(new Vector());
+ }
+ i = mMenuCategoryIDs.indexOf(id);
+ Vector items = (Vector) mCategoryIDMenuItems.elementAt(i);
+ items.addElement(item); //XXX check exist already ??
+ }
+
+ /**
+ * Add menu item separator
+ */
+ public void addMenuItemSeparator(String id) {
+ int i = mMenuCategoryIDs.indexOf(id);
+ if (i < 0 ) {
+ mMenuCategoryIDs.addElement(id);
+ Vector items = new Vector();
+ items.addElement(new MenuItemSeparator());
+ mCategoryIDMenuItems.addElement(items);
+ } else {
+ Vector items = (Vector) mCategoryIDMenuItems.elementAt(i);
+ items.addElement(new MenuItemSeparator());
+ }
+ }
+
+ /**
+ * Returns supported menu categories.
+ */
+ public String[] getMenuCategoryIDs() {
+ if (mMenuCategoryIDs.size() == 0) {
+ return null;
+ }
+ String[] id = new String[mMenuCategoryIDs.size()];
+ mMenuCategoryIDs.copyInto(id);
+ //for(int i=0; i< id.length; i++)
+ // System.out.println("ID: "+id[i]);
+ return id;
+ }
+
+ /**
+ * Returns menu items for a particular menu category.
+ */
+ public IMenuItem[] getMenuItems(String category) {
+ int i = mMenuCategoryIDs.indexOf(category);
+ if (i != -1) {
+ Vector v = (Vector) mCategoryIDMenuItems.elementAt(i);
+ IMenuItem[] items = new IMenuItem[v.size()];
+ v.copyInto(items);
+ //for(int j=0; j< items.length; j++)
+ // System.out.println("ITEM: "+items[j].getID());
+ return items;
+ }
+ return null;
+ }
+
+ /**
+ * Notification that a menu item has been selected.
+ */
+ public void actionMenuSelected(IPage viewInstance, IMenuItem item) {
+ int i = mMenuItemsIDs.indexOf(item.getID());
+ if (i == -1)
+ return;
+ IMenuAction act = (IMenuAction) mActionListeners.elementAt(i);
+ act.perform(viewInstance);
+ }
+
+ /*==========================================================
+ * priotected methods
+ *==========================================================*/
+
+ protected MenuItemText getMenuItemText(String keyword) {
+ String name = mResource.getString("GENERAL_MENU_"+keyword+"_LABEL");
+ if (name == null)
+ name = "Missing Label";
+ String desc = mResource.getString("GENERAL_MENU_"+keyword+"_DESC");
+ if (desc == null)
+ desc = " ";
+ return new MenuItemText( keyword, name, desc);
+ }
+
+}