@Override public boolean canDrop(MUIElement dragElement, DnDInfo info) { // We only except stack elements and whole stacks if (!(dragElement instanceof MStackElement) && !(dragElement instanceof MPartStack)) return false; // We have to be over a stack ourselves if (!(info.curElement instanceof MPartStack)) return false; MPartStack stack = (MPartStack) info.curElement; // We only work for CTabFolders if (!(stack.getWidget() instanceof CTabFolder)) return false; // We can't drop stacks onto itself if (stack == dragElement) return false; // only allow dropping into the the area Rectangle areaRect = getTabAreaRect((CTabFolder) stack.getWidget()); boolean inArea = areaRect.contains(info.cursorPos); if (inArea) { tabArea = areaRect; dropStack = (MPartStack) info.curElement; dropCTF = (CTabFolder) dropStack.getWidget(); createInsertRects(); } return inArea; }
private void updateNonFocusState(int event, MWindow win) { MPerspective perspective = modelService.getActivePerspective(win); if (perspective == null) { return; } List<MPartStack> stacks = modelService.findElements(perspective, null, MPartStack.class, Arrays.asList(CSSConstants.CSS_ACTIVE_CLASS)); if (stacks.isEmpty()) { return; } MPartStack stack = stacks.get(0); int tagsCount = stack.getTags().size(); boolean hasNonFocusTag = stack.getTags().contains( CSSConstants.CSS_NO_FOCUS_CLASS); if (event == SWT.Activate && hasNonFocusTag) { stack.getTags().remove(CSSConstants.CSS_NO_FOCUS_CLASS); } else if (event == SWT.Deactivate && !hasNonFocusTag) { stack.getTags().add(CSSConstants.CSS_NO_FOCUS_CLASS); } if (tagsCount != stack.getTags().size()) { setCSSInfo(stack, stack.getWidget()); } }
if (!(stack.getWidget() instanceof CTabFolder)) { return false; Rectangle areaRect = getTabAreaRect((CTabFolder) stack.getWidget()); boolean inArea = areaRect.contains(info.cursorPos); if (inArea) { tabArea = areaRect; dropStack = (MPartStack) info.curElement; dropCTF = (CTabFolder) dropStack.getWidget();
private CTabFolder getCTFFor(MUIElement element) { if (element instanceof MArea) { if (element.getWidget() instanceof CTabFolder) return (CTabFolder) element.getWidget(); List<MPartStack> stacks = modelService.findElements(element, null, MPartStack.class, null); for (MPartStack stack : stacks) { if (stack.getWidget() instanceof CTabFolder) return (CTabFolder) stack.getWidget(); } } else if (element.getWidget() instanceof CTabFolder) return (CTabFolder) element.getWidget(); else if (element instanceof MPlaceholder) { MPlaceholder ph = (MPlaceholder) element; if (ph.getRef() instanceof MArea) { return getCTFFor(ph.getRef()); } } return null; }
private CTabFolder getCTFFor(MUIElement element) { if (element instanceof MArea) { if (element.getWidget() instanceof CTabFolder) { return (CTabFolder) element.getWidget(); } List<MPartStack> stacks = modelService.findElements(element, null, MPartStack.class); for (MPartStack stack : stacks) { if (stack.getWidget() instanceof CTabFolder) { return (CTabFolder) stack.getWidget(); } } } else if (element.getWidget() instanceof CTabFolder) { return (CTabFolder) element.getWidget(); } else if (element instanceof MPlaceholder) { MPlaceholder ph = (MPlaceholder) element; if (ph.getRef() instanceof MArea) { return getCTFFor(ph.getRef()); } } return null; }
if (!stack.isVisible() || !(stack.getWidget() instanceof CTabFolder)) { return false; CTabFolder ctf = (CTabFolder) stack.getWidget(); if (ctf.isDisposed()) { return false; if (candidateStack.getWidget() instanceof CTabFolder) { CTabFolder ctf = (CTabFolder) (candidateStack.getWidget()); trackRect = ctf.getClientArea(); trackRect = ctf.getDisplay().map(ctf, null, trackRect);
EModelService.PRESENTATION); for (MPartStack theStack : stacks) { if (theStack.getWidget() != null) {
EModelService.PRESENTATION); for (MPartStack theStack : stacks) { if (theStack.getWidget() != null && theStack.getTags().contains(MINIMIZED) && theStack.getTags().contains(MINIMIZED_BY_ZOOM)) { theStack.getTags().remove(MINIMIZED);
/** * @param dragElement */ private void showFrame(MUIElement dragElement) { CTabFolder ctf = (CTabFolder) dropStack.getWidget(); CTabItem[] items = ctf.getItems(); CTabItem item = null; for (CTabItem tabItem : items) { if (tabItem.getData(AbstractPartRenderer.OWNING_ME) == dragElement) { item = tabItem; break; } } Rectangle bounds = item.getBounds(); bounds = Display.getCurrent().map(dropCTF, null, bounds); Rectangle outerBounds = new Rectangle(bounds.x - 3, bounds.y - 3, bounds.width + 6, bounds.height + 6); dndManager.frameRect(outerBounds); }
/** * @param dragElement */ private void showFrame(MUIElement dragElement) { CTabFolder ctf = (CTabFolder) dropStack.getWidget(); CTabItem[] items = ctf.getItems(); CTabItem item = null; for (int i = 0; i < items.length; i++) { if (items[i].getData(AbstractPartRenderer.OWNING_ME) == dragElement) { item = items[i]; break; } } Rectangle bounds = item.getBounds(); bounds = Display.getCurrent().map(dropCTF, null, bounds); Rectangle outerBounds = new Rectangle(bounds.x - 3, bounds.y - 3, bounds.width + 6, bounds.height + 6); dndManager.frameRect(outerBounds); }
dropCTF = (CTabFolder) dropStack.getWidget();
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(); } }
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, null); 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.getParent().layout(true, true); } }
for (MPartStack stack : stacks) { if (stack.isToBeRendered() && stack.getWidget() instanceof CTabFolder) { CTabFolder stackCTF = (CTabFolder) stack.getWidget(); if (stackCTF.getMinimizeVisible() || stackCTF.getMaximizeVisible()) { CTabFolder curCTF = (CTabFolder) curStack.getWidget(); ctf.setMinimizeVisible(curCTF.getMinimizeVisible()); ctf.setMaximizeVisible(curCTF.getMaximizeVisible());
for (MPartStack stack : stacks) { if (stack.isToBeRendered() && stack.getWidget() instanceof CTabFolder) { CTabFolder stackCTF = (CTabFolder) stack.getWidget(); if (stackCTF.getMinimizeVisible() || stackCTF.getMaximizeVisible()) { CTabFolder curCTF = (CTabFolder) curStack.getWidget(); ctf.setMinimizeVisible(curCTF.getMinimizeVisible()); ctf.setMaximizeVisible(curCTF.getMaximizeVisible());