Статьи

Как написать плагин NetBeans

Хотите добавить функцию или автоматизировать что-либо в своей среде IDE NetBeans ? Следите за тем, как мы пишем ваш первый плагин для NetBeans.

Давайте пойдем дальше простого примера панели инструментов и создадим плагин, который может автоматически обновляться. Этот код основан на плагине WakaTime для NetBeans . Наш примерный плагин просто распечатает оператор Hello World и обновит его до новых версий, если таковые имеются … достаточно, чтобы вы начали.

Создать новый проект плагина

Выберите File -> New Project затем NetBeans Modules -> Module в качестве типа проекта.

создать-плагин-проект

Назовите свой проект

имя-вашего-проект

Выберите пространство имен или кодовое имя для вашего плагина

Пространство имен-ваш-проект

Добавить файл Java

создать в 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

openide-модуля установки

Теперь метод 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 .

новый XML-документ

имя-XML-документ

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 .