Author: dazarov
Date: 2007-08-07 12:24:07 -0400 (Tue, 07 Aug 2007)
New Revision: 2936
Added:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.view/src/org/jboss/tools/hibernate/ui/view/views/HibernateUtils.java
Removed:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.view/src/org/jboss/tools/hibernate/ui/view/views/TextUtil.java
Modified:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.veditor/src/org/jboss/tools/hibernate/ui/veditor/editors/model/OrmDiagram.java
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.veditor/src/org/jboss/tools/hibernate/ui/veditor/editors/parts/DiagramEditPart.java
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.view/src/org/jboss/tools/hibernate/ui/view/views/OrmModelImageVisitor.java
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.view/src/org/jboss/tools/hibernate/ui/view/views/OrmModelNameVisitor.java
Log:
http://jira.jboss.com/jira/browse/EXIN-427
Modified:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.veditor/src/org/jboss/tools/hibernate/ui/veditor/editors/model/OrmDiagram.java
===================================================================
---
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.veditor/src/org/jboss/tools/hibernate/ui/veditor/editors/model/OrmDiagram.java 2007-08-07
14:56:35 UTC (rev 2935)
+++
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.veditor/src/org/jboss/tools/hibernate/ui/veditor/editors/model/OrmDiagram.java 2007-08-07
16:24:07 UTC (rev 2936)
@@ -48,7 +48,7 @@
import org.hibernate.type.Type;
import org.jboss.tools.common.model.util.EclipseResourceUtil;
import org.jboss.tools.hibernate.ui.veditor.VisualEditorPlugin;
-import org.jboss.tools.hibernate.ui.view.views.TextUtil;
+import org.jboss.tools.hibernate.ui.view.views.HibernateUtils;
public class OrmDiagram extends ModelElement {
@@ -127,7 +127,7 @@
if (ormElement instanceof RootClass) {
childrenLocations[i] = ((RootClass)ormElement).getEntityName() + "@";
} else if (ormElement instanceof Table) {
- childrenLocations[i] = TextUtil.getTableName((Table)ormElement)+"@";
+ childrenLocations[i] = HibernateUtils.getTableName((Table)ormElement)+"@";
// } else if (ormElement instanceof Component) {
// childrenLocations[i] = ((Component)ormElement).getComponentClassName()+"@";
}
@@ -144,7 +144,7 @@
} else if (ormElement instanceof Table) {
ormShape = new OrmShape(ormElement);
getChildren().add(ormShape);
- elements.put(TextUtil.getTableName((Table)ormElement), ormShape);
+ elements.put(HibernateUtils.getTableName((Table)ormElement), ormShape);
} else if (ormElement instanceof Property) {
SpecialRootClass specialRootClass = new SpecialRootClass((Property)ormElement);
ormShape = new SpecialOrmShape(specialRootClass);
@@ -163,7 +163,7 @@
if (ormElement instanceof RootClass) {
ormShape = elements.get(((RootClass)ormElement).getEntityName());
} else if (ormElement instanceof Table) {
- ormShape = elements.get(TextUtil.getTableName((Table)ormElement));
+ ormShape = elements.get(HibernateUtils.getTableName((Table)ormElement));
} else if (ormElement instanceof Property) {
SpecialRootClass specialRootClass = new SpecialRootClass((Property)ormElement);
ormShape = elements.get(specialRootClass.getEntityName());
@@ -183,7 +183,7 @@
if(componentClassDatabaseTable == null && persistentClass.getTable() != null)
componentClassDatabaseTable = persistentClass.getTable();
if(componentClassDatabaseTable != null) {
- shape = elements.get(TextUtil.getTableName(componentClassDatabaseTable));
+ shape = elements.get(HibernateUtils.getTableName(componentClassDatabaseTable));
if (shape == null) shape = getOrCreateDatabaseTable(componentClassDatabaseTable);
createConnections(classShape, shape);
if(!isConnectionExist(classShape, shape)){
@@ -278,7 +278,7 @@
private OrmShape getOrCreateDatabaseTable(Table databaseTable){
OrmShape tableShape = null;
if(databaseTable != null) {
- String tableName = TextUtil.getTableName(databaseTable);
+ String tableName = HibernateUtils.getTableName(databaseTable);
tableShape = (OrmShape)elements.get(tableName);
if(tableShape == null) {
tableShape = createShape(databaseTable);
@@ -494,7 +494,7 @@
Component component = (Component)((Collection)property.getValue()).getElement();
if (component != null) {
classShape = createShape(property);
- OrmShape tableShape =
(OrmShape)elements.get(TextUtil.getTableName(component.getTable()));
+ OrmShape tableShape =
(OrmShape)elements.get(HibernateUtils.getTableName(component.getTable()));
if (tableShape == null) tableShape =
getOrCreateDatabaseTable(component.getTable());
createConnections(classShape, tableShape);
if(!isConnectionExist(classShape, tableShape)){
@@ -527,7 +527,7 @@
// classShape =
(OrmShape)elements.get(component.getAssociatedClass().getEntityName());
classShape = getOrCreatePersistentClass(component.getAssociatedClass(), null);
if (classShape == null) classShape = createShape(component.getAssociatedClass());
- OrmShape tableShape =
(OrmShape)elements.get(TextUtil.getTableName(component.getAssociatedClass().getTable()));
+ OrmShape tableShape =
(OrmShape)elements.get(HibernateUtils.getTableName(component.getAssociatedClass().getTable()));
if (tableShape == null) tableShape =
getOrCreateDatabaseTable(component.getAssociatedClass().getTable());
createConnections(classShape, tableShape);
if(!isConnectionExist(classShape, tableShape)){
@@ -547,7 +547,7 @@
if (element instanceof RootClass) {
key = ((RootClass)element).getEntityName();
} else if (element instanceof Table) {
- key = TextUtil.getTableName((Table)element);
+ key = HibernateUtils.getTableName((Table)element);
} else if (element instanceof Property) {
Property property = (Property)element;
key = property.getPersistentClass().getEntityName() + "." +
property.getName();
Modified:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.veditor/src/org/jboss/tools/hibernate/ui/veditor/editors/parts/DiagramEditPart.java
===================================================================
---
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.veditor/src/org/jboss/tools/hibernate/ui/veditor/editors/parts/DiagramEditPart.java 2007-08-07
14:56:35 UTC (rev 2935)
+++
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.veditor/src/org/jboss/tools/hibernate/ui/veditor/editors/parts/DiagramEditPart.java 2007-08-07
16:24:07 UTC (rev 2936)
@@ -54,7 +54,7 @@
import org.jboss.tools.hibernate.ui.veditor.editors.model.Shape;
import org.jboss.tools.hibernate.ui.veditor.editors.model.SpecialOrmShape;
import org.jboss.tools.hibernate.ui.veditor.editors.model.SpecialRootClass;
-import org.jboss.tools.hibernate.ui.view.views.TextUtil;
+import org.jboss.tools.hibernate.ui.view.views.HibernateUtils;
class DiagramEditPart extends OrmEditPart implements PropertyChangeListener {
@@ -129,7 +129,7 @@
tempPoint = 40 + getChildrenFigurePreferredHeight(ormShape);
}
Table table = persistentClass.getTable();
- ormShape = (OrmShape) hashMap.remove(TextUtil.getTableName(table));
+ ormShape = (OrmShape) hashMap.remove(HibernateUtils.getTableName(table));
if (ormShape != null) {
ormShape.setLocation(new Point(pointX, 20));
point = 40 + getChildrenFigurePreferredHeight(ormShape);
@@ -152,7 +152,7 @@
.getOrmElement())).getProperty().getValue())
.getElement();
Table ownerTable = component.getOwner().getTable();
- ormShape = (OrmShape) hashMap.remove(TextUtil.getTableName(ownerTable));
+ ormShape = (OrmShape) hashMap.remove(HibernateUtils.getTableName(ownerTable));
// }
// if (ormShape != null ) {
// ormShape.setLocation(new Point(pointX,point));
Copied:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.view/src/org/jboss/tools/hibernate/ui/view/views/HibernateUtils.java
(from rev 2800,
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.view/src/org/jboss/tools/hibernate/ui/view/views/TextUtil.java)
===================================================================
---
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.view/src/org/jboss/tools/hibernate/ui/view/views/HibernateUtils.java
(rev 0)
+++
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.view/src/org/jboss/tools/hibernate/ui/view/views/HibernateUtils.java 2007-08-07
16:24:07 UTC (rev 2936)
@@ -0,0 +1,45 @@
+package org.jboss.tools.hibernate.ui.view.views;
+
+import java.util.Iterator;
+
+import org.hibernate.mapping.Column;
+import org.hibernate.mapping.ForeignKey;
+import org.hibernate.mapping.Table;
+
+public class HibernateUtils {
+
+ public static String getTableName(Table table) {
+ String schema = table.getSchema();
+ String catalog = table.getCatalog();
+ return (schema != null ? schema + "." : "") + (catalog != null ?
catalog + "." : "") + table.getName();
+ }
+
+ public static boolean isPrimaryKey(Column column){
+ Table table = getTable(column);
+ if(table != null){
+ if(table.getPrimaryKey() != null){
+ if(table.getPrimaryKey().containsColumn(column)) return true;
+ }
+ }
+ return false;
+ }
+
+ public static boolean isForeignKey(Column column){
+ Table table = getTable(column);
+ if(table != null){
+ Iterator iter = table.getForeignKeyIterator();
+ while(iter.hasNext()){
+ ForeignKey fk = (ForeignKey)iter.next();
+ if(fk.containsColumn(column)) return true;
+ }
+ }
+ return false;
+
+ }
+
+ public static Table getTable(Column column){
+ if(column.getValue() != null)
+ return column.getValue().getTable();
+ return null;
+ }
+}
Modified:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.view/src/org/jboss/tools/hibernate/ui/view/views/OrmModelImageVisitor.java
===================================================================
---
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.view/src/org/jboss/tools/hibernate/ui/view/views/OrmModelImageVisitor.java 2007-08-07
14:56:35 UTC (rev 2935)
+++
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.view/src/org/jboss/tools/hibernate/ui/view/views/OrmModelImageVisitor.java 2007-08-07
16:24:07 UTC (rev 2936)
@@ -10,11 +10,13 @@
******************************************************************************/
package org.jboss.tools.hibernate.ui.view.views;
+import java.util.Iterator;
import java.util.ResourceBundle;
import org.hibernate.mapping.Column;
import org.hibernate.mapping.Component;
import org.hibernate.mapping.DependantValue;
+import org.hibernate.mapping.ForeignKey;
import org.hibernate.mapping.JoinedSubclass;
import org.hibernate.mapping.PersistentClassVisitor;
import org.hibernate.mapping.Property;
@@ -25,8 +27,10 @@
import org.hibernate.mapping.UnionSubclass;
import org.jboss.tools.hibernate.ui.view.ViewPlugin;
+import sun.text.CompactShortArray;
+
/**
* @author Tau
*
@@ -46,10 +50,16 @@
public Object visitDatabaseColumn(Column column) {
if(column.isUnique()) {
return
ViewPlugin.getImageDescriptor(BUNDLE.getString("OrmModelImageVisitor.DatabaseUniqueKeyColumn"));
+ }else if (HibernateUtils.isPrimaryKey(column)&& HibernateUtils.getTable(column)
!= null && HibernateUtils.isForeignKey(column)){
+ return
ViewPlugin.getImageDescriptor(BUNDLE.getString("OrmModelImageVisitor.DatabasePrimaryForeignKeysColumn"));
+ } else if (HibernateUtils.isPrimaryKey(column)){
+ return
ViewPlugin.getImageDescriptor(BUNDLE.getString("OrmModelImageVisitor.DatabasePrimaryKeyColumn"));
//$NON-NLS-1$
+ } else if (HibernateUtils.getTable(column) != null &&
HibernateUtils.isForeignKey(column)){
+ return
ViewPlugin.getImageDescriptor(BUNDLE.getString("OrmModelImageVisitor.DatabaseForeignKeyColumn"));
//$NON-NLS-1$
} else return
ViewPlugin.getImageDescriptor(BUNDLE.getString("OrmModelImageVisitor.DatabaseColumn"));
//$NON-NLS-1$
}
-
+
public Object visitPersistentField(Property field, Object argument) {
if (field !=null){
try {
Modified:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.view/src/org/jboss/tools/hibernate/ui/view/views/OrmModelNameVisitor.java
===================================================================
---
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.view/src/org/jboss/tools/hibernate/ui/view/views/OrmModelNameVisitor.java 2007-08-07
14:56:35 UTC (rev 2935)
+++
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.view/src/org/jboss/tools/hibernate/ui/view/views/OrmModelNameVisitor.java 2007-08-07
16:24:07 UTC (rev 2936)
@@ -223,7 +223,7 @@
Table table = clazz.getTable(); // upd tau 06.06.2005
//IDatabaseTable table = HibernateAutoMappingHelper.getPrivateTable(classMapping); //
upd tau 18.04.2005
if (table != null) {
- String tableName = TextUtil.getTableName(table);
+ String tableName = HibernateUtils.getTableName(table);
if (tableName != null) {
//name.append(" (");
name.append(POINTER);
@@ -237,7 +237,7 @@
public Object visitTable(Table table, Object argument) {
StringBuffer name = new StringBuffer();
- name.append(TextUtil.getTableName(table));
+ name.append(HibernateUtils.getTableName(table));
return name.toString();
}
@@ -248,7 +248,7 @@
Table table = clazz.getTable();
if (table != null) {
- String tableName = TextUtil.getTableName(table);
+ String tableName = HibernateUtils.getTableName(table);
if (tableName != null) {
name.append(POINTER);
name.append(tableName);
Deleted:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.view/src/org/jboss/tools/hibernate/ui/view/views/TextUtil.java
===================================================================
---
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.view/src/org/jboss/tools/hibernate/ui/view/views/TextUtil.java 2007-08-07
14:56:35 UTC (rev 2935)
+++
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.view/src/org/jboss/tools/hibernate/ui/view/views/TextUtil.java 2007-08-07
16:24:07 UTC (rev 2936)
@@ -1,11 +0,0 @@
-package org.jboss.tools.hibernate.ui.view.views;
-
-import org.hibernate.mapping.Table;
-
-public class TextUtil {
- public static String getTableName(Table table) {
- String schema = table.getSchema();
- String catalog = table.getCatalog();
- return (schema != null ? schema + "." : "") + (catalog != null ?
catalog + "." : "") + table.getName();
- }
-}