int elementIndex = dropStack.getChildren().indexOf(dragElement); if (elementIndex != -1 && !(dragElement instanceof MPartStack)) { dropIndex = dropStack.getChildren().size(); dragElement.getParent().getChildren().remove(dragElement); if (dropIndex >= 0 && dropIndex < dropStack.getChildren().size()) dropStack.getChildren().add(dropIndex, (MStackElement) dragElement); else dropStack.getChildren().add((MStackElement) dragElement); dropStack.setSelectedElement((MStackElement) dragElement); } else { MPartStack stack = (MPartStack) dragElement; MStackElement curSel = stack.getSelectedElement(); List<MStackElement> kids = stack.getChildren(); while (kids.size() > 0) { MStackElement lastChild = kids.remove(kids.size() - 1); if (dropIndex >= 0 && dropIndex < dropStack.getChildren().size()) dropStack.getChildren().add(dropIndex, lastChild); else dropStack.getChildren().add(lastChild); dropStack.setSelectedElement(curSel);
editorStack.getTags().add(ModeledPageLayout.EDITOR_STACK_TAG); editorArea.getChildren().add(editorStack); tags.add(editorReader.getType()); MPartStack stack = (MPartStack) modelService.find(editorReader.getStackId(), editorArea); stack.getChildren().add(editor); if (editorReader.isSelected()) { stack.setSelectedElement(editor); if (editorStack.getChildren().size() < 2) { continue; List<MStackElement> stackChildren = editorStack.getChildren(); List<MStackElement> originalOrder = new ArrayList<>(stackChildren); MStackElement selectedElement = editorStack.getSelectedElement(); stackChildren.clear(); for (int element : partOrder) { editorStack.setSelectedElement(selectedElement);
private void synchCTFState(MArea areaModel) { List<MPartStack> stacks = modelService.findElements(areaModel, null, MPartStack.class, null); int count = 0; for (MPartStack stack : stacks) { if (stack.isToBeRendered()) count++; } // If there's more than one stack visible we use a CTF if (count > 1) ensureCTF(areaModel); else ensureComposite(areaModel); }
private void hideEmptyStacks() { for (MPartStack stack : modelService.findElements(perspective, null, MPartStack.class)) { if (ID_EDITOR_AREA.equals(stack.getElementId()) || ID_EDITOR_AREA.equals(stack.getParent().getElementId())) { continue; } if (!hasRenderableContent(stack)) { stack.setToBeRendered(false); } } }
@Override public void addStandaloneViewPlaceholder(String viewId, int relationship, float ratio, String refId, boolean showTitle) { MUIElement newElement = insertView(viewId, relationship, ratio, refId, false, showTitle); if (newElement instanceof MPartStack) { MPartStack stack = (MPartStack) newElement; stack.getTags().add(IPresentationEngine.STANDALONE); stack.getChildren().get(0).getTags().add(IPresentationEngine.NO_MOVE); } else { newElement.getTags().add(IPresentationEngine.STANDALONE); } }
private boolean isOnTop() { MUIElement parentModel = getParentModel(); if (parentModel.getRenderer() instanceof StackRenderer) { MPartStack stack = (MPartStack) parentModel; if (stack.getSelectedElement() == part) return true; if (stack.getSelectedElement() instanceof MPlaceholder) { MPlaceholder ph = (MPlaceholder) stack.getSelectedElement(); return ph.getRef() == part; } } return true; }
if (toInsert.getTags().contains(IPresentationEngine.MINIMIZED)) { toInsert.getTags().remove(IPresentationEngine.MINIMIZED); toInsert.getParent().getChildren().remove(toInsert); } else { toInsert.getChildren().add(stackElement); toInsert.setSelectedElement(stackElement);
null, EModelService.OUTSIDE_PERSPECTIVE); for (MPartStack gStack : globalStacks) { if (gStack == element || !gStack.isToBeRendered()) continue; if (gStack.getWidget() != null && !gStack.getTags().contains(MINIMIZED)) { elementsToMinimize.add(gStack); MPartStack.class, null, EModelService.PRESENTATION); for (MPartStack theStack : stacks) { if (theStack == element || !theStack.isToBeRendered()) continue; if (loc != EModelService.IN_SHARED_AREA && theStack.getWidget() != null && theStack.isVisible() && !theStack.getTags().contains(MINIMIZED)) { elementsToMinimize.add(theStack);
void restoreStack() { showStack(false); minimizedElement.setVisible(true); minimizedElement.getTags().remove(IPresentationEngine.MINIMIZED); // Activate the part that is being brought up... if (minimizedElement instanceof MPartStack) { MPartStack theStack = (MPartStack) minimizedElement; MStackElement curSel = theStack.getSelectedElement(); Control ctrl = (Control) minimizedElement.getWidget(); // Hack for elems that are lazy initialized if (ctrl instanceof CTabFolder && ((CTabFolder) ctrl).getSelection() == null) { theStack.setSelectedElement(null); theStack.setSelectedElement(curSel); } } toolControl.setToBeRendered(false); if (hostPane != null && !hostPane.isDisposed()) { hostPane.dispose(); } hostPane = null; }
private void ensureComposite(MArea areaModel) { if (areaModel.getWidget() instanceof CTabFolder) { CTabFolder ctf = (CTabFolder) areaModel.getWidget(); CTabItem cti = ctf.getItem(0); Composite innerComp = (Composite) cti.getControl(); innerComp.setParent(ctf.getParent()); cti.setControl(null); // OK now copy over the min/max state of the area stack to the // remaining part stack List<MPartStack> stacks = modelService.findElements(areaModel, null, MPartStack.class); for (MPartStack stack : stacks) { if (stack.isToBeRendered() && stack.getWidget() instanceof CTabFolder) { CTabFolder stackCTF = (CTabFolder) stack.getWidget(); stackCTF.setMinimizeVisible(ctf.getMinimizeVisible()); stackCTF.setMaximizeVisible(ctf.getMaximizeVisible()); stackCTF.setMinimized(ctf.getMinimized()); stackCTF.setMaximized(ctf.getMaximized()); } } ctf.setData(AbstractPartRenderer.OWNING_ME, null); ctf.dispose(); bindWidget(areaModel, innerComp); innerComp.setVisible(true); innerComp.requestLayout(); } }
activeStack.getChildren().add(providedPart); } else { if (sharedStacks.size() > 0) { for (MPartStack stack : sharedStacks) { if (stack.isToBeRendered()) { stack.getChildren().add(providedPart); break;
private List<MStackElement> getRenderedViews(MPartStack stack) { List<MStackElement> renderedViews = new ArrayList<>(); for (MStackElement element : stack.getChildren()) { if (element.isToBeRendered()) { renderedViews.add(element); } } return renderedViews; }
private void populatePartStack(MPartStack stack, InfoReader info) { for (PageReader page : info.getPages()) { addPlaceholderToStack(stack, page.getId(), page.getLabel()); } MStackElement selectedElement = (MStackElement) modelService.find(info.getActivePageId(), stack); if (selectedElement != null) { selectedElement.setToBeRendered(true); selectedElement.setVisible(true); } stack.setSelectedElement(selectedElement); // restore order of views in the stacks List<MStackElement> renderedViews = getRenderedViews(stack); if (renderedViews.size() < 2) { return; } int[] partOrder = info.getPartOrder(); List<MStackElement> stackChildren = stack.getChildren(); // unexpected situation - don't order if (partOrder == null || partOrder.length != renderedViews.size()) { return; } List<MStackElement> originalOrder = new ArrayList<>(renderedViews); stackChildren.clear(); for (int element : partOrder) { stackChildren.add(originalOrder.get(element)); } originalOrder.removeAll(stackChildren); stackChildren.addAll(originalOrder); }
MStackElement selectedElement = parent.getSelectedElement(); if ((selectedElement != null) && (list.contains(selectedElement))) { list.remove(selectedElement); parent.getChildren().removeAll(removeOnHideList);
if (parentElement instanceof MPartStack) { MPartStack partStack = (MPartStack) parentElement; if (partStack.getSelectedElement() == sElement && !partStack.getTags().contains(IPresentationEngine.MINIMIZED)) { firePartVisible(part); } else {
private boolean isIntroMaximized(ViewIntroAdapterPart introAdapter) { MPartStack introStack = getIntroStack(introAdapter); if (introStack == null) return false; return introStack.getTags().contains(IPresentationEngine.MAXIMIZED); }
if (dragParent == dropStack && dropStack.getChildren().size() == 2) return false; weight = dropStack.getContainerData(); dropCTF = (CTabFolder) dropStack.getWidget();
editorStack.getTags().add("EditorStack"); //$NON-NLS-1$ editorStack.setElementId("org.eclipse.e4.primaryDataStack"); //$NON-NLS-1$ sharedArea.getChildren().add(editorStack); sharedArea.setElementId(ph.getElementId());
stickyFolder.setContainerData("2500"); //$NON-NLS-1$ stickyFolder.setElementId("stickyFolderRight"); //$NON-NLS-1$ stickyFolder.setToBeRendered(false); MStackElement viewModel = ModeledPageLayout.createViewModel(application, stickyView.getId(), false, this, partService, true); stickyFolder.getChildren().add(viewModel);