Как установить проект Nebula в Eclipse

Я пытаюсь установить Nebula-Software из Eclipse. Кажется, я упускаю небольшой, но очень важный момент.
Моя основная цель - протестировать и работать с «Виджетом осциллографа туманности».
Я сделал, как мне сказали на:
https://www.eclipse.org/nebula/downloads.php
и используется:
Релизы - Релиз 1.4.0 И там:
Загрузки - Сайт обновления: http://download.eclipse.org/nebula/releases/1.4.0
Мне удалось вставить это в установку eclipse и получить некоторые каталоги и файлы в .p2, например

  • \ org.eclipse.equinox.p2.core \
  • \ pool \ features \ org.eclipse.nebula.widgets.oscilloscope.feature_1.4.0.201711021145 \

А там
каталог META-INF
файлы epl-v10.html
feature.properties
feature.xml
license.html

Не вижу, как это могло помочь. К сожалению, Eclipse также не видит этого.
Операторы импорта Java, такие как
import org.eclipse.nebula.widgets.oscilloscope.multichannel.OscilloscopeDispatcher;
import org.eclipse.swt.SWT;
все еще не решены.

Следующая попытка: на странице есть zip-файл с названием
«Обновить репозиторий сайта в архиве: repository.zip "
http://download.eclipse.org/nebula/releases/1.4.0/repository-nebula-1.4.0.zip
Загружая его, много файлов jar - но где его разместить?

Следующая попытка, конечно, есть ссылка git:
https://github.com/eclipse/nebula
где взять "nebula-master.zip"

Импортировал как «из архива». В результате я наконец получил проект
org.eclipse.swt.nebula, содержащий несколько подпапок. Мой любовный интерес, осциллоскоп находится в
проекте "org.eclipse.swt.nebula"
... Папка виджетов,
... Папка oszilloskope,
... Папка org.eclipse.nebula .widgets.oscilloscope.snippets
... папка src
... папка org
... папка затмение
... папка туманность
... папка виджеты
. .. Папка осциллографа
... Папка фрагментов.
Не думаю, что эта структура предназначена. Пытаясь запустить демонстрацию, я получаю такие ошибки:
«Конфигурация запуска GridAllTests ссылается на несуществующий проект org.eclipse.nebula.widgets.grid.test». Что правильно.

«Org.eclipse.nebula.widgets.grid.test» является частью
сетки папок,
виджетов папок,
проекта org.eclipse.swt.nebula

Что-то пошло не так, вероятно, во время импорта. Как это сделать правильно?

Спасибо !


person tarik    schedule 19.11.2017    source источник
comment
Вы хотите использовать виджет в простом приложении Java или в приложении OSGi? В случае простого Java-приложения вы должны добавить Nebula JAR и все необходимые JAR в путь к классам Java. После его установки вы найдете JAR-файлы в подкаталоге plugins каталога установки Eclipse. В случае приложения OSGi создайте новый проект подключаемого модуля и добавьте зависимость к подключаемому модулю / пакету Nebular.   -  person howlger    schedule 19.11.2017
comment
Привет @tarik! Напоминаю, что если он решил вашу проблему, то вам следует принять ответ от Howlger ниже. Дополнительную информацию см. На справочных страницах.   -  person Lii    schedule 03.05.2018


Ответы (1)


Если вы хотите использовать виджет Nebula Oscilloscope в обычном приложении Java (вместо приложения OSGi), вам необходимо добавить следующие JAR-файлы в свой путь сборки Java (Project> Свойства: Java Build Path), который можно найти в plugins supdirectory каталога установки Eclipse после установки (используйте Добавить внешние JAR-файлы ... ):

  • org.eclipse.swt_<version>.jar (например, org.eclipse.swt_3.106.1.v20170926-0519.jar)
  • org.eclipse.swt.<platform>_<version>.jar (например, org.eclipse.swt.win32.win32.x86_64_3.106.1.v20170926-0519.jar)
  • org.eclipse.equinox.common_<version>.jar (например, org.eclipse.equinox.common_3.9.0.v20170207-1454.jar)
  • org.eclipse.nebula.widgets.oscilloscope_<version>.jar (например, org.eclipse.nebula.widgets.oscilloscope_1.4.0.201711021145.jar)

