[jbosstools-commits] JBoss Tools SVN: r6837 - in trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui: widget/editor and 1 other directories.

jbosstools-commits at lists.jboss.org jbosstools-commits at lists.jboss.org
Tue Mar 11 09:31:57 EDT 2008


Author: akazakov
Date: 2008-03-11 09:31:57 -0400 (Tue, 11 Mar 2008)
New Revision: 6837

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/widget/editor/IFieldEditor.java
   trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/widget/editor/IFieldEditorFactory.java
   trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/widget/editor/SwtFieldEditorFactory.java
   trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/IParameter.java
   trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/SelectJavaPackageAction.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-11 13:27:46 UTC (rev 6836)
+++ trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/preferences/SeamSettingsPreferencePageNew.java	2008-03-11 13:31:57 UTC (rev 6837)
@@ -109,7 +109,7 @@
 
 		GridLayout gridLayout = new GridLayout(1, false);
 		root.setLayout(gridLayout);
-		
+
 		Composite generalGroup = new Composite(root, SWT.NONE);
 		generalGroup.setLayoutData(gd);
 		gridLayout = new GridLayout(4, false);
@@ -154,7 +154,7 @@
 					getPrefValue(
 							IParameter.SEAM_PROJECT_NAME, 
 							getSeamProjectName()));
-		
+
 		registerEditor(projectNameEditor, generalGroup);
 
 		IFieldEditor connProfileEditor = SeamWizardFactory.createConnectionProfileSelectionFieldEditor(getConnectionProfile(), new IValidator() {
@@ -176,7 +176,7 @@
 				Arrays.asList(new String[] {ISeamFacetDataModelProperties.DEPLOY_AS_WAR.toUpperCase(), ISeamFacetDataModelProperties.DEPLOY_AS_EAR.toUpperCase()}),
 				Arrays.asList(new Object[] {ISeamFacetDataModelProperties.DEPLOY_AS_WAR, ISeamFacetDataModelProperties.DEPLOY_AS_EAR}),
 				getDeployAsValue());
-		
+
 		deployTypeEditor.addPropertyChangeListener(new PropertyChangeListener() {
 			public void propertyChange(PropertyChangeEvent evt) {
 				setEnabledDeploymentGroup();
@@ -204,45 +204,60 @@
 				SeamPreferencesMessages.SEAM_SETTINGS_PREFERENCES_PAGE_MODEL,
 				3);
 
+		String sourceFolder = getModelSourceFolder();
 		IFieldEditor modelSourceFolderEditor = 
 			IFieldEditorFactory.INSTANCE.createBrowseSourceFolderEditor(
 					ISeamFacetDataModelProperties.ENTITY_BEAN_SOURCE_FOLDER, 
 					SeamPreferencesMessages.SEAM_SETTINGS_PREFERENCES_PAGE_SOURCE_FOLDER, 
-					getModelSourceFolder());
-		
-		IFieldEditor modelPackageEditor = 
+					sourceFolder);
+
+		final IFieldEditor modelPackageEditor = 
 			IFieldEditorFactory.INSTANCE.createBrowsePackageEditor(
 					ISeamFacetDataModelProperties.ENTITY_BEAN_PACKAGE_NAME, 
-					SeamPreferencesMessages.SEAM_SETTINGS_PREFERENCES_PAGE_PACKAGE, 
-					"");	
-		
+					SeamPreferencesMessages.SEAM_SETTINGS_PREFERENCES_PAGE_PACKAGE, sourceFolder!=null?sourceFolder:"",
+					getPrefValue(ISeamFacetDataModelProperties.ENTITY_BEAN_PACKAGE_NAME, ""));
+
+		modelSourceFolderEditor.addPropertyChangeListener(new PropertyChangeListener(){
+			public void propertyChange(PropertyChangeEvent evt) {
+				modelPackageEditor.setData(IParameter.SOURCE_FOLDER_PATH, getValue(ISeamFacetDataModelProperties.ENTITY_BEAN_SOURCE_FOLDER));
+			}
+		});
+
 		registerEditor(modelSourceFolderEditor, modelGroup);
 		registerEditor(modelPackageEditor, modelGroup);
-		
+
 		Group actionGroup = createGroup(root,
 				SeamPreferencesMessages.SEAM_SETTINGS_PREFERENCES_PAGE_ACTION,
 				3);
 
+		sourceFolder = getActionSourceFolder();
 		IFieldEditor actionSourceFolderEditor = 
 			IFieldEditorFactory.INSTANCE.createBrowseSourceFolderEditor(
 					ISeamFacetDataModelProperties.SESSION_BEAN_SOURCE_FOLDER, 
 					SeamPreferencesMessages.SEAM_SETTINGS_PREFERENCES_PAGE_SOURCE_FOLDER, 
-					getModelSourceFolder());
-		
-		IFieldEditor actionPackageEditor = 
+					sourceFolder);
+
+		final IFieldEditor actionPackageEditor = 
 			IFieldEditorFactory.INSTANCE.createBrowsePackageEditor(
 					ISeamFacetDataModelProperties.SESSION_BEAN_PACKAGE_NAME, 
-					SeamPreferencesMessages.SEAM_SETTINGS_PREFERENCES_PAGE_PACKAGE, 
-					"");	
+					SeamPreferencesMessages.SEAM_SETTINGS_PREFERENCES_PAGE_PACKAGE, sourceFolder!=null?sourceFolder:"",
+					getPrefValue(ISeamFacetDataModelProperties.SESSION_BEAN_PACKAGE_NAME, ""));	
+
+		actionSourceFolderEditor.addPropertyChangeListener(new PropertyChangeListener(){
+			public void propertyChange(PropertyChangeEvent evt) {
+				actionPackageEditor.setData(IParameter.SOURCE_FOLDER_PATH, getValue(ISeamFacetDataModelProperties.SESSION_BEAN_SOURCE_FOLDER));
+			}
+		});
+
 		registerEditor(actionSourceFolderEditor, actionGroup);
 		registerEditor(actionPackageEditor, actionGroup);
