Author: jkoster
Date: 2009-10-27 15:49:18 +0100 (Tue, 27 Oct 2009)
New Revision: 39379

Modified:
   
CMSContainer/branches/b1_6/CMSContainer/cmsc/utilities/src/java/com/finalist/cmsc/builders/TreeBuilder.java
   
CMSContainer/branches/b1_6/CMSContainer/cmsc/utilities/src/java/com/finalist/cmsc/mmbase/TreeUtil.java
Log:
CMSC-1575 - Creating pages or sites with spaces in the end, saves space also in 
titles. Remove spaces from both title and urlfragments.

Modified: 
CMSContainer/branches/b1_6/CMSContainer/cmsc/utilities/src/java/com/finalist/cmsc/builders/TreeBuilder.java
===================================================================
--- 
CMSContainer/branches/b1_6/CMSContainer/cmsc/utilities/src/java/com/finalist/cmsc/builders/TreeBuilder.java
 2009-10-27 14:49:16 UTC (rev 39378)
+++ 
CMSContainer/branches/b1_6/CMSContainer/cmsc/utilities/src/java/com/finalist/cmsc/builders/TreeBuilder.java
 2009-10-27 14:49:18 UTC (rev 39379)
@@ -77,32 +77,41 @@
       log.debug(objectNode.getChanged());
       String fragmentFieldname = getFragmentFieldnameForBuilder();
       if (objectNode.getChanged().contains(fragmentFieldname)) {
-         
+
          log.debug("getChanged " + 
objectNode.getStringValue(fragmentFieldname));
          String pathFragment = objectNode.getStringValue(fragmentFieldname);
          if (!pathFragment.equals(pathFragment.trim())) {
             objectNode.setValue(fragmentFieldname, pathFragment.trim());
          }
          String managerOfRootNode = getRootManagerName();
-         TreePathCache.updateCache(managerOfRootNode,  objectNode.getNumber(), 
objectNode.getStringValue(fragmentFieldname));
+         TreePathCache.updateCache(managerOfRootNode, objectNode.getNumber(), 
objectNode.getStringValue(fragmentFieldname));
       }
-      
+
+      // Remove the trailing spaces from the title
+      String nameFieldname = getNameFieldname();
+      if (objectNode.getChanged().contains(nameFieldname)) {
+         String nameValue = objectNode.getStringValue(nameFieldname);
+         objectNode.setValue(nameFieldname, nameValue.trim());
+         String managerOfRootNode = getRootManagerName();
+         TreePathCache.updateCache(managerOfRootNode, objectNode.getNumber(), 
objectNode.getStringValue(nameFieldname));
+      }
+
       updateEmptyNameField(objectNode);
-      
+
       boolean retval = super.commit(objectNode);
       return retval;
    }
 
     private void updateEmptyNameField(MMObjectNode objectNode) {
         String nameFieldname = getNameFieldname();
-        if (StringUtils.isEmpty(objectNode.getStringValue(nameFieldname))) {
+        if (StringUtils.isBlank(objectNode.getStringValue(nameFieldname))) {
             String fragmentFieldname = getFragmentFieldnameForBuilder();
-            String pathFragment = objectNode.getStringValue(fragmentFieldname);
+            String pathFragment = 
objectNode.getStringValue(fragmentFieldname).trim();
             objectNode.setValue(nameFieldname, pathFragment);
         }
         else {
             String fragmentFieldname = getFragmentFieldnameForBuilder();
-            if 
(StringUtils.isEmpty(objectNode.getStringValue(fragmentFieldname))) {
+            if 
(StringUtils.isBlank(objectNode.getStringValue(fragmentFieldname))) {
                 String name = objectNode.getStringValue(nameFieldname);
                 String pathFragment = TreeUtil.convertToFragment(name);
                 objectNode.setValue(fragmentFieldname, pathFragment);

Modified: 
CMSContainer/branches/b1_6/CMSContainer/cmsc/utilities/src/java/com/finalist/cmsc/mmbase/TreeUtil.java
===================================================================
--- 
CMSContainer/branches/b1_6/CMSContainer/cmsc/utilities/src/java/com/finalist/cmsc/mmbase/TreeUtil.java
      2009-10-27 14:49:16 UTC (rev 39378)
+++ 
CMSContainer/branches/b1_6/CMSContainer/cmsc/utilities/src/java/com/finalist/cmsc/mmbase/TreeUtil.java
      2009-10-27 14:49:18 UTC (rev 39379)
@@ -545,10 +545,10 @@
 
    public static String convertToFragment(String name) {
 
-      //todo make a common solution for urlgragment  generation.
-      name = replaceChineseCharacter(name);
+      // Todo make a common solution for urlfragment generation.
+      name = replaceChineseCharacters(name);
 
-      String pathFragment = EncodingUtil.convertNonAscii(name);
+      String pathFragment = EncodingUtil.convertNonAscii(name.trim());
       pathFragment = pathFragment.replaceAll("\\s", "_");
       while (pathFragment.length() > 1 && pathFragment.substring(0, 
1).matches("[_.-]")) {
          pathFragment = pathFragment.substring(1, pathFragment.length());
@@ -558,7 +558,7 @@
       return pathFragment;
    }
 
-   private static String replaceChineseCharacter(String input) {
+   private static String replaceChineseCharacters(String input) {
       Pattern pa = Pattern.compile("[\u4E00-\u9FA0]", Pattern.CANON_EQ);
       Matcher m = pa.matcher(input);
       if (m.find()) {

_______________________________________________
Cvs mailing list
Cvs@lists.mmbase.org
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to