[jbosstools-commits] JBoss Tools SVN: r41200 - in trunk/hibernatetools/plugins: org.jboss.tools.hibernate.jpt.ui/META-INF and 1 other directories.

jbosstools-commits at lists.jboss.org jbosstools-commits at lists.jboss.org
Mon May 21 06:26:52 EDT 2012


Author: dgeraskov
Date: 2012-05-21 06:26:50 -0400 (Mon, 21 May 2012)
New Revision: 41200

Modified:
   trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/HibernatePersistenceUnit.java
   trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/META-INF/MANIFEST.MF
   trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/src/org/jboss/tools/hibernate/jpt/ui/internal/persistence/details/HibernatePropertiesComposite.java
Log:
https://issues.jboss.org/browse/JBIDE-11705
Get hibernate.cfg.xml only from classpath

Modified: trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/HibernatePersistenceUnit.java
===================================================================
--- trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/HibernatePersistenceUnit.java	2012-05-21 09:28:51 UTC (rev 41199)
+++ trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/HibernatePersistenceUnit.java	2012-05-21 10:26:50 UTC (rev 41200)
@@ -10,7 +10,6 @@
  ******************************************************************************/
 package org.jboss.tools.hibernate.jpt.core.internal.context;
 
-import java.io.File;
 import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.Iterator;
