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

Hierarchical State-Machine visualization #614

Open
wants to merge 168 commits into
base: master
Choose a base branch
from

Conversation

szokolai-mate
Copy link
Collaborator

Main issue: #605

Includes the branch new/papyrus-export, implementing all of its changes and functionality.
These include:

  • proper exportation and arranging of hierarchical state-machines
  • proper visualization of hierarchical state-machines in Papyrus
  • a new element of the diagram language: Box
    • an empty Box is eqvivalent to the old Phantom
    • a Box can also have a sub-diagram with the @Inside annotation. This is the way to make hierarchical state-machines.
  • refactoring of visualization components: wizards, visualization and Papyrus components
    • new project export.diagrams.common now properly separates common elements in visualization components

Main issue: #214
Resolves #585, #577, #524, #443, #516

Additional work on this branch:

A separate refactoring of the wizards and Papyrus components was already present on master from #574. Consolidated the two refactorings, with the changes from new/papyrus-export taking priority. Kept now unused classes in export.papyrus for future use.

As this PR makes the branch visualization-refactoring more or less obsolete, I've included the fix for #582 in this branch aswell. Resolves #582 .

JointJS visualization now produces identical hierarchical diagrams to Papyrus, handles the new Box diagram element properly, has proper progress bar and is cancelable at any time.

dobreffandras and others added 30 commits March 21, 2016 10:33
…s, running on UI thread inside the visualizer.
Box will stand for BoxContainers and Phantoms.
Exports hierarchy of SMs properly.
Added @inside annotation.
Export @inside.
Changed Layout.visualizer model.
Changed Layout.visualizer to handle hierarchy (Step-1).
…egistry to Mapper, injecting this mapper to the requiring classes via constructor injection
# Conflicts:
#	dev/plugins/hu.elte.txtuml.export.papyrus/src/hu/elte/txtuml/export/papyrus/DiagramManager.java
#	dev/plugins/hu.elte.txtuml.export.papyrus/src/hu/elte/txtuml/export/papyrus/elementsarrangers/gmflayout/ActivityDiagramElementsGmfArranger.java
#	dev/plugins/hu.elte.txtuml.export.papyrus/src/hu/elte/txtuml/export/papyrus/elementsarrangers/gmflayout/ClassDiagramElementsGmfArranger.java
#	dev/plugins/hu.elte.txtuml.export.papyrus/src/hu/elte/txtuml/export/papyrus/elementsarrangers/gmflayout/StateMachineDiagramElementsGmfArranger.java
#	dev/plugins/hu.elte.txtuml.export.papyrus/src/hu/elte/txtuml/export/papyrus/elementsarrangers/txtumllayout/AbstractDiagramElementsTxtUmlArranger.java
#	dev/plugins/hu.elte.txtuml.export.papyrus/src/hu/elte/txtuml/export/papyrus/elementsarrangers/txtumllayout/ClassDiagramElementsTxtUmlArranger.java
#	dev/plugins/hu.elte.txtuml.export.papyrus/src/hu/elte/txtuml/export/papyrus/elementsarrangers/txtumllayout/LayoutTransformer.java
#	dev/plugins/hu.elte.txtuml.export.papyrus/src/hu/elte/txtuml/export/papyrus/elementsmanagers/StateMachineDiagramElementsManager.java
#	dev/plugins/hu.elte.txtuml.export.papyrus/src/hu/elte/txtuml/export/papyrus/layout/txtuml/TxtUMLElementsMapper.java
#	dev/plugins/hu.elte.txtuml.export.papyrus/src/hu/elte/txtuml/export/papyrus/papyrusmodelmanagers/TxtUMLPapyrusModelManager.java
#	dev/plugins/hu.elte.txtuml.export.papyrus/src/hu/elte/txtuml/export/papyrus/wizardz/TxtUMLVisuzalizeWizard.java
#	dev/tests/hu.elte.txtuml.export.papyrus.tests/src/hu/elte/txtuml/export/papyrus/api/DiagramElementsModifierTest.java
#	dev/tests/hu.elte.txtuml.export.papyrus.tests/src/hu/elte/txtuml/export/papyrus/elementsarrangers/txtumllayout/tests/LayoutTransformerTest.java
#	dev/tests/hu.elte.txtuml.export.papyrus.tests/src/hu/elte/txtuml/export/papyrus/tests/UnitTests.java
kulik95 and others added 15 commits November 5, 2017 08:58
The GraphSearch class now has a new constructor which allows the specification of whether the actual link to be arranged is a reflexive link. If it is then instead of calculating a length cost for the link a new cost called 'reflexive link minimum length' is calculated which is the difference between the length of the link so far and the maximal distance between two possible endpoints.
…tion and exportaton projects have been independently refactored, left in both to consolidate later.\n Moved `utils.eclipse.wizards` to `export.diagrams.common.wizards`
…ommon`

Continuing preference consolidation
…oring

If the paparuy icons are excahnged for Eclipse or custom ones, we can move `export.papyrus.preferences` to `export.diagrams.common`
Successfully integrated `new/papyrus-export` functionality into `master`-fork

`new/papyrus-export` contains refactoring of visualization classes, including wizards.

For this reason, recreated the wizard-hierarchy seen in `visualization-refactoring`, that is `TxtUMLVisualizeWizard`<-`UML2VisualizeWizard`<-JS/Papyrus wizards and `TxtUMLVisualizeWizard`<-PlantUMLVisualizeWizard

These wizards all work as expected, but with different and varying parallelization and unique noticeable bugs.

I believe this branch will make `visualization-refactoring` obsolete.
…plementation to `diagrams.common.statemachine``javascript....SMDiagram` is a mess but works for the moment
… its implementation to `diagrams.common.statemachine``javascript....SMDiagram` is a mess but works for the moment"

This reverts commit 0474ffc.
JointJS visualization of hierarchical state machines now produces identical diagrams to Papyrus.
Tested on non-hierarchical diagrams aswell.
When visualizing multiple models, some of them would fail becaulse the .uml file was missing. The cause of the bug is uncertain. Removing a `syncExec()` call resolved the issue.
@szokolai-mate
Copy link
Collaborator Author

As this is an old and huge branch, I am unsure who to request reviews from.

@djnemeth could you help with that please?

@djnemeth
Copy link
Member

Jenkins, retest this, please.

@djnemeth
Copy link
Member

djnemeth commented Feb 2, 2019

I postpone this for now.

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

Successfully merging this pull request may close these issues.

Problems during re-visualization Improve visualization wizards
6 participants