Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTom Schindl2015-11-26 10:46:22 +0000
committerTom Schindl2015-11-26 10:46:22 +0000
commitf43e5e72cb05d10c57fb50cccc63d86f32293f4d (patch)
treef9af76bfdf60de884b2d86716093d6af1263956d
parent3e83697a12f231de4f50626e55123e8370ae4c94 (diff)
downloadorg.eclipse.efxclipse-f43e5e72cb05d10c57fb50cccc63d86f32293f4d.tar.gz
org.eclipse.efxclipse-f43e5e72cb05d10c57fb50cccc63d86f32293f4d.tar.xz
org.eclipse.efxclipse-f43e5e72cb05d10c57fb50cccc63d86f32293f4d.zip
Bug 409340 - [e4] Add support for min/max
-rw-r--r--bundles/runtime/org.eclipse.fx.ui.workbench.renderers.fx/src/org/eclipse/fx/ui/workbench/renderers/fx/internal/PerspectiveMaximizationServiceImpl.java25
-rw-r--r--bundles/runtime/org.eclipse.fx.ui.workbench.renderers.fx/src/org/eclipse/fx/ui/workbench/renderers/fx/services/ProgressiveMaximizationTransitionService.java65
2 files changed, 47 insertions, 43 deletions
diff --git a/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.fx/src/org/eclipse/fx/ui/workbench/renderers/fx/internal/PerspectiveMaximizationServiceImpl.java b/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.fx/src/org/eclipse/fx/ui/workbench/renderers/fx/internal/PerspectiveMaximizationServiceImpl.java
index d9b9297c0..a4aea5f26 100644
--- a/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.fx/src/org/eclipse/fx/ui/workbench/renderers/fx/internal/PerspectiveMaximizationServiceImpl.java
+++ b/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.fx/src/org/eclipse/fx/ui/workbench/renderers/fx/internal/PerspectiveMaximizationServiceImpl.java
@@ -15,7 +15,6 @@ import javax.inject.Inject;
import org.eclipse.e4.ui.model.application.ui.MUIElement;
import org.eclipse.e4.ui.model.application.ui.advanced.MPerspective;
import org.eclipse.e4.ui.model.application.ui.advanced.MPlaceholder;
-import org.eclipse.e4.ui.model.application.ui.basic.MPart;
import org.eclipse.e4.ui.workbench.modeling.EModelService;
import org.eclipse.e4.ui.workbench.modeling.EPartService;
import org.eclipse.fx.ui.workbench.renderers.base.services.MaximizationService;
@@ -25,6 +24,8 @@ import org.eclipse.jdt.annotation.NonNull;
/**
* Maximization service implementation for maximized content in perspectives.
+ *
+ * @since 2.2.0
*/
public class PerspectiveMaximizationServiceImpl implements MaximizationService {
@@ -33,42 +34,42 @@ public class PerspectiveMaximizationServiceImpl implements MaximizationService {
*/
@Inject
protected MPerspective perspective;
-
+
/**
* Model service
*/
@Inject
protected EModelService modelService;
-
+
/**
* Part service
*/
@Inject
protected EPartService partService;
-
+
/**
* Current maximized element
*/
protected MUIElement maximizedElement;
-
+
@Override
- public void maximize(@NonNull MUIElement element) {
+ public void maximize(@NonNull MUIElement element) {
MUIElement maxElement = element;
MPlaceholder placeHolder = maxElement.getCurSharedRef();
if (placeHolder != null) {
maxElement = placeHolder;
}
-
+
if (this.maximizedElement != null) {
- if(this.maximizedElement == maxElement) {
+ if (this.maximizedElement == maxElement) {
return;
}
restore();
}
-
+
WMaximizationHost widget = (WMaximizationHost) this.perspective.getWidget();
WLayoutedWidget<MUIElement> childWidget = (WLayoutedWidget<MUIElement>) maxElement.getWidget();
-
+
if (widget != null && childWidget != null) {
widget.setMaximizedContent(childWidget);
this.perspective.getPersistedState().put("MAXIMIZED", maxElement.getElementId()); //$NON-NLS-1$
@@ -81,8 +82,8 @@ public class PerspectiveMaximizationServiceImpl implements MaximizationService {
WMaximizationHost widget = (WMaximizationHost) this.perspective.getWidget();
WLayoutedWidget<? extends MUIElement> childWidget = null;
- if (this.maximizedElement instanceof MPlaceholder){
- childWidget = (WLayoutedWidget<MUIElement>) ((MPlaceholder)this.maximizedElement).getRef().getWidget();
+ if (this.maximizedElement instanceof MPlaceholder) {
+ childWidget = (WLayoutedWidget<MUIElement>) ((MPlaceholder) this.maximizedElement).getRef().getWidget();
} else {
childWidget = (WLayoutedWidget<MUIElement>) this.maximizedElement.getWidget();
}
diff --git a/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.fx/src/org/eclipse/fx/ui/workbench/renderers/fx/services/ProgressiveMaximizationTransitionService.java b/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.fx/src/org/eclipse/fx/ui/workbench/renderers/fx/services/ProgressiveMaximizationTransitionService.java
index 5c423c75d..f41499a02 100644
--- a/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.fx/src/org/eclipse/fx/ui/workbench/renderers/fx/services/ProgressiveMaximizationTransitionService.java
+++ b/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.fx/src/org/eclipse/fx/ui/workbench/renderers/fx/services/ProgressiveMaximizationTransitionService.java
@@ -25,18 +25,19 @@ import javafx.scene.layout.Region;
import javafx.util.Duration;
/**
- *
- * Maximization transition performing growing/shrinking of the maximized component until
- * maximize/original size is reached.
*
+ * Maximization transition performing growing/shrinking of the maximized
+ * component until maximize/original size is reached.
+ *
+ * @since 2.2.0
*/
public class ProgressiveMaximizationTransitionService implements MaximizationTransitionService<Pane, Region> {
@Override
public void maximize(Pane commonRoot, Pane greyPane, Pane containerPane, Region node, Runnable finished) {
-
+
Bounds bounds = getBoundsInParent(commonRoot, node);
-
+
Pane pane = new Pane();
pane.getChildren().add(node);
node.setTranslateX(bounds.getMinX());
@@ -44,33 +45,33 @@ public class ProgressiveMaximizationTransitionService implements MaximizationTra
node.setPrefWidth(node.getWidth());
node.setPrefHeight(node.getHeight());
containerPane.getChildren().add(pane);
-
+
Timeline timeline = new Timeline();
timeline.setCycleCount(1);
-
+
double duration = 300;
Interpolator interpolator = Interpolator.EASE_BOTH;
-
+
KeyValue kvOpacity = new KeyValue(greyPane.opacityProperty(), 1.0, interpolator);
KeyFrame kfOpacity = new KeyFrame(Duration.millis(duration), kvOpacity);
timeline.getKeyFrames().add(kfOpacity);
-
+
KeyValue kv = new KeyValue(node.translateXProperty(), 0, interpolator);
KeyFrame kf = new KeyFrame(Duration.millis(duration), kv);
timeline.getKeyFrames().add(kf);
-
+
KeyValue kvY = new KeyValue(node.translateYProperty(), 0, interpolator);
KeyFrame kfY = new KeyFrame(Duration.millis(duration), kvY);
timeline.getKeyFrames().add(kfY);
-
- KeyValue kvYWidth= new KeyValue(node.prefWidthProperty(), commonRoot.getWidth(), interpolator);
+
+ KeyValue kvYWidth = new KeyValue(node.prefWidthProperty(), commonRoot.getWidth(), interpolator);
KeyFrame kfYWidth = new KeyFrame(Duration.millis(duration), kvYWidth);
timeline.getKeyFrames().add(kfYWidth);
-
- KeyValue kvYHeight= new KeyValue(node.prefHeightProperty(), commonRoot.getHeight(), interpolator);
+
+ KeyValue kvYHeight = new KeyValue(node.prefHeightProperty(), commonRoot.getHeight(), interpolator);
KeyFrame kfYHeight = new KeyFrame(Duration.millis(duration), kvYHeight);
timeline.getKeyFrames().add(kfYHeight);
-
+
timeline.setOnFinished(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
@@ -80,45 +81,45 @@ public class ProgressiveMaximizationTransitionService implements MaximizationTra
finished.run();
}
});
-
+
timeline.play();
}
@Override
public void restore(Pane commonRoot, Pane greyPane, Pane containerPane, Pane nodeContainer, Region node, Runnable finished) {
-
+
Bounds bounds = getBoundsInParent(commonRoot, nodeContainer);
-
+
Pane pane = new Pane();
pane.getChildren().add(node);
node.setPrefSize(node.getWidth(), node.getHeight());
containerPane.getChildren().add(pane);
-
+
Timeline timeline = new Timeline();
timeline.setCycleCount(1);
-
+
double duration = 300;
Interpolator interpolator = Interpolator.EASE_BOTH;
-
+
KeyValue kvOpacity = new KeyValue(greyPane.opacityProperty(), 0.0, interpolator);
final KeyFrame kfOpacity = new KeyFrame(Duration.millis(duration), kvOpacity);
timeline.getKeyFrames().add(kfOpacity);
-
+
KeyValue kv = new KeyValue(node.translateXProperty(), bounds.getMinX(), interpolator);
KeyFrame kf = new KeyFrame(Duration.millis(duration), kv);
timeline.getKeyFrames().add(kf);
KeyValue kvY = new KeyValue(node.translateYProperty(), bounds.getMinY(), interpolator);
KeyFrame kfY = new KeyFrame(Duration.millis(duration), kvY);
timeline.getKeyFrames().add(kfY);
-
- KeyValue kvYWidth= new KeyValue(node.prefWidthProperty(), bounds.getWidth(), interpolator);
+
+ KeyValue kvYWidth = new KeyValue(node.prefWidthProperty(), bounds.getWidth(), interpolator);
KeyFrame kfYWidth = new KeyFrame(Duration.millis(duration), kvYWidth);
timeline.getKeyFrames().add(kfYWidth);
-
- KeyValue kvYHeight= new KeyValue(node.prefHeightProperty(), bounds.getHeight(), interpolator);
+
+ KeyValue kvYHeight = new KeyValue(node.prefHeightProperty(), bounds.getHeight(), interpolator);
KeyFrame kfYHeight = new KeyFrame(Duration.millis(duration), kvYHeight);
timeline.getKeyFrames().add(kfYHeight);
-
+
timeline.setOnFinished(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
@@ -128,15 +129,17 @@ public class ProgressiveMaximizationTransitionService implements MaximizationTra
finished.run();
}
});
-
+
timeline.play();
}
/**
* Utility to get a child's bound relative to an ancestor.
- *
- * @param parentNode ancestor to get child bounds for
- * @param childNode child
+ *
+ * @param parentNode
+ * ancestor to get child bounds for
+ * @param childNode
+ * child
* @return bounds of child relative to ancestor
*/
private static Bounds getBoundsInParent(Node parentNode, Node childNode) {

Back to the top