@@ -279,8 +278,6 @@
 		if (configFile != null && configFile.length() > 0){
 			IPath path = new Path(configFile);
 
-			if (new File(path.toOSString()).exists()) return;
-
 			try {
 				IJavaProject jp = getJpaProject().getJavaProject();
 				IPackageFragmentRoot[] pfrs = jp.getPackageFragmentRoots();

Modified: trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/META-INF/MANIFEST.MF
===================================================================
--- trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/META-INF/MANIFEST.MF	2012-05-21 09:28:51 UTC (rev 41199)
+++ trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/META-INF/MANIFEST.MF	2012-05-21 10:26:50 UTC (rev 41200)
@@ -23,7 +23,9 @@
  org.eclipse.jpt.common.ui,
  org.eclipse.jpt.jpa.db,
  org.eclipse.ui.views.properties.tabbed;bundle-version="3.5.0",
- org.hibernate.eclipse.libs;bundle-version="3.4.0"
+ org.hibernate.eclipse.libs;bundle-version="3.4.0",
+ org.eclipse.wst.web.ui;bundle-version="1.1.400",
+ org.eclipse.wst.common.frameworks.ui;bundle-version="1.2.100"
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-Vendor: %Bundle-Vendor.0

Modified: trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/src/org/jboss/tools/hibernate/jpt/ui/internal/persistence/details/HibernatePropertiesComposite.java
===================================================================
--- trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/src/org/jboss/tools/hibernate/jpt/ui/internal/persistence/details/HibernatePropertiesComposite.java	2012-05-21 09:28:51 UTC (rev 41199)
+++ trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/src/org/jboss/tools/hibernate/jpt/ui/internal/persistence/details/HibernatePropertiesComposite.java	2012-05-21 10:26:50 UTC (rev 41200)
@@ -12,6 +12,7 @@
 
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.LinkedList;
 import java.util.List;
 
 import org.eclipse.core.resources.IContainer;
@@ -26,6 +27,7 @@
 import org.eclipse.jdt.core.IPackageFragmentRoot;
 import org.eclipse.jdt.core.JavaCore;
 import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.jdt.internal.ui.wizards.TypedElementSelectionValidator;
 import org.eclipse.jface.dialogs.IDialogConstants;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.resource.ImageDescriptor;
@@ -43,7 +45,6 @@
 import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
 import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
 import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.jpt.jpa.core.JpaProject;
 import org.eclipse.jpt.jpa.ui.details.JpaPageComposite;
 import org.eclipse.swt.graphics.Image;
 import org.eclipse.swt.widgets.Button;
@@ -51,9 +52,13 @@
 import org.eclipse.swt.widgets.Text;
 import org.eclipse.ui.IWorkbenchWindow;
 import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.dialogs.ElementTreeSelectionDialog;
 import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
+import org.eclipse.ui.model.WorkbenchContentProvider;
+import org.eclipse.ui.model.WorkbenchLabelProvider;
+import org.eclipse.ui.views.navigator.ResourceSorter;
+import org.hibernate.eclipse.console.FileFilter;
 import org.hibernate.eclipse.console.HibernateConsoleMessages;
-import org.hibernate.eclipse.console.utils.DialogSelectionHelper;
 import org.hibernate.eclipse.console.utils.DriverClassHelpers;
 import org.hibernate.eclipse.console.wizards.NewConfigurationWizard;
 import org.hibernate.eclipse.console.wizards.NewConfigurationWizardPage;
@@ -202,29 +207,42 @@
 			path = new Path(files[0].getProject().getName()).append(files[0].getProjectRelativePath());
 			filePath = path.toString();
 		}
-		if (props != null && filePath.length() > 0 ){
+		if (filePath.length() > 0 ){
+			IPackageFragmentRoot[] allPackageFragmentRoots = getSourcePackageFragmentRoots();
+			for (IPackageFragmentRoot iPackageFragmentRoot : allPackageFragmentRoots) {
+				IResource sourceFolder = iPackageFragmentRoot.getResource();
+				if (sourceFolder instanceof IContainer) {
+					IContainer folder = (IContainer) sourceFolder;
+					if (folder.findMember(filePath) != null){
+						return folder.findMember(filePath).getFullPath();
+					}
+				}
+			}
+		}
+		return path;
+	}
+	
+	public IPackageFragmentRoot[] getSourcePackageFragmentRoots(){
+		BasicHibernateProperties props = getSubject();
+		if (props != null){
 			IProject project = props.getJpaProject().getProject();
 			IJavaProject jProject = JavaCore.create(project);
 			if (jProject != null){
 				try {
 					IPackageFragmentRoot[] allPackageFragmentRoots = jProject.getAllPackageFragmentRoots();
+					List<IPackageFragmentRoot> sources = new LinkedList<IPackageFragmentRoot>();
 					for (IPackageFragmentRoot iPackageFragmentRoot : allPackageFragmentRoots) {
-						if (!iPackageFragmentRoot.isArchive()){
-							IResource sourceFolder = iPackageFragmentRoot.getResource();
-							if (sourceFolder instanceof IContainer) {
-								IContainer folder = (IContainer) sourceFolder;
-								if (folder.findMember(filePath) != null){
-									return folder.findMember(filePath).getFullPath();
-								}
-							}
+						if (!iPackageFragmentRoot.isArchive() && iPackageFragmentRoot.isOpen()){
+							sources.add(iPackageFragmentRoot);
 						}
 					}
+					return sources.toArray(new IPackageFragmentRoot[0]);
 				} catch (JavaModelException e) {
 					//ignore
 				}
 			}
 		}
-		return path;
+		return new IPackageFragmentRoot[0];
 	}
 
 	private Runnable createSetupAction() {
@@ -253,21 +271,11 @@
 				IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
 				IResource res = root.findMember(cfgFile);
 				if ( res != null && res.exists() && res.getType() == IResource.FILE) {
-					JpaProject jpaProject = HibernatePropertiesComposite.this.getSubject().getJpaProject();
-					IJavaProject jProject = jpaProject.getJavaProject();
-					if (jProject != null){
-						try {
-							IPackageFragmentRoot[] allPackageFragmentRoots = jProject.getAllPackageFragmentRoots();
-							for (IPackageFragmentRoot iPackageFragmentRoot : allPackageFragmentRoots) {
-								if (!iPackageFragmentRoot.isArchive()){
-									if (iPackageFragmentRoot.getResource().getFullPath().isPrefixOf(cfgFile)){
-										cfgFile = cfgFile.removeFirstSegments(iPackageFragmentRoot.getResource().getFullPath().segmentCount());
-										return cfgFile;
-									}
-								}
-							}
-						} catch (JavaModelException e) {
-							//ignore
+					IPackageFragmentRoot[] allPackageFragmentRoots = getSourcePackageFragmentRoots();
+					for (IPackageFragmentRoot iPackageFragmentRoot : allPackageFragmentRoots) {
+						if (iPackageFragmentRoot.getResource().getFullPath().isPrefixOf(cfgFile)){
+							cfgFile = cfgFile.removeFirstSegments(iPackageFragmentRoot.getResource().getFullPath().segmentCount());
+							return cfgFile;
 						}
 					}
 				}
@@ -285,14 +293,49 @@
 			}
 
 			private IPath handleConfigurationFileBrowse() {
-				IPath initialPath = getConfigurationFilePath();
-				IPath[] paths = DialogSelectionHelper.chooseFileEntries(getShell(),  initialPath, new IPath[0], HibernateConsoleMessages.ConsoleConfigurationMainTab_select_hibernate_cfg_xml_file, HibernateConsoleMessages.ConsoleConfigurationMainTab_choose_file_to_use_as_hibernate_cfg_xml, new String[] {HibernateConsoleMessages.ConsoleConfigurationMainTab_cfg_xml}, false, false, true);
+				IPath[] paths = chooseFileEntries();
 				if(paths!=null && paths.length==1) {
 					return paths[0];
 				}
 				return null;
 			}
 			
+			public IPath[] chooseFileEntries() {
+				TypedElementSelectionValidator validator = new TypedElementSelectionValidator(new Class[]{IFile.class}, false);
+				IWorkspaceRoot root= ResourcesPlugin.getWorkspace().getRoot();
+				IResource focus= getConfigurationFilePath() != null ? root.findMember(getConfigurationFilePath()) : null;
+
+				ElementTreeSelectionDialog dialog = new ElementTreeSelectionDialog(getShell(), new WorkbenchLabelProvider(), new WorkbenchContentProvider(){
+					public Object[] getElements(Object element) {
+						IPackageFragmentRoot[] sourcePackageFragmentRoots = getSourcePackageFragmentRoots();
+						IResource[] ress = new IResource[sourcePackageFragmentRoots.length];
+						for (int i = 0; i < sourcePackageFragmentRoots.length; i++) {
+							ress[i] = sourcePackageFragmentRoots[i].getResource();
+						}
+						return ress;
+					}
+				});
+				dialog.setValidator(validator);
+				dialog.setAllowMultiple(false);
+				dialog.setTitle(HibernateConsoleMessages.ConsoleConfigurationMainTab_select_hibernate_cfg_xml_file);
+				dialog.setMessage(HibernateConsoleMessages.ConsoleConfigurationMainTab_choose_file_to_use_as_hibernate_cfg_xml);
+				dialog.addFilter(new FileFilter(new String[] {HibernateConsoleMessages.ConsoleConfigurationMainTab_cfg_xml}, null, true, false) );
+				dialog.setInput(root);
+				dialog.setSorter(new ResourceSorter(ResourceSorter.NAME) );
+				dialog.setInitialSelection(focus);
+
+				if (dialog.open() == Window.OK) {
+					Object[] elements= dialog.getResult();
+					IPath[] res= new IPath[elements.length];
+					for (int i= 0; i < res.length; i++) {
+						IResource elem= (IResource)elements[i];
+						res[i]= elem.getFullPath();
+					}
+					return res;
+				}
+				return null;
+			}
+			
 			private IPath handleConfigurationFileCreate() {
 				NewConfigurationWizard wizard = new NewConfigurationWizard();
 				wizard.init(PlatformUI.getWorkbench(), StructuredSelection.EMPTY );



More information about the jbosstools-commits mailing list