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