private MPart createView(ViewReader viewReader) { MPart view = modelService.createModelElement(MPart.class); view.setElementId(viewReader.getId()); view.setContributionURI(CompatibilityPart.COMPATIBILITY_VIEW_URI); view.setLabel(viewReader.getLabel()); view.getTags().add(ViewRegistry.VIEW_TAG); view.getPersistedState().put(Workbench.MEMENTO_KEY, new MementoSerializer(viewReader.getViewState()).serialize()); return view; }
@Override public MPlaceholder createSharedPart(String id, boolean force) { MWindow sharedWindow = getWindow(); // Do we already have the part to share? MPart sharedPart = null; // check for existing parts if necessary if (!force) { for (MUIElement element : sharedWindow.getSharedElements()) { if (element.getElementId().equals(id)) { sharedPart = (MPart) element; break; } } } if (sharedPart == null) { MPartDescriptor descriptor = modelService.getPartDescriptor(id); sharedPart = createPart(descriptor); if (sharedPart == null) { return null; } // Replace the id to ensure that multi-instance parts work correctly sharedPart.setElementId(id); sharedWindow.getSharedElements().add(sharedPart); } return createSharedPart(sharedPart); }
editor.setElementId(CompatibilityEditor.MODEL_ELEMENT_ID); editor.setContributionURI(CompatibilityPart.COMPATIBILITY_EDITOR_URI); editor.setLabel(editorReader.getLabel());
private MPlaceholder addPartToStickyFolder(String partId, MPartStack stickyFolder) { MPart part = null; MWindow window = modelService.getTopLevelWindowFor(stickyFolder); for (MUIElement element : window.getSharedElements()) { if (element.getElementId().equals(partId)) { part = (MPart) element; break; } } if (part == null) { part = modelService.createModelElement(MPart.class); part.setElementId(partId); part.setContributionURI(CompatibilityPart.COMPATIBILITY_VIEW_URI); part.getTags().add(ViewRegistry.VIEW_TAG); window.getSharedElements().add(part); } MPlaceholder placeholder = null; placeholder = modelService.createModelElement(MPlaceholder.class); placeholder.setElementId(partId); placeholder.setRef(part); placeholder.setToBeRendered(false); part.setCurSharedRef(placeholder); stickyFolder.getChildren().add(placeholder); return placeholder; }
private void replacePlaceholder(MPlaceholder ph) { MPart part = modelService.createModelElement(MPart.class); part.setElementId(ph.getElementId()); part.getTransientData().put(IPresentationEngine.OVERRIDE_ICON_IMAGE_KEY, ImageDescriptor.getMissingImageDescriptor().createImage()); String label = (String) ph.getTransientData().get(IWorkbenchConstants.TAG_LABEL); if (label != null) { part.setLabel(label); } else { part.setLabel(getLabel(ph.getElementId())); } part.setContributionURI(CompatibilityPart.COMPATIBILITY_VIEW_URI); part.setCloseable(true); MElementContainer<MUIElement> curParent = ph.getParent(); int curIndex = curParent.getChildren().indexOf(ph); curParent.getChildren().remove(curIndex); curParent.getChildren().add(curIndex, part); if (curParent.getSelectedElement() == ph) { curParent.setSelectedElement(part); } }
private MPart createPart(MPartDescriptor descriptor) { if (descriptor == null) { return null; } MPart part = modelService.createModelElement(MPart.class); part.setElementId(descriptor.getElementId()); part.getMenus().addAll(EcoreUtil.copyAll(descriptor.getMenus())); if (descriptor.getToolbar() != null) { part.setToolbar((MToolBar) EcoreUtil.copy((EObject) descriptor.getToolbar())); } part.setContributorURI(descriptor.getContributorURI()); part.setCloseable(descriptor.isCloseable()); part.setContributionURI(descriptor.getContributionURI()); part.setLabel(descriptor.getLabel()); part.setIconURI(descriptor.getIconURI()); part.setTooltip(descriptor.getTooltip()); part.getHandlers().addAll(EcoreUtil.copyAll(descriptor.getHandlers())); part.getTags().addAll(descriptor.getTags()); part.getVariables().addAll(descriptor.getVariables()); part.getProperties().putAll(descriptor.getProperties()); part.getPersistedState().putAll(descriptor.getPersistedState()); part.getBindingContexts().addAll(descriptor.getBindingContexts()); return part; }