Bug 440296 - Specify border nodes side in the VSM
Summary: Specify border nodes side in the VSM
Status: CLOSED FIXED
Alias: None
Product: Sirius
Classification: Modeling
Component: Diagram (show other bugs)
Version: 1.0.0   Edit
Hardware: PC Windows NT
: P2 enhancement (vote)
Target Milestone: 4.0.0   Edit
Assignee: Florian Barbin CLA
QA Contact: Laurent Redor CLA
URL:
Whiteboard:
Keywords: triaged
Depends on:
Blocks:
 
Reported: 2014-07-24 04:24 EDT by Maxime Porhel CLA
Modified: 2016-11-25 05:42 EST (History)
13 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Maxime Porhel CLA 2014-07-24 04:24:26 EDT
Several specifier have reported the need to locate their bordered nodes on one side of their parent. The current solution is to provide a style configuration with a specific border item locator. 

A simple solution (for the specifier) could be to have a border item locator concept directly in the diagram metamodel. It could be added on AbstractDNodeMapping, it shoudl have at least a preferred position (N, W, E, S) and a list of mappings. I write preferred, because we need to handle the case in which there are several bordered nodes but the preferred side is too small. 

The parent shoudl locate first the nodes which have a described bordered locator, then the others ones. 

We should put some validation rules: the same mapping should not be located by two locator on the same parent mapping. (to reword if we add some precondition on the locator).
Comment 1 Stéphane Thibaudeau CLA 2014-07-24 04:35:02 EDT
+1

Would be very useful. Often required by users.
Comment 2 Nathalie Lepine CLA 2014-07-24 04:39:01 EDT
+1

it could be useful too to have a bordered node label border locator which always put the label outside the bordered node container.
Comment 3 Melanie Bats CLA 2014-07-24 04:41:11 EDT
+1
Comment 4 Axel RICHARD CLA 2014-07-24 09:46:05 EDT
+1
Comment 5 Alex Lagarde CLA 2014-07-24 09:47:38 EDT
+1
Comment 6 Alex Lagarde CLA 2014-07-24 11:19:38 EDT
Marking issue as triage as this is a valid feature request
Comment 7 Thomas Muller CLA 2014-07-29 10:05:38 EDT
+1
I'm currently in need of such feature.
Comment 8 Maxime Porhel CLA 2014-07-31 10:43:36 EDT
Note that if we create a DBorderITemLocator with a preferred side, this preferred side will not be taken into account to relocate the figures (and DBorderItemLocator javadoc should be improved).
Comment 9 Xabier De Carlos CLA 2014-11-05 07:02:37 EST
+1
Comment 10 Stéphane Seyvoz CLA 2014-11-19 09:47:40 EST
+1

Would also be really useful for the representation I work on.
Comment 11 Steve Monnier CLA 2014-12-19 08:44:20 EST
+1
Comment 13 Pierre-Charles David CLA 2015-05-21 05:12:29 EDT
I've pushed a first version of a spec for this (by Steve), visible at https://git.eclipse.org/c/sirius/org.eclipse.sirius.git/plain/plugins/org.eclipse.sirius.doc/specs/proposal/440296_Required_side_for_border_nodes/440296_Required_side_for_border_nodes.html?id=b83eb83583923a822acc21977fb4336afd3e2a0a

This is not planned yet for a specific version of Sirius. It may come in 3.1 which is planned by then end of 2015, or later. In the meantime to move the bug forward we're open to remarks and discussions on the spec, to actual patches (see the Contributor Guide) or you can contact Obeo for sponsored work if you have specific constraints and/or deadline for this to become available.
Comment 14 Nathalie Lepine CLA 2015-05-26 04:21:14 EDT
2 points:
- the specification does not talk about the bordered node label location, see my comment "it could be useful too to have a bordered node label border locator which always put the label outside the bordered node container by default."

- "Optional: As it may be confusing for users that the south side is filled right to left and the west side is filled bottom-up, the DBorderItemLocator could be overridden to fill these side, alike their opposite, respectively left to right and top-down."
  -> very confusing for users, this should not be optional. This is due to a technical limitation, this is not very appealing from a UX point of view.
Comment 15 Jerome Pequery CLA 2015-06-09 07:01:53 EDT
asked by one of my contact
Comment 16 Pierre-Charles David CLA 2015-06-23 11:33:14 EDT
A similar issue exists with edges. Handling edges is *not* in the scope of this particular ticket, but the retained solution must take that need in consideration so that it can be generalized at some later point to also handle edges with minimal impact on the nodes, and no duplication of two similar-but-different mechanisms.
Comment 17 Pierre-Charles David CLA 2015-06-23 11:36:19 EDT
Moving to 4.0. It would be nice to have for 3.1, but I don't think it is realistic given the time constraints.
Comment 18 Eclipse Genie CLA 2015-09-04 06:35:29 EDT
New Gerrit change created: https://git.eclipse.org/r/55280
Comment 20 Eclipse Genie CLA 2016-02-04 12:13:26 EST
New Gerrit change created: https://git.eclipse.org/r/65926
Comment 29 Florian Barbin CLA 2016-03-23 04:55:33 EDT
A last patchset will come to take into consideration the comments on this review: https://git.eclipse.org/r/#/c/67553/11/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/internal/refresh/borderednode/CanonicalDBorderItemLocator.java

Indeed, if a parent side is full, we still use the next side as the next candidate location even if this side is forbidden. The border node is finally located on the correct side but not at the expected location.
Comment 30 Eclipse Genie CLA 2016-03-24 05:37:57 EDT
New Gerrit change created: https://git.eclipse.org/r/69223
Comment 32 Laurent Redor CLA 2016-05-24 10:27:32 EDT
Verified on Sirius 4.0.0 RC1 (4.0.0.201605180923)
Comment 33 Pierre-Charles David CLA 2016-06-24 08:02:42 EDT
Available in Sirius 4.0.0.