This is an automated email from the git hooks/post-receive script. New commit to branch feature/editor in repository eugene. See https://gitlab.nuiton.org/nuiton/eugene.git commit 8ef2db22bc3cd190ed2cb7982b035d4613e80f04 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Oct 9 14:37:44 2016 +0200 rebase from develop --- eugene-editor-maven-plugin/pom.xml | 72 ++--- .../src/main/config/EugeneEditor.ini | 9 + .../src/main/config/EugeneEditor.toml | 11 - .../EugeneEditorApplicationContext.java | 4 +- .../editor/application/ModelExtensionHelper.java | 69 +---- .../editor/application/ui/ContentUIManager.java | 5 +- .../ui/content/AttributeContentUIHandler.java | 2 +- .../ui/content/ClassContentUIHandler.java | 2 +- .../application/ui/content/ContentUIHandler.java | 198 ++++++++++---- .../ui/content/EnumerationContentUIHandler.java | 2 +- .../ui/content/InterfaceContentUIHandler.java | 2 +- .../ui/content/ModelContentUIHandler.java | 2 +- .../ui/content/OperationContentUIHandler.java | 2 +- .../ui/content/PackageContentUIHandler.java | 2 +- .../ui/tree/EugeneEditorTreeSelectionModel.java | 7 +- .../editor/application/ui/tree/node/ClassNode.java | 2 +- .../application/ui/tree/node/NodeSupport.java | 5 +- .../eugene/editor/plugin/EugeneEditorMojo.java | 40 ++- .../test/resources/observe-entities/observe.ini | 295 +++++++++++++++++++++ .../observe-entities/observe.objectmodel-ext | 248 ----------------- pom.xml | 18 +- 21 files changed, 533 insertions(+), 464 deletions(-) diff --git a/eugene-editor-maven-plugin/pom.xml b/eugene-editor-maven-plugin/pom.xml index 8c2a888..fa392d1 100644 --- a/eugene-editor-maven-plugin/pom.xml +++ b/eugene-editor-maven-plugin/pom.xml @@ -124,10 +124,10 @@ <artifactId>maven-plugin-annotations</artifactId> </dependency> - <dependency> - <groupId>org.codehaus.plexus</groupId> - <artifactId>plexus-utils</artifactId> - </dependency> + <!--<dependency>--> + <!--<groupId>org.codehaus.plexus</groupId>--> + <!--<artifactId>plexus-utils</artifactId>--> + <!--</dependency>--> <dependency> <groupId>org.nuiton</groupId> @@ -142,6 +142,14 @@ <groupId>org.nuiton</groupId> <artifactId>nuiton-config</artifactId> </dependency> + <dependency> + <groupId>org.nuiton.i18n</groupId> + <artifactId>nuiton-i18n</artifactId> + </dependency> + <dependency> + <groupId>org.nuiton</groupId> + <artifactId>nuiton-validator</artifactId> + </dependency> <!-- TODO pk devoir rajouter ça ? --> <dependency> @@ -164,13 +172,13 @@ </dependency> <dependency> - <groupId>commons-collections</groupId> - <artifactId>commons-collections</artifactId> + <groupId>org.apache.commons</groupId> + <artifactId>commons-collections4</artifactId> </dependency> <dependency> - <groupId>org.apache.commons</groupId> - <artifactId>commons-collections4</artifactId> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> </dependency> <dependency> @@ -192,18 +200,18 @@ <groupId>org.nuiton.jaxx</groupId> <artifactId>jaxx-widgets</artifactId> </dependency> - <dependency> - <groupId>org.nuiton.jaxx</groupId> - <artifactId>jaxx-widgets-select</artifactId> - </dependency> - <dependency> - <groupId>org.nuiton.jaxx</groupId> - <artifactId>jaxx-widgets-about</artifactId> - </dependency> - <dependency> - <groupId>org.nuiton.jaxx</groupId> - <artifactId>jaxx-config</artifactId> - </dependency> + <!--<dependency>--> + <!--<groupId>org.nuiton.jaxx</groupId>--> + <!--<artifactId>jaxx-widgets-select</artifactId>--> + <!--</dependency>--> + <!--<dependency>--> + <!--<groupId>org.nuiton.jaxx</groupId>--> + <!--<artifactId>jaxx-widgets-about</artifactId>--> + <!--</dependency>--> + <!--<dependency>--> + <!--<groupId>org.nuiton.jaxx</groupId>--> + <!--<artifactId>jaxx-config</artifactId>--> + <!--</dependency>--> <dependency> <groupId>org.nuiton.jaxx</groupId> <artifactId>jaxx-application-api</artifactId> @@ -214,22 +222,22 @@ <groupId>org.swinglabs.swingx</groupId> <artifactId>swingx-core</artifactId> </dependency> - <dependency> - <groupId>org.swinglabs.swingx</groupId> - <artifactId>swingx-painters</artifactId> - </dependency> - <dependency> - <groupId>org.swinglabs.swingx</groupId> - <artifactId>swingx-common</artifactId> - </dependency> + <!--<dependency>--> + <!--<groupId>org.swinglabs.swingx</groupId>--> + <!--<artifactId>swingx-painters</artifactId>--> + <!--</dependency>--> + <!--<dependency>--> + <!--<groupId>org.swinglabs.swingx</groupId>--> + <!--<artifactId>swingx-common</artifactId>--> + <!--</dependency>--> <dependency> <groupId>org.swinglabs.swingx</groupId> <artifactId>swingx-autocomplete</artifactId> </dependency> - <dependency> - <groupId>org.swinglabs</groupId> - <artifactId>jxlayer</artifactId> - </dependency> + <!--<dependency>--> + <!--<groupId>org.swinglabs</groupId>--> + <!--<artifactId>jxlayer</artifactId>--> + <!--</dependency>--> <dependency> <groupId>log4j</groupId> diff --git a/eugene-editor-maven-plugin/src/main/config/EugeneEditor.ini b/eugene-editor-maven-plugin/src/main/config/EugeneEditor.ini new file mode 100644 index 0000000..a11c45a --- /dev/null +++ b/eugene-editor-maven-plugin/src/main/config/EugeneEditor.ini @@ -0,0 +1,9 @@ +description = eugene.editor.config +[option workingDirectory] +key = eugene.editor.working.directory +type = file +description = eugene.editor.config.workingDirectory.description +[option modelExtensionFile] +key = eugene.editor.modelExtensionFile +type = file +description = eugene.editor.config.modelExtensionFile.description \ No newline at end of file diff --git a/eugene-editor-maven-plugin/src/main/config/EugeneEditor.toml b/eugene-editor-maven-plugin/src/main/config/EugeneEditor.toml deleted file mode 100644 index 229a083..0000000 --- a/eugene-editor-maven-plugin/src/main/config/EugeneEditor.toml +++ /dev/null @@ -1,11 +0,0 @@ -description = "eugene.editor.config" -[[options]] -name = "workingDirectory" -key = "eugene.editor.working.directory" -type = "file" -description = "eugene.editor.config.workingDirectory.description" -[[options]] -name = "modelExtensionFile" -key = "eugene.editor.modelExtensionFile" -type = "file" -description = "eugene.editor.config.modelExtensionFile.description" \ No newline at end of file diff --git a/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/EugeneEditorApplicationContext.java b/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/EugeneEditorApplicationContext.java index 26d8bc3..fa7d018 100644 --- a/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/EugeneEditorApplicationContext.java +++ b/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/EugeneEditorApplicationContext.java @@ -1,7 +1,6 @@ package org.nuiton.eugene.editor.application; import org.nuiton.eugene.editor.application.config.EugeneEditorConfig; -import org.nuiton.eugene.models.extension.stereotype.provider.AggregateStereotypeMetadatasProvider; import org.nuiton.eugene.models.extension.tagvalue.provider.AggregateTagValueMetadatasProvider; import org.nuiton.eugene.models.object.ObjectModel; import org.nuiton.i18n.I18n; @@ -28,14 +27,13 @@ public class EugeneEditorApplicationContext { public EugeneEditorApplicationContext(EugeneEditorConfig config, ClassLoader classLoader, AggregateTagValueMetadatasProvider tagValueMetadatasProvider, - AggregateStereotypeMetadatasProvider stereotypeMetadatasProvider, ObjectModel objectModel) { I18n.init(new DefaultI18nInitializer("EugeneEditor-i18n"), Locale.FRANCE); this.config = config; this.classLoader = classLoader; - this.modelExtensionHelper = new ModelExtensionHelper(tagValueMetadatasProvider, stereotypeMetadatasProvider); + this.modelExtensionHelper = new ModelExtensionHelper(tagValueMetadatasProvider); this.modelHelper = new ModelHelper(objectModel); this.objectModel = objectModel; this.lock = new Object(); diff --git a/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/ModelExtensionHelper.java b/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/ModelExtensionHelper.java index ffab245..03fd551 100644 --- a/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/ModelExtensionHelper.java +++ b/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/ModelExtensionHelper.java @@ -1,8 +1,5 @@ package org.nuiton.eugene.editor.application; -import org.nuiton.eugene.models.extension.stereotype.StereotypeMetadata; -import org.nuiton.eugene.models.extension.stereotype.provider.AggregateStereotypeMetadatasProvider; -import org.nuiton.eugene.models.extension.stereotype.provider.StereotypeMetadatasProvider; import org.nuiton.eugene.models.extension.tagvalue.TagValueMetadata; import org.nuiton.eugene.models.extension.tagvalue.provider.AggregateTagValueMetadatasProvider; import org.nuiton.eugene.models.extension.tagvalue.provider.TagValueMetadatasProvider; @@ -27,7 +24,6 @@ import java.util.stream.Collectors; public class ModelExtensionHelper { private final AggregateTagValueMetadatasProvider tagValueMetadatasProvider; - private final AggregateStereotypeMetadatasProvider stereotypeMetadatasProvider; private final Map<String, TagValueMetadata> modelTagValues; private final Map<String, TagValueMetadata> packageTagValues; @@ -37,25 +33,9 @@ public class ModelExtensionHelper { private final Map<String, TagValueMetadata> attributeTagValues; private final Map<String, TagValueMetadata> operationTagValues; - private final Map<String, StereotypeMetadata> modelStereotypes; - private final Map<String, StereotypeMetadata> packageStereotypes; - private final Map<String, StereotypeMetadata> classStereotypes; - private final Map<String, StereotypeMetadata> interfaceStereotypes; - private final Map<String, StereotypeMetadata> enumerationStereotypes; - private final Map<String, StereotypeMetadata> attributeStereotypes; - private final Map<String, StereotypeMetadata> operationStereotypes; - - public ModelExtensionHelper(AggregateTagValueMetadatasProvider tagValueMetadatasProvider, - AggregateStereotypeMetadatasProvider stereotypeMetadatasProvider) { + public ModelExtensionHelper(AggregateTagValueMetadatasProvider tagValueMetadatasProvider + ) { this.tagValueMetadatasProvider = tagValueMetadatasProvider; - this.stereotypeMetadatasProvider = stereotypeMetadatasProvider; - this.modelStereotypes = filterStereotypes(stereotypeMetadatasProvider, ObjectModel.class); - this.packageStereotypes = filterStereotypes(stereotypeMetadatasProvider, ObjectModelPackage.class); - this.classStereotypes = filterStereotypes(stereotypeMetadatasProvider, ObjectModelClassifier.class); - this.interfaceStereotypes = filterStereotypes(stereotypeMetadatasProvider, ObjectModelInterface.class); - this.enumerationStereotypes = filterStereotypes(stereotypeMetadatasProvider, ObjectModelEnumeration.class); - this.attributeStereotypes = filterStereotypes(stereotypeMetadatasProvider, ObjectModelAttribute.class); - this.operationStereotypes = filterStereotypes(stereotypeMetadatasProvider, ObjectModelOperation.class); this.modelTagValues = filterTagValues(tagValueMetadatasProvider, ObjectModel.class); this.packageTagValues = filterTagValues(tagValueMetadatasProvider, ObjectModelPackage.class); this.classTagValues = filterTagValues(tagValueMetadatasProvider, ObjectModelClassifier.class); @@ -70,38 +50,6 @@ public class ModelExtensionHelper { return tagValueMetadatasProvider; } - public AggregateStereotypeMetadatasProvider getStereotypeMetadatasProvider() { - return stereotypeMetadatasProvider; - } - - public Map<String, StereotypeMetadata> getModelStereotypes() { - return modelStereotypes; - } - - public Map<String, StereotypeMetadata> getPackageStereotypes() { - return packageStereotypes; - } - - public Map<String, StereotypeMetadata> getClassStereotypes() { - return classStereotypes; - } - - public Map<String, StereotypeMetadata> getInterfaceStereotypes() { - return interfaceStereotypes; - } - - public Map<String, StereotypeMetadata> getEnumerationStereotypes() { - return enumerationStereotypes; - } - - public Map<String, StereotypeMetadata> getAttributeStereotypes() { - return attributeStereotypes; - } - - public Map<String, StereotypeMetadata> getOperationStereotypes() { - return operationStereotypes; - } - public Map<String, TagValueMetadata> getModelTagValues() { return modelTagValues; } @@ -130,19 +78,6 @@ public class ModelExtensionHelper { return operationTagValues; } - protected <O> Map<String, StereotypeMetadata> filterStereotypes(AggregateStereotypeMetadatasProvider stereotypeMetadatasProvider, Class<O> type) { - - Map<String, StereotypeMetadata> allDefinitions = new TreeMap<>(); - for (StereotypeMetadatasProvider definitionProvider : stereotypeMetadatasProvider) { - - Set<StereotypeMetadata> definitions = definitionProvider.getStereotypes().stream() - .filter(d -> d.getTargets().contains(type)) - .collect(Collectors.toSet()); - definitions.forEach(e -> allDefinitions.put(e.getName(), e)); - } - return allDefinitions; - } - protected <O> Map<String, TagValueMetadata> filterTagValues(AggregateTagValueMetadatasProvider tagValueMetadatasProvider, Class<O> type) { Map<String, TagValueMetadata> allDefinitions = new TreeMap<>(); diff --git a/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/ui/ContentUIManager.java b/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/ui/ContentUIManager.java index 69c0a08..35ab435 100644 --- a/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/ui/ContentUIManager.java +++ b/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/ui/ContentUIManager.java @@ -16,8 +16,7 @@ import org.nuiton.eugene.editor.application.ui.tree.node.ModelNode; import org.nuiton.eugene.editor.application.ui.tree.node.NodeSupport; import org.nuiton.eugene.editor.application.ui.tree.node.OperationNode; import org.nuiton.eugene.editor.application.ui.tree.node.PackageNode; -import org.nuiton.eugene.models.extension.stereotype.WithStereotypes; -import org.nuiton.eugene.models.extension.tagvalue.WithTagValues; +import org.nuiton.eugene.models.extension.tagvalue.WithTagValuesOrStereotypes; import java.util.Collections; import java.util.Map; @@ -50,7 +49,7 @@ public class ContentUIManager { } - public <M extends WithStereotypes & WithTagValues, N extends NodeSupport<M>> ContentUI<N> getContent(N node) { + public <M extends WithTagValuesOrStereotypes, N extends NodeSupport<M>> ContentUI<N> getContent(N node) { Objects.requireNonNull(node); return contents.get(node.getClass().getName()); } diff --git a/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/ui/content/AttributeContentUIHandler.java b/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/ui/content/AttributeContentUIHandler.java index 646e375..27f796a 100644 --- a/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/ui/content/AttributeContentUIHandler.java +++ b/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/ui/content/AttributeContentUIHandler.java @@ -27,7 +27,7 @@ public class AttributeContentUIHandler extends ContentUIHandler<ObjectModelAttri public void afterInit(AttributeContentUI ui) { ModelExtensionHelper helper = getApplicationContext(ui).getModelExtensionHelper(); - afterInit(ui, helper.getAttributeTagValues(), helper.getAttributeStereotypes()); + afterInit(ui, helper.getAttributeTagValues()); } diff --git a/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/ui/content/ClassContentUIHandler.java b/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/ui/content/ClassContentUIHandler.java index bfa4399..3c163d3 100644 --- a/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/ui/content/ClassContentUIHandler.java +++ b/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/ui/content/ClassContentUIHandler.java @@ -33,7 +33,7 @@ public class ClassContentUIHandler extends ContentUIHandler<ObjectModelClassImpl public void afterInit(ClassContentUI ui) { ModelExtensionHelper helper = getApplicationContext(ui).getModelExtensionHelper(); - afterInit(ui, helper.getClassTagValues(), helper.getClassStereotypes()); + afterInit(ui, helper.getClassTagValues()); ui.getInterfaces().getSelectionModel().addListSelectionListener(e -> ui.getRemoveInterfacesFromClass().setEnabled(!((ListSelectionModel) e.getSource()).isSelectionEmpty())); diff --git a/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/ui/content/ContentUIHandler.java b/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/ui/content/ContentUIHandler.java index d77b240..50a9a4e 100644 --- a/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/ui/content/ContentUIHandler.java +++ b/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/ui/content/ContentUIHandler.java @@ -2,77 +2,118 @@ package org.nuiton.eugene.editor.application.ui.content; import jaxx.runtime.SwingUtil; import jaxx.runtime.spi.UIHandler; +import jaxx.runtime.swing.JAXXButtonGroup; import org.nuiton.eugene.editor.application.EugeneEditorApplicationContext; import org.nuiton.eugene.editor.application.ui.tree.node.NodeSupport; -import org.nuiton.eugene.models.extension.stereotype.StereotypeMetadata; -import org.nuiton.eugene.models.extension.stereotype.WithStereotypes; import org.nuiton.eugene.models.extension.tagvalue.TagValueMetadata; -import org.nuiton.eugene.models.extension.tagvalue.WithTagValues; +import org.nuiton.eugene.models.extension.tagvalue.WithTagValuesOrStereotypes; -import javax.swing.JCheckBox; import javax.swing.JLabel; import javax.swing.JList; import javax.swing.JPanel; +import javax.swing.JRadioButton; import javax.swing.JTextField; import java.awt.GridLayout; import java.util.Collection; import java.util.List; import java.util.Map; -import java.util.Set; /** * Created on 16/09/16. * * @author Tony Chemit - chemit@codelutin.com */ -public abstract class ContentUIHandler<X extends WithStereotypes & WithTagValues, M extends NodeSupport<X>, U extends ContentUI<M>> implements UIHandler<U> { +public abstract class ContentUIHandler<X extends WithTagValuesOrStereotypes, M extends NodeSupport<X>, U extends ContentUI<M>> implements UIHandler<U> { protected void open(U ui, M model) { - Set<String> stereotypes = model.getStereotypes(); +// Set<String> stereotypes = model.getStereotypes(); Map<String, String> tagValues = model.getTagValues(); ui.setModel(model); - JPanel stereotypesPanel = ui.getStereotypes(); - Map<String, StereotypeMetadata> stereotyps = (Map) stereotypesPanel.getClientProperty("stereotypes"); +// JPanel stereotypesPanel = ui.getStereotypes(); +// +// Map<String, StereotypeMetadata> stereotyps = (Map) stereotypesPanel.getClientProperty("stereotypes"); +// +// if (stereotyps != null) { +// +// for (String tagValue : stereotyps.keySet()) { +// +// JCheckBox objectById = (JCheckBox) ui.getObjectById("stereotype-" + tagValue); +// if (objectById != null) { +// objectById.setSelected(false); +// } +// +// } +// } +// +// for (String stereotype : stereotypes) { +// +// JCheckBox objectById = (JCheckBox) ui.getObjectById("stereotype-" + stereotype); +// if (objectById != null) { +// objectById.setSelected(true); +// } +// } - if (stereotyps != null) { - - for (String tagValue : stereotyps.keySet()) { - - JCheckBox objectById = (JCheckBox) ui.getObjectById("stereotype-" + tagValue); - if (objectById != null) { - objectById.setSelected(false); - } + JPanel tagValuesPanel = ui.getTagValues(); + Map<String, TagValueMetadata> tags = (Map) tagValuesPanel.getClientProperty("tagValues"); - } - } +// if (tags != null) { - for (String stereotype : stereotypes) { + for (String tagValue : tags.keySet()) { - JCheckBox objectById = (JCheckBox) ui.getObjectById("stereotype-" + stereotype); + JTextField objectById = (JTextField) ui.getObjectById("tagValue-" + tagValue); if (objectById != null) { - objectById.setSelected(true); + objectById.setText(null); } - } - - JPanel tagValuesPanel = ui.getTagValues(); - Map<String, TagValueMetadata> tags = (Map) tagValuesPanel.getClientProperty("tagValues"); + JAXXButtonGroup buttonGroup = (JAXXButtonGroup) ui.getObjectById("tagValue-" + tagValue + "-rb"); + if (buttonGroup != null) { + buttonGroup.setSelectedValue(null); + } +// JRadioButton buttonTrue = (JRadioButton) ui.getObjectById("tagValue-" + tagValue + "-true"); +// if (buttonTrue != null) { +// buttonTrue.setSelected(false); +// } +// JRadioButton buttonFalse = (JRadioButton) ui.getObjectById("tagValue-" + tagValue + "-false"); +// if (buttonFalse != null) { +// buttonFalse.setSelected(false); +// } +// JRadioButton buttonUndefined = (JRadioButton) ui.getObjectById("tagValue-" + tagValue + "-undefined"); +// if (buttonUndefined != null) { +// buttonUndefined.setSelected(false); +// } - if (tags != null) { + } +// } - for (String tagValue : tags.keySet()) { + // first pass for boolean tag values (= stereotype) + for (Map.Entry<String, String> entry : tagValues.entrySet()) { + String tagValueKey = entry.getKey(); + TagValueMetadata tagValueMetadata = tags.get(tagValueKey); + if (tagValueMetadata == null || !boolean.class.equals(tagValueMetadata.getType())) { + continue; + } - JTextField objectById = (JTextField) ui.getObjectById("tagValue-" + tagValue); - if (objectById != null) { - objectById.setText(null); - } + JAXXButtonGroup buttonGroup = (JAXXButtonGroup) ui.getObjectById("tagValue-" + tagValueKey + "-rb"); + String value = entry.getValue(); + buttonGroup.setSelectedValue(value == null ? "undefined" : value); +// +// JRadioButton buttonTrue = (JRadioButton) ui.getObjectById("tagValue-" + tagValueKey + "-true"); +// buttonTrue.setSelected(false); +// JRadioButton buttonFalse = (JRadioButton) ui.getObjectById("tagValue-" + tagValueKey + "-false"); +// buttonFalse.setSelected(false); +// JRadioButton buttonUndefined = (JRadioButton) ui.getObjectById("tagValue-" + tagValueKey + "-undefined"); +// buttonUndefined.setSelected(false); - } } for (Map.Entry<String, String> entry : tagValues.entrySet()) { - JTextField objectById = (JTextField) ui.getObjectById("tagValue-" + entry.getKey()); + String tagValueKey = entry.getKey(); + TagValueMetadata tagValueMetadata = tags.get(tagValueKey); + if (tagValueMetadata == null || boolean.class.equals(tagValueMetadata.getType())) { + continue; + } + JTextField objectById = (JTextField) ui.getObjectById("tagValue-" + tagValueKey); if (objectById != null) { objectById.setText(entry.getValue()); } @@ -83,46 +124,93 @@ public abstract class ContentUIHandler<X extends WithStereotypes & WithTagValues } - protected void afterInit(U ui, - Map<String, TagValueMetadata> availableTagValues, - Map<String, StereotypeMetadata> availableStereotypes) { + protected void afterInit(U ui, Map<String, TagValueMetadata> availableTagValues) { Map<String, Object> $objectMap = ui.get$objectMap(); - if (!availableStereotypes.isEmpty()) { - - JPanel stereotypes = ui.getStereotypes(); - stereotypes.putClientProperty("stereotypes", availableStereotypes); - stereotypes.setLayout(new GridLayout(1, 0)); - stereotypes.removeAll(); - for (Map.Entry<String, StereotypeMetadata> entry : availableStereotypes.entrySet()) { - String stereotype = entry.getKey(); - JCheckBox b = new JCheckBox(); - b.setText(stereotype); - b.setToolTipText(entry.getValue().getDescription()); - stereotypes.add(b); - $objectMap.put("stereotype-" + stereotype, b); - } - } + + JPanel stereotypes = ui.getStereotypes(); + + JPanel tagValues = ui.getTagValues(); + tagValues.putClientProperty("tagValues", availableTagValues); if (!availableTagValues.isEmpty()) { - JPanel tagValues = ui.getTagValues(); - tagValues.putClientProperty("tagValues", availableTagValues); tagValues.setLayout(new GridLayout(0, 2)); tagValues.removeAll(); + boolean withStereotypes = false; + for (Map.Entry<String, TagValueMetadata> entry : availableTagValues.entrySet()) { + + TagValueMetadata tagValueMetadata = entry.getValue(); + if (boolean.class.equals(tagValueMetadata.getType())) { + withStereotypes = true; + break; + } + + } + + if (withStereotypes) { + stereotypes.setLayout(new GridLayout(0, 2)); + stereotypes.removeAll(); + } + for (Map.Entry<String, TagValueMetadata> entry : availableTagValues.entrySet()) { + TagValueMetadata tagValueMetadata = entry.getValue(); + if (!boolean.class.equals(tagValueMetadata.getType())) { + continue; + } + + // boolean tag value + JRadioButton buttonTrue = new JRadioButton("Oui"); + buttonTrue.putClientProperty("$value", "true"); + JRadioButton buttonFalse = new JRadioButton("Non"); + buttonFalse.putClientProperty("$value", "false"); + JRadioButton buttonUndefined = new JRadioButton("Non défini"); + buttonUndefined.putClientProperty("$value", "undefined"); + + JAXXButtonGroup buttonGroup = new JAXXButtonGroup(); + buttonGroup.add(buttonTrue); + buttonGroup.add(buttonFalse); + buttonGroup.add(buttonUndefined); + + String tagValue = entry.getKey(); + JLabel label = new JLabel(tagValue); + $objectMap.put("tagValue-" + tagValue + "-true", buttonTrue); + $objectMap.put("tagValue-" + tagValue + "-false", buttonFalse); + $objectMap.put("tagValue-" + tagValue + "-undefined", buttonUndefined); + $objectMap.put("tagValue-" + tagValue + "-rb", buttonGroup); + + JPanel panel = new JPanel(new GridLayout()); + panel.add(buttonTrue); + panel.add(buttonFalse); + panel.add(buttonUndefined); + + label.setToolTipText(tagValueMetadata.getDescription()); + label.setLabelFor(panel); + stereotypes.add(label); + stereotypes.add(panel); + + } + + for (Map.Entry<String, TagValueMetadata> entry : availableTagValues.entrySet()) { + + TagValueMetadata tagValueMetadata = entry.getValue(); + if (boolean.class.equals(tagValueMetadata.getType())) { + + continue; + } JTextField field = new JTextField(); String tagValue = entry.getKey(); JLabel label = new JLabel(tagValue); $objectMap.put("tagValue-" + tagValue, field); - label.setToolTipText(entry.getValue().getDescription()); + label.setToolTipText(tagValueMetadata.getDescription()); label.setLabelFor(field); tagValues.add(label); tagValues.add(field); + } } diff --git a/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/ui/content/EnumerationContentUIHandler.java b/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/ui/content/EnumerationContentUIHandler.java index 388e162..6017d64 100644 --- a/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/ui/content/EnumerationContentUIHandler.java +++ b/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/ui/content/EnumerationContentUIHandler.java @@ -23,7 +23,7 @@ public class EnumerationContentUIHandler extends ContentUIHandler<ObjectModelEnu public void afterInit(EnumerationContentUI ui) { ModelExtensionHelper helper = getApplicationContext(ui).getModelExtensionHelper(); - afterInit(ui, helper.getEnumerationTagValues(), helper.getEnumerationStereotypes()); + afterInit(ui, helper.getEnumerationTagValues()); ui.getLiterals().setModel(new DefaultListModel<>()); ui.getLiterals().getSelectionModel().addListSelectionListener(e -> ui.getDeleteLiteralsFromEnumeration().setEnabled(!((ListSelectionModel) e.getSource()).isSelectionEmpty())); diff --git a/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/ui/content/InterfaceContentUIHandler.java b/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/ui/content/InterfaceContentUIHandler.java index f2d6fd5..de2b7aa 100644 --- a/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/ui/content/InterfaceContentUIHandler.java +++ b/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/ui/content/InterfaceContentUIHandler.java @@ -27,7 +27,7 @@ public class InterfaceContentUIHandler extends ContentUIHandler<ObjectModelInter public void afterInit(InterfaceContentUI ui) { ModelExtensionHelper helper = getApplicationContext(ui).getModelExtensionHelper(); - afterInit(ui, helper.getInterfaceTagValues(), helper.getInterfaceStereotypes()); + afterInit(ui, helper.getInterfaceTagValues()); ui.getSuperClasses().getSelectionModel().addListSelectionListener(e -> ui.getRemoveSuperClassesFromInterface().setEnabled(!((ListSelectionModel) e.getSource()).isSelectionEmpty())); } diff --git a/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/ui/content/ModelContentUIHandler.java b/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/ui/content/ModelContentUIHandler.java index 70b63dd..672e0aa 100644 --- a/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/ui/content/ModelContentUIHandler.java +++ b/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/ui/content/ModelContentUIHandler.java @@ -20,7 +20,7 @@ public class ModelContentUIHandler extends ContentUIHandler<ObjectModelImpl, Mod public void afterInit(ModelContentUI ui) { ModelExtensionHelper helper = getApplicationContext(ui).getModelExtensionHelper(); - afterInit(ui, helper.getModelTagValues(), helper.getModelStereotypes()); + afterInit(ui, helper.getModelTagValues()); } diff --git a/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/ui/content/OperationContentUIHandler.java b/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/ui/content/OperationContentUIHandler.java index a678cd1..aa09e4a 100644 --- a/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/ui/content/OperationContentUIHandler.java +++ b/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/ui/content/OperationContentUIHandler.java @@ -33,7 +33,7 @@ public class OperationContentUIHandler extends ContentUIHandler<ObjectModelOpera public void afterInit(OperationContentUI ui) { ModelExtensionHelper helper = getApplicationContext(ui).getModelExtensionHelper(); - afterInit(ui, helper.getOperationTagValues(), helper.getOperationStereotypes()); + afterInit(ui, helper.getOperationTagValues()); ui.getParameters().getSelectionModel().addListSelectionListener(e -> ui.getDeleteParameterFromOperation().setEnabled(!((ListSelectionModel) e.getSource()).isSelectionEmpty())); } diff --git a/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/ui/content/PackageContentUIHandler.java b/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/ui/content/PackageContentUIHandler.java index e4f74fd..b865995 100644 --- a/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/ui/content/PackageContentUIHandler.java +++ b/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/ui/content/PackageContentUIHandler.java @@ -19,7 +19,7 @@ public class PackageContentUIHandler extends ContentUIHandler<ObjectModelPackage public void afterInit(PackageContentUI ui) { ModelExtensionHelper helper = getApplicationContext(ui).getModelExtensionHelper(); - afterInit(ui, helper.getPackageTagValues(), helper.getPackageStereotypes()); + afterInit(ui, helper.getPackageTagValues()); } diff --git a/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/ui/tree/EugeneEditorTreeSelectionModel.java b/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/ui/tree/EugeneEditorTreeSelectionModel.java index df99538..ef8ff54 100644 --- a/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/ui/tree/EugeneEditorTreeSelectionModel.java +++ b/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/ui/tree/EugeneEditorTreeSelectionModel.java @@ -4,8 +4,7 @@ import org.nuiton.eugene.editor.application.ui.ContentUIManager; import org.nuiton.eugene.editor.application.ui.EugeneEditorUI; import org.nuiton.eugene.editor.application.ui.content.ContentUI; import org.nuiton.eugene.editor.application.ui.tree.node.NodeSupport; -import org.nuiton.eugene.models.extension.stereotype.WithStereotypes; -import org.nuiton.eugene.models.extension.tagvalue.WithTagValues; +import org.nuiton.eugene.models.extension.tagvalue.WithTagValuesOrStereotypes; import javax.swing.JComponent; import javax.swing.JLabel; @@ -81,7 +80,7 @@ public class EugeneEditorTreeSelectionModel extends DefaultTreeSelectionModel { } - protected <M extends WithStereotypes & WithTagValues, N extends NodeSupport<M>> void openNode(N node, ContentUIManager contentUIManager) { + protected <M extends WithTagValuesOrStereotypes, N extends NodeSupport<M>> void openNode(N node, ContentUIManager contentUIManager) { node.removePropertyChangeListener(reloadNodeChangeListener); node.addPropertyChangeListener(reloadNodeChangeListener); @@ -92,7 +91,7 @@ public class EugeneEditorTreeSelectionModel extends DefaultTreeSelectionModel { JLabel leftDecoration = new JLabel(node.getBigIcon()); leftDecoration.setHorizontalAlignment(JLabel.CENTER); - leftDecoration.setSize(32,32); + leftDecoration.setSize(32, 32); content.setLeftDecoration(leftDecoration); diff --git a/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/ui/tree/node/ClassNode.java b/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/ui/tree/node/ClassNode.java index f294ff7..b5583de 100644 --- a/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/ui/tree/node/ClassNode.java +++ b/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/ui/tree/node/ClassNode.java @@ -1,6 +1,6 @@ package org.nuiton.eugene.editor.application.ui.tree.node; -import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.nuiton.eugene.models.object.ObjectModelClass; import org.nuiton.eugene.models.object.ObjectModelInterface; diff --git a/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/ui/tree/node/NodeSupport.java b/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/ui/tree/node/NodeSupport.java index 22df377..4ae10e2 100644 --- a/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/ui/tree/node/NodeSupport.java +++ b/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/application/ui/tree/node/NodeSupport.java @@ -5,8 +5,7 @@ import jaxx.runtime.SwingUtil; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.eugene.models.extension.stereotype.WithStereotypes; -import org.nuiton.eugene.models.extension.tagvalue.WithTagValues; +import org.nuiton.eugene.models.extension.tagvalue.WithTagValuesOrStereotypes; import org.nuiton.util.beans.BeanMonitor; import javax.swing.Icon; @@ -28,7 +27,7 @@ import java.util.Set; * * @author Tony Chemit - chemit@codelutin.com */ -public abstract class NodeSupport<M extends WithStereotypes & WithTagValues> extends DefaultMutableTreeNode { +public abstract class NodeSupport<M extends WithTagValuesOrStereotypes> extends DefaultMutableTreeNode { /** Logger. */ private static final Log log = LogFactory.getLog(NodeSupport.class); diff --git a/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/plugin/EugeneEditorMojo.java b/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/plugin/EugeneEditorMojo.java index c8237bd..cc8c318 100644 --- a/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/plugin/EugeneEditorMojo.java +++ b/eugene-editor-maven-plugin/src/main/java/org/nuiton/eugene/editor/plugin/EugeneEditorMojo.java @@ -10,12 +10,10 @@ import org.nuiton.eugene.ModelReader; import org.nuiton.eugene.editor.application.EugeneEditorApplicationContext; import org.nuiton.eugene.editor.application.config.EugeneEditorConfig; import org.nuiton.eugene.editor.application.ui.EugeneEditorUI; -import org.nuiton.eugene.models.extension.stereotype.provider.AggregateStereotypeMetadatasProvider; -import org.nuiton.eugene.models.extension.stereotype.provider.StereotypeMetadatasProvider; +import org.nuiton.eugene.models.extension.io.ModelExtensionReader; import org.nuiton.eugene.models.extension.tagvalue.provider.AggregateTagValueMetadatasProvider; import org.nuiton.eugene.models.extension.tagvalue.provider.TagValueMetadatasProvider; import org.nuiton.eugene.models.object.ObjectModel; -import org.nuiton.eugene.models.object.reader.extension.LoadModelExtension; import org.nuiton.plugin.AbstractPlugin; import javax.swing.SwingUtilities; @@ -50,27 +48,13 @@ public class EugeneEditorMojo extends AbstractPlugin { */ @Parameter(defaultValue = "${project}", readonly = true) protected MavenProject project; - /** - * All available tag value providers introspects via plexus. - */ - @Component(role = TagValueMetadatasProvider.class) - protected Set<TagValueMetadatasProvider> tagValueMetadatasProviders; - /** - * All available stereotype providers introspects via plexus. - */ - @Component(role = StereotypeMetadatasProvider.class) - protected Set<StereotypeMetadatasProvider> stereotypeMetadatasProviders; - @Component(hint = "xmlobjectmodel") - protected ModelReader modelReader; - protected ObjectModel model; - protected ClassLoader contextClassLoader; - protected URLClassLoader classLoader; /** * The source directory where to scan options java file. */ @Parameter(property = "eugene.sourceDirectory", defaultValue = "${basedir}/src/main/xmi", required = true) private File sourceDirectory; + /** * The source directory where to scan options java file. */ @@ -82,6 +66,19 @@ public class EugeneEditorMojo extends AbstractPlugin { @Parameter(property = "eugene.workingDirectory", defaultValue = "${project.build.directory}/eugeneEditor", required = true) private File workingDirectory; + /** + * All available tag value providers introspects via plexus. + */ + @Component(role = TagValueMetadatasProvider.class) + protected Set<TagValueMetadatasProvider> tagValueMetadatasProviders; + + @Component(hint = "xmlobjectmodel") + protected ModelReader modelReader; + + private ObjectModel model; + private ClassLoader contextClassLoader; + private URLClassLoader classLoader; + @Override protected void init() throws Exception { @@ -97,16 +94,16 @@ public class EugeneEditorMojo extends AbstractPlugin { model = (ObjectModel) modelReader.read(files); } - LoadModelExtension<ObjectModel> loadModelExtension = new LoadModelExtension<>(verbose, false, model); + ModelExtensionReader<ObjectModel> loadModelExtension = new ModelExtensionReader<>(verbose, false, model); - File[] extensionFiles = sourceDirectory.listFiles(f -> f.getName().endsWith(".objectmodel-ext")); + File[] extensionFiles = sourceDirectory.listFiles(f -> f.getName().endsWith(".ini")); if (extensionFiles != null) { getLog().info("Found " + extensionFiles.length + " model extension file(s)."); for (File file : extensionFiles) { getLog().info("Loading extension file: " + file); - loadModelExtension.load(file); + loadModelExtension.read(file); } } @@ -125,7 +122,6 @@ public class EugeneEditorMojo extends AbstractPlugin { config, classLoader, new AggregateTagValueMetadatasProvider(tagValueMetadatasProviders), - new AggregateStereotypeMetadatasProvider(stereotypeMetadatasProviders), model); JAXXInitialContext ctx = new JAXXInitialContext().add(applicationContext); diff --git a/eugene-editor-maven-plugin/src/test/resources/observe-entities/observe.ini b/eugene-editor-maven-plugin/src/test/resources/observe-entities/observe.ini new file mode 100644 index 0000000..b4d52f9 --- /dev/null +++ b/eugene-editor-maven-plugin/src/test/resources/observe-entities/observe.ini @@ -0,0 +1,295 @@ +[model] +attributeType.Boolean = java.lang.Boolean +attributeType.Float = java.lang.Float +attributeType.Integer = java.lang.Integer +attributeType.Long = java.lang.Long +attributeType.String = java.lang.String +generateForeignKeyNames = true +generateOperatorForDAOHelper = true +generatePropertyChangeSupport = true +indexForeignKeys = true +notGenerateToString = true +useEnumerationName = false +version = @observe.model.version@ + +[package fr.ird.observe.entities] +dbSchema = OBSERVE_COMMON + +[package fr.ird.observe.entities.longline] +dbSchema = OBSERVE_LONGLINE + +[package fr.ird.observe.entities.referentiel] +dbSchema = OBSERVE_COMMON + +[package fr.ird.observe.entities.referentiel.longline] +dbSchema = OBSERVE_LONGLINE + +[package fr.ird.observe.entities.referentiel.seine] +dbSchema = OBSERVE_SEINE + +[package fr.ird.observe.entities.seine] +dbSchema = OBSERVE_SEINE + +[class fr.ird.observe.entities.CommentableEntity] +comment.hibernateAttributeType = text + +[class fr.ird.observe.entities.ObserveEntity] +lastUpdateDate.notNull = true + +[class fr.ird.observe.entities.longline.ActivityLongline] +dbName = Activity +encounter.reverseDbName = activity +sensorUsed.reverseDbName = activity +setLongline.dbName = set +vesselActivityLongline.dbName = vesselActivity +vesselActivityLongline.lazy = false + +[class fr.ird.observe.entities.longline.Basket] +branchline.orderBy = settingIdentifier +branchline.unique = true +settingIdentifier.notNull = true + +[class fr.ird.observe.entities.longline.Branchline] +branchlineLength.sqlType = numeric +catchLongline.dbName = catch +hookSize.sqlType = numeric +settingIdentifier.notNull = true +snapWeight.sqlType = numeric +swivelWeight.sqlType = numeric +tracelineLength.sqlType = numeric + +[class fr.ird.observe.entities.longline.BranchlinesComposition] +length.sqlType = numeric + +[class fr.ird.observe.entities.longline.CatchLongline] +dbName = Catch +beatDiameter.sqlType = numeric +catchFateLongline.dbName = catchFate +gonadeWeight.sqlType = numeric +predator.manyToManyTableName = catch_predator +predator.reverseDbName = catch +sizeMeasure.reverseDbName = catch +totalWeight.sqlType = numeric +weightMeasure.reverseDbName = catch + +[class fr.ird.observe.entities.longline.Encounter] +distance.sqlType = numeric + +[class fr.ird.observe.entities.longline.FloatlinesComposition] +length.sqlType = numeric + +[class fr.ird.observe.entities.longline.GearUseFeaturesLongline] +dbName = GearUseFeatures +gearUseFeaturesMeasurement.orderBy = topiaCreateDate +gearUseFeaturesMeasurement.reverseDbName = gearUseFeatures +gearUseFeaturesMeasurement.unique = true + +[class fr.ird.observe.entities.longline.GearUseFeaturesMeasurementLongline] +dbName = GearUseFeaturesMeasurement +gearCaracteristic.notNull = true + +[class fr.ird.observe.entities.longline.HooksComposition] +hookSize.sqlType = numeric + +[class fr.ird.observe.entities.longline.Section] +basket.orderBy = settingIdentifier +basket.unique = true +setLongline.dbName = set +settingIdentifier.notNull = true + +[class fr.ird.observe.entities.longline.SetLongline] +dbName = Set +baitsComposition.reverseDbName = set +branchlinesComposition.reverseDbName = set +catchLongline.reverseDbName = set +catchLongline.unique = true +floatlinesComposition.reverseDbName = set +haulingEndLatitude.sqlType = numeric +haulingEndLongitude.sqlType = numeric +haulingStartLatitude.sqlType = numeric +haulingStartLongitude.sqlType = numeric +hooksComposition.reverseDbName = set +mitigationType.manyToManyTableName = mitigationtype_set +mitigationType.reverseDbName = set +section.orderBy = settingIdentifier +section.reverseDbName = set +section.unique = true +settingEndLatitude.sqlType = numeric +settingEndLongitude.sqlType = numeric +settingStartLatitude.sqlType = numeric +settingStartLongitude.sqlType = numeric +settingVesselSpeed.sqlType = numeric +shooterSpeed.sqlType = numeric +snapWeight.sqlType = numeric +swivelWeight.sqlType = numeric +tdr.reverseDbName = set + +[class fr.ird.observe.entities.longline.SizeMeasure] +size.sqlType = numeric + +[class fr.ird.observe.entities.longline.Tdr] +floatline1Length.sqlType = numeric +floatline2Length.sqlType = numeric + +[class fr.ird.observe.entities.longline.TdrRecord] +depth.sqlType = numeric +temperature.sqlType = numeric + +[class fr.ird.observe.entities.longline.TripLongline] +dbName = Trip +activityLongline.reverseDbName = trip +activityLongline.unique = true +gearUseFeaturesLongline.orderBy = topiaCreateDate +gearUseFeaturesLongline.reverseDbName = trip +gearUseFeaturesLongline.unique = true + +[class fr.ird.observe.entities.longline.WeightMeasure] +weight.sqlType = numeric + +[class fr.ird.observe.entities.referentiel.Gear] +gearCaracteristic.lazy = false + +[class fr.ird.observe.entities.referentiel.GearCaracteristic] +gearCaracteristicType.lazy = false + +[class fr.ird.observe.entities.referentiel.LengthWeightParameter] +ocean.lazy = false +ocean.notNull = true +sex.lazy = false +sex.notNull = true +species.lazy = false +species.notNull = true + +[class fr.ird.observe.entities.referentiel.Organism] +country.lazy = false + +[class fr.ird.observe.entities.referentiel.Program] +comment.hibernateAttributeType = text +organism.lazy = false + +[class fr.ird.observe.entities.referentiel.Species] +maxLength.sqlType = numeric +maxWeight.sqlType = numeric +minLength.sqlType = numeric +minWeight.sqlType = numeric +ocean.lazy = false +speciesGroup.lazy = false + +[class fr.ird.observe.entities.referentiel.SpeciesList] +species.lazy = false + +[class fr.ird.observe.entities.referentiel.Vessel] +capacity.sqlType = numeric +comment.hibernateAttributeType = text +flagCountry.lazy = false +length.sqlType = numeric +searchMaximum.sqlType = numeric +vesselSizeCategory.lazy = false +vesselType.lazy = false + +[class fr.ird.observe.entities.referentiel.longline.CatchFateLongline] +dbName = CatchFate + +[class fr.ird.observe.entities.referentiel.longline.VesselActivityLongline] +dbName = VesselActivity + +[class fr.ird.observe.entities.referentiel.seine.VesselActivitySeine] +dbName = VesselActivity + +[class fr.ird.observe.entities.referentiel.seine.WeightCategory] +species.lazy = false + +[class fr.ird.observe.entities.seine.ActivitySeine] +dbName = Activity +floatingObject.reverseDbName = activity +floatingObject.unique = true +latitude.sqlType = numeric +longitude.sqlType = numeric +observedSystem.manyToManyTableName = activity_observedSystem +observedSystem.reverseDbName = activity +observedSystem.unique = true +observedSystemDistance.sqlType = numeric +seaSurfaceTemperature.sqlType = numeric +setSeine.dbName = set +time.hibernateAttributeType.java.util.Date = time +vesselActivitySeine.dbName = vesselActivity +vesselSpeed.sqlType = numeric + +[class fr.ird.observe.entities.seine.FloatingObject] +transmittingBuoy.unique = true + +[class fr.ird.observe.entities.seine.GearUseFeaturesMeasurementSeine] +dbName = GearUseFeaturesMeasurement +gearCaracteristic.notNull = true + +[class fr.ird.observe.entities.seine.GearUseFeaturesSeine] +dbName = GearUseFeatures +gearUseFeaturesMeasurement.orderBy = topiaCreateDate +gearUseFeaturesMeasurement.reverseDbName = gearUseFeatures + +[class fr.ird.observe.entities.seine.NonTargetCatch] +catchWeight.sqlType = numeric +meanLength.sqlType = numeric +meanWeight.sqlType = numeric + +[class fr.ird.observe.entities.seine.NonTargetLength] +length.sqlType = numeric +sex.lazy = false +weight.sqlType = numeric + +[class fr.ird.observe.entities.seine.NonTargetSample] +nonTargetLength.unique = true + +[class fr.ird.observe.entities.seine.Route] +activitySeine.orderBy = time +activitySeine.unique = true +date.hibernateAttributeType.java.util.Date = date +endLogValue.sqlType = numeric +startLogValue.sqlType = numeric + +[class fr.ird.observe.entities.seine.SchoolEstimate] +naturalIdMutable = true +setSeine.dbName = set +setSeine.naturalId = true +species.naturalId = true + +[class fr.ird.observe.entities.seine.SetSeine] +dbName = Set +currentSpeed.sqlType = numeric +nonTargetCatch.reverseDbName = set +nonTargetSample.reverseDbName = set +nonTargetSample.unique = true +schoolEstimate.reverseDbName = set +startTime.hibernateAttributeType.java.util.Date = time +targetCatch.reverseDbName = set +targetSample.reverseDbName = set +targetSample.unique = true + +[class fr.ird.observe.entities.seine.TargetCatch] +naturalIdMutable = true +catchWeight.sqlType = numeric +discarded.naturalId = true +reasonForDiscard.naturalId = true +reasonForDiscard.notNull = false +setSeine.dbName = set +setSeine.naturalId = true +weightCategory.naturalId = true +well.naturalId = true +well.notNull = false + +[class fr.ird.observe.entities.seine.TargetLength] +length.sqlType = numeric +weight.sqlType = numeric + +[class fr.ird.observe.entities.seine.TargetSample] +targetLength.unique = true + +[class fr.ird.observe.entities.seine.TripSeine] +dbName = Trip +endDate.hibernateAttributeType.java.util.Date = date +gearUseFeaturesSeine.orderBy = topiaCreateDate +gearUseFeaturesSeine.reverseDbName = trip +route.orderBy = date +route.reverseDbName = trip +route.unique = true +startDate.hibernateAttributeType.java.util.Date = date diff --git a/eugene-editor-maven-plugin/src/test/resources/observe-entities/observe.objectmodel-ext b/eugene-editor-maven-plugin/src/test/resources/observe-entities/observe.objectmodel-ext deleted file mode 100644 index c3ad97f..0000000 --- a/eugene-editor-maven-plugin/src/test/resources/observe-entities/observe.objectmodel-ext +++ /dev/null @@ -1,248 +0,0 @@ -[model] -attributeType.Boolean java.lang.Boolean -attributeType.Float java.lang.Float -attributeType.Integer java.lang.Integer -attributeType.Long java.lang.Long -attributeType.String java.lang.String -generateForeignKeyNames true -generateOperatorForDAOHelper true -generatePropertyChangeSupport true -indexForeignKeys true -notGenerateToString true -useEnumerationName false -version @observe.model.version@ - -[package] -fr.ird.observe.entities - dbSchema OBSERVE_COMMON -fr.ird.observe.entities.longline - dbSchema OBSERVE_LONGLINE -fr.ird.observe.entities.referentiel - dbSchema OBSERVE_COMMON -fr.ird.observe.entities.referentiel.longline - dbSchema OBSERVE_LONGLINE -fr.ird.observe.entities.referentiel.seine - dbSchema OBSERVE_SEINE -fr.ird.observe.entities.seine - dbSchema OBSERVE_SEINE - -[class] -fr.ird.observe.entities.CommentableEntity - comment.hibernateAttributeType text -fr.ird.observe.entities.ObserveEntity - lastUpdateDate.notNull true -fr.ird.observe.entities.longline.ActivityLongline - dbName Activity - encounter.reverseDbName activity - sensorUsed.reverseDbName activity - setLongline.dbName set - vesselActivityLongline.dbName vesselActivity - vesselActivityLongline.lazy false -fr.ird.observe.entities.longline.Basket - branchline.orderBy settingIdentifier - settingIdentifier.notNull true - branchline.unique -fr.ird.observe.entities.longline.Branchline - branchlineLength.sqlType numeric - catchLongline.dbName catch - hookSize.sqlType numeric - settingIdentifier.notNull true - snapWeight.sqlType numeric - swivelWeight.sqlType numeric - tracelineLength.sqlType numeric -fr.ird.observe.entities.longline.BranchlinesComposition - length.sqlType numeric -fr.ird.observe.entities.longline.CatchLongline - dbName Catch - beatDiameter.sqlType numeric - catchFateLongline.dbName catchFate - gonadeWeight.sqlType numeric - predator.manyToManyTableName catch_predator - predator.reverseDbName catch - sizeMeasure.reverseDbName catch - totalWeight.sqlType numeric - weightMeasure.reverseDbName catch -fr.ird.observe.entities.longline.Encounter - distance.sqlType numeric -fr.ird.observe.entities.longline.FloatlinesComposition - length.sqlType numeric -fr.ird.observe.entities.longline.GearUseFeaturesLongline - dbName GearUseFeatures - gearUseFeaturesMeasurement.orderBy topiaCreateDate - gearUseFeaturesMeasurement.reverseDbName gearUseFeatures - gearUseFeaturesMeasurement.unique -fr.ird.observe.entities.longline.GearUseFeaturesMeasurementLongline - dbName GearUseFeaturesMeasurement - gearCaracteristic.notNull true -fr.ird.observe.entities.longline.HooksComposition - hookSize.sqlType numeric -fr.ird.observe.entities.longline.Section - basket.orderBy settingIdentifier - setLongline.dbName set - settingIdentifier.notNull true - basket.unique -fr.ird.observe.entities.longline.SetLongline - dbName Set - baitsComposition.reverseDbName set - branchlinesComposition.reverseDbName set - catchLongline.reverseDbName set - floatlinesComposition.reverseDbName set - haulingEndLatitude.sqlType numeric - haulingEndLongitude.sqlType numeric - haulingStartLatitude.sqlType numeric - haulingStartLongitude.sqlType numeric - hooksComposition.reverseDbName set - mitigationType.manyToManyTableName mitigationtype_set - mitigationType.reverseDbName set - section.orderBy settingIdentifier - section.reverseDbName set - settingEndLatitude.sqlType numeric - settingEndLongitude.sqlType numeric - settingStartLatitude.sqlType numeric - settingStartLongitude.sqlType numeric - settingVesselSpeed.sqlType numeric - shooterSpeed.sqlType numeric - snapWeight.sqlType numeric - swivelWeight.sqlType numeric - tdr.reverseDbName set - catchLongline.unique - section.unique -fr.ird.observe.entities.longline.SizeMeasure - size.sqlType numeric -fr.ird.observe.entities.longline.Tdr - floatline1Length.sqlType numeric - floatline2Length.sqlType numeric -fr.ird.observe.entities.longline.TdrRecord - depth.sqlType numeric - temperature.sqlType numeric -fr.ird.observe.entities.longline.TripLongline - dbName Trip - activityLongline.reverseDbName trip - gearUseFeaturesLongline.orderBy topiaCreateDate - gearUseFeaturesLongline.reverseDbName trip - activityLongline.unique - gearUseFeaturesLongline.unique -fr.ird.observe.entities.longline.WeightMeasure - weight.sqlType numeric -fr.ird.observe.entities.referentiel.Gear - gearCaracteristic.lazy false -fr.ird.observe.entities.referentiel.GearCaracteristic - gearCaracteristicType.lazy false -fr.ird.observe.entities.referentiel.LengthWeightParameter - ocean.lazy false - ocean.notNull true - sex.lazy false - sex.notNull true - species.lazy false - species.notNull true -fr.ird.observe.entities.referentiel.Organism - country.lazy false -fr.ird.observe.entities.referentiel.Program - comment.hibernateAttributeType text - organism.lazy false -fr.ird.observe.entities.referentiel.Species - maxLength.sqlType numeric - maxWeight.sqlType numeric - minLength.sqlType numeric - minWeight.sqlType numeric - ocean.lazy false - speciesGroup.lazy false -fr.ird.observe.entities.referentiel.SpeciesList - species.lazy false -fr.ird.observe.entities.referentiel.Vessel - capacity.sqlType numeric - comment.hibernateAttributeType text - flagCountry.lazy false - length.sqlType numeric - searchMaximum.sqlType numeric - vesselSizeCategory.lazy false - vesselType.lazy false -fr.ird.observe.entities.referentiel.longline.CatchFateLongline - dbName CatchFate -fr.ird.observe.entities.referentiel.longline.VesselActivityLongline - dbName VesselActivity -fr.ird.observe.entities.referentiel.seine.VesselActivitySeine - dbName VesselActivity -fr.ird.observe.entities.referentiel.seine.WeightCategory - species.lazy false -fr.ird.observe.entities.seine.ActivitySeine - dbName Activity - floatingObject.reverseDbName activity - latitude.sqlType numeric - longitude.sqlType numeric - observedSystem.manyToManyTableName activity_observedSystem - observedSystem.reverseDbName activity - observedSystemDistance.sqlType numeric - seaSurfaceTemperature.sqlType numeric - setSeine.dbName set - time.hibernateAttributeType.java.util.Date time - vesselActivitySeine.dbName vesselActivity - vesselSpeed.sqlType numeric - floatingObject.unique - observedSystem.unique -fr.ird.observe.entities.seine.FloatingObject - transmittingBuoy.unique -fr.ird.observe.entities.seine.GearUseFeaturesMeasurementSeine - dbName GearUseFeaturesMeasurement - gearCaracteristic.notNull true -fr.ird.observe.entities.seine.GearUseFeaturesSeine - dbName GearUseFeatures - gearUseFeaturesMeasurement.orderBy topiaCreateDate - gearUseFeaturesMeasurement.reverseDbName gearUseFeatures -fr.ird.observe.entities.seine.NonTargetCatch - catchWeight.sqlType numeric - meanLength.sqlType numeric - meanWeight.sqlType numeric -fr.ird.observe.entities.seine.NonTargetLength - length.sqlType numeric - sex.lazy false - weight.sqlType numeric -fr.ird.observe.entities.seine.NonTargetSample - nonTargetLength.unique -fr.ird.observe.entities.seine.Route - activitySeine.orderBy time - date.hibernateAttributeType.java.util.Date date - endLogValue.sqlType numeric - startLogValue.sqlType numeric - activitySeine.unique -fr.ird.observe.entities.seine.SchoolEstimate - naturalIdMutable true - setSeine.dbName set - setSeine.naturalId true - species.naturalId true -fr.ird.observe.entities.seine.SetSeine - dbName Set - currentSpeed.sqlType numeric - nonTargetCatch.reverseDbName set - nonTargetSample.reverseDbName set - schoolEstimate.reverseDbName set - startTime.hibernateAttributeType.java.util.Date time - targetCatch.reverseDbName set - targetSample.reverseDbName set - nonTargetSample.unique - targetSample.unique -fr.ird.observe.entities.seine.TargetCatch - naturalIdMutable true - catchWeight.sqlType numeric - discarded.naturalId true - reasonForDiscard.naturalId true - reasonForDiscard.notNull false - setSeine.dbName set - setSeine.naturalId true - weightCategory.naturalId true - well.naturalId true - well.notNull false -fr.ird.observe.entities.seine.TargetLength - length.sqlType numeric - weight.sqlType numeric -fr.ird.observe.entities.seine.TargetSample - targetLength.unique -fr.ird.observe.entities.seine.TripSeine - dbName Trip - endDate.hibernateAttributeType.java.util.Date date - gearUseFeaturesSeine.orderBy topiaCreateDate - gearUseFeaturesSeine.reverseDbName trip - route.orderBy date - route.reverseDbName trip - startDate.hibernateAttributeType.java.util.Date date - route.unique diff --git a/pom.xml b/pom.xml index 71e9a1b..10e48d0 100644 --- a/pom.xml +++ b/pom.xml @@ -143,7 +143,7 @@ <processorPluginVersion>1.3</processorPluginVersion> <nuitonUtilsVersion>3.0-SNAPSHOT</nuitonUtilsVersion> <nuitonI18nVersion>3.6.2</nuitonI18nVersion> - <nuitonConfigVersion>3.0</nuitonConfigVersion> + <nuitonConfigVersion>3.1</nuitonConfigVersion> <plantumlVersion>8048</plantumlVersion> <snakeyamlVersion>1.17</snakeyamlVersion> <antlr4Version>4.5.3</antlr4Version> @@ -155,10 +155,10 @@ <plexusPluginVersion>1.3.8</plexusPluginVersion> <doxiaVersion>1.7</doxiaVersion> <mavenVersion>3.3.9</mavenVersion> - <jaxxVersion>2.33-SNAPSHOT</jaxxVersion> + <jaxxVersion>2.33</jaxxVersion> <i18nVersion>3.6.2</i18nVersion> <swingXVersion>1.6.5-1</swingXVersion> - + <javaVersion>1.7</javaVersion> <signatureArtifactId>java17</signatureArtifactId> <signatureVersion>1.0</signatureVersion> @@ -241,6 +241,13 @@ </dependency> <dependency> + <groupId>org.nuiton</groupId> + <artifactId>nuiton-validator</artifactId> + <version>3.0.1</version> + <scope>compile</scope> + </dependency> + + <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-digester3</artifactId> <version>3.2</version> @@ -568,11 +575,6 @@ </plugin> <plugin> - <groupId>org.nuiton.i18n</groupId> - <artifactId>i18n-maven-plugin</artifactId> - <version>${nuitonI18nVersion}</version> - </plugin> - <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>license-maven-plugin</artifactId> <configuration> -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.