|
|
|
Re: Reseting the Window Layout [message #1218423 is a reply to message #674021] |
Fri, 29 November 2013 09:09 |
Tuan Anh Nguyen Messages: 7 Registered: June 2013 |
Junior Member |
|
|
Eric's solution is the only way now for an pure e4 application. You can choose to mix eclipse rcp 3x and e4 to use some convinient things.
Here some starting points you should take a look
h tt p://dirksmetric.wordpress.com/2012/08/01/tutorial-eclipse-rcp-e4-with-3-x-views-like-project-explorer-properties-etc/
Also the vogella website, both are good!
In case you still want to develope a pure e4, i have successfully create a handler for reset the perspective by storing the perspective as a snippet. Here the way to go:
1. Store a copy of every perspective to a snippet with the same id, don't forget to make contribution to the snippet while you contribute to the real perspective.
2. Using the bellow code to reset the perspective.
@Execute
public void execute(@Named(IServiceConstants.ACTIVE_SHELL) Shell shell,
EModelService modelService, MApplication app,
EPartService partService) {
MWindow window = (MWindow) modelService.find("Main", app);
final MPerspective perspective = modelService
.getActivePerspective(window);
final MUIElement snippet = modelService.cloneSnippet(app,
perspective.getElementId(), window);
snippet.setToBeRendered(true);
if (snippet != null) {
MElementContainer<MUIElement> parent = perspective.getParent();
perspective.setToBeRendered(false);
List<MWindow> existingDetachedWindows = new ArrayList<MWindow>();
existingDetachedWindows.addAll(perspective.getWindows());
MPerspective dummyPerspective = (MPerspective) snippet;
while (dummyPerspective.getWindows().size() > 0) {
MWindow detachedWindow = dummyPerspective.getWindows()
.remove(0);
perspective.getWindows().add(detachedWindow);
}
parent.getChildren().remove(perspective);
parent.getChildren().add(snippet);
System.out.println(parent.getChildren().get(0).getElementId());
partService.switchPerspective((MPerspective) snippet);
}
}
This piece of code i make by analyze the RCP source code. Try it!
[Updated on: Fri, 29 November 2013 09:30] Report message to a moderator
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.04197 seconds