Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdrian Sacchi2014-01-27 13:02:24 +0000
committerJudith Gull2014-01-31 10:49:18 +0000
commit4eb520133878276c8299558eee91519c8580cdb0 (patch)
treea74259d3857cff119c8926a47c19bdf911f1193d
parent4c3805fd5dd08dd0a68dda2b3ccd241d756b4505 (diff)
downloadorg.eclipse.scout.rt-4eb520133878276c8299558eee91519c8580cdb0.tar.gz
org.eclipse.scout.rt-4eb520133878276c8299558eee91519c8580cdb0.tar.xz
org.eclipse.scout.rt-4eb520133878276c8299558eee91519c8580cdb0.zip
bug 425881: [Spec] Describe Types
https://bugs.eclipse.org/bugs/show_bug.cgi?id=425881 Change-Id: I611ee692fbda64561f500f2c997254b51a63c878 Signed-off-by: Adrian Sacchi <adrian.sacchi@bsiag.com> Reviewed-on: https://git.eclipse.org/r/21199 Tested-by: Hudson CI Reviewed-by: Judith Gull <jgu@bsiag.com> IP-Clean: Judith Gull <jgu@bsiag.com>
-rw-r--r--org.eclipse.scout.commons/src/org/eclipse/scout/commons/annotations/Doc.java15
-rw-r--r--org.eclipse.scout.rt.client/src/org/eclipse/scout/rt/client/ui/basic/table/columns/AbstractBooleanColumn.java2
-rw-r--r--org.eclipse.scout.rt.client/src/org/eclipse/scout/rt/client/ui/form/fields/decimalfield/AbstractDecimalField.java2
-rw-r--r--org.eclipse.scout.rt.spec.client.test/src/org/eclipse/scout/rt/spec/client/TypeSpceTest.java75
-rw-r--r--org.eclipse.scout.rt.spec.client.test/src/org/eclipse/scout/rt/spec/client/fixture/TestConfigIgnoreDoc.java4
-rw-r--r--org.eclipse.scout.rt.spec.client.test/src/org/eclipse/scout/rt/spec/client/fixture/TestConfigNoFilters.java2
-rw-r--r--org.eclipse.scout.rt.spec.client.test/src/org/eclipse/scout/rt/spec/client/gen/extract/SpecialDescriptionExtractorTest.java31
-rw-r--r--org.eclipse.scout.rt.spec.client/META-INF/MANIFEST.MF1
-rw-r--r--org.eclipse.scout.rt.spec.client/resources/docs/Docs.properties11
-rw-r--r--org.eclipse.scout.rt.spec.client/resources/docs/Docs_de.properties7
-rw-r--r--org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/AbstractTypeSpecTest.java100
-rw-r--r--org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/ColumnTypesSpecTest.java23
-rw-r--r--org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/FieldTypeSpecGen.java43
-rw-r--r--org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/FieldTypesSpecTest.java23
-rw-r--r--org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/SpecPostProcessor.java7
-rw-r--r--org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/config/SpecFileConfig.java9
-rw-r--r--org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/config/entity/DefaultEntityConfig.java13
-rw-r--r--org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/config/entity/DefaultFormConfig.java4
-rw-r--r--org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/config/entity/DefaultSmartFieldConfig.java4
-rw-r--r--org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/config/entity/DefaultTableFieldConfig.java4
-rw-r--r--org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/config/entity/DefaultTablePageConfig.java2
-rw-r--r--org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/config/entity/DefaultTypesConfig.java10
-rw-r--r--org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/config/entity/IDocEntityConfig.java6
-rw-r--r--org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/gen/DocGenUtility.java2
-rw-r--r--org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/gen/FormSpecGenerator.java4
-rw-r--r--org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/gen/PageSpecGenerator.java4
-rw-r--r--org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/gen/SmartFieldVisitor.java4
-rw-r--r--org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/gen/TableFieldVisitor.java4
-rw-r--r--org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/gen/TypeSpecGenerator.java19
-rw-r--r--org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/gen/extract/SpecialDescriptionExtractor.java44
-rw-r--r--org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/gen/filter/DefaultDocFilter.java10
31 files changed, 393 insertions, 96 deletions
diff --git a/org.eclipse.scout.commons/src/org/eclipse/scout/commons/annotations/Doc.java b/org.eclipse.scout.commons/src/org/eclipse/scout/commons/annotations/Doc.java
index b2a57c165d..3e9e5cbfae 100644
--- a/org.eclipse.scout.commons/src/org/eclipse/scout/commons/annotations/Doc.java
+++ b/org.eclipse.scout.commons/src/org/eclipse/scout/commons/annotations/Doc.java
@@ -12,11 +12,22 @@ import java.lang.annotation.Target;
@Target(ElementType.TYPE)
public @interface Doc {
+ /**
+ * {@link #ACCEPT} type appears in generated doc<br>
+ * {@link #REJECT} type does not appear in generated doc<br>
+ * {@link #TRANSPARENT} type does not appear in generated doc, but it's children do<br>
+ * {@link #ACCEPT_REJECT_CHILDREN} type appears in generated doc, but it's children do not
+ */
enum Filtering {
- ACCEPT, REJECT, TRANSPARENT, ACCEPT_REJECT_CHILDREN
+ ACCEPT,
+ REJECT,
+ TRANSPARENT,
+ ACCEPT_REJECT_CHILDREN
}
- // TODO ASA javadoc
+ /**
+ * Definition for the default filtering behavior
+ */
Filtering filter() default Filtering.ACCEPT;
/**
diff --git a/org.eclipse.scout.rt.client/src/org/eclipse/scout/rt/client/ui/basic/table/columns/AbstractBooleanColumn.java b/org.eclipse.scout.rt.client/src/org/eclipse/scout/rt/client/ui/basic/table/columns/AbstractBooleanColumn.java
index f8e1cc5f2c..8b3cf639d0 100644
--- a/org.eclipse.scout.rt.client/src/org/eclipse/scout/rt/client/ui/basic/table/columns/AbstractBooleanColumn.java
+++ b/org.eclipse.scout.rt.client/src/org/eclipse/scout/rt/client/ui/basic/table/columns/AbstractBooleanColumn.java
@@ -10,6 +10,7 @@
******************************************************************************/
package org.eclipse.scout.rt.client.ui.basic.table.columns;
+import org.eclipse.scout.commons.annotations.ClassId;
import org.eclipse.scout.commons.annotations.ConfigProperty;
import org.eclipse.scout.commons.annotations.Order;
import org.eclipse.scout.commons.exception.ProcessingException;
@@ -22,6 +23,7 @@ import org.eclipse.scout.rt.client.ui.form.fields.booleanfield.AbstractBooleanFi
/**
* Column holding Boolean values
*/
+@ClassId("62fcae6b-6b75-4e8c-bb3f-ea3b400e7e30")
public abstract class AbstractBooleanColumn extends AbstractColumn<Boolean> implements IBooleanColumn {
private static final IScoutLogger LOG = ScoutLogManager.getLogger(AbstractBooleanColumn.class);
diff --git a/org.eclipse.scout.rt.client/src/org/eclipse/scout/rt/client/ui/form/fields/decimalfield/AbstractDecimalField.java b/org.eclipse.scout.rt.client/src/org/eclipse/scout/rt/client/ui/form/fields/decimalfield/AbstractDecimalField.java
index d7d2068a41..d8e3e21307 100644
--- a/org.eclipse.scout.rt.client/src/org/eclipse/scout/rt/client/ui/form/fields/decimalfield/AbstractDecimalField.java
+++ b/org.eclipse.scout.rt.client/src/org/eclipse/scout/rt/client/ui/form/fields/decimalfield/AbstractDecimalField.java
@@ -16,6 +16,7 @@ import java.math.RoundingMode;
import java.text.DecimalFormat;
import org.eclipse.scout.commons.LocaleThreadLocal;
+import org.eclipse.scout.commons.annotations.ClassId;
import org.eclipse.scout.commons.annotations.ConfigProperty;
import org.eclipse.scout.commons.annotations.Order;
import org.eclipse.scout.commons.logger.IScoutLogger;
@@ -23,6 +24,7 @@ import org.eclipse.scout.commons.logger.ScoutLogManager;
import org.eclipse.scout.rt.client.ui.form.fields.numberfield.AbstractNumberField;
import org.eclipse.scout.rt.client.ui.valuecontainer.IDecimalValueContainer;
+@ClassId("f4ec575e-f572-418d-a49c-3d0811ea7540")
public abstract class AbstractDecimalField<T extends Number> extends AbstractNumberField<T> implements IDecimalField<T> {
private static final IScoutLogger LOG = ScoutLogManager.getLogger(AbstractDecimalField.class);
diff --git a/org.eclipse.scout.rt.spec.client.test/src/org/eclipse/scout/rt/spec/client/TypeSpceTest.java b/org.eclipse.scout.rt.spec.client.test/src/org/eclipse/scout/rt/spec/client/TypeSpceTest.java
new file mode 100644
index 0000000000..5aa0707bc9
--- /dev/null
+++ b/org.eclipse.scout.rt.spec.client.test/src/org/eclipse/scout/rt/spec/client/TypeSpceTest.java
@@ -0,0 +1,75 @@
+/*******************************************************************************
+ * Copyright (c) 2010 BSI Business Systems Integration AG.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * BSI Business Systems Integration AG - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.scout.rt.spec.client;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+
+import org.eclipse.scout.commons.exception.ProcessingException;
+import org.eclipse.scout.rt.client.ui.basic.table.columns.AbstractBooleanColumn;
+import org.eclipse.scout.rt.client.ui.basic.table.columns.AbstractColumn;
+import org.eclipse.scout.rt.client.ui.form.fields.datefield.AbstractDateField;
+import org.eclipse.scout.rt.client.ui.form.fields.stringfield.AbstractStringField;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Test for {@link AbstractTypeSpecTest}, {@link FieldTypesSpecTest}, {@link ColumnTypesSpecTest}
+ */
+public class TypeSpceTest {
+
+ private FieldTypesSpecTest m_fieldTypesSpecTest;
+ private ColumnTypesSpecTest m_columnTypesSpecTest;
+
+ @Before
+ public void setup() {
+ m_fieldTypesSpecTest = new FieldTypesSpecTest();
+ m_columnTypesSpecTest = new ColumnTypesSpecTest();
+ }
+
+ @Test
+ public void testAcceptClassFieldTypeSpec() {
+ assertTrue("AbstractStringField should be accepted, since it is a field and doc text is available.", m_fieldTypesSpecTest.acceptClass(AbstractStringField.class));
+ assertFalse("AbstractBooleanColumn should not be accepted, since it is not a field.", m_fieldTypesSpecTest.acceptClass(AbstractBooleanColumn.class));
+ assertFalse("TestStringField should not be accepted, since doc text is not available.", m_fieldTypesSpecTest.acceptClass(TestStringField.class));
+ }
+
+ @Test
+ public void testAcceptClassColumnTypeSpec() {
+ assertFalse("AbstractStringField should not be accepted, since it is not a column.", m_columnTypesSpecTest.acceptClass(AbstractStringField.class));
+ assertTrue("AbstractBooleanColumn should be accepted, since it is a column and doc text is available.", m_columnTypesSpecTest.acceptClass(AbstractBooleanColumn.class));
+ assertFalse("TestStringField should not be accepted, since it's neither a column and doc text is not available.", m_columnTypesSpecTest.acceptClass(TestStringField.class));
+ assertFalse("TestStringColumn should not be accepted, since doc text is not available.", m_columnTypesSpecTest.acceptClass(TestStringColumn.class));
+ }
+
+ @Test
+ public void testGetAllClassesColumnTypeSpec() throws ProcessingException {
+ assertTrue("Expected AbstractBooleanColumn to be found.", Arrays.asList(m_columnTypesSpecTest.getAllClasses()).contains(AbstractBooleanColumn.class));
+ }
+
+ @Test
+ public void testGetAllClassesFieldsTypeSpec() throws ProcessingException {
+ ArrayList<Class> expectedClasses = new ArrayList<Class>();
+ expectedClasses.add(AbstractStringField.class);
+ expectedClasses.add(AbstractDateField.class);
+ assertTrue("Expected AbstractStringField to be found.", Arrays.asList(m_fieldTypesSpecTest.getAllClasses()).containsAll(expectedClasses));
+ }
+
+ private class TestStringField extends AbstractStringField {
+ }
+
+ private class TestStringColumn extends AbstractColumn {
+ }
+
+}
diff --git a/org.eclipse.scout.rt.spec.client.test/src/org/eclipse/scout/rt/spec/client/fixture/TestConfigIgnoreDoc.java b/org.eclipse.scout.rt.spec.client.test/src/org/eclipse/scout/rt/spec/client/fixture/TestConfigIgnoreDoc.java
index bfa0f63c23..eaad13457f 100644
--- a/org.eclipse.scout.rt.spec.client.test/src/org/eclipse/scout/rt/spec/client/fixture/TestConfigIgnoreDoc.java
+++ b/org.eclipse.scout.rt.spec.client.test/src/org/eclipse/scout/rt/spec/client/fixture/TestConfigIgnoreDoc.java
@@ -32,14 +32,14 @@ public class TestConfigIgnoreDoc extends DefaultEntityConfig<IFormField> {
}
@Override
- public List<IDocTextExtractor<IFormField>> getTexts() {
+ public List<IDocTextExtractor<IFormField>> getPropertyTextExtractors() {
ArrayList<IDocTextExtractor<IFormField>> p = new ArrayList<IDocTextExtractor<IFormField>>();
p.add(new TypeExtractor<IFormField>());
return p;
}
@Override
- public IDocTextExtractor<IFormField> getId() {
+ public IDocTextExtractor<IFormField> getIdExtractor() {
return null;
}
diff --git a/org.eclipse.scout.rt.spec.client.test/src/org/eclipse/scout/rt/spec/client/fixture/TestConfigNoFilters.java b/org.eclipse.scout.rt.spec.client.test/src/org/eclipse/scout/rt/spec/client/fixture/TestConfigNoFilters.java
index ff8b38edcd..d60036ff2f 100644
--- a/org.eclipse.scout.rt.spec.client.test/src/org/eclipse/scout/rt/spec/client/fixture/TestConfigNoFilters.java
+++ b/org.eclipse.scout.rt.spec.client.test/src/org/eclipse/scout/rt/spec/client/fixture/TestConfigNoFilters.java
@@ -29,7 +29,7 @@ public class TestConfigNoFilters extends DefaultEntityConfig<IFormField> {
}
@Override
- public List<IDocTextExtractor<IFormField>> getTexts() {
+ public List<IDocTextExtractor<IFormField>> getPropertyTextExtractors() {
ArrayList<IDocTextExtractor<IFormField>> p = new ArrayList<IDocTextExtractor<IFormField>>();
p.add(new TypeExtractor<IFormField>());
return p;
diff --git a/org.eclipse.scout.rt.spec.client.test/src/org/eclipse/scout/rt/spec/client/gen/extract/SpecialDescriptionExtractorTest.java b/org.eclipse.scout.rt.spec.client.test/src/org/eclipse/scout/rt/spec/client/gen/extract/SpecialDescriptionExtractorTest.java
new file mode 100644
index 0000000000..642cbfffe4
--- /dev/null
+++ b/org.eclipse.scout.rt.spec.client.test/src/org/eclipse/scout/rt/spec/client/gen/extract/SpecialDescriptionExtractorTest.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2010 BSI Business Systems Integration AG.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * BSI Business Systems Integration AG - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.scout.rt.spec.client.gen.extract;
+
+import org.eclipse.scout.commons.StringUtility;
+import org.eclipse.scout.rt.client.ui.form.fields.stringfield.AbstractStringField;
+import org.eclipse.scout.rt.shared.TEXTS;
+import org.junit.Assert;
+import org.junit.Test;
+
+/**
+ * Test for {@link SpecialDescriptionExtractor}
+ */
+public class SpecialDescriptionExtractorTest {
+
+ @Test
+ public void testGetText() {
+ SpecialDescriptionExtractor nameExtractor = new SpecialDescriptionExtractor(TEXTS.get("org.eclipse.scout.rt.spec.type"), "_name");
+ SpecialDescriptionExtractor descriptionExtractor = new SpecialDescriptionExtractor(TEXTS.get("org.eclipse.scout.rt.spec.doc"), "_description");
+ Assert.assertTrue("Name for AbstractStringField could not be extracted!", !StringUtility.isNullOrEmpty(nameExtractor.getText(AbstractStringField.class)));
+ Assert.assertTrue("Description for AbstractStringField could not be extracted!", !StringUtility.isNullOrEmpty(descriptionExtractor.getText(AbstractStringField.class)));
+ }
+}
diff --git a/org.eclipse.scout.rt.spec.client/META-INF/MANIFEST.MF b/org.eclipse.scout.rt.spec.client/META-INF/MANIFEST.MF
index 9027814642..4da74e3c10 100644
--- a/org.eclipse.scout.rt.spec.client/META-INF/MANIFEST.MF
+++ b/org.eclipse.scout.rt.spec.client/META-INF/MANIFEST.MF
@@ -20,5 +20,6 @@ Require-Bundle: org.eclipse.core.runtime,
org.eclipse.scout.rt.extension.client,
org.eclipse.scout.commons,
org.eclipse.scout.rt.testing.shared
+Import-Package: org.junit;version="[4.9.0,5.0.0)"
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Bundle-ActivationPolicy: lazy
diff --git a/org.eclipse.scout.rt.spec.client/resources/docs/Docs.properties b/org.eclipse.scout.rt.spec.client/resources/docs/Docs.properties
index d0c73f439a..b8faa9c9a0 100644
--- a/org.eclipse.scout.rt.spec.client/resources/docs/Docs.properties
+++ b/org.eclipse.scout.rt.spec.client/resources/docs/Docs.properties
@@ -1,16 +1,22 @@
+62fcae6b-6b75-4e8c-bb3f-ea3b400e7e30_description=Column for displaying boolean values (yes or no) as checkbox.
+62fcae6b-6b75-4e8c-bb3f-ea3b400e7e30_name=Checkbox Column
d8b1f73a-4415-4477-8408-e6ada9e69551_description=Field for text editing
-d8b1f73a-4415-4477-8408-e6ada9e69551_name=Textfield
+d8b1f73a-4415-4477-8408-e6ada9e69551_name=Text Field
+f4ec575e-f572-418d-a49c-3d0811ea7540_description=Field for editing decimal numbers
+f4ec575e-f572-418d-a49c-3d0811ea7540_name=Decimal Number Field
f73eed8c-1e70-4903-a23f-4a29d884e5ea_description=Field for editing dates
-f73eed8c-1e70-4903-a23f-4a29d884e5ea_name=Datefield
+f73eed8c-1e70-4903-a23f-4a29d884e5ea_name=Date Field
org.eclipse.scout.rt.spec.action.emptySpace=0
org.eclipse.scout.rt.spec.action.multiSelection=n
org.eclipse.scout.rt.spec.action.singleSelection=1
org.eclipse.scout.rt.spec.action.withoutLabel=without label
org.eclipse.scout.rt.spec.columns=Columns
+org.eclipse.scout.rt.spec.columntypes=Column Types
org.eclipse.scout.rt.spec.doc=Description
org.eclipse.scout.rt.spec.enabled=e
org.eclipse.scout.rt.spec.false=-
org.eclipse.scout.rt.spec.fields=Fields
+org.eclipse.scout.rt.spec.fieldtypes=Field Types
org.eclipse.scout.rt.spec.id=Id
org.eclipse.scout.rt.spec.label=Label
org.eclipse.scout.rt.spec.length=Length
@@ -21,5 +27,4 @@ org.eclipse.scout.rt.spec.sort=Sort
org.eclipse.scout.rt.spec.tooltip=Tooltip
org.eclipse.scout.rt.spec.true=+
org.eclipse.scout.rt.spec.type=Type
-org.eclipse.scout.rt.spec.types=Types
org.eclipse.scout.rt.spec.width=Width
diff --git a/org.eclipse.scout.rt.spec.client/resources/docs/Docs_de.properties b/org.eclipse.scout.rt.spec.client/resources/docs/Docs_de.properties
index 3f7e457b47..9398773617 100644
--- a/org.eclipse.scout.rt.spec.client/resources/docs/Docs_de.properties
+++ b/org.eclipse.scout.rt.spec.client/resources/docs/Docs_de.properties
@@ -1,5 +1,9 @@
+62fcae6b-6b75-4e8c-bb3f-ea3b400e7e30_description=Spalte um boolsche Werte (ja oder nein) als Checkbox darzustellen.
+62fcae6b-6b75-4e8c-bb3f-ea3b400e7e30_name=Checkbox Spalte
d8b1f73a-4415-4477-8408-e6ada9e69551_description=Feld f\u00FCr die Erfassung von Text
d8b1f73a-4415-4477-8408-e6ada9e69551_name=Textfeld
+f4ec575e-f572-418d-a49c-3d0811ea7540_description=Feld f\u00FCr die Erfassung von Dezimalzahlen
+f4ec575e-f572-418d-a49c-3d0811ea7540_name=Dezimalzahlfeld
f73eed8c-1e70-4903-a23f-4a29d884e5ea_description=Feld f\u00FCr die Datumserfassung
f73eed8c-1e70-4903-a23f-4a29d884e5ea_name=Datumsfeld
org.eclipse.scout.rt.spec.action.emptySpace=0
@@ -7,10 +11,12 @@ org.eclipse.scout.rt.spec.action.multiSelection=n
org.eclipse.scout.rt.spec.action.singleSelection=1
org.eclipse.scout.rt.spec.action.withoutLabel=ohne Bezeichnung
org.eclipse.scout.rt.spec.columns=Spalten
+org.eclipse.scout.rt.spec.columntypes=Spaltentypen
org.eclipse.scout.rt.spec.doc=Beschreibung
org.eclipse.scout.rt.spec.enabled=e
org.eclipse.scout.rt.spec.false=-
org.eclipse.scout.rt.spec.fields=Felder
+org.eclipse.scout.rt.spec.fieldtypes=Feldtypen
org.eclipse.scout.rt.spec.id=Id
org.eclipse.scout.rt.spec.label=Beschriftung
org.eclipse.scout.rt.spec.length=L\u00E4nge
@@ -21,5 +27,4 @@ org.eclipse.scout.rt.spec.sort=Sort
org.eclipse.scout.rt.spec.tooltip=Tooltip
org.eclipse.scout.rt.spec.true=+
org.eclipse.scout.rt.spec.type=Typ
-org.eclipse.scout.rt.spec.types=Typen
org.eclipse.scout.rt.spec.width=Breite
diff --git a/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/AbstractTypeSpecTest.java b/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/AbstractTypeSpecTest.java
new file mode 100644
index 0000000000..09801cd046
--- /dev/null
+++ b/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/AbstractTypeSpecTest.java
@@ -0,0 +1,100 @@
+/*******************************************************************************
+ * Copyright (c) 2010 BSI Business Systems Integration AG.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * BSI Business Systems Integration AG - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.scout.rt.spec.client;
+
+import java.util.HashSet;
+
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.scout.commons.ITypeWithClassId;
+import org.eclipse.scout.commons.exception.ProcessingException;
+import org.eclipse.scout.commons.logger.IScoutLogger;
+import org.eclipse.scout.commons.logger.ScoutLogManager;
+import org.eclipse.scout.commons.runtime.BundleBrowser;
+import org.eclipse.scout.rt.spec.client.gen.TypeSpecGenerator;
+import org.eclipse.scout.rt.spec.client.gen.extract.SpecialDescriptionExtractor;
+import org.eclipse.scout.rt.spec.client.internal.Activator;
+import org.eclipse.scout.rt.spec.client.out.IDocSection;
+import org.junit.Test;
+import org.osgi.framework.Bundle;
+
+/**
+ * Abstract spec test for creating a spec file with a table describing types (eg. form fields, columns, ...)
+ * <p>
+ * A type appears on the list if these criteria are met:<br>
+ * - The type is a subtype or the same type as the supertype provided in the constructor.<br>
+ * - A doc text with the key "[types classid]_name" is defined
+ * <p>
+ * The resulting table consists of the two columns:<br>
+ * - Name: filled with doc text with the key "[types classid]_name"<br>
+ * - Description: filled with doc text with the key "[types classid]_description"
+ */
+public abstract class AbstractTypeSpecTest extends AbstractSpecGen {
+ private static final IScoutLogger LOG = ScoutLogManager.getLogger(AbstractTypeSpecTest.class);
+ private Class<?> m_supertype;
+ private String m_id;
+ private String m_title;
+
+ public AbstractTypeSpecTest(String id, String title, Class<? extends ITypeWithClassId> supertype) {
+ m_id = id;
+ m_title = title;
+ m_supertype = supertype;
+ }
+
+ @Test
+ public void generateFieldTypeSpec() throws ProcessingException {
+
+ Class[] fieldTypes = getAllClasses();
+ IDocSection doc = generate(fieldTypes);
+ write(doc, m_id, new String[]{});
+ }
+
+ protected Class[] getAllClasses() throws ProcessingException {
+ HashSet<Class> discoveredClasses = new HashSet<Class>();
+ for (Bundle bundle : Activator.getDefault().getBundle().getBundleContext().getBundles()) {
+ // Skip fragments, because classes from fragments are read when browsing the host bundle
+ if (Platform.isFragment(bundle)) {
+ continue;
+ }
+ String[] classNames;
+ BundleBrowser bundleBrowser = new BundleBrowser(bundle.getSymbolicName(), bundle.getSymbolicName());
+ classNames = bundleBrowser.getClasses(false, true);
+ Class c = null;
+ for (String className : classNames) {
+ try {
+ c = bundle.loadClass(className);
+ }
+ catch (Throwable t) {
+ // nop: we are only interested in loadable classes
+ }
+ if (acceptClass(c)) {
+ discoveredClasses.add(c);
+ }
+ }
+ }
+
+ Class[] fieldTypes = discoveredClasses.toArray(new Class[discoveredClasses.size()]);
+ return fieldTypes;
+ }
+
+ protected boolean acceptClass(Class c) {
+ if (c == null || !m_supertype.isAssignableFrom(c)) {
+ return false;
+ }
+ String typeDescription = new SpecialDescriptionExtractor(null, "_name").getText(c);
+ return typeDescription != null;
+ }
+
+ protected IDocSection generate(Class[] fieldTypes) {
+ TypeSpecGenerator g = new TypeSpecGenerator(getConfiguration(), m_id, m_title);
+ return g.getDocSection(fieldTypes);
+ }
+
+}
diff --git a/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/ColumnTypesSpecTest.java b/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/ColumnTypesSpecTest.java
new file mode 100644
index 0000000000..53b39fdd72
--- /dev/null
+++ b/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/ColumnTypesSpecTest.java
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * Copyright (c) 2010 BSI Business Systems Integration AG.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the BSI CRM Software License v1.0
+ * which accompanies this distribution as bsi-v10.html
+ *
+ * Contributors:
+ * BSI Business Systems Integration AG - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.scout.rt.spec.client;
+
+import org.eclipse.scout.rt.client.ui.basic.table.columns.IColumn;
+import org.eclipse.scout.rt.shared.TEXTS;
+
+/**
+ * Concrete implementation of {@link AbstractTypeSpecTest} for columns
+ */
+public class ColumnTypesSpecTest extends AbstractTypeSpecTest {
+
+ public ColumnTypesSpecTest() {
+ super("org.eclipse.scout.rt.spec.columntypes", TEXTS.get("org.eclipse.scout.rt.spec.columntypes"), IColumn.class);
+ }
+}
diff --git a/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/FieldTypeSpecGen.java b/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/FieldTypeSpecGen.java
deleted file mode 100644
index fd0fae70f9..0000000000
--- a/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/FieldTypeSpecGen.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 BSI Business Systems Integration AG.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * BSI Business Systems Integration AG - initial API and implementation
- ******************************************************************************/
-package org.eclipse.scout.rt.spec.client;
-
-import org.eclipse.scout.commons.exception.ProcessingException;
-import org.eclipse.scout.rt.client.ui.basic.table.ITable;
-import org.eclipse.scout.rt.client.ui.desktop.outline.pages.IPageWithTable;
-import org.eclipse.scout.rt.client.ui.form.fields.datefield.AbstractDateField;
-import org.eclipse.scout.rt.client.ui.form.fields.stringfield.AbstractStringField;
-import org.eclipse.scout.rt.spec.client.gen.TypeSpecGenerator;
-import org.eclipse.scout.rt.spec.client.out.IDocSection;
-
-/**
- *
- */
-public abstract class FieldTypeSpecGen extends AbstractSpecGen {
-
- public void printAllFields() throws ProcessingException {
-
- Class[] fieldTypes = new Class[]{AbstractStringField.class, AbstractDateField.class};
- IDocSection doc = generate(fieldTypes);
- write(doc, "SpecTypes", new String[]{});
- }
-
- protected IDocSection generate(Class[] fieldTypes) {
- TypeSpecGenerator g = new TypeSpecGenerator(getConfiguration());
- return g.getDocSection(fieldTypes);
- }
-
- /**
- * @return
- */
- public abstract IPageWithTable<? extends ITable> createAndStartTablePage() throws ProcessingException;
-
-}
diff --git a/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/FieldTypesSpecTest.java b/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/FieldTypesSpecTest.java
new file mode 100644
index 0000000000..212cd12014
--- /dev/null
+++ b/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/FieldTypesSpecTest.java
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * Copyright (c) 2010 BSI Business Systems Integration AG.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the BSI CRM Software License v1.0
+ * which accompanies this distribution as bsi-v10.html
+ *
+ * Contributors:
+ * BSI Business Systems Integration AG - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.scout.rt.spec.client;
+
+import org.eclipse.scout.rt.client.ui.form.fields.IFormField;
+import org.eclipse.scout.rt.shared.TEXTS;
+
+/**
+ * Concrete implementation of {@link AbstractTypeSpecTest} for form fields
+ */
+public class FieldTypesSpecTest extends AbstractTypeSpecTest {
+
+ public FieldTypesSpecTest() {
+ super("org.eclipse.scout.rt.spec.fieldtypes", TEXTS.get("org.eclipse.scout.rt.spec.fieldtypes"), IFormField.class);
+ }
+}
diff --git a/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/SpecPostProcessor.java b/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/SpecPostProcessor.java
index 7d9416a428..e98a38121a 100644
--- a/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/SpecPostProcessor.java
+++ b/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/SpecPostProcessor.java
@@ -14,15 +14,22 @@ import java.io.File;
import java.util.HashMap;
import org.eclipse.scout.commons.exception.ProcessingException;
+import org.eclipse.scout.commons.logger.IScoutLogger;
+import org.eclipse.scout.commons.logger.ScoutLogManager;
import org.eclipse.scout.rt.spec.client.out.mediawiki.MediawikiAnchorCollector;
/**
* A post processor for replacing link tags to point to the generated files.
*/
public class SpecPostProcessor extends AbstractSpecGen implements ISpecProcessor {
+ private static IScoutLogger LOG = ScoutLogManager.getLogger(SpecPostProcessor.class);
@Override
public void process() throws ProcessingException {
+ if (!getFileConfig().getMediawikiDir().exists()) {
+ LOG.warn("MediawikiDir does not exists! (" + getFileConfig().getMediawikiDir().getPath() + ")");
+ return;
+ }
for (File wiki : getFileConfig().getMediawikiDir().listFiles()) {
replaceLinks(wiki);
File html = convertToHTML(wiki);
diff --git a/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/config/SpecFileConfig.java b/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/config/SpecFileConfig.java
index 48d08f7b08..52c47a8734 100644
--- a/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/config/SpecFileConfig.java
+++ b/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/config/SpecFileConfig.java
@@ -19,6 +19,7 @@ import java.util.ArrayList;
import java.util.List;
import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.core.runtime.IProduct;
import org.eclipse.core.runtime.Platform;
import org.eclipse.scout.commons.exception.ProcessingException;
import org.eclipse.scout.commons.logger.IScoutLogger;
@@ -36,7 +37,7 @@ public class SpecFileConfig {
private static final String MEDIAWIKI_DIR_NAME = "mediawiki";
private static final String LINKS_FILE_NAME = "links.properties";
- private String[] m_additionalSourcePlugins;
+ private String[] m_additionalSourcePlugins = new String[0];
private Bundle m_bundle;
/**
@@ -44,7 +45,11 @@ public class SpecFileConfig {
* when running this Eclipse instance.
*/
public SpecFileConfig() {
- m_bundle = Platform.getProduct().getDefiningBundle();
+ IProduct product = Platform.getProduct();
+ // TODO ASA Nullcheck is only needed for tests. --> Create a product for tests and remove nullcheck.
+ if (product != null) {
+ m_bundle = product.getDefiningBundle();
+ }
}
/**
diff --git a/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/config/entity/DefaultEntityConfig.java b/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/config/entity/DefaultEntityConfig.java
index eb87b558f8..ae3d8fd743 100644
--- a/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/config/entity/DefaultEntityConfig.java
+++ b/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/config/entity/DefaultEntityConfig.java
@@ -31,14 +31,13 @@ public class DefaultEntityConfig<T extends ITypeWithClassId> implements IDocEnti
*/
@Override
public List<IDocFilter<T>> getFilters() {
- // TODO ASA rename
- List<IDocFilter<T>> columnFilters = new ArrayList<IDocFilter<T>>();
- columnFilters.add(new DefaultDocFilter<T>());
- return columnFilters;
+ List<IDocFilter<T>> filters = new ArrayList<IDocFilter<T>>();
+ filters.add(new DefaultDocFilter<T>());
+ return filters;
}
@Override
- public List<IDocTextExtractor<T>> getTexts() {
+ public List<IDocTextExtractor<T>> getPropertyTextExtractors() {
ArrayList<IDocTextExtractor<T>> p = new ArrayList<IDocTextExtractor<T>>();
p.add(new TypeExtractor<T>());
p.add(new DescriptionExtractor<T>());
@@ -46,12 +45,12 @@ public class DefaultEntityConfig<T extends ITypeWithClassId> implements IDocEnti
}
@Override
- public IDocTextExtractor<T> getId() {
+ public IDocTextExtractor<T> getIdExtractor() {
return new TypeExtractor<T>();
}
@Override
- public IDocTextExtractor<T> getTitle() {
+ public IDocTextExtractor<T> getTitleExtractor() {
return new SimpleTypeTextExtractor<T>();
}
diff --git a/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/config/entity/DefaultFormConfig.java b/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/config/entity/DefaultFormConfig.java
index ce11bb41d3..16f16d30cd 100644
--- a/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/config/entity/DefaultFormConfig.java
+++ b/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/config/entity/DefaultFormConfig.java
@@ -25,7 +25,7 @@ import org.eclipse.scout.rt.spec.client.gen.extract.form.FormTitleExtractor;
public class DefaultFormConfig extends DefaultEntityConfig<IForm> {
@Override
- public List<IDocTextExtractor<IForm>> getTexts() {
+ public List<IDocTextExtractor<IForm>> getPropertyTextExtractors() {
List<IDocTextExtractor<IForm>> propertyTemplate = new ArrayList<IDocTextExtractor<IForm>>();
propertyTemplate.add(new FormTitleExtractor());
propertyTemplate.add(new DescriptionExtractor<IForm>());
@@ -34,7 +34,7 @@ public class DefaultFormConfig extends DefaultEntityConfig<IForm> {
}
@Override
- public IDocTextExtractor<IForm> getTitle() {
+ public IDocTextExtractor<IForm> getTitleExtractor() {
return new FormTitleExtractor();
}
diff --git a/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/config/entity/DefaultSmartFieldConfig.java b/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/config/entity/DefaultSmartFieldConfig.java
index 088dfc1fad..f9f9ff8de5 100644
--- a/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/config/entity/DefaultSmartFieldConfig.java
+++ b/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/config/entity/DefaultSmartFieldConfig.java
@@ -23,12 +23,12 @@ import org.eclipse.scout.rt.spec.client.gen.extract.form.field.TableFieldTypeWit
public class DefaultSmartFieldConfig extends DefaultEntityConfig<ISmartField<?>> {
@Override
- public List<IDocTextExtractor<ISmartField<?>>> getTexts() {
+ public List<IDocTextExtractor<ISmartField<?>>> getPropertyTextExtractors() {
return new ArrayList<IDocTextExtractor<ISmartField<?>>>();
}
@Override
- public IDocTextExtractor<ISmartField<?>> getTitle() {
+ public IDocTextExtractor<ISmartField<?>> getTitleExtractor() {
return new TableFieldTypeWithLabelExtractor<ISmartField<?>>();
}
}
diff --git a/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/config/entity/DefaultTableFieldConfig.java b/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/config/entity/DefaultTableFieldConfig.java
index e3050626a9..d86aaf4b86 100644
--- a/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/config/entity/DefaultTableFieldConfig.java
+++ b/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/config/entity/DefaultTableFieldConfig.java
@@ -24,12 +24,12 @@ import org.eclipse.scout.rt.spec.client.gen.extract.form.field.TableFieldTypeWit
public class DefaultTableFieldConfig extends DefaultEntityConfig<ITableField<? extends ITable>> {
@Override
- public List<IDocTextExtractor<ITableField<? extends ITable>>> getTexts() {
+ public List<IDocTextExtractor<ITableField<? extends ITable>>> getPropertyTextExtractors() {
return new ArrayList<IDocTextExtractor<ITableField<? extends ITable>>>();
}
@Override
- public IDocTextExtractor<ITableField<? extends ITable>> getTitle() {
+ public IDocTextExtractor<ITableField<? extends ITable>> getTitleExtractor() {
return new TableFieldTypeWithLabelExtractor<ITableField<? extends ITable>>();
}
diff --git a/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/config/entity/DefaultTablePageConfig.java b/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/config/entity/DefaultTablePageConfig.java
index 7b79cfa2ec..c5a71cdc17 100644
--- a/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/config/entity/DefaultTablePageConfig.java
+++ b/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/config/entity/DefaultTablePageConfig.java
@@ -21,7 +21,7 @@ import org.eclipse.scout.rt.spec.client.gen.extract.form.page.TablePageExtractor
public class DefaultTablePageConfig extends DefaultEntityConfig<IPageWithTable<? extends ITable>> {
@Override
- public IDocTextExtractor<IPageWithTable<? extends ITable>> getTitle() {
+ public IDocTextExtractor<IPageWithTable<? extends ITable>> getTitleExtractor() {
return new TablePageExtractor<IPageWithTable<? extends ITable>>();
}
diff --git a/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/config/entity/DefaultTypesConfig.java b/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/config/entity/DefaultTypesConfig.java
index 164d84f260..9f5c46036d 100644
--- a/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/config/entity/DefaultTypesConfig.java
+++ b/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/config/entity/DefaultTypesConfig.java
@@ -16,29 +16,31 @@ import java.util.List;
import org.eclipse.scout.rt.shared.TEXTS;
import org.eclipse.scout.rt.spec.client.gen.extract.IDocTextExtractor;
+import org.eclipse.scout.rt.spec.client.gen.extract.SpecialDescriptionExtractor;
import org.eclipse.scout.rt.spec.client.gen.filter.IDocFilter;
/**
- *
+ * Default configuration for {@link Class}
*/
public class DefaultTypesConfig implements IDocEntityListConfig<Class> {
@Override
public List<IDocTextExtractor<Class>> getTextExtractors() {
ArrayList<IDocTextExtractor<Class>> extractors = new ArrayList<IDocTextExtractor<Class>>();
- // TODO ASA create type extractors
+
+ extractors.add(new SpecialDescriptionExtractor(TEXTS.get("org.eclipse.scout.rt.spec.type"), "_name"));
+ extractors.add(new SpecialDescriptionExtractor(TEXTS.get("org.eclipse.scout.rt.spec.doc"), "_description"));
return extractors;
}
@Override
public List<IDocFilter<Class>> getFilters() {
- // TODO ASA filter for types?
return Collections.emptyList();
}
@Override
public String getTitle() {
- return TEXTS.get("org.eclipse.scout.rt.spec.types");
+ return null;
}
}
diff --git a/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/config/entity/IDocEntityConfig.java b/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/config/entity/IDocEntityConfig.java
index 44c567a99d..5593371cf9 100644
--- a/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/config/entity/IDocEntityConfig.java
+++ b/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/config/entity/IDocEntityConfig.java
@@ -28,7 +28,7 @@ public interface IDocEntityConfig<T> {
*
* @return a list of properties that should be generated.
*/
- List<IDocTextExtractor<T>> getTexts();
+ List<IDocTextExtractor<T>> getPropertyTextExtractors();
/**
* Configuration for filtering <code>T</code>. Only the objects accepted by all filters are generated.
@@ -42,13 +42,13 @@ public interface IDocEntityConfig<T> {
*
* @return {@link IDocTextExtractor}
*/
- IDocTextExtractor<T> getId();
+ IDocTextExtractor<T> getIdExtractor();
/**
* Configuration describing an extractor for the title of the entity
*
* @return {@link IDocTextExtractor}
*/
- IDocTextExtractor<T> getTitle();
+ IDocTextExtractor<T> getTitleExtractor();
}
diff --git a/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/gen/DocGenUtility.java b/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/gen/DocGenUtility.java
index 3e53a4e505..52b6fd6966 100644
--- a/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/gen/DocGenUtility.java
+++ b/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/gen/DocGenUtility.java
@@ -84,7 +84,7 @@ public final class DocGenUtility {
* @return {@link IDocTable}
*/
public static <T> IDocTable createDocTable(T entity, IDocEntityConfig<T> config) {
- List<IDocTextExtractor<T>> textExtractors = config.getTexts();
+ List<IDocTextExtractor<T>> textExtractors = config.getPropertyTextExtractors();
List<String[]> rows = new ArrayList<String[]>();
String[] texts = DocGenUtility.getTexts(entity, textExtractors);
if (texts != null && texts.length > 0) {
diff --git a/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/gen/FormSpecGenerator.java b/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/gen/FormSpecGenerator.java
index 6567b641b7..a1cdadbd34 100644
--- a/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/gen/FormSpecGenerator.java
+++ b/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/gen/FormSpecGenerator.java
@@ -44,8 +44,8 @@ public class FormSpecGenerator {
IDocSection[] subSections = getSubSections(form, visitors);
IDocTable formSpec = DocGenUtility.createDocTable(form, formConfig);
- String id = formConfig.getId().getText(form);
- String title = formConfig.getTitle().getText(form);
+ String id = formConfig.getIdExtractor().getText(form);
+ String title = formConfig.getTitleExtractor().getText(form);
return new SectionWithTable(id, title, formSpec, subSections);
}
diff --git a/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/gen/PageSpecGenerator.java b/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/gen/PageSpecGenerator.java
index 3bd5d5d228..2cf4846042 100644
--- a/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/gen/PageSpecGenerator.java
+++ b/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/gen/PageSpecGenerator.java
@@ -31,8 +31,8 @@ public class PageSpecGenerator {
public IDocSection getDocSection(IPageWithTable<? extends ITable> page) {
IDocEntityConfig<IPageWithTable<? extends ITable>> tablePageConfig = m_config.getTablePageConfig();
- String id = tablePageConfig.getId().getText(page);
- String title = tablePageConfig.getTitle().getText(page);
+ String id = tablePageConfig.getIdExtractor().getText(page);
+ String title = tablePageConfig.getTitleExtractor().getText(page);
IColumn<?>[] columns = page.getTable().getColumns();
IMenu[] menus = page.getTable().getMenus();
diff --git a/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/gen/SmartFieldVisitor.java b/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/gen/SmartFieldVisitor.java
index 4d608dcc24..fe18d2e5d9 100644
--- a/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/gen/SmartFieldVisitor.java
+++ b/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/gen/SmartFieldVisitor.java
@@ -46,8 +46,8 @@ public class SmartFieldVisitor implements IDocFormFieldVisitor {
*
*/
private IDocSection createDocSection(ISmartField<?> field) {
- String id = m_config.getSmartFieldConfig().getId().getText(field);
- String title = m_config.getSmartFieldConfig().getTitle().getText(field);
+ String id = m_config.getSmartFieldConfig().getIdExtractor().getText(field);
+ String title = m_config.getSmartFieldConfig().getTitleExtractor().getText(field);
IDocTable docTable = DocGenUtility.createDocTable(field, m_config.getSmartFieldConfig());
IDocSection menuSection = DocGenUtility.createDocSection(field.getMenus(), m_config.getMenuConfig());
if (menuSection != null) {
diff --git a/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/gen/TableFieldVisitor.java b/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/gen/TableFieldVisitor.java
index 2945ca4f56..13cb98b3b7 100644
--- a/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/gen/TableFieldVisitor.java
+++ b/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/gen/TableFieldVisitor.java
@@ -42,8 +42,8 @@ public class TableFieldVisitor implements IDocFormFieldVisitor {
}
private IDocSection createDocSection(ITableField<?> field) {
- String id = m_config.getTableFieldConfig().getId().getText(field);
- String title = m_config.getTableFieldConfig().getTitle().getText(field);
+ String id = m_config.getTableFieldConfig().getIdExtractor().getText(field);
+ String title = m_config.getTableFieldConfig().getTitleExtractor().getText(field);
IDocSection menuSection = DocGenUtility.createDocSection(field.getTable().getMenus(), m_config.getMenuConfig());
IDocSection columnsSection = DocGenUtility.createDocSection(field.getTable().getColumns(), m_config.getColumnConfig());
return new SectionWithTable(id, title, menuSection, columnsSection);
diff --git a/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/gen/TypeSpecGenerator.java b/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/gen/TypeSpecGenerator.java
index a5ceb31e11..520a7a485b 100644
--- a/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/gen/TypeSpecGenerator.java
+++ b/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/gen/TypeSpecGenerator.java
@@ -10,24 +10,25 @@
******************************************************************************/
package org.eclipse.scout.rt.spec.client.gen;
-import org.eclipse.scout.rt.shared.TEXTS;
import org.eclipse.scout.rt.spec.client.config.IDocConfig;
import org.eclipse.scout.rt.spec.client.out.IDocSection;
import org.eclipse.scout.rt.spec.client.out.SectionWithTable;
+import org.eclipse.scout.rt.spec.client.out.mediawiki.MediawikiUtility;
-/**
- * Creates Specification data for a page
- */
public class TypeSpecGenerator {
private final IDocConfig m_config;
+ private String m_id;
+ private String m_title;
- public TypeSpecGenerator(IDocConfig config) {
+ public TypeSpecGenerator(IDocConfig config, String id, String title) {
m_config = config;
+ m_id = id;
+ m_title = title;
}
- public IDocSection getDocSection(Class[] fieldTypes) {
-
- IDocSection typeSection = DocGenUtility.createDocSection(fieldTypes, m_config.getTypesConfig());
- return new SectionWithTable("org.eclipse.scout.rt.spec.types", TEXTS.get("org.eclipse.scout.rt.spec.types"), typeSection);
+ public IDocSection getDocSection(Class[] types) {
+ String titleWithAnchor = MediawikiUtility.transformToWiki(m_title + "{{" + m_id + "}}");
+ IDocSection typeSection = DocGenUtility.createDocSection(types, m_config.getTypesConfig());
+ return new SectionWithTable(m_id, titleWithAnchor, typeSection);
}
}
diff --git a/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/gen/extract/SpecialDescriptionExtractor.java b/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/gen/extract/SpecialDescriptionExtractor.java
new file mode 100644
index 0000000000..d12c1cdfc8
--- /dev/null
+++ b/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/gen/extract/SpecialDescriptionExtractor.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (c) 2010 BSI Business Systems Integration AG.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * BSI Business Systems Integration AG - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.scout.rt.spec.client.gen.extract;
+
+import org.eclipse.scout.commons.ConfigurationUtility;
+import org.eclipse.scout.rt.shared.TEXTS;
+
+/**
+ * An {@link IDocTextExtractor} with the fully qualified class name as text.
+ */
+public class SpecialDescriptionExtractor extends AbstractNamedTextExtractor<Class> implements IDocTextExtractor<Class> {
+
+ private String m_keySuffix;
+
+ /**
+ * @param string
+ */
+ public SpecialDescriptionExtractor(String name, String keySuffix) {
+ super(name);
+ m_keySuffix = keySuffix;
+ }
+
+ /**
+ * @return fully qualified class name.
+ */
+ @Override
+ public String getText(Class clazz) {
+ String doc = TEXTS.get(ConfigurationUtility.getAnnotatedClassIdWithFallback(clazz) + m_keySuffix);
+ // TODO ASA fix this hack: name.contains("{undefined text")
+ if (doc.startsWith("{undefined text")) {
+ return null;
+ }
+ return doc;
+ }
+
+}
diff --git a/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/gen/filter/DefaultDocFilter.java b/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/gen/filter/DefaultDocFilter.java
index 382525cf8c..cae3d54e8c 100644
--- a/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/gen/filter/DefaultDocFilter.java
+++ b/org.eclipse.scout.rt.spec.client/src/org/eclipse/scout/rt/spec/client/gen/filter/DefaultDocFilter.java
@@ -17,9 +17,13 @@ import org.eclipse.scout.rt.client.ui.form.fields.groupbox.AbstractGroupBox;
import org.eclipse.scout.rt.spec.client.gen.extract.DescriptionExtractor;
/**
- * A default doc filter that implements the following rules which can optionally be overridden with the annotation
- * {@link Doc#filter()}:<br>
- * TODO ASA docu: default filtering rules
+ * A default doc filter that implements the following rules:
+ * <p>
+ * <li>If a filter annotation ({@link Doc#filter()}) is present for the element filtering is applied according the
+ * annotation.
+ * <li>For GroupBoxes with no filter annotation and neither label nor description defined: {@link Filtering#TRANSPARENT}
+ * is applied.
+ * <li>For all other elements: {@link Filtering#ACCEPT} is applied.
*/
public class DefaultDocFilter<T> implements IDocFilter<T> {

Back to the top