Author: akazakov
Date: 2009-02-05 13:50:56 -0500 (Thu, 05 Feb 2009)
New Revision: 13493
Modified:
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/core/SeamUtil.java
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/SeamBaseWizardPage.java
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/SeamWizardUtils.java
trunk/seam/tests/org.jboss.tools.seam.ui.test/src/org/jboss/tools/seam/ui/test/SeamUiAllTests.java
trunk/seam/tests/org.jboss.tools.seam.ui.test/src/org/jboss/tools/seam/ui/test/wizard/SeamActionNewWizardTest.java
Log:
https://jira.jboss.org/jira/browse/JBIDE-3752 Cannot create Seam Artifacts on fresh
created Seam EAR Project - Fixed
Modified:
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/core/SeamUtil.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/core/SeamUtil.java 2009-02-05
18:37:37 UTC (rev 13492)
+++
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/core/SeamUtil.java 2009-02-05
18:50:56 UTC (rev 13493)
@@ -17,7 +17,10 @@
import org.eclipse.core.resources.IProject;
import org.eclipse.jst.j2ee.internal.project.J2EEProjectUtilities;
-import org.eclipse.jst.j2ee.project.EarUtilities;
+import org.eclipse.jst.j2ee.project.JavaEEProjectUtilities;
+import org.eclipse.wst.common.componentcore.ComponentCore;
+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
+import org.eclipse.wst.common.componentcore.resources.IVirtualReference;
import org.jboss.tools.seam.core.project.facet.SeamRuntime;
/**
@@ -147,6 +150,18 @@
return seamProject;
}
}
+ IVirtualComponent comp = ComponentCore.createComponent(project);
+ IVirtualReference[] refComponents = null;
+ refComponents = comp.getReferences();
+ for (IVirtualReference virtualReference : refComponents) {
+ IVirtualComponent component = virtualReference.getReferencedComponent();
+ if(component!=null && !component.isBinary() &&
JavaEEProjectUtilities.isDynamicWebComponent(component)) {
+ ISeamProject seamProject = SeamCorePlugin.getSeamProject(component.getProject(),
false);
+ if(seamProject!=null) {
+ return seamProject;
+ }
+ }
+ }
}
return null;
}
Modified:
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/SeamBaseWizardPage.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/SeamBaseWizardPage.java 2009-02-05
18:37:37 UTC (rev 13492)
+++
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/SeamBaseWizardPage.java 2009-02-05
18:50:56 UTC (rev 13493)
@@ -207,6 +207,9 @@
* @see
java.beans.PropertyChangeListener#propertyChange(java.beans.PropertyChangeEvent)
*/
public void propertyChange(PropertyChangeEvent event) {
+ if(IParameter.SEAM_PROJECT_NAME.equals(event.getPropertyName())) {
+ rootSeamProject = SeamWizardUtils.getRootSeamProject(getSelectedProject());
+ }
doFillDefaults(event);
doValidate(event);
}
@@ -450,5 +453,9 @@
return
"war".equals(SeamCorePlugin.getSeamPreferences(getSelectedProject().getProject()).get(ISeamFacetDataModelProperties.JBOSS_AS_DEPLOY_AS,"war"));
//$NON-NLS-1$ //$NON-NLS-2$
}
+ public String getRootSeamProject() {
+ return rootSeamProject!=null?rootSeamProject.getName():null;
+ }
+
public abstract String getDefaultMessageText();
}
\ No newline at end of file
Modified:
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/SeamWizardUtils.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/SeamWizardUtils.java 2009-02-05
18:37:37 UTC (rev 13492)
+++
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/SeamWizardUtils.java 2009-02-05
18:50:56 UTC (rev 13493)
@@ -26,6 +26,7 @@
import org.eclipse.ui.PlatformUI;
import org.jboss.tools.seam.core.ISeamProject;
import org.jboss.tools.seam.core.SeamCorePlugin;
+import org.jboss.tools.seam.core.SeamUtil;
import org.jboss.tools.seam.internal.core.project.facet.ISeamFacetDataModelProperties;
/**
@@ -65,7 +66,9 @@
if (project != null) {
ISeamProject seamProject = SeamCorePlugin.getSeamProject(project, false);
if (seamProject == null) {
- return null;
+ // Maybe it is EAR? Then it doesn't have Seam nature and we should try to find
child Seam WAR project.
+ ISeamProject warProject = SeamUtil.findReferencingSeamWarProjectForProject(project);
+ return warProject!=null?warProject.getProject():null;
}
String parentProjectName = seamProject.getParentProjectName();
Modified:
trunk/seam/tests/org.jboss.tools.seam.ui.test/src/org/jboss/tools/seam/ui/test/SeamUiAllTests.java
===================================================================
---
trunk/seam/tests/org.jboss.tools.seam.ui.test/src/org/jboss/tools/seam/ui/test/SeamUiAllTests.java 2009-02-05
18:37:37 UTC (rev 13492)
+++
trunk/seam/tests/org.jboss.tools.seam.ui.test/src/org/jboss/tools/seam/ui/test/SeamUiAllTests.java 2009-02-05
18:50:56 UTC (rev 13493)
@@ -27,6 +27,7 @@
import org.jboss.tools.seam.ui.test.wizard.Seam12WARNewOperationTest;
import org.jboss.tools.seam.ui.test.wizard.Seam20EARNewOperationTest;
import org.jboss.tools.seam.ui.test.wizard.Seam20WARNewOperationTest;
+import org.jboss.tools.seam.ui.test.wizard.SeamActionNewWizardTest;
import org.jboss.tools.seam.ui.test.wizard.SeamFormNewWizardTest;
import org.jboss.tools.seam.ui.test.wizard.SeamProjectNewWizardTest;
import org.jboss.tools.test.util.ProjectImportTestSetup;
@@ -43,6 +44,9 @@
suite.addTestSuite(OpenSeamComponentDialogTest.class);
suite.addTest(SeamComponentsViewAllTests.suite());
suite.addTest(SeamProjectNewWizardTest.suite());
+
+ suite.addTest(new ProjectImportTestSetup(new TestSuite(SeamActionNewWizardTest.class),
"org.jboss.tools.seam.core.test", new String[]{"projects/Test1-ear",
"projects/Test1-ejb", "projects/Test1"}, new
String[]{"Test1-ear", "Test1-ejb", "Test1"}));
+
suite.addTestSuite(SeamFormNewWizardTest.class);
suite.addTestSuite(SeamPreferencesPageTest.class);
suite.addTestSuite(SeamViewHyperlinkPartitionerTest.class);
Modified:
trunk/seam/tests/org.jboss.tools.seam.ui.test/src/org/jboss/tools/seam/ui/test/wizard/SeamActionNewWizardTest.java
===================================================================
---
trunk/seam/tests/org.jboss.tools.seam.ui.test/src/org/jboss/tools/seam/ui/test/wizard/SeamActionNewWizardTest.java 2009-02-05
18:37:37 UTC (rev 13492)
+++
trunk/seam/tests/org.jboss.tools.seam.ui.test/src/org/jboss/tools/seam/ui/test/wizard/SeamActionNewWizardTest.java 2009-02-05
18:50:56 UTC (rev 13493)
@@ -10,14 +10,18 @@
******************************************************************************/
package org.jboss.tools.seam.ui.test.wizard;
+import java.util.Map;
+
import junit.framework.TestCase;
import org.eclipse.jface.wizard.IWizard;
-import org.eclipse.jface.wizard.IWizardPage;
import org.eclipse.jface.wizard.WizardDialog;
import org.eclipse.ui.PlatformUI;
import org.jboss.tools.common.util.WorkbenchUtils;
import org.jboss.tools.seam.ui.ISeamUiConstants;
+import org.jboss.tools.seam.ui.widget.editor.IFieldEditor;
+import org.jboss.tools.seam.ui.wizard.IParameter;
+import org.jboss.tools.seam.ui.wizard.SeamBaseWizardPage;
/**
* @author eskimo
@@ -26,17 +30,25 @@
public class SeamActionNewWizardTest extends TestCase {
/**
- *
+ *
https://jira.jboss.org/jira/browse/JBIDE-3752
*/
- public void testSeamActionNewWizardInstanceIsCreated() {
+ public void testSeamActionNewWizardInstanceIsInitialized() {
IWizard
aWizard = WorkbenchUtils.findWizardByDefId(
ISeamUiConstants.NEW_SEAM_ACTION_WIZARD_ID);
-
+
WizardDialog dialog = new WizardDialog(
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),
aWizard);
- IWizardPage startPage = aWizard.getStartingPage();
+ dialog.setBlockOnOpen(false);
+ dialog.open();
+ try {
+ SeamBaseWizardPage page = (SeamBaseWizardPage)dialog.getSelectedPage();
+
+ page.getEditor(IParameter.SEAM_PROJECT_NAME).setValue("Test1-ear");
+ assertEquals("Seam web parent project was not initialized for Seam EAR
project.", "Test1", page.getRootSeamProject());
+ } finally {
+ dialog.close();
+ }
}
-
-}
+}
\ No newline at end of file