-		
+
 		Group testGroup = createGroup(root,
 				SeamPreferencesMessages.SEAM_SETTINGS_PREFERENCES_PAGE_TEST,
 				3);
 
 		IFieldEditor createTestCheckBox = IFieldEditorFactory.INSTANCE.createCheckboxEditor(
-				ISeamFacetDataModelProperties.TEST_CREATING, SeamPreferencesMessages.SEAM_SETTINGS_PREFERENCE_PAGE_CREATE_TEST, false);
+				ISeamFacetDataModelProperties.TEST_CREATING, SeamPreferencesMessages.SEAM_SETTINGS_PREFERENCE_PAGE_CREATE_TEST, shouldCreateTests());
 		createTestCheckBox.addPropertyChangeListener(new PropertyChangeListener() {
 			public void propertyChange(PropertyChangeEvent evt) {
 				Object value = evt.getNewValue();
@@ -251,33 +266,45 @@
 				}
 			}
 		});
-		
+
 		registerEditor(createTestCheckBox, testGroup);
-		
+
 		IFieldEditor testProjectEditor = SeamWizardFactory.createSeamProjectSelectionFieldEditor(ISeamFacetDataModelProperties.SEAM_TEST_PROJECT, SeamPreferencesMessages.SEAM_SETTINGS_PREFERENCE_PAGE_TEST_PROJECT, getTestProjectName(),false);
 		registerEditor(testProjectEditor, testGroup);
