Author: mdryakhlenkov
Date: 2007-06-27 12:05:30 -0400 (Wed, 27 Jun 2007)
New Revision: 2193
Modified:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.veditor/src/org/jboss/tools/hibernate/veditor/editors/model/OrmDiagram.java
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.veditor/src/org/jboss/tools/hibernate/veditor/editors/model/OrmShape.java
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.veditor/src/org/jboss/tools/hibernate/veditor/editors/parts/OrmShapeEditPart.java
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.veditor/src/org/jboss/tools/hibernate/veditor/editors/parts/ShapeEditPart.java
Log:
Modified:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.veditor/src/org/jboss/tools/hibernate/veditor/editors/model/OrmDiagram.java
===================================================================
---
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.veditor/src/org/jboss/tools/hibernate/veditor/editors/model/OrmDiagram.java 2007-06-27
13:26:38 UTC (rev 2192)
+++
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.veditor/src/org/jboss/tools/hibernate/veditor/editors/model/OrmDiagram.java 2007-06-27
16:05:30 UTC (rev 2193)
@@ -33,9 +33,11 @@
import org.hibernate.mapping.Map;
import org.hibernate.mapping.OneToMany;
import org.hibernate.mapping.OneToOne;
+import org.hibernate.mapping.PersistentClass;
import org.hibernate.mapping.Property;
import org.hibernate.mapping.RootClass;
import org.hibernate.mapping.SimpleValue;
+import org.hibernate.mapping.SingleTableSubclass;
import org.hibernate.mapping.Table;
import org.hibernate.mapping.Value;
import org.hibernate.type.EntityType;
@@ -162,11 +164,15 @@
// Property property = (Property)ormElement;
// elements.put(property.getPersistentClass().getEntityName() + "." +
property.getName(), ormShape);
elements.put(specialRootClass.getClassName(), ormShape);
+ } else if (ormElement instanceof SingleTableSubclass) {
+ ormShape = new OrmShape(ormElement);
+ shapes.add(ormShape);
+ elements.put(((SingleTableSubclass)ormElement).getEntityName(), ormShape);
}
return ormShape;
}
- private OrmShape getOrCreatePersistentClass(RootClass persistentClass, Table
componentClassDatabaseTable){
+ private OrmShape getOrCreatePersistentClass(PersistentClass persistentClass, Table
componentClassDatabaseTable){
OrmShape classShape = null;
OrmShape shape = null;
if(persistentClass != null) {
@@ -203,11 +209,17 @@
tableShape = createShape(databaseTable);
Iterator iterator = getConfiguration().getClassMappings();
while (iterator.hasNext()) {
- RootClass cls = (RootClass)iterator.next();
- Table table = cls.getTable();
- if (tableName.equals(table.getName() + "." + table.getName())) {
- if (elements.get(cls.getClassName()) == null)
- getOrCreatePersistentClass(cls, null);
+ Object clazz = iterator.next();
+ if (clazz instanceof RootClass) {
+ RootClass cls = (RootClass)clazz;
+ Table table = cls.getTable();
+ if (tableName.equals(table.getName() + "." + table.getName())) {
+ if (elements.get(cls.getClassName()) == null)
+ getOrCreatePersistentClass(cls, null);
+ }
+ } else if (clazz instanceof SingleTableSubclass) {
+ SingleTableSubclass singleTableSubclass = (SingleTableSubclass)clazz;
+ getOrCreatePersistentClass(singleTableSubclass, null);
}
}
// IPersistentClassMapping persistentClassMappings[] =
databaseTable.getPersistentClassMappings();
@@ -305,7 +317,7 @@
if (valueType.isCollectionType()) {
Collection collection = (Collection)property.getValue();
Value component = collection.getElement();
- if (valueType.isComponentType()) {
+ if (valueType.isAssociationType()) {//valueType.isComponentType()
OrmShape childShape =
(OrmShape)elements.get(((Component)component).getComponentClassName());
if(childShape == null) childShape = getOrCreateComponentClass(property);
new Connection((Shape)(componentShape.getChildren().get(1)), childShape);
Modified:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.veditor/src/org/jboss/tools/hibernate/veditor/editors/model/OrmShape.java
===================================================================
---
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.veditor/src/org/jboss/tools/hibernate/veditor/editors/model/OrmShape.java 2007-06-27
13:26:38 UTC (rev 2192)
+++
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.veditor/src/org/jboss/tools/hibernate/veditor/editors/model/OrmShape.java 2007-06-27
16:05:30 UTC (rev 2193)
@@ -19,6 +19,7 @@
import org.hibernate.mapping.KeyValue;
import org.hibernate.mapping.Property;
import org.hibernate.mapping.RootClass;
+import org.hibernate.mapping.SingleTableSubclass;
import org.hibernate.mapping.Table;
/**
@@ -68,6 +69,19 @@
}
shapes.add(bodyOrmShape);
}
+ } else if (ormElement instanceof SingleTableSubclass) {
+ Iterator iterator =
((SingleTableSubclass)ormElement).getRootClass().getPropertyIterator();
+ while (iterator.hasNext()) {
+ Property field = (Property)iterator.next();
+ if (field.getValue().getType().isEntityType()) {
+ bodyOrmShape = new ExpandeableShape(field);
+ } else if (field.getValue().getType().isCollectionType()) {
+ bodyOrmShape = new ComponentShape(field);
+ } else {
+ bodyOrmShape = new Shape(field);
+ }
+ shapes.add(bodyOrmShape);
+ }
} else if (ormElement instanceof Table) {
Iterator iterator = ((Table)getOrmElement()).getColumnIterator();
while (iterator.hasNext()) {
Modified:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.veditor/src/org/jboss/tools/hibernate/veditor/editors/parts/OrmShapeEditPart.java
===================================================================
---
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.veditor/src/org/jboss/tools/hibernate/veditor/editors/parts/OrmShapeEditPart.java 2007-06-27
13:26:38 UTC (rev 2192)
+++
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.veditor/src/org/jboss/tools/hibernate/veditor/editors/parts/OrmShapeEditPart.java 2007-06-27
16:05:30 UTC (rev 2193)
@@ -28,6 +28,7 @@
import org.hibernate.mapping.Bag;
import org.hibernate.mapping.Collection;
import org.hibernate.mapping.Component;
+import org.hibernate.mapping.PersistentClass;
import org.hibernate.mapping.Property;
import org.hibernate.mapping.RootClass;
import org.hibernate.mapping.Table;
@@ -53,8 +54,8 @@
TitleLabel label = new TitleLabel();
String text = "";
Object element = getCastedModel().getOrmElement();
- if (element instanceof RootClass) {
- text = ormLabelProvider.getText((RootClass)element);
+ if (element instanceof PersistentClass) {
+ text = ormLabelProvider.getText((PersistentClass)element);
} else if (element instanceof Table) {
Table table = (Table)element;
text = table.getSchema() + "." + table.getName();
@@ -119,7 +120,7 @@
protected Color getBackgroundColor() {
Object element = getCastedModel().getOrmElement();
//R if (getCastedModel().getOrmElement() instanceof IPersistentClass)
- if (element instanceof RootClass || element instanceof Component)
+ if (element instanceof PersistentClass || element instanceof Component)
return ResourceManager.getInstance().getColor(new RGB(0,0,0));
//R else if (getCastedModel().getOrmElement() instanceof IDatabaseTable)
else if (element instanceof Table || element instanceof Property)
Modified:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.veditor/src/org/jboss/tools/hibernate/veditor/editors/parts/ShapeEditPart.java
===================================================================
---
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.veditor/src/org/jboss/tools/hibernate/veditor/editors/parts/ShapeEditPart.java 2007-06-27
13:26:38 UTC (rev 2192)
+++
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.veditor/src/org/jboss/tools/hibernate/veditor/editors/parts/ShapeEditPart.java 2007-06-27
16:05:30 UTC (rev 2193)
@@ -36,6 +36,7 @@
import org.hibernate.mapping.Component;
import org.hibernate.mapping.DependantValue;
import org.hibernate.mapping.OneToMany;
+import org.hibernate.mapping.PersistentClass;
import org.hibernate.mapping.Property;
import org.hibernate.mapping.RootClass;
import org.hibernate.mapping.SimpleValue;
@@ -182,7 +183,7 @@
protected Color getColor() {
Object element = getCastedModel().getOrmElement();
- if (element instanceof RootClass || element instanceof Component)
+ if (element instanceof PersistentClass || element instanceof Component)
return ResourceManager.getInstance().getColor(new RGB(
Integer.parseInt(Messages.Colors_PersistentClassR),
Integer.parseInt(Messages.Colors_PersistentClassG),
@@ -222,7 +223,7 @@
protected Color getSelectionColor() {
//R if (getCastedModel().getOrmElement() instanceof IPersistentClass ||
getCastedModel().getOrmElement() instanceof IPersistentField ||
getCastedModel().getOrmElement() instanceof IHibernateValueMapping)
- if (getCastedModel().getOrmElement() instanceof RootClass ||
+ if (getCastedModel().getOrmElement() instanceof PersistentClass ||
getCastedModel().getOrmElement() instanceof Property ||
getCastedModel().getOrmElement() instanceof Component ||
getCastedModel().getOrmElement() instanceof DependantValue)