[jbosstools-commits] JBoss Tools SVN: r7015 - in trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core: refactoring and 1 other directory.

jbosstools-commits at lists.jboss.org jbosstools-commits at lists.jboss.org
Wed Mar 19 12:35:47 EDT 2008


Author: akazakov
Date: 2008-03-19 12:35:47 -0400 (Wed, 19 Mar 2008)
New Revision: 7015

Modified:
   trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/project/facet/ISeamFacetDataModelProperties.java
   trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/refactoring/SeamRenameProjectChange.java
   trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/refactoring/SeamRenameProjectParticipant.java
Log:
http://jira.jboss.com/jira/browse/JBIDE-1919 Added Refactoring project names

Modified: trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/project/facet/ISeamFacetDataModelProperties.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/project/facet/ISeamFacetDataModelProperties.java	2008-03-19 16:27:17 UTC (rev 7014)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/project/facet/ISeamFacetDataModelProperties.java	2008-03-19 16:35:47 UTC (rev 7015)
@@ -109,6 +109,11 @@
 	String TEST_CREATING = "seam.test.creating"; //$NON-NLS-1$
 
 	/**
+	 * Parent war project for EJB and Test projects.
+	 */
+	String SEAM_PARENT_PROJECT = "seam.parent.project"; //$NON-NLS-1$
+
+	/**
 	 * Ejb project name created from Seam Web Project in EAR deployment configuration
 	 */
 	String SEAM_EJB_PROJECT = "seam.ejb.project"; //$NON-NLS-1$

Modified: trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/refactoring/SeamRenameProjectChange.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/refactoring/SeamRenameProjectChange.java	2008-03-19 16:27:17 UTC (rev 7014)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/refactoring/SeamRenameProjectChange.java	2008-03-19 16:35:47 UTC (rev 7015)
@@ -14,7 +14,9 @@
 import java.util.List;
 
 import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
 import org.eclipse.core.resources.ProjectScope;
+import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.OperationCanceledException;
@@ -23,6 +25,7 @@
 import org.eclipse.ltk.core.refactoring.Change;
 import org.eclipse.ltk.core.refactoring.RefactoringStatus;
 import org.jboss.tools.seam.core.SeamCorePlugin;
