[jbosstools-commits] JBoss Tools SVN: r23219 - trunk/jsf/plugins/org.jboss.tools.jsf.ui/src/org/jboss/tools/jsf/ui/el/refactoring.

jbosstools-commits at lists.jboss.org jbosstools-commits at lists.jboss.org
Sun Jul 4 14:34:13 EDT 2010


Author: dazarov
Date: 2010-07-04 14:34:12 -0400 (Sun, 04 Jul 2010)
New Revision: 23219

Modified:
   trunk/jsf/plugins/org.jboss.tools.jsf.ui/src/org/jboss/tools/jsf/ui/el/refactoring/MessagesFileRenameParticipant.java
Log:
https://jira.jboss.org/browse/JBIDE-4858

Modified: trunk/jsf/plugins/org.jboss.tools.jsf.ui/src/org/jboss/tools/jsf/ui/el/refactoring/MessagesFileRenameParticipant.java
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf.ui/src/org/jboss/tools/jsf/ui/el/refactoring/MessagesFileRenameParticipant.java	2010-07-04 09:01:46 UTC (rev 23218)
+++ trunk/jsf/plugins/org.jboss.tools.jsf.ui/src/org/jboss/tools/jsf/ui/el/refactoring/MessagesFileRenameParticipant.java	2010-07-04 18:34:12 UTC (rev 23219)
@@ -11,10 +11,12 @@
 package org.jboss.tools.jsf.ui.el.refactoring;
 
 import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.OperationCanceledException;
+import org.eclipse.jdt.core.IJavaProject;
 import org.eclipse.ltk.core.refactoring.Change;
 import org.eclipse.ltk.core.refactoring.CompositeChange;
 import org.eclipse.ltk.core.refactoring.RefactoringStatus;
@@ -24,6 +26,7 @@
 import org.eclipse.text.edits.MultiTextEdit;
 import org.eclipse.text.edits.ReplaceEdit;
 import org.eclipse.text.edits.TextEdit;
+import org.jboss.tools.common.model.util.EclipseResourceUtil;
 import org.jboss.tools.jsf.ui.JsfUIMessages;
 import org.jboss.tools.jst.web.kb.refactoring.SearchUtil;
 import org.jboss.tools.jst.web.kb.refactoring.SearchUtil.FileResult;
@@ -44,9 +47,16 @@
 			if(PROPERTIES_EXT.equals(ext)){
 				
 				IPath path = file.getFullPath();
+				
 				String newName = getArguments().getNewName();
-				String oldName = "\"demo.Messages\"";
+				newName = newName.replace(".properties","");
+				String oldName = getQualifiedName(path);
+				String fileName = file.getName().replace(".properties","");
+				newName = "\""+oldName.replace(fileName,newName)+"\"";
 				
+				System.out.println("newName - <"+newName+">");
+				System.out.println("oldName - <"+oldName+">");
+				
 				SearchUtil su = new SearchUtil(SearchUtil.XML_FILES, oldName);
 				SearchResult result = su.searchInNodeAttribute(file.getProject(), ":loadBundle", "basename");
 				for(FileResult fr : result.getEntries()){
@@ -55,7 +65,7 @@
 					fileChange.setEdit(root);
 					rootChange.add(fileChange);
 					for(int position : fr.getPositions()){
-						TextEdit edit = new ReplaceEdit(position, oldName.length(), "\""+newName+"\"");
+						TextEdit edit = new ReplaceEdit(position, oldName.length(), newName);
 						fileChange.addEdit(edit);
 					}
 				}
@@ -64,6 +74,25 @@
 		}
 		return false;
 	}
+	
+	private String getQualifiedName(IPath path){
+		IJavaProject javaProject = EclipseResourceUtil.getJavaProject(file.getProject());
+		
+		// searching java, xml and property files in source folders
+		if(javaProject != null){
+			for(IResource resource : EclipseResourceUtil.getJavaSourceRoots(file.getProject())){
+				IPath javaSource = resource.getFullPath();
+				if(javaSource.segmentCount() == javaSource.matchingFirstSegments(path)){
+					IPath relativePath = path.removeFirstSegments(javaSource.segmentCount());
+					String pathString = relativePath.toString();
+					pathString = pathString.replace(".properties","");
+					pathString = pathString.replace("/",".");
+					return "\""+pathString+"\"";
+				}
+			}
+		}
+		return "";
+	}
 
 	@Override
 	public RefactoringStatus checkConditions(IProgressMonitor pm,



More information about the jbosstools-commits mailing list