Author: dgeraskov
Date: 2008-01-15 09:36:00 -0500 (Tue, 15 Jan 2008)
New Revision: 5693
Modified:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.view/src/org/jboss/tools/hibernate/ui/view/views/OpenDiagramActionDelegate.java
Log:
http://jira.jboss.com/jira/browse/JBIDE-1596
Modified:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.view/src/org/jboss/tools/hibernate/ui/view/views/OpenDiagramActionDelegate.java
===================================================================
---
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.view/src/org/jboss/tools/hibernate/ui/view/views/OpenDiagramActionDelegate.java 2008-01-15
14:35:56 UTC (rev 5692)
+++
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.view/src/org/jboss/tools/hibernate/ui/view/views/OpenDiagramActionDelegate.java 2008-01-15
14:36:00 UTC (rev 5693)
@@ -15,11 +15,13 @@
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.viewers.TreeSelection;
+import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.ide.IDE;
import org.eclipse.ui.internal.ObjectPluginAction;
import org.hibernate.console.ConsoleConfiguration;
import org.hibernate.eclipse.console.utils.ProjectUtils;
+import org.hibernate.mapping.PersistentClass;
import org.hibernate.mapping.RootClass;
import org.hibernate.mapping.Subclass;
import org.jboss.tools.hibernate.ui.view.ViewPlugin;
@@ -29,26 +31,31 @@
public void run(IAction action) {
ObjectPluginAction objectPluginAction = (ObjectPluginAction)action;
- Object persClass =
((TreeSelection)objectPluginAction.getSelection()).getFirstElement();
- Object rootClass = null;
- if (persClass instanceof RootClass) {
- rootClass = (RootClass) persClass;
- } else if (persClass instanceof Subclass) {
- rootClass = ((Subclass) persClass).getRootClass();
- }
- ObjectEditorInput input = (ObjectEditorInput)hashMap.get(rootClass);
- ConsoleConfiguration consoleConfiguration =
(ConsoleConfiguration)(((TreeSelection)objectPluginAction.getSelection()).getPaths()[0]).getSegment(0);
+ Object first_el =
((TreeSelection)objectPluginAction.getSelection()).getFirstElement();
+ if (first_el instanceof PersistentClass) {
+ PersistentClass persClass = (PersistentClass) first_el;
+ ConsoleConfiguration consoleConfiguration =
(ConsoleConfiguration)(((TreeSelection)objectPluginAction.getSelection()).getPaths()[0]).getSegment(0);
+
+ try {
+ openEditor(persClass, consoleConfiguration);
+ } catch (PartInitException e) {
+ ViewPlugin.getDefault().logError("Can't open mapping view.", e);
+ }
+ }
+ }
+
+ public IEditorPart openEditor(PersistentClass persClass,
+ ConsoleConfiguration consoleConfiguration) throws PartInitException {
+ ObjectEditorInput input = (ObjectEditorInput)hashMap.get(persClass.getRootClass());
+
IJavaProject proj = ProjectUtils.findJavaProject(consoleConfiguration);
if(input == null) {
- input = new ObjectEditorInput(consoleConfiguration, rootClass, proj);
- hashMap.put(rootClass, input);
+ input = new ObjectEditorInput(consoleConfiguration, persClass.getRootClass(), proj);
+ hashMap.put(persClass.getRootClass(), input);
}
- try {
- IDE.openEditor(ViewPlugin.getPage(),input
,"org.jboss.tools.hibernate.ui.veditor.editors.visualeditor");
- } catch (PartInitException e) {
- ViewPlugin.getDefault().logError("Can't open mapping view.", e);
- }
+
+ return IDE.openEditor(ViewPlugin.getPage(),input
,"org.jboss.tools.hibernate.ui.veditor.editors.visualeditor");
}
}
\ No newline at end of file