(no commit message)
authorp.ciardelli <p.ciardelli@localhost>
Thu, 27 Sep 2007 08:31:08 +0000 (08:31 +0000)
committerp.ciardelli <p.ciardelli@localhost>
Thu, 27 Sep 2007 08:31:08 +0000 (08:31 +0000)
19 files changed:
.gitattributes
eclipseprojects/eu.etaxonomy.mvctest/.classpath [new file with mode: 0644]
eclipseprojects/eu.etaxonomy.mvctest/.project [new file with mode: 0644]
eclipseprojects/eu.etaxonomy.mvctest/META-INF/MANIFEST.MF [new file with mode: 0644]
eclipseprojects/eu.etaxonomy.mvctest/build.properties [new file with mode: 0644]
eclipseprojects/eu.etaxonomy.mvctest/icons/alt_window_16.gif [new file with mode: 0644]
eclipseprojects/eu.etaxonomy.mvctest/icons/alt_window_32.gif [new file with mode: 0644]
eclipseprojects/eu.etaxonomy.mvctest/plugin.xml [new file with mode: 0644]
eclipseprojects/eu.etaxonomy.mvctest/src/eu/etaxonomy/mvctest/Activator.java [new file with mode: 0644]
eclipseprojects/eu.etaxonomy.mvctest/src/eu/etaxonomy/mvctest/Application.java [new file with mode: 0644]
eclipseprojects/eu.etaxonomy.mvctest/src/eu/etaxonomy/mvctest/ApplicationActionBarAdvisor.java [new file with mode: 0644]
eclipseprojects/eu.etaxonomy.mvctest/src/eu/etaxonomy/mvctest/ApplicationWorkbenchAdvisor.java [new file with mode: 0644]
eclipseprojects/eu.etaxonomy.mvctest/src/eu/etaxonomy/mvctest/ApplicationWorkbenchWindowAdvisor.java [new file with mode: 0644]
eclipseprojects/eu.etaxonomy.mvctest/src/eu/etaxonomy/mvctest/Perspective.java [new file with mode: 0644]
eclipseprojects/eu.etaxonomy.mvctest/src/eu/etaxonomy/mvctest/controller/CreateNameAction.java [new file with mode: 0644]
eclipseprojects/eu.etaxonomy.mvctest/src/eu/etaxonomy/mvctest/model/ObjectList.java [new file with mode: 0644]
eclipseprojects/eu.etaxonomy.mvctest/src/eu/etaxonomy/mvctest/view/LastNameView.java [new file with mode: 0644]
eclipseprojects/eu.etaxonomy.mvctest/src/eu/etaxonomy/mvctest/view/NameListView.java [new file with mode: 0644]
eclipseprojects/eu.etaxonomy.mvctest/src/eu/etaxonomy/mvctest/view/View.java [new file with mode: 0644]

index 0611ea29d26a12da850229c101a24a56600a122e..def50d77f0f100c8334dde8db24627ae99e67c1e 100644 (file)
@@ -1,4 +1,22 @@
 * text=auto !eol
 * text=auto !eol
