From 5e8b053e2be6371a6e6b4b558126eaec8dbe8c79 Mon Sep 17 00:00:00 2001
From: Simon Barner <barner@fortiss.org>
Date: Mon, 25 Aug 2014 12:04:56 +0000
Subject: [PATCH] - Introduce sub packages for annotation framework (see
 org.fortiss.tooling.base.ui.annotation -> package.html for documentation) -
 Standardize class names

---
 org.fortiss.tooling.base.ui/trunk/META-INF/MANIFEST.MF   | 3 +++
 org.fortiss.tooling.base.ui/trunk/plugin.xml             | 2 +-
 .../tooling/base/ui/annotation/AnnotationEntry.java      | 1 +
 .../base/ui/annotation/AnnotationValueService.java       | 1 +
 .../ComboBoxEditingSupport.java}                         | 7 ++++---
 .../TextEditingSupport.java}                             | 7 ++++---
 .../base/ui/annotation/editingsupport/package.html       | 8 ++++++++
 .../org/fortiss/tooling/base/ui/annotation/package.html  | 7 ++++++-
 .../{ => valueprovider}/IAnnotationValueProvider.java    | 2 +-
 .../base/ui/annotation/valueprovider/package.html        | 8 ++++++++
 .../annotation/{ => view}/AnnotationLabelProvider.java   | 3 ++-
 .../ui/annotation/{ => view}/AnnotationViewPartBase.java | 4 +++-
 .../ui/annotation/{ => view}/GenericAnnotationView.java  | 9 ++++++---
 .../fortiss/tooling/base/ui/annotation/view/package.html | 8 ++++++++
 14 files changed, 56 insertions(+), 14 deletions(-)
 rename org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/{AnnotationEditingSupportCombo.java => editingsupport/ComboBoxEditingSupport.java} (94%)
 rename org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/{AnnotationEditingSupportStandard.java => editingsupport/TextEditingSupport.java} (94%)
 create mode 100644 org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/editingsupport/package.html
 rename org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/{ => valueprovider}/IAnnotationValueProvider.java (98%)
 create mode 100644 org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/valueprovider/package.html
 rename org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/{ => view}/AnnotationLabelProvider.java (96%)
 rename org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/{ => view}/AnnotationViewPartBase.java (95%)
 rename org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/{ => view}/GenericAnnotationView.java (94%)
 create mode 100644 org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/view/package.html

diff --git a/org.fortiss.tooling.base.ui/trunk/META-INF/MANIFEST.MF b/org.fortiss.tooling.base.ui/trunk/META-INF/MANIFEST.MF
index 9eb3c66ba..c15b3cf28 100644
--- a/org.fortiss.tooling.base.ui/trunk/META-INF/MANIFEST.MF
+++ b/org.fortiss.tooling.base.ui/trunk/META-INF/MANIFEST.MF
@@ -12,6 +12,9 @@ Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-Vendor: fortiss GmbH
 Export-Package: org.fortiss.tooling.base.ui,
  org.fortiss.tooling.base.ui.annotation,
+ org.fortiss.tooling.base.ui.annotation.editingsupport,
+ org.fortiss.tooling.base.ui.annotation.valueprovider,
+ org.fortiss.tooling.base.ui.annotation.view,
  org.fortiss.tooling.base.ui.compose,
  org.fortiss.tooling.base.ui.contentprovider,
  org.fortiss.tooling.base.ui.databinding,
diff --git a/org.fortiss.tooling.base.ui/trunk/plugin.xml b/org.fortiss.tooling.base.ui/trunk/plugin.xml
index 9b32436b1..8dc821c73 100644
--- a/org.fortiss.tooling.base.ui/trunk/plugin.xml
+++ b/org.fortiss.tooling.base.ui/trunk/plugin.xml
@@ -13,7 +13,7 @@
    <extension
          point="org.eclipse.ui.views">
       <view
-            class="org.fortiss.tooling.base.ui.annotation.GenericAnnotationView"
+            class="org.fortiss.tooling.base.ui.annotation.view.GenericAnnotationView"
             icon="icons/annotation.gif"
             id="org.fortiss.tooling.base.ui.annotationBase"
             name="Annotation"
diff --git a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/AnnotationEntry.java b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/AnnotationEntry.java
index 531ab2b3d..829d303e7 100644
--- a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/AnnotationEntry.java
+++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/AnnotationEntry.java
@@ -26,6 +26,7 @@ import org.eclipse.jface.viewers.ColumnViewer;
 import org.eclipse.jface.viewers.EditingSupport;
 import org.fortiss.tooling.base.model.element.IAnnotatedSpecification;
 import org.fortiss.tooling.base.model.element.IModelElement;
+import org.fortiss.tooling.base.ui.annotation.valueprovider.IAnnotationValueProvider;
 
 /**
  * The class {@link AnnotationEntry} is responsible for providing those annotations (or annotation
diff --git a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/AnnotationValueService.java b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/AnnotationValueService.java
index ede7a5265..2c53dbbdd 100644
--- a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/AnnotationValueService.java
+++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/AnnotationValueService.java
@@ -25,6 +25,7 @@ import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.ecore.EObject;
 import org.fortiss.tooling.base.model.element.IAnnotatedSpecification;
 import org.fortiss.tooling.base.model.element.IModelElement;
+import org.fortiss.tooling.base.ui.annotation.valueprovider.IAnnotationValueProvider;
 import org.fortiss.tooling.kernel.model.IProjectRootElement;
 import org.fortiss.tooling.kernel.service.base.EObjectAwareServiceBase;
 import org.fortiss.tooling.kernel.utils.EcoreUtils;
diff --git a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/AnnotationEditingSupportCombo.java b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/editingsupport/ComboBoxEditingSupport.java
similarity index 94%
rename from org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/AnnotationEditingSupportCombo.java
rename to org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/editingsupport/ComboBoxEditingSupport.java
index 0cc40bcc3..e2e8e37fa 100644
--- a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/AnnotationEditingSupportCombo.java
+++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/editingsupport/ComboBoxEditingSupport.java
@@ -15,7 +15,7 @@ $Id$
 | See the License for the specific language governing permissions and      |
 | limitations under the License.                                           |
 +--------------------------------------------------------------------------*/
-package org.fortiss.tooling.base.ui.annotation;
+package org.fortiss.tooling.base.ui.annotation.editingsupport;
 
 import java.util.List;
 
@@ -29,6 +29,7 @@ import org.eclipse.jface.viewers.LabelProvider;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Shell;
 import org.fortiss.tooling.base.model.element.IAnnotatedSpecification;
+import org.fortiss.tooling.base.ui.annotation.AnnotationEntry;
 import org.fortiss.tooling.kernel.extension.data.ITopLevelElement;
 import org.fortiss.tooling.kernel.service.IPersistencyService;
 
@@ -41,7 +42,7 @@ import org.fortiss.tooling.kernel.service.IPersistencyService;
  * @version $Rev$
  * @ConQAT.Rating YELLOW Hash: AC8E4395DB075EC3FA9BF290373BBD9B
  */
