Как переопределить применение и восстановить настройки по умолчанию - PullRequest
0 голосов
/ 05 июня 2018

Я хочу настроить некоторые параметры внешнего вида для типа файла.Итак, я создал новую запись в General->Appearance->Colors and Fonts.

Мой plugin.xml выглядит следующим образом:

<extension point="org.eclipse.ui.themes">
    <themeElementCategory
        id="com.example.themeElementCategory"
        label="My specific settings">
        <description>
            Control the appearance of .example files
        </description>
    </themeElementCategory>
    <colorDefinition
        categoryId="com.example.themeElementCategory"
        id="com.example.colorDefinition"
        label="Some Color"
        value="COLOR_DARK_BLUE">
        <description>
            Your description goes here
        </description>
    </colorDefinition>
    <fontDefinition
        categoryId="com.example.themeElementCategory"
        id="com.example.fontDefinition"
        label="Some Font"
        value="Lucida Sans-italic-18">
        <description>
            Description for this font
        </description>
    </fontDefinition>
</extension>

Теперь в Colors and Fonts у меня есть новая запись, где я могу установитьцвет и шрифт.

Как расширить окно настроек, чтобы можно было переопределить кнопки Restore defaults, Apply и Apply and Close?

  1. В моем <themeElementCategory> мне нужно будет добавить class=MyHandlingClass, который переопределит performApply(), но что этот класс должен расширять / реализовывать?

  2. То же, что и 1, но добавить PropertyChangeEvent, все еще не знаю, что должно быть расширено / реализовать

  3. Менее вероятно, создать новую страницу настроек, которая расширяет PreferencePage и реализует IWorkbenchPreferencePage

Как мне выполнить один из первых двух вариантов?

ОБНОВЛЕНИЕ ДЛЯ УТОЧНЕНИЯ
В настоящее времяЦвет и шрифт для конкретного расширения файла жестко закодированы в классе (я ЗНАЮ).Когда файл открывается в редакторе, информация читается из этого статического класса и отображается в редакторе.

Что я хотел сделать:

  1. В блоке static{} прочитайте настройки, сконфигурированные в настройках, и обновите статические поля из моего класса.
  2. Если пользователь изменяет эти настройки из настроек, при применении я хотел обновить статические поля из класса и «перекрасить» редактор.

1 Ответ

0 голосов
/ 05 июня 2018

Если вы просто хотите узнать, когда элементы темы меняют значение, используйте метод addPropertyChangeListener для IThemeManager, чтобы добавить прослушиватель для изменений:

IThemeManager manager = PlatformUI.getWorkbench().getThemeManager();

manager.addPropertyChangeListener(listener);

PropertyChangeEvent, переданный в propertyChangedметод IPropertyChangeListener содержит идентификатор, старое и новое значение измененного элемента темы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...