Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.tooling.runtime/src/org/eclipse/papyrus/infra/gmfdiag/tooling/runtime/linklf/LinkLFShapeCompartmentEditPart.java')
-rwxr-xr-xplugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.tooling.runtime/src/org/eclipse/papyrus/infra/gmfdiag/tooling/runtime/linklf/LinkLFShapeCompartmentEditPart.java566
1 files changed, 283 insertions, 283 deletions
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.tooling.runtime/src/org/eclipse/papyrus/infra/gmfdiag/tooling/runtime/linklf/LinkLFShapeCompartmentEditPart.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.tooling.runtime/src/org/eclipse/papyrus/infra/gmfdiag/tooling/runtime/linklf/LinkLFShapeCompartmentEditPart.java
index 14fdc8c50ab..2888c0eac2e 100755
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.tooling.runtime/src/org/eclipse/papyrus/infra/gmfdiag/tooling/runtime/linklf/LinkLFShapeCompartmentEditPart.java
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.tooling.runtime/src/org/eclipse/papyrus/infra/gmfdiag/tooling/runtime/linklf/LinkLFShapeCompartmentEditPart.java
@@ -1,283 +1,283 @@
-/*****************************************************************************
- * Copyright (c) 2014-15 CEA LIST, Montages AG 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
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Anatoly Tishenko (tishenko@montages.com) - Initial API and implementation
- */
-package org.eclipse.papyrus.infra.gmfdiag.tooling.runtime.linklf;
-
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-
-import org.eclipse.draw2d.FreeformViewport;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.LayoutAnimator;
-import org.eclipse.draw2d.MarginBorder;
-import org.eclipse.draw2d.RangeModel;
-import org.eclipse.draw2d.ScrollBar;
-import org.eclipse.draw2d.ScrollPane;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.draw2d.geometry.Translatable;
-import org.eclipse.gef.EditPartViewer;
-import org.eclipse.gef.SnapToGrid;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
-import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemsAwareFreeFormLayer;
-import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
-import org.eclipse.gmf.runtime.diagram.ui.figures.ShapeCompartmentFigure;
-import org.eclipse.gmf.runtime.diagram.ui.layout.FreeFormLayoutEx;
-import org.eclipse.gmf.runtime.draw2d.ui.internal.figures.AnimatableScrollPane;
-import org.eclipse.gmf.runtime.draw2d.ui.internal.figures.OverlayScrollPaneLayout;
-import org.eclipse.gmf.runtime.draw2d.ui.mapmode.IMapMode;
-import org.eclipse.gmf.runtime.notation.View;
-
-/**
- * @since 3.3
- */
-public class LinkLFShapeCompartmentEditPart extends ShapeCompartmentEditPart {
-
- private final PropertyChangeListener myGridListener = new PropertyChangeListener() {
-
- public void propertyChange(PropertyChangeEvent evt) {
- String propertyName = evt.getPropertyName();
- if (SnapToGrid.PROPERTY_GRID_ORIGIN.equals(propertyName) || //
- SnapToGrid.PROPERTY_GRID_ENABLED.equals(propertyName) || //
- SnapToGrid.PROPERTY_GRID_SPACING.equals(propertyName)) {
-
- updateGridBehavior();
- }
- }
- };
-
- public LinkLFShapeCompartmentEditPart(View view) {
- super(view);
- }
-
- @Override
- public IFigure createFigure() {
- ShapeCompartmentFigure result = new ShapeCompartmentFigureEx(
- getCompartmentName(), getMapMode());
- result.getContentPane().setLayoutManager(getLayoutManager());
- result.getContentPane().addLayoutListener(LayoutAnimator.getDefault());
- return result;
- }
-
- @Override
- public void addNotify() {
- super.addNotify();
- getViewer().addPropertyChangeListener(myGridListener);
- updateGridBehavior();
- }
-
- @Override
- public void removeNotify() {
- getViewer().removePropertyChangeListener(myGridListener);
- super.removeNotify();
- }
-
- protected void updateGridBehavior() {
- Rectangle gridSpec = getGridSpec(getViewer());
- if (gridSpec != null) {
- setScrollGridBehaviour((ResizableCompartmentFigure) getFigure());
- }
- }
-
- protected void setScrollGridBehaviour(
- ResizableCompartmentFigure compartmentFigure) {
- ScrollPane sp = compartmentFigure.getScrollPane();
- decorateHorizontalRange(sp);
- decorateVerticalRange(sp);
- updateStepIncrements(sp);
- }
-
- private void updateStepIncrements(ScrollPane pane) {
- Rectangle gridSpec = getGridSpec(getViewer());
- if (gridSpec == null) {
- return;
- }
- ScrollBar hScroll = pane.getHorizontalScrollBar();
- hScroll.setStepIncrement(gridSpec.height);
- ScrollBar wScroll = pane.getVerticalScrollBar();
- wScroll.setStepIncrement(gridSpec.width);
- }
-
- private void decorateVerticalRange(ScrollPane pane) {
- ScrollBar scroll = pane.getVerticalScrollBar();
- RangeModel model = scroll.getRangeModel();
- if (false == model instanceof SnapToGridRangeModel) {
- SnapToGridRangeModel range = new SnapToGridRangeModel(model);
- scroll.setRangeModel(range);
- pane.getViewport().setVerticalRangeModel(range);
- }
- }
-
- private void decorateHorizontalRange(ScrollPane pane) {
- ScrollBar scroll = pane.getHorizontalScrollBar();
- RangeModel model = scroll.getRangeModel();
- if (false == model instanceof SnapToGridRangeModel) {
- SnapToGridRangeModel range = new SnapToGridRangeModel(model);
- scroll.setRangeModel(range);
- pane.getViewport().setHorizontalRangeModel(range);
- }
- }
-
- protected static Rectangle getGridSpec(EditPartViewer viewer) {
- Boolean enabled = (Boolean) viewer
- .getProperty(SnapToGrid.PROPERTY_GRID_ENABLED);
- if (enabled == null || !enabled) {
- return null;
- }
- int gridX = 0;
- int gridY = 0;
- Point origin;
- Dimension spacing = (Dimension) viewer
- .getProperty(SnapToGrid.PROPERTY_GRID_SPACING);
- if (spacing != null) {
- gridX = spacing.width;
- gridY = spacing.height;
- }
- if (gridX == 0) {
- gridX = SnapToGrid.DEFAULT_GRID_SIZE;
- }
- if (gridY == 0) {
- gridY = SnapToGrid.DEFAULT_GRID_SIZE;
- }
- Point loc = (Point) viewer.getProperty(SnapToGrid.PROPERTY_GRID_ORIGIN);
- if (loc != null) {
- origin = loc;
- } else {
- origin = new Point();
- }
-
- return new Rectangle(origin.x, origin.y, gridX, gridY);
-
- }
-
- private class SnapToGridRangeModel implements RangeModel {
-
- private final RangeModel myBaseRangeModel;
-
- public SnapToGridRangeModel(RangeModel rangeModel) {
- myBaseRangeModel = rangeModel;
- }
-
- public void setValue(int value) {
- Rectangle gridSpec = getGridSpec(getViewer());
- if (gridSpec != null) {
- value = Math.max(value, 0);
- value = gridSpec.height * (value / gridSpec.height);
- }
- if (value + getMinimum() <= getMaximum()) {
- myBaseRangeModel.setValue(value);
- }
- }
-
- public void setMinimum(int min) {
- myBaseRangeModel.setMinimum(min);
- }
-
- public void setMaximum(int max) {
- myBaseRangeModel.setMaximum(max);
- }
-
- public void setExtent(int extent) {
- myBaseRangeModel.setExtent(extent);
- }
-
- public void setAll(int min, int extent, int max) {
- myBaseRangeModel.setAll(min, extent, max);
- }
-
- public void removePropertyChangeListener(PropertyChangeListener listener) {
- myBaseRangeModel.removePropertyChangeListener(listener);
- }
-
- public boolean isEnabled() {
- return true;
- }
-
- public int getValue() {
- return myBaseRangeModel.getValue();
- }
-
- public int getMinimum() {
- return myBaseRangeModel.getMinimum();
- }
-
- public int getMaximum() {
- return myBaseRangeModel.getMaximum();
- }
-
- public int getExtent() {
- return myBaseRangeModel.getExtent();
- }
-
- public void addPropertyChangeListener(PropertyChangeListener listener) {
- myBaseRangeModel.addPropertyChangeListener(listener);
- }
- }
-
- public static class ShapeCompartmentFigureEx extends ShapeCompartmentFigure {
-
- public ShapeCompartmentFigureEx(String title, IMapMode mm) {
- super(title, mm);
- }
-
- @Override
- protected void configureFigure(IMapMode mm) {
- ScrollPane scrollpane = getScrollPane();
- if (scrollpane == null) {
- scrollpane = scrollPane = new AnimatableScrollPaneWithMM(mm);
- }
- scrollpane.setViewport(new FreeformViewport());
- scrollPane.setScrollBarVisibility(ScrollPane.AUTOMATIC);
- scrollpane.setLayoutManager(new OverlayScrollPaneLayout());
-
- IFigure contents = new BorderItemsAwareFreeFormLayer();
- contents.setLayoutManager(new FreeFormLayoutEx());
- scrollpane.setContents(contents);
-
- int MB = mm.DPtoLP(5);
- scrollpane.setBorder(new MarginBorder(MB, MB, MB, MB));
- int SZ = mm.DPtoLP(10);
- scrollpane.setMinimumSize(new Dimension(SZ, SZ));
-
- this.setFont(FONT_TITLE);
- }
-
- }
-
- private static class AnimatableScrollPaneWithMM extends
- AnimatableScrollPane implements IMapMode {
-
- private IMapMode myMapMode;
-
- public AnimatableScrollPaneWithMM(IMapMode mm) {
- myMapMode = mm;
- }
-
- public int LPtoDP(int logicalUnit) {
- return myMapMode.LPtoDP(logicalUnit);
- }
-
- public int DPtoLP(int deviceUnit) {
- return myMapMode.DPtoLP(deviceUnit);
- }
-
- public Translatable LPtoDP(Translatable t) {
- return myMapMode.LPtoDP(t);
- }
-
- public Translatable DPtoLP(Translatable t) {
- return myMapMode.DPtoLP(t);
- }
- }
-
-}
+/*****************************************************************************
+ * Copyright (c) 2014-15 CEA LIST, Montages AG 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
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Anatoly Tishenko (tishenko@montages.com) - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.gmfdiag.tooling.runtime.linklf;
+
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+
+import org.eclipse.draw2d.FreeformViewport;
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.LayoutAnimator;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.RangeModel;
+import org.eclipse.draw2d.ScrollBar;
+import org.eclipse.draw2d.ScrollPane;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.draw2d.geometry.Translatable;
+import org.eclipse.gef.EditPartViewer;
+import org.eclipse.gef.SnapToGrid;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemsAwareFreeFormLayer;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ShapeCompartmentFigure;
+import org.eclipse.gmf.runtime.diagram.ui.layout.FreeFormLayoutEx;
+import org.eclipse.gmf.runtime.draw2d.ui.internal.figures.AnimatableScrollPane;
+import org.eclipse.gmf.runtime.draw2d.ui.internal.figures.OverlayScrollPaneLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.mapmode.IMapMode;
+import org.eclipse.gmf.runtime.notation.View;
+
+/**
+ * @since 3.3
+ */
+public class LinkLFShapeCompartmentEditPart extends ShapeCompartmentEditPart {
+
+ private final PropertyChangeListener myGridListener = new PropertyChangeListener() {
+
+ public void propertyChange(PropertyChangeEvent evt) {
+ String propertyName = evt.getPropertyName();
+ if (SnapToGrid.PROPERTY_GRID_ORIGIN.equals(propertyName) || //
+ SnapToGrid.PROPERTY_GRID_ENABLED.equals(propertyName) || //
+ SnapToGrid.PROPERTY_GRID_SPACING.equals(propertyName)) {
+
+ updateGridBehavior();
+ }
+ }
+ };
+
+ public LinkLFShapeCompartmentEditPart(View view) {
+ super(view);
+ }
+
+ @Override
+ public IFigure createFigure() {
+ ShapeCompartmentFigure result = new ShapeCompartmentFigureEx(
+ getCompartmentName(), getMapMode());
+ result.getContentPane().setLayoutManager(getLayoutManager());
+ result.getContentPane().addLayoutListener(LayoutAnimator.getDefault());
+ return result;
+ }
+
+ @Override
+ public void addNotify() {
+ super.addNotify();
+ getViewer().addPropertyChangeListener(myGridListener);
+ updateGridBehavior();
+ }
+
+ @Override
+ public void removeNotify() {
+ getViewer().removePropertyChangeListener(myGridListener);
+ super.removeNotify();
+ }
+
+ protected void updateGridBehavior() {
+ Rectangle gridSpec = getGridSpec(getViewer());
+ if (gridSpec != null) {
+ setScrollGridBehaviour((ResizableCompartmentFigure) getFigure());
+ }
+ }
+
+ protected void setScrollGridBehaviour(
+ ResizableCompartmentFigure compartmentFigure) {
+ ScrollPane sp = compartmentFigure.getScrollPane();
+ decorateHorizontalRange(sp);
+ decorateVerticalRange(sp);
+ updateStepIncrements(sp);
+ }
+
+ private void updateStepIncrements(ScrollPane pane) {
+ Rectangle gridSpec = getGridSpec(getViewer());
+ if (gridSpec == null) {
+ return;
+ }
+ ScrollBar hScroll = pane.getHorizontalScrollBar();
+ hScroll.setStepIncrement(gridSpec.height);
+ ScrollBar wScroll = pane.getVerticalScrollBar();
+ wScroll.setStepIncrement(gridSpec.width);
+ }
+
+ private void decorateVerticalRange(ScrollPane pane) {
+ ScrollBar scroll = pane.getVerticalScrollBar();
+ RangeModel model = scroll.getRangeModel();
+ if (false == model instanceof SnapToGridRangeModel) {
+ SnapToGridRangeModel range = new SnapToGridRangeModel(model);
+ scroll.setRangeModel(range);
+ pane.getViewport().setVerticalRangeModel(range);
+ }
+ }
+
+ private void decorateHorizontalRange(ScrollPane pane) {
+ ScrollBar scroll = pane.getHorizontalScrollBar();
+ RangeModel model = scroll.getRangeModel();
+ if (false == model instanceof SnapToGridRangeModel) {
+ SnapToGridRangeModel range = new SnapToGridRangeModel(model);
+ scroll.setRangeModel(range);
+ pane.getViewport().setHorizontalRangeModel(range);
+ }
+ }
+
+ protected static Rectangle getGridSpec(EditPartViewer viewer) {
+ Boolean enabled = (Boolean) viewer
+ .getProperty(SnapToGrid.PROPERTY_GRID_ENABLED);
+ if (enabled == null || !enabled) {
+ return null;
+ }
+ int gridX = 0;
+ int gridY = 0;
+ Point origin;
+ Dimension spacing = (Dimension) viewer
+ .getProperty(SnapToGrid.PROPERTY_GRID_SPACING);
+ if (spacing != null) {
+ gridX = spacing.width;
+ gridY = spacing.height;
+ }
+ if (gridX == 0) {
+ gridX = SnapToGrid.DEFAULT_GRID_SIZE;
+ }
+ if (gridY == 0) {
+ gridY = SnapToGrid.DEFAULT_GRID_SIZE;
+ }
+ Point loc = (Point) viewer.getProperty(SnapToGrid.PROPERTY_GRID_ORIGIN);
+ if (loc != null) {
+ origin = loc;
+ } else {
+ origin = new Point();
+ }
+
+ return new Rectangle(origin.x, origin.y, gridX, gridY);
+
+ }
+
+ private class SnapToGridRangeModel implements RangeModel {
+
+ private final RangeModel myBaseRangeModel;
+
+ public SnapToGridRangeModel(RangeModel rangeModel) {
+ myBaseRangeModel = rangeModel;
+ }
+
+ public void setValue(int value) {
+ Rectangle gridSpec = getGridSpec(getViewer());
+ if (gridSpec != null) {
+ value = Math.max(value, 0);
+ value = gridSpec.height * (value / gridSpec.height);
+ }
+ if (value + getMinimum() <= getMaximum()) {
+ myBaseRangeModel.setValue(value);
+ }
+ }
+
+ public void setMinimum(int min) {
+ myBaseRangeModel.setMinimum(min);
+ }
+
+ public void setMaximum(int max) {
+ myBaseRangeModel.setMaximum(max);
+ }
+
+ public void setExtent(int extent) {
+ myBaseRangeModel.setExtent(extent);
+ }
+
+ public void setAll(int min, int extent, int max) {
+ myBaseRangeModel.setAll(min, extent, max);
+ }
+
+ public void removePropertyChangeListener(PropertyChangeListener listener) {
+ myBaseRangeModel.removePropertyChangeListener(listener);
+ }
+
+ public boolean isEnabled() {
+ return true;
+ }
+
+ public int getValue() {
+ return myBaseRangeModel.getValue();
+ }
+
+ public int getMinimum() {
+ return myBaseRangeModel.getMinimum();
+ }
+
+ public int getMaximum() {
+ return myBaseRangeModel.getMaximum();
+ }
+
+ public int getExtent() {
+ return myBaseRangeModel.getExtent();
+ }
+
+ public void addPropertyChangeListener(PropertyChangeListener listener) {
+ myBaseRangeModel.addPropertyChangeListener(listener);
+ }
+ }
+
+ public static class ShapeCompartmentFigureEx extends ShapeCompartmentFigure {
+
+ public ShapeCompartmentFigureEx(String title, IMapMode mm) {
+ super(title, mm);
+ }
+
+ @Override
+ protected void configureFigure(IMapMode mm) {
+ ScrollPane scrollpane = getScrollPane();
+ if (scrollpane == null) {
+ scrollpane = scrollPane = new AnimatableScrollPaneWithMM(mm);
+ }
+ scrollpane.setViewport(new FreeformViewport());
+ scrollPane.setScrollBarVisibility(ScrollPane.AUTOMATIC);
+ scrollpane.setLayoutManager(new OverlayScrollPaneLayout());
+
+ IFigure contents = new BorderItemsAwareFreeFormLayer();
+ contents.setLayoutManager(new FreeFormLayoutEx());
+ scrollpane.setContents(contents);
+
+ int MB = mm.DPtoLP(5);
+ scrollpane.setBorder(new MarginBorder(MB, MB, MB, MB));
+ int SZ = mm.DPtoLP(10);
+ scrollpane.setMinimumSize(new Dimension(SZ, SZ));
+
+ this.setFont(FONT_TITLE);
+ }
+
+ }
+
+ private static class AnimatableScrollPaneWithMM extends
+ AnimatableScrollPane implements IMapMode {
+
+ private IMapMode myMapMode;
+
+ public AnimatableScrollPaneWithMM(IMapMode mm) {
+ myMapMode = mm;
+ }
+
+ public int LPtoDP(int logicalUnit) {
+ return myMapMode.LPtoDP(logicalUnit);
+ }
+
+ public int DPtoLP(int deviceUnit) {
+ return myMapMode.DPtoLP(deviceUnit);
+ }
+
+ public Translatable LPtoDP(Translatable t) {
+ return myMapMode.LPtoDP(t);
+ }
+
+ public Translatable DPtoLP(Translatable t) {
+ return myMapMode.DPtoLP(t);
+ }
+ }
+
+}

Back to the top