_ 10_ также требует адаптации для использования в простом проекте Java:

  • удалить extends AbstractExampleTab
  • удалить все @Overrides
  • измените строку final String path = FileLocator.getBundleFile(Platform.getBundle(BUNDLE)).getPath(); на final String path = "wavs"; (при использовании звуков необходимо создать папку wavs, содержащую *.wav файлы примера)
  • измените строку } catch (IOException e) { на } catch (Throwable e) {
  • Источник> Организовать импорт, чтобы удалить ненужный импорт, который не может быть разрешен.

С этими адаптациями вы можете запустить пример с помощью следующего основного метода:

public static void main (String [] args) {
    Display display = new Display ();
    Shell shell = new Shell (display);
    shell.setSize(600, 800);

    RowLayout layout = new RowLayout(SWT.HORIZONTAL);
    layout.wrap = true;
    layout.fill = true;
    layout.justify = false;
    shell.setLayout(layout);

    Composite mainArea = new Composite(shell, SWT.None);
    mainArea.setLayout(new RowLayout());

    Composite settings = new Composite(shell, SWT.None);
    settings.setLayout(new RowLayout(SWT.HORIZONTAL));

    OscilloscopeExampleTab osci = new OscilloscopeExampleTab();
    osci.createParameters(settings);
    osci.createControl(mainArea);

    shell.open ();
    while (!shell.isDisposed ()) {
        if (!display.readAndDispatch ()) display.sleep ();
    }
    display.dispose ();
}

Результирующий пример виджета "Осциллограф туманности" в виде простого приложения Java:

введите здесь описание изображения

person howlger    schedule 19.11.2017
comment
Привет, Howlger, большое спасибо. Кажется, вы потратили некоторое время на то, чтобы протестировать его локально на своей платформе. Я последовал твоему совету и несколько ошибок исчезли. 3 все еще существуют - ‹br› import org.eclipse.core.runtime.Platform; ‹br› import org.eclipse.nebula.examples.AbstractExampleTab; ‹br› не может быть повторно любим и, вероятно, по этой причине ‹br› - person tarik; 20.11.2017
comment
Просто удалите этот импорт, он больше не требуется после удаления extends AbstractExampleTab и изменения final String path = .... - person howlger; 20.11.2017
comment
Привет, Howlger, большое спасибо. Кажется, вы потратили некоторое время на то, чтобы протестировать его локально на своей платформе. Мне жаль, что я не вернулся с историей успеха, но с новыми вопросами: я последовал вашему совету, и несколько ошибок исчезли. Они все еще там - ‹br› import org.eclipse.core.runtime.Platform; import org.eclipse.nebula.examples.AbstractExampleTab; не может быть решен и, вероятно, по этой причине, например, Display display = new Display (); Оболочка оболочки = новая оболочка (отображение); терпят неудачу. Тип org.osgi.framework.bundle .... не может быть решен. Спасибо! - Тарик - person tarik; 20.11.2017
comment
Если вы выполните Источник ›Организовать импорт в OscilloscopeExampleTab, ошибок компиляции больше быть не должно. В противном случае убедитесь, что в вашем обычном Java-проекте есть только класс OscilloscopeExampleTab. - person howlger; 20.11.2017
comment
Окей, сделано. Дисплей и оболочка дополнительно импортированы. Только для окончательного пути к строке = FileLocator.getBundleFile (Platform.getBundle (BUNDLE)). GetPath (); вроде нет импорта. Если я использую предложение: import org.eclipse.swt.internal.Platform; Но он возвращается ... Нет метода getBundle. Если ОК, я просто выпишу заявление? - person tarik; 20.11.2017
comment
Измените всю строку final String path = FileLocator.getBundleFile(Platform.getBundle(BUNDLE)).getPath(); на final String path = "wavs"; и повторите попытку Источник ›Организовать импорт. - person howlger; 20.11.2017
comment
Работает нормально. Спасибо! - person tarik; 20.11.2017