+import org.jboss.tools.seam.internal.core.project.facet.ISeamFacetDataModelProperties;
 import org.osgi.service.prefs.BackingStoreException;
 
 /**
@@ -32,30 +35,43 @@
 	IProject project;
 	String newName;
 	String oldName;
-	
-	static String[] PROPERTIES = {
-		"seam.parent.project",
-		"seam.ear.project",
-		"seam.ejb.project",
-		"seam.test.project"
+
+	static String[] PROJECT_NAME_PROPERTIES = {
+		ISeamFacetDataModelProperties.SEAM_PARENT_PROJECT,
+		ISeamFacetDataModelProperties.SEAM_EAR_PROJECT,
+		ISeamFacetDataModelProperties.SEAM_EJB_PROJECT,
+		ISeamFacetDataModelProperties.SEAM_TEST_PROJECT
 	};
-	
-	List<String> relevantProperties = new ArrayList<String>();
-	
+
+	static String[] SOURCE_FOLDER_PROPERTIES = {
+		ISeamFacetDataModelProperties.ENTITY_BEAN_SOURCE_FOLDER,
+		ISeamFacetDataModelProperties.SESSION_BEAN_SOURCE_FOLDER,
+		ISeamFacetDataModelProperties.TEST_SOURCE_FOLDER,
+		ISeamFacetDataModelProperties.WEB_CONTENTS_FOLDER
+	};
+
+	List<String> relevantProjectNameProperties = new ArrayList<String>();
+	List<String> relevantSourceFolderProperties = new ArrayList<String>();
+
 	public SeamRenameProjectChange(IProject project, String newName, String oldName) {
 		this.project = project;
 		this.newName = newName;
 		this.oldName = oldName;
 		IEclipsePreferences ps = getSeamPreferences();
-		for (int i = 0; i < PROPERTIES.length; i++) {
-			if(oldName.equals(ps.get(PROPERTIES[i], null))) {
-				relevantProperties.add(PROPERTIES[i]);
-			}
+		for (int i = 0; i < PROJECT_NAME_PROPERTIES.length; i++) {
+			if(oldName.equals(ps.get(PROJECT_NAME_PROPERTIES[i], null))) {
+				relevantProjectNameProperties.add(PROJECT_NAME_PROPERTIES[i]);
+			} 
 		}
+		for (int i = 0; i < SOURCE_FOLDER_PROPERTIES.length; i++) {
+			if(ps.get(SOURCE_FOLDER_PROPERTIES[i], "").startsWith("/" + oldName + "/")) {
+				relevantSourceFolderProperties.add(SOURCE_FOLDER_PROPERTIES[i]);
+			} 
+		}
 	}
-	
+
 	public boolean isRelevant() {
-		return relevantProperties.size() > 0;
+		return relevantProjectNameProperties.size() > 0 || relevantSourceFolderProperties.size() > 0;
 	}
 
 	@Override
@@ -65,7 +81,7 @@
 
 	@Override
 	public String getName() {
-		return project.getName();
+		return "Update Seam Project Properties for " + project.getName();
 	}
 
 	@Override
@@ -73,8 +89,7 @@
 	}
 
 	@Override
-	public RefactoringStatus isValid(IProgressMonitor pm) throws CoreException,
-			OperationCanceledException {
+	public RefactoringStatus isValid(IProgressMonitor pm) throws CoreException,	OperationCanceledException {
 		return new RefactoringStatus();
 	}
 
@@ -84,12 +99,26 @@
 		try {
 			pm.beginTask(getName(), 1);
 
+			if(project.getName().equals(oldName)) {
+				IResource newProject = ResourcesPlugin.getWorkspace().getRoot().findMember(newName);
+				if(!project.exists() && (newProject instanceof IProject) && newProject.exists()) {
+					project = (IProject)newProject;
+				}
+			}
 			IEclipsePreferences ps = getSeamPreferences();
-			for (String property: relevantProperties) {
+			for (String property: relevantProjectNameProperties) {
 				if(oldName.equals(ps.get(property, null))) {
 					ps.put(property, newName);
 				}
 			}
+			String oldPrefix = "/" + oldName + "/";
+			for (String property: relevantSourceFolderProperties) {
+				String oldProperty = ps.get(property, "");
+				if(oldProperty.startsWith(oldPrefix) && oldProperty.length()>oldPrefix.length()) {
+					ps.put(property, "/" + newName + "/" + oldProperty.substring(oldPrefix.length()));
+				}
+			}
+
 			try {
 				ps.flush();
 			} catch (BackingStoreException e) {
@@ -105,5 +134,4 @@
 		IScopeContext projectScope = new ProjectScope(project);
 		return projectScope.getNode(SeamCorePlugin.PLUGIN_ID);
 	}
-
-}
+}
\ No newline at end of file

Modified: trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/refactoring/SeamRenameProjectParticipant.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/refactoring/SeamRenameProjectParticipant.java	2008-03-19 16:27:17 UTC (rev 7014)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/refactoring/SeamRenameProjectParticipant.java	2008-03-19 16:35:47 UTC (rev 7015)
@@ -26,10 +26,10 @@
  */
 public class SeamRenameProjectParticipant extends RenameParticipant {
 	public static final String PARTICIPANT_NAME="seam-RenameProjectParticipant";
-	
+
 	IProject project;
 	String oldName;
-	
+
 	public SeamRenameProjectParticipant() {}
 
 	@Override
@@ -42,7 +42,7 @@
 		if (!pm.isCanceled()) {
 			String newName = getArguments().getNewName();
 			if(newName == null || newName.trim().length() == 0) return null;
-			CompositeChange change = new CompositeChange("Update Seam projects");
+			CompositeChange change = new CompositeChange("Update Seam Projects");
 			IProject[] ps = ResourcesPlugin.getWorkspace().getRoot().getProjects();
 			for (int i = 0; i < ps.length; i++) {
 				SeamRenameProjectChange c = new SeamRenameProjectChange(ps[i], newName, oldName);
@@ -67,5 +67,4 @@
 		oldName = project.getName();
 		return true;
 	}
-
-}
+}
\ No newline at end of file




More information about the jbosstools-commits mailing list