Author: mdryakhlenkov
Date: 2007-10-09 12:06:28 -0400 (Tue, 09 Oct 2007)
New Revision: 4079
Modified:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.veditor/src/org/jboss/tools/hibernate/ui/veditor/editors/actions/OpenMappingAction.java
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.veditor/src/org/jboss/tools/hibernate/ui/veditor/editors/actions/OpenSourceAction.java
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.view/src/org/jboss/tools/hibernate/ui/view/views/HTConstants.java
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.view/src/org/jboss/tools/hibernate/ui/view/views/HibernateUtils.java
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.view/src/org/jboss/tools/hibernate/ui/view/views/OpenFileActionUtils.java
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.view/src/org/jboss/tools/hibernate/ui/view/views/OpenMappingActionDelegate.java
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.view/src/org/jboss/tools/hibernate/ui/view/views/OpenSourceActionDelegate.java
Log:
JBIDE-983: Objects on diagram must have context menu
Modified:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.veditor/src/org/jboss/tools/hibernate/ui/veditor/editors/actions/OpenMappingAction.java
===================================================================
---
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.veditor/src/org/jboss/tools/hibernate/ui/veditor/editors/actions/OpenMappingAction.java 2007-10-09
15:15:36 UTC (rev 4078)
+++
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.veditor/src/org/jboss/tools/hibernate/ui/veditor/editors/actions/OpenMappingAction.java 2007-10-09
16:06:28 UTC (rev 4079)
@@ -11,12 +11,15 @@
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.PartInitException;
import org.hibernate.console.ConsoleConfiguration;
+import org.hibernate.mapping.PersistentClass;
import org.hibernate.mapping.RootClass;
import org.hibernate.mapping.Subclass;
import org.hibernate.mapping.Table;
import org.jboss.tools.hibernate.ui.veditor.VisualEditorPlugin;
import org.jboss.tools.hibernate.ui.veditor.editors.VisualEditor;
import org.jboss.tools.hibernate.ui.veditor.editors.model.OrmDiagram;
+import org.jboss.tools.hibernate.ui.veditor.editors.model.SpecialRootClass;
+import org.jboss.tools.hibernate.ui.view.views.HibernateUtils;
import org.jboss.tools.hibernate.ui.view.views.ObjectEditorInput;
import org.jboss.tools.hibernate.ui.view.views.OpenFileActionUtils;
@@ -33,7 +36,6 @@
ObjectEditorInput objectEditorInput =
(ObjectEditorInput)((VisualEditor)getWorkbenchPart()).getEditorInput();
ConsoleConfiguration consoleConfiguration = objectEditorInput.getConfiguration();
java.io.File configXMLFile = consoleConfiguration.getPreferences().getConfigXMLFile();
- Document doc = OpenFileActionUtils.getDocument(consoleConfiguration, configXMLFile);
IJavaProject proj = objectEditorInput.getJavaProject();
VisualEditor part = (VisualEditor)getWorkbenchPart();
@@ -47,23 +49,45 @@
if (selectedElement instanceof RootClass) {
RootClass rootClass = (RootClass)selectedElement;
- resource = OpenFileActionUtils.getResource(consoleConfiguration, proj, doc,
configXMLFile, rootClass);
+ resource = OpenFileActionUtils.getResource(consoleConfiguration, proj,
configXMLFile, rootClass);
if (resource == null) {
- String fullyQualifiedName = rootClass.getClassName();
- try {
- resource = proj.findType(fullyQualifiedName).getResource();
- } catch (JavaModelException e) {
- VisualEditorPlugin.getDefault().logInfo("Can't find mapping file",
e);
- }
+ if (OpenFileActionUtils.rootClassHasAnnotations(consoleConfiguration,
configXMLFile, rootClass)) {
+ String fullyQualifiedName =
HibernateUtils.getPersistentClassName(rootClass.getClassName());
+ try {
+ resource = proj.findType(fullyQualifiedName).getResource();
+ } catch (JavaModelException e) {
+ VisualEditorPlugin.getDefault().logInfo("Can't find mapping
file", e);
+ }
+ } else {
+ if (rootClass instanceof SpecialRootClass) {
+ resource = OpenFileActionUtils.getResource(consoleConfiguration, proj,
configXMLFile,
+ ((SpecialRootClass)rootClass).getProperty().getPersistentClass()
+ );
+ }
+ }
}
} else if (selectedElement instanceof Table) {
Table table = (Table)selectedElement;
+ resource = OpenFileActionUtils.getResource(consoleConfiguration, proj, configXMLFile,
table);
- resource = OpenFileActionUtils.getResource(consoleConfiguration, proj, doc,
configXMLFile, table);
+ if (resource == null) {
+ Iterator classMappingsIterator =
consoleConfiguration.getConfiguration().getClassMappings();
+ while (classMappingsIterator.hasNext()) {
+ PersistentClass elem = (PersistentClass) classMappingsIterator.next();
+ if
(HibernateUtils.getTableName(elem.getTable()).equals(HibernateUtils.getTableName(table)))
{
+ String fullyQualifiedName =
HibernateUtils.getPersistentClassName(elem.getClassName());
+ try {
+ resource = proj.findType(fullyQualifiedName).getResource();
+ } catch (JavaModelException e) {
+ VisualEditorPlugin.getDefault().logInfo("Can't find mapping
file", e);
+ }
+ }
+ }
+ }
} else if (selectedElement instanceof Subclass) {
Subclass rootClass = (Subclass)selectedElement;
- resource = OpenFileActionUtils.getResource(consoleConfiguration, proj, doc,
configXMLFile, rootClass);
+ resource = OpenFileActionUtils.getResource(consoleConfiguration, proj,
configXMLFile, rootClass);
}
if (resource != null) {
Modified:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.veditor/src/org/jboss/tools/hibernate/ui/veditor/editors/actions/OpenSourceAction.java
===================================================================
---
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.veditor/src/org/jboss/tools/hibernate/ui/veditor/editors/actions/OpenSourceAction.java 2007-10-09
15:15:36 UTC (rev 4078)
+++
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.veditor/src/org/jboss/tools/hibernate/ui/veditor/editors/actions/OpenSourceAction.java 2007-10-09
16:06:28 UTC (rev 4079)
@@ -17,6 +17,7 @@
import org.jboss.tools.hibernate.ui.veditor.editors.VisualEditor;
import org.jboss.tools.hibernate.ui.veditor.editors.model.OrmDiagram;
import org.jboss.tools.hibernate.ui.view.ViewPlugin;
+import org.jboss.tools.hibernate.ui.view.views.HibernateUtils;
import org.jboss.tools.hibernate.ui.view.views.ObjectEditorInput;
import org.jboss.tools.hibernate.ui.view.views.OpenFileActionUtils;
@@ -42,7 +43,7 @@
PersistentClass rootClass = (PersistentClass) iterator.next();
IResource resource = null;
- String fullyQualifiedName = rootClass.getClassName();
+ String fullyQualifiedName =
HibernateUtils.getPersistentClassName(rootClass.getClassName());
if (fullyQualifiedName.indexOf("$") > 0) {
fullyQualifiedName = fullyQualifiedName.substring(0,
fullyQualifiedName.indexOf("$"));
}
Modified:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.view/src/org/jboss/tools/hibernate/ui/view/views/HTConstants.java
===================================================================
---
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.view/src/org/jboss/tools/hibernate/ui/view/views/HTConstants.java 2007-10-09
15:15:36 UTC (rev 4078)
+++
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.view/src/org/jboss/tools/hibernate/ui/view/views/HTConstants.java 2007-10-09
16:06:28 UTC (rev 4079)
@@ -8,4 +8,6 @@
public static String HIBERNATE_TAG_SESSION_FACTORY = "session-factory";
public static String HIBERNATE_TAG_MAPPING = "mapping";
public static String HIBERNATE_TAG_RESOURCE = "resource";
+ public static String HIBERNATE_TAG_CATALOG = "catalog";
+ public static String HIBERNATE_TAG_SCHEMA = "schema";
}
Modified:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.view/src/org/jboss/tools/hibernate/ui/view/views/HibernateUtils.java
===================================================================
---
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.view/src/org/jboss/tools/hibernate/ui/view/views/HibernateUtils.java 2007-10-09
15:15:36 UTC (rev 4078)
+++
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.view/src/org/jboss/tools/hibernate/ui/view/views/HibernateUtils.java 2007-10-09
16:06:28 UTC (rev 4079)
@@ -10,10 +10,12 @@
public class HibernateUtils {
+ public static String getTableName(String catalog, String schema, String name) {
+ return (catalog != null ? catalog + "." : "") + (schema != null ?
schema + "." : "") + name;
+ }
+
public static String getTableName(Table table) {
- String catalog = table.getCatalog();
- String schema = table.getSchema();
- return (catalog != null ? catalog + "." : "") + (schema != null ?
schema + "." : "") + table.getName();
+ return getTableName(table.getCatalog(), table.getSchema(), table.getName());
}
public static String getPersistentClassName(String className) {
Modified:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.view/src/org/jboss/tools/hibernate/ui/view/views/OpenFileActionUtils.java
===================================================================
---
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.view/src/org/jboss/tools/hibernate/ui/view/views/OpenFileActionUtils.java 2007-10-09
15:15:36 UTC (rev 4078)
+++
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.view/src/org/jboss/tools/hibernate/ui/view/views/OpenFileActionUtils.java 2007-10-09
16:06:28 UTC (rev 4079)
@@ -70,6 +70,11 @@
return proj;
}
+ public static boolean rootClassHasAnnotations(ConsoleConfiguration consoleConfiguration,
java.io.File configXMLFile, RootClass rootClass) {
+ Document doc = getDocument(consoleConfiguration, configXMLFile);
+ return getElements(doc, HTConstants.HIBERNATE_TAG_MAPPING,
HTConstants.HIBERNATE_TAG_CLASS,
HibernateUtils.getPersistentClassName(rootClass.getClassName())).hasNext();
+ }
+
private static boolean elementInResource(ConsoleConfiguration consoleConfiguration,
IResource resource, Object element) {
if (element instanceof RootClass) {
return rootClassInResource(consoleConfiguration, resource, (RootClass)element);
@@ -84,28 +89,44 @@
public static boolean rootClassInResource(ConsoleConfiguration consoleConfiguration,
IResource resource, RootClass persistentClass) {
Document doc = getDocument(consoleConfiguration, resource.getLocation().toFile());
- return getElements(doc, HTConstants.HIBERNATE_TAG_CLASS,
HTConstants.HIBERNATE_TAG_NAME,
StringHelper.unqualify(persistentClass.getClassName())).hasNext() ||
- getElements(doc, HTConstants.HIBERNATE_TAG_CLASS, HTConstants.HIBERNATE_TAG_NAME,
persistentClass.getClassName()).hasNext() ||
- getElements(doc, HTConstants.HIBERNATE_TAG_CLASS,
StringHelper.unqualify(persistentClass.getClassName())).hasNext() ||
- getElements(doc, HTConstants.HIBERNATE_TAG_CLASS,
persistentClass.getClassName()).hasNext();
+ return getElements(doc, HTConstants.HIBERNATE_TAG_CLASS,
HTConstants.HIBERNATE_TAG_NAME,
StringHelper.unqualify(HibernateUtils.getPersistentClassName(persistentClass.getClassName()))).hasNext()
||
+ getElements(doc, HTConstants.HIBERNATE_TAG_CLASS, HTConstants.HIBERNATE_TAG_NAME,
HibernateUtils.getPersistentClassName(persistentClass.getClassName())).hasNext() ||
+ getElements(doc, HTConstants.HIBERNATE_TAG_CLASS,
StringHelper.unqualify(HibernateUtils.getPersistentClassName(persistentClass.getClassName()))).hasNext()
||
+ getElements(doc, HTConstants.HIBERNATE_TAG_CLASS,
HibernateUtils.getPersistentClassName(persistentClass.getClassName())).hasNext();
}
public static boolean subclassInResource(ConsoleConfiguration consoleConfiguration,
IResource resource, Subclass persistentClass) {
Document doc = getDocument(consoleConfiguration, resource.getLocation().toFile());
- return getElements(doc, HTConstants.HIBERNATE_TAG_SUBCLASS,
HTConstants.HIBERNATE_TAG_NAME,
StringHelper.unqualify(persistentClass.getClassName())).hasNext() ||
- getElements(doc, HTConstants.HIBERNATE_TAG_SUBCLASS, HTConstants.HIBERNATE_TAG_NAME,
persistentClass.getClassName()).hasNext();
+ return getElements(doc, HTConstants.HIBERNATE_TAG_SUBCLASS,
HTConstants.HIBERNATE_TAG_NAME,
StringHelper.unqualify(HibernateUtils.getPersistentClassName(persistentClass.getClassName()))).hasNext()
||
+ getElements(doc, HTConstants.HIBERNATE_TAG_SUBCLASS, HTConstants.HIBERNATE_TAG_NAME,
HibernateUtils.getPersistentClassName(persistentClass.getClassName())).hasNext();
}
public static boolean tableInResource(ConsoleConfiguration consoleConfiguration,
IResource resource, Table table) {
Document doc = getDocument(consoleConfiguration, resource.getLocation().toFile());
- if (getElements(doc, HTConstants.HIBERNATE_TAG_TABLE,
HibernateUtils.getTableName(table)).hasNext()) {
- return true;
- }
-
Iterator classes = getElements(doc, HTConstants.HIBERNATE_TAG_CLASS);
while (classes.hasNext()) {
Element element = (Element) classes.next();
+
+ Attribute tableAttr = element.attribute( HTConstants.HIBERNATE_TAG_TABLE );
+ if (tableAttr != null) {
+ Attribute catalogAttr = element.attribute( HTConstants.HIBERNATE_TAG_CATALOG );
+ if (catalogAttr == null) catalogAttr =
doc.getRootElement().attribute(HTConstants.HIBERNATE_TAG_CATALOG);
+ Attribute schemaAttr = element.attribute( HTConstants.HIBERNATE_TAG_SCHEMA );
+ if (schemaAttr == null) schemaAttr =
doc.getRootElement().attribute(HTConstants.HIBERNATE_TAG_SCHEMA);
+ if (HibernateUtils.
+ getTableName(
+ (catalogAttr != null ? catalogAttr.getValue() : null),
+ (schemaAttr != null ? schemaAttr.getValue() : null),
+ tableAttr.getValue()
+ ).equals(HibernateUtils.getTableName(table))
+ ) {
+ return true;
+ }
+
+
+ }
+
Attribute classNameAttr = element.attribute( HTConstants.HIBERNATE_TAG_NAME );
String physicalTableName =
consoleConfiguration.getConfiguration().getNamingStrategy().classToTableName(classNameAttr.getValue());
if (table.getName().equals(physicalTableName)) {
@@ -209,7 +230,8 @@
return doc;
}
- public static IResource getResource(ConsoleConfiguration consoleConfiguration,
IJavaProject proj, Document doc, java.io.File configXMLFile, Object element) {
+ public static IResource getResource(ConsoleConfiguration consoleConfiguration,
IJavaProject proj, java.io.File configXMLFile, Object element) {
+ Document doc = getDocument(consoleConfiguration, configXMLFile);
IResource resource = null;
if (consoleConfiguration != null && proj != null && doc != null) {
Element sfNode = doc.getRootElement().element(
HTConstants.HIBERNATE_TAG_SESSION_FACTORY );
Modified:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.view/src/org/jboss/tools/hibernate/ui/view/views/OpenMappingActionDelegate.java
===================================================================
---
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.view/src/org/jboss/tools/hibernate/ui/view/views/OpenMappingActionDelegate.java 2007-10-09
15:15:36 UTC (rev 4078)
+++
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.view/src/org/jboss/tools/hibernate/ui/view/views/OpenMappingActionDelegate.java 2007-10-09
16:06:28 UTC (rev 4079)
@@ -66,10 +66,11 @@
IJavaProject proj = OpenFileActionUtils.findJavaProject(consoleConfiguration);
java.io.File configXMLFile = consoleConfiguration.getPreferences().getConfigXMLFile();
Document doc = OpenFileActionUtils.getDocument(consoleConfiguration, configXMLFile);
- IResource resource = OpenFileActionUtils.getResource(consoleConfiguration, proj,
doc, configXMLFile, rootClass);
+// IResource resource = OpenFileActionUtils.getResource(consoleConfiguration, proj,
doc, configXMLFile, rootClass);
+ IResource resource = OpenFileActionUtils.getResource(consoleConfiguration, proj,
configXMLFile, rootClass);
if (resource == null) {
- String fullyQualifiedName = rootClass.getClassName();
+ String fullyQualifiedName =
HibernateUtils.getPersistentClassName(rootClass.getClassName());
try {
resource = proj.findType(fullyQualifiedName).getResource();
} catch (JavaModelException e) {
Modified:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.view/src/org/jboss/tools/hibernate/ui/view/views/OpenSourceActionDelegate.java
===================================================================
---
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.view/src/org/jboss/tools/hibernate/ui/view/views/OpenSourceActionDelegate.java 2007-10-09
15:15:36 UTC (rev 4078)
+++
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.view/src/org/jboss/tools/hibernate/ui/view/views/OpenSourceActionDelegate.java 2007-10-09
16:06:28 UTC (rev 4079)
@@ -31,7 +31,7 @@
IJavaProject proj = OpenFileActionUtils.findJavaProject(consoleConfiguration);
IResource resource = null;
- String fullyQualifiedName = rootClass.getClassName();
+ String fullyQualifiedName =
HibernateUtils.getPersistentClassName(rootClass.getClassName());
try {
resource = proj.findType(fullyQualifiedName).getResource();
} catch (JavaModelException e) {