Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTom Schindl2016-11-25 20:35:26 +0000
committerTom Schindl2016-11-25 20:35:26 +0000
commit21845b5cc2713db7af7d5d2c46e2ed6dcd68e56d (patch)
tree64d925854142bce32640d619fb9bdb32f9ff8280
parent89173129c335c37cc9d44c06aade0d01356d76c3 (diff)
downloadorg.eclipse.efxclipse-21845b5cc2713db7af7d5d2c46e2ed6dcd68e56d.tar.gz
org.eclipse.efxclipse-21845b5cc2713db7af7d5d2c46e2ed6dcd68e56d.tar.xz
org.eclipse.efxclipse-21845b5cc2713db7af7d5d2c46e2ed6dcd68e56d.zip
refs #33
adding conditional feature to pause CSS/Layout for PartStack children Change-Id: I44199344e062fe9b58a25be7d99b6e8b8f2fe005
-rwxr-xr-xbundles/runtime/org.eclipse.fx.ui.workbench.renderers.fx/src/org/eclipse/fx/ui/workbench/renderers/fx/widget/WLayoutedWidgetImpl.java42
1 files changed, 33 insertions, 9 deletions
diff --git a/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.fx/src/org/eclipse/fx/ui/workbench/renderers/fx/widget/WLayoutedWidgetImpl.java b/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.fx/src/org/eclipse/fx/ui/workbench/renderers/fx/widget/WLayoutedWidgetImpl.java
index 6febb05a5..7e0fd49fe 100755
--- a/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.fx/src/org/eclipse/fx/ui/workbench/renderers/fx/widget/WLayoutedWidgetImpl.java
+++ b/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.fx/src/org/eclipse/fx/ui/workbench/renderers/fx/widget/WLayoutedWidgetImpl.java
@@ -12,24 +12,21 @@ package org.eclipse.fx.ui.workbench.renderers.fx.widget;
import java.util.List;
-import javafx.scene.Node;
-import javafx.scene.input.DragEvent;
-import javafx.scene.input.MouseDragEvent;
-import javafx.scene.layout.Pane;
-import javafx.scene.layout.StackPane;
-
import javax.inject.Inject;
import javax.inject.Named;
import org.eclipse.e4.core.di.annotations.Optional;
import org.eclipse.e4.ui.model.application.ui.MUIElement;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.e4.ui.model.application.ui.basic.MPartStack;
import org.eclipse.e4.ui.workbench.UIEvents;
import org.eclipse.e4.ui.workbench.modeling.EModelService;
import org.eclipse.fx.core.log.Log;
import org.eclipse.fx.core.log.Logger;
import org.eclipse.fx.ui.controls.dnd.EFXDragEvent;
-import org.eclipse.fx.ui.workbench.renderers.base.services.DnDService;
+import org.eclipse.fx.ui.panes.LazyStackPane;
import org.eclipse.fx.ui.workbench.renderers.base.services.DnDFeedbackService;
+import org.eclipse.fx.ui.workbench.renderers.base.services.DnDService;
import org.eclipse.fx.ui.workbench.renderers.base.widget.WCallback;
import org.eclipse.fx.ui.workbench.renderers.base.widget.WLayoutedWidget;
import org.eclipse.fx.ui.workbench.renderers.fx.internal.DnDSupport;
@@ -38,6 +35,11 @@ import org.eclipse.fx.ui.workbench.services.ModelService;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jdt.annotation.Nullable;
+import javafx.scene.Node;
+import javafx.scene.input.DragEvent;
+import javafx.scene.input.MouseDragEvent;
+import javafx.scene.layout.Pane;
+
/**
* Base implementation for all {@link WLayoutedWidget} implementations
*
@@ -54,6 +56,8 @@ public abstract class WLayoutedWidgetImpl<N, NN extends Node, M extends MUIEleme
private double weight = 10;
private WCallback<@NonNull DropData, @Nullable Void> dropCallback;
+ private static final boolean OPTIMIZED_STACK_LAYOUT = Boolean.getBoolean("efxclipse.experimental.optstack"); //$NON-NLS-1$
+
@Inject
@NonNull
DnDFeedbackService feedbackService;
@@ -144,15 +148,35 @@ public abstract class WLayoutedWidgetImpl<N, NN extends Node, M extends MUIEleme
return this.dropCallback;
}
+ private boolean stateCheck(LazyStackPane.CheckType type) {
+ if( ! OPTIMIZED_STACK_LAYOUT ) {
+ return true;
+ }
+
+ if( getDomElement() instanceof MPart ) {
+ MPart p = (MPart) getDomElement();
+ if( p != null && ((MUIElement)p.getParent()) instanceof MPartStack ) {
+ if( p.getParent().getSelectedElement() == p ) {
+ return true;
+ } else {
+ return false;
+ }
+ } else {
+ return true;
+ }
+ } else {
+ return true;
+ }
+ }
+
/**
* Create the static layout pane
*
* @return the layout pane
*/
- @SuppressWarnings("static-method")
@NonNull
protected Pane createStaticPane() {
- return new StackPane();
+ return new LazyStackPane(this::stateCheck);
}
@Override

Back to the top