-		
+
+		sourceFolder = getTestSourceFolder();
 		IFieldEditor testSourceFolderEditor = 
 			IFieldEditorFactory.INSTANCE.createBrowseSourceFolderEditor(
 					ISeamFacetDataModelProperties.TEST_SOURCE_FOLDER, 
 					SeamPreferencesMessages.SEAM_SETTINGS_PREFERENCES_PAGE_SOURCE_FOLDER, 
-					getModelSourceFolder());
-		
-		IFieldEditor testPackageEditor = 
+					sourceFolder);
+
+		final IFieldEditor testPackageEditor = 
 			IFieldEditorFactory.INSTANCE.createBrowsePackageEditor(
 					ISeamFacetDataModelProperties.TEST_CASES_PACKAGE_NAME, 
-					SeamPreferencesMessages.SEAM_SETTINGS_PREFERENCES_PAGE_PACKAGE, 
-					"");
-		
+					SeamPreferencesMessages.SEAM_SETTINGS_PREFERENCES_PAGE_PACKAGE, sourceFolder!=null?sourceFolder:"", 
+					getPrefValue(ISeamFacetDataModelProperties.TEST_CASES_PACKAGE_NAME, ""));
+
+		testSourceFolderEditor.addPropertyChangeListener(new PropertyChangeListener(){
+			public void propertyChange(PropertyChangeEvent evt) {
+				testPackageEditor.setData(IParameter.SOURCE_FOLDER_PATH, getValue(ISeamFacetDataModelProperties.TEST_SOURCE_FOLDER));
+			}
+		});
+
 		registerEditor(testSourceFolderEditor, testGroup);
 		registerEditor(testPackageEditor, testGroup);
-		
+
 		setEnabledSeamSuport(warSeamProject!=null);
 //		setRuntimeIsSelected(getSeamRuntimeName().length()>0);
 
 		return root;
 	}
 
+	private boolean shouldCreateTests() {
+		String value = getPrefValue(ISeamFacetDataModelProperties.TEST_CREATING, "false");
+		return Boolean.parseBoolean(value);
+	}
+
 	private String getPrefValue(String prefName,String defaultValue) {
 		return preferences.get(
 				prefName, 
@@ -320,6 +347,32 @@
 		return folder;
 	}
 
+	private String getActionSourceFolder() {
+		String folder = null;
+		if(preferences!=null) {
+			folder = preferences.get(ISeamFacetDataModelProperties.SESSION_BEAN_SOURCE_FOLDER, null);
+		}
+		if(folder==null) {
+			SeamProjectsSet set = new SeamProjectsSet(project);
+			IFolder f = set.getActionFolder();
+			folder = f!=null?f.getFullPath().toString():"";
+		}
+		return folder;
+	}
+
+	private String getTestSourceFolder() {
+		String folder = null;
+		if(preferences!=null) {
+			folder = preferences.get(ISeamFacetDataModelProperties.TEST_SOURCE_FOLDER, null);
+		}
+		if(folder==null) {
+			SeamProjectsSet set = new SeamProjectsSet(project);
+			IFolder f = set.getTestsFolder();
+			folder = f!=null?f.getFullPath().toString():"";
+		}
+		return folder;
+	}
+
 	private String getViewFolder() {
 		String folder = null;
 		if(preferences!=null) {
@@ -430,8 +483,8 @@
 		IEclipsePreferences prefs = projectScope.getNode(SeamCorePlugin.PLUGIN_ID);
 
 		prefs.put(ISeamFacetDataModelProperties.SEAM_SETTINGS_VERSION, 
-				"1.1");
-		
+				ISeamFacetDataModelProperties.SEAM_SETTINGS_VERSION_1_1);
+
 		prefs.put(ISeamFacetDataModelProperties.JBOSS_AS_DEPLOY_AS, 
 				getValue(ISeamFacetDataModelProperties.JBOSS_AS_DEPLOY_AS));
 
@@ -446,9 +499,9 @@
 		prefs.put(ISeamFacetDataModelProperties.TEST_CASES_PACKAGE_NAME, 
 				getValue(ISeamFacetDataModelProperties.TEST_CASES_PACKAGE_NAME));
 		prefs.put(ISeamFacetDataModelProperties.TEST_CREATING,
-				"true");
+				getValue(ISeamFacetDataModelProperties.TEST_CREATING));
 		prefs.put(ISeamFacetDataModelProperties.TEST_SOURCE_FOLDER, 
-				getValue(ISeamFacetDataModelProperties.TEST_CREATING));
+				getValue(ISeamFacetDataModelProperties.TEST_SOURCE_FOLDER));
 		prefs.put(ISeamFacetDataModelProperties.SEAM_TEST_PROJECT, 
 				getValue(ISeamFacetDataModelProperties.SEAM_TEST_PROJECT));
 		prefs.put(ISeamFacetDataModelProperties.SEAM_EJB_PROJECT, 
@@ -502,12 +555,11 @@
 	private void setEnabledDeploymentGroup() {
 		IFieldEditor deployment = 
 			editorRegistry.get(ISeamFacetDataModelProperties.JBOSS_AS_DEPLOY_AS);
-		
+
 		editorRegistry.get(ISeamFacetDataModelProperties.SEAM_EJB_PROJECT)
 			.setEnabled(
 					ISeamFacetDataModelProperties.DEPLOY_AS_EAR.equals(
 							deployment.getValue()));
-		
 	}
 
 	private void setEnabledTestGroup() {
@@ -517,7 +569,7 @@
 		editorRegistry.get(ISeamFacetDataModelProperties.TEST_SOURCE_FOLDER).setEnabled(enabled);
 		editorRegistry.get(ISeamFacetDataModelProperties.TEST_CASES_PACKAGE_NAME).setEnabled(enabled);						
 	}
-	
+
 	private void setEnabledGroups(boolean enabled) {
 		for (Group group : groups) {
 				group.setEnabled(enabled);
@@ -532,6 +584,8 @@
 			}
 		}
 		setEnabledGroups(selected);
+		setEnabledTestGroup();
+		setEnabledDeploymentGroup();
 	}
 
 	private void removeSeamSupport() {
@@ -601,5 +655,4 @@
 		}
 		return null;
 	}
