|Пример, приведенный в приложении Расширение Центра управления, не корректен |и не будет работать. Используйте вместо него пример Java, приведенный |ниже:
|Программа примера PluginEx.java находится в подкаталоге |samples/java. PluginEx.java устанавливается вместе с |клиентом разработки программ DB2. Чтобы скомпилировать |PluginEx.java, надо добавить в classpath: |
|Создайте db2plug.zip, включив все классы, сгенерированные при |компиляции PluginEx.java. Файл не должны быть сжатым. |Например:
| zip -r0 db2plug.zip PluginEx*.class
|Эта команда помещает все файлы классов в файл db2plug.zip с |сохранением информации об относительных путях.
|Следуйте указаниям в файле PluginEx.java, чтобы скомпилировать и |выполнить пример.
|Интерфейс CCObject включает больше статических констант, чем перечислено в |приложении Расширение Центра управления в Руководстве администратора. |Ниже приведены интерфейсы Java для расширения Центра управления (CCExtension, |CCObject, CCM enuAction, CCToolBarAction). Эти интерфейсы перечислены |здесь только для справки.
|CCExtension:
|// Лицензионные материалы -- Собственность IBM |// |// (c) Copyright International Business Machines Corporation, 1999. |// Все права защищены. |// |// US Government Users Restricted Rights - |// Use, duplication or disclosure restricted by |// GSA ADP Schedule Contract with IBM Corp. |// | |package com.ibm.db2.tools.cc.navigator; | |/** | * Интерфейс CCExtension позволяет пользователям расширять пользовательский | * интерфейс Центра управления, добавляя к нему новые кнопки панели | * инструментов и новые пункты меню и удаляя некоторый заранее определенный | * набор существующих действий меню. | * | * Для этого создайте класс java, импортирующий пакет | * com.ibm.db2.tools.cc.navigator и реализующий данный интерфейс. | * Новый файл должен обеспечивает реализацию функций getObjects() и | * getToolbarActions(). | * | * Функция getObjects() возвращает массив CCObjects, определяющий существующие | * объекты, для которых пользователь хотел бы добавить новые действия меню или | * удалить, изменить или настроить предопределенные действия меню. | * | * Функция getToolbarActions() возвращает массив CCToolbarActions, | * который добавляется на главную панель меню Центра управления. | * | * Для определения расширений Центра управления можно использовать один файл | * подкласса CCExtension или же несколько таких файлов. Чтобы | * Центр управления мог использовать эти расширения, используйте следующие | * процедуры установки: | * (1) Создайте файл "db2plug.zip", содержащий все файлы подкласса | * CCExtension. Файлы не должны быть сжатыми. Например, если файлы | * CCExtension содержатся в пакете модуля расширения и находятся в | * каталоге модуля расширения, введите: | * zip -r0 db2plug.zip plugin\*.class | * Эта команда помещает все файлы класса пакета модуля расширения в файл | * db2plug.zip с сохранением информации об их относительных путях. | * (2) Чтобы WEBCC можно было запустить как апплет, поместите файл db2plug.zip | * по адресу, записанному в теге <codebase> файла html WEBCC. | * Чтобы запустить Центр управления как прикладную программу, поместите | * файл db2plug.zip в каталог, заданный переменной среды CLASSPATH, | * где запускается Центр управления. | * | * Если браузер поддерживает несколько архивов, достаточно добавить | * "db2plug.zip" в список архивов страницы html WEBCC. Иначе все файлы | * подклассов CCExtension, CCObject, CCToolbarAction, CCMenuAction | * должны находиться в своем относительном пути, в зависимости от того, | * к какому пакету они принадлежат. | */ | |public interface CCExtension |{ | /** | * Получить массив объектов подкласса CCObject, определяющих | * список объектов, которые надо переопределить в | * Центре управления | * @return CCObject[] массив объектов подкласса CCObject | */ | public CCObject[] getObjects(); | | /** | * Получить массив объектов подкласса CCToolbarAction, представляющих | * список кнопок, которые надо добавить на главную панель инструментов | * Центра управления. | * @return CCToolbarAction[] массив объектов подкласса CCToolbarAction | */ | public CCToolbarAction[] getToolbarActions(); |} | |
|CCObject
|CCObject: |// |// Лицензионные материалы -- Собственность IBM |// |// (c) Copyright International Business Machines Corporation, 1999. |// Все права защищены. |// |// US Government Users Restricted Rights - |// Use, duplication or disclosure restricted by |// GSA ADP Schedule Contract with IBM Corp. |// | |package com.ibm.db2.tools.cc.navigator; | |/** | * Интерфейс CCObject позволяет пользователям определить новый объект для | * вставки в дерево Центра управления или изменения поведения | * действий меню существующего объекта. | */ |public interface CCObject |{ | /** | * Следующие статические константы определяют список типов объектов, | * которые можно добавить в дерево Центра управления. | */ | 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; | /** | * Общее число типов объектов | */ | public static final int NUM_OBJECT_TYPES = 98; | | /** | * Получить имя этого объекта | * | * Эта функция возвращает имя данного объекта. Имя объекта | * может быть трех типов: | * (1) Полное имя | * Синтаксис: xxxxx-yyyyy-zzzzz | * где xxxxx-yyyyy - полное имя родительского | * объекта, а zzzzz - имя нового объекта. | * Примечание: Имена родительского и дочернего объектов | * разделены символом '-'. | * Если для идентификации объекта требуется имя схемы, полное | * полное имя представляется в виде xxxxx-yyyyy-wwwww.zzzzz, | * где wwwww - имя схемы. | * Будет изменено только поведение объекта, который | * соответствует этому полному имени. | * (2) Родительское полное имя | * Синтаксис: xxxxx-yyyyy | * где xxxxx-yyyyy - полное имя | * родительского объекта. | * Если тип объекта - папка (например, DATABASES_FOLDER), | * getName() должна вернуть лишь полное имя | * родительского объекта папки. | * Будет изменено только поведение объекта, который соответствует этому имени | * и конкретному типу, возвращаемому функцией getType() | . | * (3) null (пустое значение) | * Синтаксис: null | * Если возвращается пустое значение, CCMenuActions, возвращенные | * вызовом getMenuActions(), будут применены ко всем объектам типа, | * возвращенного вызовом getType(). | * @return строка с именем объекта | */ | public String getName(); | | /** | * Получить тип этого объекта | * @return int одна из констант статического типа, определенная | * в этом интерфейсе | */ | public int getType(); | | /** | * Получить массив CCMenu Action, определяющий список действий меню, | * которые надо создать для объекта | * return CCMenuAction[] массив CCMenuAction | */ | public CCMenuAction[] getMenuActions(); | | /** | * Проверяет возможность редактирования этого объекта. Если объект нельзя | * редактировать, пункты меню, связанные с редактированием, будут | * удалены из всплывающего меню объекта. | * Возвращает логическое значение. Если возвращено false, пункт меню, | * связанный с изменением, будет удален из всплывающего меню объекта. | * Возвращает true, если вы не хотите изменять текущее поведение меню Изменение. | */ | public boolean isEditable(); | | /** | * Проверяет возможность конфигурирования этого объекта. Если объект нельзя | * конфигурировать, пункты меню, связанные с конфигурированием, будут | * удалены из всплывающего меню объекта. | * Возвращает логическое значение. Если возвращено false, пункт меню, | * связанный с конфигурированием, будет удален из всплывающего меню объекта. | * Возвращает true, если вы не хотите изменить текущее поведение Конфигурирования. | */ | public boolean isConfigurable(); |} | | |
|CCMenuAction:
|// |// Лицензионные материалы -- Собственность IBM |// |// (c) Copyright International Business Machines Corporation, 1999. |// Все права защищены. |// |// US Government Users Restricted Rights - |// Use, duplication or disclosure restricted by |// GSA ADP Schedule Contract with IBM Corp. |// | |package com.ibm.db2.tools.cc.navigator; |import java.awt.event.*; |import javax.swing.*; | |/** | * Класс CCMenuAction позволяет пользователям определить новый пункт меню, | * который надо добавить в объект Центра управления. Новый пункт меню будет | * добавлен в конец всплывающего меню объекта. | * | * Примечание: Если у объекта есть пункт меню Обновить Центр управления и/или | * Фильтр, новый пункт меню будет вставлен перед пунктами меню Обновить | * и Фильтр. Пункты меню Обновить Центр управления и Фильтр всегда находятся в | * конце всплывающего меню. | */ |public interface CCMenuAction |{ | /** | * Получить имя этого действия | * @return String Name текст в пункте меню | */ | public String getMenuText(); | | /** | * Вызывается, когда происходит действие. | * @param e Событие действия | */ | public void actionPerformed(ActionEvent e); |} | | |
|CCToolBarAction
|// Лицензионные материалы -- Собственность IBM |// |// (c) Copyright International Business Machines Corporation, 1999. |// Все права защищены. |// |// US Government Users Restricted Rights - |// Use, duplication or disclosure restricted by |// GSA ADP Schedule Contract with IBM Corp. |// | |package com.ibm.db2.tools.cc.navigator; |import java.awt.event.*; |import javax.swing.*; | |/** | * Интерфейс CCToolbarAction позволяет пользователям определить новое | * действие, которое надо добавить на панель инструментов Центра управления. | */ |public interface CCToolbarAction |{ | /** | * Получить имя этого действия | * @return String Name текст в пункте меню или всплывающая справка | * на панели инструментов | */ | public String getHoverHelpText(); | | /** | * Получить значок для кнопки полосы инструментов | * Любая CCAction полосы инструментов должна переопределять эту функцию и возвращать | * допустимый объект ImageIcon. В противном случае у кнопки не будет своего значка. | * @return ImageIcon Значок для вывода на экран | */ | public ImageIcon getIcon(); | | /** | * Вызывается, когда происходит действие. | * @param e Событие действия | */ | public void actionPerformed(ActionEvent e); |} |