All Downloads are FREE. Search and download functionalities are using the official Maven repository.

mq5.0-source.main.mq-admin.admin-gui.src.main.java.com.sun.messaging.jmq.admin.apps.console.ConsoleObj Maven / Gradle / Ivy

/*
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
 *
 * Copyright (c) 2000-2012 Oracle and/or its affiliates. All rights reserved.
 *
 * The contents of this file are subject to the terms of either the GNU
 * General Public License Version 2 only ("GPL") or the Common Development
 * and Distribution License("CDDL") (collectively, the "License").  You
 * may not use this file except in compliance with the License.  You can
 * obtain a copy of the License at
 * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
 * or packager/legal/LICENSE.txt.  See the License for the specific
 * language governing permissions and limitations under the License.
 *
 * When distributing the software, include this License Header Notice in each
 * file and include the License file at packager/legal/LICENSE.txt.
 *
 * GPL Classpath Exception:
 * Oracle designates this particular file as subject to the "Classpath"
 * exception as provided by Oracle in the GPL Version 2 section of the License
 * file that accompanied this code.
 *
 * Modifications:
 * If applicable, add the following below the License Header, with the fields
 * enclosed by brackets [] replaced by your own identifying information:
 * "Portions Copyright [year] [name of copyright owner]"
 *
 * Contributor(s):
 * If you wish your version of this file to be governed by only the CDDL or
 * only the GPL Version 2, indicate your decision by adding "[Contributor]
 * elects to include this software in this distribution under the [CDDL or GPL
 * Version 2] license."  If you don't indicate a single choice of license, a
 * recipient has the option to distribute your version of this file under
 * either the CDDL, the GPL Version 2 or to extend the choice of license to
 * its licensees as provided above.  However, if you add GPL Version 2 code
 * and therefore, elected the GPL Version 2 license, then the option applies
 * only if the new code is made subject to such option by the copyright
 * holder.
 */

/*
 * @(#)ConsoleObj.java	1.20 06/27/07
 */ 

package com.sun.messaging.jmq.admin.apps.console;

import javax.swing.ImageIcon;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;
import javax.swing.tree.DefaultMutableTreeNode;

