Modified: ofbiz/trunk/framework/webtools/src/org/ofbiz/webtools/labelmanager/LabelManagerFactory.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/src/org/ofbiz/webtools/labelmanager/LabelManagerFactory.java?rev=748732&r1=748731&r2=748732&view=diff ============================================================================== --- ofbiz/trunk/framework/webtools/src/org/ofbiz/webtools/labelmanager/LabelManagerFactory.java (original) +++ ofbiz/trunk/framework/webtools/src/org/ofbiz/webtools/labelmanager/LabelManagerFactory.java Fri Feb 27 23:01:41 2009 @@ -38,8 +38,11 @@ import org.ofbiz.base.util.UtilValidate; import org.ofbiz.base.util.UtilXml; import org.ofbiz.base.util.cache.UtilCache; +import org.ofbiz.entity.GenericDelegator; import org.ofbiz.entity.model.ModelReader; import org.ofbiz.service.DispatchContext; +import org.ofbiz.service.GenericServiceException; +import org.ofbiz.service.LocalDispatcher; import org.ofbiz.service.ServiceUtil; import org.w3c.dom.Comment; import org.w3c.dom.Document; @@ -63,7 +66,7 @@ protected static Map<String, Map<String, Integer>> references = null; protected static int duplicatedLocalesLabels = 0; - protected static String delegatorName; + protected static GenericDelegator delegator; protected static ModelReader entityModelReader; protected static DispatchContext dispatchContext; @@ -73,7 +76,7 @@ } LabelManagerFactory lmf = labelManagerFactoryCache.get(delegatorName); - + if (lmf == null) { lmf = new LabelManagerFactory(delegatorName); labelManagerFactoryCache.put(delegatorName, lmf); @@ -82,10 +85,9 @@ } protected LabelManagerFactory(String delegatorName) throws GeneralException { - LabelManagerFactory.delegatorName = delegatorName; - LabelManagerFactory.entityModelReader = ModelReader.getModelReader(delegatorName); - LabelManagerFactory.dispatchContext = new DispatchContext("LabelManagerDispCtx", null, this.getClass().getClassLoader(), null); - + delegator = GenericDelegator.getGenericDelegator(delegatorName); + entityModelReader = ModelReader.getModelReader(delegatorName); + dispatchContext = new DispatchContext("LabelManagerFactoryDispCtx", null, this.getClass().getClassLoader(), null); prepareAll(); } @@ -99,53 +101,63 @@ int duplicatedLocales = 0; try { + boolean sharkComponent = false; Collection<ComponentConfig> componentConfigs = ComponentConfig.getAllComponents(); for (ComponentConfig componentConfig: componentConfigs) { String componentName = componentConfig.getComponentName(); List<File> resourceFiles = FileUtil.findXmlFiles(componentConfig.getRootLocation(), null, "resource", null); - - for (File resourceFile: resourceFiles) { - String fileName = resourceFile.getName(); - Document resourceDocument = UtilXml.readXmlDocument(resourceFile.toURI().toURL()); - Element resourceElem = resourceDocument.getDocumentElement(); - String labelKeyComment = ""; - - for (Node propertyNode: UtilXml.childNodeList(resourceElem.getFirstChild())) { - if (propertyNode instanceof Element) { - Element propertyElem = (Element)propertyNode; - String labelKey = StringUtil.htmlSpecialChars(propertyElem.getAttribute("key"), true, true, false); - String labelComment = ""; - - for (Node valueNode: UtilXml.childNodeList(propertyElem.getFirstChild())) { - if (valueNode instanceof Element) { - Element valueElem = (Element)valueNode; - String localeName = valueElem.getAttribute("xml:lang"); - String labelValue = StringUtil.htmlSpecialChars(UtilXml.nodeValue(valueElem.getFirstChild()), true, true, false); - LabelInfo label = (LabelInfo)labels.get(labelKey + keySeparator + fileName); - - if (UtilValidate.isEmpty(label)) { - label = new LabelInfo(labelKey, labelKeyComment, fileName, componentName, localeName, labelValue, labelComment); - labels.put(labelKey + keySeparator + fileName, label); - } else { - if (label.setLabelValue(localeName, labelValue, labelComment, false)) { - duplicatedLocales++; + boolean cycle = true; + while (cycle) { + for (File resourceFile: resourceFiles) { + String fileName = resourceFile.getName(); + Document resourceDocument = UtilXml.readXmlDocument(resourceFile.toURI().toURL()); + Element resourceElem = resourceDocument.getDocumentElement(); + String labelKeyComment = ""; + + for (Node propertyNode: UtilXml.childNodeList(resourceElem.getFirstChild())) { + if (propertyNode instanceof Element) { + Element propertyElem = (Element)propertyNode; + String labelKey = StringUtil.htmlSpecialChars(propertyElem.getAttribute("key"), true, true, false); + String labelComment = ""; + + for (Node valueNode: UtilXml.childNodeList(propertyElem.getFirstChild())) { + if (valueNode instanceof Element) { + Element valueElem = (Element)valueNode; + String localeName = valueElem.getAttribute("xml:lang"); + String labelValue = StringUtil.htmlSpecialChars(UtilXml.nodeValue(valueElem.getFirstChild()), true, true, false); + LabelInfo label = (LabelInfo)labels.get(labelKey + keySeparator + fileName); + + if (UtilValidate.isEmpty(label)) { + label = new LabelInfo(labelKey, labelKeyComment, fileName, componentName, localeName, labelValue, labelComment); + labels.put(labelKey + keySeparator + fileName, label); + } else { + if (label.setLabelValue(localeName, labelValue, labelComment, false)) { + duplicatedLocales++; + } } + localesFound.add(localeName); + componentNamesFound.add(componentName); + fileNamesFound.put(fileName, resourceFile.toURI().toString()); + fileComponent.put(fileName, componentName); + labelComment = ""; + } else if (valueNode instanceof Comment) { + labelComment = labelComment + StringUtil.htmlSpecialChars(valueNode.getNodeValue(), true, true, false); } - localesFound.add(localeName); - componentNamesFound.add(componentName); - fileNamesFound.put(fileName, resourceFile.toURI().toString()); - fileComponent.put(fileName, componentName); - labelComment = ""; - } else if (valueNode instanceof Comment) { - labelComment = labelComment + StringUtil.htmlSpecialChars(valueNode.getNodeValue(), true, true, false); } + labelKeyComment = ""; + } else if (propertyNode instanceof Comment) { + labelKeyComment = labelKeyComment + StringUtil.htmlSpecialChars(propertyNode.getNodeValue(), true, true, false); } - labelKeyComment = ""; - } else if (propertyNode instanceof Comment) { - labelKeyComment = labelKeyComment + StringUtil.htmlSpecialChars(propertyNode.getNodeValue(), true, true, false); } } + if (!sharkComponent) { + componentName = "shark"; + resourceFiles = FileUtil.findXmlFiles(System.getProperty("ofbiz.home") + "/specialpurpose/shark", null, "resource", null); + sharkComponent = true; + } else { + cycle = false; + } } } @@ -159,6 +171,18 @@ duplicatedLocalesLabels = duplicatedLocales; } + public static GenericDelegator getDelegator() { + return delegator; + } + + public static ModelReader getModelReader() { + return entityModelReader; + } + + public static DispatchContext getDispatchContext() { + return dispatchContext; + } + public static Map<String, LabelInfo> getLabels() { return labels; } @@ -186,39 +210,43 @@ public static Map<String, Map<String, Integer>> getReferences() { return references; } - + public static Set<String> getLabelsList() { return labels.keySet(); } - + public static Set<String> getReferencesList() { return references.keySet(); } - + public static int getLabelReferenceFile(String key) { int refFile = 0; boolean keyFound = false; - + + if (key == null) { + key = ""; + } + for (Map.Entry<String, String> e: fileNamesFound.entrySet()) { String keyToSearch = key + keySeparator + e.getKey(); - + if (labels.containsKey(keyToSearch)) { keyFound = true; break; } } - + if (!keyFound) { Map<String, Integer> reference = references.get(key); - + if (UtilValidate.isNotEmpty(reference)) { refFile = reference.size(); } } - + return refFile; } - + public static int getDuplicatedLocalesLabels() { return duplicatedLocalesLabels; } @@ -266,6 +294,35 @@ return ServiceUtil.returnSuccess(); } + public static Map<String, Object> updateAndSaveLabelKey(DispatchContext dctx, Map<String, ? extends Object> context) { + String key = (String)context.get("key"); + String keyComment = (String)context.get("keyComment"); + String update_label = (String)context.get("update_label"); + String fileName = (String)context.get("fileName"); + String confirm = (String)context.get("confirm"); + String removeLabel = (String)context.get("removeLabel"); + List<String> localeNames = UtilGenerics.cast(context.get("localeNames")); + List<String> localeValues = UtilGenerics.cast(context.get("localeValues")); + List<String> localeComments = UtilGenerics.cast(context.get("localeComments")); + Locale locale = (Locale) context.get("locale"); + LocalDispatcher dispatcher = dctx.getDispatcher(); + + Map<String, Object> contextInput = UtilMisc.toMap("key", key, "keyComment", keyComment, "update_label", update_label, + "fileName", fileName, "confirm", confirm, "removeLabel", removeLabel, + "localeNames", localeNames, "localeValues", localeValues, "localeComments", localeComments); + try { + Map<String, Object> updatedKey = dispatcher.runSync("updateLabelKey", contextInput); + + if (ServiceUtil.isError(updatedKey)) { + return updatedKey; + } else { + return dispatcher.runSync("saveLabelsToXmlFile", UtilMisc.toMap("fileName", fileName)); + } + } catch (GenericServiceException e) { + return ServiceUtil.returnError("error on saving label key :" + key); + } + } + private static int updateLabelValue(List<String> localeNames, List<String> localeValues, List<String> localeComments, LabelInfo label, String key, String keyComment, String fileName) { int notEmptyLabels = 0; int i = 0; @@ -295,3 +352,4 @@ return notEmptyLabels; } } + Modified: ofbiz/trunk/framework/webtools/src/org/ofbiz/webtools/labelmanager/LabelReferences.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/src/org/ofbiz/webtools/labelmanager/LabelReferences.java?rev=748732&r1=748731&r2=748732&view=diff ============================================================================== --- ofbiz/trunk/framework/webtools/src/org/ofbiz/webtools/labelmanager/LabelReferences.java (original) +++ ofbiz/trunk/framework/webtools/src/org/ofbiz/webtools/labelmanager/LabelReferences.java Fri Feb 27 23:01:41 2009 @@ -6,9 +6,9 @@ * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY @@ -23,7 +23,12 @@ import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.TreeMap; +import java.util.TreeSet; + +import javolution.util.FastList; +import javolution.util.FastMap; import org.ofbiz.base.util.Debug; import org.ofbiz.base.util.FileUtil; @@ -31,7 +36,14 @@ import org.ofbiz.base.util.UtilFormatOut; import org.ofbiz.base.util.UtilValidate; import org.ofbiz.base.util.UtilXml; +import org.ofbiz.entity.GenericDelegator; import org.ofbiz.entity.GenericEntityException; +import org.ofbiz.entity.GenericValue; +import org.ofbiz.entity.condition.EntityComparisonOperator; +import org.ofbiz.entity.condition.EntityCondition; +import org.ofbiz.entity.condition.EntityConditionList; +import org.ofbiz.entity.condition.EntityExpr; +import org.ofbiz.entity.condition.EntityOperator; import org.ofbiz.entity.model.ModelEntity; import org.ofbiz.entity.model.ModelField; import org.ofbiz.service.ModelParam; @@ -46,46 +58,55 @@ private static final String uiLabelMapInLayoutSettings = "uiLabelMap."; private static final String formFieldTitle = "FormFieldTitle_"; private static final String getMessage = "UtilProperties.getMessage"; + private static final String getEntityLabel = ".get(\""; + private static final String startExpression = "${"; + private static final String endExpression = "}"; private static Map<String, Map<String, Integer>> references = null; - + public static Map<String, Map<String, Integer>> getLabelReferences() throws GeneralException { references = new TreeMap<String, Map<String, Integer>>(); - + // get labels from FTL files getLabelsFromFtlFiles(); - + // get labels from java files getLabelsFromJavaFiles(); - + // get labels from simple method files getLabelsFromSimpleMethodFiles(); - + // get labels from form widgets files getLabelsFromFormWidgets(); - + // get labels from screen widgets files getLabelsFromScreenWidgets(); - + // get labels from menu widgets files getLabelsFromMenuWidgets(); - + + // get labels from tree widgets files + getLabelsFromTreeWidgets(); + + // get labels from Ofbiz components files + getLabelsFromOfbizComponents(); + return references; } - + private static void getLabelsFromFtlFiles() throws GeneralException { try { List<File> ftlFiles = FileUtil.findFiles("ftl", null, null, uiLabelMap); - + for (File ftlFile: ftlFiles) { String fileNameURI = ftlFile.toURI().toString(); String inFile = FileUtil.readString("UTF-8", ftlFile); int pos = 0; while (pos >= 0){ pos = inFile.indexOf(uiLabelMap, pos); - + if (pos >= 0) { int endLabel = inFile.indexOf("}", pos); - + if (endLabel >= 0) { String labelKey = inFile.substring(pos + uiLabelMap.length(), endLabel); setLabelReference(labelKey, fileNameURI); @@ -96,15 +117,22 @@ } } } + /* + ftlFiles = FileUtil.findFiles("ftl", null, null, getEntityLabel); + + for (File ftlFile: ftlFiles) { + getFtlEntityLabels(ftlFile, getEntityLabel); + } + */ } catch(IOException ioe) { throw new GeneralException(ioe.getMessage()); } } - + private static void getLabelsFromJavaFiles() throws GeneralException { try { List<File> javaFiles = FileUtil.findFiles("java", null, null, getMessage); - + for (File javaFile: javaFiles) { getJavaLabels(javaFile, getMessage); } @@ -112,7 +140,7 @@ throw new GeneralException(ioe.getMessage()); } } - + private static void getJavaLabels(File javaFile, String message) throws GeneralException { try { String fileNameURI = javaFile.toURI().toString(); @@ -120,32 +148,32 @@ int pos = 0; while (pos >= 0){ pos = inFile.indexOf(message, pos); - + if (pos >= 0) { int offSet = (pos + 200 > inFile.length()) ? inFile.length() : pos + 200; String searchComma = inFile.substring(pos, offSet); int firstComma = searchComma.indexOf(",\"", 0); - + if (firstComma < 0) { firstComma = searchComma.indexOf(", \"", 0); pos = pos + firstComma + 3; } else { pos = pos + firstComma + 2; } - + if (firstComma >= 0) { offSet = (pos + 100 > inFile.length()) ? inFile.length() : pos + 100; searchComma = inFile.substring(pos, offSet); int secondComma = searchComma.indexOf("\",", 0); int endString = pos; - + if (secondComma < 0) { secondComma = searchComma.indexOf("\" ,", 0); endString = endString + secondComma + 1; } else { endString = endString + secondComma; } - + if (secondComma >= 0) { setLabelReference(inFile.substring(pos, endString), fileNameURI); pos = endString; @@ -158,16 +186,50 @@ throw new GeneralException(ioe.getMessage()); } } - + + private static void getFtlEntityLabels(File javaFile, String message) throws GeneralException { + try { + String fileNameURI = javaFile.toURI().toString(); + String inFile = FileUtil.readString("UTF-8", javaFile); + int pos = 0; + while (pos >= 0){ + pos = inFile.indexOf(message, pos); + + if (pos >= 0) { + int offSet = (pos + 200 > inFile.length()) ? inFile.length() : pos + 200; + String searchDoubleQuote = inFile.substring(pos + 6, offSet); + int firstComma = searchDoubleQuote.indexOf("\"", 0); + + if (firstComma >= 0) { + offSet = (firstComma + 100 > inFile.length()) ? inFile.length() : firstComma + 100; + String searchLocale = searchDoubleQuote.substring(firstComma, offSet); + int endMethodName = searchLocale.indexOf(", locale)", 0); + + if (endMethodName < 0) { + endMethodName = searchLocale.indexOf(",locale)", 0); + } + if (endMethodName >= 0) { + setLabelReference(inFile.substring(pos + 6, pos + 6 + firstComma), fileNameURI); + pos = pos + 6; + } + } + pos += 1; + } + } + } catch(IOException ioe) { + throw new GeneralException(ioe.getMessage()); + } + } + private static void getLabelsFromSimpleMethodFiles() throws GeneralException { try { List<File> simpleMethodsFiles = FileUtil.findXmlFiles(null, null, "simple-methods", "http://ofbiz.apache.org/dtds/simple-methods.xsd"); - + for (File simpleMethodFile: simpleMethodsFiles) { String fileNameURI = simpleMethodFile.toURI().toString(); Document simpleMethodDocument = UtilXml.readXmlDocument(simpleMethodFile.toURI().toURL()); Element rootElem = simpleMethodDocument.getDocumentElement(); - + for (Element elem1: UtilXml.childElementList(rootElem)) { checkSimpleMethodTag(elem1, fileNameURI); for (Element elem2: UtilXml.childElementList(elem1)) { @@ -193,41 +255,54 @@ throw new GeneralException(e.getMessage()); } } - + private static void checkSimpleMethodTag(Element elem, String fileNameURI) throws GeneralException { // fail-property labels if ("fail-property".equals(elem.getTagName())) { getFailPropertyTag(elem, fileNameURI); - // property-to-field labels - } else if ("property-to-field".equals(elem.getTagName())) { - getPropertyToFieldTag(elem, fileNameURI); } } - + private static void getLabelsFromFormWidgets() throws GeneralException { try { List<File> formsFiles = FileUtil.findXmlFiles(null, null, "forms", "http://ofbiz.apache.org/dtds/widget-form.xsd"); - + for (File formsFile: formsFiles) { + Map<String, String> autoFieldsEntity = FastMap.newInstance(); + Map<String, String> autoFieldsService = FastMap.newInstance(); String fileNameURI = formsFile.toURI().toString(); Document formDocument = UtilXml.readXmlDocument(formsFile.toURI().toURL()); Element rootElem = formDocument.getDocumentElement(); - + for (Element elem1: UtilXml.childElementList(rootElem)) { - checkFormsTag(elem1, fileNameURI); + checkFormsTag(elem1, fileNameURI, autoFieldsEntity, autoFieldsService); for (Element elem2: UtilXml.childElementList(elem1)) { - checkFormsTag(elem2, fileNameURI); + checkFormsTag(elem2, fileNameURI, autoFieldsEntity, autoFieldsService); for (Element elem3: UtilXml.childElementList(elem2)) { - checkFormsTag(elem3, fileNameURI); + checkFormsTag(elem3, fileNameURI, autoFieldsEntity, autoFieldsService); for (Element elem4: UtilXml.childElementList(elem3)) { - checkFormsTag(elem4, fileNameURI); + checkFormsTag(elem4, fileNameURI, autoFieldsEntity, autoFieldsService); for (Element elem5: UtilXml.childElementList(elem4)) { - checkFormsTag(elem5, fileNameURI); + checkFormsTag(elem5, fileNameURI, autoFieldsEntity, autoFieldsService); } } } } } + + for (Map.Entry<String, String> entry: autoFieldsEntity.entrySet()) { + if ("N".equals(entry.getValue())) { + String labelKey = formFieldTitle + entry.getKey(); + setLabelReference(labelKey, fileNameURI); + } + } + + for (Map.Entry<String, String> entry: autoFieldsService.entrySet()) { + if ("N".equals(entry.getValue())) { + String labelKey = formFieldTitle + entry.getKey(); + setLabelReference(labelKey, fileNameURI); + } + } } } catch(IOException ioe) { throw new GeneralException(ioe.getMessage()); @@ -235,17 +310,17 @@ throw new GeneralException(e.getMessage()); } } - - private static void checkFormsTag(Element elem, String fileNameURI) throws GeneralException { + + private static void checkFormsTag(Element elem, String fileNameURI, Map<String, String> autoFieldsEntity, Map<String, String> autoFieldsService) throws GeneralException { // auto fields entity labels if ("auto-fields-entity".equals(elem.getTagName())) { - getAutoFieldsEntityTag(elem, fileNameURI); + getAutoFieldsEntityTag(elem, fileNameURI, autoFieldsEntity); // auto fields service labels } else if ("auto-fields-service".equals(elem.getTagName())) { - getAutoFieldsServiceTag(elem, fileNameURI); + getAutoFieldsServiceTag(elem, fileNameURI, autoFieldsService); // field labels } else if ("field".equals(elem.getTagName())) { - getFieldTag(elem, fileNameURI); + getFieldTag(elem, fileNameURI, autoFieldsEntity, autoFieldsService); // option description labels } else if ("option".equals(elem.getTagName())) { getOptionTag(elem, fileNameURI); @@ -253,18 +328,24 @@ } else if ("hyperlink".equals(elem.getTagName()) || "sub-hyperlink".equals(elem.getTagName())) { getHyperlinkTag(elem, fileNameURI); + // entity-options labels + } else if ("entity-options".equals(elem.getTagName())) { + getEntityOptionsTag(elem, fileNameURI); + // display-entity labels + } else if ("display-entity".equals(elem.getTagName())) { + getDisplayEntityTag(elem, fileNameURI); } } - + private static void getLabelsFromScreenWidgets() throws GeneralException { try { List<File> screensFiles = FileUtil.findXmlFiles(null, null, "screens", "http://ofbiz.apache.org/dtds/widget-screen.xsd"); - + for (File screensFile: screensFiles) { String fileNameURI = screensFile.toURI().toString(); Document screenDocument = UtilXml.readXmlDocument(screensFile.toURI().toURL()); Element rootElem = screenDocument.getDocumentElement(); - + for (Element elem1: UtilXml.childElementList(rootElem)) { checkScreensTag(elem1, fileNameURI); for (Element elem2: UtilXml.childElementList(elem1)) { @@ -314,7 +395,7 @@ throw new GeneralException(e.getMessage()); } } - + private static void checkScreensTag(Element elem, String fileNameURI) { // set labels if ("set".equals(elem.getTagName())) { @@ -330,16 +411,16 @@ getLinkTag(elem, fileNameURI); } } - + private static void getLabelsFromMenuWidgets() throws GeneralException { try { List<File> menusFiles = FileUtil.findXmlFiles(null, null, "menus", "http://ofbiz.apache.org/dtds/widget-menu.xsd"); - + for (File menuFiles: menusFiles) { String fileNameURI = menuFiles.toURI().toString(); Document menuDocument = UtilXml.readXmlDocument(menuFiles.toURI().toURL()); Element rootElem = menuDocument.getDocumentElement(); - + for (Element elem1: UtilXml.childElementList(rootElem)) { checkMenuTag(elem1, fileNameURI); for (Element elem2: UtilXml.childElementList(elem1)) { @@ -362,23 +443,92 @@ throw new GeneralException(e.getMessage()); } } - + private static void checkMenuTag(Element elem, String fileNameURI) { // menu-item labels if ("menu-item".equals(elem.getTagName())) { getMenuItemTag(elem, fileNameURI); } } - + + private static void getLabelsFromTreeWidgets() throws GeneralException { + try { + List<File> treeFiles = FileUtil.findXmlFiles(null, null, "menus", "http://ofbiz.apache.org/dtds/widget-tree.xsd"); + + for (File treeFile: treeFiles) { + String fileNameURI = treeFile.toURI().toString(); + Document menuDocument = UtilXml.readXmlDocument(treeFile.toURI().toURL()); + Element rootElem = menuDocument.getDocumentElement(); + + for (Element elem1: UtilXml.childElementList(rootElem)) { + checkTreeTag(elem1, fileNameURI); + for (Element elem2: UtilXml.childElementList(elem1)) { + checkTreeTag(elem2, fileNameURI); + for (Element elem3: UtilXml.childElementList(elem2)) { + checkTreeTag(elem3, fileNameURI); + for (Element elem4: UtilXml.childElementList(elem3)) { + checkTreeTag(elem4, fileNameURI); + for (Element elem5: UtilXml.childElementList(elem4)) { + checkTreeTag(elem5, fileNameURI); + } + } + } + } + } + } + } catch(IOException ioe) { + throw new GeneralException(ioe.getMessage()); + } catch(Exception e) { + throw new GeneralException(e.getMessage()); + } + } + + private static void checkTreeTag(Element elem, String fileNameURI) { + // link labels + if ("link".equals(elem.getTagName())) { + getLinkTag(elem, fileNameURI); + } + } + + private static void getLabelsFromOfbizComponents() throws GeneralException { + try { + List<File> componentsFiles = FileUtil.findXmlFiles(null, null, "ofbiz-component", "http://ofbiz.apache.org/dtds/ofbiz-component.xsd"); + + for (File componentFile: componentsFiles) { + String fileNameURI = componentFile.toURI().toString(); + Document menuDocument = UtilXml.readXmlDocument(componentFile.toURI().toURL()); + Element rootElem = menuDocument.getDocumentElement(); + + for (Element elem1: UtilXml.childElementList(rootElem)) { + checkOfbizComponentTag(elem1, fileNameURI); + for (Element elem2: UtilXml.childElementList(elem1)) { + checkOfbizComponentTag(elem2, fileNameURI); + } + } + } + } catch(IOException ioe) { + throw new GeneralException(ioe.getMessage()); + } catch(Exception e) { + throw new GeneralException(e.getMessage()); + } + } + + private static void checkOfbizComponentTag(Element elem, String fileNameURI) { + // webapp labels + if ("webapp".equals(elem.getTagName())) { + getWebappTag(elem, fileNameURI); + } + } + private static void setLabelReference(String labelKey, String fileNameURI) { Map<String, Integer> reference = references.get(labelKey); if (UtilValidate.isEmpty(reference)) { reference = new TreeMap<String, Integer>(); reference.put(fileNameURI, new Integer(1)); - references.put(labelKey, reference); + references.put(labelKey, reference); } else { Integer labelsInFile = reference.get(fileNameURI); - + if (UtilValidate.isEmpty(labelsInFile)) { labelsInFile = new Integer(1); } @@ -388,19 +538,19 @@ reference.put(fileNameURI, labelsInFile); } } - + private static boolean getLabelFromTag(Element element, String fileNameURI, String attributeValue, String stringToSearch) { boolean stringFound = false; - + if (UtilValidate.isNotEmpty(attributeValue)) { int pos = 0; - + while (pos >= 0){ pos = attributeValue.indexOf(stringToSearch, pos); - + if (pos >= 0) { int graph = attributeValue.indexOf("}", pos); - + if (graph >= 0) { String labelKey = attributeValue.substring(pos + stringToSearch.length(), graph); setLabelReference(labelKey, fileNameURI); @@ -413,12 +563,12 @@ } return stringFound; } - + private static void getSetTag(Element element, String fileNameURI) { String setField = UtilFormatOut.checkNull(element.getAttribute("field")); String setValue = UtilFormatOut.checkNull(element.getAttribute("value")); String fromField = UtilFormatOut.checkNull(element.getAttribute("from-field")); - + if (UtilValidate.isNotEmpty(setField)) { if (UtilValidate.isNotEmpty(setValue) && ("applicationTitle".equals(setField) || @@ -426,7 +576,7 @@ "title".equals(setField))) { // set field with hardcoded labels if (!getLabelFromTag(element, fileNameURI, setValue, uiLabelMap)) { - setLabelReference(setValue, fileNameURI);; + setLabelReference(setValue, fileNameURI); } } else if (UtilValidate.isNotEmpty(fromField) && ("layoutSettings.companyName".equals(setField) || @@ -441,71 +591,71 @@ } } } - + private static void getScreenletTag(Element element, String fileNameURI) { String screenTitle = UtilFormatOut.checkNull(element.getAttribute("title")); - + if (UtilValidate.isNotEmpty(screenTitle)) { // screenlet title with hardcoded labels if (!getLabelFromTag(element, fileNameURI, screenTitle, uiLabelMap)) { - setLabelReference(screenTitle, fileNameURI);; + setLabelReference(screenTitle, fileNameURI); } } } - - private static void getAutoFieldsEntityTag(Element element, String fileNameURI) throws GeneralException { + + private static void getAutoFieldsEntityTag(Element element, String fileNameURI, Map<String, String> autoFieldsEntity) throws GeneralException { try { String entityName = UtilFormatOut.checkNull(element.getAttribute("entity-name")); String defaultFieldType = UtilFormatOut.checkNull(element.getAttribute("default-field-type")); - + if (UtilValidate.isNotEmpty(entityName) && UtilValidate.isNotEmpty(defaultFieldType) && (!("hidden".equals(defaultFieldType)))) { - ModelEntity entity = LabelManagerFactory.entityModelReader.getModelEntity(entityName); - + ModelEntity entity = LabelManagerFactory.getModelReader().getModelEntity(entityName); + for (Iterator<ModelField> f = entity.getFieldsIterator(); f.hasNext();) { ModelField field = f.next(); - setLabelReference(formFieldTitle + field.getName(), fileNameURI); + autoFieldsEntity.put(field.getName(), "N"); } } } catch(Exception e) { throw new GeneralException(e.getMessage()); } } - - private static void getAutoFieldsServiceTag(Element element, String fileNameURI) throws GeneralException { + + private static void getAutoFieldsServiceTag(Element element, String fileNameURI, Map<String, String> autoFieldsService) throws GeneralException { try { String serviceName = UtilFormatOut.checkNull(element.getAttribute("service-name")); String defaultFieldType = UtilFormatOut.checkNull(element.getAttribute("default-field-type")); - + if (UtilValidate.isNotEmpty(serviceName) && (!("hidden".equals(defaultFieldType)))) { - ModelService modelService = LabelManagerFactory.dispatchContext.getModelService(serviceName); + ModelService modelService = LabelManagerFactory.getDispatchContext().getModelService(serviceName); List<ModelParam> modelParams = modelService.getInModelParamList(); Iterator<ModelParam> modelParamIter = modelParams.iterator(); - + while (modelParamIter.hasNext()) { ModelParam modelParam = (ModelParam) modelParamIter.next(); // skip auto params that the service engine populates... if ("userLogin".equals(modelParam.name) || "locale".equals(modelParam.name) || "timeZone".equals(modelParam.name)) { continue; } - + if (modelParam.formDisplay) { if (UtilValidate.isNotEmpty(modelParam.entityName) && UtilValidate.isNotEmpty(modelParam.fieldName)) { ModelEntity modelEntity; try { - modelEntity = LabelManagerFactory.entityModelReader.getModelEntity(modelParam.entityName); - + modelEntity = LabelManagerFactory.getModelReader().getModelEntity(modelParam.entityName); + if (modelEntity != null) { ModelField modelField = modelEntity.getField(modelParam.fieldName); - + if (modelField != null) { - setLabelReference(formFieldTitle + modelField.getName(), fileNameURI); + autoFieldsService.put(modelField.getName(), "N"); } } } catch (GenericEntityException e) { Debug.logError(e, module); } } - + setLabelReference(formFieldTitle + modelParam.name, fileNameURI); } } @@ -514,25 +664,34 @@ throw new GeneralException(e.getMessage()); } } - + private static void getHyperlinkTag(Element element, String fileNameURI) { String hyperlinkDescription = UtilFormatOut.checkNull(element.getAttribute("description")); - + if (UtilValidate.isNotEmpty(hyperlinkDescription)) { // hyperlink description with hardcoded labels if (!getLabelFromTag(element, fileNameURI, hyperlinkDescription, uiLabelMap)) { - setLabelReference(hyperlinkDescription, fileNameURI);; + setLabelReference(hyperlinkDescription, fileNameURI); } } } - - private static void getFieldTag(Element element, String fileNameURI) { - String labelKey = UtilFormatOut.checkNull(element.getAttribute("name")); - labelKey = formFieldTitle + labelKey; - String fieldTitle = UtilFormatOut.checkNull(element.getAttribute("title")); - String tooltip = UtilFormatOut.checkNull(element.getAttribute("tooltip")); - boolean escludeField= false; - + + private static void getFieldTag(Element element, String fileNameURI, Map<String, String> autoFieldsEntity, Map<String, String> autoFieldsService) { + String fieldName = UtilFormatOut.checkNull(element.getAttribute("name")); + String labelKey = formFieldTitle + fieldName; + String fieldTitle = UtilFormatOut.checkNull(element.getAttribute("title")); + String tooltip = UtilFormatOut.checkNull(element.getAttribute("tooltip")); + + if (UtilValidate.isNotEmpty(autoFieldsEntity) && UtilValidate.isNotEmpty(autoFieldsEntity.get(fieldName))) { + autoFieldsEntity.put(fieldName, "Y"); + } + + if (UtilValidate.isNotEmpty(autoFieldsService) && UtilValidate.isNotEmpty(autoFieldsService.get(fieldName))) { + autoFieldsService.put(fieldName, "Y"); + } + + boolean escludeField = false; + for (Element fieldTypeElem: UtilXml.childElementList(element)) { if ("hidden".equals(fieldTypeElem.getTagName())) { escludeField = true; @@ -540,7 +699,7 @@ escludeField = true; } } - + if (!escludeField) { // field name labels if (UtilValidate.isEmpty(fieldTitle)) { @@ -548,88 +707,278 @@ } else { // field title with hardcoded labels if (!getLabelFromTag(element, fileNameURI, fieldTitle, uiLabelMap)) { - setLabelReference(fieldTitle, fileNameURI);; + setLabelReference(fieldTitle, fileNameURI); } } - + if (UtilValidate.isNotEmpty(tooltip)) { // tooltip with hardcoded labels if (!getLabelFromTag(element, fileNameURI, tooltip, uiLabelMap)) { - setLabelReference(tooltip, fileNameURI);; + setLabelReference(tooltip, fileNameURI); } } } } - + private static void getLabelTag(Element element, String fileNameURI) { String labelText = UtilFormatOut.checkNull(element.getAttribute("text")); String labelValue = UtilFormatOut.checkNull(UtilXml.elementValue(element)); - + // label text labels if (UtilValidate.isNotEmpty(labelText)) { // label text with hardcoded labels if (!getLabelFromTag(element, fileNameURI, labelText, uiLabelMap)) { - setLabelReference(labelText, fileNameURI);; + setLabelReference(labelText, fileNameURI); } // label value labels } else if (UtilValidate.isNotEmpty(labelValue)) { // label value with hardcoded labels if (!getLabelFromTag(element, fileNameURI, labelValue, uiLabelMap)) { - setLabelReference(labelValue, fileNameURI);; + setLabelReference(labelValue, fileNameURI); } } } - + private static void getMenuItemTag(Element element, String fileNameURI) { String menuItemTitle = UtilFormatOut.checkNull(element.getAttribute("title")); - + if (UtilValidate.isNotEmpty(menuItemTitle)) { // menu item title with hardcoded labels if (!getLabelFromTag(element, fileNameURI, menuItemTitle, uiLabelMap)) { - setLabelReference(menuItemTitle, fileNameURI);; + setLabelReference(menuItemTitle, fileNameURI); } } } - + private static void getFailPropertyTag(Element element, String fileNameURI) { String propertyValue = UtilFormatOut.checkNull(element.getAttribute("property")); - + if (UtilValidate.isNotEmpty(propertyValue)) { // fail-property labels setLabelReference(propertyValue, fileNameURI); } } - + private static void getOptionTag(Element element, String fileNameURI) { String description = UtilFormatOut.checkNull(element.getAttribute("description")); - + if (UtilValidate.isNotEmpty(description)) { // option description with hardcoded labels if (!getLabelFromTag(element, fileNameURI, description, uiLabelMap)) { - setLabelReference(description, fileNameURI);; + setLabelReference(description, fileNameURI); } } } - + private static void getLinkTag(Element element, String fileNameURI) { String linkText = UtilFormatOut.checkNull(element.getAttribute("text")); - + if (UtilValidate.isNotEmpty(linkText)) { // link text with hardcoded labels if (!getLabelFromTag(element, fileNameURI, linkText, uiLabelMap)) { - setLabelReference(linkText, fileNameURI);; + setLabelReference(linkText, fileNameURI); } } } - - private static void getPropertyToFieldTag(Element element, String fileNameURI) { - String property = UtilFormatOut.checkNull(element.getAttribute("property")); - - // property-to-field labels - if (UtilValidate.isNotEmpty(property)) { - setLabelReference(property, fileNameURI); + + private static void getWebappTag(Element element, String fileNameURI) { + String title = UtilFormatOut.checkNull(element.getAttribute("title")); + String appBarDisplay = UtilFormatOut.checkNull(element.getAttribute("app-bar-display")); + + // title labels + if (UtilValidate.isNotEmpty(title) && UtilValidate.isNotEmpty(appBarDisplay) && "true".equalsIgnoreCase(appBarDisplay)) { + setLabelReference(title, fileNameURI); } } -} + private static void getEntityOptionsTag(Element element, String fileNameURI) { + String entityName = UtilFormatOut.checkNull(element.getAttribute("entity-name")); + String description = UtilFormatOut.checkNull(element.getAttribute("description")); + Set<String> fields = new TreeSet<String>(); + Set<String> pkFields = new TreeSet<String>(); + try { + + if (UtilValidate.isNotEmpty(entityName)) { + GenericDelegator delegator = LabelManagerFactory.getDelegator(); + ModelEntity entity = delegator.getModelEntity(entityName); + + if (UtilValidate.isNotEmpty(entity) && UtilValidate.isNotEmpty(entity.getDefaultResourceName())) { + int pos = 0; + while (pos >= 0){ + pos = description.indexOf(startExpression, pos); + + if (pos >= 0) { + int endLabel = description.indexOf(endExpression, pos); + + if (endLabel >= 0) { + String fieldName = description.substring(pos + startExpression.length(), endLabel); + if (!fieldName.startsWith(uiLabelMapInLayoutSettings)) { + for (Map.Entry<String, LabelInfo> e: LabelManagerFactory.getLabels().entrySet()) { + String keyToSearch = entityName + "." + fieldName; + if (e.getKey().startsWith(keyToSearch)) { + fields.add(fieldName); + } + } + } + pos = endLabel; + } else { + pos = pos + startExpression.length(); + } + } + } + + // Search primary keys of entity + Iterator<ModelField> iter = entity.getPksIterator(); + while (iter != null && iter.hasNext()) { + ModelField curField = iter.next(); + pkFields.add(curField.getName()); + } + Iterator<String> fieldsIt = fields.iterator(); + while (fieldsIt != null && fieldsIt.hasNext()) { + String fieldName = fieldsIt.next(); + List<EntityExpr> exprs = FastList.newInstance(); + for (Element entityConstraintElem: UtilXml.childElementList(element)) { + if ("entity-constraint".equals(entityConstraintElem.getTagName())) { + String constraintName = UtilFormatOut.checkNull(entityConstraintElem.getAttribute("name")); + String constraintOperator = UtilFormatOut.checkNull(entityConstraintElem.getAttribute("operator")); + String constraintValue = UtilFormatOut.checkNull(entityConstraintElem.getAttribute("value")); + + EntityComparisonOperator operator = new EntityComparisonOperator(EntityOperator.ID_EQUALS, "="); + if ("between".equals(constraintValue)) { + operator = new EntityComparisonOperator(EntityOperator.ID_BETWEEN, "BETWEEN"); + } else if ("greater-equals".equals(constraintValue)) { + operator = new EntityComparisonOperator(EntityOperator.ID_GREATER_THAN_EQUAL_TO, ">="); + } else if ("greater".equals(constraintValue)) { + operator = new EntityComparisonOperator(EntityOperator.ID_GREATER_THAN, ">"); + } else if ("in".equals(constraintValue)) { + operator = new EntityComparisonOperator(EntityOperator.ID_IN, "IN"); + } else if ("less-equals".equals(constraintValue)) { + operator = new EntityComparisonOperator(EntityOperator.ID_LESS_THAN_EQUAL_TO, "<="); + } else if ("less".equals(constraintValue)) { + operator = new EntityComparisonOperator(EntityOperator.ID_LESS_THAN, "<"); + } else if ("like".equals(constraintValue)) { + operator = new EntityComparisonOperator(EntityOperator.ID_LIKE, "LIKE"); + } else if ("not-equals".equals(constraintValue)) { + operator = new EntityComparisonOperator(EntityOperator.ID_NOT_EQUAL, "<>"); + } + + exprs.add(EntityCondition.makeCondition(constraintName, operator, constraintValue)); + } + } + + EntityConditionList<EntityExpr> ecl = null; + if (exprs.size() > 0) { + ecl = EntityCondition.makeCondition(exprs, EntityOperator.AND); + } + + StringBuilder keyBuffer = new StringBuilder(); + keyBuffer.append(entityName); + keyBuffer.append('.'); + keyBuffer.append(fieldName); + List<GenericValue> entityRecords = delegator.findList(entityName, ecl, pkFields, null, null, false); + + for (GenericValue entityRecord: entityRecords) { + boolean pkFound = false; + StringBuilder pkBuffer = new StringBuilder(keyBuffer.toString()); + Iterator <String> itPkFields = pkFields.iterator(); + while (itPkFields != null && itPkFields.hasNext()) { + String pkField = itPkFields.next(); + Object pkFieldValue = entityRecord.get(pkField); + + if (UtilValidate.isNotEmpty(pkFieldValue)) { + pkBuffer.append('.'); + pkBuffer.append(pkFieldValue); + pkFound = true; + } + } + if (pkFound) { + setLabelReference(pkBuffer.toString(), fileNameURI); + } + } + } + } + } + } catch (GenericEntityException e) { + Debug.logError(e, "Problem getting records from " + entityName, module); + } + } + + private static void getDisplayEntityTag(Element element, String fileNameURI) { + String entityName = UtilFormatOut.checkNull(element.getAttribute("entity-name")); + String description = UtilFormatOut.checkNull(element.getAttribute("description")); + Set<String> fields = new TreeSet<String>(); + Set<String> pkFields = new TreeSet<String>(); + + try { + + if (UtilValidate.isNotEmpty(entityName)) { + GenericDelegator delegator = LabelManagerFactory.getDelegator(); + ModelEntity entity = delegator.getModelEntity(entityName); + + if (UtilValidate.isNotEmpty(entity) && UtilValidate.isNotEmpty(entity.getDefaultResourceName())) { + int pos = 0; + while (pos >= 0){ + pos = description.indexOf(startExpression, pos); + + if (pos >= 0) { + int endLabel = description.indexOf(endExpression, pos); + + if (endLabel >= 0) { + String fieldName = description.substring(pos + startExpression.length(), endLabel); + if (!fieldName.startsWith(uiLabelMapInLayoutSettings)) { + for (Map.Entry<String, LabelInfo> e: LabelManagerFactory.getLabels().entrySet()) { + String keyToSearch = entityName + "." + fieldName; + if (e.getKey().startsWith(keyToSearch)) { + fields.add(fieldName); + } + } + } + pos = endLabel; + } else { + pos = pos + startExpression.length(); + } + } + } + + // Search primary keys of entity + Iterator<ModelField> iter = entity.getPksIterator(); + while (iter != null && iter.hasNext()) { + ModelField curField = iter.next(); + pkFields.add(curField.getName()); + } + Iterator<String> fieldsIt = fields.iterator(); + while (fieldsIt != null && fieldsIt.hasNext()) { + String fieldName = fieldsIt.next(); + StringBuilder keyBuffer = new StringBuilder(); + keyBuffer.append(entityName); + keyBuffer.append('.'); + keyBuffer.append(fieldName); + List<GenericValue> entityRecords = delegator.findList(entityName, null, pkFields, null, null, false); + + for (GenericValue entityRecord: entityRecords) { + boolean pkFound = false; + StringBuilder pkBuffer = new StringBuilder(keyBuffer.toString()); + Iterator <String> itPkFields = pkFields.iterator(); + while (itPkFields != null && itPkFields.hasNext()) { + String pkField = itPkFields.next(); + Object pkFieldValue = entityRecord.get(pkField); + + if (UtilValidate.isNotEmpty(pkFieldValue)) { + pkBuffer.append('.'); + pkBuffer.append(pkFieldValue); + pkFound = true; + } + } + if (pkFound) { + setLabelReference(pkBuffer.toString(), fileNameURI); + } + } + } + } + } + } catch (GenericEntityException e) { + Debug.logError(e, "Problem getting records from " + entityName, module); + } + } +} Modified: ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/controller.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/controller.xml?rev=748732&r1=748731&r2=748732&view=diff ============================================================================== --- ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/controller.xml (original) +++ ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/controller.xml Fri Feb 27 23:01:41 2009 @@ -490,6 +490,13 @@ <response name="error" type="view" value="UpdateLabel"/> </request-map> + <request-map uri="UpdateAndSaveLabelKey"> + <security https="true" auth="true"/> + <event type="service" invoke="UpdateAndSaveLabelKey"/> + <response name="success" type="view" value="SearchLabels"/> + <response name="error" type="view" value="UpdateLabel"/> + </request-map> + <request-map uri="ViewReferences"> <security https="true" auth="true"/> <response name="success" type="view" value="ViewReferences"/> Modified: ofbiz/trunk/framework/webtools/webapp/webtools/labelmanager/SearchLabels.ftl URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/webapp/webtools/labelmanager/SearchLabels.ftl?rev=748732&r1=748731&r2=748732&view=diff ============================================================================== --- ofbiz/trunk/framework/webtools/webapp/webtools/labelmanager/SearchLabels.ftl (original) +++ ofbiz/trunk/framework/webtools/webapp/webtools/labelmanager/SearchLabels.ftl Fri Feb 27 23:01:41 2009 @@ -70,7 +70,12 @@ </td> </tr> <tr> - <td colspan="2"> </td> + <td align="right" class="label"> + ${uiLabelMap.WebtoolsLabelManagerOnlyNotUsedLabels} + </td> + <td align="left"> + <input type="checkbox" name="onlyNotUsedLabels" value="Y" <#if parameters.onlyNotUsedLabels?exists && parameters.onlyNotUsedLabels == "Y">checked</#if>> + </td> <td align="right" class="label"> ${uiLabelMap.WebtoolsLabelManagerOnlyMissingTranslations} </td> Modified: ofbiz/trunk/framework/webtools/webapp/webtools/labelmanager/UpdateLabel.ftl URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/webapp/webtools/labelmanager/UpdateLabel.ftl?rev=748732&r1=748731&r2=748732&view=diff ============================================================================== --- ofbiz/trunk/framework/webtools/webapp/webtools/labelmanager/UpdateLabel.ftl (original) +++ ofbiz/trunk/framework/webtools/webapp/webtools/labelmanager/UpdateLabel.ftl Fri Feb 27 23:01:41 2009 @@ -30,7 +30,7 @@ <input type="hidden" name="key" value="${parameters.sourceKey}"> <input type="hidden" name="update_label" value="Y"> <#else> - <input type="text" name="key" size="70" value="${parameters.key?if_exists}"> + <input type="text" name="key" size="70"> <input type="hidden" name="update_label" value="N"> </#if> </td> Modified: ofbiz/trunk/framework/webtools/webapp/webtools/labelmanager/ViewFile.ftl URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/webapp/webtools/labelmanager/ViewFile.ftl?rev=748732&r1=748731&r2=748732&view=diff ============================================================================== --- ofbiz/trunk/framework/webtools/webapp/webtools/labelmanager/ViewFile.ftl (original) +++ ofbiz/trunk/framework/webtools/webapp/webtools/labelmanager/ViewFile.ftl Fri Feb 27 23:01:41 2009 @@ -19,6 +19,9 @@ <div class="screenlet-body"> <table class="basic-table" cellspacing="3"> <tr> + <td colspan="2"><b>${uiLabelMap.WebtoolsLabelManagerKey}</b> ${parameters.sourceKey?if_exists}</td> + </tr> + <tr> <td colspan="2"><b>${uiLabelMap.WebtoolsLabelManagerFileName}</b> ${parameters.fileName?if_exists}</td> </tr> <tr> Modified: ofbiz/trunk/framework/webtools/webapp/webtools/labelmanager/ViewLabels.ftl URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/webapp/webtools/labelmanager/ViewLabels.ftl?rev=748732&r1=748731&r2=748732&view=diff ============================================================================== --- ofbiz/trunk/framework/webtools/webapp/webtools/labelmanager/ViewLabels.ftl (original) +++ ofbiz/trunk/framework/webtools/webapp/webtools/labelmanager/ViewLabels.ftl Fri Feb 27 23:01:41 2009 @@ -17,10 +17,8 @@ under the License. --> <div class="screenlet-body"> - <#if parameters.searchLabels?exists> - <a href="<@ofbizUrl>UpdateLabel</@ofbizUrl>" class="buttontext">${uiLabelMap.WebtoolsLabelManagerAddNew}</a> - <a href="<@ofbizUrl>SaveLabelsToXmlFile?labelFileName=${parameters.labelFileName?if_exists}</@ofbizUrl>" class="buttontext">${uiLabelMap.WebtoolsLabelManagerUpdateFile}</a> - </#if> + <a href="<@ofbizUrl>UpdateLabel?fileName=${parameters.labelFileName?if_exists}</@ofbizUrl>" class="buttontext">${uiLabelMap.WebtoolsLabelManagerAddNew}</a> + <a href="<@ofbizUrl>SaveLabelsToXmlFile?labelFileName=${parameters.labelFileName?if_exists}</@ofbizUrl>" class="buttontext">${uiLabelMap.WebtoolsLabelManagerUpdateFile}</a> <table class="basic-table hover-bar" cellspacing="3"> <tr class="header-row"> <td>${uiLabelMap.WebtoolsLabelManagerRow}</td> @@ -55,6 +53,12 @@ <#assign previousKey = ""> <#list labelsList as labelList> <#assign label = labels.get(labelList)> + <#assign labelKey = label.labelKey> + <#assign referenceNum = 0> + <#assign reference = references.get(labelKey)?if_exists> + <#if reference?exists && reference?has_content> + <#assign referenceNum = reference.size()> + </#if> <#assign showLabel = true> <#if parameters.onlyMissingTranslations?exists && parameters.onlyMissingTranslations == "Y" && parameters.labelLocaleName?exists && parameters.labelLocaleName != ""> @@ -66,6 +70,9 @@ </#if> </#if> </#if> + <#if showLabel && parameters.onlyNotUsedLabels?exists && parameters.onlyNotUsedLabels == "Y" && (referenceNum > 0)> + <#assign showLabel = false> + </#if> <#if showLabel && parameters.labelKey?exists && parameters.labelKey != "" && parameters.labelKey != label.labelKey> <#assign showLabel = false> </#if> @@ -76,16 +83,10 @@ <#assign showLabel = false> </#if> <#if showLabel == true> - <#assign labelKey = label.labelKey> <tr <#if rowNum == "1">class="alternate-row"</#if>> <td>${rowNumber}</td> <td><a href="<@ofbizUrl>UpdateLabel?sourceKey=${labelKey}&sourceFileName=${label.fileName}&sourceKeyComment=${label.labelKeyComment?if_exists}</@ofbizUrl>" <#if previousKey == labelKey>class="submenutext"</#if>>${label.labelKey}</a></td> <td>${label.fileName}</td> - <#assign referenceNum = 0> - <#assign reference = references.get(labelKey)?if_exists> - <#if reference?exists && reference?has_content> - <#assign referenceNum = reference.size()> - </#if> <td align="center"><#if (referenceNum > 0)><a href="<@ofbizUrl>ViewReferences?sourceKey=${labelKey}</@ofbizUrl>">${referenceNum}</a><#else>${referenceNum}</#if></td> <#list localesFound as localeFound> <#assign labelVal = label.getLabelValue(localeFound)?if_exists> Modified: ofbiz/trunk/framework/webtools/webapp/webtools/labelmanager/ViewReferences.ftl URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/webapp/webtools/labelmanager/ViewReferences.ftl?rev=748732&r1=748731&r2=748732&view=diff ============================================================================== --- ofbiz/trunk/framework/webtools/webapp/webtools/labelmanager/ViewReferences.ftl (original) +++ ofbiz/trunk/framework/webtools/webapp/webtools/labelmanager/ViewReferences.ftl Fri Feb 27 23:01:41 2009 @@ -30,15 +30,16 @@ <td>${uiLabelMap.WebtoolsLabelManagerFileName}</td> <td>${uiLabelMap.WebtoolsLabelManagerReferences}</td> </tr> - <#if parameters.sourceKey?exists> + <#if parameters.sourceKey?exists && parameters.sourceKey?has_content> <#assign rowNum = "2"> <#assign rowNumber = 1> - <#assign reference = references.get(parameters.sourceKey)> - <#assign entries = reference.entrySet()> - <#list entries as entry> + <#assign reference = references.get(parameters.sourceKey)?if_exists> + <#if reference?exists && reference?has_content> + <#assign entries = reference.entrySet()> + <#list entries as entry> <tr> <td>${rowNumber}</td> - <td><a href="<@ofbizUrl>ViewFile?fileName=${entry.getKey()}</@ofbizUrl>">${entry.getKey()}</a></td> + <td><a href="<@ofbizUrl>ViewFile?fileName=${entry.getKey()}&sourceKey=${parameters.sourceKey?if_exists}</@ofbizUrl>">${entry.getKey()}</a></td> <td>${entry.getValue()}</td> </tr> <#if rowNum == "2"> @@ -47,7 +48,8 @@ <#assign rowNum = "2"> </#if> <#assign rowNumber = rowNumber + 1> - </#list> + </#list> + </#if> </#if> </table> </form> Modified: ofbiz/trunk/framework/webtools/widget/EntityScreens.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/widget/EntityScreens.xml?rev=748732&r1=748731&r2=748732&view=diff ============================================================================== --- ofbiz/trunk/framework/webtools/widget/EntityScreens.xml (original) +++ ofbiz/trunk/framework/webtools/widget/EntityScreens.xml Fri Feb 27 23:01:41 2009 @@ -373,7 +373,7 @@ <actions> <property-map resource="CommonUiLabels" map-name="uiLabelMap" global="true"/> <property-map resource="WebtoolsUiLabels" map-name="uiLabelMap" global="true"/> - <set field="titleProperty" value="PageTitleEntitySQLProcessor___"/> + <set field="titleProperty" value="PageTitleEntityEoModelBundle"/> <set field="tabButtonItem" value="entityEoModelBundle"/> </actions> <widgets> |
Free forum by Nabble | Edit this page |