[jbosstools-commits] JBoss Tools SVN: r6714 - trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/preferences.

jbosstools-commits at lists.jboss.org jbosstools-commits at lists.jboss.org
Thu Mar 6 13:04:32 EST 2008


Author: akazakov
Date: 2008-03-06 13:04:32 -0500 (Thu, 06 Mar 2008)
New Revision: 6714

Modified:
   trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/preferences/SeamSettingsPreferencePageNew.java
Log:
http://jira.jboss.com/jira/browse/JBIDE-1322

Modified: trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/preferences/SeamSettingsPreferencePageNew.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/preferences/SeamSettingsPreferencePageNew.java	2008-03-06 17:42:44 UTC (rev 6713)
+++ trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/preferences/SeamSettingsPreferencePageNew.java	2008-03-06 18:04:32 UTC (rev 6714)
@@ -12,15 +12,22 @@
 
 import java.beans.PropertyChangeEvent;
 import java.beans.PropertyChangeListener;
+import java.io.File;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.preferences.IEclipsePreferences;
+import org.eclipse.jdt.core.IClasspathEntry;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.JavaModelException;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Composite;
@@ -29,11 +36,14 @@
 import org.jboss.tools.common.model.util.EclipseResourceUtil;
 import org.jboss.tools.seam.core.ISeamProject;
 import org.jboss.tools.seam.core.SeamCorePlugin;
+import org.jboss.tools.seam.core.project.facet.SeamRuntime;
+import org.jboss.tools.seam.core.project.facet.SeamVersion;
 import org.jboss.tools.seam.internal.core.project.facet.ISeamFacetDataModelProperties;
 import org.jboss.tools.seam.ui.SeamGuiPlugin;
 import org.jboss.tools.seam.ui.SeamUIMessages;
 import org.jboss.tools.seam.ui.widget.editor.IFieldEditor;
 import org.jboss.tools.seam.ui.widget.editor.IFieldEditorFactory;
+import org.jboss.tools.seam.ui.widget.editor.SeamRuntimeListFieldEditor;
 import org.jboss.tools.seam.ui.wizard.IParameter;
 import org.jboss.tools.seam.ui.wizard.SeamWizardFactory;
 import org.jboss.tools.seam.ui.wizard.SeamWizardUtils;
@@ -49,6 +59,7 @@
 	private IProject project;
 	private IProject warProject;
 	private IEclipsePreferences preferences;
+	private ISeamProject warSeamProject;
 
 	/*
 	 * (non-Javadoc)
@@ -61,6 +72,7 @@
 		warProject = SeamWizardUtils.getRootSeamProject(project);
 		if(warProject!=null) {
 			preferences = SeamCorePlugin.getSeamPreferences(warProject);
+			warSeamProject = SeamCorePlugin.getSeamProject(warProject, false);
 		}
 	}
 
@@ -72,7 +84,7 @@
 		IFieldEditor projectNameEditor = IFieldEditorFactory.INSTANCE.createUneditableTextEditor(IParameter.SEAM_PROJECT_NAME, SeamUIMessages.SEAM_SETTINGS_PREFERENCES_PAGE_SEAM_PROJECT, getSeamProjectName());
 		addEditor(projectNameEditor);
 
-		IFieldEditor seamRuntimeEditor = SeamWizardFactory.createSeamRuntimeSelectionFieldEditor(getSeamRuntimeName());
+		IFieldEditor seamRuntimeEditor = SeamWizardFactory.createSeamRuntimeSelectionFieldEditor(getSeamVersions(), getSeamRuntimeName());
 		addEditor(seamRuntimeEditor);
 
 		Control control = new GridLayoutComposite(parent);
@@ -155,6 +167,57 @@
 		}
 	}
 
+	private SeamVersion[] getSeamVersions() {
+//		if(warSeamProject != null) {
+//			SeamRuntime r = warSeamProject.getRuntime();
+//			if(r != null) {
+//				return new SeamVersion[]{r.getVersion()};
+//			}
+//			String jarLocation = getJBossSeamJarLocation();
+//			if(jarLocation != null) {
+//				String folder = new File(jarLocation).getParent();
+//				String vs = SeamRuntimeListFieldEditor.SeamRuntimeWizardPage.getSeamVersion(folder);
+//				SeamVersion v = findMatchingVersion(vs);
+//				if(v != null) {
+//					return new SeamVersion[]{v};
+//				}
+//			}
+//		}
+		return SeamVersion.ALL_VERSIONS;
+	}
+
+	private SeamVersion findMatchingVersion(String vs) {
+		if(vs == null) return null;
+		if(vs.matches(SeamVersion.SEAM_1_2.toString().replace(".", "\\.") + ".*")) {
+			return SeamVersion.SEAM_1_2;
+		}
+		if(vs.matches(SeamVersion.SEAM_2_0.toString().replace(".", "\\.") + ".*")) {
+			return SeamVersion.SEAM_2_0;
+		}
+		return null;
+	}
+
+	private String getJBossSeamJarLocation() {
+		IJavaProject jp = EclipseResourceUtil.getJavaProject(project);
+		if(jp == null) return null;
+		IClasspathEntry[] es = null;
+		try {
+			es = jp.getResolvedClasspath(true);
+		} catch (JavaModelException e) {
+			//ignore
+			return null;
+		}
+		if(es == null) return null;
+		for (int i = 0; i < es.length; i++) {
+			IPath p = es[i].getPath();
+			if(p != null && p.lastSegment().equalsIgnoreCase("jboss-seam.jar")) {
+				IFile f = ResourcesPlugin.getWorkspace().getRoot().getFile(p);
+				if(f != null && f.exists()) return f.getLocation().toString();
+			}
+		}
+		return null;
+	}
+
 	public class GridLayoutComposite extends Composite {
 
 		public GridLayoutComposite(Composite parent, int style) {




More information about the jbosstools-commits mailing list