Advertisement
Guest User

Untitled

a guest
Dec 8th, 2016
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.90 KB | None | 0 0
  1. package com.example.e4.rcp.todo.addons;
  2.  
  3. import java.util.List;
  4.  
  5. import javax.inject.Inject;
  6.  
  7. import org.eclipse.e4.core.di.annotations.Optional;
  8. import org.eclipse.e4.core.di.extensions.EventTopic;
  9. import org.eclipse.e4.ui.model.application.ui.advanced.MPerspective;
  10. import org.eclipse.e4.ui.model.application.ui.advanced.MPerspectiveStack;
  11. import org.eclipse.e4.ui.model.application.ui.basic.MWindow;
  12. import org.eclipse.e4.ui.model.application.ui.menu.MToolBar;
  13. import org.eclipse.e4.ui.workbench.UIEvents;
  14. import org.eclipse.e4.ui.workbench.UIEvents.EventTags;
  15. import org.eclipse.e4.ui.workbench.modeling.EModelService;
  16. import org.osgi.service.event.Event;
  17.  
  18. public class ToolbarsVisiblePerPerspectiveAddon {
  19.  
  20. @Inject
  21. @Optional
  22. EModelService modelService;
  23.  
  24. @Inject
  25. @Optional
  26. public void subscribeTopicSelectedElement(@EventTopic
  27. (UIEvents.ElementContainer.TOPIC_SELECTEDELEMENT) Event event) {
  28. Object element = event.getProperty(EventTags.ELEMENT);
  29. Object newValue = event.getProperty(EventTags.NEW_VALUE);
  30. if (!(element instanceof MPerspectiveStack) || !(newValue instanceof MPerspective)) {
  31. return;
  32. }
  33. MPerspective perspective = (MPerspective) newValue;
  34. if(modelService==null) {
  35. return;
  36. }
  37. MWindow topLevelWindowFor = modelService.getTopLevelWindowFor(perspective);
  38. List<MToolBar> toolbars = modelService.findElements(topLevelWindowFor, null, MToolBar.class, null);
  39. for (MToolBar toolbar : toolbars) {
  40. // if not tag is there make the toolbar visible
  41. if (toolbar.getTags().isEmpty()) {
  42. toolbar.setVisible(true);
  43. toolbar.setToBeRendered(true);
  44. return;
  45. }
  46. // we assume that toolbars use tags only to define the visibility for a
  47. // perspective
  48. if (toolbar.getTags().contains("perspective:"+perspective.getElementId())) {
  49. toolbar.setVisible(true);
  50. toolbar.setToBeRendered(true);
  51. } else {
  52. toolbar.setVisible(false);
  53. toolbar.setToBeRendered(false);
  54. }
  55. }
  56. }
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement