? 89204-impl.diff Index: form/nbproject/project.xml =================================================================== RCS file: /cvs/i18n/form/nbproject/project.xml,v retrieving revision 1.15 diff -u -r1.15 project.xml --- form/nbproject/project.xml 9 Nov 2006 16:53:59 -0000 1.15 +++ form/nbproject/project.xml 30 Jan 2007 13:12:15 -0000 @@ -65,6 +65,15 @@ + org.netbeans.modules.java.project + + + + 1 + 1.11 + + + org.netbeans.modules.projectapi Index: form/src/org/netbeans/modules/i18n/form/I18nServiceImpl.java =================================================================== RCS file: /cvs/i18n/form/src/org/netbeans/modules/i18n/form/I18nServiceImpl.java,v retrieving revision 1.7 diff -u -r1.7 I18nServiceImpl.java --- form/src/org/netbeans/modules/i18n/form/I18nServiceImpl.java 2 Oct 2006 15:28:29 -0000 1.7 +++ form/src/org/netbeans/modules/i18n/form/I18nServiceImpl.java 30 Jan 2007 13:12:15 -0000 @@ -26,7 +26,6 @@ import java.beans.PropertyEditor; import java.io.IOException; import java.util.*; - import org.openide.ErrorManager; import org.openide.DialogDisplayer; import org.openide.filesystems.FileObject; @@ -37,11 +36,15 @@ import org.openide.DialogDescriptor; import org.openide.util.NbBundle; import org.netbeans.api.java.classpath.ClassPath; - +import org.netbeans.api.java.project.JavaProjectConstants; +import org.netbeans.api.project.FileOwnerQuery; +import org.netbeans.api.project.Project; +import org.netbeans.api.project.ProjectUtils; +import org.netbeans.api.project.SourceGroup; +import org.netbeans.api.project.Sources; import org.netbeans.modules.properties.*; import org.netbeans.modules.i18n.*; import org.netbeans.modules.i18n.java.JavaResourceHolder; - import org.netbeans.modules.form.I18nService; import org.netbeans.modules.form.I18nValue; @@ -461,18 +464,30 @@ return null; FileObject folder; - String fileName; ClassPath cp = ClassPath.getClassPath(srcDataObject.getPrimaryFile(), ClassPath.SOURCE); + FileObject root = cp.getRoots()[0]; + String fileName; int idx = filePath.lastIndexOf('/'); + boolean hasCustomRes = false; + Project owner = FileOwnerQuery.getOwner(srcDataObject.getPrimaryFile()); + if (owner != null) { + // this is for projects that have split sources/resources folder structures. + Sources srcs = ProjectUtils.getSources(owner); + SourceGroup[] grps = srcs.getSourceGroups(JavaProjectConstants.SOURCES_TYPE_RESOURCES); + if (grps != null && grps.length > 0) { + hasCustomRes = true; + root = grps[0].getRootFolder(); + } + } if (idx < 0) { // default package - folder = cp.getRoots()[0]; + folder = root; fileName = filePath; } else { String folderPath = filePath.substring(0, idx); folder = cp.findResource(folderPath); - if (folder == null) { - folder = FileUtil.createFolder(cp.getRoots()[0], folderPath); + if (folder == null || hasCustomRes) { + folder = FileUtil.createFolder(root, folderPath); } fileName = filePath.substring(idx + 1); }