Хотите добавить функцию или автоматизировать что-либо в своей среде IDE NetBeans ? Следите за тем, как мы пишем ваш первый плагин для NetBeans.
Давайте пойдем дальше простого примера панели инструментов и создадим плагин, который может автоматически обновляться. Этот код основан на плагине WakaTime для NetBeans . Наш примерный плагин просто распечатает оператор Hello World и обновит его до новых версий, если таковые имеются … достаточно, чтобы вы начали.
Создать новый проект плагина
Выберите File
-> New Project
затем NetBeans Modules
-> Module
в качестве типа проекта.
Назовите свой проект
Выберите пространство имен или кодовое имя для вашего плагина
Добавить файл Java
Начальная точка плагина
После создания нового файла класса Java сделайте его расширение ModuleInstall и оберните его @OnShowing, чтобы он работал только после загрузки графического интерфейса.
1
2
3
|
@OnShowing public class MyPlugin extends ModuleInstall implements Runnable { } |
Нажмите ALT + ENTER, OnShowing
курсор на OnShowing
затем выберите Search Module Dependency for OnShowing
чтобы импортировать API оконной системы в проект. Это добавит новую зависимость в ваш проект, а также добавит необходимые операторы импорта в начало вашего файла. Также сделайте это для ModuleInstall
.
Иногда NetBeans пропускает зависимость org.openide.util
, поэтому вам, возможно, придется добавить ее вручную. Для этого щелкните правой кнопкой мыши MyPlugin и выберите « Properties
.
Выберите категорию « Libraries
затем нажмите « Add...
. Введите org.openide.util
нажмите OK
. Это добавит зависимость в ваш файл project.xml
.
Нажмите ALT + ENTER на вашем классе MyPlugin , затем выберите « Implement all abstract methods
.
И последнее, добавьте эту строку в ваш файл manifest.mf
. OpenIDE-Module-Install: org/myorg/myplugin/MyPlugin.class
Теперь метод run()
будет выполняться после загрузки вашего плагина.
логирование
Давайте сделаем этот вывод println
в журнал IDE NetBeans. Во-первых, настройте регистратор как атрибут вашего класса MyPlugin .
1
|
public static final Logger log = Logger.getLogger( "MyPlugin" ); |
Нажмите ALT + ВВОД, чтобы импортировать java.util.logging.Logger .
Замените println
на log.info("MyPlugin has loaded.");
,
Обновление вашего плагина автоматически
Создайте новый файл Java UpdateHandler.java
внутри вашего пакета MyPlugin .
Замените содержимое этого файла на UpdateHandler.java . Найдите зависимость модуля и добавьте все отсутствующие зависимости, нажимая ALT + ENTER над каждым оператором импорта.
Добавьте эти строки в ваш файл manifest.mf
.
1
2
|
OpenIDE-Module-Layer: org/myorg/myplugin/layer.xml OpenIDE-Module-Implementation-Version: 201501010101 |
Создайте новый XML-документ в вашем пакете MyPlugin .
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
|
<? xml version = "1.0" encoding = "UTF-8" ?> <! DOCTYPE filesystem PUBLIC "-//NetBeans//DTD Filesystem 1.2//EN" "http://www.netbeans.org/dtds/filesystem-1_2.dtd"> < filesystem > < folder name = "Services" > < folder name = "AutoupdateType" > < file name = "org_myorg_myplugin_update_center.instance" > < attr name = "displayName" bundlevalue = "org.myorg.myplugin.Bundle#Services/AutoupdateType/org_myorg_myplugin_update_center.instance" /> < attr name = "enabled" boolvalue = "true" /> < attr name = "instanceCreate" methodvalue = "org.netbeans.modules.autoupdate.updateprovider.AutoupdateCatalogFactory.createUpdateProvider" /> < attr name = "instanceOf" stringvalue = "org.netbeans.spi.autoupdate.UpdateProvider" /> < attr name = "url" bundlevalue = "org.myorg.myplugin.Bundle#org_myorg_myplugin_update_center" /> </ file > </ folder > </ folder > </ filesystem > |
Добавьте этот код в ваш класс MyPlugin внутри метода run()
.
1
2
3
4
5
6
|
WindowManager.getDefault().invokeWhenUIReady( new Runnable () { @Override public void run() { UpdateHandler.checkAndHandleUpdates(); } }); |
Добавьте эти строки в ваш файл Bundle.properties
:
1
2
3
|
Services/AutoupdateType/org_myorg_myplugin_update_center.instance=MyPlugin UpdateHandler.NewModules= false org_myorg_myplugin_update_center=https\: //example.com/updates.xml |
Теперь каждый раз, когда NetBeans перезапускает и запускает ваш плагин, он будет проверять наличие обновлений, загружая updates.xml
с updates.xml
example.com.
Ваш файл updates.xml сообщает NetBeans, где взять новый NBM вашего плагина. Чтобы создать NBM для публикации вашего плагина, щелкните правой кнопкой мыши по проекту MyPlugin и выберите « Create NBM
. Файл NBM — это то, что вы опубликуете на портале плагинов NetBeans .
В качестве примера размещения updates.xml
на GitHub посмотрите update.xml и сопоставьте Bundle.properties из плагина WakaTime NetBeans .
Ссылка: | Как написать плагин NetBeans от нашего партнера JCG Алана Хамлетта в блоге Wakatime . |