LINUX.ORG.RU

Кто-нибудь пробовать использовать Eclipse RCP?


0

3

Приветствую, пытаюсь по мануалу http://habrahabr.ru/post/139340/ создать примерчик, но что-то не получается, а именно, добавляю вид, но вкладка вида не появляется в результирующем приложении. Что самое интересное, попробовал пставить сообщение на функцию инициализации перспективы createInitialLayout(), сообщение вообще не появляется, т.е эта функция не вызывается. В чём может быть причина?

★★★★★

Проверьте, совпадает ли идентификатор перспективы в ApplicationWorkbenchAdvisor.java (PERSPECTIVE_ID) и в plugin.xml (во вкладке Extensions).

xmichael
()
Ответ на: комментарий от xmichael

ID совпадают(регистр букв тоже). В принципе, и вид и перспектива генерировались мастером. Так м же как, создаётся проект, в нём перспектива есть уже по умолчанию, а вид добавляем потом, через MANIFEST (мастер)

xterro ★★★★★
() автор топика
Ответ на: комментарий от xterro

Я попробовал повторить у себя, создал по шаблону плагин, но идентификаторы не менял (на те, что в мануале), оставил все по-умолчанию, как предлагает Эклипс. Добавил отписку в createInitialLayout(), и она работает. Вид не добавлял.

xmichael
()
Ответ на: комментарий от xmichael

Хм, странно, попробовал сейчас создать проект по новой, вид так же не добавлял, и всё равно createInitialLayout() не вызывается :( Можете проверить у себя, всё ли правильно я сделал, архив с проектом по ссылке(так простейший проект Hello RCP с MessageBox-ом в функции инициализации).

http://files.mail.ru/180A050F431C4DB6A37A78285536C29F

xterro ★★★★★
() автор топика
Ответ на: комментарий от xterro

Запустил ваш проект - метод вызывается. Правда из-за MessageBox'a падает, т.к. в момент инициализации active shell еще не доступен. Как запускаете приложение? Из редактора манифеста? Проверьте конфигурацию запуска вашего приложения, а именно Main/Program to run и кнопку Validate на вкладке Plug-ins. Также попробуйте поставить отписку в методе Activator.start(), чтобы понять, запускается ли плагин вообще.

xmichael
()
Ответ на: комментарий от xmichael

Добавил логированиево все методы, чтобы посмотреь порядок вызова, получилось следующее:

 
Activator.start
Application.start
ApplicationWorkbenchAdvisor.getInitialWindowPerspectiveId: PLTest.perspective
ApplicationWorkbenchAdvisor.getInitialWindowPerspectiveId: PLTest.perspective
ApplicationWorkbenchAdvisor.getInitialWindowPerspectiveId: PLTest.perspective
ApplicationWorkbenchAdvisor.createWorkbenchWindowAdvisor
ApplicationWorkbenchWindowAdvisor.preWindowOpen
ApplicationWorkbenchAdvisor.getInitialWindowPerspectiveId: PLTest.perspective
ApplicationWorkbenchAdvisor.getInitialWindowPerspectiveId: PLTest.perspective
ApplicationWorkbenchWindowAdvisor.createActionBarAdvisor
ApplicationWorkbenchAdvisor.getInitialWindowPerspectiveId: PLTest.perspective
ApplicationWorkbenchAdvisor.getInitialWindowPerspectiveId: PLTest.perspective
ApplicationWorkbenchAdvisor.getInitialWindowPerspectiveId: PLTest.perspective
ApplicationWorkbenchAdvisor.getInitialWindowPerspectiveId: PLTest.perspective
Activator.stop

Не понятно почему getInitialWindowPerspectiveId вызывается по три раза, так и должно быть? А вот функция createInitialLayout из класса Perspective ни разу :( В настройках запускаемых программ стоит PLTest.perspective, т.е моё приложение. Запуска и из MANIFEST(Launch an Eclipse Application) и так, по горячей клавише Ctrl-F11, результат один и тот же. Уже думаю, что что-то в Eclipse не то.

xterro ★★★★★
() автор топика
Последнее исправление: xterro (всего исправлений: 1)
Ответ на: комментарий от xmichael

как обычное окно, без вкладки вида(оно и понятно, вид не добавлялся, хотя, если добавить вид, тоже ничего не изменится, картинка будет такой же)

http://files.mail.ru/0EC736B1FD924267BC1F6A9A6AA69EA2

xterro ★★★★★
() автор топика
Ответ на: комментарий от xterro

В таком случае, остается пробежать отладкой и найти место в коде Эклипса, где будет ясно, почему нужный метод не выполняется. А вообще, попробуйте сначала повторить на чистом Эклипсе (3.7.2 или 4.4.0).

xmichael
()
25 сентября 2014 г.
Ответ на: комментарий от xterro

Решение

У тебя застрорилась перспектива. Поставь в настройках запуска, на табе Main галку Clear и всё взлетит

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.