Difference between revisions of "Tutorial: Project Development"

From Developer Documents
Jump to navigation Jump to search
m
m
Line 26: Line 26:
 
* Add info, put ''com.acme.movie.ui.perspective'' as id, "Movie Production" as name, and ''com.acme.movie.ui.PerspectiveFactory'' as class name.
 
* Add info, put ''com.acme.movie.ui.perspective'' as id, "Movie Production" as name, and ''com.acme.movie.ui.PerspectiveFactory'' as class name.
 
* Create perspective factory class. Click on the blue underlined "Class *:" link, a class instantiation wizard will open. '''Finish'''.
 
* Create perspective factory class. Click on the blue underlined "Class *:" link, a class instantiation wizard will open. '''Finish'''.
* Make the editor area permanently visible by editing the class
+
* Make the editor area permanently visible. Edit the class.
 
<div style="background-color:#f8f8f8; border: 1px dashed #cccccc; padding: 1ex; margin-left:2em; margin-top: 1em; margin-bottom:1em;">
 
<div style="background-color:#f8f8f8; border: 1px dashed #cccccc; padding: 1ex; margin-left:2em; margin-top: 1em; margin-bottom:1em;">
 
<syntaxhighlight lang="java">
 
<syntaxhighlight lang="java">
Line 39: Line 39:
  
  
The empty perspective needs content, lets start with the Model Browser. It should be located on the left-hand side as planned in the sketch. Simantics has such component, its identifier is ''org.simantics.structural.ui.modelBrowser''. We are going to add a perspective extension that states that, in this perspective there is a Model Browser that is located to the left of the editor area. FYI the identifier of the editor area is ''org.eclipse.ui.editorss''.  
+
The empty perspective needs content, lets start with the Model Browser. It should be located on the left-hand side as planned in the sketch. Simantics has such component, the identifier is ''org.simantics.structural.ui.modelBrowser''. We are going to add a perspective extension that states that, in this perspective there is a Model Browser that is located to the left of the editor area. FYI the identifier of the editor area is ''org.eclipse.ui.editorss''.  
  
 
Add Model Browser View to the perspective.  
 
Add Model Browser View to the perspective.  
Line 63: Line 63:
  
  
And symbol library on the right.
+
And put symbol library to the right.
 
* '' '''com.acme.movie.ui.perspective''' >> right-click >> '''new''' >> '''view'''
 
* '' '''com.acme.movie.ui.perspective''' >> right-click >> '''new''' >> '''view'''
 
* id = org.simantics.diagram.symbollibrary.managed
 
* id = org.simantics.diagram.symbollibrary.managed
Line 73: Line 73:
  
 
==Step 3: Create Feature==
 
==Step 3: Create Feature==
Feature is a set of plug-ins grouped into a single manageable unit.  
+
Feature is a set of plug-ins grouped into a single manageable unit. In the final release the application would be delivered as a Feature. Features can be installed from an update site using Simantics Project Manager (SPM).  
  
 
Create feature
 
Create feature
Line 81: Line 81:
  
 
==Step 4: Create Product==
 
==Step 4: Create Product==
In the final release the application would be delivered as a Feature. Features can be installed from an update site using Simantics Project Manager (SPM). But for development we are going to create a product.  
+
But for development feature is not enough, we need a product.  
  
 
Create a new product configuration
 
Create a new product configuration
Line 92: Line 92:
 
* Select ''org.simantics.workbench.application'' as Product Application. '''Finish'''.
 
* Select ''org.simantics.workbench.application'' as Product Application. '''Finish'''.
 
*Open ''Movie.product'' and ''Overview'' tab sheet from the editor bottom.
 
*Open ''Movie.product'' and ''Overview'' tab sheet from the editor bottom.
** Add values for ID, Version and Name; say com.acme.movie, 1.0 and "Motion Picture Production Manager"
+
** Add values for ID, Version and Name; say com.acme.movie, 1.0 and "Motion Picuture Planner"
 
