private static void processContentExtensions( final CommonViewer commonViewer, boolean activeFilter, boolean activedPerspectiveFilter) { final INavigatorContentService contentService = commonViewer.getNavigatorContentService(); String[] visibleExtensionIds = contentService.getVisibleExtensionIds(); List<String> visibleIDsForPecpective = new ArrayList<String>(); List<String> visibleIdsForActiveFilter = new ArrayList<String>(); if (visibleExtensionIds != null) { visibleIdsForActiveFilter.addAll(Arrays.asList(visibleExtensionIds)); } if (activedPerspectiveFilter) { String perspectiveId = PlatformUI.getWorkbench() .getActiveWorkbenchWindow() .getActivePage() .getPerspective() .getId(); PerspectiveFilterHelper helper = new PerspectiveFilterHelper(); helper.setTreeViewer(commonViewer); helper.setNavigatorContentService(contentService); helper.setActionProviderId(PerspectiveFilterActionProvider.ID); String[] pvExtensions = helper.getExtensionIdsToActivate(perspectiveId); if (pvExtensions != null && pvExtensions.length > 0) { visibleIDsForPecpective = Arrays.asList(pvExtensions); } visibleIdsForActiveFilter.retainAll(visibleIDsForPecpective); } String[] filteredContents = RepositoryNodeFilterHelper.getFilterByNodeValues(); List<String> filteredContentsList = new ArrayList<String>(); if (filteredContents != null) { filteredContentsList = Arrays.asList(filteredContents); } List<String> checkedExtensions = new ArrayList<String>(); if (activeFilter) { for (String id : visibleIdsForActiveFilter) { if (!filteredContentsList.contains(id)) { checkedExtensions.add(id); } } } else { checkedExtensions.addAll(visibleIdsForActiveFilter); } String[] contentExtensionIdsToActivate = (String[]) checkedExtensions.toArray(new String[checkedExtensions.size()]); UpdateActiveExtensionsOperation updateExtensions = new UpdateActiveExtensionsOperation(commonViewer, contentExtensionIdsToActivate); updateExtensions.execute(null, null); }
/** {@inheritDoc} */ public Object execute(ExecutionEvent event) throws ExecutionException { if (getCommonNavigator() == null || getCommonNavigator().getCommonViewer() == null) { return null; // The model explorer is not displayed (The editor is closed?) } CommonViewer viewer = getCommonNavigator().getCommonViewer(); String[] newContents = null; Object trigger = event.getTrigger(); if (trigger instanceof Event) { // State based on the widget Event triggerEvent = (Event) trigger; if (triggerEvent.widget instanceof ToolItem) { if (((ToolItem) triggerEvent.widget).getSelection()) { newContents = new String[] {DIAGRAM_CONTENTS}; } else { newContents = new String[] {UML_MODEL_CONTENTS}; } } } if (newContents == null) { // Revert the current state INavigatorContentService navigatorContent = viewer.getNavigatorContentService(); if (navigatorContent.isActive(DIAGRAM_CONTENTS)) { newContents = new String[] {UML_MODEL_CONTENTS}; } else { newContents = new String[] {DIAGRAM_CONTENTS}; } } UpdateActiveExtensionsOperation updateExtensions = new UpdateActiveExtensionsOperation(viewer, newContents); updateExtensions.execute(null, null); return null; }