Куда мне нужно поместить код инициализации пользовательского интерфейса в плагин IntelliJ Idea? - PullRequest
0 голосов
/ 19 мая 2018

Я хочу создать плагин для IntelliJ Idea, который помещает маленькую кнопку в строку состояния.

AFAIK код для этого должен выглядеть следующим образом:

final StatusBar statusBar = WindowManager.getInstance().getStatusBar(project);
final StatusBarWidget widget = new WordCounterWidget();
statusBar.addWidget(widget);

WordCounterWidget - это кнопка, которую я хочу поместить в строку состояния.

Я пытался поместить ее

Ничего из этого не принесло ожидаемого результата - кнопка не

Правильно ли приведенный выше код для вставки кнопки (или чего-либо еще, что может отображать текст и является кликабельным)?Если да, куда мне его поместить, чтобы он выполнялся при каждом открытии, повторном открытии или создании проекта (виджет строки состояния должен отображаться постоянно, когда в Idea открыт проект)?

Код здесь .

Обновление 1: Попытка изменить код WordCounterServiceImpl на

public class WordCounterServiceImpl implements WordCounterService {
    private final Project project;
    public WordCounterServiceImpl(final Project project) {
        this.project = project;
    }

    @Override
    public void projectOpened() {
        final StatusBar statusBar = WindowManager.getInstance().getStatusBar(project);
        final StatusBarWidget widget = new WordCounterWidget();
        statusBar.addWidget(widget);
    }
}

Кнопка по-прежнему не отображается.

1 Ответ

0 голосов
/ 19 мая 2018

com.intellij.openapi.components.ProjectComponent#projectOpened

См .: https://www.jetbrains.org/intellij/sdk/docs/basics/plugin_structure/plugin_components.html

...