** Choose ''org.simantics.workbench.product'' as Product and ''org.simantics.workbench.application'' as Application
 
** Choose ''org.simantics.workbench.product'' as Product and ''org.simantics.workbench.application'' as Application
 
** Select "The product configuration is based on: <u>features</u>"
 
** Select "The product configuration is based on: <u>features</u>"
Line 99: Line 99:
 
** Add ''com.acme.movie.feature''
 
** Add ''com.acme.movie.feature''
 
** Save file.
 
** Save file.
 
  
 
==Step 5: Simantics Feature==
 
==Step 5: Simantics Feature==
Add Simantics Project Feature. See [[Project Development]].
+
Simantics feature is an configuration extension. It is needed for automated management. See [[Project Development]].
  
 +
Add Simantics Project Feature
 
* Open UI plugin settings: '' '''org.com.acme.movie.ui''' >> '''plugin.xml''' ''
 
* Open UI plugin settings: '' '''org.com.acme.movie.ui''' >> '''plugin.xml''' ''
 
* Add some plug-in dependencies: '' '''Dependencies''' >> '''Required Plug-ins''' >> '''Add...''' ''
 
* Add some plug-in dependencies: '' '''Dependencies''' >> '''Required Plug-ins''' >> '''Add...''' ''

Revision as of 07:19, 21 October 2010

Our customer wants a tool to aid in production of motion pictures. In this part, we are going to set-up the project framework with empty ui components. The fuctional code is added in later tutorial parts.

Step 1: Create UI Plugin

To create the a new plugin, open the wizard.

  • File >> New >> Plug-in Development >> Plug-in Project >> Next >

Project name for the feature is com.acme.movie.ui. Next >. In the wizard you should know that you'll have a use for an activator, check that. Also know that the plug-in makes UI contributions, but is not a rich client application. Finish

Open the form editor from plugin.xml. From Overview page make sure This plug-in is a singleton.

Step 2: Create Perspective

Perspective is a viewport to user interface. It is setting for how specific type of work is done in a project (Read More). Our application will have only one perspective, movie production perspective. There will be a model browser (left), an editor for diagram representations (center), a properties view (bottom) and a database view (right). Here is a sketch.

Sketch.png


Lets start. Add Movie Production perspective.

  • Open com.acme.movie.ui / META-INF/MANIFEST.MF >> Extensions
  • Add a new extension, org.eclipse.ui.perspectives
  • A node will appear, select it, right click new >> perspective. Select it.
  • Add info, put com.acme.movie.ui.perspective as id, "Movie Production" as name, and com.acme.movie.ui.PerspectiveFactory as class name.
  • Create perspective factory class. Click on the blue underlined "Class *:" link, a class instantiation wizard will open. Finish.
  • Make the editor area permanently visible. Edit the class.

<syntaxhighlight lang="java">

   public class PerspectiveFactory implements IPerspectiveFactory {
     @Override
     public void createInitialLayout(IPageLayout layout) {
       layout.setEditorAreaVisible(true);		
     }
   }

</syntaxhighlight>


The empty perspective needs content, lets start with the Model Browser. It should be located on the left-hand side as planned in the sketch. Simantics has such component, the identifier is org.simantics.structural.ui.modelBrowser. We are going to add a perspective extension that states that, in this perspective there is a Model Browser that is located to the left of the editor area. FYI the identifier of the editor area is org.eclipse.ui.editorss.

Add Model Browser View to the perspective.

  • Add new extension org.eclipse.ui.perspectiveExtensions
  • Put com.acme.movie.ui.perspective as targetID
  • Add model browser
    • com.acme.movie.ui.perspective >> right-click >> new >> view
    • id = org.simantics.structural.ui.modelBrowser
    • relationship = left
    • relative = org.eclipse.ui.editorss
    • ratio = 0.2
    • visible = true
    • closable = false


