Author: dgeraskov
Date: 2011-08-16 04:34:46 -0400 (Tue, 16 Aug 2011)
New Revision: 33962
Added:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/ParametrizedElement.java
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/src/org/jboss/tools/hibernate/jpt/ui/internal/mapping/details/TypeDefPropertyComposite.java
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/src/org/jboss/tools/hibernate/jpt/ui/internal/mapping/details/TypeDefsComposite.java
Modified:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/HibernateAbstractJpaFactory.java
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/GenericGenerator.java
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/Messages.java
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/java/HibernateJavaParameter.java
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/java/JavaGenericGenerator.java
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/java/JavaGenericGeneratorImpl.java
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/java/JavaParameter.java
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/java/JavaTypeDef.java
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/java/JavaTypeDefImpl.java
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/java/TypeImpl.java
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/resource/java/TypeDefAnnotationImpl.java
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/src/org/jboss/tools/hibernate/jpt/ui/internal/details/java/HibernateJavaEntityComposite.java
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/src/org/jboss/tools/hibernate/jpt/ui/internal/mapping/details/GenericGeneratorComposite.java
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/src/org/jboss/tools/hibernate/jpt/ui/internal/mapping/details/HibernateUIMappingMessages.java
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/src/org/jboss/tools/hibernate/jpt/ui/internal/mapping/details/ParametersComposite.java
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/src/org/jboss/tools/hibernate/jpt/ui/internal/mapping/details/messages.properties
Log:
https://issues.jboss.org/browse/JBIDE-9486
UI for TypeDef annotation
Modified:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/HibernateAbstractJpaFactory.java
===================================================================
---
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/HibernateAbstractJpaFactory.java 2011-08-16
08:06:34 UTC (rev 33961)
+++
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/HibernateAbstractJpaFactory.java 2011-08-16
08:34:46 UTC (rev 33962)
@@ -87,6 +87,7 @@
import
org.jboss.tools.hibernate.jpt.core.internal.resource.java.HibernateNamedNativeQueryAnnotation;
import
org.jboss.tools.hibernate.jpt.core.internal.resource.java.HibernateNamedQueryAnnotation;
import org.jboss.tools.hibernate.jpt.core.internal.resource.java.IndexAnnotation;
+import org.jboss.tools.hibernate.jpt.core.internal.resource.java.ParameterAnnotation;
import org.jboss.tools.hibernate.jpt.core.internal.resource.java.TypeAnnotation;
import org.jboss.tools.hibernate.jpt.core.internal.resource.java.TypeDefAnnotation;
@@ -137,8 +138,8 @@
return new HibernateNamedNativeQueryImpl(parent, namedNativeQueryAnnotation);
}
- public JavaParameter buildJavaParameter(JpaContextNode parent) {
- return new HibernateJavaParameter(parent);
+ public JavaParameter buildJavaParameter(JpaContextNode parent, ParameterAnnotation
resourceParameter) {
+ return new HibernateJavaParameter(parent, resourceParameter);
}
public JavaDiscriminatorFormula buildJavaDiscriminatorFormula(
Modified:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/GenericGenerator.java
===================================================================
---
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/GenericGenerator.java 2011-08-16
08:06:34 UTC (rev 33961)
+++
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/GenericGenerator.java 2011-08-16
08:34:46 UTC (rev 33962)
@@ -10,15 +10,13 @@
******************************************************************************/
package org.jboss.tools.hibernate.jpt.core.internal.context;
-import java.util.ListIterator;
-
import org.eclipse.jpt.jpa.core.context.Generator;
/**
* @author Dmitry Geraskov
*
*/
-public interface GenericGenerator extends Generator {
+public interface GenericGenerator extends Generator, ParametrizedElement {
Integer DEFAULT_INITIAL_VALUE = Integer.valueOf(1);
@@ -26,40 +24,6 @@
void setStrategy(String value);
String GENERIC_STRATEGY_PROPERTY = "genericStrategyProperty"; //$NON-NLS-1$
-
-
- //************************ parameters ***********************
+
- String PARAMETERS_LIST = "parameters"; //$NON-NLS-1$
-
- /**
- * Return a list iterator of the parameters. This will not be null.
- */
- <T extends Parameter> ListIterator<T> parameters();
-
- /**
- * Return the number of parameters.
- */
- int parametersSize();
-
- /**
- * Add a parameter to the generator and return the object representing it.
- */
- Parameter addParameter(int index);
-
- /**
- * Remove the parameter from the generator.
- */
- void removeParameter(int index);
-
- /**
- * Remove the parameter at the index from the query.
- */
- void removeParameter(Parameter queryParameter);
-
- /**
- * Move the parameter from the source index to the target index.
- */
- void moveParameter(int targetIndex, int sourceIndex);
-
}
Modified:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/Messages.java
===================================================================
---
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/Messages.java 2011-08-16
08:06:34 UTC (rev 33961)
+++
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/Messages.java 2011-08-16
08:34:46 UTC (rev 33962)
@@ -36,7 +36,7 @@
public static final String TYPE_CANT_BE_EMPTY = "TYPE_CANT_BE_EMPTY";
//$NON-NLS-1$
- public static final String USER_TYPE_INTERFACE = "USER_TYPE_INTERFACE";
//$NON-NLS-1$
+ public static final String IMPLEMENT_USER_TYPE_INTERFACE =
"USER_TYPE_INTERFACE"; //$NON-NLS-1$
public static final String TYPE_CLASS_NOT_FOUND = "TYPE_CLASS_NOT_FOUND";
//$NON-NLS-1$
Added:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/ParametrizedElement.java
===================================================================
---
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/ParametrizedElement.java
(rev 0)
+++
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/ParametrizedElement.java 2011-08-16
08:34:46 UTC (rev 33962)
@@ -0,0 +1,56 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is 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
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.hibernate.jpt.core.internal.context;
+
+import org.eclipse.jpt.common.utility.internal.iterables.ListIterable;
+import org.eclipse.jpt.common.utility.model.Model;
+
+/**
+ * @author Dmitry Geraskov
+ *
+ */
+public interface ParametrizedElement extends Model {
+
+ //************************ parameters ***********************
+
+ String PARAMETERS_LIST = "parameters"; //$NON-NLS-1$
+
+ /**
+ * Return a list iterator of the parameters. This will not be null.
+ */
+ <T extends Parameter> ListIterable<T> getParameters();
+
+ /**
+ * Return the number of parameters.
+ */
+ int getParametersSize();
+
+ /**
+ * Add a parameter to the generator and return the object representing it.
+ */
+ Parameter addParameter(int index);
+
+ /**
+ * Remove the parameter from the generator.
+ */
+ void removeParameter(int index);
+
+ /**
+ * Remove the parameter at the index from the query.
+ */
+ void removeParameter(Parameter queryParameter);
+
+ /**
+ * Move the parameter from the source index to the target index.
+ */
+ void moveParameter(int targetIndex, int sourceIndex);
+
+}
Modified:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/java/HibernateJavaParameter.java
===================================================================
---
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/java/HibernateJavaParameter.java 2011-08-16
08:06:34 UTC (rev 33961)
+++
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/java/HibernateJavaParameter.java 2011-08-16
08:34:46 UTC (rev 33962)
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2009 Red Hat, Inc.
+ * Copyright (c) 2009-2011 Red Hat, Inc.
* Distributed under license by Red Hat, Inc. All rights reserved.
* This program is made available under the terms of the
* Eclipse Public License v1.0 which accompanies this distribution,
@@ -14,7 +14,6 @@
import org.eclipse.jpt.common.core.utility.TextRange;
import org.eclipse.jpt.jpa.core.context.JpaContextNode;
import org.eclipse.jpt.jpa.core.internal.context.java.AbstractJavaJpaContextNode;
-import org.jboss.tools.hibernate.jpt.core.internal.context.Parameter;
import org.jboss.tools.hibernate.jpt.core.internal.resource.java.ParameterAnnotation;
/**
@@ -29,47 +28,63 @@
protected ParameterAnnotation resourceParameter;
- public HibernateJavaParameter(JpaContextNode parent) {
+ public HibernateJavaParameter(JpaContextNode parent, ParameterAnnotation
resourceParameter) {
super(parent);
+ this.resourceParameter = resourceParameter;
+ this.name = resourceParameter.getName();
+ this.value = resourceParameter.getValue();
}
-
+
+ // ********** synchronize/update **********
+ @Override
+ public void synchronizeWithResourceModel() {
+ super.synchronizeWithResourceModel();
+ this.setName_(this.resourceParameter.getName());
+ this.setValue_(this.resourceParameter.getValue());
+ }
+
+ // ********** name **********
public String getName() {
return this.name;
}
- public void setName(String newName) {
- String oldName = this.name;
- this.name = newName;
- this.resourceParameter.setName(newName);
- firePropertyChanged(Parameter.NAME_PROPERTY, oldName, newName);
+ public void setName(String name) {
+ this.resourceParameter.setName(name);
+ this.setName_(name);
}
+ protected void setName_(String name) {
+ String old = this.name;
+ this.name = name;
+ this.firePropertyChanged(NAME_PROPERTY, old, name);
+ }
+
+ // ********** value **********
public String getValue() {
return this.value;
}
- public void setValue(String newValue) {
- String oldValue = this.value;
- this.value = newValue;
- this.resourceParameter.setValue(newValue);
- firePropertyChanged(Parameter.VALUE_PROPERTY, oldValue, newValue);
+ public void setValue(String value) {
+ this.resourceParameter.setValue(value);
+ this.setValue_(value);
}
- public void initialize(ParameterAnnotation resourceParameter) {
- this.resourceParameter = resourceParameter;
- this.name = resourceParameter.getName();
- this.value = resourceParameter.getValue();
+ protected void setValue_(String value) {
+ String old = this.value;
+ this.value = value;
+ this.firePropertyChanged(VALUE_PROPERTY, old, value);
}
-
- public void update(ParameterAnnotation resourceParameter) {
- this.resourceParameter = resourceParameter;
- this.setName(resourceParameter.getName());
- this.setValue(resourceParameter.getValue());
- }
-
+
+ // ********** validation **********
public TextRange getValidationTextRange(CompilationUnit astRoot) {
return this.resourceParameter.getTextRange(astRoot);
}
+
+ // ********** misc **********
+ @Override
+ public ParameterAnnotation getParameterAnnotation() {
+ return resourceParameter;
+ }
@Override
public void toString(StringBuilder sb) {
Modified:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/java/JavaGenericGenerator.java
===================================================================
---
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/java/JavaGenericGenerator.java 2011-08-16
08:06:34 UTC (rev 33961)
+++
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/java/JavaGenericGenerator.java 2011-08-16
08:34:46 UTC (rev 33962)
@@ -10,10 +10,9 @@
******************************************************************************/
package org.jboss.tools.hibernate.jpt.core.internal.context.java;
-import java.util.ListIterator;
-
import org.eclipse.jdt.core.dom.CompilationUnit;
import org.eclipse.jpt.common.core.utility.TextRange;
+import org.eclipse.jpt.common.utility.internal.iterables.ListIterable;
import org.eclipse.jpt.jpa.core.context.java.JavaGenerator;
import org.jboss.tools.hibernate.jpt.core.internal.context.GenericGenerator;
import
org.jboss.tools.hibernate.jpt.core.internal.resource.java.GenericGeneratorAnnotation;
@@ -26,7 +25,7 @@
@Override
@SuppressWarnings("unchecked")
- ListIterator<JavaParameter> parameters();
+ ListIterable<JavaParameter> getParameters();
@Override
JavaParameter addParameter(int index);
Modified:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/java/JavaGenericGeneratorImpl.java
===================================================================
---
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/java/JavaGenericGeneratorImpl.java 2011-08-16
08:06:34 UTC (rev 33961)
+++
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/java/JavaGenericGeneratorImpl.java 2011-08-16
08:34:46 UTC (rev 33962)
@@ -13,7 +13,6 @@
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
-import java.util.ListIterator;
import java.util.Vector;
import org.eclipse.jdt.core.IType;
@@ -26,9 +25,8 @@
import org.eclipse.jpt.common.utility.internal.iterables.FilteringIterable;
import org.eclipse.jpt.common.utility.internal.iterables.ListIterable;
import org.eclipse.jpt.common.utility.internal.iterables.LiveCloneListIterable;
-import org.eclipse.jpt.common.utility.internal.iterators.CloneListIterator;
-import org.eclipse.jpt.jpa.core.context.Generator;
import org.eclipse.jpt.jpa.core.context.java.JavaJpaContextNode;
+import org.eclipse.jpt.jpa.core.internal.context.ContextContainerTools;
import org.eclipse.jpt.jpa.core.internal.context.java.AbstractJavaGenerator;
import org.eclipse.wst.validation.internal.provisional.core.IMessage;
import org.eclipse.wst.validation.internal.provisional.core.IReporter;
@@ -50,6 +48,7 @@
private String strategy;
protected final Vector<JavaParameter> parameters = new
Vector<JavaParameter>();
+ protected final ParameterContainerAdapter parameterContainerAdapter = new
ParameterContainerAdapter();
public static List<String> generatorClasses = new ArrayList<String>();
@@ -76,6 +75,7 @@
*/
public JavaGenericGeneratorImpl(JavaJpaContextNode parent, GenericGeneratorAnnotation
generatorAnnotation) {
super(parent, generatorAnnotation);
+ this.strategy = generatorAnnotation.getStrategy();
this.initializeParameters();
}
@@ -83,7 +83,7 @@
public void synchronizeWithResourceModel() {
super.synchronizeWithResourceModel();
this.setStrategy_(this.generatorAnnotation.getStrategy());
- this.updateParameters();
+ this.syncParameters();
}
@Override
@@ -92,19 +92,7 @@
this.updateNodes(this.getParameters());
}
- @Override
- public void setName(String name) {
- String old = this.name;
- this.name = name;
- this.generatorAnnotation.setName(name);
- this.firePropertyChanged(Generator.NAME_PROPERTY, old, name);
- }
-
- @Override
- public TextRange getNameTextRange(CompilationUnit astRoot) {
- return this.generatorAnnotation.getNameTextRange(astRoot);
- }
-
+ // ********** strategy **********
public String getStrategy() {
return this.strategy;
}
@@ -187,89 +175,99 @@
}
//************************ parameters ***********************
+ public ListIterable<JavaParameter> getParameters() {
+ return new LiveCloneListIterable<JavaParameter>(this.parameters);
+ }
- public JavaParameter addParameter(int index) {
- JavaParameter parameter = getJpaFactory().buildJavaParameter(this);
- this.parameters.add(index, parameter);
- ParameterAnnotation parameterAnnotation =
this.getGeneratorAnnotation().addParameter(index);
- parameter.initialize(parameterAnnotation);
- this.fireItemAdded(GenericGenerator.PARAMETERS_LIST, index, parameter);
- return parameter;
+ public int getParametersSize() {
+ return this.parameters.size();
}
- protected void addParameter(int index, JavaParameter parameter) {
- addItemToList(index, parameter, this.parameters, GenericGenerator.PARAMETERS_LIST);
+ public JavaParameter addParameter() {
+ return this.addParameter(this.parameters.size());
}
- protected void addParameter(JavaParameter parameter) {
- addParameter(this.parameters.size(), parameter);
+ public JavaParameter addParameter(int index) {
+ ParameterAnnotation annotation = this.generatorAnnotation.addParameter(index);
+ return this.addParameter_(index, annotation);
}
public void removeParameter(Parameter parameter) {
- removeParameter(this.parameters.indexOf(parameter));
+ this.removeParameter(this.parameters.indexOf(parameter));
}
public void removeParameter(int index) {
- JavaParameter removedParameter = this.parameters.remove(index);
- this.getGeneratorAnnotation().removeParameter(index);
- fireItemRemoved(GenericGenerator.PARAMETERS_LIST, index, removedParameter);
+ this.generatorAnnotation.removeParameter(index);
+ this.removeParameter_(index);
}
- protected void removeParameter_(JavaParameter parameter) {
- removeItemFromList(parameter, this.parameters, GenericGenerator.PARAMETERS_LIST);
+ protected void removeParameter_(int index) {
+ this.removeItemFromList(index, this.parameters, PARAMETERS_LIST);
}
public void moveParameter(int targetIndex, int sourceIndex) {
- CollectionTools.move(this.parameters, targetIndex, sourceIndex);
- this.getGeneratorAnnotation().moveParameter(targetIndex, sourceIndex);
- fireItemMoved(GenericGenerator.PARAMETERS_LIST, targetIndex, sourceIndex);
+ this.generatorAnnotation.moveParameter(targetIndex, sourceIndex);
+ this.moveItemInList(targetIndex, sourceIndex, this.parameters, PARAMETERS_LIST);
}
-
- public ListIterable<JavaParameter> getParameters() {
- return new LiveCloneListIterable<JavaParameter>(this.parameters);
+
+ protected void initializeParameters() {
+ for (Iterator<ParameterAnnotation> stream =
this.generatorAnnotation.parameters(); stream.hasNext(); ) {
+ this.parameters.add(this.buildParameter(stream.next()));
+ }
}
- public ListIterator<JavaParameter> parameters() {
- return new CloneListIterator<JavaParameter>(this.parameters);
+ protected JavaParameter buildParameter(ParameterAnnotation parameterAnnotation) {
+ return this.getJpaFactory().buildJavaParameter(this, parameterAnnotation);
}
- public int parametersSize() {
- return this.parameters.size();
+ protected void syncParameters() {
+ ContextContainerTools.synchronizeWithResourceModel(this.parameterContainerAdapter);
}
- protected void initializeParameters() {
- ListIterator<ParameterAnnotation> resourceParameters =
this.generatorAnnotation.parameters();
-
- while(resourceParameters.hasNext()) {
- this.parameters.add(createParameter(resourceParameters.next()));
- }
+ protected Iterable<ParameterAnnotation> getParameterAnnotations() {
+ return CollectionTools.iterable(this.generatorAnnotation.parameters());
}
- protected void updateParameters() {
- ListIterator<JavaParameter> contextParameters = parameters();
- ListIterator<ParameterAnnotation> resourceParameters =
this.generatorAnnotation.parameters();
-
- while (contextParameters.hasNext()) {
- JavaParameter parameter = contextParameters.next();
- if (resourceParameters.hasNext()) {
- parameter.update(resourceParameters.next());
- }
- else {
- removeParameter_(parameter);
- }
- }
-
- while (resourceParameters.hasNext()) {
- addParameter(createParameter(resourceParameters.next()));
- }
+ protected void moveParameter_(int index, JavaParameter parameter) {
+ this.moveItemInList(index, parameter, this.parameters, PARAMETERS_LIST);
}
- protected JavaParameter createParameter(ParameterAnnotation resourceParameter) {
- JavaParameter parameter = getJpaFactory().buildJavaParameter(this);
- parameter.initialize(resourceParameter);
+ protected JavaParameter addParameter_(int index, ParameterAnnotation
parameterAnnotation) {
+ JavaParameter parameter = this.buildParameter(parameterAnnotation);
+ this.addItemToList(index, parameter, this.parameters, PARAMETERS_LIST);
return parameter;
}
+ protected void removeParameter_(JavaParameter parameter) {
+ this.removeParameter_(this.parameters.indexOf(parameter));
+ }
+
+ /**
+ * parameter container adapter
+ */
+ protected class ParameterContainerAdapter
+ implements ContextContainerTools.Adapter<JavaParameter, ParameterAnnotation>
+ {
+ public Iterable<JavaParameter> getContextElements() {
+ return JavaGenericGeneratorImpl.this.getParameters();
+ }
+ public Iterable<ParameterAnnotation> getResourceElements() {
+ return JavaGenericGeneratorImpl.this.getParameterAnnotations();
+ }
+ public ParameterAnnotation getResourceElement(JavaParameter contextElement) {
+ return contextElement.getParameterAnnotation();
+ }
+ public void moveContextElement(int index, JavaParameter element) {
+ JavaGenericGeneratorImpl.this.moveParameter_(index, element);
+ }
+ public void addContextElement(int index, ParameterAnnotation resourceElement) {
+ JavaGenericGeneratorImpl.this.addParameter_(index, resourceElement);
+ }
+ public void removeContextElement(JavaParameter element) {
+ JavaGenericGeneratorImpl.this.removeParameter_(element);
+ }
+ }
+
@Override
public int buildDefaultInitialValue() {
return GenericGenerator.DEFAULT_INITIAL_VALUE;
@@ -299,5 +297,5 @@
private Iterable<String> getCandidateNames(Filter<String> filter) {
return new FilteringIterable<String>(generatorClasses, filter);
}
-
+
}
Modified:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/java/JavaParameter.java
===================================================================
---
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/java/JavaParameter.java 2011-08-16
08:06:34 UTC (rev 33961)
+++
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/java/JavaParameter.java 2011-08-16
08:34:46 UTC (rev 33962)
@@ -20,12 +20,6 @@
*/
public interface JavaParameter extends Parameter, JavaJpaContextNode {
- void initialize(ParameterAnnotation parameterResource);
+ ParameterAnnotation getParameterAnnotation();
- /**
- * Update the JavaParameter context model object to match the ParameterAnnotation
- * resource model object. see {@link org.eclipse.jpt.jpa.core.JpaProject#update()}
- */
- void update(ParameterAnnotation parameterResource);
-
}
Modified:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/java/JavaTypeDef.java
===================================================================
---
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/java/JavaTypeDef.java 2011-08-16
08:06:34 UTC (rev 33961)
+++
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/java/JavaTypeDef.java 2011-08-16
08:34:46 UTC (rev 33962)
@@ -10,24 +10,23 @@
******************************************************************************/
package org.jboss.tools.hibernate.jpt.core.internal.context.java;
-import java.util.ListIterator;
-
import org.eclipse.jdt.core.dom.CompilationUnit;
import org.eclipse.jpt.common.core.utility.TextRange;
import org.eclipse.jpt.jpa.core.context.java.JavaJpaContextNode;
-import org.eclipse.jpt.jpa.core.resource.java.NamedNativeQueryAnnotation;
-import org.jboss.tools.hibernate.jpt.core.internal.context.Parameter;
+import org.jboss.tools.hibernate.jpt.core.internal.context.ParametrizedElement;
import org.jboss.tools.hibernate.jpt.core.internal.resource.java.TypeDefAnnotation;
/**
* @author Dmitry Geraskov
*
*/
-public interface JavaTypeDef extends JavaJpaContextNode {
+public interface JavaTypeDef extends JavaJpaContextNode, ParametrizedElement {
+ String USER_TYPE_INTERFACE = "org.hibernate.usertype.UserType";
+
String getName();
void setName(String name);
- String TYPE_DEF_NAME = "name"; //$NON-NLS-1$
+ String NAME_PROPERTY = "name"; //$NON-NLS-1$
// **************** defaultForType class **************************************
@@ -43,40 +42,9 @@
void setTypeClass(String value);
String TYPE_CLASS_PROPERTY = "specifiedTypeClass"; //$NON-NLS-1$
- //************************ parameters ***********************
-
- String PARAMETERS_LIST = "parameters"; //$NON-NLS-1$
-
- /**
- * Return a list iterator of the parameters. This will not be null.
- */
- <T extends Parameter> ListIterator<T> parameters();
-
- /**
- * Return the number of parameters.
- */
- int parametersSize();
-
- /**
- * Add a parameter to the generator and return the object representing it.
- */
- Parameter addParameter(int index);
-
- /**
- * Remove the parameter from the generator.
- */
- void removeParameter(int index);
-
- /**
- * Remove the parameter at the index from the query.
- */
- void removeParameter(Parameter queryParameter);
-
- /**
- * Move the parameter from the source index to the target index.
- */
- void moveParameter(int targetIndex, int sourceIndex);
-
+ char getTypeClassEnclosingTypeSeparator();
+
+
// **************** validation *********************************************
TextRange getNameTextRange(CompilationUnit astRoot);
Modified:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/java/JavaTypeDefImpl.java
===================================================================
---
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/java/JavaTypeDefImpl.java 2011-08-16
08:06:34 UTC (rev 33961)
+++
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/java/JavaTypeDefImpl.java 2011-08-16
08:34:46 UTC (rev 33962)
@@ -10,6 +10,7 @@
******************************************************************************/
package org.jboss.tools.hibernate.jpt.core.internal.context.java;
+import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
import java.util.Vector;
@@ -24,6 +25,7 @@
import org.eclipse.jpt.common.utility.internal.iterables.LiveCloneListIterable;
import org.eclipse.jpt.common.utility.internal.iterators.CloneListIterator;
import org.eclipse.jpt.jpa.core.context.java.JavaJpaContextNode;
+import org.eclipse.jpt.jpa.core.internal.context.ContextContainerTools;
import org.eclipse.jpt.jpa.core.internal.context.java.AbstractJavaJpaContextNode;
import org.eclipse.wst.validation.internal.provisional.core.IMessage;
import org.eclipse.wst.validation.internal.provisional.core.IReporter;
@@ -31,6 +33,7 @@
import org.jboss.tools.hibernate.jpt.core.internal.context.HibernatePersistenceUnit;
import org.jboss.tools.hibernate.jpt.core.internal.context.Messages;
import org.jboss.tools.hibernate.jpt.core.internal.context.Parameter;
+import
org.jboss.tools.hibernate.jpt.core.internal.context.java.JavaTypeDefImpl.ParameterContainerAdapter;
import org.jboss.tools.hibernate.jpt.core.internal.resource.java.ParameterAnnotation;
import org.jboss.tools.hibernate.jpt.core.internal.resource.java.TypeDefAnnotation;
import
org.jboss.tools.hibernate.jpt.core.internal.validation.HibernateJpaValidationMessage;
@@ -50,6 +53,7 @@
protected String defaultForTypeClass;
protected final Vector<JavaParameter> parameters = new
Vector<JavaParameter>();
+ protected final ParameterContainerAdapter parameterContainerAdapter = new
ParameterContainerAdapter();
public JavaTypeDefImpl(JavaJpaContextNode parent, TypeDefAnnotation typeDefAnnotation)
{
super(parent);
@@ -76,7 +80,7 @@
this.setName_(this.typeDefAnnotation.getName());
this.setTypeClass_(typeDefAnnotation.getTypeClass());
this.setDefaultForTypeClass_(typeDefAnnotation.getDefaultForType());
- this.updateParameters();
+ this.syncParameters();
}
@Override
@@ -106,7 +110,7 @@
protected void setName_(String name) {
String old = this.name;
this.name = name;
- this.firePropertyChanged(TYPE_DEF_NAME, old, name);
+ this.firePropertyChanged(NAME_PROPERTY, old, name);
}
// ********** type class **********
@@ -155,87 +159,99 @@
}
//************************ parameters ***********************
-
+ //************************ parameters ***********************
public ListIterable<JavaParameter> getParameters() {
return new LiveCloneListIterable<JavaParameter>(this.parameters);
}
- public JavaParameter addParameter(int index) {
- JavaParameter parameter = getJpaFactory().buildJavaParameter(this);
- this.parameters.add(index, parameter);
- this.typeDefAnnotation.addParameter(index);
- this.fireItemAdded(JavaTypeDef.PARAMETERS_LIST, index, parameter);
- return parameter;
+ public int getParametersSize() {
+ return this.parameters.size();
}
-
- protected void addParameter(int index, JavaParameter parameter) {
- addItemToList(index, parameter, this.parameters, JavaTypeDef.PARAMETERS_LIST);
+
+ public JavaParameter addParameter() {
+ return this.addParameter(this.parameters.size());
}
-
- protected void addParameter(JavaParameter parameter) {
- addParameter(this.parameters.size(), parameter);
+
+ public JavaParameter addParameter(int index) {
+ ParameterAnnotation annotation = this.typeDefAnnotation.addParameter(index);
+ return this.addParameter_(index, annotation);
}
-
+
public void removeParameter(Parameter parameter) {
- removeParameter(this.parameters.indexOf(parameter));
+ this.removeParameter(this.parameters.indexOf(parameter));
}
-
+
public void removeParameter(int index) {
- JavaParameter removedParameter = this.parameters.remove(index);
this.typeDefAnnotation.removeParameter(index);
- fireItemRemoved(JavaTypeDef.PARAMETERS_LIST, index, removedParameter);
+ this.removeParameter_(index);
}
-
- protected void removeParameter_(JavaParameter parameter) {
- removeItemFromList(parameter, this.parameters, JavaTypeDef.PARAMETERS_LIST);
- }
+ protected void removeParameter_(int index) {
+ this.removeItemFromList(index, this.parameters, PARAMETERS_LIST);
+ }
+
public void moveParameter(int targetIndex, int sourceIndex) {
- CollectionTools.move(this.parameters, targetIndex, sourceIndex);
this.typeDefAnnotation.moveParameter(targetIndex, sourceIndex);
- fireItemMoved(JavaTypeDef.PARAMETERS_LIST, targetIndex, sourceIndex);
+ this.moveItemInList(targetIndex, sourceIndex, this.parameters, PARAMETERS_LIST);
}
- public ListIterator<JavaParameter> parameters() {
- return new CloneListIterator<JavaParameter>(this.parameters);
- }
-
- public int parametersSize() {
- return parameters.size();
- }
-
protected void initializeParameters() {
- ListIterator<ParameterAnnotation> resourceParameters =
this.typeDefAnnotation.parameters();
-
- while(resourceParameters.hasNext()) {
- this.parameters.add(createParameter(resourceParameters.next()));
+ for (Iterator<ParameterAnnotation> stream = this.typeDefAnnotation.parameters();
stream.hasNext(); ) {
+ this.parameters.add(this.buildParameter(stream.next()));
}
}
-
- protected void updateParameters() {
- ListIterator<JavaParameter> contextParameters = parameters();
- ListIterator<ParameterAnnotation> resourceParameters =
this.typeDefAnnotation.parameters();
-
- while (contextParameters.hasNext()) {
- JavaParameter parameter = contextParameters.next();
- if (resourceParameters.hasNext()) {
- parameter.update(resourceParameters.next());
- }
- else {
- removeParameter_(parameter);
- }
- }
-
- while (resourceParameters.hasNext()) {
- addParameter(createParameter(resourceParameters.next()));
- }
+
+ protected JavaParameter buildParameter(ParameterAnnotation parameterAnnotation) {
+ return this.getJpaFactory().buildJavaParameter(this, parameterAnnotation);
}
- protected JavaParameter createParameter(ParameterAnnotation resourceParameter) {
- JavaParameter parameter = getJpaFactory().buildJavaParameter(this);
- parameter.initialize(resourceParameter);
+ protected void syncParameters() {
+ ContextContainerTools.synchronizeWithResourceModel(this.parameterContainerAdapter);
+ }
+
+ protected Iterable<ParameterAnnotation> getParameterAnnotations() {
+ return CollectionTools.iterable(this.typeDefAnnotation.parameters());
+ }
+
+ protected void moveParameter_(int index, JavaParameter parameter) {
+ this.moveItemInList(index, parameter, this.parameters, PARAMETERS_LIST);
+ }
+
+ protected JavaParameter addParameter_(int index, ParameterAnnotation
parameterAnnotation) {
+ JavaParameter parameter = this.buildParameter(parameterAnnotation);
+ this.addItemToList(index, parameter, this.parameters, PARAMETERS_LIST);
return parameter;
}
+
+ protected void removeParameter_(JavaParameter parameter) {
+ this.removeParameter_(this.parameters.indexOf(parameter));
+ }
+
+ /**
+ * parameter container adapter
+ */
+ protected class ParameterContainerAdapter
+ implements ContextContainerTools.Adapter<JavaParameter, ParameterAnnotation>
+ {
+ public Iterable<JavaParameter> getContextElements() {
+ return JavaTypeDefImpl.this.getParameters();
+ }
+ public Iterable<ParameterAnnotation> getResourceElements() {
+ return JavaTypeDefImpl.this.getParameterAnnotations();
+ }
+ public ParameterAnnotation getResourceElement(JavaParameter contextElement) {
+ return contextElement.getParameterAnnotation();
+ }
+ public void moveContextElement(int index, JavaParameter element) {
+ JavaTypeDefImpl.this.moveParameter_(index, element);
+ }
+ public void addContextElement(int index, ParameterAnnotation resourceElement) {
+ JavaTypeDefImpl.this.addParameter_(index, resourceElement);
+ }
+ public void removeContextElement(JavaParameter element) {
+ JavaTypeDefImpl.this.removeParameter_(element);
+ }
+ }
// ********** text ranges **********
@@ -271,22 +287,25 @@
);
}
- IType lwType = null;
- try {
- lwType = getJpaProject().getJavaProject().findType(typeClass);
- if (lwType == null || !lwType.isClass()){
- messages.add(HibernateJpaValidationMessage.buildMessage(
- IMessage.HIGH_SEVERITY,TYPE_CLASS_NOT_FOUND, new String[]{typeClass}, this,
this.getTypeClassTextRange(astRoot)));
- } else {
- if (!JpaUtil.isTypeImplementsInterface(getJpaProject().getJavaProject(), lwType,
"org.hibernate.usertype.UserType")){//$NON-NLS-1$
+ if (!StringTools.stringIsEmpty(this.typeClass)){
+ IType lwType = null;
+ try {
+ lwType = getJpaProject().getJavaProject().findType(typeClass);
+ if (lwType == null || !lwType.isClass()){
messages.add(HibernateJpaValidationMessage.buildMessage(
- IMessage.HIGH_SEVERITY,USER_TYPE_INTERFACE, new String[]{typeClass}, this,
this.getTypeClassTextRange(astRoot)));
- }
+ IMessage.HIGH_SEVERITY,TYPE_CLASS_NOT_FOUND, new String[]{typeClass}, this,
this.getTypeClassTextRange(astRoot)));
+ } else {
+ if (!JpaUtil.isTypeImplementsInterface(getJpaProject().getJavaProject(), lwType,
USER_TYPE_INTERFACE)){
+ messages.add(HibernateJpaValidationMessage.buildMessage(
+ IMessage.HIGH_SEVERITY,IMPLEMENT_USER_TYPE_INTERFACE, new String[]{typeClass},
this, this.getTypeClassTextRange(astRoot)));
+ }
+ }
+ } catch (JavaModelException e) {
+ // just ignore it!
}
- } catch (JavaModelException e) {
- // just ignore it!
}
+
for (ListIterator<JavaTypeDef> stream = this.getPersistenceUnit().typeDefs();
stream.hasNext(); ) {
JavaTypeDef typeDef = stream.next();
if (this != typeDef){
@@ -298,7 +317,6 @@
new String[]{this.name},
this,
this.getNameTextRange(astRoot))
-
);
break;
}
Modified:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/java/TypeImpl.java
===================================================================
---
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/java/TypeImpl.java 2011-08-16
08:06:34 UTC (rev 33961)
+++
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/java/TypeImpl.java 2011-08-16
08:34:46 UTC (rev 33962)
@@ -109,7 +109,6 @@
if (result != null) {
return result;
}
- System.out.println(getPersistenceUnit().uniqueTypeDefNames());
TextRange typeRange = getTypeTextRange(astRoot);
if (typeRange != null && typeRange.touches(pos)) {
return getJavaCandidateNames(filter).iterator();
@@ -149,9 +148,9 @@
messages.add(HibernateJpaValidationMessage.buildMessage(
IMessage.HIGH_SEVERITY,TYPE_CLASS_NOT_FOUND, new String[]{type}, this, range));
} else {
- if (!JpaUtil.isTypeImplementsInterface(getJpaProject().getJavaProject(), lwType,
"org.hibernate.usertype.UserType")){//$NON-NLS-1$
+ if (!JpaUtil.isTypeImplementsInterface(getJpaProject().getJavaProject(), lwType,
JavaTypeDef.USER_TYPE_INTERFACE)){
messages.add(HibernateJpaValidationMessage.buildMessage(
- IMessage.HIGH_SEVERITY,USER_TYPE_INTERFACE, new String[]{type}, this, range));
+ IMessage.HIGH_SEVERITY,IMPLEMENT_USER_TYPE_INTERFACE, new String[]{type}, this,
range));
}
}
} catch (JavaModelException e) {
Modified:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/resource/java/TypeDefAnnotationImpl.java
===================================================================
---
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/resource/java/TypeDefAnnotationImpl.java 2011-08-16
08:06:34 UTC (rev 33961)
+++
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/resource/java/TypeDefAnnotationImpl.java 2011-08-16
08:34:46 UTC (rev 33962)
@@ -17,14 +17,13 @@
import org.eclipse.jdt.core.IAnnotation;
import org.eclipse.jdt.core.dom.CompilationUnit;
import org.eclipse.jpt.common.core.internal.utility.jdt.ASTTools;
-import
org.eclipse.jpt.common.core.internal.utility.jdt.AnnotatedElementAnnotationElementAdapter;
import
org.eclipse.jpt.common.core.internal.utility.jdt.ConversionDeclarationAnnotationElementAdapter;
import org.eclipse.jpt.common.core.internal.utility.jdt.ElementAnnotationAdapter;
import org.eclipse.jpt.common.core.internal.utility.jdt.ElementIndexedAnnotationAdapter;
import
org.eclipse.jpt.common.core.internal.utility.jdt.NestedIndexedDeclarationAnnotationAdapter;
-import
org.eclipse.jpt.common.core.internal.utility.jdt.ShortCircuitAnnotationElementAdapter;
import
org.eclipse.jpt.common.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter;
import
org.eclipse.jpt.common.core.internal.utility.jdt.SimpleTypeStringExpressionConverter;
+import org.eclipse.jpt.common.core.internal.utility.jdt.TypeStringExpressionConverter;
import org.eclipse.jpt.common.core.utility.TextRange;
import org.eclipse.jpt.common.core.utility.jdt.AnnotatedElement;
import org.eclipse.jpt.common.core.utility.jdt.AnnotationAdapter;
@@ -34,7 +33,6 @@
import org.eclipse.jpt.common.core.utility.jdt.ExpressionConverter;
import org.eclipse.jpt.common.core.utility.jdt.IndexedAnnotationAdapter;
import org.eclipse.jpt.common.core.utility.jdt.IndexedDeclarationAnnotationAdapter;
-import org.eclipse.jpt.common.core.utility.jdt.AnnotatedElement;
import org.eclipse.jpt.common.utility.internal.CollectionTools;
import org.eclipse.jpt.common.utility.internal.StringTools;
import org.eclipse.jpt.common.utility.internal.iterators.CloneListIterator;
@@ -418,7 +416,7 @@
private DeclarationAnnotationElementAdapter<String>
buildTypeClassDeclarationAdapter() {
return new ConversionDeclarationAnnotationElementAdapter<String>(daa,
Hibernate.TYPE_DEF__TYPE_CLASS,
- SimpleTypeStringExpressionConverter.instance());
+ SimpleTypeStringExpressionConverter.instance());//primitives are not allowed!
}
private AnnotationElementAdapter<String> buildTypeClassAdapter() {
@@ -428,16 +426,13 @@
private DeclarationAnnotationElementAdapter<String>
buildDefForTypeDeclarationAdapter() {
return new ConversionDeclarationAnnotationElementAdapter<String>(daa,
Hibernate.TYPE_DEF__DEF_FOR_TYPE,
- SimpleTypeStringExpressionConverter.instance());
+ TypeStringExpressionConverter.instance());//primitives are allowed!
}
private AnnotationElementAdapter<String> buildDefForTypeAdapter() {
return this.buildStringElementAdapter(this.defForTypeDeclarationAdapter);
}
- private static DeclarationAnnotationElementAdapter<String>
buildTypeClassAdapter(DeclarationAnnotationAdapter annotationAdapter, String elementName)
{
- return buildAnnotationElementAdapter(annotationAdapter, elementName,
SimpleTypeStringExpressionConverter.instance());
- }
private static DeclarationAnnotationElementAdapter<String>
buildAnnotationElementAdapter(DeclarationAnnotationAdapter annotationAdapter, String
elementName, ExpressionConverter<String> converter) {
return new
ConversionDeclarationAnnotationElementAdapter<String>(annotationAdapter,
elementName, converter);
Modified:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/src/org/jboss/tools/hibernate/jpt/ui/internal/details/java/HibernateJavaEntityComposite.java
===================================================================
---
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/src/org/jboss/tools/hibernate/jpt/ui/internal/details/java/HibernateJavaEntityComposite.java 2011-08-16
08:06:34 UTC (rev 33961)
+++
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/src/org/jboss/tools/hibernate/jpt/ui/internal/details/java/HibernateJavaEntityComposite.java 2011-08-16
08:34:46 UTC (rev 33962)
@@ -23,9 +23,11 @@
import org.jboss.tools.hibernate.jpt.core.internal.context.HibernateGeneratorContainer;
import org.jboss.tools.hibernate.jpt.core.internal.context.java.HibernateJavaEntity;
import
org.jboss.tools.hibernate.jpt.core.internal.context.java.HibernateJavaQueryContainer;
+import
org.jboss.tools.hibernate.jpt.core.internal.context.java.HibernateJavaTypeDefContainer;
import org.jboss.tools.hibernate.jpt.ui.internal.details.HibernateTableComposite;
import
org.jboss.tools.hibernate.jpt.ui.internal.mapping.details.HibernateGenerationComposite;
import
org.jboss.tools.hibernate.jpt.ui.internal.mapping.details.HibernateQueriesComposite;
+import org.jboss.tools.hibernate.jpt.ui.internal.mapping.details.TypeDefsComposite;
/**
* @author Dmitry Geraskov
@@ -43,7 +45,34 @@
super(subjectHolder, parent, widgetFactory);
}
+ @Override
+ protected void initializeLayout(Composite container) {
+ super.initializeLayout(container);
+ this.initializeTypeDefCollapsibleSection(container);
+ }
+ protected void initializeTypeDefCollapsibleSection(Composite container) {
+ container = addCollapsibleSection(
+ container,
+ "Type Definitions");
+ this.initializeTypeDefsSection(container, buildTypeDefContainerHolder());
+ }
+
+ protected void initializeTypeDefsSection(
+ Composite container,
+ PropertyValueModel<HibernateJavaTypeDefContainer> typeDefContainerHolder) {
+ new TypeDefsComposite(this, typeDefContainerHolder, container);
+ }
+
+ private PropertyValueModel<HibernateJavaTypeDefContainer>
buildTypeDefContainerHolder() {
+ return new PropertyAspectAdapter<HibernateJavaEntity,
HibernateJavaTypeDefContainer>(getSubjectHolder()) {
+ @Override
+ protected HibernateJavaTypeDefContainer buildValue_() {
+ return this.subject.getTypeDefContainer();
+ }
+ };
+ }
+
@SuppressWarnings("unchecked")
@Override
protected void initializeQueriesSection(Composite container,
PropertyValueModel<QueryContainer> queryContainerHolder) {
Modified:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/src/org/jboss/tools/hibernate/jpt/ui/internal/mapping/details/GenericGeneratorComposite.java
===================================================================
---
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/src/org/jboss/tools/hibernate/jpt/ui/internal/mapping/details/GenericGeneratorComposite.java 2011-08-16
08:06:34 UTC (rev 33961)
+++
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/src/org/jboss/tools/hibernate/jpt/ui/internal/mapping/details/GenericGeneratorComposite.java 2011-08-16
08:34:46 UTC (rev 33962)
@@ -58,7 +58,7 @@
StringConverter.Default.<String>instance(),
null);//TODO add help
- new ParametersComposite(this, container, getSubjectHolder());
+ new ParametersComposite(this, container, getSubjectHolder());
}
protected WritablePropertyValueModel<String> buildStrategyHolder() {
Modified:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/src/org/jboss/tools/hibernate/jpt/ui/internal/mapping/details/HibernateUIMappingMessages.java
===================================================================
---
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/src/org/jboss/tools/hibernate/jpt/ui/internal/mapping/details/HibernateUIMappingMessages.java 2011-08-16
08:06:34 UTC (rev 33961)
+++
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/src/org/jboss/tools/hibernate/jpt/ui/internal/mapping/details/HibernateUIMappingMessages.java 2011-08-16
08:34:46 UTC (rev 33962)
@@ -50,7 +50,29 @@
public static String ParametersComposite_nameColumn;
public static String ParametersComposite_valueColumn;
public static String TypeComposite_type;
+ public static String TypeDefPropertyComposite_DefaultForType;
+
+ public static String TypeDefPropertyComposite_Name;
+
+
+ public static String TypeDefPropertyComposite_TypeClass;
+
+
+ public static String TypeDefsComposite_Description;
+
+
+ public static String TypeDefsComposite_DescriptionTitle;
+
+
+ public static String TypeDefsComposite_dialogTitle;
+
+
+ public static String TypeDefsComposite_displayString;
+
+
+ public static String TypeDefsComposite_Name;
+
private HibernateUIMappingMessages() {}
static {
Modified:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/src/org/jboss/tools/hibernate/jpt/ui/internal/mapping/details/ParametersComposite.java
===================================================================
---
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/src/org/jboss/tools/hibernate/jpt/ui/internal/mapping/details/ParametersComposite.java 2011-08-16
08:06:34 UTC (rev 33961)
+++
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/src/org/jboss/tools/hibernate/jpt/ui/internal/mapping/details/ParametersComposite.java 2011-08-16
08:34:46 UTC (rev 33962)
@@ -37,17 +37,15 @@
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableItem;
-import org.jboss.tools.hibernate.jpt.core.internal.context.GenericGenerator;
import org.jboss.tools.hibernate.jpt.core.internal.context.Parameter;
+import org.jboss.tools.hibernate.jpt.core.internal.context.ParametrizedElement;
/**
* @author Dmitry Geraskov
*
*/
-public class ParametersComposite extends Pane<GenericGenerator> {
+public class ParametersComposite extends Pane<ParametrizedElement> {
- //private WritablePropertyValueModel<GenericGenerator> generatorHolder;
-
private WritablePropertyValueModel<Parameter> parameterHolder;
/**
@@ -57,17 +55,17 @@
* @param parent The parent container
*/
public ParametersComposite(Pane<?> parentPane,
- Composite container, PropertyValueModel<GenericGenerator> generatorHolder)
{
+ Composite container, PropertyValueModel<? extends ParametrizedElement>
generatorHolder) {
super(parentPane, generatorHolder, container, false);
}
private PropertyValueModel<Boolean> buildPaneEnableHolder() {
- return new TransformationPropertyValueModel<GenericGenerator,
Boolean>(getSubjectHolder()) {
+ return new TransformationPropertyValueModel<ParametrizedElement,
Boolean>(getSubjectHolder()) {
@Override
- protected Boolean transform(GenericGenerator generator) {
- return (generator != null);
+ protected Boolean transform(ParametrizedElement element) {
+ return (element != null);
}
};
}
@@ -76,7 +74,7 @@
return new AddRemoveTablePane.AbstractAdapter() {
@Override
public void addNewItem(ObjectListSelectionModel listSelectionModel) {
- Parameter parameter = getSubject().addParameter(getSubject().parametersSize());
+ Parameter parameter = getSubject().addParameter(getSubject().getParametersSize());
ParametersComposite.this.parameterHolder.setValue(parameter);
}
@@ -98,21 +96,21 @@
}
private ListValueModel<Parameter> buildParameterListHolder() {
- return new ListAspectAdapter<GenericGenerator, Parameter>(
+ return new ListAspectAdapter<ParametrizedElement, Parameter>(
getSubjectHolder(),
- GenericGenerator.PARAMETERS_LIST) {
+ ParametrizedElement.PARAMETERS_LIST) {
@Override
protected ListIterator<Parameter> listIterator_() {
if (this.subject == null ){
return EmptyListIterator.instance();
} else {
- return this.subject.parameters();
+ return this.subject.getParameters().iterator();
}
}
@Override
protected int size_() {
- return this.subject == null ? 0 : this.subject.parametersSize();
+ return this.subject == null ? 0 : this.subject.getParametersSize();
}
};
}
@@ -234,7 +232,7 @@
}
}
- private class TablePane extends AddRemoveTablePane<GenericGenerator> {
+ private class TablePane extends AddRemoveTablePane<ParametrizedElement> {
private TablePane(Composite parent) {
super(ParametersComposite.this,
Added:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/src/org/jboss/tools/hibernate/jpt/ui/internal/mapping/details/TypeDefPropertyComposite.java
===================================================================
---
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/src/org/jboss/tools/hibernate/jpt/ui/internal/mapping/details/TypeDefPropertyComposite.java
(rev 0)
+++
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/src/org/jboss/tools/hibernate/jpt/ui/internal/mapping/details/TypeDefPropertyComposite.java 2011-08-16
08:34:46 UTC (rev 33962)
@@ -0,0 +1,179 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is 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
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.hibernate.jpt.ui.internal.mapping.details;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jpt.common.ui.internal.widgets.ClassChooserPane;
+import org.eclipse.jpt.common.ui.internal.widgets.Pane;
+import org.eclipse.jpt.common.utility.internal.StringTools;
+import org.eclipse.jpt.common.utility.internal.model.value.PropertyAspectAdapter;
+import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
+import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
+import org.eclipse.swt.widgets.Composite;
+import org.jboss.tools.hibernate.jpt.core.internal.context.java.JavaTypeDef;
+
+/**
+ * @author Dmitry Geraskov
+ *
+ */
+public class TypeDefPropertyComposite<T extends JavaTypeDef> extends Pane<T>
{
+
+ public TypeDefPropertyComposite(Pane<?> parentPane,
+ PropertyValueModel<T> subjectHolder,
+ Composite parent) {
+ super(parentPane, subjectHolder, parent);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected void initializeLayout(Composite container) {
+
+ // Name widgets
+ addLabeledText(
+ container,
+ HibernateUIMappingMessages.TypeDefPropertyComposite_Name,
+ buildNameTextHolder());
+
+ addTypeClassChooser(container);
+ addDefForTypeClassChooser2(container);
+
+ new ParametersComposite(this, container, getSubjectHolder());
+ }
+
+ protected WritablePropertyValueModel<String> buildNameTextHolder() {
+ return new PropertyAspectAdapter<JavaTypeDef, String>(
+ getSubjectHolder(), JavaTypeDef.NAME_PROPERTY) {
+ @Override
+ protected String buildValue_() {
+ return this.subject.getName();
+ }
+
+ @Override
+ protected void setValue_(String value) {
+ if (value.length() == 0) {
+ value = null;
+ }
+ this.subject.setName(value);
+ }
+ };
+ }
+
+ private ClassChooserPane<JavaTypeDef> addTypeClassChooser(Composite container) {
+
+ return new ClassChooserPane<JavaTypeDef>(this, container) {
+
+ private List<String> superInterfaces =
Collections.singletonList(JavaTypeDef.USER_TYPE_INTERFACE);
+
+ @Override
+ protected WritablePropertyValueModel<String> buildTextHolder() {
+ return new PropertyAspectAdapter<JavaTypeDef, String>(getSubjectHolder(),
JavaTypeDef.TYPE_CLASS_PROPERTY) {
+ @Override
+ protected String buildValue_() {
+ return this.subject.getTypeClass();
+ }
+
+ @Override
+ protected void setValue_(String value) {
+ if (StringTools.stringIsEmpty(value)){
+ value = null;
+ }
+ this.subject.setTypeClass(value);
+ }
+ };
+ }
+
+ @Override
+ protected String getClassName() {
+ return getSubject().getTypeClass();
+ }
+
+ @Override
+ protected List<String> getSuperInterfaceNames() {
+ return superInterfaces;
+ }
+
+ @Override
+ protected String getLabelText() {
+ return HibernateUIMappingMessages.TypeDefPropertyComposite_TypeClass;
+ }
+
+ @Override
+ protected IJavaProject getJavaProject() {
+ return getSubject().getJpaProject().getJavaProject();
+ }
+
+ @Override
+ protected void setClassName(String className) {
+ getSubject().setTypeClass(className);
+ }
+
+ @Override
+ protected char getEnclosingTypeSeparator() {
+ return getSubject().getTypeClassEnclosingTypeSeparator();
+ }
+ };
+ }
+
+ private ClassChooserPane<JavaTypeDef> addDefForTypeClassChooser2(Composite
container) {
+
+ return new ClassChooserPane<JavaTypeDef>(this, container) {
+
+ @Override
+ protected WritablePropertyValueModel<String> buildTextHolder() {
+ return new PropertyAspectAdapter<JavaTypeDef, String>(getSubjectHolder(),
JavaTypeDef.DEF_FOR_TYPE_PROPERTY) {
+ @Override
+ protected String buildValue_() {
+ return this.subject.getDefaultForTypeClass();
+ }
+
+ @Override
+ protected void setValue_(String value) {
+ if (StringTools.stringIsEmpty(value)){
+ value = null;
+ }
+ this.subject.setDefaultForTypeClass(value);
+ }
+ };
+ }
+
+ @Override
+ protected String getClassName() {
+ return getSubject().getDefaultForTypeClass();
+ }
+
+ @Override
+ protected String getLabelText() {
+ return HibernateUIMappingMessages.TypeDefPropertyComposite_DefaultForType;
+ }
+
+ @Override
+ protected IJavaProject getJavaProject() {
+ return getSubject().getJpaProject().getJavaProject();
+ }
+
+ @Override
+ protected void setClassName(String className) {
+ getSubject().setDefaultForTypeClass(className);
+ }
+
+ @Override
+ protected char getEnclosingTypeSeparator() {
+ return getSubject().getTypeClassEnclosingTypeSeparator();
+ }
+ };
+ }
+
+}
Added:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/src/org/jboss/tools/hibernate/jpt/ui/internal/mapping/details/TypeDefsComposite.java
===================================================================
---
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/src/org/jboss/tools/hibernate/jpt/ui/internal/mapping/details/TypeDefsComposite.java
(rev 0)
+++
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/src/org/jboss/tools/hibernate/jpt/ui/internal/mapping/details/TypeDefsComposite.java 2011-08-16
08:34:46 UTC (rev 33962)
@@ -0,0 +1,222 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is 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
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.hibernate.jpt.ui.internal.mapping.details;
+
+import java.util.ListIterator;
+
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.window.Window;
+import org.eclipse.jpt.common.ui.internal.util.ControlSwitcher;
+import org.eclipse.jpt.common.ui.internal.widgets.AddRemoveListPane;
+import org.eclipse.jpt.common.ui.internal.widgets.AddRemovePane.Adapter;
+import org.eclipse.jpt.common.ui.internal.widgets.NewNameDialog;
+import org.eclipse.jpt.common.ui.internal.widgets.NewNameDialogBuilder;
+import org.eclipse.jpt.common.ui.internal.widgets.Pane;
+import org.eclipse.jpt.common.utility.internal.CollectionTools;
+import org.eclipse.jpt.common.utility.internal.Transformer;
+import org.eclipse.jpt.common.utility.internal.iterators.ArrayIterator;
+import
org.eclipse.jpt.common.utility.internal.model.value.ItemPropertyListValueModelAdapter;
+import org.eclipse.jpt.common.utility.internal.model.value.ListAspectAdapter;
+import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel;
+import
org.eclipse.jpt.common.utility.internal.model.value.swing.ObjectListSelectionModel;
+import org.eclipse.jpt.common.utility.model.value.ListValueModel;
+import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
+import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.ui.part.PageBook;
+import org.jboss.tools.hibernate.jpt.core.internal.context.HibernatePersistenceUnit;
+import
org.jboss.tools.hibernate.jpt.core.internal.context.java.HibernateJavaTypeDefContainer;
+import org.jboss.tools.hibernate.jpt.core.internal.context.java.JavaTypeDef;
+
+/**
+ * @author Dmitry Geraskov
+ *
+ */
+public class TypeDefsComposite extends Pane<HibernateJavaTypeDefContainer> {
+
+ private AddRemoveListPane<HibernateJavaTypeDefContainer> listPane;
+ Pane<? extends JavaTypeDef> typeDefPane;
+ private WritablePropertyValueModel<JavaTypeDef> typeDefHolder;
+ private NewNameDialogBuilder dialogBuilder = null;
+
+ public TypeDefsComposite(
+ Pane<?> parentPane,
+ PropertyValueModel<? extends HibernateJavaTypeDefContainer> subjectHolder,
+ Composite parent) {
+ super(parentPane, subjectHolder, parent, false);
+ dialogBuilder = new NewNameDialogBuilder(getShell());
+ dialogBuilder.setDialogTitle(HibernateUIMappingMessages.TypeDefsComposite_dialogTitle);
+ dialogBuilder.setDescriptionTitle(HibernateUIMappingMessages.TypeDefsComposite_DescriptionTitle);
+ dialogBuilder.setDescription(HibernateUIMappingMessages.TypeDefsComposite_Description);
+ dialogBuilder.setLabelText(HibernateUIMappingMessages.TypeDefsComposite_Name);
+ }
+
+ void addTypeDef() {
+ addTypeDefFromDialog(buildAddTypeDefDialog());
+ }
+
+ protected HibernatePersistenceUnit getPersistenceUnit(){
+ return (HibernatePersistenceUnit)this.getSubject().getPersistenceUnit();
+ }
+
+ protected NewNameDialog buildAddTypeDefDialog() {
+ dialogBuilder.setExistingNames(new
ArrayIterator<String>(getPersistenceUnit().uniqueTypeDefNames()));
+ return dialogBuilder.buildDialog();
+ }
+
+ protected void addTypeDefFromDialog(NewNameDialog dialog) {
+ if (dialog.open() != Window.OK) {
+ return;
+ }
+ JavaTypeDef typeDef = this.getSubject().addTypeDef();
+ typeDef.setName(dialog.getName());
+ this.getTypeDefHolder().setValue(typeDef);//so that it gets selected in the List for
the user to edit
+ }
+
+ private ListValueModel<JavaTypeDef> buildDisplayableTypeDefsListHolder() {
+ return new ItemPropertyListValueModelAdapter<JavaTypeDef>(
+ buildTypeDefsListHolder(),
+ JavaTypeDef.NAME_PROPERTY
+ );
+ }
+
+ private AddRemoveListPane<HibernateJavaTypeDefContainer> addListPane(Composite
container) {
+
+ return new AddRemoveListPane<HibernateJavaTypeDefContainer>(
+ this,
+ container,
+ buildTypeDefsAdapter(),
+ buildDisplayableTypeDefsListHolder(),
+ this.getTypeDefHolder(),
+ buildTypeDefsListLabelProvider()
+ );
+ }
+
+ private ListValueModel<JavaTypeDef> buildTypeDefsListHolder() {
+ return new ListAspectAdapter<HibernateJavaTypeDefContainer, JavaTypeDef>(
+ getSubjectHolder(),
+ HibernateJavaTypeDefContainer.TYPE_DEFS_LIST)
+ {
+ @Override
+ protected ListIterator<JavaTypeDef> listIterator_() {
+ return this.subject.typeDefs();
+ }
+
+ @Override
+ protected int size_() {
+ return this.subject.typeDefsSize();
+ }
+ };
+ }
+
+ private Transformer<JavaTypeDef, Control> buildPaneTransformer() {
+ return new Transformer<JavaTypeDef, Control>() {
+ public Control transform(JavaTypeDef typeDef) {
+
+ if (typeDef == null) {
+ return null;
+ }
+
+ return TypeDefsComposite.this.typeDefPane.getControl();
+ }
+ };
+ }
+
+ private Adapter buildTypeDefsAdapter() {
+
+ return new AddRemoveListPane.AbstractAdapter() {
+
+ public void addNewItem(ObjectListSelectionModel listSelectionModel) {
+ addTypeDef();
+ }
+
+ public void removeSelectedItems(ObjectListSelectionModel listSelectionModel) {
+ for (Object item : listSelectionModel.selectedValues()) {
+ if (item instanceof JavaTypeDef) {
+ getSubject().removeTypeDef((JavaTypeDef) item);
+ }
+ }
+ }
+ };
+ }
+
+
+ private ILabelProvider buildTypeDefsListLabelProvider() {
+ return new LabelProvider() {
+ @Override
+ public String getText(Object element) {
+ JavaTypeDef typeDef = (JavaTypeDef) element;
+ String name = typeDef.getName();
+
+ if (name == null) {
+ int index = CollectionTools.indexOf(getSubject().typeDefs(), typeDef);
+ name = NLS.bind(HibernateUIMappingMessages.TypeDefsComposite_displayString,
Integer.valueOf(index));
+ }
+
+ return name;
+ }
+ };
+ }
+
+ private WritablePropertyValueModel<JavaTypeDef> buildTypeDefHolder() {
+ return new SimplePropertyValueModel<JavaTypeDef>();
+ }
+
+ @Override
+ public void enableWidgets(boolean enabled) {
+ super.enableWidgets(enabled);
+ this.listPane.enableWidgets(enabled);
+ }
+
+ @Override
+ protected void initialize() {
+ super.initialize();
+ this.typeDefHolder = buildTypeDefHolder();
+ }
+
+ @Override
+ protected void initializeLayout(Composite container) {
+
+ // List pane
+ this.listPane = this.addListPane(container);
+
+ // Property pane
+ PageBook pageBook = new PageBook(container, SWT.NULL);
+ pageBook.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+
+ // Named JavaTypeDef property pane
+ this.typeDefPane = this.buildTypeDefPropertyComposite(pageBook);
+
+ installPaneSwitcher(pageBook);
+ }
+
+ protected Pane<? extends JavaTypeDef> buildTypeDefPropertyComposite(PageBook
pageBook) {
+ return new TypeDefPropertyComposite<JavaTypeDef>(
+ this,
+ this.getTypeDefHolder(),
+ pageBook
+ );
+ }
+
+ private void installPaneSwitcher(PageBook pageBook) {
+ new ControlSwitcher(this.getTypeDefHolder(), this.buildPaneTransformer(), pageBook);
+ }
+
+ protected WritablePropertyValueModel<JavaTypeDef> getTypeDefHolder() {
+ return typeDefHolder;
+ }
+
+}
Modified:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/src/org/jboss/tools/hibernate/jpt/ui/internal/mapping/details/messages.properties
===================================================================
---
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/src/org/jboss/tools/hibernate/jpt/ui/internal/mapping/details/messages.properties 2011-08-16
08:06:34 UTC (rev 33961)
+++
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/src/org/jboss/tools/hibernate/jpt/ui/internal/mapping/details/messages.properties 2011-08-16
08:34:46 UTC (rev 33962)
@@ -27,4 +27,12 @@
Index_section_index=Index
ParametersComposite_nameColumn=Name
ParametersComposite_valueColumn=Value
-TypeComposite_type=Type
\ No newline at end of file
+TypeComposite_type=Type
+TypeDefPropertyComposite_DefaultForType=Default For Type:
+TypeDefPropertyComposite_Name=Name:
+TypeDefPropertyComposite_TypeClass=Type Class:
+TypeDefsComposite_Description=Create a new Type Definition setting 'name'
+TypeDefsComposite_DescriptionTitle=Cerate New Type Definition
+TypeDefsComposite_dialogTitle=Add Type Definition
+TypeDefsComposite_displayString=<Name not set> {0}
+TypeDefsComposite_Name=Name: