El ejemplo mostrado en el apéndice Ampliación del centro de control no es correcto y no funcionará. En su lugar, utilice la información siguiente para trabajar con el ejemplo de Java:
El programa de ejemplo PluginEx.java está ubicado en el subdirectorio samples/java. PluginEx.java está instalado con DB2 Application Development Client. Para compilar PluginEx.java, se deberá incluir lo siguiente en classpath:
Cree el archivo db2plug.zip para incluir todas las clases generadas a partir de la compilación de PluginEx.java. El archivo no deberá comprimirse. Por ejemplo, emita lo siguiente:
zip -r0 db2plug.zip PluginEx*.class
Este mandato pone todos los archivos de clase (class) en el archivo db2plug.zip y conserva la información de vía de acceso relativa.
Siga las instrucciones del archivo PluginEx.java para compilar y ejecutar el ejemplo.
La interfaz CCObject incluye más constantes estáticas que las que se listan en el apéndice Ampliación del Centro de control de la Guía de administración. A continuación se indican las interfaces Java para ampliar el Centro de control (CCExtension, CCObject, CCM enuAction, CCToolBarAction). Estas interfaces se listan aquí sólo para su consulta.
CCExtension:
// Materiales con licencia -- Propiedad de IBM // // (c) Copyright International Business Machines Corporation, 1999. // Reservados todos los derechos. // // Derechos restringidos para los usuarios del Gobierno de los EE.UU. - // Utilización, duplicación o divulgación restringidas por el // GSA ADP Schedule Contract con IBM Corp. // package com.ibm.db2.tools.cc.navigator; /** * La interfaz CCExtension permite a los usuarios ampliar la interfaz de usuario * Centro de control añadiendo nuevos botones de barra de herramientas y elementos * de menú y eliminar un conjunto predefinido de acciones de menú existentes. * * Para ello, cree un archivo java que importe el * paquete com.ibm.db2.tools.cc.navigator e implemente esta interfaz. * El nuevo archivo proporciona la implementación de la función getObjects() * y getToolbarActions(). * * La función getObjects() devuelve una matriz de CCObjects que define * los objetos existentes * que el usuario desea añadir a nuevas acciones de menú o eliminar * para modificar o configurar acciones de menú. * * La función getToolbarActions() devuelve una matriz de CCToolbarActions * que se añade a la barra de herramientas principal del Centro de control. * * Puede utilizar un solo archivo de subclase CCExtension o varios de ellos * para definir las extensiones del Centro de control. A fin de que el Centro * de control haga uso de estas extensiones, emplee los siguientes * procedimientos de configuración: * (1) Cree un archivo "db2plug.zip" que contenga todos los archivos de subclase * CCExtension. Los archivos no deben estar comprimidos. Por ejemplo, * si los archivos de CCExtension están en el paquete plugin y se * encuentran en el directorio plugin, emita * zip -r0 db2plug.zip plugin\*.class * Este mandato pondrá todos los archivos de clase del paquete plugin en el * archivo db2plug.zip y conservará su información de vía de acceso relativa. * (2) Para ejecutar WEBCC como applet, ponga el archivo db2plug.zip en el lugar * apuntado por el código <codebase> en el archivo html WEBCC. * Para ejecutar el Centro de control como una aplicación, ponga * db2plug.zip en un directorio al que apunte la variable de entorno CLASSPATH * y en el que se ejecute el Centro de control. * * Para los navegadores que soporten varios archivadores, añada solamente * "db2plug.zip" a la lista de archivadores de la página html WEBCC. De lo * contrario, todos los archivos de subclase CCExtension, CCObject, * CCToolbarAction y CCMenuAction tendrán que estar en su vía de acceso * relativa según el paquete al que pertenezcan. */ public interface CCExtension { /** * Obtener una matriz de objetos de subclase CCObject que definan * una lista de objetos que deben alterarse temporalmente en el * Centro de control * @return CCObject[] CCObject subclass objects array */ public CCObject[] getObjects(); /** * Obtener una matriz de objetos de subclase CCToolbarAction que represente * una lista de botones que se deben añadir a la barra de herramientas * principal del Centro de control. * @return CCToolbarAction[] matriz de objetos de subclase CCToolbarAction */ public CCToolbarAction[] getToolbarActions(); }
CCObject
CCObject: // // Materiales con licencia -- Propiedad de IBM // // (c) Copyright International Business Machines Corporation, 1999. // Reservados todos los derechos. // // Derechos restringidos para los usuarios del Gobierno de los EE.UU. - // Utilización, duplicación o divulgación restringidas por el // GSA ADP Schedule Contract con IBM Corp. // package com.ibm.db2.tools.cc.navigator; /** * La interfaz CCObject permite a los usuarios definir un objeto nuevo para * insertarlo en el árbol del Centro de control o cambiar el comportamiento * de las acciones de menú de un objeto existente. */ public interface CCObject { /** * Las constantes estáticas siguientes definen una lista de tipos de objeto * disponibles para añadirse al árbol del Centro de control. */ public static final int UDB_SYSTEMS_FOLDER = 0; public static final int UDB_SYSTEM = 1; public static final int UDB_INSTANCES_FOLDER = 2; public static final int UDB_INSTANCE = 3; public static final int UDB_DATABASES_FOLDER = 4; public static final int UDB_DATABASE = 5; public static final int UDB_TABLES_FOLDER = 6; public static final int UDB_TABLE = 7; public static final int UDB_TABLESPACES_FOLDER = 8; public static final int UDB_TABLESPACE = 9; public static final int UDB_VIEWS_FOLDER = 10; public static final int UDB_VIEW = 11; public static final int UDB_ALIASES_FOLDER = 12; public static final int UDB_ALIAS = 13; public static final int UDB_TRIGGERS_FOLDER = 14; public static final int UDB_TRIGGER = 15; public static final int UDB_SCHEMAS_FOLDER = 16; public static final int UDB_SCHEMA = 17; public static final int UDB_INDEXES_FOLDER = 18; public static final int UDB_INDEX = 19; public static final int UDB_CONNECTIONS_FOLDER = 20; public static final int UDB_CONNECTION = 21; public static final int UDB_REPLICATION_SOURCES_FOLDER = 22; public static final int UDB_REPLICATION_SOURCE = 23; public static final int UDB_REPLICATION_SUBSCRIPTIONS_FOLDER = 24; public static final int UDB_REPLICATION_SUBSCRIPTION = 25; public static final int UDB_BUFFERPOOLS_FOLDER = 26; public static final int UDB_BUFFERPOOL = 27; public static final int UDB_APPLICATION_OBJECTS_FOLDER = 28; public static final int UDB_USER_DEFINED_DISTINCT_DATATYPES_FOLDER = 29; public static final int UDB_USER_DEFINED_DISTINCT_DATATYPE = 30; public static final int UDB_USER_DEFINED_DISTINCT_FUNCTIONS_FOLDER = 31; public static final int UDB_USER_DEFINED_DISTINCT_FUNCTION = 32; public static final int UDB_PACKAGES_FOLDER = 33; public static final int UDB_PACKAGE = 34; public static final int UDB_STORE_PROCEDURES_FOLDER = 35; public static final int UDB_STORE_PROCEDURE = 36; public static final int UDB_USER_AND_GROUP_OBJECTS_FOLDER = 37; public static final int UDB_DB_USERS_FOLDER = 38; public static final int UDB_DB_USER = 39; public static final int UDB_DB_GROUPS_FOLDER = 40; public static final int UDB_DB_GROUP = 41; public static final int UDB_DRDA_TABLES_FOLDER = 42; public static final int UDB_DRDA_TABLE = 43; public static final int UDB_NODEGROUPS_FOLDER = 44; public static final int UDB_NODEGROUP = 45; public static final int S390_SUBSYSTEMS_FOLDER = 46; public static final int S390_SUBSYSTEM = 47; public static final int S390_BUFFERPOOLS_FOLDER = 48; public static final int S390_BUFFERPOOL = 49; public static final int S390_VIEWS_FOLDER = 50; public static final int S390_VIEW = 51; public static final int S390_DATABASES_FOLDER = 52; public static final int S390_DATABASE = 53; public static final int S390_TABLESPACES_FOLDER = 54; public static final int S390_TABLESPACE = 55; public static final int S390_TABLES_FOLDER = 56; public static final int S390_TABLE = 57; public static final int S390_INDEXS_FOLDER = 58; public static final int S390_INDEX = 59; public static final int S390_STORAGE_GROUPS_FOLDER = 60; public static final int S390_STORAGE_GROUP = 61; public static final int S390_ALIASES_FOLDER = 62; public static final int S390_ALIAS = 63; public static final int S390_SYNONYMS_FOLDER = 64; public static final int S390_SYNONYM = 65; public static final int S390_APPLICATION_OBJECTS_FOLDER = 66; public static final int S390_COLLECTIONS_FOLDER = 67; public static final int S390_COLLECTION = 68; public static final int S390_PACKAGES_FOLDER = 69; public static final int S390_PACKAGE = 70; public static final int S390_PLANS_FOLDER = 71; public static final int S390_PLAN = 72; public static final int S390_PROCEDURES_FOLDER = 73; public static final int S390_PROCEDURE = 74; public static final int S390_DB_USERS_FOLDER = 75; public static final int S390_DB_USER = 76; public static final int S390_LOCATIONS_FOLDER = 77; public static final int S390_LOCATION = 78; public static final int S390_DISTINCT_TYPES_FOLDER = 79; public static final int S390_DISTINCT_TYPE = 80; public static final int S390_USER_DEFINED_FUNCTIONS_FOLDER = 81; public static final int S390_USER_DEFINED_FUNCTION = 82; public static final int S390_TRIGGERS_FOLDER = 83; public static final int S390_TRIGGER = 84; public static final int S390_SCHEMAS_FOLDER = 85; public static final int S390_SCHEMA = 86; public static final int S390_CATALOG_TABLES_FOLDER = 87; public static final int S390_CATALOG_TABLE = 88; public static final int DCS_GATEWAY_CONNECTIONS_FOLDER = 89; public static final int DCS_GATEWAY_CONNECTION = 90; public static final int S390_UTILITY_OBJECTS_FOLDER = 91; public static final int S390_DATASET_TEMPLATES_FOLDER = 92; public static final int S390_DATASET_TEMPLATE = 93; public static final int S390_UTILITY_LISTS_FOLDER = 94; public static final int S390_UTILITY_LIST = 95; public static final int S390_UTILITY_PROCEDURES_FOLDER = 96; public static final int S390_UTILITY_PROCEDURE = 97; /** * Número total de tipos de objeto */ public static final int NUM_OBJECT_TYPES = 98; /** * Obtener el nombre de este objeto * * La función devuelve el nombre de este objeto. Este nombre * puede ser de tres tipos: * (1) Nombre totalmente calificado * Sintaxis: xxxxx-yyyyy-zzzzz * donde xxxxx-yyyyy es el nombre totalmente calificado del objeto padre * y zzzzz es el nombre del objeto nuevo. * Nota: El nombre de objeto padre e hijo están separados por el carácter '-'. * Si se necesita un nombre de esquema para identificar el objeto, el nombre * totalmente calificado se representa mediante xxxxx-yyyyy-wwwww.zzzzz * donde wwwww es el nombre de esquema. * Sólo quedará afectado el comportamiento del objeto que coincide * con este nombre totalmente calificado. * (2) Nombre totalmente calificado del padre * Sintaxis: xxxxx-yyyyy * donde xxxxx-yyyyy es el nombre totalmente calificado del * objeto padre. * Cuando el tipo de objeto es carpeta (es decir, DATABASES_FOLDER), * getName() sólo deberá devolver el nombre totalmente calificado del * padre de la carpeta. * Sólo quedará afectado el comportamiento del objeto que coincida * con este nombre y del tipo específico devuelto por la función * getType(). * (3) null * Sintaxis: null * Si se devuelve null, se aplicarán las devoluciones de CCMenuActions * por parte de la llamada getMenuActions() a todos los objetos de las * devoluciones de tipo por parte de la llamada getType(). * @return nombre de objeto String */ public String getName(); /** * Obtener el tipo de este objeto * @return int devolver una de las constantes de tipo estático definidas en esta * interfaz */ public int getType(); /** * Obtener la matriz de Acción de CCMenu que define la lista de acciones de menú * que se deben crear para el objeto * return CCMenuAction[] matriz CCMenuAction */ public CCMenuAction[] getMenuActions(); /** * Comprobar si este objeto es editable. Si no lo es, los elementos de * menú Modificar relacionados se eliminarán del menú emergente del objeto * Devolver booleano Si es falso, el elemento de menú Modificar se eliminará * del menú emergente del objeto. * Devolver verdadero si no desea modificar el comportamiento del elemento de menú * Modificar actual. */ public boolean isEditable(); /** * Comprobar si este objeto es configurable. Si no lo es, los elementos de menú * de configuración relacionados se eliminarán del menú emergente del objeto * Devolver booleano Si es falso, el elemento de menú Configuración relacionado * se eliminará del menú emergente del objeto. * Devolver verdadero si no desea modificar el comportamiento de Configuración * actual. */ public boolean isConfigurable(); }
CCMenuAction:
// // Materiales con licencia -- Propiedad de IBM // // (c) Copyright International Business Machines Corporation, 1999. // Reservados todos los derechos. // // Derechos restringidos para los usuarios del Gobierno de los EE.UU. - // Utilización, duplicación o divulgación restringidas por el // GSA ADP Schedule Contract con IBM Corp. // package com.ibm.db2.tools.cc.navigator; import java.awt.event.*; import javax.swing.*; /** * La clase CCMenuAction permite a los usuarios definir un elemento de menú * nuevo para añadirlo a un objeto del Centro de control. El elemento de menú * nuevo se añadirá al final del menú emergente de un objeto. * * Nota: Si el objeto tiene un elemento de menú Renovar y/o Filtrar del * Centro de control, el elemento de menú nuevo se insertará antes del menú * Renovar y Filtrar. Los elementos de menú Renovar y Filtrar del Centro de * control siempre están al final del menú emergente. */ public interface CCMenuAction { /** * Obtener el nombre de esta acción * @return texto de Nombre de serie del elemento de menú */ public String getMenuText(); /** * Se invoca cuando se produce una acción. * @param e Suceso acción */ public void actionPerformed(ActionEvent e); }
CCToolBarAction
// Materiales con licencia -- Propiedad de IBM // // (c) Copyright International Business Machines Corporation, 1999. // Reservados todos los derechos. // // Derechos restringidos para los usuarios del Gobierno de los EE.UU. - // Utilización, duplicación o divulgación restringidas por el // GSA ADP Schedule Contract con IBM Corp. // package com.ibm.db2.tools.cc.navigator; import java.awt.event.*; import javax.swing.*; /** * La clase de interfaz CCToolbarAction permite a los usuarios definir una * acción nueva para añadirla a la barra de herramientas del Centro de control. */ public interface CCToolbarAction { /** * Obtener el nombre de esta acción * @return texto de Nombre de serie del elemento de menú o botón de barra * de herramientas en ayuda */ public String getHoverHelpText(); /** * Obtener el icono para el botón de barra de herramientas * Cualquier CCAction de la barra de herramientas debe alterar temporalmente * esta función y devolver un objeto ImageIcon válido. De lo contrario, el * botón no tendrá icono. * @return Icono ImageIcon a visualizar */ public ImageIcon getIcon(); /** * Se invoca cuando se produce una acción. * @param e Suceso acción */ public void actionPerformed(ActionEvent e); }