Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Papyrus/Neon Work Description/Improvements/Navigation"

(Bugzilla References)
Line 12: Line 12:
 
The following section describes the planned changes to the navigation system.
 
The following section describes the planned changes to the navigation system.
  
== Navigation Menu ==
+
== Short Term Work ==
 +
 
 +
=== Navigation Menu ===
  
 
The navigation menu is a popup menu. It is shown when the user Alt+Hovers over a notation element in a view. Navigation and hyperlink systems are integrated into the navigation menu menu. The navigation menu has three kinds of default buttons:
 
The navigation menu is a popup menu. It is shown when the user Alt+Hovers over a notation element in a view. Navigation and hyperlink systems are integrated into the navigation menu menu. The navigation menu has three kinds of default buttons:
Line 53: Line 55:
 
The navigation menu is also integrated into the Model Explorer.
 
The navigation menu is also integrated into the Model Explorer.
  
== Default Hyperlink Proposition ==
+
=== Default Hyperlink Proposition ===
  
 
Currently the user can double click on a notation element to go to its default hyperlink(s). If there aren't any default hyperlink(s), hyperlinks are proposed according to the element that was double-clicked, and a particular hyperlink proposition algorithm for the element. If there is only one proposed hyperlink, we navigate to it. If there are several, the user may choose one particular.
 
Currently the user can double click on a notation element to go to its default hyperlink(s). If there aren't any default hyperlink(s), hyperlinks are proposed according to the element that was double-clicked, and a particular hyperlink proposition algorithm for the element. If there is only one proposed hyperlink, we navigate to it. If there are several, the user may choose one particular.
Line 59: Line 61:
 
The proposed hyperlinks do not persist, i.e. there are not saved in the notation model. The hyperlinks proposition algorithms are contributed via the new hyperlink extension framework. This functionality replaces the heuristic tab of the old hyperlink menu.
 
The proposed hyperlinks do not persist, i.e. there are not saved in the notation model. The hyperlinks proposition algorithms are contributed via the new hyperlink extension framework. This functionality replaces the heuristic tab of the old hyperlink menu.
  
== Misc. UI Enhancements ==
+
=== Misc. UI Enhancements ===
  
 
Some other UI enhancements are planned:
 
Some other UI enhancements are planned:
Line 69: Line 71:
 
* Clicking on a search result that's a semantic element, navigates to the element in the model explorer ([https://git.eclipse.org/r/#/c/52726/ Gerrit 52726])
 
* Clicking on a search result that's a semantic element, navigates to the element in the model explorer ([https://git.eclipse.org/r/#/c/52726/ Gerrit 52726])
  
== Navigation Graph ==
+
== Long Term Work ==
 +
 
 +
=== Navigation Graph ===
  
 
''This section is a draft.'' The navigation graph represents relationships between the elements of a user's model. The navigation graph is described by the user through a DSML, offered by Papyrus. The DSML can be implemented as a UML profile. In the navigation graph, each vertex is a UML metaclass or a stereotype. Each edge indicates that there is some kind of relationship between two metaclasses or stereotypes.
 
''This section is a draft.'' The navigation graph represents relationships between the elements of a user's model. The navigation graph is described by the user through a DSML, offered by Papyrus. The DSML can be implemented as a UML profile. In the navigation graph, each vertex is a UML metaclass or a stereotype. Each edge indicates that there is some kind of relationship between two metaclasses or stereotypes.
Line 83: Line 87:
 
* The graph can be used to generate a navigation strategy (e.g. automatic generation of UI arrows and their behavior)
 
* The graph can be used to generate a navigation strategy (e.g. automatic generation of UI arrows and their behavior)
 
* The navigation strategy can be used to create a timed/controlled presentation of the model, i.e. start at a vertex, navigate automatically/manually from vertex to vertex.-->
 
* The navigation strategy can be used to create a timed/controlled presentation of the model, i.e. start at a vertex, navigate automatically/manually from vertex to vertex.-->
== Hyperlink Graph ==
+
 
 +
=== Hyperlink Graph ===
  
 
''This section is a draft.'' The hyperlink graph represents the whole notation model (i.e. views) as a graph. Each vertex is a view. Each edge is a hyperlink between two views. The user can visualize the hyperlink graph through a special kind of diagram to Papyrus.
 
''This section is a draft.'' The hyperlink graph represents the whole notation model (i.e. views) as a graph. Each vertex is a view. Each edge is a hyperlink between two views. The user can visualize the hyperlink graph through a special kind of diagram to Papyrus.

Revision as of 04:37, 15 October 2015

Overview

Papyrus has a navigation system where the user can navigate to different diagrams, and Model Explorer semantic elements, when some notation elements are clicked. The navigation system also offers the possibility to add hyperlinks to notation elements. Some noticeable characteristics of the current navigation system are the following:

  • Hyperlinks appear in diagram assistant.
  • Hyperlinks management button appears in diagram assistant.
  • Double Click on a notation element goes to its default hyperlink(s), if there are any.
  • Hyperlinks management menu lets the user create hyperlinks, assign default hyperlinks, and assign heuristics to "try" to "go somewhere" (?) when a notation element without default hyperlinks is double clicked. (Note that the heuristic functionality is broken and not clearly defined currently.)
  • Alt+Click on a notation element goes to its navigable element (e.g. return type for an Operation).
  • Diagram shortcuts in diagrams allow to navigate to a particular diagram.

