Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjmallet2017-06-12 17:36:22 +0000
committerLaurent Redor2017-07-04 12:09:03 +0000
commita13ad58bbfd93f6c7cfca7d7415a95fbbac1cd2b (patch)
tree63c5ada0c6520b5725149d88ace9721764713324
parentc5e4b54aeb4049b929a08a69a641a7f4336563f3 (diff)
downloadorg.eclipse.sirius-a13ad58bbfd93f6c7cfca7d7415a95fbbac1cd2b.tar.gz
org.eclipse.sirius-a13ad58bbfd93f6c7cfca7d7415a95fbbac1cd2b.tar.xz
org.eclipse.sirius-a13ad58bbfd93f6c7cfca7d7415a95fbbac1cd2b.zip
[518136] Remove bendpoints for rectilinear edge - Add specification.
Bug: 518136 Change-Id: I4b781118b5778b50f2ef1b1e5be0bb309bf0f5a7 Signed-off-by: jmallet <jessy.mallet@obeo.fr>
-rw-r--r--plugins/org.eclipse.sirius.doc/.settings/org.eclipse.core.resources.prefs1
-rw-r--r--plugins/org.eclipse.sirius.doc/specs/proposal/518136_RemoveBendpoints/518136_RemoveBendpoints.html86
-rw-r--r--plugins/org.eclipse.sirius.doc/specs/proposal/518136_RemoveBendpoints/518136_RemoveBendpoints.textile71
-rw-r--r--plugins/org.eclipse.sirius.doc/specs/proposal/518136_RemoveBendpoints/images/BorderNodeWithSegment.pngbin0 -> 57417 bytes
-rw-r--r--plugins/org.eclipse.sirius.doc/specs/proposal/518136_RemoveBendpoints/images/ComputeStartingEnding.pngbin0 -> 23372 bytes
-rw-r--r--plugins/org.eclipse.sirius.doc/specs/proposal/518136_RemoveBendpoints/images/EdgeWithThreeSegments.pngbin0 -> 48655 bytes
-rw-r--r--plugins/org.eclipse.sirius.doc/specs/proposal/518136_RemoveBendpoints/images/EdgeWithTwoSegments.pngbin0 -> 29414 bytes
7 files changed, 158 insertions, 0 deletions
diff --git a/plugins/org.eclipse.sirius.doc/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.sirius.doc/.settings/org.eclipse.core.resources.prefs
index 00ca73ddf7..a80cf58475 100644
--- a/plugins/org.eclipse.sirius.doc/.settings/org.eclipse.core.resources.prefs
+++ b/plugins/org.eclipse.sirius.doc/.settings/org.eclipse.core.resources.prefs
@@ -31,3 +31,4 @@ encoding//specs/archived/connections_to_figure_border/connections_between_figure
encoding//specs/proposal/466598_improveResourceStrategy/466598.html=UTF-8
encoding//specs/proposal/491895_paste_special/491895.html=UTF-8
encoding//specs/proposal/506259_DecoratorDescription/506259_DecoratorDescription.html=UTF-8
+encoding//specs/proposal/518136_RemoveBendpoints/518136_RemoveBendpoints.html=UTF-8
diff --git a/plugins/org.eclipse.sirius.doc/specs/proposal/518136_RemoveBendpoints/518136_RemoveBendpoints.html b/plugins/org.eclipse.sirius.doc/specs/proposal/518136_RemoveBendpoints/518136_RemoveBendpoints.html
new file mode 100644
index 0000000000..5c9718f76f
--- /dev/null
+++ b/plugins/org.eclipse.sirius.doc/specs/proposal/518136_RemoveBendpoints/518136_RemoveBendpoints.html
@@ -0,0 +1,86 @@
+<?xml version='1.0' encoding='utf-8' ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+ </head>
+ <body>
+ <h1 id="SiriusEvolutionSpecificationRemovebendpointsonrectilinearedges">Sirius Evolution Specification: Remove bend-points on rectilinear edges </h1>
+ <h2 id="Preamble">Preamble</h2>
+ <p>
+ <em>Summary</em>: Remove bend-points on rectilinear edges on diagram.
+ </p>
+ <table>
+ <tr>
+ <th>Version</th>
+ <th>Status</th>
+ <th>Date</th>
+ <th>Authors</th>
+ <th>Changes</th>
+ </tr>
+ <tr>
+ <td>v0.1</td>
+ <td>DRAFT</td>
+ <td>2017-06-12</td>
+ <td>jmallet</td>
+ <td>Initial version.</td>
+ </tr>
+ <tr>
+ <td>v1.0</td>
+ <td>PROPOSAL</td>
+ <td>2017-06-14</td>
+ <td>jmallet</td>
+ <td>Updated version.</td>
+ </tr>
+ </table>
+ <p>
+ <em>Relevant tickets</em>:
+ </p>
+ <ul>
+ <li>
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=518136">Bugzilla #518136, Enable action to remove bend-points of rectilinear edges</a>
+ </li>
+ </ul>
+ <h2 id="Introduction">Introduction</h2>
+ <p>The goal of this evolution is to authorize end user to remove bend-points on a rectilinear edge to simplify the edge. The routing of the edge after the execution of the action is detailed just below.</p>
+ <h2 id="Stateoftheexisting">State of the existing</h2>
+ <p>Currently, there is already an action to remove bend-points.
+ <br/>This action has been added with
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=443108">bugzilla 443108</a>.
+ <br/>It is only available on edges with a &#171;Straight&#187; routing style (see
+ <a href="https://www.eclipse.org/sirius/doc/user/diagrams/Diagrams.html#RemoveBendpoints">documentation</a> or
+ <a href="http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/diff/plugins/org.eclipse.sirius.doc/doc/user/diagrams/Diagrams.textile?id=f9e3c2d55727e9f866a9a8e54fc6e5b60d3afc99">corresponding commit</a> ).
+ </p>
+ <h2 id="DetailedSpecification">Detailed Specification</h2>
+ <h3 id="Firstapproach">First approach</h3>
+ <p>There exist already a feature called &#171;Closest Distance&#187; in the appearance tab of properties view when edge is selected. This feature routes the edge by choosing the shortest distance.
+ <br/>However, the behavior of our action will not be the same as &#171;Closest Distance&#187;, because this feature has only effect on DrawD2 (interpretation of GMF data to display edge) but not on GMF model. With experience, this is generally a bad idea.
+ </p>
+ <h3 id="MainProposedFix">Main Proposed Fix</h3>
+ <p>To realize this action, the following algorithm is proposed :</p> 1 &#8211; Compute starting (on source) and ending (on target) side according to the intersection between the source (and also the target) and the line from the center of the source and the center of the target.
+ <p>
+ <img border="0" src="images/ComputeStartingEnding.png"/>
+ </p> 2 &#8211; If the side are both horizontal or vertical, the resulting edge will have 3 segments. The second segment is localized on the middle of the first point and the last point of the edge.
+ <p>
+ <img border="0" src="images/EdgeWithThreeSegments.png"/>
+ </p> 3 &#8211; If the side are not both horizontal or vertical, the resulting edge will have 2 segments.
+ <p>
+ <img border="0" src="images/EdgeWithTwoSegments.png"/>
+ </p> 4 &#8211; If edge relies border nodes, the resulting edge will follow the two previous rules. Sometimes the resulting edge will cross over its container, there is no avoidance process when the new edge is computing.
+ <p>
+ <img border="0" src="images/BorderNodeWithSegment.png"/>
+ </p>
+ <h2 id="BackwardCompatibilityandMigrationPaths">Backward Compatibility and Migration Paths</h2>
+ <h3 id="MetamodelChanges">Metamodel Changes</h3>
+ <p>There is no change in metamodel for this evolution.</p>
+ <h3 id="UserInterfaceChanges">User Interface Changes</h3>
+ <p>&#171;Remove Bend-points&#187; action in the contextual menu when user click on a rectililinear edge will be enabled.</p>
+ <h3 id="DocumentationChanges">Documentation Changes</h3>
+ <p>Updates:</p>
+ <ul>
+ <li>The user documentation for the &#171;Remove Bend-points&#187; action</li>
+ <li>The release note</li>
+ </ul>
+ <h2 id="TestsandNonregressionstrategy">Tests and Non-regression strategy</h2>
+ <p>All cases described for rectilinear edge must be tested, i.e. one test where side are both horizontal or vertical, an other where side are not both horizontal or vertical and a last one using border node.</p>
+ </body>
+</html> \ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.doc/specs/proposal/518136_RemoveBendpoints/518136_RemoveBendpoints.textile b/plugins/org.eclipse.sirius.doc/specs/proposal/518136_RemoveBendpoints/518136_RemoveBendpoints.textile
new file mode 100644
index 0000000000..27ba5afb22
--- /dev/null
+++ b/plugins/org.eclipse.sirius.doc/specs/proposal/518136_RemoveBendpoints/518136_RemoveBendpoints.textile
@@ -0,0 +1,71 @@
+h1. Sirius Evolution Specification: Remove bend-points on rectilinear edges
+
+h2. Preamble
+
+_Summary_: Remove bend-points on rectilinear edges on diagram.
+
+|_. Version |_. Status |_. Date |_. Authors |_. Changes |
+| v0.1 | DRAFT | 2017-06-12 | jmallet | Initial version. |
+| v1.0 | PROPOSAL | 2017-06-14 | jmallet | Updated version. |
+
+_Relevant tickets_:
+* "Bugzilla #518136, Enable action to remove bend-points of rectilinear edges":https://bugs.eclipse.org/bugs/show_bug.cgi?id=518136
+
+h2. Introduction
+
+The goal of this evolution is to authorize end user to remove bend-points on a rectilinear edge to simplify the edge. The routing of the edge after the execution of the action is detailed just below.
+
+h2. State of the existing
+
+Currently, there is already an action to remove bend-points.
+This action has been added with "bugzilla 443108":https://bugs.eclipse.org/bugs/show_bug.cgi?id=443108.
+It is only available on edges with a "Straight" routing style (see "documentation":https://www.eclipse.org/sirius/doc/user/diagrams/Diagrams.html#RemoveBendpoints or "corresponding commit":http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/diff/plugins/org.eclipse.sirius.doc/doc/user/diagrams/Diagrams.textile?id=f9e3c2d55727e9f866a9a8e54fc6e5b60d3afc99 ).
+
+
+h2. Detailed Specification
+
+h3. First approach
+
+There exist already a feature called "Closest Distance" in the appearance tab of properties view when edge is selected. This feature routes the edge by choosing the shortest distance.
+However, the behavior of our action will not be the same as "Closest Distance", because this feature has only effect on DrawD2 (interpretation of GMF data to display edge) but not on GMF model. With experience, this is generally a bad idea.
+
+h3. Main Proposed Fix
+
+To realize this action, the following algorithm is proposed :
+
+ 1 - Compute starting (on source) and ending (on target) side according to the intersection between the source (and also the target) and the line from the center of the source and the center of the target.
+
+!images/ComputeStartingEnding.png!
+
+ 2 - If the side are both horizontal or vertical, the resulting edge will have 3 segments. The second segment is localized on the middle of the first point and the last point of the edge.
+
+!images/EdgeWithThreeSegments.png!
+
+ 3 - If the side are not both horizontal or vertical, the resulting edge will have 2 segments.
+
+!images/EdgeWithTwoSegments.png!
+
+ 4 - If edge relies border nodes, the resulting edge will follow the two previous rules. Sometimes the resulting edge will cross over its container, there is no avoidance process when the new edge is computing.
+
+!images/BorderNodeWithSegment.png!
+
+h2. Backward Compatibility and Migration Paths
+
+h3. Metamodel Changes
+
+There is no change in metamodel for this evolution.
+
+h3. User Interface Changes
+
+"Remove Bend-points" action in the contextual menu when user click on a rectililinear edge will be enabled.
+
+h3. Documentation Changes
+
+Updates:
+* The user documentation for the "Remove Bend-points" action
+* The release note
+
+h2. Tests and Non-regression strategy
+
+All cases described for rectilinear edge must be tested, i.e. one test where side are both horizontal or vertical, an other where side are not both horizontal or vertical and a last one using border node.
+
diff --git a/plugins/org.eclipse.sirius.doc/specs/proposal/518136_RemoveBendpoints/images/BorderNodeWithSegment.png b/plugins/org.eclipse.sirius.doc/specs/proposal/518136_RemoveBendpoints/images/BorderNodeWithSegment.png
new file mode 100644
index 0000000000..b3d29fddd6
--- /dev/null
+++ b/plugins/org.eclipse.sirius.doc/specs/proposal/518136_RemoveBendpoints/images/BorderNodeWithSegment.png
Binary files differ
diff --git a/plugins/org.eclipse.sirius.doc/specs/proposal/518136_RemoveBendpoints/images/ComputeStartingEnding.png b/plugins/org.eclipse.sirius.doc/specs/proposal/518136_RemoveBendpoints/images/ComputeStartingEnding.png
new file mode 100644
index 0000000000..49dca51c49
--- /dev/null
+++ b/plugins/org.eclipse.sirius.doc/specs/proposal/518136_RemoveBendpoints/images/ComputeStartingEnding.png
Binary files differ
diff --git a/plugins/org.eclipse.sirius.doc/specs/proposal/518136_RemoveBendpoints/images/EdgeWithThreeSegments.png b/plugins/org.eclipse.sirius.doc/specs/proposal/518136_RemoveBendpoints/images/EdgeWithThreeSegments.png
new file mode 100644
index 0000000000..1e0db63586
--- /dev/null
+++ b/plugins/org.eclipse.sirius.doc/specs/proposal/518136_RemoveBendpoints/images/EdgeWithThreeSegments.png
Binary files differ
diff --git a/plugins/org.eclipse.sirius.doc/specs/proposal/518136_RemoveBendpoints/images/EdgeWithTwoSegments.png b/plugins/org.eclipse.sirius.doc/specs/proposal/518136_RemoveBendpoints/images/EdgeWithTwoSegments.png
new file mode 100644
index 0000000000..00abcc76e5
--- /dev/null
+++ b/plugins/org.eclipse.sirius.doc/specs/proposal/518136_RemoveBendpoints/images/EdgeWithTwoSegments.png
Binary files differ

Back to the top