-
 }
\ No newline at end of file

Modified: trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/widget/editor/IFieldEditor.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/widget/editor/IFieldEditor.java	2008-03-11 13:27:46 UTC (rev 6836)
+++ trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/widget/editor/IFieldEditor.java	2008-03-11 13:31:57 UTC (rev 6837)
@@ -91,7 +91,7 @@
 	 * @param data
 	 * @param key
 	 */
-	public void setData(Object data, Object key);
+	public void setData(Object key, Object data);
 
 	/**
 	 * Gets the application defined property of this editor

Modified: trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/widget/editor/IFieldEditorFactory.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/widget/editor/IFieldEditorFactory.java	2008-03-11 13:27:46 UTC (rev 6836)
+++ trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/widget/editor/IFieldEditorFactory.java	2008-03-11 13:31:57 UTC (rev 6837)
@@ -103,12 +103,25 @@
 	 */
 	IFieldEditor createBrowseSourceFolderEditor(String name, String label, String defaultValue);
 
-	
-	IFieldEditor createBrowsePackageEditor(String name,	String label, String defaultValue) ;
+	/**
+	 * 
+	 * @param name
+	 * @param label
+	 * @param initProjectName
+	 * @param defaultValue
+	 * @return
+	 */
+	IFieldEditor createBrowsePackageEditor(String name,	String label, String initSourceFolderPath, String defaultValue);
 
-	
+	/**
+	 * 
+	 * @param name
+	 * @param label
+	 * @param defaultValue
+	 * @return
+	 */
 	IFieldEditor createBrowseSeamProjectEditor(String name,	String label, String defaultValue);
