[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