Apply the same steps to add property view at the bottom.

  • com.acme.movie.ui.perspective >> right-click >> new >> view
  • id = org.simantics.browsing.ui.graph.propertyView
  • relationship = left, org.eclipse.ui.editorss
  • ratio = 0.7
  • visible = true
  • closable = false


And put symbol library to the right.

  • com.acme.movie.ui.perspective >> right-click >> new >> view
  • id = org.simantics.diagram.symbollibrary.managed
  • relationship = left
  • relative = org.eclipse.ui.editorss
  • ratio = 0.6
  • visible = true
  • closable = false

Step 3: Create Feature

Feature is a set of plug-ins grouped into a single manageable unit. In the final release the application would be delivered as a Feature. Features can be installed from an update site using Simantics Project Manager (SPM).

Create feature

  • Open wizard File >> New >> Plug-in Development >> Feature Project >> Next >
  • Project name for feature is com.acme.movie.feature. Next >.
  • The feature includes both com.acme.movie.ontology and .ui plugins, check those. Finish

Step 4: Create Product

But for development feature is not enough, we need a product.

Create a new product configuration

  • File >> New >> Plug-in Development >> Product Configuration >> Next >
  • Select com.acme.movie.ui as parent folder and put Movie.product for filename. Finish

Create Product extension

  • Open Movie.product
  • Select New Product. A wizard will open. Leave Defining Plug-in as com.acme.movie.ui and Product ID product.
  • Select org.simantics.workbench.application as Product Application. Finish.
  • Open Movie.product and Overview tab sheet from the editor bottom.
    • Add values for ID, Version and Name; say com.acme.movie, 1.0 and "Motion Picuture Planner"
    • Choose org.simantics.workbench.product as Product and org.simantics.workbench.application as Application
    • Select "The product configuration is based on: features"
  • Open Dependencies tab sheet from the editor bottom.
    • Add org.simantics.sdk
    • Add com.acme.movie.feature
    • Save file.

Step 5: Simantics Feature

Simantics feature is an configuration extension. It is needed for automated management. See Project Development.

Add Simantics Project Feature

  • Open UI plugin settings: org.com.acme.movie.ui >> plugin.xml
  • Add some plug-in dependencies: Dependencies >> Required Plug-ins >> Add...
    • org.simantics.project, org.simantics.db, org.simantics.utils, org.simantics.utils.datastructures
  • Add org.simantics.project.feature extension: Extensions >> Add... >> org.simantics.project.feature
  • id = com.acme.movie.feature
  • label = Movie Production Feature
  • published = true
  • class = com.acme.movie.ui.ProjectFeature

Create Project Feature class and set the default perspective.

  • Instantiate the class: click the blue class*. link to open a wizard. Finish
  • Add method configure(). Note, you can automatically import dependency classes with (ctrl-shift-o, organize imports).

<syntaxhighlight lang="java">

   public class ProjectFeature extends AbstractProjectFeature implements IProjectFeature {

@Override public void configure() throws ProjectException {

           getProject().setHint(ProjectKeys.DEFAULT_PERSPECTIVE, "com.acme.movie.ui.perspective");

}

   }

</syntaxhighlight>

Create install group.

  • Open UI plugin's extensions: org.com.acme.movie.ui >> plugin.xml >> Extensions
  • Select your feature Movie Production Feature
  • Add installGroup right-click >> New >> installGroup
  • id = com.acme.movie.feature.group

Step 6: Run it

OK, you have now a feature and a product configuration. Give it a go.

  • Open Movie.product
  • Click Launch an Eclipse application

If everything goes fine a simantics platform should start and open up. It should look like this, if not, you can look for help in the tutorial source codes at https://www.simulationsite.net/svn/simantics/tutorials/trunk/

Tutorial perspective.png



Handshake.png Congratulations You have now set-up a simantics project.

In the next part you will be developing a model. Wink 16.png
Next.png Tutorial 3: Model Development