2016-01-27 2 views
0

В нашем приложении Eclipse E4 (чистый e4) мне нужно открыть новое окно и показать некоторые виды в новом окне (которое полностью отличается от главного окна). В новом окне я пытаюсь добавить меню (Файл-> Импорт) программно. Я написал код ниже, но в новом окне не отображаются меню. Что-нибудь мне не хватает?Добавление меню в In E4 MWindow

`

MTrimmedWindow window = MBasicFactory.INSTANCE.createTrimmedWindow(); 
.... 

MMenu menuBar = MenuFactoryImpl.eINSTANCE.createMenu(); 
menuBar.setLabel("Test"); 
window.setMainMenu(menuBar); 

MMenu fileMenu = MenuFactoryImpl.eINSTANCE.createMenu(); 
fileMenu.setElementId("file"); 
fileMenu.setLabel("File"); 
menuBar.getChildren().add(fileMenu); 

MMenuItem item1 = MenuFactoryImpl.eINSTANCE.createDirectMenuItem(); 
item1.setElementId("item1"); 
item1.setLabel("item1"); 
fileMenu.getChildren().add(item1);` 
+0

Нужно ли быть программным? Гораздо проще создать окно в Application.e4xmi –

ответ

1

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

Когда вы добавляете окно в список дочерних приложений, оно отображается немедленно. Поэтому, если вы не установили главное меню в этой точке, оно не будет отображаться.

Если ваш дизайн окна исправлен, вы можете избежать всего этого кода, создав окно в Application.e4xmi. Просто выключить «чтобы быть вынесено» флаг, так что не показывать сначала, а затем сделать:

MTrimmedWindow window = (MTrimmedWindow)modelService.find("window id", app); 

window.setToBeRendered(true); 

, чтобы открыть окно.

+0

Это сработало. На самом деле, когда я печатал вопрос, я думал, что U ответит на это :) Я искал вас в Google Plus, чтобы я мог задать вам этот вопрос напрямую. Большое спасибо. Попробуйте напрямую добавить в Application.e4xmi. второе окно – babyinEclipse

+0

1-й, он работал в Application.e4xmi. также. Спасибо за это. 2. В нашем приложении количество окон, созданных, будет зависеть от пользовательских кликов, я думаю, что лучше создавать динамические окна, чем создавать приложения Application.e4xmi. Я думаю, что лучше создавать программно. – babyinEclipse

Смежные вопросы