diff options
author | ptessier | 2014-02-19 13:12:15 +0000 |
---|---|---|
committer | ptessier | 2014-02-19 13:12:15 +0000 |
commit | 255a590dbfddf553fc5bd5d1422f6b60c72690df (patch) | |
tree | 0d1f4333e07a33f6d691e56ff195b7bf33e017b8 /plugins/sysml | |
parent | c45050eef7a8b729c3c5519a682fc021034bef46 (diff) | |
parent | c16ef5a1249f77d2e8fde41a289b18bbe34f4814 (diff) | |
download | org.eclipse.papyrus-255a590dbfddf553fc5bd5d1422f6b60c72690df.tar.gz org.eclipse.papyrus-255a590dbfddf553fc5bd5d1422f6b60c72690df.tar.xz org.eclipse.papyrus-255a590dbfddf553fc5bd5d1422f6b60c72690df.zip |
Merge branch 'master' into bugs/386118-emf-facet
Conflicts:
plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/META-INF/MANIFEST.MF
plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.menu/META-INF/MANIFEST.MF
Diffstat (limited to 'plugins/sysml')
2 files changed, 134 insertions, 107 deletions
diff --git a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.common/META-INF/MANIFEST.MF b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.common/META-INF/MANIFEST.MF index 1fbe843a56b..f0a1e8be392 100644 --- a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.common/META-INF/MANIFEST.MF +++ b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.common/META-INF/MANIFEST.MF @@ -1,76 +1,75 @@ -Manifest-Version: 1.0
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime,
- org.eclipse.papyrus.infra.core;bundle-version="1.0.0",
- org.eclipse.emf;bundle-version="2.6.0",
- org.eclipse.uml2.uml;bundle-version="3.1.0",
- org.eclipse.papyrus.sysml;bundle-version="1.0.0",
- org.eclipse.papyrus.uml.tools.utils;bundle-version="1.0.0",
- org.eclipse.core.expressions,
- org.eclipse.papyrus.uml.diagram.common;bundle-version="1.0.0",
- org.eclipse.papyrus.editor;bundle-version="1.0.0",
- org.eclipse.papyrus.infra.gmfdiag.preferences;bundle-version="1.0.0",
- org.eclipse.papyrus.extensionpoints.editors;bundle-version="1.0.0",
- org.eclipse.papyrus.infra.services.edit;bundle-version="1.0.0",
- org.eclipse.papyrus.uml.service.types;bundle-version="1.0.0",
- org.eclipse.papyrus.sysml.service.types;bundle-version="1.0.0",
- org.eclipse.papyrus.infra.widgets.toolbox;bundle-version="1.0.0",
- org.eclipse.papyrus.infra.widgets;bundle-version="1.0.0",
- org.eclipse.papyrus.uml.modelexplorer.widgets;bundle-version="1.0.0",
- org.eclipse.draw2d;bundle-version="3.7.1",
- org.eclipse.gmf.runtime.diagram.core;bundle-version="1.4.1",
- org.eclipse.gmf.runtime.diagram.ui;bundle-version="1.5.0",
- org.eclipse.papyrus.uml.tools;bundle-version="1.0.0",
- org.eclipse.papyrus.infra.emf;bundle-version="1.0.0",
- org.eclipse.papyrus.infra.gmfdiag.common;bundle-version="1.0.0",
- org.eclipse.papyrus.infra.emf.appearance;bundle-version="1.0.0",
- org.eclipse.papyrus.uml.pastemanager;bundle-version="1.0.0",
- org.eclipse.papyrus.infra.core.log;bundle-version="1.0.0",
- org.eclipse.uml2.common.edit;bundle-version="1.6.0",
- org.eclipse.uml2.uml.edit;bundle-version="4.0.0",
- org.eclipse.papyrus.infra.gmfdiag.commands;bundle-version="1.0.0",
- org.eclipse.emf.edit.ui;bundle-version="2.8.0",
- org.eclipse.emf.facet.infra.browser.uicore;bundle-version="0.2.0",
- org.eclipse.papyrus.infra.services.labelprovider;bundle-version="1.0.0",
- org.eclipse.gmf.tooling.runtime;bundle-version="3.1.0",
+Manifest-Version: 1.0 +Require-Bundle: org.eclipse.ui, + org.eclipse.core.runtime, + org.eclipse.papyrus.infra.core;bundle-version="1.0.0", + org.eclipse.emf;bundle-version="2.6.0", + org.eclipse.uml2.uml;bundle-version="3.1.0", + org.eclipse.papyrus.sysml;bundle-version="1.0.0", + org.eclipse.papyrus.uml.tools.utils;bundle-version="1.0.0", + org.eclipse.core.expressions, + org.eclipse.papyrus.uml.diagram.common;bundle-version="1.0.0", + org.eclipse.papyrus.editor;bundle-version="1.0.0", + org.eclipse.papyrus.infra.gmfdiag.preferences;bundle-version="1.0.0", + org.eclipse.papyrus.extensionpoints.editors;bundle-version="1.0.0", + org.eclipse.papyrus.infra.services.edit;bundle-version="1.0.0", + org.eclipse.papyrus.uml.service.types;bundle-version="1.0.0", + org.eclipse.papyrus.sysml.service.types;bundle-version="1.0.0", + org.eclipse.papyrus.infra.widgets.toolbox;bundle-version="1.0.0", + org.eclipse.papyrus.infra.widgets;bundle-version="1.0.0", + org.eclipse.papyrus.uml.modelexplorer.widgets;bundle-version="1.0.0", + org.eclipse.draw2d;bundle-version="3.7.1", + org.eclipse.gmf.runtime.diagram.core;bundle-version="1.4.1", + org.eclipse.gmf.runtime.diagram.ui;bundle-version="1.5.0", + org.eclipse.papyrus.uml.tools;bundle-version="1.0.0", + org.eclipse.papyrus.infra.emf;bundle-version="1.0.0", + org.eclipse.papyrus.infra.gmfdiag.common;bundle-version="1.0.0", + org.eclipse.papyrus.infra.emf.appearance;bundle-version="1.0.0", + org.eclipse.papyrus.infra.core.log;bundle-version="1.0.0", + org.eclipse.uml2.common.edit;bundle-version="1.6.0", + org.eclipse.uml2.uml.edit;bundle-version="4.0.0", + org.eclipse.papyrus.infra.gmfdiag.commands;bundle-version="1.0.0", + org.eclipse.emf.edit.ui;bundle-version="2.8.0", + org.eclipse.emf.facet.infra.browser.uicore;bundle-version="0.2.0", + org.eclipse.papyrus.infra.services.labelprovider;bundle-version="1.0.0", + org.eclipse.gmf.tooling.runtime;bundle-version="3.1.0", org.eclipse.papyrus.uml.diagram.composite;bundle-version="1.0.0",
org.eclipse.papyrus.infra.tools;bundle-version="1.0.0",
org.eclipse.papyrus.infra.extendedtypes;bundle-version="1.0.0"
-Export-Package: org.eclipse.papyrus.gmf.diagram.common.commands,
- org.eclipse.papyrus.gmf.diagram.common.compatibility,
- org.eclipse.papyrus.gmf.diagram.common.edit.part,
- org.eclipse.papyrus.gmf.diagram.common.edit.policy,
- org.eclipse.papyrus.gmf.diagram.common.factory,
- org.eclipse.papyrus.gmf.diagram.common.figure,
- org.eclipse.papyrus.gmf.diagram.common.locator,
- org.eclipse.papyrus.gmf.diagram.common.parser,
- org.eclipse.papyrus.gmf.diagram.common.provider,
- org.eclipse.papyrus.sysml.diagram.common,
- org.eclipse.papyrus.sysml.diagram.common.commands,
- org.eclipse.papyrus.sysml.diagram.common.dialogs,
- org.eclipse.papyrus.sysml.diagram.common.edit.part,
- org.eclipse.papyrus.sysml.diagram.common.edit.policy,
- org.eclipse.papyrus.sysml.diagram.common.factory,
- org.eclipse.papyrus.sysml.diagram.common.figure,
- org.eclipse.papyrus.sysml.diagram.common.messages,
- org.eclipse.papyrus.sysml.diagram.common.parser,
- org.eclipse.papyrus.sysml.diagram.common.preferences,
- org.eclipse.papyrus.sysml.diagram.common.utils,
- org.eclipse.papyrus.uml.diagram.common.dnd.helper,
- org.eclipse.papyrus.uml.diagram.common.edit.part,
- org.eclipse.papyrus.uml.diagram.common.edit.policy,
- org.eclipse.papyrus.uml.diagram.common.factory,
- org.eclipse.papyrus.uml.diagram.common.figure,
- org.eclipse.papyrus.uml.diagram.common.parser,
- org.eclipse.papyrus.uml.diagram.common.utils
-Bundle-Vendor: %providerName
-Bundle-ActivationPolicy: lazy
-Bundle-Version: 1.0.0.qualifier
-Bundle-Name: %pluginName
-Bundle-Localization: plugin
-Bundle-ManifestVersion: 2
-Bundle-Activator: org.eclipse.papyrus.sysml.diagram.common.Activator
-Bundle-SymbolicName: org.eclipse.papyrus.sysml.diagram.common;singleto
- n:=true
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-
+Export-Package: org.eclipse.papyrus.gmf.diagram.common.commands, + org.eclipse.papyrus.gmf.diagram.common.compatibility, + org.eclipse.papyrus.gmf.diagram.common.edit.part, + org.eclipse.papyrus.gmf.diagram.common.edit.policy, + org.eclipse.papyrus.gmf.diagram.common.factory, + org.eclipse.papyrus.gmf.diagram.common.figure, + org.eclipse.papyrus.gmf.diagram.common.locator, + org.eclipse.papyrus.gmf.diagram.common.parser, + org.eclipse.papyrus.gmf.diagram.common.provider, + org.eclipse.papyrus.sysml.diagram.common, + org.eclipse.papyrus.sysml.diagram.common.commands, + org.eclipse.papyrus.sysml.diagram.common.dialogs, + org.eclipse.papyrus.sysml.diagram.common.edit.part, + org.eclipse.papyrus.sysml.diagram.common.edit.policy, + org.eclipse.papyrus.sysml.diagram.common.factory, + org.eclipse.papyrus.sysml.diagram.common.figure, + org.eclipse.papyrus.sysml.diagram.common.messages, + org.eclipse.papyrus.sysml.diagram.common.parser, + org.eclipse.papyrus.sysml.diagram.common.preferences, + org.eclipse.papyrus.sysml.diagram.common.utils, + org.eclipse.papyrus.uml.diagram.common.dnd.helper, + org.eclipse.papyrus.uml.diagram.common.edit.part, + org.eclipse.papyrus.uml.diagram.common.edit.policy, + org.eclipse.papyrus.uml.diagram.common.factory, + org.eclipse.papyrus.uml.diagram.common.figure, + org.eclipse.papyrus.uml.diagram.common.parser, + org.eclipse.papyrus.uml.diagram.common.utils +Bundle-Vendor: %providerName +Bundle-ActivationPolicy: lazy +Bundle-Version: 1.0.0.qualifier +Bundle-Name: %pluginName +Bundle-Localization: plugin +Bundle-ManifestVersion: 2 +Bundle-Activator: org.eclipse.papyrus.sysml.diagram.common.Activator +Bundle-SymbolicName: org.eclipse.papyrus.sysml.diagram.common;singleto + n:=true +Bundle-RequiredExecutionEnvironment: J2SE-1.5 + diff --git a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.common/src-common-gmf/org/eclipse/papyrus/gmf/diagram/common/edit/policy/DefaultXYLayoutEditPolicy.java b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.common/src-common-gmf/org/eclipse/papyrus/gmf/diagram/common/edit/policy/DefaultXYLayoutEditPolicy.java index b347f29b0b6..29bf93747f3 100644 --- a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.common/src-common-gmf/org/eclipse/papyrus/gmf/diagram/common/edit/policy/DefaultXYLayoutEditPolicy.java +++ b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.common/src-common-gmf/org/eclipse/papyrus/gmf/diagram/common/edit/policy/DefaultXYLayoutEditPolicy.java @@ -15,73 +15,101 @@ package org.eclipse.papyrus.gmf.diagram.common.edit.policy; import java.util.Iterator; +import org.eclipse.draw2d.PositionConstants; +import org.eclipse.draw2d.geometry.Point; +import org.eclipse.draw2d.geometry.PrecisionPoint; +import org.eclipse.draw2d.geometry.PrecisionRectangle; import org.eclipse.draw2d.geometry.Rectangle; import org.eclipse.emf.transaction.TransactionalEditingDomain; +import org.eclipse.gef.SnapToHelper; import org.eclipse.gef.commands.Command; import org.eclipse.gef.requests.CreateRequest; import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy; import org.eclipse.gmf.runtime.diagram.ui.commands.SetBoundsCommand; +import org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramRootEditPart; import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; +import org.eclipse.gmf.runtime.diagram.ui.figures.LayoutHelper; import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramUIMessages; import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest; import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand; import org.eclipse.papyrus.infra.gmfdiag.common.editpolicies.XYLayoutWithConstrainedResizedEditPolicy; /** - * Avoid forcing (-1, -1) dimension in set bounds command (let the view factories deal with + * Avoid forcing (-1, -1) dimension in set bounds command (let the view factories deal with * size initialization if needed). */ public class DefaultXYLayoutEditPolicy extends XYLayoutWithConstrainedResizedEditPolicy { + protected double spacing = 80; + /** * Called in response to a <tt>REQ_CREATE</tt> request. Returns a command * to set each created element bounds and auto-size properties. * - * @param request a create request (understands instances of {@link CreateViewRequest}). + * @param request + * a create request (understands instances of {@link CreateViewRequest}). * @return a command to satisfy the request; <tt>null</tt> if the request is not - * understood. + * understood. */ protected Command getCreateCommand(CreateRequest request) { - CreateViewRequest req = (CreateViewRequest) request; - - - TransactionalEditingDomain editingDomain = ((IGraphicalEditPart) getHost()) - .getEditingDomain(); - - CompositeTransactionalCommand cc = new CompositeTransactionalCommand( - editingDomain, DiagramUIMessages.AddCommand_Label); - Iterator<?> iter = req.getViewDescriptors().iterator(); + CreateViewRequest req = (CreateViewRequest)request; - final Rectangle BOUNDS = (Rectangle) getConstraintFor(request); + TransactionalEditingDomain editingDomain = ((IGraphicalEditPart)getHost()).getEditingDomain(); - - while (iter.hasNext()) { - CreateViewRequest.ViewDescriptor viewDescriptor = (CreateViewRequest.ViewDescriptor)iter.next(); - Rectangle rect = getBoundsOffest(req, BOUNDS,viewDescriptor); + CompositeTransactionalCommand cc = new CompositeTransactionalCommand(editingDomain, DiagramUIMessages.AddCommand_Label); + Iterator<?> iter = req.getViewDescriptors().iterator(); + final Rectangle BOUNDS = (Rectangle)getConstraintFor(request); + boolean couldBeSnaped = request.getLocation().equals(LayoutHelper.UNDEFINED.getLocation()) && req.isSnapToEnabled(); + while(iter.hasNext()) { + CreateViewRequest.ViewDescriptor viewDescriptor = (CreateViewRequest.ViewDescriptor)iter.next(); + Rectangle rect = getBoundsOffest(req, BOUNDS, viewDescriptor); - if (rect.getSize().isEmpty()) { + //see bug 427129: Figures newly created via the palette should be snapped to grid if "snap to grid" is activated + if(couldBeSnaped) { + //this code fix the bug in some case... + int add = 0; + DiagramRootEditPart drep = (DiagramRootEditPart)getHost().getRoot(); + double spacing = drep.getGridSpacing(); + final double max_value = spacing*20; + final SnapToHelper helper = (SnapToHelper)getHost().getAdapter(SnapToHelper.class); + final LayoutHelper layoutHelper = new LayoutHelper(); + while(add < max_value) {//we define a max value to do test + Rectangle LOCAL_BOUNDS = BOUNDS.getCopy(); + LOCAL_BOUNDS.translate(add, add); + Rectangle tmp_rect = getBoundsOffest(req, LOCAL_BOUNDS, viewDescriptor); + final PrecisionRectangle resultRect = new PrecisionRectangle(tmp_rect); + resultRect.setWidth(-1); + resultRect.setHeight(-1); + PrecisionPoint res1 = new PrecisionPoint(tmp_rect.getLocation()); + helper.snapPoint(request, PositionConstants.NORTH_WEST, res1.getPreciseCopy(), res1); + final Point pt = layoutHelper.validatePosition(getHostFigure(), resultRect.setLocation(res1)); + if(couldBeSnaped) { + if(pt.equals(resultRect.getLocation())) { + rect.setLocation(resultRect.getLocation()); + break; + } else { + add +=spacing; + continue; + } + } + } + } + if(rect.getSize().isEmpty()) { // Only set location and let the ViewFactory deal with dimension. - cc.compose(new SetBoundsCommand(editingDomain, - DiagramUIMessages.SetLocationCommand_Label_Resize, - viewDescriptor, - rect.getLocation().getCopy())); - + cc.compose(new SetBoundsCommand(editingDomain, DiagramUIMessages.SetLocationCommand_Label_Resize, viewDescriptor, rect.getLocation().getCopy())); + } else { // Default set bounds command. - cc.compose(new SetBoundsCommand(editingDomain, - DiagramUIMessages.SetLocationCommand_Label_Resize, - viewDescriptor, - rect)); - + cc.compose(new SetBoundsCommand(editingDomain, DiagramUIMessages.SetLocationCommand_Label_Resize, viewDescriptor, rect)); } - + break; + } - - if( cc.reduce() == null ) - return null; - return chainGuideAttachmentCommands( request, - new ICommandProxy(cc.reduce())); + if(cc.reduce() == null) { + return null; + } + return chainGuideAttachmentCommands(request, new ICommandProxy(cc.reduce())); } } |