-	
+
 	/**
 	 * 
 	 * @param name
@@ -160,11 +173,9 @@
 			ButtonFieldEditor.ButtonPressedAction action2, IValidator validator);
 	
 	ButtonFieldEditor.ButtonPressedAction createNotImplementedYetAction(String buttonName);
-	
+
 	IFieldEditor createComboWithButton(String name, String label,
 			List values, Object defaultValue, boolean flat,
 			ButtonPressedAction action1,
 			IValidator validator);
-
-	
 }
\ No newline at end of file

Modified: trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/widget/editor/SwtFieldEditorFactory.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/widget/editor/SwtFieldEditorFactory.java	2008-03-11 13:27:46 UTC (rev 6836)
+++ trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/widget/editor/SwtFieldEditorFactory.java	2008-03-11 13:31:57 UTC (rev 6837)
@@ -21,6 +21,7 @@
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
+import org.eclipse.jdt.core.IJavaElement;
 import org.eclipse.jdt.core.IJavaProject;
 import org.eclipse.jdt.core.IPackageFragment;
 import org.eclipse.jdt.core.IPackageFragmentRoot;
@@ -31,9 +32,11 @@
 import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.jface.viewers.ViewerFilter;
 import org.eclipse.jface.window.Window;
+import org.eclipse.jst.j2ee.internal.plugin.J2EEUIMessages;
 import org.eclipse.swt.widgets.DirectoryDialog;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.ui.dialogs.ElementListSelectionDialog;
 import org.eclipse.ui.dialogs.ElementTreeSelectionDialog;
 import org.eclipse.ui.dialogs.ISelectionStatusValidator;
 import org.eclipse.ui.internal.util.Util;
@@ -44,7 +47,9 @@
 import org.jboss.tools.seam.ui.SeamGuiPlugin;
 import org.jboss.tools.seam.ui.SeamUIMessages;
 import org.jboss.tools.seam.ui.internal.project.facet.IValidator;
+import org.jboss.tools.seam.ui.internal.project.facet.ValidatorFactory;
 import org.jboss.tools.seam.ui.widget.editor.ButtonFieldEditor.ButtonPressedAction;
+import org.jboss.tools.seam.ui.wizard.IParameter;
 
 /**
  * 
@@ -147,19 +152,18 @@
 		return editor;
 	}
 
-	/* (non-Javadoc)
-	 * @see org.jboss.tools.seam.ui.widget.editor.IFieldEditorFactory#createBrowseSourceFolderEditor(java.lang.String, java.lang.String, java.lang.String)
+	/*
+	 * (non-Javadoc)
+	 * @see org.jboss.tools.seam.ui.widget.editor.IFieldEditorFactory#createBrowsePackageEditor(java.lang.String, java.lang.String, java.lang.String, java.lang.String)
 	 */
