Bug 529935 - Modernize workbench addons bundle
* Lambda conversion.
* Remove redundant type information.
Change-Id: Ief0862d01fc503a5832ef9cd97dc36c83f2c6a2d
Signed-off-by: Alexander Kurtakov <akurtako@redhat.com>
diff --git a/bundles/org.eclipse.e4.ui.workbench.addons.swt/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.e4.ui.workbench.addons.swt/.settings/org.eclipse.jdt.core.prefs
index d71603a..3b4af1e 100644
--- a/bundles/org.eclipse.e4.ui.workbench.addons.swt/.settings/org.eclipse.jdt.core.prefs
+++ b/bundles/org.eclipse.e4.ui.workbench.addons.swt/.settings/org.eclipse.jdt.core.prefs
@@ -19,8 +19,11 @@
org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=
org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
@@ -32,6 +35,7 @@
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.doc.comment.support=enabled
org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
+org.eclipse.jdt.core.compiler.problem.APILeak=warning
org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
@@ -80,20 +84,22 @@
org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning
org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
org.eclipse.jdt.core.compiler.problem.nullReference=error
org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning
org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
@@ -102,12 +108,16 @@
org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning
org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=disabled
org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning
+org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled
+org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=info
org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
diff --git a/bundles/org.eclipse.e4.ui.workbench.addons.swt/src/org/eclipse/e4/ui/workbench/addons/cleanupaddon/CleanupAddon.java b/bundles/org.eclipse.e4.ui.workbench.addons.swt/src/org/eclipse/e4/ui/workbench/addons/cleanupaddon/CleanupAddon.java
index 6280776..6f37dc6 100644
--- a/bundles/org.eclipse.e4.ui.workbench.addons.swt/src/org/eclipse/e4/ui/workbench/addons/cleanupaddon/CleanupAddon.java
+++ b/bundles/org.eclipse.e4.ui.workbench.addons.swt/src/org/eclipse/e4/ui/workbench/addons/cleanupaddon/CleanupAddon.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2016 IBM Corporation and others.
+ * Copyright (c) 2011, 2018 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -85,62 +85,59 @@
// Stall the removal to handle cases where the container is only
// transiently empty
- Display.getCurrent().asyncExec(new Runnable() {
- @Override
- public void run() {
- // Remove it from the display if no visible children
- int tbrCount = modelService.toBeRenderedCount(container);
+ Display.getCurrent().asyncExec(() -> {
+ // Remove it from the display if no visible children
+ int tbrCount = modelService.toBeRenderedCount(container);
- // Cache the value since setting the TBR may change the
- // result
- boolean lastStack = isLastEditorStack(container);
- if (tbrCount == 0 && !lastStack) {
+ // Cache the value since setting the TBR may change the
+ // result
+ boolean lastStack = isLastEditorStack(container);
+ if (tbrCount == 0 && !lastStack) {
+ container.setToBeRendered(false);
+ }
+
+ // Remove it from the model if it has no children at all
+ MElementContainer<?> lclContainer = container;
+ if (lclContainer.getChildren().size() == 0) {
+ MElementContainer<MUIElement> parent = container.getParent();
+ if (parent != null && !lastStack) {
container.setToBeRendered(false);
+ parent.getChildren().remove(container);
+ } else if (container instanceof MWindow) {
+ // Must be a Detached Window
+ MUIElement eParent = (MUIElement) ((EObject) container).eContainer();
+ if (eParent instanceof MPerspective) {
+ ((MPerspective) eParent).getWindows().remove(container);
+ } else if (eParent instanceof MWindow) {
+ ((MWindow) eParent).getWindows().remove(container);
+ }
}
+ } else if (container.getChildren().size() == 1 && container instanceof MPartSashContainer) {
+ // if a sash container has only one element then remove
+ // it and move
+ // its child up to where it used to be
+ MUIElement theChild = container.getChildren().get(0);
+ MElementContainer<MUIElement> parentContainer = container.getParent();
+ if (parentContainer != null) {
+ int index = parentContainer.getChildren().indexOf(container);
- // Remove it from the model if it has no children at all
- MElementContainer<?> lclContainer = container;
- if (lclContainer.getChildren().size() == 0) {
- MElementContainer<MUIElement> parent = container.getParent();
- if (parent != null && !lastStack) {
- container.setToBeRendered(false);
- parent.getChildren().remove(container);
- } else if (container instanceof MWindow) {
- // Must be a Detached Window
- MUIElement eParent = (MUIElement) ((EObject) container).eContainer();
- if (eParent instanceof MPerspective) {
- ((MPerspective) eParent).getWindows().remove(container);
- } else if (eParent instanceof MWindow) {
- ((MWindow) eParent).getWindows().remove(container);
+ // Magic check, are we unwrapping a sash container
+ if (theChild instanceof MPartSashContainer) {
+ if (container.getWidget() instanceof Composite) {
+ Composite theComp = (Composite) container.getWidget();
+ Object tmp = theChild.getWidget();
+ theChild.setWidget(theComp);
+ theComp.setLayout(new SashLayout(theComp, theChild));
+ theComp.setData(AbstractPartRenderer.OWNING_ME, theChild);
+ container.setWidget(tmp);
}
}
- } else if (container.getChildren().size() == 1 && container instanceof MPartSashContainer) {
- // if a sash container has only one element then remove
- // it and move
- // its child up to where it used to be
- MUIElement theChild = container.getChildren().get(0);
- MElementContainer<MUIElement> parentContainer = container.getParent();
- if (parentContainer != null) {
- int index = parentContainer.getChildren().indexOf(container);
- // Magic check, are we unwrapping a sash container
- if (theChild instanceof MPartSashContainer) {
- if (container.getWidget() instanceof Composite) {
- Composite theComp = (Composite) container.getWidget();
- Object tmp = theChild.getWidget();
- theChild.setWidget(theComp);
- theComp.setLayout(new SashLayout(theComp, theChild));
- theComp.setData(AbstractPartRenderer.OWNING_ME, theChild);
- container.setWidget(tmp);
- }
- }
-
- theChild.setContainerData(container.getContainerData());
- container.getChildren().remove(theChild);
- parentContainer.getChildren().add(index, theChild);
- container.setToBeRendered(false);
- parentContainer.getChildren().remove(container);
- }
+ theChild.setContainerData(container.getContainerData());
+ container.getChildren().remove(theChild);
+ parentContainer.getChildren().add(index, theChild);
+ container.setToBeRendered(false);
+ parentContainer.getChildren().remove(container);
}
}
});
@@ -329,13 +326,10 @@
// model)
final MElementContainer<MUIElement> theContainer = container;
if (visCount == 0) {
- Display.getCurrent().asyncExec(new Runnable() {
- @Override
- public void run() {
- int visCount = modelService.countRenderableChildren(theContainer);
- if (!isLastEditorStack(theContainer) && visCount == 0) {
- theContainer.setToBeRendered(false);
- }
+ Display.getCurrent().asyncExec(() -> {
+ int visCount1 = modelService.countRenderableChildren(theContainer);
+ if (!isLastEditorStack(theContainer) && visCount1 == 0) {
+ theContainer.setToBeRendered(false);
}
});
} else {
diff --git a/bundles/org.eclipse.e4.ui.workbench.addons.swt/src/org/eclipse/e4/ui/workbench/addons/dndaddon/DnDManager.java b/bundles/org.eclipse.e4.ui.workbench.addons.swt/src/org/eclipse/e4/ui/workbench/addons/dndaddon/DnDManager.java
index 4540bb0..c98e112 100644
--- a/bundles/org.eclipse.e4.ui.workbench.addons.swt/src/org/eclipse/e4/ui/workbench/addons/dndaddon/DnDManager.java
+++ b/bundles/org.eclipse.e4.ui.workbench.addons.swt/src/org/eclipse/e4/ui/workbench/addons/dndaddon/DnDManager.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2010, 2015 IBM Corporation and others.
+ * Copyright (c) 2010, 2018 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -27,14 +27,9 @@
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CTabFolder;
import org.eclipse.swt.custom.CTabItem;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.DragDetectEvent;
import org.eclipse.swt.events.DragDetectListener;
import org.eclipse.swt.events.KeyEvent;
import org.eclipse.swt.events.KeyListener;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.events.PaintListener;
import org.eclipse.swt.graphics.Cursor;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.Rectangle;
@@ -43,8 +38,6 @@
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Tracker;
import org.osgi.service.event.EventHandler;
@@ -57,8 +50,8 @@
public static final int SIMPLE = 3;
private int feedbackStyle = SIMPLE;
- Collection<DragAgent> dragAgents = new ArrayList<DragAgent>();
- Collection<DropAgent> dropAgents = new ArrayList<DropAgent>();
+ Collection<DragAgent> dragAgents = new ArrayList<>();
+ Collection<DropAgent> dropAgents = new ArrayList<>();
DnDInfo info;
DragAgent dragAgent;
@@ -72,25 +65,22 @@
boolean dragging = false;
private Shell overlayFrame;
- private List<Rectangle> frames = new ArrayList<Rectangle>();
+ private List<Rectangle> frames = new ArrayList<>();
- DragDetectListener dragDetector = new DragDetectListener() {
- @Override
- public void dragDetected(DragDetectEvent e) {
- if (dragging || e.widget.isDisposed()) {
- return;
- }
+ DragDetectListener dragDetector = e -> {
+ if (dragging || e.widget.isDisposed()) {
+ return;
+ }
- info.update(e);
- dragAgent = getDragAgent(info);
- if (dragAgent != null) {
- try {
- dragging = true;
- isModified = (e.stateMask & SWT.MOD1) != 0;
- startDrag();
- } finally {
- dragging = false;
- }
+ info.update(e);
+ dragAgent = getDragAgent(info);
+ if (dragAgent != null) {
+ try {
+ dragging = true;
+ isModified = (e.stateMask & SWT.MOD1) != 0;
+ startDrag();
+ } finally {
+ dragging = false;
}
}
};
@@ -100,8 +90,8 @@
updateOverlay();
}
- private List<Image> images = new ArrayList<Image>();
- private List<Rectangle> imageRects = new ArrayList<Rectangle>();
+ private List<Image> images = new ArrayList<>();
+ private List<Rectangle> imageRects = new ArrayList<>();
protected boolean isModified;
@@ -129,12 +119,7 @@
// Register a 'dragDetect' against any stacks that get created
hookWidgets();
- getDragShell().addDisposeListener(new DisposeListener() {
- @Override
- public void widgetDisposed(DisposeEvent e) {
- dispose();
- }
- });
+ getDragShell().addDisposeListener(e -> dispose());
}
/**
@@ -142,26 +127,22 @@
* specific platform by moving this code into an SWT-specific subclass
*/
private void hookWidgets() {
- EventHandler stackWidgetHandler = new EventHandler() {
- @Override
- public void handleEvent(org.osgi.service.event.Event event) {
- MUIElement element = (MUIElement) event.getProperty(UIEvents.EventTags.ELEMENT);
+ EventHandler stackWidgetHandler = event -> {
+ MUIElement element = (MUIElement) event.getProperty(UIEvents.EventTags.ELEMENT);
- // Only add listeners for stacks in *this* window
- MWindow elementWin = getModelService().getTopLevelWindowFor(element);
- if (elementWin != dragWindow) {
- return;
- }
+ // Only add listeners for stacks in *this* window
+ MWindow elementWin = getModelService().getTopLevelWindowFor(element);
+ if (elementWin != dragWindow) {
+ return;
+ }
- // Listen for drags starting in CTabFolders
- if (element.getWidget() instanceof CTabFolder
- || element.getWidget() instanceof ImageBasedFrame) {
- Control ctrl = (Control) element.getWidget();
+ // Listen for drags starting in CTabFolders
+ if (element.getWidget() instanceof CTabFolder || element.getWidget() instanceof ImageBasedFrame) {
+ Control ctrl = (Control) element.getWidget();
- // Ensure there's only one drag detect listener per ctrl
- ctrl.removeDragDetectListener(dragDetector);
- ctrl.addDragDetectListener(dragDetector);
- }
+ // Ensure there's only one drag detect listener per ctrl
+ ctrl.removeDragDetectListener(dragDetector);
+ ctrl.addDragDetectListener(dragDetector);
}
};
@@ -198,15 +179,12 @@
}
private void track() {
- Display.getCurrent().syncExec(new Runnable() {
- @Override
- public void run() {
- info.update();
- dragAgent.track(info);
+ Display.getCurrent().syncExec(() -> {
+ info.update();
+ dragAgent.track(info);
- // Hack: Spin the event loop
- update();
- }
+ // Hack: Spin the event loop
+ update();
});
}
@@ -234,12 +212,7 @@
}
});
- tracker.addListener(SWT.Move, new Listener() {
- @Override
- public void handleEvent(final Event event) {
- track();
- }
- });
+ tracker.addListener(SWT.Move, event -> track());
// Some control needs to capture the mouse during the drag or
// other controls will interfere with the cursor
@@ -419,14 +392,11 @@
stylingEngine.setClassname(overlayFrame, "DragFeedback"); //$NON-NLS-1$
stylingEngine.style(overlayFrame);
- overlayFrame.addPaintListener(new PaintListener() {
- @Override
- public void paintControl(PaintEvent e) {
- for (int i = 0; i < images.size(); i++) {
- Image image = images.get(i);
- Rectangle iRect = imageRects.get(i);
- e.gc.drawImage(image, iRect.x, iRect.y);
- }
+ overlayFrame.addPaintListener(e -> {
+ for (int i = 0; i < images.size(); i++) {
+ Image image = images.get(i);
+ Rectangle iRect = imageRects.get(i);
+ e.gc.drawImage(image, iRect.x, iRect.y);
}
});
}
@@ -476,13 +446,9 @@
}
private void addResourceDisposeListener(Control control, final Resource resource) {
- control.addDisposeListener(new DisposeListener() {
-
- @Override
- public void widgetDisposed(DisposeEvent e) {
- if (!resource.isDisposed()) {
- resource.dispose();
- }
+ control.addDisposeListener(e -> {
+ if (!resource.isDisposed()) {
+ resource.dispose();
}
});
}
diff --git a/bundles/org.eclipse.e4.ui.workbench.addons.swt/src/org/eclipse/e4/ui/workbench/addons/dndaddon/Overlay.java b/bundles/org.eclipse.e4.ui.workbench.addons.swt/src/org/eclipse/e4/ui/workbench/addons/dndaddon/Overlay.java
index 94fd6c3..acf069e 100644
--- a/bundles/org.eclipse.e4.ui.workbench.addons.swt/src/org/eclipse/e4/ui/workbench/addons/dndaddon/Overlay.java
+++ b/bundles/org.eclipse.e4.ui.workbench.addons.swt/src/org/eclipse/e4/ui/workbench/addons/dndaddon/Overlay.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2013, 2014 IBM Corporation and others.
+ * Copyright (c) 2013, 2018 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -13,8 +13,6 @@
import java.util.ArrayList;
import java.util.List;
import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.events.PaintListener;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.GC;
import org.eclipse.swt.graphics.Rectangle;
@@ -82,7 +80,7 @@
}
}
- List<Adornment> adornments = new ArrayList<Adornment>();
+ List<Adornment> adornments = new ArrayList<>();
public void addAdornment(Adornment a) {
adornments.add(a);
@@ -126,14 +124,11 @@
overlayShell.setAlpha(128);
blue = new Color(baseShell.getDisplay(), 0, 0, 128);
- overlayShell.addPaintListener(new PaintListener() {
- @Override
- public void paintControl(PaintEvent e) {
- e.gc.setForeground(blue);
- e.gc.setBackground(blue);
- for (Adornment adornment : adornments) {
- adornment.drawAdornment(e.gc);
- }
+ overlayShell.addPaintListener(e -> {
+ e.gc.setForeground(blue);
+ e.gc.setBackground(blue);
+ for (Adornment adornment : adornments) {
+ adornment.drawAdornment(e.gc);
}
});
}
diff --git a/bundles/org.eclipse.e4.ui.workbench.addons.swt/src/org/eclipse/e4/ui/workbench/addons/dndaddon/SplitDropAgent2.java b/bundles/org.eclipse.e4.ui.workbench.addons.swt/src/org/eclipse/e4/ui/workbench/addons/dndaddon/SplitDropAgent2.java
index 4fafd2b..bf0f6295 100644
--- a/bundles/org.eclipse.e4.ui.workbench.addons.swt/src/org/eclipse/e4/ui/workbench/addons/dndaddon/SplitDropAgent2.java
+++ b/bundles/org.eclipse.e4.ui.workbench.addons.swt/src/org/eclipse/e4/ui/workbench/addons/dndaddon/SplitDropAgent2.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2010, 2015 IBM Corporation and others.
+ * Copyright (c) 2010, 2018 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -8,11 +8,9 @@
* Contributors:
* IBM Corporation - initial API and implementation
******************************************************************************/
-
package org.eclipse.e4.ui.workbench.addons.dndaddon;
import java.util.List;
-import org.eclipse.e4.ui.model.application.MApplicationElement;
import org.eclipse.e4.ui.model.application.ui.MUIElement;
import org.eclipse.e4.ui.model.application.ui.advanced.MArea;
import org.eclipse.e4.ui.model.application.ui.advanced.MPerspective;
@@ -22,7 +20,6 @@
import org.eclipse.e4.ui.model.application.ui.basic.MWindow;
import org.eclipse.e4.ui.model.application.ui.basic.impl.BasicFactoryImpl;
import org.eclipse.e4.ui.workbench.IPresentationEngine;
-import org.eclipse.e4.ui.workbench.Selector;
import org.eclipse.e4.ui.workbench.modeling.EModelService;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CTabFolder;
@@ -108,49 +105,46 @@
// Collect up the elements we can be split 'relative to'
final EModelService ms = dndManager.getModelService();
List<MPartStack> stacks = ms.findElements(ms.getTopLevelWindowFor(dragElement),
- MPartStack.class, EModelService.PRESENTATION, new Selector() {
- @Override
- public boolean select(MApplicationElement element) {
- MPartStack stack = (MPartStack) element;
+ MPartStack.class, EModelService.PRESENTATION, element -> {
+ MPartStack stack = (MPartStack) element;
- // Has to be visible...
- if (!stack.isVisible() || !(stack.getWidget() instanceof CTabFolder)) {
- return false;
- }
-
- // ...not disposed...
- CTabFolder ctf = (CTabFolder) stack.getWidget();
- if (ctf.isDisposed()) {
- return false;
- }
-
- // ...and in the shell the cursor is over
- if (!isInCursorShell(info, ctf)) {
- return false;
- }
-
- // ...and the cursor must be in the CTF's client area
- Rectangle bb = ctf.getClientArea();
- bb = ctf.getDisplay().map(ctf, null, bb);
- if (!bb.contains(info.cursorPos)) {
- return false;
- }
-
- // Can't split with ourselves if we're dragging a stack
- if (dragElement instanceof MPartStack && stack == dragElement) {
- return false;
- }
-
- // Can't split with ourselves if we're dragging the only visible element in
- // a stack
- MUIElement deParent = dragElement.getParent();
- if (dragElement instanceof MStackElement && stack == deParent
- && ms.countRenderableChildren(deParent) == 1) {
- return false;
- }
-
- return true;
+ // Has to be visible...
+ if (!stack.isVisible() || !(stack.getWidget() instanceof CTabFolder)) {
+ return false;
}
+
+ // ...not disposed...
+ CTabFolder ctf = (CTabFolder) stack.getWidget();
+ if (ctf.isDisposed()) {
+ return false;
+ }
+
+ // ...and in the shell the cursor is over
+ if (!isInCursorShell(info, ctf)) {
+ return false;
+ }
+
+ // ...and the cursor must be in the CTF's client area
+ Rectangle bb = ctf.getClientArea();
+ bb = ctf.getDisplay().map(ctf, null, bb);
+ if (!bb.contains(info.cursorPos)) {
+ return false;
+ }
+
+ // Can't split with ourselves if we're dragging a stack
+ if (dragElement instanceof MPartStack && stack == dragElement) {
+ return false;
+ }
+
+ // Can't split with ourselves if we're dragging the only visible element in
+ // a stack
+ MUIElement deParent = dragElement.getParent();
+ if (dragElement instanceof MStackElement && stack == deParent
+ && ms.countRenderableChildren(deParent) == 1) {
+ return false;
+ }
+
+ return true;
});
if (stacks.size() > 0) {
diff --git a/bundles/org.eclipse.e4.ui.workbench.addons.swt/src/org/eclipse/e4/ui/workbench/addons/dndaddon/SplitFeedbackOverlay.java b/bundles/org.eclipse.e4.ui.workbench.addons.swt/src/org/eclipse/e4/ui/workbench/addons/dndaddon/SplitFeedbackOverlay.java
index a0330e3..27b7a2c 100644
--- a/bundles/org.eclipse.e4.ui.workbench.addons.swt/src/org/eclipse/e4/ui/workbench/addons/dndaddon/SplitFeedbackOverlay.java
+++ b/bundles/org.eclipse.e4.ui.workbench.addons.swt/src/org/eclipse/e4/ui/workbench/addons/dndaddon/SplitFeedbackOverlay.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2013, 2015 IBM Corporation and others.
+ * Copyright (c) 2013, 2018 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -29,7 +29,7 @@
private int curSide = 0;
private float ratio;
- private List<Rectangle> rects = new ArrayList<Rectangle>();
+ private List<Rectangle> rects = new ArrayList<>();
private Rectangle outerRect;
Boolean isModified = null;
diff --git a/bundles/org.eclipse.e4.ui.workbench.addons.swt/src/org/eclipse/e4/ui/workbench/addons/dndaddon/StackDropAgent.java b/bundles/org.eclipse.e4.ui.workbench.addons.swt/src/org/eclipse/e4/ui/workbench/addons/dndaddon/StackDropAgent.java
index f321cf3..08c5247 100644
--- a/bundles/org.eclipse.e4.ui.workbench.addons.swt/src/org/eclipse/e4/ui/workbench/addons/dndaddon/StackDropAgent.java
+++ b/bundles/org.eclipse.e4.ui.workbench.addons.swt/src/org/eclipse/e4/ui/workbench/addons/dndaddon/StackDropAgent.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2010, 2016 IBM Corporation and others.
+ * Copyright (c) 2010, 2018 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -129,7 +129,7 @@
private static ArrayList<Rectangle> getItemRects(CTabFolder dropCTF, List<CTabItem> visibleItems,
Rectangle tabArea) {
// for dropping, we consider visible tab only
- ArrayList<Rectangle> itemRects = new ArrayList<Rectangle>();
+ ArrayList<Rectangle> itemRects = new ArrayList<>();
CTabItem item;
if (visibleItems.size() > 0) {
// First rect is from left to the center of the item
diff --git a/bundles/org.eclipse.e4.ui.workbench.addons.swt/src/org/eclipse/e4/ui/workbench/addons/minmax/MinMaxAddon.java b/bundles/org.eclipse.e4.ui.workbench.addons.swt/src/org/eclipse/e4/ui/workbench/addons/minmax/MinMaxAddon.java
index 0403d2f..a789d2b 100644
--- a/bundles/org.eclipse.e4.ui.workbench.addons.swt/src/org/eclipse/e4/ui/workbench/addons/minmax/MinMaxAddon.java
+++ b/bundles/org.eclipse.e4.ui.workbench.addons.swt/src/org/eclipse/e4/ui/workbench/addons/minmax/MinMaxAddon.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2014, 2015, 2016 IBM Corporation and others.
+ * Copyright (c) 2011, 2018 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -46,6 +46,7 @@
import org.eclipse.swt.custom.CTabFolder;
import org.eclipse.swt.custom.CTabFolder2Adapter;
import org.eclipse.swt.custom.CTabFolderEvent;
+import org.eclipse.swt.events.MouseAdapter;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.MouseListener;
import org.eclipse.swt.graphics.Rectangle;
@@ -127,11 +128,7 @@
}
};
- private MouseListener CTFDblClickListener = new MouseListener() {
- @Override
- public void mouseUp(MouseEvent e) {
- }
-
+ private MouseListener CTFDblClickListener = new MouseAdapter() {
@Override
public void mouseDown(MouseEvent e) {
// HACK! If this is an empty stack treat it as though it was the editor area
@@ -274,7 +271,7 @@
MTrimBar bar = modelService.getTrim((MTrimmedWindow) window, SideValue.TOP);
// gather up any minimized stacks for this perspective...
- List<MToolControl> toRemove = new ArrayList<MToolControl>();
+ List<MToolControl> toRemove = new ArrayList<>();
for (MUIElement child : bar.getChildren()) {
String trimElementId = child.getElementId();
if (child instanceof MToolControl && trimElementId.contains(perspectiveId)) {
@@ -313,7 +310,7 @@
final MPerspective curPersp = ps.getSelectedElement();
if (curPersp != null) {
- List<String> tags = new ArrayList<String>();
+ List<String> tags = new ArrayList<>();
tags.add(IPresentationEngine.MINIMIZED);
List<MUIElement> minimizedElements = modelService.findElements(curPersp, null,
@@ -348,12 +345,9 @@
}
final Shell winShell = (Shell) window.getWidget();
- winShell.getDisplay().asyncExec(new Runnable() {
- @Override
- public void run() {
- if (!winShell.isDisposed()) {
- winShell.layout(true, true);
- }
+ winShell.getDisplay().asyncExec(() -> {
+ if (!winShell.isDisposed()) {
+ winShell.layout(true, true);
}
});
}
@@ -657,7 +651,7 @@
adjustCTFButtons(element);
- List<String> maximizeTag = new ArrayList<String>();
+ List<String> maximizeTag = new ArrayList<>();
maximizeTag.add(IPresentationEngine.MAXIMIZED);
List<MUIElement> curMax = modelService.findElements(window, null, MUIElement.class,
maximizeTag, EModelService.PRESENTATION);
@@ -725,7 +719,7 @@
MWindow win = MinMaxAddonUtil.getWindowFor(element);
MPerspective persp = modelService.getActivePerspective(win);
- List<MUIElement> elementsToMinimize = new ArrayList<MUIElement>();
+ List<MUIElement> elementsToMinimize = new ArrayList<>();
int loc = modelService.getElementLocation(element);
if ((loc & EModelService.OUTSIDE_PERSPECTIVE) != 0) {
// Minimize all other global stacks
@@ -766,7 +760,7 @@
EModelService.PRESENTATION, false);
elementsToMinimize.addAll(partStacksToMinimize);
// Find any 'standalone' views *not* in a stack
- List<String> standaloneTag = new ArrayList<String>();
+ List<String> standaloneTag = new ArrayList<>();
standaloneTag.add(IPresentationEngine.STANDALONE);
List<MPlaceholder> standaloneViews = modelService.findElements(persp == null ? win
: persp, null, MPlaceholder.class, standaloneTag, EModelService.PRESENTATION);
@@ -817,7 +811,7 @@
private <T extends MUIElement> List<T> findValidElementsToMinimize(
MUIElement elementToMaximize, MWindow currentWindow, MUIElement searchRoot, String id,
Class<T> clazz, int searchFlag, boolean allowSharedArea) {
- List<T> elementsToMinimize = new ArrayList<T>();
+ List<T> elementsToMinimize = new ArrayList<>();
List<T> elements = modelService.findElements(searchRoot, id, clazz, null, searchFlag);
for (T element : elements) {
if (element == elementToMaximize || !element.isToBeRendered()) {
@@ -848,7 +842,7 @@
*/
private void restoreMaximizedElement(final MUIElement element, MWindow win) {
MPerspective elePersp = modelService.getPerspectiveFor(element);
- List<String> maxTag = new ArrayList<String>();
+ List<String> maxTag = new ArrayList<>();
maxTag.add(MAXIMIZED);
List<MUIElement> curMax = modelService.findElements(win, null, MUIElement.class, maxTag);
if (curMax.size() > 0) {
@@ -911,9 +905,9 @@
MWindow win = MinMaxAddonUtil.getWindowFor(element);
MPerspective persp = modelService.getActivePerspective(win);
- List<MUIElement> elementsToRestore = new ArrayList<MUIElement>();
+ List<MUIElement> elementsToRestore = new ArrayList<>();
- List<String> minTag = new ArrayList<String>();
+ List<String> minTag = new ArrayList<>();
minTag.add(IPresentationEngine.MINIMIZED_BY_ZOOM);
// Restore any minimized stacks
diff --git a/bundles/org.eclipse.e4.ui.workbench.addons.swt/src/org/eclipse/e4/ui/workbench/addons/minmax/MinMaxAddonUtil.java b/bundles/org.eclipse.e4.ui.workbench.addons.swt/src/org/eclipse/e4/ui/workbench/addons/minmax/MinMaxAddonUtil.java
index 34b3de4..a752bfd 100644
--- a/bundles/org.eclipse.e4.ui.workbench.addons.swt/src/org/eclipse/e4/ui/workbench/addons/minmax/MinMaxAddonUtil.java
+++ b/bundles/org.eclipse.e4.ui.workbench.addons.swt/src/org/eclipse/e4/ui/workbench/addons/minmax/MinMaxAddonUtil.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2016 IBM Corporation and others.
+ * Copyright (c) 2016, 2018 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -114,7 +114,7 @@
List<MUIElement> curMax) {
if (element instanceof MPlaceholder
&& ((MPlaceholder) element).getRef().getTags().contains(MIN_MAXIMIZEABLE_CHILDREN_AREA_TAG)) {
- Set<MUIElement> toRemove = new LinkedHashSet<MUIElement>();
+ Set<MUIElement> toRemove = new LinkedHashSet<>();
for (MUIElement maxElement : curMax) {
if (modelService.find(maxElement.getElementId(), element) != null) {
toRemove.add(maxElement);
@@ -185,14 +185,10 @@
final List<MPartStack> maximizedAreaChildren = minMaxAddon.modelService.findElements(area, null,
MPartStack.class,
maximizeTag);
- minMaxAddon.executeWithIgnoredTagChanges(new Runnable() {
-
- @Override
- public void run() {
- for (MPartStack partStack : maximizedAreaChildren) {
- partStack.getTags().remove(IPresentationEngine.MAXIMIZED);
- minMaxAddon.adjustCTFButtons(partStack);
- }
+ minMaxAddon.executeWithIgnoredTagChanges(() -> {
+ for (MPartStack partStack : maximizedAreaChildren) {
+ partStack.getTags().remove(IPresentationEngine.MAXIMIZED);
+ minMaxAddon.adjustCTFButtons(partStack);
}
});
}
@@ -213,13 +209,8 @@
MArea area = getAreaFor((MPartStack) element);
if (area != null && area.getTags().contains(MIN_MAXIMIZEABLE_CHILDREN_AREA_TAG)) {
final MPlaceholder placeholder = area.getCurSharedRef();
- minMaxAddon.executeWithIgnoredTagChanges(new Runnable() {
-
- @Override
- public void run() {
- placeholder.getTags().add(IPresentationEngine.MAXIMIZED);
- }
- });
+ minMaxAddon
+ .executeWithIgnoredTagChanges(() -> placeholder.getTags().add(IPresentationEngine.MAXIMIZED));
minMaxAddon.adjustCTFButtons(placeholder);
}
}
@@ -269,7 +260,7 @@
}
}
if (foundRelevantArea) {
- List<MUIElement> elementsToRemove = new ArrayList<MUIElement>();
+ List<MUIElement> elementsToRemove = new ArrayList<>();
for (MUIElement elementMUI : elementsToMinimize) {
List<Object> findElements = modelService.findElements(elementMUI, element.getElementId(),
null, null);
@@ -295,13 +286,8 @@
MArea area = getAreaFor((MPartStack) element);
if (area != null && area.getTags().contains(MIN_MAXIMIZEABLE_CHILDREN_AREA_TAG)) {
final MPlaceholder placeholder = area.getCurSharedRef();
- minMaxAddon.executeWithIgnoredTagChanges(new Runnable() {
-
- @Override
- public void run() {
- placeholder.getTags().remove(IPresentationEngine.MAXIMIZED);
- }
- });
+ minMaxAddon.executeWithIgnoredTagChanges(
+ () -> placeholder.getTags().remove(IPresentationEngine.MAXIMIZED));
minMaxAddon.adjustCTFButtons(placeholder);
}
}
diff --git a/bundles/org.eclipse.e4.ui.workbench.addons.swt/src/org/eclipse/e4/ui/workbench/addons/minmax/TrimPaneLayout.java b/bundles/org.eclipse.e4.ui.workbench.addons.swt/src/org/eclipse/e4/ui/workbench/addons/minmax/TrimPaneLayout.java
index 2c7119c..eba8398 100644
--- a/bundles/org.eclipse.e4.ui.workbench.addons.swt/src/org/eclipse/e4/ui/workbench/addons/minmax/TrimPaneLayout.java
+++ b/bundles/org.eclipse.e4.ui.workbench.addons.swt/src/org/eclipse/e4/ui/workbench/addons/minmax/TrimPaneLayout.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2010, 2015 IBM Corporation and others.
+ * Copyright (c) 2010, 2018 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -13,9 +13,8 @@
import org.eclipse.e4.ui.model.application.ui.menu.MToolControl;
import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.MouseAdapter;
import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseListener;
-import org.eclipse.swt.events.MouseMoveListener;
import org.eclipse.swt.events.MouseTrackListener;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.graphics.Rectangle;
@@ -117,23 +116,20 @@
return;
}
- composite.addMouseMoveListener(new MouseMoveListener() {
- @Override
- public void mouseMove(MouseEvent e) {
- Point p = e.display.getCursorLocation();
- if (trackState == NOT_SIZING) {
- setCursor(composite, new Point(e.x, e.y));
- } else if (trackState == HORIZONTAL_SIZING) {
- dragHorizontal(composite, p);
- } else if (trackState == VERTICAL_SIZING) {
- dragVertical(composite, p);
- } else if (trackState == CORNER_SIZING) {
- dragCorner(composite, p);
- }
+ composite.addMouseMoveListener(e -> {
+ Point p = e.display.getCursorLocation();
+ if (trackState == NOT_SIZING) {
+ setCursor(composite, new Point(e.x, e.y));
+ } else if (trackState == HORIZONTAL_SIZING) {
+ dragHorizontal(composite, p);
+ } else if (trackState == VERTICAL_SIZING) {
+ dragVertical(composite, p);
+ } else if (trackState == CORNER_SIZING) {
+ dragCorner(composite, p);
}
});
- composite.addMouseListener(new MouseListener() {
+ composite.addMouseListener(new MouseAdapter() {
@Override
public void mouseUp(MouseEvent e) {
@@ -166,27 +162,12 @@
composite.setCapture(true);
}
}
-
- @Override
- public void mouseDoubleClick(MouseEvent e) {
- }
});
- composite.addMouseTrackListener(new MouseTrackListener() {
- @Override
- public void mouseHover(MouseEvent e) {
- }
-
- @Override
- public void mouseExit(MouseEvent e) {
- Composite comp = (Composite) e.widget;
- comp.setCursor(null);
- }
-
- @Override
- public void mouseEnter(MouseEvent e) {
- }
- });
+ composite.addMouseTrackListener(MouseTrackListener.mouseExitAdapter(e -> {
+ Composite comp = (Composite) e.widget;
+ comp.setCursor(null);
+ }));
resizeInstalled = true;
}
diff --git a/bundles/org.eclipse.e4.ui.workbench.addons.swt/src/org/eclipse/e4/ui/workbench/addons/minmax/TrimStack.java b/bundles/org.eclipse.e4.ui.workbench.addons.swt/src/org/eclipse/e4/ui/workbench/addons/minmax/TrimStack.java
index 89ca6cc..22dd5fe 100644
--- a/bundles/org.eclipse.e4.ui.workbench.addons.swt/src/org/eclipse/e4/ui/workbench/addons/minmax/TrimStack.java
+++ b/bundles/org.eclipse.e4.ui.workbench.addons.swt/src/org/eclipse/e4/ui/workbench/addons/minmax/TrimStack.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2010, 2016 IBM Corporation and others.
+ * Copyright (c) 2010, 2018 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -53,11 +53,9 @@
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CTabFolder;
+import org.eclipse.swt.events.ControlAdapter;
import org.eclipse.swt.events.ControlEvent;
import org.eclipse.swt.events.ControlListener;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.graphics.Image;
@@ -65,7 +63,6 @@
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
@@ -121,31 +118,17 @@
/**
* A map of created images from a part's icon URI path.
*/
- private Map<String, Image> imageMap = new HashMap<String, Image>();
+ private Map<String, Image> imageMap = new HashMap<>();
- ControlListener caResizeListener = new ControlListener() {
+ ControlListener caResizeListener = new ControlAdapter() {
@Override
public void controlResized(ControlEvent e) {
if (hostPane != null && hostPane.isVisible()) {
setPaneLocation();
}
}
-
- @Override
- public void controlMoved(ControlEvent e) {
- }
};
- // Listens to ESC and closes the active fast view
- private Listener escapeListener = new Listener() {
- @Override
- public void handleEvent(Event event) {
- if (event.character == SWT.ESC) {
- showStack(false);
- partService.requestActivation();
- }
- }
- };
@Inject
EModelService modelService;
@@ -162,6 +145,14 @@
@Inject
protected IEventBroker eventBroker;
+ // Listens to ESC and closes the active fast view
+ private Listener escapeListener = event -> {
+ if (event.character == SWT.ESC) {
+ showStack(false);
+ partService.requestActivation();
+ }
+ };
+
@Inject
@Optional
private void subscribeTopicTagsChanged(
@@ -277,46 +268,38 @@
* by handleTransientDataEvents() and described in the article at
* http://wiki.eclipse.org/Eclipse4/RCP/Event_Model
*/
- private EventHandler closeHandler = new EventHandler() {
- @Override
- public void handleEvent(org.osgi.service.event.Event event) {
- if (!isShowing) {
- return;
- }
+ private EventHandler closeHandler = event -> {
+ if (!isShowing) {
+ return;
+ }
- // The only time we don't close is if I've selected my tab.
- MUIElement changedElement = (MUIElement) event.getProperty(UIEvents.EventTags.ELEMENT);
+ // The only time we don't close is if I've selected my tab.
+ MUIElement changedElement = (MUIElement) event.getProperty(UIEvents.EventTags.ELEMENT);
- // Perspective changed, close the visible stacks
- if (changedElement instanceof MPerspectiveStack) {
- showStack(false);
- return;
- }
+ // Perspective changed, close the visible stacks
+ if (changedElement instanceof MPerspectiveStack) {
+ showStack(false);
+ return;
+ }
- if (changedElement instanceof MCompositePart) {
- MPart innerPart = getLeafPart(changedElement);
- if (innerPart != null) {
- fixToolItemSelection();
- return;
- }
- }
-
- if (changedElement == getLeafPart(minimizedElement)) {
+ if (changedElement instanceof MCompositePart) {
+ MPart innerPart = getLeafPart(changedElement);
+ if (innerPart != null) {
fixToolItemSelection();
return;
}
-
- showStack(false);
}
+
+ if (changedElement == getLeafPart(minimizedElement)) {
+ fixToolItemSelection();
+ return;
+ }
+
+ showStack(false);
};
// Close any open stacks before shutting down
- private EventHandler shutdownHandler = new EventHandler() {
- @Override
- public void handleEvent(org.osgi.service.event.Event event) {
- showStack(false);
- }
- };
+ private EventHandler shutdownHandler = event -> showStack(false);
private void fixToolItemSelection() {
if (trimStackTB == null || trimStackTB.isDisposed()) {
@@ -386,43 +369,64 @@
* by handleTransientDataEvents() and described in the article at
* http://wiki.eclipse.org/Eclipse4/RCP/Event_Model
*/
- private EventHandler openHandler = new EventHandler() {
- @Override
- public void handleEvent(org.osgi.service.event.Event event) {
- if (isShowing) {
- return;
- }
+ private EventHandler openHandler = event -> {
+ if (isShowing) {
+ return;
+ }
- MUIElement changedElement = (MUIElement) event.getProperty(UIEvents.EventTags.ELEMENT);
+ MUIElement changedElement = (MUIElement) event.getProperty(UIEvents.EventTags.ELEMENT);
- // Open if shared area
- if (getLeafPart(minimizedElement) == changedElement
- && !(minimizedElement instanceof MPerspectiveStack)) {
- showStack(true);
- return;
- }
-
- MUIElement selectedElement = null;
-
- if (minimizedElement instanceof MPlaceholder) {
- selectedElement = ((MPlaceholder) minimizedElement).getRef();
- } else if (minimizedElement instanceof MPartStack) {
- selectedElement = ((MPartStack) minimizedElement).getSelectedElement();
- }
-
- if (selectedElement == null) {
- return;
- }
-
- if (selectedElement instanceof MPlaceholder) {
- selectedElement = ((MPlaceholder) selectedElement).getRef();
- }
-
- if (changedElement != selectedElement) {
- return;
- }
-
+ // Open if shared area
+ if (getLeafPart(minimizedElement) == changedElement && !(minimizedElement instanceof MPerspectiveStack)) {
showStack(true);
+ return;
+ }
+
+ MUIElement selectedElement = null;
+
+ if (minimizedElement instanceof MPlaceholder) {
+ selectedElement = ((MPlaceholder) minimizedElement).getRef();
+ } else if (minimizedElement instanceof MPartStack) {
+ selectedElement = ((MPartStack) minimizedElement).getSelectedElement();
+ }
+
+ if (selectedElement == null) {
+ return;
+ }
+
+ if (selectedElement instanceof MPlaceholder) {
+ selectedElement = ((MPlaceholder) selectedElement).getRef();
+ }
+
+ if (changedElement != selectedElement) {
+ return;
+ }
+
+ showStack(true);
+ };
+
+ /**
+ * This is the old way to subscribe to UIEvents. You should consider using the new way as shown
+ * by handleTransientDataEvents() and described in the article at
+ * http://wiki.eclipse.org/Eclipse4/RCP/Event_Model
+ */
+ private EventHandler toBeRenderedHandler = event -> {
+ if (minimizedElement == null || trimStackTB == null) {
+ return;
+ }
+
+ MUIElement changedElement = (MUIElement) event.getProperty(UIEvents.EventTags.ELEMENT);
+
+ // if our stack is going away, so should we
+ if (changedElement == minimizedElement && !minimizedElement.isToBeRendered()) {
+ restoreStack();
+ return;
+ }
+
+ // if one of the kids changes state, re-scrape the CTF
+ MUIElement parentElement = changedElement.getParent();
+ if (parentElement == minimizedElement) {
+ trimStackTB.getDisplay().asyncExec(() -> updateTrimStackItems());
}
};
@@ -431,31 +435,16 @@
* by handleTransientDataEvents() and described in the article at
* http://wiki.eclipse.org/Eclipse4/RCP/Event_Model
*/
- private EventHandler toBeRenderedHandler = new EventHandler() {
- @Override
- public void handleEvent(org.osgi.service.event.Event event) {
- if (minimizedElement == null || trimStackTB == null) {
- return;
- }
+ private EventHandler childrenHandler = event -> {
+ if (minimizedElement == null || trimStackTB == null) {
+ return;
+ }
- MUIElement changedElement = (MUIElement) event.getProperty(UIEvents.EventTags.ELEMENT);
+ Object changedObj = event.getProperty(UIEvents.EventTags.ELEMENT);
- // if our stack is going away, so should we
- if (changedElement == minimizedElement && !minimizedElement.isToBeRendered()) {
- restoreStack();
- return;
- }
-
- // if one of the kids changes state, re-scrape the CTF
- MUIElement parentElement = changedElement.getParent();
- if (parentElement == minimizedElement) {
- trimStackTB.getDisplay().asyncExec(new Runnable() {
- @Override
- public void run() {
- updateTrimStackItems();
- }
- });
- }
+ // if a child has been added or removed, re-scape the CTF
+ if (changedObj == minimizedElement) {
+ trimStackTB.getDisplay().asyncExec(() -> updateTrimStackItems());
}
};
@@ -464,48 +453,14 @@
* by handleTransientDataEvents() and described in the article at
* http://wiki.eclipse.org/Eclipse4/RCP/Event_Model
*/
- private EventHandler childrenHandler = new EventHandler() {
- @Override
- public void handleEvent(org.osgi.service.event.Event event) {
- if (minimizedElement == null || trimStackTB == null) {
- return;
- }
-
- Object changedObj = event.getProperty(UIEvents.EventTags.ELEMENT);
-
- // if a child has been added or removed, re-scape the CTF
- if (changedObj == minimizedElement) {
- trimStackTB.getDisplay().asyncExec(new Runnable() {
- @Override
- public void run() {
- updateTrimStackItems();
- }
- });
- }
+ private EventHandler widgetHandler = event -> {
+ Object changedObj = event.getProperty(UIEvents.EventTags.ELEMENT);
+ if (changedObj != minimizedElement) {
+ return;
}
- };
- /**
- * This is the old way to subscribe to UIEvents. You should consider using the new way as shown
- * by handleTransientDataEvents() and described in the article at
- * http://wiki.eclipse.org/Eclipse4/RCP/Event_Model
- */
- private EventHandler widgetHandler = new EventHandler() {
- @Override
- public void handleEvent(org.osgi.service.event.Event event) {
- Object changedObj = event.getProperty(UIEvents.EventTags.ELEMENT);
- if (changedObj != minimizedElement) {
- return;
- }
-
- if (minimizedElement.getWidget() != null) {
- trimStackTB.getDisplay().asyncExec(new Runnable() {
- @Override
- public void run() {
- updateTrimStackItems();
- }
- });
- }
+ if (minimizedElement.getWidget() != null) {
+ trimStackTB.getDisplay().asyncExec(() -> updateTrimStackItems());
}
};
@@ -612,46 +567,39 @@
me.getTags().add(IPresentationEngine.DRAGGABLE);
}
trimStackTB = new ToolBar(parent, orientation | SWT.FLAT | SWT.WRAP);
- trimStackTB.addDisposeListener(new DisposeListener() {
- @Override
- public void widgetDisposed(DisposeEvent e) {
- showStack(false);
+ trimStackTB.addDisposeListener(e -> {
+ showStack(false);
- trimStackTB = null;
- trimStackMenu = null;
- }
+ trimStackTB = null;
+ trimStackMenu = null;
});
- trimStackTB.addListener(SWT.MenuDetect, new Listener() {
- @Override
- public void handleEvent(Event event) {
- // Clear any existing menus
- while (trimStackMenu.getItemCount() > 0) {
- trimStackMenu.getItem(0).dispose();
- }
+ trimStackTB.addListener(SWT.MenuDetect, event -> {
+ // Clear any existing menus
+ while (trimStackMenu.getItemCount() > 0) {
+ trimStackMenu.getItem(0).dispose();
+ }
- // Only open the menu if a tool item is selected
- Point point = trimStackTB.getDisplay().map(null, trimStackTB,
- new Point(event.x, event.y));
- ToolItem selectedToolItem = trimStackTB.getItem(point);
- if (selectedToolItem == null) {
- return;
- }
+ // Only open the menu if a tool item is selected
+ Point point = trimStackTB.getDisplay().map(null, trimStackTB, new Point(event.x, event.y));
+ ToolItem selectedToolItem = trimStackTB.getItem(point);
+ if (selectedToolItem == null) {
+ return;
+ }
- // Are we hovering over a valid tool item (vs restore button)
- Object data = selectedToolItem.getData();
- if (data instanceof MPart) {
- // A part on a stack or editor area
- createPartMenu((MPart) data);
- } else if (data instanceof MPerspective) {
- // A perspective in a perspective stack (for now we just support restore)
- createEmtpyEditorAreaMenu();
- } else if (isEditorStack()) {
- // An empty editor area
- createEmtpyEditorAreaMenu();
- } else {
- createUseOverlaysMenu();
- }
+ // Are we hovering over a valid tool item (vs restore button)
+ Object data = selectedToolItem.getData();
+ if (data instanceof MPart) {
+ // A part on a stack or editor area
+ createPartMenu((MPart) data);
+ } else if (data instanceof MPerspective) {
+ // A perspective in a perspective stack (for now we just support restore)
+ createEmtpyEditorAreaMenu();
+ } else if (isEditorStack()) {
+ // An empty editor area
+ createEmtpyEditorAreaMenu();
+ } else {
+ createUseOverlaysMenu();
}
});
@@ -661,12 +609,8 @@
ToolItem restoreBtn = new ToolItem(trimStackTB, SWT.PUSH);
restoreBtn.setToolTipText(Messages.TrimStack_RestoreText);
restoreBtn.setImage(getRestoreImage());
- restoreBtn.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- minimizedElement.getTags().remove(IPresentationEngine.MINIMIZED);
- }
- });
+ restoreBtn.addSelectionListener(SelectionListener
+ .widgetSelectedAdapter(e -> minimizedElement.getTags().remove(IPresentationEngine.MINIMIZED)));
updateTrimStackItems();
}
@@ -677,12 +621,8 @@
private void createEmtpyEditorAreaMenu() {
MenuItem restoreItem = new MenuItem(trimStackMenu, SWT.NONE);
restoreItem.setText(Messages.TrimStack_RestoreText);
- restoreItem.addListener(SWT.Selection, new Listener() {
- @Override
- public void handleEvent(Event event) {
- minimizedElement.getTags().remove(IPresentationEngine.MINIMIZED);
- }
- });
+ restoreItem.addListener(SWT.Selection,
+ event -> minimizedElement.getTags().remove(IPresentationEngine.MINIMIZED));
}
/**
@@ -692,13 +632,9 @@
MenuItem useOverlaysItem = new MenuItem(trimStackMenu, SWT.CHECK);
useOverlaysItem.setText(Messages.TrimStack_Show_In_Original_Location);
useOverlaysItem.setSelection(!useOverlays());
- useOverlaysItem.addListener(SWT.Selection, new Listener() {
- @Override
- public void handleEvent(Event event) {
- if (toolControl != null) {
- toolControl.getPersistedState().put(USE_OVERLAYS_KEY,
- Boolean.toString(!useOverlays()));
- }
+ useOverlaysItem.addListener(SWT.Selection, event -> {
+ if (toolControl != null) {
+ toolControl.getPersistedState().put(USE_OVERLAYS_KEY, Boolean.toString(!useOverlays()));
}
});
}
@@ -720,46 +656,34 @@
MenuItem defaultItem = new MenuItem(orientationMenu, SWT.RADIO);
defaultItem.setText(Messages.TrimStack_DefaultOrientationItem);
- defaultItem.addListener(SWT.Selection, new Listener() {
- @Override
- public void handleEvent(Event event) {
- boolean doRefresh = minimizedElement.getTags().remove(
- IPresentationEngine.ORIENTATION_HORIZONTAL);
- doRefresh |= minimizedElement.getTags().remove(
- IPresentationEngine.ORIENTATION_VERTICAL);
- if (isShowing && doRefresh) {
- setPaneLocation();
- }
+ defaultItem.addListener(SWT.Selection, event -> {
+ boolean doRefresh = minimizedElement.getTags().remove(IPresentationEngine.ORIENTATION_HORIZONTAL);
+ doRefresh |= minimizedElement.getTags().remove(IPresentationEngine.ORIENTATION_VERTICAL);
+ if (isShowing && doRefresh) {
+ setPaneLocation();
}
});
MenuItem horizontalItem = new MenuItem(orientationMenu, SWT.RADIO);
horizontalItem.setText(Messages.TrimStack_Horizontal);
- horizontalItem.addListener(SWT.Selection, new Listener() {
- @Override
- public void handleEvent(Event event) {
- if (!minimizedElement.getTags()
- .contains(IPresentationEngine.ORIENTATION_HORIZONTAL)) {
- minimizedElement.getTags().remove(IPresentationEngine.ORIENTATION_VERTICAL);
- minimizedElement.getTags().add(IPresentationEngine.ORIENTATION_HORIZONTAL);
- if (isShowing) {
- setPaneLocation();
- }
+ horizontalItem.addListener(SWT.Selection, event -> {
+ if (!minimizedElement.getTags().contains(IPresentationEngine.ORIENTATION_HORIZONTAL)) {
+ minimizedElement.getTags().remove(IPresentationEngine.ORIENTATION_VERTICAL);
+ minimizedElement.getTags().add(IPresentationEngine.ORIENTATION_HORIZONTAL);
+ if (isShowing) {
+ setPaneLocation();
}
}
});
MenuItem verticalItem = new MenuItem(orientationMenu, SWT.RADIO);
verticalItem.setText(Messages.TrimStack_Vertical);
- verticalItem.addListener(SWT.Selection, new Listener() {
- @Override
- public void handleEvent(Event event) {
- if (!minimizedElement.getTags().contains(IPresentationEngine.ORIENTATION_VERTICAL)) {
- minimizedElement.getTags().remove(IPresentationEngine.ORIENTATION_HORIZONTAL);
- minimizedElement.getTags().add(IPresentationEngine.ORIENTATION_VERTICAL);
- if (isShowing) {
- setPaneLocation();
- }
+ verticalItem.addListener(SWT.Selection, event -> {
+ if (!minimizedElement.getTags().contains(IPresentationEngine.ORIENTATION_VERTICAL)) {
+ minimizedElement.getTags().remove(IPresentationEngine.ORIENTATION_HORIZONTAL);
+ minimizedElement.getTags().add(IPresentationEngine.ORIENTATION_VERTICAL);
+ if (isShowing) {
+ setPaneLocation();
}
}
});
@@ -775,24 +699,16 @@
MenuItem restoreItem = new MenuItem(trimStackMenu, SWT.NONE);
restoreItem.setText(Messages.TrimStack_RestoreText);
- restoreItem.addListener(SWT.Selection, new Listener() {
- @Override
- public void handleEvent(Event event) {
- minimizedElement.getTags().remove(IPresentationEngine.MINIMIZED);
- partService.activate(selectedPart);
- }
+ restoreItem.addListener(SWT.Selection, event -> {
+ minimizedElement.getTags().remove(IPresentationEngine.MINIMIZED);
+ partService.activate(selectedPart);
});
// Do not allow the shared editor area to be closed
if (!isEditorStack()) {
MenuItem closeItem = new MenuItem(trimStackMenu, SWT.NONE);
closeItem.setText(Messages.TrimStack_CloseText);
- closeItem.addListener(SWT.Selection, new Listener() {
- @Override
- public void handleEvent(Event event) {
- partService.hidePart(selectedPart);
- }
- });
+ closeItem.addListener(SWT.Selection, event -> partService.hidePart(selectedPart));
}
}
@@ -1214,12 +1130,7 @@
hostPane = new Composite(trimStackTB.getShell(), SWT.NONE);
hostPane.setData(ShellActivationListener.DIALOG_IGNORE_KEY, Boolean.TRUE);
- hostPane.addDisposeListener(new DisposeListener() {
- @Override
- public void widgetDisposed(DisposeEvent e) {
- hostPane = null;
- }
- });
+ hostPane.addDisposeListener(e -> hostPane = null);
setHostSize();
diff --git a/bundles/org.eclipse.e4.ui.workbench.addons.swt/src/org/eclipse/e4/ui/workbench/addons/minmax/TrimStackIdHelper.java b/bundles/org.eclipse.e4.ui.workbench.addons.swt/src/org/eclipse/e4/ui/workbench/addons/minmax/TrimStackIdHelper.java
index 8557a1b..d12a42c 100644
--- a/bundles/org.eclipse.e4.ui.workbench.addons.swt/src/org/eclipse/e4/ui/workbench/addons/minmax/TrimStackIdHelper.java
+++ b/bundles/org.eclipse.e4.ui.workbench.addons.swt/src/org/eclipse/e4/ui/workbench/addons/minmax/TrimStackIdHelper.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2015 EclipseSource Munich GmbH and others.
+ * Copyright (c) 2015, 2018 EclipseSource Munich GmbH and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -55,7 +55,7 @@
public static Map<TrimStackIdPart, String> parseTrimStackId(String trimStackId) {
int index = trimStackId.indexOf('(');
String stackId = trimStackId.substring(0, index);
- Map<TrimStackIdPart, String> result = new LinkedHashMap<TrimStackIdHelper.TrimStackIdPart, String>();
+ Map<TrimStackIdPart, String> result = new LinkedHashMap<>();
result.put(TrimStackIdPart.ELEMENT_ID, stackId);
String suffix = trimStackId.substring(index);
if (ID_SUFFIX.equalsIgnoreCase(suffix)) {