@Override public void dragStart(DnDInfo info) { super.dragStart(info); if (dragElement instanceof MToolControl) { MToolControl tc = (MToolControl) dragElement; if (tc.getObject() instanceof TrimStack) { TrimStack ts = (TrimStack) tc.getObject(); ts.showStack(false); } } if (dropAgent == null) attachToCursor(info); }
@Override public void dragStart(DnDInfo info) { super.dragStart(info); if (dragElement instanceof MToolControl) { MToolControl tc = (MToolControl) dragElement; if (tc.getObject() instanceof TrimStack) { TrimStack ts = (TrimStack) tc.getObject(); ts.showStack(false); } } if (dropAgent == null) { attachToCursor(info); } }
@Override public void mouseDown(MouseEvent e) { // HACK! If this is an empty stack treat it as though it was the editor area // and tear down any open trim stacks (see bug 384814) CTabFolder ctf = (CTabFolder) e.widget; MUIElement element = (MUIElement) ctf.getData(AbstractPartRenderer.OWNING_ME); if (element instanceof MPartStack && ctf.getItemCount() == 0) { MWindow window = modelService.getTopLevelWindowFor(element); if (window != null) { List<MToolControl> tcList = modelService.findElements(window, null, MToolControl.class, null); for (MToolControl tc : tcList) { if (tc.getObject() instanceof TrimStack) { TrimStack ts = (TrimStack) tc.getObject(); ts.showStack(false); } } } } }
public void mouseDown(MouseEvent e) { // HACK! If this is an empty stack treat it as though it was the editor area // and tear down any open trim stacks (see bug 384814) CTabFolder ctf = (CTabFolder) e.widget; MUIElement element = (MUIElement) ctf.getData(AbstractPartRenderer.OWNING_ME); if (element instanceof MPartStack && ctf.getItemCount() == 0) { MWindow window = modelService.getTopLevelWindowFor(element); if (window != null) { List<MToolControl> tcList = modelService.findElements(window, null, MToolControl.class, null); for (MToolControl tc : tcList) { if (tc.getObject() instanceof TrimStack) { TrimStack ts = (TrimStack) tc.getObject(); ts.showStack(false); } } } } }
@Inject @Optional private void subscribeTopicTagsChanged( @UIEventTopic(UIEvents.ApplicationElement.TOPIC_TAGS) org.osgi.service.event.Event event) { Object changedObj = event.getProperty(EventTags.ELEMENT); if (!(changedObj instanceof MToolControl)) { return; } final MToolControl changedElement = (MToolControl) changedObj; if (changedElement.getObject() != this) { return; } if (UIEvents.isREMOVE(event)) { if (UIEvents.contains(event, UIEvents.EventTags.OLD_VALUE, MINIMIZED_AND_SHOWING)) { showStack(false); } } }
String trimId = getTrimId(element, MinMaxAddonUtil.getWindowFor(element)); MToolControl trimStack = (MToolControl) modelService.find(trimId, window); if (trimStack == null || trimStack.getObject() == null) { if (trimStack == null || trimStack.getObject() == null) { if (element instanceof MPerspectiveStack) { element.setVisible(true); TrimStack ts = (TrimStack) trimStack.getObject(); ts.restoreStack();
if (tc.getObject() instanceof TrimStack && tc.getElementId().contains(perspId)) { tc.setVisible(true); String perspId = '(' + oldPersp.getElementId() + ')'; for (MToolControl tc : tcList) { if (tc.getObject() instanceof TrimStack && tc.getElementId().contains(perspId)) { TrimStack ts = (TrimStack) tc.getObject(); ts.showStack(false); tc.setVisible(false);
void restore(MUIElement element) { if (isEmptyPerspectiveStack(element)) { element.setVisible(true); element.getTags().remove(MINIMIZED_BY_ZOOM); return; } MWindow window = modelService.getTopLevelWindowFor(element); String trimId = element.getElementId() + getMinimizedElementSuffix(element); MToolControl trimStack = (MToolControl) modelService.find(trimId, window); if (trimStack == null) return; TrimStack ts = (TrimStack) trimStack.getObject(); ts.restoreStack(); adjustCTFButtons(element); element.getTags().remove(MINIMIZED_BY_ZOOM); }
@Override protected Control createControl(Composite parent) { IEclipseContext localContext = EclipseContextFactory.create(); final Composite newComposite = new Composite(parent, SWT.NONE); newComposite.setLayout(new FillLayout()); localContext.set(Composite.class.getName(), newComposite); localContext.set(MToolControl.class.getName(), model); final IEclipseContext parentContext = modelService .getContainingContext(model); if (model.getObject() == null) { final Object tcImpl = contribFactory.create( model.getContributionURI(), parentContext, localContext); model.setObject(tcImpl); newComposite.addDisposeListener(new DisposeListener() { public void widgetDisposed(DisposeEvent e) { ContextInjectionFactory.uninject(tcImpl, parentContext); model.setObject(null); } }); } model.setWidget(newComposite); newComposite.setData(AbstractPartRenderer.OWNING_ME, model); newComposite.setData(this); return newComposite; }
/** * Install the Intro Launch Bar into the provided window. * * @param window * the window to host the launch bar * @param modelRoot * the current intro configuration, with pages * @param element * the launch bar configuration * @return the launch bar instance */ public static IntroLaunchBar create(IWorkbenchWindow window, IntroModelRoot modelRoot, IntroLaunchBarElement element) { EModelService modelService = window.getService(EModelService.class); MTrimmedWindow trimmedWindow = window.getService(MTrimmedWindow.class); MToolControl trimControl = modelService.createModelElement(MToolControl.class); trimControl.setElementId(LAUNCHBAR_ID); trimControl.setContributionURI(BUNDLECLASS_URI); // Must record sufficient information so as to be able to obtain the // launch configuration on workspace restart trimControl.getPersistedState().put(INTRO_CONFIG_ID, modelRoot.getId()); trimControl.getPersistedState().put(LAST_PAGE_ID, modelRoot.getCurrentPageId()); trimControl.getTags().add(IPresentationEngine.DRAGGABLE); MTrimBar bar = modelService.getTrim(trimmedWindow, determineLocation(element)); bar.getChildren().add(trimControl); // should now be rendered return (IntroLaunchBar) trimControl.getObject(); }
@Override protected Control createControl(Composite parent) { IEclipseContext localContext = EclipseContextFactory.create(); final Composite newComposite = new Composite(parent, SWT.NONE); newComposite.setLayout(new FillLayout()); localContext.set(Composite.class, newComposite); localContext.set(MToolControl.class, model); final IEclipseContext parentContext = modelService.getContainingContext(model); if (model.getObject() == null) { final Object tcImpl = contribFactory.create(model.getContributionURI(), parentContext, localContext); model.setObject(tcImpl); newComposite.addDisposeListener(e -> { ContextInjectionFactory.uninject(tcImpl, parentContext); model.setObject(null); }); } model.setWidget(newComposite); newComposite.setData(AbstractPartRenderer.OWNING_ME, model); newComposite.setData(this); return newComposite; }
@Override public Object execute(ExecutionEvent executionEvent) { final IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindow(executionEvent); if (window == null) { return null; } MWindow mWindow = ((WorkbenchWindow) window).getModel(); EModelService modelService = mWindow.getContext().get(EModelService.class); MToolControl searchField = (MToolControl) modelService.find("SearchField", mWindow); //$NON-NLS-1$ if (searchField != null && searchField.isVisible()) { Control control = (Control) searchField.getWidget(); // the workbench configurer may override visibility; if so, // focus should not change if (control != null && control.isVisible()) { Control previousFocusControl = control.getDisplay().getFocusControl(); control.setFocus(); SearchField field = (SearchField) searchField.getObject(); field.activate(previousFocusControl); return null; } } // open the original/legacy QuickAccess Dialog if the toolbars are // hidden or if the search field isn't available (maybe because the // dialog is explicitly wanted) displayQuickAccessDialog(window, executionEvent.getCommand()); return null; }