Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Group/Ungroup states #49

Closed
12 tasks done
franzlst opened this issue Apr 17, 2020 · 8 comments
Closed
12 tasks done

Group/Ungroup states #49

franzlst opened this issue Apr 17, 2020 · 8 comments

Comments

@franzlst
Copy link
Member

The Feature would improve usability by speeding up state-machine development and intuitive usage of multi-selection. Many can be processed by cut/paste into a newly generated HierarchyState. So the Issue depends on Issue #48.

Feature should firstable work for

  • group multiple States + ScopedVariables + Transitions and DataFlows between those States and ScopedVariables which are selected by being cut & paste to a hierachical state with the same parent (mainly covered by Copy-cut/paste for multi-selection #48)
  • ungroup a selected State (ContainerState) by cut & paste it's child States + ScopedVariables + Transitions and DataFlows between of those States to to the selected State's parent (except if the State is a root-state)
  • support of group and ungroup by the modification history

Additionally the following elements could be of interest for grouping action:

  • ingoing DataFlows into selected States or ScopedVariables (insert InputDataPort and 1 External DataFlow from original origin State/DataPort to this InputDataPort and 1 Internal DataFlow from this InputDataPort)
  • outgoing DataFlows selected States or ScopedVariables (insert OutputDataPort and 1 Internal DataFlow from this OutputDataPort to selected State/ScopedVariable and 1 External DataFlow from this OutputDataPort to original target DataPort)
  • outgoing Transitions from selected States (insert Outcome and 1 Internal Transition to this Outcome and 1 External Transition to old target State/Outcome)

Additional for ungrouping action and simular to the grouping action the linkage to siblings states may be preserved (in any case the DataPorts or Outcomes have to have at least one ingoing and one outgoing connection):

  • ingoing DataFlows
  • outgoing DataFlows
  • ingoing Transitions
  • outgoing Transitions

Finally the internal linkage and the grouped meta-data has to be preserved (and insert scale method call (may static method) to graphical viewer):

  • for ungroup (scale the meta data smaller (relative))
  • for group (scale the meta data bigger (relative))

Originally created by @Rbelder at 2016-02-17 15:02:21+00:00 (moved from RMC internal repository)

@franzlst
Copy link
Member Author

What does "Grouping for multiselection by increasing hierarchical levelGrouping for multiselection by increasing hierarchical level" mean?

Originally created by @franzlst (Franz.Steinmetz@dlr.de) at 2016-02-17 15:32:15+00:00 (moved from RMC internal repository)

@franzlst
Copy link
Member Author

You take the your elements selected by multi-selection and cut and paste them into a new HierachyState which has the same parent as the former multi-selection elements.

It is especially useful when trying to create reusable capsuled states out of state-machines or ContainerState with many States on one level. Additional it helps to transform a HiercharyState to a Barrier- or Preemptive-ConcurrencyState.

The opposite of reducing a hierarchy-level or ungroup could be also part of this issue considering that this helps to generate library-state-machines, too.

Originally created by @Rbelder at 2016-02-17 15:54:51+00:00 (moved from RMC internal repository)

@franzlst
Copy link
Member Author

Aah, you're talking about the Group/Ungroup feature 😄

Originally created by @franzlst (Franz.Steinmetz@dlr.de) at 2016-02-18 07:09:58+00:00 (moved from RMC internal repository)

@franzlst
Copy link
Member Author

Yes the nameing was the problem. I was to focused on the detailed description of the feature. 👎 Added the sub-tasks for Ungroup. Please check if all is consistent.

Hopefully somebody is motivated to do this soon. 😄

Originally created by @Rbelder at 2016-02-18 09:27:08+00:00 (moved from RMC internal repository)

@franzlst
Copy link
Member Author

The first two sub-task are implemented and can be used on the develop branch (see commit 2d856f2a2 and 769b532a4) and may should be substitute in future by cut and paste as mentioned in the issue description.

Originally created by @Rbelder at 2016-07-15 15:34:21+00:00 (moved from RMC internal repository)

@franzlst
Copy link
Member Author

The sub task for the modification history was missing and was added. At the moment all sub actions of group and ungroup are separately shown and handled by the modification history and can be performed.

Originally created by @Rbelder at 2016-07-15 15:50:41+00:00 (moved from RMC internal repository)

@franzlst
Copy link
Member Author

Logical linkage to external states for group and ungroup are preserved, now, see commit befa9eb.

Originally created by @Rbelder at 2016-07-21 11:54:28+00:00 (moved from RMC internal repository)

@franzlst
Copy link
Member Author

Data Linkage is now also preserved, see commit 50b594e, and the meta data is preserved for opengl and gaphas but only proper scaled for opengl, see commit 21b36b1. As long as meta data scaling is not a functional relevant issue this will become a own issue (combined with the meta data issues of substitute state action) and this will be closed.

Originally created by @Rbelder at 2016-08-11 09:21:31+00:00 (moved from RMC internal repository)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants