Difference between revisions of "Tutorial: Model Development"

From Developer Documents
Jump to navigation Jump to search
Line 41: Line 41:
 
First we need to define an ID for the context menu to be registered for the production browser. This happens by once again modifying the class attribute of our view extension. The ID of our context menu will be '''#ProductionsPopup'''.
 
First we need to define an ID for the context menu to be registered for the production browser. This happens by once again modifying the class attribute of our view extension. The ID of our context menu will be '''#ProductionsPopup'''.
 
* Find our production view extension: '''org.eclipse.ui.views''' >> '''Productions (view)'''
 
* Find our production view extension: '''org.eclipse.ui.views''' >> '''Productions (view)'''
* Append to the ''class'' attribute: '''&contextMenuId=#ProductionsPopup'''
+
* Append to the ''class'' attribute: '''&<span style="color:green">contextMenuId</span>=<span style="color:red">#ProductionsPopup</span>'''
  
 
Now your browser should have a context menu registered with the specified ID. You can check this by launching the movie product, activating the ''Productions'' view and pressing ''Control+Shift+F1''. A ''Plug-in Spy'' window should pop up and give information on the view. It should say:  
 
Now your browser should have a context menu registered with the specified ID. You can check this by launching the movie product, activating the ''Productions'' view and pressing ''Control+Shift+F1''. A ''Plug-in Spy'' window should pop up and give information on the view. It should say:  

Revision as of 15:20, 20 October 2010

In this part of the tutorial we will focus on implementing the basic functionality for the following parts of the UI:

  • Model Browser for modelling movie production cases
    • Basic context menu actions for the browser
      • Add > Movie Project
      • Add > Casting Plan
      • Add > Role
  • Property View for editing properties of model entities
  • Movie Database Library for searching available movies, actors, directors, etc.

Step 1: Customize Model Browser

To customize the model browser for the movie production case, we cannot directly use the existing view added to the perspective in the previous part of the tutorial. We need to create a new view extension to parametrize the view properly.

Lets add the new view extension.

  • Open com.acme.movie.ui / META-INF/MANIFEST.MF >> Extensions
  • Add a new extension, org.eclipse.ui.views
  • Add view category
    • org.eclipse.ui.views >> right click >> new >> category
    • id = com.acme.movie.ui.category
    • name = Movie Production
  • Add view
    • org.eclipse.ui.views >> right click >> new >> view
    • id = com.acme.movie.ui.productions
    • name = Productions
    • class = org.simantics.browsing.ui.swt.GraphExplorerView:browseContext=http://com.acme/Movie-1.0/Productions
    • category = com.acme.movie.ui.category
TODO: explain the class parameter contents

In the same extension editor, modify the existing view perspective extension to use the new view.

  • Find the extension in the tree:
    org.eclipse.ui.perspectiveExtensions >>
    com.acme.movie.ui.perspective (perspectiveExtension) >>
    org.simantics.structural.ui.modelBrowser
  • Modify org.simantics.structural.ui.modelBrowser to com.acme.movie.ui.productions


When you launch the Movie product for the next time, you will see the old Model Browser view and not your new Productions view. This happens because the application remembers the state of the UI between sessions. This includes the layout of the perspective. To get your new layout visible select from main menu Window >> Reset Perspective... This will reset your perspective's layout according to the current perspective extension specifications.

Step 2: Add Context Menu Actions for Model Browser

First we need to define an ID for the context menu to be registered for the production browser. This happens by once again modifying the class attribute of our view extension. The ID of our context menu will be #ProductionsPopup.

  • Find our production view extension: org.eclipse.ui.views >> Productions (view)
  • Append to the class attribute: &contextMenuId=#ProductionsPopup

Now your browser should have a context menu registered with the specified ID. You can check this by launching the movie product, activating the Productions view and pressing Control+Shift+F1. A Plug-in Spy window should pop up and give information on the view. It should say:

The active menu contribution identifiers:
    #ProductionsPopup

Step 3: Add Property View for Model Browser

Step 4: Add Content for Movie Database Library