+eclipseprojects/eu.etaxonomy.mvctest/.classpath -text
+eclipseprojects/eu.etaxonomy.mvctest/.project -text
+eclipseprojects/eu.etaxonomy.mvctest/META-INF/MANIFEST.MF -text
+eclipseprojects/eu.etaxonomy.mvctest/build.properties -text
+eclipseprojects/eu.etaxonomy.mvctest/icons/alt_window_16.gif -text
+eclipseprojects/eu.etaxonomy.mvctest/icons/alt_window_32.gif -text
+eclipseprojects/eu.etaxonomy.mvctest/plugin.xml -text
+eclipseprojects/eu.etaxonomy.mvctest/src/eu/etaxonomy/mvctest/Activator.java -text
+eclipseprojects/eu.etaxonomy.mvctest/src/eu/etaxonomy/mvctest/Application.java -text
+eclipseprojects/eu.etaxonomy.mvctest/src/eu/etaxonomy/mvctest/ApplicationActionBarAdvisor.java -text
+eclipseprojects/eu.etaxonomy.mvctest/src/eu/etaxonomy/mvctest/ApplicationWorkbenchAdvisor.java -text
+eclipseprojects/eu.etaxonomy.mvctest/src/eu/etaxonomy/mvctest/ApplicationWorkbenchWindowAdvisor.java -text
+eclipseprojects/eu.etaxonomy.mvctest/src/eu/etaxonomy/mvctest/Perspective.java -text
+eclipseprojects/eu.etaxonomy.mvctest/src/eu/etaxonomy/mvctest/controller/CreateNameAction.java -text
+eclipseprojects/eu.etaxonomy.mvctest/src/eu/etaxonomy/mvctest/model/ObjectList.java -text
+eclipseprojects/eu.etaxonomy.mvctest/src/eu/etaxonomy/mvctest/view/LastNameView.java -text
+eclipseprojects/eu.etaxonomy.mvctest/src/eu/etaxonomy/mvctest/view/NameListView.java -text
+eclipseprojects/eu.etaxonomy.mvctest/src/eu/etaxonomy/mvctest/view/View.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/.classpath -text
 eclipseprojects/eu.etaxonomy.taxeditor/.project -text
 eclipseprojects/eu.etaxonomy.taxeditor/META-INF/MANIFEST.MF -text
 eclipseprojects/eu.etaxonomy.taxeditor/.classpath -text
 eclipseprojects/eu.etaxonomy.taxeditor/.project -text
 eclipseprojects/eu.etaxonomy.taxeditor/META-INF/MANIFEST.MF -text