-public class AnnotationEditingSupportCombo extends EditingSupport {
+public class ComboBoxEditingSupport extends EditingSupport {
 	/** Combo box cell editor */
 	private ComboBoxViewerCellEditor cellEditor = null;
 
@@ -57,7 +58,7 @@ public class AnnotationEditingSupportCombo extends EditingSupport {
 	 *            the values for the combo box
 	 * @param class1
 	 */
-	public AnnotationEditingSupportCombo(ColumnViewer viewer, List<String> values,
+	public ComboBoxEditingSupport(ColumnViewer viewer, List<String> values,
 			Class<? extends IAnnotatedSpecification> class1) {
 		super(viewer);
 		cellEditor = new ComboBoxViewerCellEditor((Composite)getViewer().getControl());
diff --git a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/AnnotationEditingSupportStandard.java b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/editingsupport/TextEditingSupport.java
similarity index 94%
rename from org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/AnnotationEditingSupportStandard.java
rename to org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/editingsupport/TextEditingSupport.java
index 673ae2a49..c1ef9e8f5 100644
--- a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/AnnotationEditingSupportStandard.java
+++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/editingsupport/TextEditingSupport.java
@@ -15,7 +15,7 @@ $Id$
 | See the License for the specific language governing permissions and      |
 | limitations under the License.                                           |
 +--------------------------------------------------------------------------*/
-package org.fortiss.tooling.base.ui.annotation;
+package org.fortiss.tooling.base.ui.annotation.editingsupport;
 
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.viewers.CellEditor;
@@ -26,6 +26,7 @@ import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Shell;
 import org.fortiss.tooling.base.model.element.IAnnotatedSpecification;
+import org.fortiss.tooling.base.ui.annotation.AnnotationEntry;
 import org.fortiss.tooling.kernel.extension.data.ITopLevelElement;
 import org.fortiss.tooling.kernel.service.IPersistencyService;
 
@@ -39,7 +40,7 @@ import org.fortiss.tooling.kernel.service.IPersistencyService;
  * @version $Rev$
  * @ConQAT.Rating YELLOW Hash: 09C91FA1AB55052CD74ECF69E121DD7C
  */
-public class AnnotationEditingSupportStandard extends EditingSupport {
+public class TextEditingSupport extends EditingSupport {
 
 	/** Text cell editor */
 	protected TextCellEditor cellEditor = null;
@@ -47,7 +48,7 @@ public class AnnotationEditingSupportStandard extends EditingSupport {
 	protected Class<? extends IAnnotatedSpecification> specClass;
 
 	/** Constructor. */
-	public AnnotationEditingSupportStandard(ColumnViewer viewer,
+	public TextEditingSupport(ColumnViewer viewer,
 			Class<? extends IAnnotatedSpecification> class1) {
 		super(viewer);
 
diff --git a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/editingsupport/package.html b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/editingsupport/package.html
new file mode 100644
index 000000000..82211c07d
--- /dev/null
+++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/editingsupport/package.html
@@ -0,0 +1,8 @@
+<!--  
+  $Id$
+  @version $Rev$
+  @ConQAT.Rating YELLOW Hash: 220FF5C80574A4AE88C30A7C56D52CE7
+-->
+<body>
+Editing support to embed annotations into the generic table-based annotation view.
+</body>
diff --git a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/package.html b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/package.html
index 7f1a39bcc..3f72c67b7 100644
--- a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/package.html
+++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/package.html
@@ -4,5 +4,10 @@
   @ConQAT.Rating YELLOW Hash: 220FF5C80574A4AE88C30A7C56D52CE7
 -->
 <body>
-TODO
+Annotation framework. It provide a flexible mechanism to decorate model elements with primitive and complex annotations.
+
+<ul>
+<li><tt>valueprovider.*</tt>, contains an interface (<tt>IAnnotationValueProvider</tt>) and several predefined concrete value providers to couple the model / data storage with the UI</li>
+<li><tt>view.*</tt> provides abstract base classes and a generic table-based view part to display annotations.</li>
+<li><tt>editingsupport.*</tt> contains editing support to embed annotations into the generic table-based annotation view.</li>
 </body>
diff --git a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/IAnnotationValueProvider.java b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/valueprovider/IAnnotationValueProvider.java
similarity index 98%
rename from org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/IAnnotationValueProvider.java
rename to org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/valueprovider/IAnnotationValueProvider.java
index f980d25ae..fecdc43f2 100644
--- a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/IAnnotationValueProvider.java
+++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/valueprovider/IAnnotationValueProvider.java
@@ -15,7 +15,7 @@ $Id$
 | See the License for the specific language governing permissions and      |
 | limitations under the License.                                           |
 +--------------------------------------------------------------------------*/
-package org.fortiss.tooling.base.ui.annotation;
+package org.fortiss.tooling.base.ui.annotation.valueprovider;
 
 import java.util.List;
 
diff --git a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/valueprovider/package.html b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/valueprovider/package.html
new file mode 100644
index 000000000..02a7ab383
--- /dev/null
+++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/valueprovider/package.html
@@ -0,0 +1,8 @@
+<!--  
+  $Id$
+  @version $Rev$
+  @ConQAT.Rating YELLOW Hash: 220FF5C80574A4AE88C30A7C56D52CE7
+-->
+<body>
+An interface (<tt>IAnnotationValueProvider</tt>) and several predefined concrete value providers to couple the model / data storage with the UI.
+</body>
diff --git a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/AnnotationLabelProvider.java b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/view/AnnotationLabelProvider.java
similarity index 96%
rename from org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/AnnotationLabelProvider.java
rename to org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/view/AnnotationLabelProvider.java
index 527ff75d3..5d0c68364 100644
--- a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/AnnotationLabelProvider.java
+++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/view/AnnotationLabelProvider.java
@@ -15,12 +15,13 @@ $Id$
 | See the License for the specific language governing permissions and      |
 | limitations under the License.                                           |
 +--------------------------------------------------------------------------*/
-package org.fortiss.tooling.base.ui.annotation;
+package org.fortiss.tooling.base.ui.annotation.view;
 
 import org.eclipse.jface.viewers.ColumnLabelProvider;
 import org.eclipse.swt.graphics.Color;
 import org.eclipse.wb.swt.SWTResourceManager;
 import org.fortiss.tooling.base.model.element.IAnnotatedSpecification;
+import org.fortiss.tooling.base.ui.annotation.AnnotationEntry;
 
 /**
  * This class provides the labels in the table of the annotation view when no item is selected for
diff --git a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/AnnotationViewPartBase.java b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/view/AnnotationViewPartBase.java
similarity index 95%
rename from org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/AnnotationViewPartBase.java
rename to org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/view/AnnotationViewPartBase.java
index 93f6a7cfa..e92e42acd 100644
--- a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/AnnotationViewPartBase.java
+++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/view/AnnotationViewPartBase.java
@@ -15,7 +15,7 @@ $Id$
 | See the License for the specific language governing permissions and      |
 | limitations under the License.                                           |
 +--------------------------------------------------------------------------*/
-package org.fortiss.tooling.base.ui.annotation;
+package org.fortiss.tooling.base.ui.annotation.view;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -26,6 +26,8 @@ import org.eclipse.ui.ISelectionListener;
 import org.eclipse.ui.IWorkbenchPart;
 import org.eclipse.ui.part.ViewPart;
 import org.fortiss.tooling.base.model.element.IModelElement;
+import org.fortiss.tooling.base.ui.annotation.AnnotationEntry;
+import org.fortiss.tooling.base.ui.annotation.IAnnotationValueService;
 import org.fortiss.tooling.base.ui.editpart.DiagramEditPartBase;
 import org.fortiss.tooling.base.ui.editpart.ElementEditPartBase;
 import org.fortiss.tooling.kernel.ui.util.SelectionUtils;
diff --git a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/GenericAnnotationView.java b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/view/GenericAnnotationView.java
similarity index 94%
rename from org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/GenericAnnotationView.java
rename to org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/view/GenericAnnotationView.java
index 34f75dabd..f6fc12f51 100644
--- a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/GenericAnnotationView.java
+++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/view/GenericAnnotationView.java
@@ -15,7 +15,7 @@ $Id$
 | See the License for the specific language governing permissions and      |
 | limitations under the License.                                           |
 +--------------------------------------------------------------------------*/
-package org.fortiss.tooling.base.ui.annotation;
+package org.fortiss.tooling.base.ui.annotation.view;
 
 import java.util.HashMap;
 
@@ -33,6 +33,9 @@ import org.eclipse.swt.widgets.Table;
 import org.eclipse.ui.IWorkbenchPart;
 import org.eclipse.wb.swt.SWTResourceManager;
 import org.fortiss.tooling.base.model.element.IAnnotatedSpecification;
+import org.fortiss.tooling.base.ui.annotation.AnnotationEntry;
+import org.fortiss.tooling.base.ui.annotation.editingsupport.ComboBoxEditingSupport;
+import org.fortiss.tooling.base.ui.annotation.editingsupport.TextEditingSupport;
 import org.fortiss.tooling.kernel.model.INamedCommentedElement;
 
 /**
@@ -162,12 +165,12 @@ public class GenericAnnotationView extends AnnotationViewPartBase {
 			if(entry.getFixedSpecificationValues(spec.getClass()) == null) {
 				column.setLabelProvider(new AnnotationLabelProvider(spec.getClass(), this));
 				EditingSupport editingSupport =
-						new AnnotationEditingSupportStandard(column.getViewer(), spec.getClass());
+						new TextEditingSupport(column.getViewer(), spec.getClass());
 				column.setEditingSupport(editingSupport);
 			} else {
 				column.setLabelProvider(new AnnotationLabelProvider(spec.getClass(), this));
 				EditingSupport editingSupport =
-						new AnnotationEditingSupportCombo(column.getViewer(),
+						new ComboBoxEditingSupport(column.getViewer(),
 								entry.getFixedSpecificationValues(spec.getClass()), spec.getClass());
 				column.setEditingSupport(editingSupport);
 			}
diff --git a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/view/package.html b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/view/package.html
new file mode 100644
index 000000000..89fc8b8d6
--- /dev/null
+++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/annotation/view/package.html
@@ -0,0 +1,8 @@
+<!--  
+  $Id$
+  @version $Rev$
+  @ConQAT.Rating YELLOW Hash: 220FF5C80574A4AE88C30A7C56D52CE7
+-->
+<body>
+Abstract base classes and a generic table-based view part to display annotations.
+</body>
-- 
GitLab