private void handleNullRefPlaceHolders(MUIElement element, MWindow refWin) { List<MPlaceholder> nullRefList = ((ModelServiceImpl) modelService).getNullRefPlaceHolders(element, refWin); List<MPart> partList = modelService.findElements(element, null, MPart.class); for (MPart part : partList) { if (CompatibilityPart.COMPATIBILITY_VIEW_URI.equals(part.getContributionURI()) && part.getIconURI() == null) { part.getTransientData().put(IPresentationEngine.OVERRIDE_ICON_IMAGE_KEY, ImageDescriptor.getMissingImageDescriptor().createImage()); } } if (nullRefList != null && nullRefList.size() > 0) { for (MPlaceholder ph : nullRefList) { if (ph.isToBeRendered()) { replacePlaceholder(ph); } } } }
@Override public void destroyWidget(MPlaceholder element) { MUIElement refElement = element.getRef(); Set<MPlaceholder> set = this.renderedMap.get(refElement); if (set == null || !set.remove(element)) { // super.destroyWidget(element); // return; } // Last reference removed so we can destroy it if (set == null || set.isEmpty()) { if (refElement instanceof MPart) { MPart thePart = (MPart) refElement; String imageURI = thePart.getIconURI(); thePart.setIconURI(null); thePart.setIconURI(imageURI); } refElement.setCurSharedRef(null); getPresentationEngine().removeGui(refElement); } else { MPlaceholder currentRef = refElement.getCurSharedRef(); if( currentRef == element ) { refElement.setCurSharedRef(null); } } super.destroyWidget(element); }
private MCompositePart createCompositePart(MPart originalPart) { MCompositePart compPart = ms.createModelElement(MCompositePart.class); compPart.setElementId("Split Host(" + originalPart.getLabel() + ")"); //$NON-NLS-1$ //$NON-NLS-2$ compPart.setLabel(originalPart.getLabel()); compPart.setTooltip(originalPart.getTooltip()); compPart.setIconURI(originalPart.getIconURI()); compPart.setCloseable(true); compPart.setContributionURI("bundleclass://org.eclipse.e4.ui.workbench.addons.swt/org.eclipse.e4.ui.workbench.addons.splitteraddon.SplitHost"); //$NON-NLS-1$ // Check if icon from MPart was overridden Object overriddenImage = originalPart.getTransientData().get(IPresentationEngine.OVERRIDE_ICON_IMAGE_KEY); if (overriddenImage != null) { compPart.getTransientData().put(IPresentationEngine.OVERRIDE_ICON_IMAGE_KEY, overriddenImage); } // Always remove the composite part from the model compPart.getTags().add(EPartService.REMOVE_ON_HIDE_TAG); return compPart; }
private List<MPlaceholder> getNullRefPlaceHolders(MUIElement element, MWindow refWin, boolean resolveAlways) { // use appContext as MApplication.getContext() is null during the processing of // the model processor classes EPlaceholderResolver resolver = appContext.get(EPlaceholderResolver.class); // Re-resolve any placeholder references List<MPlaceholder> phList = findElements(element, null, MPlaceholder.class, null); List<MPlaceholder> nullRefList = new ArrayList<>(); for (MPlaceholder ph : phList) { if (resolveAlways) { resolver.resolvePlaceholderRef(ph, refWin); } else if ((!resolveAlways) && (ph.getRef() == null)) { resolver.resolvePlaceholderRef(ph, refWin); MUIElement partElement = ph.getRef(); if (partElement instanceof MPart) { MPart part = (MPart) partElement; if (part.getIconURI() == null) { MPartDescriptor desc = getPartDescriptor(part.getElementId()); if (desc != null) { part.setIconURI(desc.getIconURI()); } } } } if (ph.getRef() == null) { nullRefList.add(ph); } } return nullRefList; }
String imageURI = thePart.getIconURI(); thePart.setIconURI(null); thePart.setIconURI(imageURI);
String imageURI = thePart.getIconURI(); thePart.setIconURI(null); thePart.setIconURI(imageURI);
part.setTooltip(desc.getLocalizedTooltip()); if (part.getIconURI() == null) { part.setIconURI(desc.getIconURI());