Установка цвета фона для Shell в css/default.css не имеет никакого эффекта

Я перехожу к разделу "Разработка плагинов Eclipse 4 по примеру руководства для начинающих" и к разделу "Время действовать - стилизация пользовательского интерфейса с помощью CSS".

Здесь приведены инструкции по редактированию "css/default.css" и добавлению следующего:

  Shell {
      background-color: blue;
  }

К сожалению, это не имеет никакого эффекта. Фон по-прежнему является сероватым цветом по умолчанию.

Что я могу сделать, чтобы отладить это?

Я попытался запустить инструмент "CSS Spy", но я не понимаю, как его использовать.

Обновление:

Вот весь мой файл plugin.xml:

<plugin>
   <extension id="product"
     point="org.eclipse.core.runtime.products">
  <product name="com.packtpub.e4.application"
    application="org.eclipse.e4.ui.workbench.swt.E4Application">
     <property name="appName" value="com.packtpub.e4.application">
     </property>
  </product>
   </extension>
</plugin>

В инструкциях в этом разделе ничего не сказано здесь. Где больше информации о том, что должно быть здесь для этого "простого" приложения?

Обновление:

Таким образом, похоже, что в инструкциях книги не упоминается необходимость установки свойства applicationCSS. Я добавил это вручную, как указано, и это решило проблему.

Совет о том, что "Вы также должны указать имя CSS в файле.product" поднимает дополнительные вопросы.

Мне было непонятно, почему это нужно делать в дополнение к настройке свойства в файле plugin.xml. Поле на этой странице мастера на самом деле не объясняет, для чего используется значение, но мне показалось, что оно имеет ту же цель, что и установка этого свойства.

Итак, я попытался удалить ручную настройку в файле "plugin.xml" и использовать мастер для поиска файла. Я сохранил это, а затем проверил файл "plugin.xml", так как ожидал, что это действие в мастере заполнит это свойство. Там не было никаких изменений. Затем я снова посмотрел на мастера и прочитал оператор после этого поля, который сказал следующее (странно, что выделение этого текста в мастере и нажатие Ctrl-C не помещает текст в буфер обмена):

'You must Synchronize (this word a hyperlink) the product's defining plug-in to ensure that the CSS file specified above is referenced in the plug-in's "org.eclipse.core.runtime.products" extension point.'

Поэтому я попытался нажать на эту гиперссылку. Это вставило свойство в файл plugin.xml. Это поднимает больше вопросов.

Если, по-видимому, важно, чтобы "указанный выше CSS-файл" был указан в качестве свойства "applicationCSS" в файле "plugin.xml", то почему разработчик должен предпринять преднамеренное действие, чтобы это произошло, а не просто зеркальное отражение в Eclipse? это значение в собственности?

Ссылка на точку расширения org.eclipse.core.runtime.products любопытна. Когда я просматриваю файл "plugin.xml" для приложения Eclipse, не относящегося к e4, я вижу вкладки "Расширения" и "Точки расширения", но не при просмотре мастера для этого примера приложения e4. Кроме того, я не вижу ссылок на расширения или точки расширения в этом сгенерированном файле "plugin.xml".

Используется ли введенное в мастере значение для НИЧЕГО, кроме как использовать его для (ручной) синхронизации значения свойства applicationCSS?

1 ответ

Вы должны иметь applicationCSS запись в product запись в plugin.xml (или cssTheme если использовать темы) без этого CSS стилизация не будет выполнена.

Что-то вроде:

<extension
     id="product"
     point="org.eclipse.core.runtime.products">
  <product
        name="greg.e4App2"
        application="org.eclipse.e4.ui.workbench.swt.E4Application">
     <property
           name="applicationCSS"
           value="platform:/plugin/greg.e4App2/css/default.css">
     </property>
     <property
           name="appName"
           value="greg.e4App2">
     </property>
  </product>
</extension>

Также необходимо указать имя CSS в файле.product на вкладке "Настройка" в разделе "Стиль CSS".

Также убедитесь, что папка "css" включена в "build.properties"

Другие вопросы по тегам