/** 
 * This class represents the superclass of any object that can be 
 * manipulated in the JMQ Administration Console.
 * 

* This object may need to contain information that is relevant to * any piece of the console GUI as well as real information * used to perform the administration task. This includes things * like: *

    *
  • What icon to show in the explorer pane for this object *
  • What menus to enable when it is selected *
  • What inspector pane class to use when inspecting this * object *
* For convenience, this class extends javax.swing.tree.DefaultMutableTreeNode * because in all the cases so far, it is displayed in a JTree * component. *

* This makes it convenient to get information on children * objects/nodes as the DefaultMutableTreeNode class has methods * for this. * */ public abstract class ConsoleObj extends DefaultMutableTreeNode { /** * Create/initialize the admin explorer GUI component. */ public ConsoleObj() { } /** * Return a string representation of this object. * This is the string that will be displayed in * the explorer pane JTree node. * * @return String representation of this object/node. */ public String toString() { return (getExplorerLabel()); } /** * Returns the popup menu to display for this object. * Uses the getExplorerPopupMenuItemMask() method to * determine what menu items should be displayed in the * popup. * * @param actionMgr The action manager to use to fetch * the actions used in constructing the * popup menu. * @return The popup menu to display for this object. */ public JPopupMenu getExporerPopupMenu(ActionManager actionMgr) { JPopupMenu popup; JMenuItem menuItem; String label = this.toString(); int mask = getExplorerPopupMenuItemMask(); popup = new JPopupMenu(label); popup.setLabel(label); checkActionFlag(actionMgr, popup, mask, ActionManager.CONNECT); checkActionFlag(actionMgr, popup, mask, ActionManager.DISCONNECT); checkActionFlag(actionMgr, popup, mask, ActionManager.QUERY_BROKER); checkActionFlag(actionMgr, popup, mask, ActionManager.PAUSE); checkActionFlag(actionMgr, popup, mask, ActionManager.RESUME); checkActionFlag(actionMgr, popup, mask, ActionManager.RESTART); checkActionFlag(actionMgr, popup, mask, ActionManager.SHUTDOWN); checkActionFlag(actionMgr, popup, mask, ActionManager.ADD); checkActionFlag(actionMgr, popup, mask, ActionManager.DELETE); checkActionFlag(actionMgr, popup, mask, ActionManager.PURGE); checkActionFlag(actionMgr, popup, mask, ActionManager.PROPERTIES); return (popup); } /** * Returns true if this object can be inspected, false otherwise. * * @return true if this object can be inspected, false otherwise. */ public boolean canBeInspected() { if (getInspectorPanelClassName() == null) { return (false); } return (true); } /** * Returns the string label associated with the passed action flag * relevant to this object. *

* Some actions like ADD have different meanings depending on the currently * selected object. This method is used to obtain the label for the * menu item label or for toolbar tooltip for the passed action when * this particular object is selected. *

* Objects interested in displaying a particular label for some action * should override this method. *

* A return of null would mean that the label would not be changed. * The currently displayed would be used. *

* The forMenu parameter indicates if this label will be used in a menu. * This gives the ConsoleObj implementation of returning different * strings depending on the situation. For example in Asian locales, * the menu lables contain characters that are solely for mnemonics * e.g. "XXX (A)" which would look awkward in anything other than a * menu item. * * @see ActionManager * @see AMenuBar * @see AToolBar * * @return Action label for the passed action. * */ public String getActionLabel(int actionFlag, boolean forMenu) { return (null); } /** * Returns the action icon associated with the passed action flag * relevant to this object. *

* Some actions like CONNECT have different icons associated to it * depending on the currently selected object. * This method is used to obtain the icon for the menu item or for * toolbar button for the passed action when this particular object * is selected. *

* Objects interested in displaying a particular icon in the toolbar button * or menu item for some action should override this method. *

* A return of null would mean that the label would not be changed. * The currently displayed would be used. * * @see ActionManager * @see AMenuBar * @see AToolBar * * @return Action icon for the passed action. * */ public ImageIcon getActionIcon(int actionFlag) { return (null); } /* * Checks if a particular action flag is set in the specified mask * and adds the corresponding action to the passed popup menu if it is. */ private void checkActionFlag(ActionManager actionMgr, JPopupMenu popup, int mask, int actionFlag) { if (flagSet(mask, actionFlag)) { JMenuItem item = popup.add(actionMgr.getAction(actionFlag)); /* * Check if there is a mnemonic associated with this action. * If there is, set it on the menu item */ char m = actionMgr.getCharMnemonic(actionFlag); if ((m != (char)0)) { item.setMnemonic(m); } /* * Check if the ConsoleObj has a specific label to use for this * action. */ String label = getActionLabel(actionFlag, true); if (label != null) { item.setText(label); } /* * Check if the ConsoleObj has a specific icon to use for this * action. */ ImageIcon icon = getActionIcon(actionFlag); if (icon != null) { item.setIcon(icon); } } } /* * Returns whether a action flag is set in * the specified mask. */ private boolean flagSet(int mask, int actionFlag) { return ((mask & actionFlag) == actionFlag); } /** * Returns the label displayed in the explorer pane for * this object. This is the label for the JTree node. * * @return label used in explorer JTree node */ public abstract String getExplorerLabel(); /** * Returns the tooltip displayed in the explorer pane for * this object. * * @return tooltip displayed in explorer JTree node for * this object. */ public abstract String getExplorerToolTip(); /** * Returns the ImageIcon used for this object in the explorer * pane JTree node. * * @return the ImageIcon used for this object in the explorer * pane JTree node. */ public abstract ImageIcon getExplorerIcon(); /** * Returns the bit mask representing the menu items to display * for this object in the explorer pane. * * @return the bit mask representing the menu items to display * for this object in the explorer pane. */ public abstract int getExplorerPopupMenuItemMask(); /** * Returns the bit mask representing the actions to activate * when this object is selected. * * @return the bit mask representing the actions to activate * when this object is selected. */ public abstract int getActiveActions(); /** * Returns the classname for the inspector panel used to inspect * this object. * * @return the classname for the inspector panel used to inspect * this object. */ public abstract String getInspectorPanelClassName(); /** * Returns the identifier for the inspector panel used to inspect * this class. This is primarily used to identify the inspector * panel in a CardLayout. * * @return the identifier for the inspector panel used to inspect * this class. */ public abstract String getInspectorPanelId(); /** * Returns a string that can be used as a header for the inspector * panel. * * @return the string that can be used as a header for the inspector * panel. */ public abstract String getInspectorPanelHeader(); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy