@Override public boolean isEmpty() { return topTrim.getChildren().isEmpty(); }
private boolean isAfter(Control trimCtrl, DnDInfo info) { Rectangle bounds = trimCtrl.getBounds(); bounds = trimCtrl.getDisplay().map(trimCtrl.getParent(), null, bounds); Point center = new Point(bounds.x + (bounds.width / 2), bounds.y + (bounds.height / 2)); boolean horizontal = trimBar.getSide() == SideValue.TOP || trimBar.getSide() == SideValue.BOTTOM; boolean after = horizontal ? info.cursorPos.x > center.x : info.cursorPos.y > center.y; return after; }
private int getFixedSides() { Composite trimComp = (Composite) bar.getWidget(); Rectangle trimBounds = trimComp.getBounds(); Point trimCenter = new Point(trimBounds.width / 2, trimBounds.height / 2); // adjusted to // (0,0) Control trimCtrl = (Control) toolControl.getWidget(); Rectangle ctrlBounds = trimCtrl.getBounds(); Point ctrlCenter = new Point(ctrlBounds.x + (ctrlBounds.width / 2), ctrlBounds.y + (ctrlBounds.height / 2)); if (bar.getSide() == SideValue.LEFT) { int verticalValue = ctrlCenter.y < trimCenter.y ? SWT.TOP : SWT.BOTTOM; return SWT.LEFT | verticalValue; } else if (bar.getSide() == SideValue.RIGHT) { int verticalValue = ctrlCenter.y < trimCenter.y ? SWT.TOP : SWT.BOTTOM; return SWT.RIGHT | verticalValue; } else if (bar.getSide() == SideValue.TOP) { int horizontalValue = ctrlCenter.x < trimCenter.x ? SWT.LEFT : SWT.RIGHT; return SWT.TOP | horizontalValue; } else if (bar.getSide() == SideValue.BOTTOM) { int horizontalValue = ctrlCenter.x < trimCenter.x ? SWT.LEFT : SWT.RIGHT; return SWT.BOTTOM | horizontalValue; } return SWT.BOTTOM | SWT.RIGHT; }
/** * @param element * the trimBar to be cleaned up */ protected void cleanUp(MTrimBar element) { for (MTrimElement child : element.getPendingCleanup()) { element.getChildren().remove(child); } element.getPendingCleanup().clear(); } }
private void enableCodeFocus(MTrimmedWindow window, EModelService modelService) { List<MTrimBar> tcList = modelService.findElements(window, null, MTrimBar.class); for (MTrimBar tc : tcList) { // remember the visibility state in case some trimbars are already // not visible tc.getPersistedState().put(INITIAL_TRIM_VISIBILIY, String.valueOf(tc.isVisible())); tc.setVisible(false); } }
private void disableCodeFocus(MTrimmedWindow window, EModelService modelService) { List<MTrimBar> tcList = modelService.findElements(window, null, MTrimBar.class); for (MTrimBar tc : tcList) { boolean visible = true; String initialTrimVisibility = tc.getPersistedState().get(INITIAL_TRIM_VISIBILIY); if (initialTrimVisibility != null && !initialTrimVisibility.isEmpty()) { visible = Boolean.parseBoolean(initialTrimVisibility); tc.getPersistedState().remove(INITIAL_TRIM_VISIBILIY); } tc.setVisible(visible); } }
if (index == -1 || index >= bar.getChildren().size()) bar.getChildren().add(trimStack); else bar.getChildren().add(index, trimStack); bar.setVisible(true); if (bar.getWidget() == null) { bar.setToBeRendered(true);
private String getStackTrimLoc(MPartStack stack, String perspIdStr) { MWindow stackWin = modelService.getTopLevelWindowFor(stack);// getContainingWindow(stack); MUIElement tcElement = modelService.find(stack.getElementId() + perspIdStr, stackWin); if (tcElement == null) return ""; //$NON-NLS-1$ MTrimBar bar = (MTrimBar) ((MUIElement) tcElement.getParent()); int sideVal = bar.getSide().getValue(); int index = bar.getChildren().indexOf(tcElement); return stack.getElementId() + ' ' + sideVal + ' ' + index + "#"; //$NON-NLS-1$ } };
@Override public boolean changed(IEclipseContext context) { if (!trimModel.isToBeRendered() || !trimModel.isVisible() || trimModel.getWidget() == null) { return false; } boolean rc = ContributionsAnalyzer.isVisible( contribution, eContext); for (MTrimElement child : toRemove) { child.setToBeRendered(rc); } return true; } });
public static boolean processAddition(final MTrimBar trimBar, MTrimContribution contribution, List<MTrimElement> contributions, HashSet<String> existingToolbarIds) { int idx = getIndex(trimBar, contribution.getPositionInParent()); if (idx == -1) { return false; } for (MTrimElement item : contribution.getChildren()) { if (item instanceof MToolBar && existingToolbarIds.contains(item.getElementId())) { // skip this, it's already there continue; } MTrimElement copy = (MTrimElement) EcoreUtil.copy((EObject) item); if (DEBUG) { trace("addTrimContribution " + copy, trimBar.getWidget(), trimBar); //$NON-NLS-1$ } trimBar.getChildren().add(idx++, copy); contributions.add(copy); if (copy instanceof MToolBar && copy.getElementId() != null) { existingToolbarIds.add(copy.getElementId()); } } return true; }
private void createTrim(MUIElement element, MPerspective perspective) { if (!(window instanceof MTrimmedWindow)) { return; } String trimStr = perspective.getPersistedState().get("trims"); //$NON-NLS-1$ MTrimmedWindow win = (MTrimmedWindow) window; // Is there already a TrimControl there ? String trimId = element.getElementId() + getMinimizedElementSuffix(perspective); MToolControl trimStack = (MToolControl) modelService.find(trimId, window); if (trimStack == null) { trimStack = MenuFactoryImpl.eINSTANCE.createToolControl(); trimStack.setElementId(trimId); trimStack.setContributionURI(TrimStack.CONTRIBUTION_URI); trimStack.getTags().add("TrimStack"); //$NON-NLS-1$ // Check if we have a cached location MTrimBar bar = getBarForElement(element, win, trimStr); int index = getIndex(element, trimStr); if (index == -1 || index >= bar.getChildren().size()) bar.getChildren().add(trimStack); else bar.getChildren().add(index, trimStack); bar.setVisible(true); } else { // get the parent trim bar, see bug 320756 MUIElement parent = trimStack.getParent(); parent.setVisible(true); trimStack.setToBeRendered(true); } }
@Override public MTrimBar getTrim(MTrimmedWindow window, SideValue sv) { List<MTrimBar> bars = window.getTrimBars(); for (MTrimBar bar : bars) { if (bar.getSide() == sv) { return bar; } } // Didn't find a trim bar for the side, make one MTrimBar newBar = BasicFactoryImpl.eINSTANCE.createTrimBar(); // Assign default ids to the trim bars to match legacy eclipse if (sv == SideValue.TOP) { newBar.setElementId("org.eclipse.ui.main.menu"); //$NON-NLS-1$ } else if (sv == SideValue.BOTTOM) { newBar.setElementId("org.eclipse.ui.trim.status"); //$NON-NLS-1$ } else if (sv == SideValue.LEFT) { newBar.setElementId("org.eclipse.ui.trim.vertical1"); //$NON-NLS-1$ } else if (sv == SideValue.RIGHT) { newBar.setElementId("org.eclipse.ui.trim.vertical2"); //$NON-NLS-1$ } newBar.setSide(sv); window.getTrimBars().add(newBar); return newBar; }
boolean hidden = !topTrim.isVisible(); if (hidden) { topTrim.setVisible(true); topTrim.setToBeRendered(true); if (hidden) { topTrim.setVisible(false);
synchronized private void layoutTrim(MTrimBar trimBar) { Composite comp = (Composite) trimBar.getWidget(); if (comp == null || comp.isDisposed()) return; if (layoutJob == null) { layoutJob = new LayoutJob(); layoutJob.barsToLayout.add(trimBar); comp.getDisplay().asyncExec(layoutJob); } else if (!layoutJob.barsToLayout.contains(trimBar)) { layoutJob.barsToLayout.add(trimBar); } }
if (tm.isToBeRendered() && isChildRenderedAndVisible(tm)) { WLayoutedWidget<MTrimBar> trimWidget = engineCreateWidget(tm); if (trimWidget != null) { trimWidget.addStyleClasses(tm.getSide().name()); switch (tm.getSide()) { case TOP: windowWidget.setTopTrim(trimWidget);
if (!trimBar.isVisible()) { trimBar.setVisible(true); trimBar.setVisible(false);
trimBar.updateLocalization(); updateLocalization(trimBar.getChildren());
public CoolBarToTrimManager(MApplication app, MTrimmedWindow window, List<MTrimElement> workbenchTrimElements, IRendererFactory rf) { application = app; this.window = window; rendererFactory = rf; this.workbenchTrimElements = workbenchTrimElements; toolbarExtensions = new ArrayList<>(); modelService = window.getContext().get(EModelService.class); topTrim = (MTrimBar) modelService.find(MAIN_TOOLBAR_ID, window); if (topTrim == null) { topTrim = modelService.getTrim(window, SideValue.TOP); topTrim.setElementId(MAIN_TOOLBAR_ID); } topTrim.setToBeRendered(false); MToolBar mToolBar = modelService.createModelElement(MToolBar.class); renderer = (ToolBarManagerRenderer) rendererFactory.getRenderer(mToolBar, null); }
private void updateLayoutDataForContents() { MTrimBar topTrim = getTopTrim(); if (topTrim != null) { topTrim.setVisible(isToolbarVisible()); getShell().layout(); } }
@Override public void dragEnter(MUIElement dragElement, DnDInfo info) { super.dragEnter(dragElement, info); MTrimmedWindow window = (MTrimmedWindow) dndManager.getDragWindow(); trimBar = dndManager.getModelService().getTrim(window, side); trimBar.setToBeRendered(true); dragElement.setVisible(true); track(dragElement, info); dndManager.setCursor(Display.getCurrent().getSystemCursor(SWT.CURSOR_HAND)); }