diff --git a/eclipseprojects/eu.etaxonomy.mvctest/.classpath b/eclipseprojects/eu.etaxonomy.mvctest/.classpath
new file mode 100644 (file)
index 0000000..0215967
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<classpath>\r
+       <classpathentry kind="src" path="src"/>\r
+       <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>\r
+       <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>\r
+       <classpathentry kind="output" path="bin"/>\r
+</classpath>\r
diff --git a/eclipseprojects/eu.etaxonomy.mvctest/.project b/eclipseprojects/eu.etaxonomy.mvctest/.project
new file mode 100644 (file)
index 0000000..60edab9
--- /dev/null
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<projectDescription>\r
+       <name>eu.etaxonomy.mvctest</name>\r
+       <comment></comment>\r
+       <projects>\r
+       </projects>\r
+       <buildSpec>\r
+               <buildCommand>\r
+                       <name>org.eclipse.jdt.core.javabuilder</name>\r
+                       <arguments>\r
+                       </arguments>\r
+               </buildCommand>\r
+               <buildCommand>\r
+                       <name>org.eclipse.pde.ManifestBuilder</name>\r
+                       <arguments>\r
+                       </arguments>\r
+               </buildCommand>\r
+               <buildCommand>\r
+                       <name>org.eclipse.pde.SchemaBuilder</name>\r
+                       <arguments>\r
+                       </arguments>\r
+               </buildCommand>\r
+       </buildSpec>\r
+       <natures>\r
+               <nature>org.eclipse.pde.PluginNature</nature>\r
+               <nature>org.eclipse.jdt.core.javanature</nature>\r
+       </natures>\r
+</projectDescription>\r
diff --git a/eclipseprojects/eu.etaxonomy.mvctest/META-INF/MANIFEST.MF b/eclipseprojects/eu.etaxonomy.mvctest/META-INF/MANIFEST.MF
new file mode 100644 (file)
index 0000000..92211a3
--- /dev/null
@@ -0,0 +1,10 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Mvctest Plug-in
+Bundle-SymbolicName: eu.etaxonomy.mvctest; singleton:=true
+Bundle-Version: 1.0.0
+Bundle-Activator: eu.etaxonomy.mvctest.Activator
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ eu.etaxonomy.cdmLibrary
+Eclipse-LazyStart: true
diff --git a/eclipseprojects/eu.etaxonomy.mvctest/build.properties b/eclipseprojects/eu.etaxonomy.mvctest/build.properties
new file mode 100644 (file)
index 0000000..78d73f7
--- /dev/null
@@ -0,0 +1,5 @@
+source.. = src/\r
+output.. = bin/\r
+bin.includes = plugin.xml,\\r
+               META-INF/,\\r
+               .\r
diff --git a/eclipseprojects/eu.etaxonomy.mvctest/icons/alt_window_16.gif b/eclipseprojects/eu.etaxonomy.mvctest/icons/alt_window_16.gif
new file mode 100644 (file)
index 0000000..05626b1
Binary files /dev/null and b/eclipseprojects/eu.etaxonomy.mvctest/icons/alt_window_16.gif differ
diff --git a/eclipseprojects/eu.etaxonomy.mvctest/icons/alt_window_32.gif b/eclipseprojects/eu.etaxonomy.mvctest/icons/alt_window_32.gif
new file mode 100644 (file)
index 0000000..b432f88
Binary files /dev/null and b/eclipseprojects/eu.etaxonomy.mvctest/icons/alt_window_32.gif differ
diff --git a/eclipseprojects/eu.etaxonomy.mvctest/plugin.xml b/eclipseprojects/eu.etaxonomy.mvctest/plugin.xml
new file mode 100644 (file)
index 0000000..f1cf15a
--- /dev/null
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<?eclipse version="3.2"?>\r
+<plugin>\r
+\r
+   <extension\r
+         id="application"\r
+         point="org.eclipse.core.runtime.applications">\r
+      <application>\r
+         <run\r
+               class="eu.etaxonomy.mvctest.Application">\r
+         </run>\r
+      </application>\r
+   </extension>\r
+   <extension\r
+         point="org.eclipse.ui.perspectives">\r
+      <perspective\r
+            name="Perspective"\r
+            class="eu.etaxonomy.mvctest.Perspective"\r
+            id="eu.etaxonomy.mvctest.perspective">\r
+      </perspective>\r
+   </extension>\r
+   <extension\r
+         point="org.eclipse.ui.views">\r
+      <view\r
+            name="Create Name"\r
+            class="eu.etaxonomy.mvctest.view.View"\r
+            id="eu.etaxonomy.mvctest.view">\r
+      </view>\r
+      <view\r
+            class="eu.etaxonomy.mvctest.view.NameListView"\r
+            id="eu.etaxonomy.mvctest.view.NameListView"\r
+            name="Name List View">\r
+      </view>\r
+      <view\r
+            class="eu.etaxonomy.mvctest.view.LastNameView"\r
+            id="eu.etaxonomy.mvctest.view.LastNameView"\r
+            name="Last Name Created">\r
+      </view>\r
+   </extension>\r
+\r
+</plugin>\r
diff --git a/eclipseprojects/eu.etaxonomy.mvctest/src/eu/etaxonomy/mvctest/Activator.java b/eclipseprojects/eu.etaxonomy.mvctest/src/eu/etaxonomy/mvctest/Activator.java
new file mode 100644 (file)
index 0000000..77d5195
--- /dev/null
@@ -0,0 +1,85 @@
+package eu.etaxonomy.mvctest;\r
+\r
+import org.eclipse.jface.resource.ImageDescriptor;\r
+import org.eclipse.ui.plugin.AbstractUIPlugin;\r
+import org.osgi.framework.BundleContext;\r
+\r
+import eu.etaxonomy.cdm.api.application.CdmApplicationController;\r
+import eu.etaxonomy.mvctest.model.ObjectList;\r
+\r
+/**\r
+ * The activator class controls the plug-in life cycle\r
+ */\r
+public class Activator extends AbstractUIPlugin {\r
+\r
+       // The plug-in ID\r
+       public static final String PLUGIN_ID = "eu.etaxonomy.mvctest";\r
+\r
+       // The shared instance\r
+       private static Activator plugin;\r
+       \r
+       private CdmApplicationController cdmApp = new CdmApplicationController();\r
+       ; \r
+       \r
+       private ObjectList objectList = new ObjectList();\r
+       \r
+       /**\r
+        * The constructor\r
+        */\r
+       public Activator() {\r
+       }\r
+\r
+       /*\r
+        * (non-Javadoc)\r
+        * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)\r
+        */\r
+       public void start(BundleContext context) throws Exception {\r
+               super.start(context);\r
+               plugin = this;\r
+       }\r
+\r
+       /*\r
+        * (non-Javadoc)\r
+        * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)\r
+        */\r
+       public void stop(BundleContext context) throws Exception {\r
+               plugin = null;\r
+               super.stop(context);\r
+       }\r
+\r
+       /**\r
+        * Returns the shared instance\r
+        *\r
+        * @return the shared instance\r
+        */\r
+       public static Activator getDefault() {\r
+               return plugin;\r
+       }\r
+\r
+       /**\r
+        * Returns an image descriptor for the image file at the given\r
+        * plug-in relative path\r
+        *\r
+        * @param path the path\r
+        * @return the image descriptor\r
+        */\r
+       public static ImageDescriptor getImageDescriptor(String path) {\r
+               return imageDescriptorFromPlugin(PLUGIN_ID, path);\r
+       }\r
+       \r
+       \r
+       /**\r
+     * @return the objectList\r
+     */\r
+    public CdmApplicationController getApplicationController() {\r
+        return this.cdmApp;\r
+    }  \r
+       \r
+       \r
+    /**\r
+     * @return the objectList\r
+     */\r
+    public ObjectList getObjectList() {\r
+        return this.objectList;\r
+    }  \r
+}\r
diff --git a/eclipseprojects/eu.etaxonomy.mvctest/src/eu/etaxonomy/mvctest/Application.java b/eclipseprojects/eu.etaxonomy.mvctest/src/eu/etaxonomy/mvctest/Application.java
new file mode 100644 (file)
index 0000000..301b034
--- /dev/null
@@ -0,0 +1,45 @@
+package eu.etaxonomy.mvctest;
+
+import org.eclipse.equinox.app.IApplication;
+import org.eclipse.equinox.app.IApplicationContext;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.PlatformUI;
+
+/**
+ * This class controls all aspects of the application's execution
+ */
+public class Application implements IApplication {
+
+       /* (non-Javadoc)
+        * @see org.eclipse.equinox.app.IApplication#start(org.eclipse.equinox.app.IApplicationContext)
+        */
+       public Object start(IApplicationContext context) {
+               Display display = PlatformUI.createDisplay();
+               try {
+                       int returnCode = PlatformUI.createAndRunWorkbench(display, new ApplicationWorkbenchAdvisor());
+                       if (returnCode == PlatformUI.RETURN_RESTART) {
+                               return IApplication.EXIT_RESTART;
+                       }
+                       return IApplication.EXIT_OK;
+               } finally {
+                       display.dispose();
+               }
+       }
+
+       /* (non-Javadoc)
+        * @see org.eclipse.equinox.app.IApplication#stop()
+        */
+       public void stop() {
+               final IWorkbench workbench = PlatformUI.getWorkbench();
+               if (workbench == null)
+                       return;
+               final Display display = workbench.getDisplay();
+               display.syncExec(new Runnable() {
+                       public void run() {
+                               if (!display.isDisposed())
+                                       workbench.close();
+                       }
+               });
+       }
+}
diff --git a/eclipseprojects/eu.etaxonomy.mvctest/src/eu/etaxonomy/mvctest/ApplicationActionBarAdvisor.java b/eclipseprojects/eu.etaxonomy.mvctest/src/eu/etaxonomy/mvctest/ApplicationActionBarAdvisor.java
new file mode 100644 (file)
index 0000000..78d0a0d
--- /dev/null
@@ -0,0 +1,48 @@
+package eu.etaxonomy.mvctest;
+
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.ui.IWorkbenchActionConstants;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.actions.ActionFactory;
+import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction;
+import org.eclipse.ui.application.ActionBarAdvisor;
+import org.eclipse.ui.application.IActionBarConfigurer;
+
+/**
+ * An action bar advisor is responsible for creating, adding, and disposing of
+ * the actions added to a workbench window. Each window will be populated with
+ * new actions.
+ */
+public class ApplicationActionBarAdvisor extends ActionBarAdvisor {
+
+       // Actions - important to allocate these only in makeActions, and then use
+       // them
+       // in the fill methods. This ensures that the actions aren't recreated
+       // when fillActionBars is called with FILL_PROXY.
+       private IWorkbenchAction exitAction;
+
+       public ApplicationActionBarAdvisor(IActionBarConfigurer configurer) {
+               super(configurer);
+       }
+
+       protected void makeActions(final IWorkbenchWindow window) {
+               // Creates the actions and registers them.
+               // Registering is needed to ensure that key bindings work.
+               // The corresponding commands keybindings are defined in the plugin.xml
+               // file.
+               // Registering also provides automatic disposal of the actions when
+               // the window is closed.
+
+               exitAction = ActionFactory.QUIT.create(window);
+               register(exitAction);
+       }
+
+       protected void fillMenuBar(IMenuManager menuBar) {
+               MenuManager fileMenu = new MenuManager("&File",
+                               IWorkbenchActionConstants.M_FILE);
+               menuBar.add(fileMenu);
+               fileMenu.add(exitAction);
+       }
+
+}
diff --git a/eclipseprojects/eu.etaxonomy.mvctest/src/eu/etaxonomy/mvctest/ApplicationWorkbenchAdvisor.java b/eclipseprojects/eu.etaxonomy.mvctest/src/eu/etaxonomy/mvctest/ApplicationWorkbenchAdvisor.java
new file mode 100644 (file)
index 0000000..db12dde
--- /dev/null
@@ -0,0 +1,20 @@
+package eu.etaxonomy.mvctest;
+
+import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
+import org.eclipse.ui.application.WorkbenchAdvisor;
+import org.eclipse.ui.application.WorkbenchWindowAdvisor;
+
+public class ApplicationWorkbenchAdvisor extends WorkbenchAdvisor {
+
+       private static final String PERSPECTIVE_ID = "eu.etaxonomy.mvctest.perspective";
+
+       public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(
+                       IWorkbenchWindowConfigurer configurer) {
+               return new ApplicationWorkbenchWindowAdvisor(configurer);
+       }
+
+       public String getInitialWindowPerspectiveId() {
+               return PERSPECTIVE_ID;
+       }
+
+}
diff --git a/eclipseprojects/eu.etaxonomy.mvctest/src/eu/etaxonomy/mvctest/ApplicationWorkbenchWindowAdvisor.java b/eclipseprojects/eu.etaxonomy.mvctest/src/eu/etaxonomy/mvctest/ApplicationWorkbenchWindowAdvisor.java
new file mode 100644 (file)
index 0000000..a56d60e
--- /dev/null
@@ -0,0 +1,27 @@
+package eu.etaxonomy.mvctest;
+
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.ui.application.ActionBarAdvisor;
+import org.eclipse.ui.application.IActionBarConfigurer;
+import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
+import org.eclipse.ui.application.WorkbenchWindowAdvisor;
+
+public class ApplicationWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor {
+
+       public ApplicationWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
+               super(configurer);
+       }
+
+       public ActionBarAdvisor createActionBarAdvisor(
+                       IActionBarConfigurer configurer) {
+               return new ApplicationActionBarAdvisor(configurer);
+       }
+
+       public void preWindowOpen() {
+               IWorkbenchWindowConfigurer configurer = getWindowConfigurer();
+               configurer.setInitialSize(new Point(400, 300));
+               configurer.setShowCoolBar(false);
+               configurer.setShowStatusLine(false);
+               configurer.setTitle("RCP Application");
+       }
+}
diff --git a/eclipseprojects/eu.etaxonomy.mvctest/src/eu/etaxonomy/mvctest/Perspective.java b/eclipseprojects/eu.etaxonomy.mvctest/src/eu/etaxonomy/mvctest/Perspective.java
new file mode 100644 (file)
index 0000000..3472427
--- /dev/null
@@ -0,0 +1,22 @@
+package eu.etaxonomy.mvctest;
+
+import org.eclipse.ui.IPageLayout;
+import org.eclipse.ui.IPerspectiveFactory;
+
+import eu.etaxonomy.mvctest.view.NameListView;
+import eu.etaxonomy.mvctest.view.View;
+import eu.etaxonomy.mvctest.view.LastNameView;
+
+public class Perspective implements IPerspectiveFactory {
+
+       public void createInitialLayout(IPageLayout layout) {
+               String editorArea = layout.getEditorArea();
+               layout.setEditorAreaVisible(false);
+               layout.setFixed(true);
+               
+               layout.addView(View.ID, IPageLayout.LEFT, 1.0f, editorArea);
+               layout.addView(LastNameView.ID, IPageLayout.LEFT, 0.5f, View.ID);
+               
+       }
+
+}
diff --git a/eclipseprojects/eu.etaxonomy.mvctest/src/eu/etaxonomy/mvctest/controller/CreateNameAction.java b/eclipseprojects/eu.etaxonomy.mvctest/src/eu/etaxonomy/mvctest/controller/CreateNameAction.java
new file mode 100644 (file)
index 0000000..dc6a828
--- /dev/null
@@ -0,0 +1,29 @@
+package eu.etaxonomy.mvctest.controller;\r
+\r
+import org.eclipse.jface.action.Action;\r
+\r
+import eu.etaxonomy.cdm.api.application.CdmApplicationController;\r
+import eu.etaxonomy.cdm.api.service.INameService;\r
+import eu.etaxonomy.cdm.model.name.TaxonName;\r
+import eu.etaxonomy.mvctest.Activator;\r
+\r
+public class CreateNameAction extends Action {\r
+\r
+       private TaxonName tn;\r
+       \r
+       public CreateNameAction(String genus, String spEpithet) {\r
+               \r
+               INameService ns = Activator.getDefault().getApplicationController().getNameService();\r
+               this.tn = ns.getNewTaxonName(null);\r
+               tn.setGenus(genus);\r
+               tn.setSpecificEpithet(spEpithet);\r
+       }\r
+       \r
+       /* (non-Javadoc)\r
+     * @see org.eclipse.jface.action.Action#run()\r
+     */\r
+       public void run() {\r
+               Activator.getDefault().getApplicationController().getNameService().saveTaxonName(tn);\r
+               Activator.getDefault().getObjectList().add(tn);\r
+       }\r
+}\r
diff --git a/eclipseprojects/eu.etaxonomy.mvctest/src/eu/etaxonomy/mvctest/model/ObjectList.java b/eclipseprojects/eu.etaxonomy.mvctest/src/eu/etaxonomy/mvctest/model/ObjectList.java
new file mode 100644 (file)
index 0000000..be1724b
--- /dev/null
@@ -0,0 +1,79 @@
+package eu.etaxonomy.mvctest.model;\r
+\r
+import java.beans.PropertyChangeListener;\r
+import java.beans.PropertyChangeSupport;\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+\r
+import eu.etaxonomy.cdm.model.common.VersionableEntity;\r
+\r
+public class ObjectList {\r
+    \r
+    private List objectList = new ArrayList();\r
+    \r
+    protected transient PropertyChangeSupport listeners = new PropertyChangeSupport(this);\r
+    \r
+    \r
+  //public class ObjectList extends PlatformObject {    \r
+    \r
+    /**\r
+     * Adds a property-change listener.\r
+     * @param l the listener\r
+     */\r
+    public void addPropertyChangeListener(PropertyChangeListener l){\r
+        if (l == null) {\r
+            throw new IllegalArgumentException();\r
+        }\r
+        this.listeners.addPropertyChangeListener(l);\r
+    }\r
+    \r
+    \r
+    public void removePropertyChangeListener(PropertyChangeListener l){\r
+        this.listeners.removePropertyChangeListener(l);\r
+    }\r
+    \r
+    /**\r
+     * Notificates all listeners to a model-change\r
+     * @param prop the property-id\r
+     * @param old the old-value\r
+     * @param newValue the new value\r
+     */\r
+    protected void firePropertyChange(String prop, Object old, Object newValue){\r
+        if (this.listeners.hasListeners(prop)) {\r
+            this.listeners.firePropertyChange(prop, old, newValue);\r
+        }\r
+    }\r
+\r
+\r
+    /**\r
+     * @param o\r
+     * @return\r
+     * @see java.util.List#add(java.lang.Object)\r
+     */\r
+    public void add(VersionableEntity ve) {\r
+        this.objectList.add(ve);\r
+        // model has changed --> fire\r
+        firePropertyChange("ITEM_ADD", null, ve); //$NON-NLS-1$\r
+    }\r
+    \r
+    \r
+    /**\r
+     * @param o\r
+     * @return\r
+     * @see java.util.List#remove(java.lang.Object)\r
+     */\r
+    public void remove(Object o) {\r
+        this.objectList.remove(o);\r
+//      model has changed --> fire\r
+        firePropertyChange("ITEM_REMOVE", o, null); //$NON-NLS-1$\r
+    }\r
+\r
+\r
+    /**\r
+     * @return\r
+     * @see java.util.List#toArray()\r
+     */\r
+    public Object[] toArray() {\r
+        return (Object[]) this.objectList.toArray(new Object[this.objectList.size()]);\r
+    }\r
+}\r
diff --git a/eclipseprojects/eu.etaxonomy.mvctest/src/eu/etaxonomy/mvctest/view/LastNameView.java b/eclipseprojects/eu.etaxonomy.mvctest/src/eu/etaxonomy/mvctest/view/LastNameView.java
new file mode 100644 (file)
index 0000000..b450257
--- /dev/null
@@ -0,0 +1,84 @@
+package eu.etaxonomy.mvctest.view;\r
+\r
+import java.beans.PropertyChangeEvent;\r
+import java.beans.PropertyChangeListener;\r
+\r
+import org.eclipse.jface.action.IMenuManager;\r
+import org.eclipse.jface.action.IToolBarManager;\r
+import org.eclipse.swt.SWT;\r
+import org.eclipse.swt.layout.GridData;\r
+import org.eclipse.swt.layout.GridLayout;\r
+import org.eclipse.swt.widgets.Composite;\r
+import org.eclipse.swt.widgets.Label;\r
+import org.eclipse.ui.part.ViewPart;\r
+\r
+import eu.etaxonomy.cdm.model.name.TaxonName;\r
+import eu.etaxonomy.mvctest.Activator;\r
+\r
+public class LastNameView extends ViewPart implements PropertyChangeListener {\r
+\r
+       public static final String ID = "eu.etaxonomy.mvctest.view.LastNameView"; //$NON-NLS-1$\r
+       private Label lblName;\r
+       /**\r
+        * Create contents of the view part\r
+        * @param parent\r
+        */\r
+       @Override\r
+       public void createPartControl(Composite parent) {\r
+               Composite container = new Composite(parent, SWT.NONE);\r
+               final GridLayout gridLayout = new GridLayout();\r
+               gridLayout.numColumns = 2;\r
+               container.setLayout(gridLayout);\r
+\r
+               final Label theLastNameLabel = new Label(container, SWT.NONE);\r
+               theLastNameLabel.setText("The last name created was: ");\r
+\r
+               lblName = new Label(container, SWT.NONE);\r
+               lblName.setText("none yet");\r
+               lblName.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false));\r
+               //\r
+               createActions();\r
+               initializeToolBar();\r
+               initializeMenu();\r
+\r
+               Activator.getDefault().getObjectList().addPropertyChangeListener(this);\r
+               \r
+       }\r
+\r
+       /**\r
+        * Create the actions\r
+        */\r
+       private void createActions() {\r
+               // Create the actions\r
+       }\r
+\r
+       /**\r
+        * Initialize the toolbar\r
+        */\r
+       private void initializeToolBar() {\r
+               IToolBarManager toolbarManager = getViewSite().getActionBars()\r
+                               .getToolBarManager();\r
+       }\r
+\r
+       /**\r
+        * Initialize the menu\r
+        */\r
+       private void initializeMenu() {\r
+               IMenuManager menuManager = getViewSite().getActionBars()\r
+                               .getMenuManager();\r
+       }\r
+\r
+       @Override\r
+       public void setFocus() {\r
+               // Set the focus\r
+       }\r
+\r
+       @Override\r
+       public void propertyChange(PropertyChangeEvent evt) {\r
+               if (evt.getPropertyName().equalsIgnoreCase("ITEM_ADD")){\r
+                       TaxonName tn = (TaxonName)evt.getNewValue();\r
+                       lblName.setText( tn.getName());\r
+               }\r
+       }\r
+\r
+}\r
diff --git a/eclipseprojects/eu.etaxonomy.mvctest/src/eu/etaxonomy/mvctest/view/NameListView.java b/eclipseprojects/eu.etaxonomy.mvctest/src/eu/etaxonomy/mvctest/view/NameListView.java
new file mode 100644 (file)
index 0000000..007a3b2
--- /dev/null
@@ -0,0 +1,61 @@
+package eu.etaxonomy.mvctest.view;\r
+\r
+import org.eclipse.jface.action.IMenuManager;\r
+import org.eclipse.jface.action.IToolBarManager;\r
+import org.eclipse.swt.SWT;\r
+import org.eclipse.swt.layout.RowLayout;\r
+import org.eclipse.swt.widgets.Composite;\r
+import org.eclipse.swt.widgets.Link;\r
+import org.eclipse.swt.widgets.Tree;\r
+import org.eclipse.ui.part.ViewPart;\r
+\r
+public class NameListView extends ViewPart {\r
+\r
+       public static final String ID = "eu.etaxonomy.mvctest.view.NameListView"; //$NON-NLS-1$\r
+\r
+       /**\r
+        * Create contents of the view part\r
+        * @param parent\r
+        */\r
+       @Override\r
+       public void createPartControl(Composite parent) {\r
+               Composite container = new Composite(parent, SWT.NONE);\r
+               container.setLayout(new RowLayout());\r
+\r
+               final Link eclipseorgLink = new Link(container, SWT.NONE);\r
+               eclipseorgLink.setText("<a href=\"http://www.eclipse.org\">Eclipse.org</a>");\r
+               //\r
+               createActions();\r
+               initializeToolBar();\r
+               initializeMenu();\r
+       }\r
+\r
+       /**\r
+        * Create the actions\r
+        */\r
+       private void createActions() {\r
+               // Create the actions\r
+       }\r
+\r
+       /**\r
+        * Initialize the toolbar\r
+        */\r
+       private void initializeToolBar() {\r
+               IToolBarManager toolbarManager = getViewSite().getActionBars()\r
+                               .getToolBarManager();\r
+       }\r
+\r
+       /**\r
+        * Initialize the menu\r
+        */\r
+       private void initializeMenu() {\r
+               IMenuManager menuManager = getViewSite().getActionBars()\r
+                               .getMenuManager();\r
+       }\r
+\r
+       @Override\r
+       public void setFocus() {\r
+               // Set the focus\r
+       }\r
+\r
+}\r
diff --git a/eclipseprojects/eu.etaxonomy.mvctest/src/eu/etaxonomy/mvctest/view/View.java b/eclipseprojects/eu.etaxonomy.mvctest/src/eu/etaxonomy/mvctest/view/View.java
new file mode 100644 (file)
index 0000000..5159356
--- /dev/null
@@ -0,0 +1,85 @@
+package eu.etaxonomy.mvctest.view;
+
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.ITableLabelProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.ISharedImages;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.part.ViewPart;
+
+import eu.etaxonomy.mvctest.controller.CreateNameAction;
+
+public class View extends ViewPart {
+       private Text txtSpEpithet;
+       private Text txtGenus;
+       public static final String ID = "eu.etaxonomy.mvctest.view";
+
+       /**
+        * This is a callback that will allow us to create the viewer and initialize
+        * it.
+        */
+       public void createPartControl(Composite parent) {
+               final GridLayout gridLayout = new GridLayout();
+               gridLayout.numColumns = 2;
+               parent.setLayout(gridLayout);
+
+               final Label genusLabel = new Label(parent, SWT.NONE);
+               genusLabel.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false));
+               genusLabel.setText("Genus:");
+
+               txtGenus = new Text(parent, SWT.BORDER);
+               final GridData gd_txtGenus = new GridData(SWT.FILL, SWT.CENTER, true, false);
+               txtGenus.setLayoutData(gd_txtGenus);
+
+               final Label epithetLabel = new Label(parent, SWT.NONE);
+               epithetLabel.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false));
+               epithetLabel.setText("Epithet:");
+
+               txtSpEpithet = new Text(parent, SWT.BORDER);
+               final GridData gd_txtSpEpithet = new GridData(SWT.FILL, SWT.CENTER, true, false);
+               txtSpEpithet.setLayoutData(gd_txtSpEpithet);
+               new Label(parent, SWT.NONE);
+
+               final Button saveNameButton = new Button(parent, SWT.NONE);
+//             saveNameButton.addSelectionListener(new SelectionAdapter() {
+//                     public void widgetSelected(final SelectionEvent e) {
+//                     }
+//             });
+               
+               saveNameButton.addListener(SWT.Selection, new Listener() {
+            public void handleEvent(Event event) {
+                new CreateNameAction(View.this.txtGenus.getText(),
+                               View.this.txtSpEpithet.getText()).run();
+            }
+        });            
+               
+               final GridData gd_saveNameButton = new GridData(SWT.RIGHT, SWT.CENTER, false, false);
+               saveNameButton.setLayoutData(gd_saveNameButton);
+               saveNameButton.setText("Save Name");
+               initializeToolBar();
+       }
+
+       /**
+        * Passing the focus request to the viewer's control.
+        */
+       public void setFocus() {
+       }
+       private void initializeToolBar() {
+               IToolBarManager toolBarManager = getViewSite().getActionBars().getToolBarManager();
+       }
+}
\ No newline at end of file