The following section describes the planned changes to the navigation system.

Short Term Work

Navigation Menu

The navigation menu is a popup menu. It is shown when the user Alt+Hovers over a notation element in a view. Navigation and hyperlink systems are integrated into the navigation menu menu. The navigation menu has three kinds of default buttons:

  • Navigable element: a button which represents a UML element that can be show in other views or the Model Explorer. The button lets the user choose where to show the UML element.
  • Hyperlink: a button representing a user created hyperlink
  • Modify hyperlink button: a button to open the hyperlinks management menu
  • More button: a button to make dynamic buttons appear (more on this later)

The figure below shows the 4 kinds of default buttons in the navigation menu:

Papyrus Navigation Menu

Here Operation "op1" of "MyClass" is Alt+Hovered over. The menu shows the return type navigable element of "op1", the navigable element "op1" itself, a hyperlink created for "op1" (points to an ActivityDiagram), the button to modify hyperlinks for "op1", and finally the button to see dynamic buttons for "op1".

When the navigable element is clicked, a sub-menu appears. It shows 3 kinds of button:

  • A Model Explorer button to show the navigable element in the Model Explorer
  • One-to-several view buttons to navigate to opened views where the navigable element appears
  • A "More..." button to show closed views in which the navigable element appears

For example when the return type navigable element of "op1" is clicked, the following sub-menu appears:

Papyrus Navigation Alt Sub-Menu

Here the sub-menu shows four buttons. The first button shows the return type of "op1" in the Model Explorer. The second (resp. third) button shows the return type of "op1", named "MyEnumeration", in opened view "DatatypesAndEnumeration" (resp. "EnumerationsOnly"). Finally the fourth button makes closed views appear, where the return type of "op1" is present.

Besides the default buttons, there are also dynamic buttons. When a dynamic button is clicked on, a sub-menu appears showing some navigable elements related to the element that triggered the navigation menu. The behavior of each navigable element in the sub-menu is the same as a navigable element in the navigation menu.

The dynamic buttons are contributed by plugin extension. The user may choose which extensions to activate, within the preference menu of Papyrus. Some examples of default extensions in Papyrus are:

  • Parents: parents of the element
  • Children: children of the element
  • Types: other elements typed by the type
  • Views: all views in which the element appears
  • Behaviors: behaviors owned by the classifier
  • Containers: packages or classifiers (in case of nested classes) that contain the element
  • Etc...

The navigation menu is also integrated into the Model Explorer.

Default Hyperlink Proposition

Currently the user can double click on a notation element to go to its default hyperlink(s). If there aren't any default hyperlink(s), hyperlinks are proposed according to the element that was double-clicked, and a particular hyperlink proposition algorithm for the element. If there is only one proposed hyperlink, we navigate to it. If there are several, the user may choose one particular.

The proposed hyperlinks do not persist, i.e. there are not saved in the notation model. The hyperlinks proposition algorithms are contributed via the new hyperlink extension framework. This functionality replaces the heuristic tab of the old hyperlink menu.

Misc. UI Enhancements

Some other UI enhancements are planned:

  • Integration in Eclipse history to navigate to the previous/next diagram (even in different models) in the order they were opened (Gerrit 46228)
  • Toolbar arrows to navigate between opened Papyrus diagram tabs (Gerrit 51264)
  • Key bindings (CTRL+(SHIFT+)M2) to navigate between opened Papyrus diagram tabs (Gerrit 46192)
  • Diagram shortcuts should show a preview of the diagram on mouse hover (Gerrit 47035)
  • Clicking on a search result that's a semantic element, navigates to the element in the model explorer (Gerrit 52726)

Long Term Work

Navigation Graph

This section is a draft. The navigation graph represents relationships between the elements of a user's model. The navigation graph is described by the user through a DSML, offered by Papyrus. The DSML can be implemented as a UML profile. In the navigation graph, each vertex is a UML metaclass or a stereotype. Each edge indicates that there is some kind of relationship between two metaclasses or stereotypes.

For example the user can have a navigation graph where there are two vertices: <<Car>> and <<Wheel>>. There is an edge between <<Car>> and <<Wheel>> called "OwnedWheels". This example navigation graph can be interpreted by Papyrus. The navigation menu for <<Car>> would then have a dynamic button called "OwnerWheels".

This feature is planned for post-Mars.

Hyperlink Graph

This section is a draft. The hyperlink graph represents the whole notation model (i.e. views) as a graph. Each vertex is a view. Each edge is a hyperlink between two views. The user can visualize the hyperlink graph through a special kind of diagram to Papyrus.

Through the diagram that represents the hyperlink graph, the user may also create a presentation. A presentation lets the user navigate through vertices of the hyperlink graph, i.e. starting with a chosen initial view, the user goes from views to views. In the presentation, transition between vertices can either be automatic and timed, or by clicking on some UI button.

This feature is planned for post-Mars.

Bugzilla References

Back to the top