@Override public String getId() { return extensionId == null ? element == null ? model.getElementId() : element .getAttribute(IWorkbenchRegistryConstants.ATT_ID) : extensionId; }
@Override public String getSecondaryId() { MPart part = getModel(); int colonIndex = part.getElementId().indexOf(':'); if (colonIndex == -1 || colonIndex == (part.getElementId().length() - 1)) return null; return part.getElementId().substring(colonIndex + 1); }
@Override public String getId() { String id = part.getElementId(); // Only return the descriptor id int colonIndex = id.indexOf(':'); return colonIndex == -1 ? id : id.substring(0, colonIndex); }
@Override public String getSecondaryId() { MPart part = getModel(); int colonIndex = part.getElementId().indexOf(':'); if (colonIndex == -1 || colonIndex == (part.getElementId().length() - 1)) return null; return part.getElementId().substring(colonIndex + 1); }
@Override public void handleEvent(Event event) { Object element = event.getProperty(UIEvents.EventTags.ELEMENT); if (element instanceof MPart) { MPart part = (MPart) element; String partId = part.getElementId(); if (targetedListeners.containsKey(partId) || targetedPostListeners.containsKey(partId)) track(part); } } };
private boolean contains(ViewReference reference) { for (ViewReference viewReference : viewReferences) { if (reference.getModel().getElementId().equals(viewReference.getModel().getElementId())) { return true; } } return false; }
@Override public String getPluginId() { return element == null ? model.getElementId() : element.getNamespaceIdentifier(); }
@Override IWorkbenchPart createErrorPart() { IStatus status = new Status(IStatus.ERROR, WorkbenchPlugin.PI_WORKBENCH, NLS.bind( WorkbenchMessages.ViewFactory_initException, getModel().getElementId()), new Exception()); return createErrorPart(status); }
private void notifyTargetedPostListeners(final MPart part, final Object selection) { String id = part.getElementId(); if (id != null) { ListenerList<ISelectionListener> listenerList = targetedPostListeners.get(id); if (listenerList != null) { for (final ISelectionListener myListener : listenerList) { SafeRunner.run(new ISafeRunnable() { @Override public void run() throws Exception { myListener.selectionChanged(part, selection); } @Override public void handleException(Throwable exception) { logger.error(exception); } }); } } } }
private void notifyTargetedListeners(final MPart part, final Object selection) { String id = part.getElementId(); if (id != null) { ListenerList<ISelectionListener> listenerList = targetedListeners.get(id); if (listenerList != null) { for (final ISelectionListener listener : listenerList) { final ISelectionListener myListener = listener; SafeRunner.run(new ISafeRunnable() { @Override public void run() throws Exception { myListener.selectionChanged(part, selection); } @Override public void handleException(Throwable exception) { logger.error(exception); } }); } } } }
@Override public IViewReference findViewReference(String viewId) { for (IViewReference reference : getViewReferences()) { ViewReference ref = (ViewReference) reference; if (viewId.equals(ref.getModel().getElementId())) { return reference; } } return null; }
public MPart addPart(MPart part) { Assert.isNotNull(part); MPart localPart = findPart(part.getElementId()); return addPart(part, localPart == null ? part : localPart); }
private MPlaceholder createSharedPart(MPart sharedPart) { // Create and return a reference to the shared part MPlaceholder sharedPartRef = modelService.createModelElement(MPlaceholder.class); sharedPartRef.setElementId(sharedPart.getElementId()); sharedPartRef.setRef(sharedPart); return sharedPartRef; }
@Override public boolean save(MPart dirtyPart, boolean confirm) { if (confirm) { switch (promptToSave(dirtyPart)) { case NO: return true; case CANCEL: return false; case YES: break; } } Object client = dirtyPart.getObject(); try { ContextInjectionFactory.invoke(client, Persist.class, dirtyPart.getContext()); } catch (InjectionException e) { log("Failed to persist contents of part", "Failed to persist contents of part ({0})", //$NON-NLS-1$ //$NON-NLS-2$ dirtyPart.getElementId(), e); return false; } catch (RuntimeException e) { log("Failed to persist contents of part via DI", //$NON-NLS-1$ "Failed to persist contents of part ({0}) via DI", dirtyPart.getElementId(), e); //$NON-NLS-1$ return false; } return true; }
private void handlePostSelectionChanged(MPart part, Object selection, boolean targeted) { selection = createCompatibilitySelection(selection); Object client = part.getObject(); if (client instanceof CompatibilityPart) { IWorkbenchPart workbenchPart = ((CompatibilityPart) client).getPart(); if (targeted) { notifyListeners(workbenchPart, (ISelection) selection, part.getElementId(), targetedPostSelectionListeners); } else { notifyListeners(workbenchPart, (ISelection) selection, postSelectionListeners); } } else if (client != null) { if (part.getTransientData().get(E4PartWrapper.E4_WRAPPER_KEY) instanceof E4PartWrapper) { IWorkbenchPart workbenchPart = (IWorkbenchPart) part.getTransientData() .get(E4PartWrapper.E4_WRAPPER_KEY); if (targeted) { notifyListeners(workbenchPart, (ISelection) selection, part.getElementId(), targetedPostSelectionListeners); } else { notifyListeners(workbenchPart, (ISelection) selection, postSelectionListeners); } } } }
@Override public boolean savePart(MPart part, boolean confirm) { if (!part.isDirty()) { return true; } if (saveHandler != null) { return saveHandler.save(part, confirm); } Object client = part.getObject(); try { ContextInjectionFactory.invoke(client, Persist.class, part.getContext()); } catch (InjectionException e) { log("Failed to persist contents of part", "Failed to persist contents of part ({0})", //$NON-NLS-1$ //$NON-NLS-2$ part.getElementId(), e); return false; } catch (RuntimeException e) { log("Failed to persist contents of part via DI", //$NON-NLS-1$ "Failed to persist contents of part ({0}) via DI", part.getElementId(), e); //$NON-NLS-1$ return false; } return true; }
private String getIconURI(MUILabel element) { if (element instanceof MPart) { MPart part = (MPart) element; String iconURI = (String) part.getTransientData().get( ICON_URI_FOR_PART); if (iconURI != null) { return iconURI; } MPartDescriptor desc = modelService.getPartDescriptor(part .getElementId()); iconURI = desc != null && desc.getIconURI() != null ? desc .getIconURI() : element.getIconURI(); part.getTransientData().put(ICON_URI_FOR_PART, iconURI); return iconURI; } return element.getIconURI(); }
private ViewReference createViewReference(MPart part, WorkbenchPage page) { WorkbenchWindow window = (WorkbenchWindow) page.getWorkbenchWindow(); // If the partId contains a ':' then only use the substring before it to // fine the descriptor String partId = part.getElementId(); // If the id contains a ':' use the part before it as the descriptor id int colonIndex = partId.indexOf(':'); String descId = colonIndex == -1 ? partId : partId.substring(0, colonIndex); IViewDescriptor desc = window.getWorkbench().getViewRegistry().find(descId); ViewReference ref = new ViewReference(window.getModel().getContext(), page, part, (ViewDescriptor) desc); page.addViewReference(ref); return ref; }
List<CTabItem> getItemsToSet(MPart part) { List<CTabItem> itemsToSet = new ArrayList<>(); MUIElement partParent = part.getParent(); if (partParent instanceof MPartStack) { addItemToSet(itemsToSet, part); } else if (partParent instanceof MPartSashContainer) { MElementContainer<MUIElement> parentParent = partParent.getParent(); if (parentParent instanceof MPart) { MPart parentParentMPart = (MPart) parentParent; addItemToSet(itemsToSet, parentParentMPart); } } else if (part.getCurSharedRef() != null) { MWindow topWin = modelService.getTopLevelWindowFor(part); List<MPlaceholder> partRefs = modelService.findElements(topWin, part.getElementId(), MPlaceholder.class); for (MPlaceholder ref : partRefs) { CTabItem item = findItemForPart(ref, null); if (item != null) { itemsToSet.add(item); } } } return itemsToSet; }
@Override public void initialize(IWorkbenchPart part) throws PartInitException { ViewSite viewSite = new ViewSite(getModel(), part, this, descriptor == null ? null : descriptor.getConfigurationElement()); IViewPart view = (IViewPart) part; view.init(viewSite, memento); if (view.getSite() != viewSite || view.getViewSite() != viewSite) { String id = descriptor == null ? getModel().getElementId() : descriptor.getId(); throw new PartInitException(NLS.bind(WorkbenchMessages.ViewFactory_siteException, id)); } legacyPart = part; addPropertyListeners(); }