-	public IFieldEditor createBrowsePackageEditor(String name,	String label, String defaultValue) {
-		ButtonFieldEditor.ButtonPressedAction action = createSelectPackageAction(SeamUIMessages.SWT_FIELD_EDITOR_FACTORY_BROWS, defaultValue);
-		CompositeEditor editor = new CompositeEditor(name, label, defaultValue);
-		editor.addFieldEditors(new IFieldEditor[]{new LabelFieldEditor(name, label),
-				new TextFieldEditor(name, label, defaultValue),
-				new ButtonFieldEditor(name, action, defaultValue)});
-		action.setFieldEditor(editor);
+	public IFieldEditor createBrowsePackageEditor(String name,	String label, String initSourceFolderPath, String defaultValue) {
+		ButtonFieldEditor.ButtonPressedAction action = new SelectJavaPackageAction(SeamUIMessages.SWT_FIELD_EDITOR_FACTORY_BROWS, initSourceFolderPath, defaultValue);
+		IFieldEditor editor = createButtonFieldEditor(
+				name, label, defaultValue, 
+				action, ValidatorFactory.NO_ERRORS_VALIDATOR);
 		return editor;
 	}
-	
+
 	/**
 	 * @param buttonName
 	 * @return
@@ -333,6 +337,9 @@
 		return editor;
 	}
 
+	/**
+	 * 
+	 */
 	public IFieldEditor createButtonFieldEditor(String name, String label, String defaultValue, ButtonFieldEditor.ButtonPressedAction action, IValidator validator ) {
 		CompositeEditor editor = new CompositeEditor(name,label, defaultValue);
 		editor.addFieldEditors(new IFieldEditor[]{new LabelFieldEditor(name,label),
@@ -408,29 +415,103 @@
 		return action;
 	}
 
-	/**
-	 * 
-	 * @param buttonName
-	 * @return
-	 */
-	public ButtonFieldEditor.ButtonPressedAction createSelectPackageAction(String buttonName, String defaultValue) {
-		return new ButtonFieldEditor.ButtonPressedAction(buttonName) {
-			@Override
-			public void run() {
-				final ElementTreeSelectionDialog dialog = new ElementTreeSelectionDialog(
-						Display.getCurrent().getActiveShell(),
-						new JavaElementLabelProvider(), new JavaSourceContentProvider(true));
-				dialog.setInput(ResourcesPlugin.getWorkspace());
-				if (dialog.open() == Window.OK) {
-					IPackageFragment pack = (IPackageFragment) dialog.getFirstResult();
-					IPath newPath = pack.getResource().getFullPath();
-					String value = newPath.toString();
-					getFieldEditor().setValue(value);
+	private static class SelectJavaPackageAction extends ButtonFieldEditor.ButtonPressedAction {
+		private String defaultSourceFolderPath;
+
+		public SelectJavaPackageAction(String buttonName, String defaultSourceFolderPath, String defaultPackageName) {
+			super(buttonName);
+			this.defaultSourceFolderPath = defaultSourceFolderPath;
+		}
+
+		@Override
+		public void run() {
+			String sourceFolder = (String)getFieldEditor().getData(IParameter.SOURCE_FOLDER_PATH);
+			if(sourceFolder==null) {
+				sourceFolder = defaultSourceFolderPath;
+			}
+			if(sourceFolder == null) {
+				SeamGuiPlugin.getPluginLog().logError("Can't init source folder");
+				return;
+			}
+			IResource initSourceFolder = ResourcesPlugin.getWorkspace().getRoot().findMember(sourceFolder);
+			if(initSourceFolder == null) {
+				SeamGuiPlugin.getPluginLog().logError("Can't find source folder: " + defaultSourceFolderPath);
+				return;
+			}
+			IProject project = initSourceFolder.getProject();
+			if(project == null) {
+				SeamGuiPlugin.getPluginLog().logError("Can't find project for: " + defaultSourceFolderPath);
+				return;
+			}
+			IJavaProject javaProject = EclipseResourceUtil.getJavaProject(project);
+			if(javaProject == null) {
+				SeamGuiPlugin.getPluginLog().logError("Can't find java project for: " + defaultSourceFolderPath);
+				return;
+			}
+			IPackageFragmentRoot packageFragmentRoot = null;
+			IPackageFragmentRoot[] roots;
+			try {
+				roots = javaProject.getPackageFragmentRoots();
+				for (int i = 0; i < roots.length; i++) {
+					if (roots[i].getKind() == IPackageFragmentRoot.K_SOURCE && roots[i].getResource().equals(initSourceFolder)) {
+						packageFragmentRoot = roots[i];
+						break;
+					}
 				}
+			} catch (JavaModelException e) {
+				SeamGuiPlugin.getPluginLog().logError(e);
 			}
-		};
+			if (packageFragmentRoot == null) {
+				packageFragmentRoot = javaProject.getPackageFragmentRoot(javaProject.getResource());
+			}
+			if (packageFragmentRoot == null) {
+				SeamGuiPlugin.getPluginLog().logError("Can't find source folder for project " + project.getName());
+				return;
+			}
+			IJavaElement[] packages = null;
+			try {
+				packages = packageFragmentRoot.getChildren();
+			} catch (JavaModelException e) {
+				SeamGuiPlugin.getPluginLog().logError(e);
+			}
+			if (packages == null) {
+				packages = new IJavaElement[0];
+			}
+
+			String initialValue = getFieldEditor().getValue().toString();
+			IJavaElement initialElement = null;
+			ArrayList<IJavaElement> packagesWithoutDefaultPackage = new ArrayList<IJavaElement>();
+			for (IJavaElement packageElement : packages) {
+				String packageName = packageElement.getElementName();
+				if(packageName.length()>0) {
+					packagesWithoutDefaultPackage.add(packageElement);
+					if(packageName.equals(initialValue)) {
+						initialElement = packageElement;
+					}
+				}
+			}
+
+			packages = (IJavaElement[])packagesWithoutDefaultPackage.toArray(new IJavaElement[packagesWithoutDefaultPackage.size()]);
+			ElementListSelectionDialog dialog = new ElementListSelectionDialog(Display.getCurrent().getActiveShell(), new JavaElementLabelProvider(
+					JavaElementLabelProvider.SHOW_DEFAULT));
+			dialog.setTitle(J2EEUIMessages.PACKAGE_SELECTION_DIALOG_TITLE);
+			dialog.setMessage(J2EEUIMessages.PACKAGE_SELECTION_DIALOG_DESC);
+			dialog.setEmptyListMessage(J2EEUIMessages.PACKAGE_SELECTION_DIALOG_MSG_NONE);
+			dialog.setElements(packages);
+			if(initialElement!=null) {
+				dialog.setInitialSelections(new Object[]{initialElement});
+			}
+			if (dialog.open() == Window.OK) {
+				IPackageFragment fragment = (IPackageFragment) dialog.getFirstResult();
+				if (fragment != null) {
+					getFieldEditor().setValue(fragment.getElementName());
+				} else {
+					getFieldEditor().setValue("");
+				}
+			}
+		}
 	}
-	
+
 	/**
 	 * 
 	 * @param buttonName

Modified: trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/IParameter.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/IParameter.java	2008-03-11 13:27:46 UTC (rev 6836)
+++ trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/IParameter.java	2008-03-11 13:31:57 UTC (rev 6837)
@@ -34,6 +34,8 @@
 	public static String SEAM_PROJECT_SRC_MODEL = "seam.project.model"; //$NON-NLS-1$	
 	public static String HIBERNATE_CONFIGURATION_NAME = "hibernate.configuratrion.name"; //$NON-NLS-1$
 
+	public static String SOURCE_FOLDER_PATH = "source.folder.path"; //$NON-NLS-1$
+
 	public static String SEAM_EAR_PROJECT_LOCATION_PATH = "seam.ear.project.location"; //$NON-NLS-1$
 	public static String SEAM_TEST_PROJECT_LOCATION_PATH = "seam.test.project.location"; //$NON-NLS-1$
 	public static String SEAM_EJB_PROJECT_LOCATION_PATH = "seam.ejb.project.location"; //$NON-NLS-1$

Modified: trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/SelectJavaPackageAction.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/SelectJavaPackageAction.java	2008-03-11 13:27:46 UTC (rev 6836)
+++ trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/SelectJavaPackageAction.java	2008-03-11 13:31:57 UTC (rev 6837)
@@ -92,18 +92,18 @@
 
 		String initialValue = getFieldEditor().getValue().toString();
 		IJavaElement initialElement = null;
-		ArrayList packagesWithouDefaultPackage = new ArrayList();
+		ArrayList packagesWithoutDefaultPackage = new ArrayList();
 		for (IJavaElement packageElement : packages) {
 			String packageName = packageElement.getElementName();
 			if(packageName.length()>0) {
-				packagesWithouDefaultPackage.add(packageElement);
+				packagesWithoutDefaultPackage.add(packageElement);
 				if(packageName.equals(initialValue)) {
 					initialElement = packageElement;
 				}
 			}
 		}
 
-		packages = (IJavaElement[])packagesWithouDefaultPackage.toArray(new IJavaElement[packagesWithouDefaultPackage.size()]);
+		packages = (IJavaElement[])packagesWithoutDefaultPackage.toArray(new IJavaElement[packagesWithoutDefaultPackage.size()]);
 		ElementListSelectionDialog dialog = new ElementListSelectionDialog(Display.getCurrent().getActiveShell(), new JavaElementLabelProvider(
 				JavaElementLabelProvider.SHOW_DEFAULT));
 		dialog.setTitle(J2EEUIMessages.PACKAGE_SELECTION_DIALOG_TITLE);




More information about the jbosstools-commits mailing list