svn commit: r731370 - in /ofbiz/trunk/framework/webtools: data/ servicedef/ src/org/ofbiz/webtools/labelmanager/ webapp/webtools/ webapp/webtools/WEB-INF/ webapp/webtools/WEB-INF/actions/labelmanager/ webapp/webtools/labelmanager/ widget/

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r731370 - in /ofbiz/trunk/framework/webtools: data/ servicedef/ src/org/ofbiz/webtools/labelmanager/ webapp/webtools/ webapp/webtools/WEB-INF/ webapp/webtools/WEB-INF/actions/labelmanager/ webapp/webtools/labelmanager/ widget/

jleroux@apache.org
Author: jleroux
Date: Sun Jan  4 13:44:14 2009
New Revision: 731370

URL: http://svn.apache.org/viewvc?rev=731370&view=rev
Log:
A modified patch from Marco Risaliti "New tool to get labels information" (https://issues.apache.org/jira/browse/OFBIZ-2070) - OFBIZ-2070
I have already commited merged changes in labels files. I commented out for now the lines in SaveLabelsToXmlFile.java which write the XML changes.
We have, at least, known 2 issued related to SaveLabelsToXmlFile :
. adding the ASL header
. taking care of labels sorting in a case described here https://issues.apache.org/jira/browse/OFBIZ-2070?focusedCommentId=12660632#action_12660632

Added:
    ofbiz/trunk/framework/webtools/src/org/ofbiz/webtools/labelmanager/
    ofbiz/trunk/framework/webtools/src/org/ofbiz/webtools/labelmanager/LabelInfo.java
    ofbiz/trunk/framework/webtools/src/org/ofbiz/webtools/labelmanager/LabelManagerFactory.java
    ofbiz/trunk/framework/webtools/src/org/ofbiz/webtools/labelmanager/SaveLabelsToXmlFile.java
    ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/actions/labelmanager/
    ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/actions/labelmanager/LabelManager.groovy
    ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/actions/labelmanager/UpdateManager.groovy
    ofbiz/trunk/framework/webtools/webapp/webtools/labelmanager/
    ofbiz/trunk/framework/webtools/webapp/webtools/labelmanager/SearchLabels.ftl
    ofbiz/trunk/framework/webtools/webapp/webtools/labelmanager/UpdateLabel.ftl
    ofbiz/trunk/framework/webtools/webapp/webtools/labelmanager/ViewLabels.ftl
    ofbiz/trunk/framework/webtools/widget/LabelManagerScreens.xml
Modified:
    ofbiz/trunk/framework/webtools/data/WebtoolsSecurityData.xml
    ofbiz/trunk/framework/webtools/servicedef/services.xml
    ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/controller.xml
    ofbiz/trunk/framework/webtools/webapp/webtools/main.ftl

Modified: ofbiz/trunk/framework/webtools/data/WebtoolsSecurityData.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/data/WebtoolsSecurityData.xml?rev=731370&r1=731369&r2=731370&view=diff
==============================================================================
--- ofbiz/trunk/framework/webtools/data/WebtoolsSecurityData.xml (original)
+++ ofbiz/trunk/framework/webtools/data/WebtoolsSecurityData.xml Sun Jan  4 13:44:14 2009
@@ -36,6 +36,12 @@
     <SecurityGroupPermission groupId="FLEXADMIN" permissionId="ARTIFACT_INFO_VIEW"/>
     <SecurityGroupPermission groupId="VIEWADMIN" permissionId="ARTIFACT_INFO_VIEW"/>
     
+    <!-- Labels Info security -->
+    <SecurityPermission description="View the Labels Info pages." permissionId="LABEL_MANAGER_VIEW"/>
+    <SecurityGroupPermission groupId="FULLADMIN" permissionId="LABEL_MANAGER_VIEW"/>
+    <SecurityGroupPermission groupId="FLEXADMIN" permissionId="LABEL_MANAGER_VIEW"/>
+    <SecurityGroupPermission groupId="VIEWADMIN" permissionId="LABEL_MANAGER_VIEW"/>
+    
     <!-- Data File Maintenance security -->
     <SecurityPermission description="Use the Data File Maintenance pages." permissionId="DATAFILE_MAINT"/>
     <SecurityGroupPermission groupId="FULLADMIN" permissionId="DATAFILE_MAINT"/>

Modified: ofbiz/trunk/framework/webtools/servicedef/services.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/servicedef/services.xml?rev=731370&r1=731369&r2=731370&view=diff
==============================================================================
--- ofbiz/trunk/framework/webtools/servicedef/services.xml (original)
+++ ofbiz/trunk/framework/webtools/servicedef/services.xml Sun Jan  4 13:44:14 2009
@@ -20,9 +20,9 @@
 
 <services xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/services.xsd">
- <description>OFBiz WebTools Services</description>
- <vendor>OFBiz</vendor>
- <version>1.0</version>
+    <description>OFBiz WebTools Services</description>
+    <vendor>OFBiz</vendor>
+    <version>1.0</version>
 
     <!-- Entity Import Services
          Transacitons are turned off for these services because they set transactions and timeouts inside the services with txTimeout parameter -->
@@ -123,4 +123,19 @@
         <attribute name="eomodeldFullPath" type="java.lang.String" mode="IN" optional="false"/>
         <attribute name="serviceName" type="java.lang.String" mode="IN" optional="false"/>
     </service>
+    <service name="saveLabelsToXmlFile" engine="java" location="org.ofbiz.webtools.labelmanager.SaveLabelsToXmlFile"
+             invoke="saveLabelsToXmlFile" auth="true" use-transaction="false">
+        <description>Save labels to xml file</description>
+        <attribute name="labelFileName" type="String" mode="IN" optional="true"/>
+    </service>
+    <service name="updateLabelKey" engine="java" location="org.ofbiz.webtools.labelmanager.LabelManagerFactory"
+             invoke="updateLabelKey" auth="true" use-transaction="false">
+        <description>Update Label Key</description>
+        <attribute name="key" type="String" mode="IN" optional="true"/>
+        <attribute name="update_label" type="String" mode="IN" optional="false"/>
+        <attribute name="fileName" type="String" mode="IN" optional="false"/>
+        <attribute name="confirm" type="String" mode="IN" optional="true"/>
+        <attribute name="localeNames" type="List" mode="IN" optional="true"/>
+        <attribute name="localeValues" type="List" mode="IN" optional="true"/>
+    </service>
 </services>

Added: ofbiz/trunk/framework/webtools/src/org/ofbiz/webtools/labelmanager/LabelInfo.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/src/org/ofbiz/webtools/labelmanager/LabelInfo.java?rev=731370&view=auto
==============================================================================
--- ofbiz/trunk/framework/webtools/src/org/ofbiz/webtools/labelmanager/LabelInfo.java (added)
+++ ofbiz/trunk/framework/webtools/src/org/ofbiz/webtools/labelmanager/LabelInfo.java Sun Jan  4 13:44:14 2009
@@ -0,0 +1,87 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * 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
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.ofbiz.webtools.labelmanager;
+
+import java.util.Map;
+
+import javolution.util.FastMap;
+
+import org.ofbiz.base.util.Debug;
+import org.ofbiz.base.util.GeneralException;
+import org.ofbiz.base.util.UtilValidate;
+
+public class LabelInfo {
+    
+    public static final String module = LabelInfo.class.getName();
+    
+    protected String labelKey = "";
+    protected String fileName = "";
+    protected String componentName = "";
+    protected Map<String, String> labelValues = FastMap.newInstance();
+    
+    public LabelInfo(String labelKey, String fileName, String componentName, String localeStr, String labelValue) throws GeneralException {
+        this.labelKey = labelKey;
+        this.fileName = fileName;
+        this.componentName = componentName;
+        setLabelValue(localeStr, labelValue, false);
+    }
+    
+    public String getLabelKey() {
+        return labelKey;
+    }
+    
+    public String getFileName() {
+        return fileName;
+    }
+    
+    public String getComponentName() {
+        return componentName;
+    }
+    
+    public String getLabelValue(String localeStr) {
+       return (String)labelValues.get(localeStr);
+    }
+    
+    public int getLabelValueSize() {
+       return labelValues.size();    
+    }
+
+    public boolean setLabelValue(String localeStr, String labelValue, boolean update) {
+        String localeFound = getLabelValue(localeStr);
+        boolean isDuplicatedLocales = false;
+        
+        if (UtilValidate.isEmpty(localeFound)) {
+            if (UtilValidate.isNotEmpty(labelValue)) {
+                labelValues.put(localeStr, labelValue);
+            }
+        } else {
+            if (update) {
+                if (UtilValidate.isNotEmpty(labelValue)) {
+                    labelValues.put(localeStr, labelValue);
+                } else {
+                    labelValues.remove(localeStr);
+                }
+            } else {
+                Debug.logWarning("Already found locale " + localeStr + " for label " + labelKey + " into the file " + fileName, module);
+                isDuplicatedLocales = true;
+            }
+        }
+        return isDuplicatedLocales;
+    }
+}

Added: 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=731370&view=auto
==============================================================================
--- ofbiz/trunk/framework/webtools/src/org/ofbiz/webtools/labelmanager/LabelManagerFactory.java (added)
+++ ofbiz/trunk/framework/webtools/src/org/ofbiz/webtools/labelmanager/LabelManagerFactory.java Sun Jan  4 13:44:14 2009
@@ -0,0 +1,233 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * 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
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.ofbiz.webtools.labelmanager;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Collection;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeMap;
+import java.util.TreeSet;
+
+import org.ofbiz.base.component.ComponentConfig;
+import org.ofbiz.base.util.FileUtil;
+import org.ofbiz.base.util.GeneralException;
+import org.ofbiz.base.util.UtilGenerics;
+import org.ofbiz.base.util.UtilMisc;
+import org.ofbiz.base.util.UtilProperties;
+import org.ofbiz.base.util.UtilXml;
+
+import org.ofbiz.base.util.UtilValidate;
+import org.ofbiz.base.util.cache.UtilCache;
+import org.ofbiz.service.DispatchContext;
+import org.ofbiz.service.ServiceUtil;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+public class LabelManagerFactory {
+
+    public static final String module = LabelManagerFactory.class.getName();
+    public static final String resource = "WebtoolsUiLabels";
+    
+    protected static UtilCache<String, LabelManagerFactory> labelManagerFactoryCache = new UtilCache<String, LabelManagerFactory>("LabelManagerFactory");
+    
+    protected static Map<String, LabelInfo> labels = null;
+    protected static Map<String, String> fileNamesFound = null;
+    protected static Map<String, String> fileComponent = null;
+    protected static Set<String> localesFound = null;
+    protected static Set<String> componentNamesFound = null;
+    protected static int duplicatedLocalesLabels = 0;
+    
+    protected static String delegatorName;
+    
+    public static LabelManagerFactory getLabelManagerFactory(String delegatorName) throws GeneralException {
+        if (UtilValidate.isEmpty(delegatorName)) {
+            delegatorName = "default";
+        }
+        
+        LabelManagerFactory lmf = labelManagerFactoryCache.get(delegatorName);
+        
+        if (lmf == null) {
+            lmf = new LabelManagerFactory(delegatorName);
+            labelManagerFactoryCache.put(delegatorName, lmf);
+        }
+        return lmf;
+    }
+    
+    protected LabelManagerFactory(String delegatorName) throws GeneralException {
+        LabelManagerFactory.delegatorName = delegatorName;
+        
+        prepareAll();
+    }
+    
+    private static void prepareAll() throws GeneralException {
+     labels = new TreeMap<String, LabelInfo>();
+        fileNamesFound = new TreeMap<String, String>();
+        fileComponent = new TreeMap<String, String>();
+        localesFound = new TreeSet<String>();
+        componentNamesFound = new TreeSet<String>();
+        int duplicatedLocales = 0;
+        
+        try {
+         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();
+                    
+                    for (Element propertyElem: UtilXml.childElementList(resourceElem, "property")) {
+                        String labelKey = propertyElem.getAttribute("key");                            
+                        
+                        for (Element valueElem: UtilXml.childElementList(propertyElem, "value")) {
+                            String localeName = valueElem.getAttribute("xml:lang");
+                            String labelValue = UtilXml.elementValue(valueElem);
+                            LabelInfo label = (LabelInfo)labels.get(labelKey + "_" + fileName);
+                            
+                            if (UtilValidate.isEmpty(label)) {
+                                label = new LabelInfo(labelKey, fileName, componentName, localeName, labelValue);
+                                labels.put(labelKey + "_" + fileName, label);
+                            } else {
+                                if (label.setLabelValue(localeName, labelValue, false)) {
+                                    duplicatedLocales++;
+                                }
+                            }
+                            localesFound.add(localeName);
+                            componentNamesFound.add(componentName);
+                            fileNamesFound.put(fileName, resourceFile.toURI().toString());
+                            fileComponent.put(fileName, componentName);
+                        }
+                    }
+                }
+            }
+        } catch(IOException ioe) {
+            throw new GeneralException(ioe.getMessage());
+        } catch(Exception e) {
+            throw new GeneralException(e.getMessage());
+        }
+        duplicatedLocalesLabels = duplicatedLocales;
+    }
+    
+    public static Map<String, LabelInfo> getLabels() {
+        return labels;
+    }
+    
+    public static Set<String> getLocalesFound() {
+        return localesFound;
+    }
+    
+    public static Map<String, String> getFileNamesFound() {
+        return fileNamesFound;
+    }
+    
+    public static String getFileComponent(String fileName) {
+        String componentName = null;
+        if (UtilValidate.isNotEmpty(fileName)) {
+            componentName = fileComponent.get(fileName);
+        }
+        return componentName;
+    }
+    
+    public static Set<String> getComponentNamesFound() {
+        return componentNamesFound;
+    }
+    
+    public static Set<String> getLabelsList() {
+        return labels.keySet();
+    }
+    
+    public static int getDuplicatedLocalesLabels() {
+        return duplicatedLocalesLabels;
+    }
+    
+    public static Map<String, Object> updateLabelKey(DispatchContext dctx, Map<String, ? extends Object> context) {
+        String key = (String)context.get("key");
+        String update_label = (String)context.get("update_label");
+        String fileName = (String)context.get("fileName");
+        String confirm = (String)context.get("confirm");
+        List<String> localeNames = UtilGenerics.cast(context.get("localeNames"));
+        List<String> localeValues = UtilGenerics.cast(context.get("localeValues"));
+        Locale locale = (Locale) context.get("locale");
+        
+        if (UtilValidate.isNotEmpty(confirm)) {
+            LabelInfo label = labels.get(key + "_" + fileName);
+        
+            // Update a Label
+            if (update_label.equalsIgnoreCase("Y")) {
+                if (UtilValidate.isNotEmpty(label)) {
+                    updateLabelValue(localeNames, localeValues, label, key, fileName);
+                }
+            // Insert a new Label
+            } else {
+                if (UtilValidate.isNotEmpty(label)) {
+                    return ServiceUtil.returnError(UtilProperties.getMessage(resource, "WebtoolsLabelManagerNewLabelExisting", UtilMisc.toMap("key", key, "fileName", fileName), locale));
+                } else {
+                    if (UtilValidate.isEmpty(key)) {
+                        return ServiceUtil.returnError(UtilProperties.getMessage(resource, "WebtoolsLabelManagerNewLabelEmptyKey", locale));
+                    } else {
+                        int notEmptyLabels = updateLabelValue(localeNames, localeValues, null, key, fileName);
+                        if (notEmptyLabels == 0) {
+                            return ServiceUtil.returnError(UtilProperties.getMessage(resource, "WebtoolsLabelManagerNewLabelEmpty", locale));
+                        }
+                    }
+                }
+            }    
+        }
+            
+        return ServiceUtil.returnSuccess();
+    }
+    
+    private static int updateLabelValue(List<String> localeNames, List<String> localeValues, LabelInfo label, String key, String fileName) {
+        int notEmptyLabels = 0;
+        int i = 0;
+        while (i < localeNames.size()) {
+            String localeName = (String)localeNames.get(i);
+            String localeValue = (String)localeValues.get(i);
+            
+            if (UtilValidate.isNotEmpty(localeValue)) {
+                if (label == null) {
+                    try {
+                        String componentName = getFileComponent(fileName);
+                        label = new LabelInfo(key, fileName, componentName, localeName, localeValue);
+                        labels.put(key + "_" + fileName, label);
+                    } catch(Exception e) {
+                        e.printStackTrace();
+                    }
+                }
+                label.setLabelValue(localeName, localeValue, true);
+                notEmptyLabels++;
+            }
+            i++;
+        }
+        
+        if (UtilValidate.isNotEmpty(label) && label.getLabelValueSize() == 0) {
+            labels.remove(key + "_" + fileName);
+        }
+        
+        return notEmptyLabels;
+    }
+}

Added: ofbiz/trunk/framework/webtools/src/org/ofbiz/webtools/labelmanager/SaveLabelsToXmlFile.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/src/org/ofbiz/webtools/labelmanager/SaveLabelsToXmlFile.java?rev=731370&view=auto
==============================================================================
--- ofbiz/trunk/framework/webtools/src/org/ofbiz/webtools/labelmanager/SaveLabelsToXmlFile.java (added)
+++ ofbiz/trunk/framework/webtools/src/org/ofbiz/webtools/labelmanager/SaveLabelsToXmlFile.java Sun Jan  4 13:44:14 2009
@@ -0,0 +1,113 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* 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
+* KIND, either express or implied.  See the License for the
+* specific language governing permissions and limitations
+* under the License.
+*/
+package org.ofbiz.webtools.labelmanager;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.net.URI;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.xml.serialize.OutputFormat;
+import org.ofbiz.base.util.Debug;
+import org.ofbiz.base.util.UtilProperties;
+import org.ofbiz.base.util.UtilValidate;
+import org.ofbiz.base.util.UtilXml;
+import org.ofbiz.base.util.cache.UtilCache;
+
+import org.ofbiz.service.DispatchContext;
+import org.ofbiz.service.ServiceUtil;
+
+import org.w3c.dom.Comment;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+public class SaveLabelsToXmlFile {
+
+   private static final String resource = "WebtoolsUiLabels";
+   private static final String module = SaveLabelsToXmlFile.class.getName();
+
+   public static Map<String, Object> saveLabelsToXmlFile(DispatchContext dctx, Map<String, ? extends Object> context) {
+       Locale locale = (Locale)context.get("locale");
+       String labelFileName = (String)context.get("labelFileName");
+
+       try {
+           LabelManagerFactory.getLabelManagerFactory(dctx.getDelegator().getDelegatorName());
+           Map<String, LabelInfo> labels = LabelManagerFactory.getLabels();
+           Map<String, String> fileNamesFound = LabelManagerFactory.getFileNamesFound();
+           Set<String> labelsList = LabelManagerFactory.getLabelsList();
+           Set<String> localesFound = LabelManagerFactory.getLocalesFound();
+
+           for (String fileName : fileNamesFound.keySet()) {
+               if (UtilValidate.isNotEmpty(labelFileName) && !(labelFileName.equalsIgnoreCase(fileName))) {
+                   continue;
+               }
+
+               String uri = (String)fileNamesFound.get(fileName);
+               Document resourceDocument = UtilXml.makeEmptyXmlDocument("resource");
+               Element resourceElem = resourceDocument.getDocumentElement();
+               Comment comment = resourceDocument.createComment("A Document Comment");
+               resourceElem.getParentNode().insertBefore(comment, resourceElem);
+               resourceElem.setAttribute("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance");
+              
+               for (String labelKey : labelsList) {
+                   LabelInfo labelInfo = (LabelInfo)labels.get(labelKey);
+
+                   if (!(labelInfo.getFileName().equalsIgnoreCase(fileName))) {
+                       continue;
+                   }
+
+                   Element propertyElem = UtilXml.addChildElement(resourceElem, "property", resourceDocument);
+                   propertyElem.setAttribute("key", labelInfo.getLabelKey());
+
+                   for (String localeFound : localesFound) {
+                       String labelValue = labelInfo.getLabelValue(localeFound);
+
+                       if (UtilValidate.isNotEmpty(labelValue)) {
+                           Element valueElem = UtilXml.addChildElementValue(propertyElem, "value", labelValue, resourceDocument);
+                           valueElem.setAttribute("xml:lang", localeFound);
+                       }
+                   }
+               }
+
+//               if (resourceElem != null && uri != null) {
+//                   File outFile = new File(new URI(uri));
+//                   FileOutputStream fos = new FileOutputStream(outFile);
+//
+//                   try {
+//                       OutputFormat format = new OutputFormat(resourceDocument.getDocumentElement().getOwnerDocument(), "UTF-8", true);
+//                       format.setIndent(4);
+//                       format.setOmitComments(false);
+//                       UtilXml.writeXmlDocument(fos, resourceElem, format);
+//                   } finally {
+//                       if (fos != null) {
+//                           fos.close();
+//                       }
+//                   }
+//               }
+               UtilCache.clearCache("properties.UtilPropertiesBundleCache");
+           }
+       } catch (Exception e) {
+           Debug.logError(e, "Exception during save labels to xml file:", module);
+           return ServiceUtil.returnFailure(UtilProperties.getMessage(resource, "saveLabelsToXmlFile.exceptionDuringSaveLabelsToXmlFile", locale));
+       }
+       return ServiceUtil.returnSuccess();
+   }
+}

Added: ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/actions/labelmanager/LabelManager.groovy
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/actions/labelmanager/LabelManager.groovy?rev=731370&view=auto
==============================================================================
--- ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/actions/labelmanager/LabelManager.groovy (added)
+++ ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/actions/labelmanager/LabelManager.groovy Sun Jan  4 13:44:14 2009
@@ -0,0 +1,29 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * 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
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.ofbiz.entity.GenericDelegator;
+import org.ofbiz.webtools.labelmanager.*;
+
+LabelManagerFactory.getLabelManagerFactory(delegator.getDelegatorName());
+context.labels = LabelManagerFactory.getLabels();
+context.labelsList = LabelManagerFactory.getLabelsList();
+context.localesFound = LabelManagerFactory.getLocalesFound();
+context.fileNamesFound = LabelManagerFactory.getFileNamesFound();
+context.componentNamesFound = LabelManagerFactory.getComponentNamesFound();
+context.duplicatedLocalesLabels = LabelManagerFactory.getDuplicatedLocalesLabels();

Added: ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/actions/labelmanager/UpdateManager.groovy
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/actions/labelmanager/UpdateManager.groovy?rev=731370&view=auto
==============================================================================
--- ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/actions/labelmanager/UpdateManager.groovy (added)
+++ ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/actions/labelmanager/UpdateManager.groovy Sun Jan  4 13:44:14 2009
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * 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
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.ofbiz.entity.GenericDelegator;
+import org.ofbiz.webtools.labelmanager.*;
+
+LabelManagerFactory.getLabelManagerFactory(delegator.getDelegatorName());
+context.labels = LabelManagerFactory.getLabels();
+context.localesFound = LabelManagerFactory.getLocalesFound();
+context.fileNamesFound = LabelManagerFactory.getFileNamesFound();
+context.componentNamesFound = LabelManagerFactory.getComponentNamesFound();
+
+if (parameters.sourceKey  != null && parameters.sourceFileName != null) {
+    context.label = context.labels.get(parameters.sourceKey + "_" + parameters.sourceFileName);
+}

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=731370&r1=731369&r2=731370&view=diff
==============================================================================
--- ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/controller.xml (original)
+++ ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/controller.xml Sun Jan  4 13:44:14 2009
@@ -461,7 +461,34 @@
     </request-map>
     
     <!-- Artifact Info Requests -->
-    <request-map uri="ArtifactInfo"><security https="true" auth="true"/><response name="success" type="view" value="ArtifactInfo"/></request-map>
+    <request-map uri="ArtifactInfo">
+        <security https="true" auth="true"/>
+        <response name="success" type="view" value="ArtifactInfo"/>
+    </request-map>
+
+    <!-- Label Manager Requests -->
+    <request-map uri="SearchLabels">
+        <security https="true" auth="true"/>
+        <response name="success" type="view" value="SearchLabels"/>
+    </request-map>
+    
+    <request-map uri="SaveLabelsToXmlFile">
+        <security https="true" auth="true"/>
+        <event type="service" invoke="saveLabelsToXmlFile"/>
+        <response name="success" type="view" value="SearchLabels"/>
+    </request-map>
+    
+    <request-map uri="UpdateLabel">
+        <security https="true" auth="true"/>
+        <response name="success" type="view" value="UpdateLabel"/>
+    </request-map>
+    
+    <request-map uri="UpdateLabelKey">
+        <security https="true" auth="true"/>
+        <event type="service" invoke="updateLabelKey"/>
+        <response name="success" type="view" value="SearchLabels"/>
+        <response name="error" type="view" value="UpdateLabel"/>
+    </request-map>
 
     <!-- cert requests -->
     <request-map uri="myCertificates">
@@ -608,6 +635,10 @@
     <!-- Artifact Info Views -->
     <view-map name="ArtifactInfo" type="screen" page="component://webtools/widget/ArtifactInfoScreens.xml#ArtifactInfo"/>
 
+    <!-- Label Manager Views -->
+    <view-map name="SearchLabels" type="screen" page="component://webtools/widget/LabelManagerScreens.xml#SearchLabels"/>
+    <view-map name="UpdateLabel" type="screen" page="component://webtools/widget/LabelManagerScreens.xml#UpdateLabel"/>
+
     <!-- Temporal expression views -->
     <view-map name="editTemporalExpression" type="screen" page="component://webtools/widget/TempExprScreens.xml#EditTemporalExpression"/>
     <view-map name="findTemporalExpression" type="screen" page="component://webtools/widget/TempExprScreens.xml#FindTemporalExpression"/>

Added: 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=731370&view=auto
==============================================================================
--- ofbiz/trunk/framework/webtools/webapp/webtools/labelmanager/SearchLabels.ftl (added)
+++ ofbiz/trunk/framework/webtools/webapp/webtools/labelmanager/SearchLabels.ftl Sun Jan  4 13:44:14 2009
@@ -0,0 +1,84 @@
+<#--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+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
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+<div class="screenlet-body">
+  <form action="<@ofbizUrl>SearchLabels</@ofbizUrl>" method="post">
+    <table class="basic-table">
+      <tr>
+        <td align="right" class="label">
+          ${uiLabelMap.WebtoolsLabelManagerKey}
+        </td>
+        <td align="left">
+          <input type="text" name="labelKey" size="30" maxlength="70" value="${parameters.labelKey?if_exists}">
+        </td>
+        <td align="right" class="label">
+          ${uiLabelMap.WebtoolsLabelManagerComponentName}
+        </td>
+        <td align="left">
+          <select name="labelComponentName">
+            <option value="">${uiLabelMap.WebtoolsLabelManagerAllComponents}</option>
+            <#list componentNamesFound as componentNameFound>
+              <option <#if parameters.labelComponentName?exists && parameters.labelComponentName == componentNameFound>selected="selected"</#if> value="${componentNameFound}">${componentNameFound}</option>
+            </#list>
+          </select>
+        </td>
+      </tr>
+      <tr>
+        <td align="right" class="label">
+          ${uiLabelMap.WebtoolsLabelManagerFileName}
+        </td>
+        <td align="left">
+          <select name="labelFileName">
+            <option value="">${uiLabelMap.WebtoolsLabelManagerAllFiles}</option>
+            <#assign fileNames = fileNamesFound.keySet()>
+            <#list fileNames as fileName>
+              <option <#if parameters.labelFileName?exists && parameters.labelFileName == fileName>selected="selected"</#if> value="${fileName}">${fileName}</option>
+            </#list>
+          </select>
+        </td>
+        <td align="right" class="label">
+          ${uiLabelMap.WebtoolsLabelManagerLocale}
+        </td>
+        <td align="left">
+          <select name="labelLocaleName">
+            <option value="">${uiLabelMap.WebtoolsLabelManagerAllLocales}</option>
+            <#list localesFound as localeFound>
+              <#assign locale = Static["org.ofbiz.base.util.UtilMisc"].parseLocale(localeFound)?if_exists/>
+              <#assign langAttr = localeFound.toString()?replace("_", "-")>
+              <#assign langDir = "ltr">
+              <#if "ar.iw"?contains(langAttr?substring(0, 2))>
+                <#assign langDir = "rtl">
+              </#if>
+              <option <#if parameters.labelLocaleName?exists && parameters.labelLocaleName == localeFound>selected="selected"</#if> value="${localeFound}" lang="${langAttr}" dir="${langDir}"><#if locale?exists && locale?has_content>${locale.getDisplayName(locale)}<#else>${localeFound}</#if></option>
+            </#list>
+          </select>
+        </td>
+      </tr>
+      <tr>
+        <td colspan="4" align="center">
+          <#if (duplicatedLocalesLabels > 0)>
+            <br/>
+            <b>${uiLabelMap.WebtoolsLabelManagerWarningMessage} (${duplicatedLocalesLabels})</b>
+          <#else>
+            <input type="submit" name="searchLabels" value="${uiLabelMap.CommonFind}"/>
+          </#if>
+        </td>
+      </tr>
+    </table>
+  </form>
+</div>

Added: 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=731370&view=auto
==============================================================================
--- ofbiz/trunk/framework/webtools/webapp/webtools/labelmanager/UpdateLabel.ftl (added)
+++ ofbiz/trunk/framework/webtools/webapp/webtools/labelmanager/UpdateLabel.ftl Sun Jan  4 13:44:14 2009
@@ -0,0 +1,97 @@
+<#--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+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
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+<div class="screenlet-body">
+    <form method="post" action="<@ofbizUrl>UpdateLabelKey</@ofbizUrl>" name="UpdateLabelForm">
+        <table class="basic-table" cellspacing="3">
+            <tr>
+                <td colspan="2">&nbsp;</td>
+            </tr>
+            <tr>
+                <td align="right"><b>${uiLabelMap.WebtoolsLabelManagerKey}</b></td>
+                <td align="left">
+                    <#if parameters.sourceKey?exists>
+                        ${parameters.sourceKey}
+                        <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="hidden" name="update_label" value="N">
+                    </#if>
+                </td>
+            </tr>
+            <tr>
+                <td align="right"><b>${uiLabelMap.WebtoolsLabelManagerFileName}</b></td>
+                <td align="left">
+                    <#if parameters.sourceFileName?exists>
+                        ${parameters.sourceFileName}
+                        <input type="hidden" name="fileName" value="${parameters.sourceFileName}">
+                    <#else>
+                        <select name="fileName">
+                            <#assign fileNames = fileNamesFound.keySet()>
+                            <#list fileNames as fileName>
+                              <option <#if parameters.fileName?exists && parameters.fileName == fileName>selected="selected"</#if> value="${fileName}">${fileName}</option>
+                            </#list>
+                        </select>
+                    </#if>
+                </td>
+            </tr>
+            <tr>
+                <td colspan="2">&nbsp;</td>
+            </tr>
+            <#list localesFound as localeFound>
+                <#if parameters.sourceKey?exists>
+                    <#assign labelVal = label.getLabelValue(localeFound)?if_exists>
+                <#else>
+                    <#assign labelVal = "">
+                </#if>
+                <#assign showLocale = true>
+                <#if parameters.labelLocaleName?exists && parameters.labelLocaleName != "" && parameters.labelLocaleName != localeFound>
+                    <#assign showLocale = false>
+                </#if>
+                <#if showLocale == true>
+                    <tr>
+                        <#assign locale = Static["org.ofbiz.base.util.UtilMisc"].parseLocale(localeFound)?if_exists/>
+                        <#if locale?exists && locale?has_content>
+                            <#assign langAttr = localeFound.toString()?replace("_", "-")>
+                            <#assign langDir = "ltr">
+                            <#if "ar.iw"?contains(langAttr?substring(0, 2))>
+                                <#assign langDir = "rtl">
+                            </#if>
+                            <td align="right" lang="${langAttr}" dir="${langDir}">
+                                <b>${locale.getDisplayName(locale)}</b>
+                            </td>
+                        <#else>
+                            <td align="right"><b>${localeFound}</b></td>
+                        </#if>
+                        <td align="left">
+                            <input type="hidden" name="localeNames" value="${localeFound}">
+                            <input type="text" name="localeValues" size="70" value="${labelVal?if_exists}">
+                        </td>
+                    </tr>
+                </#if>
+            </#list>
+            <tr>
+                <td colspan="2" align="center">
+                    <input type="submit" value="${uiLabelMap.CommonConfirm}" name="confirm"/>
+                    <input type="submit" value="${uiLabelMap.CommonCancel}"/>
+                </td>
+            </tr>
+        </table>
+    </form>
+</div>

Added: 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=731370&view=auto
==============================================================================
--- ofbiz/trunk/framework/webtools/webapp/webtools/labelmanager/ViewLabels.ftl (added)
+++ ofbiz/trunk/framework/webtools/webapp/webtools/labelmanager/ViewLabels.ftl Sun Jan  4 13:44:14 2009
@@ -0,0 +1,94 @@
+<#--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+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
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+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>
+  <table class="basic-table hover-bar" cellspacing="3">
+    <tr class="header-row">
+      <td>${uiLabelMap.WebtoolsLabelManagerKey}</td>
+      <td>${uiLabelMap.WebtoolsLabelManagerFileName}</td>
+      <#list localesFound as localeFound>
+        <#assign showLocale = true>
+        <#if parameters.labelLocaleName?exists && parameters.labelLocaleName != "" && parameters.labelLocaleName != localeFound>
+          <#assign showLocale = false>
+        </#if>
+        <#if showLocale == true>
+          <#assign locale = Static["org.ofbiz.base.util.UtilMisc"].parseLocale(localeFound)?if_exists/>
+          <#if locale?exists && locale?has_content>
+            <#assign langAttr = localeFound.toString()?replace("_", "-")>
+            <#assign langDir = "ltr">
+            <#if "ar.iw"?contains(langAttr?substring(0, 2))>
+              <#assign langDir = "rtl">
+            </#if>
+            <td lang="${langAttr}" dir="${langDir}">
+              ${locale.getDisplayName(locale)}
+            </td>
+          <#else>
+            <td>${localeFound}</td>
+          </#if>
+        </#if>
+      </#list>
+    </tr>
+    <#if parameters.searchLabels?exists>
+      <#assign rowNum = "2">
+      <#assign previousKey = "">
+      <#list labelsList as labelList>
+        <#assign label = labels.get(labelList)>
+        <#assign showLabel = true>
+        <#if parameters.labelKey?exists && parameters.labelKey != "" && parameters.labelKey != label.labelKey>
+          <#assign showLabel = false>
+        </#if>
+        <#if showLabel && parameters.labelFileName?exists && parameters.labelFileName != "" && parameters.labelFileName != label.fileName>
+          <#assign showLabel = false>
+        </#if>
+        <#if showLabel && parameters.labelComponentName?exists && parameters.labelComponentName != "" && parameters.labelComponentName != label.componentName>
+          <#assign showLabel = false>
+        </#if>
+        <#if showLabel == true>
+          <tr <#if rowNum == "1">class="alternate-row"</#if>>
+            <td><a href="<@ofbizUrl>UpdateLabel?sourceKey=${label.labelKey}&sourceFileName=${label.fileName}</@ofbizUrl>" <#if previousKey == label.labelKey>class="submenutext"</#if>>${label.labelKey}</a></td>
+            <td>${label.fileName}</td>
+            <#list localesFound as localeFound>
+              <#assign labelVal = label.getLabelValue(localeFound)?if_exists>
+              <#assign showLocale = true>
+              <#if parameters.labelLocaleName?exists && parameters.labelLocaleName != "" && parameters.labelLocaleName != localeFound>
+                <#assign showLocale = false>
+              </#if>
+              <#if showLocale == true>
+                <#if labelVal?has_content>
+                  <td>${labelVal}</td>
+                <#else>
+                  <td>&nbsp;</td>
+                </#if>
+              </#if>
+            </#list>
+          </tr>
+          <#if rowNum == "2">
+            <#assign rowNum = "1">
+          <#else>
+            <#assign rowNum = "2">
+          </#if>
+          <#assign previousKey = label.labelKey>
+        </#if>
+      </#list>
+    </#if>
+  </table>
+</div>

Modified: ofbiz/trunk/framework/webtools/webapp/webtools/main.ftl
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/webapp/webtools/main.ftl?rev=731370&r1=731369&r2=731370&view=diff
==============================================================================
--- ofbiz/trunk/framework/webtools/webapp/webtools/main.ftl (original)
+++ ofbiz/trunk/framework/webtools/webapp/webtools/main.ftl Sun Jan  4 13:44:14 2009
@@ -70,13 +70,17 @@
         <#if security.hasPermission("ARTIFACT_INFO_VIEW", session)>
           <li><h3>${uiLabelMap.WebtoolsGeneralArtifactInfoTools}</h3></li>
           <li><a href="<@ofbizUrl>ArtifactInfo</@ofbizUrl>" target="_blank">${uiLabelMap.WebtoolsArtifactInfo}</a></li>
-          <li><a href="<@ofbizUrl>entityref</@ofbizUrl>" target="_blank">${uiLabelMap.WebtoolsEntityReference} - Interactive</a></li>
+          <li><a href="<@ofbizUrl>entityref</@ofbizUrl>" target="_blank">${uiLabelMap.WebtoolsEntityReference} - ${uiLabelMap.WebtoolsEntityReferenceInteractiveVersion}</a></li>
           <li><a href="<@ofbizUrl>ServiceList</@ofbizUrl>">${uiLabelMap.WebtoolsServiceReference}</a></li>
         </#if>
+        <#if security.hasPermission("LABEL_MANAGER_VIEW", session)>
+          <li><h3>${uiLabelMap.WebtoolsLabelManager}</h3></li>
+          <li><a href="<@ofbizUrl>SearchLabels</@ofbizUrl>">${uiLabelMap.WebtoolsLabelManager}</a></li>
+        </#if>
         <#if security.hasPermission("ENTITY_MAINT", session)>
           <li><h3>${uiLabelMap.WebtoolsEntityEngineTools}</h3></li>
           <li><a href="<@ofbizUrl>entitymaint</@ofbizUrl>">${uiLabelMap.WebtoolsEntityDataMaintenance}</a></li>
-          <li><a href="<@ofbizUrl>entityref</@ofbizUrl>" target="_blank">${uiLabelMap.WebtoolsEntityReference} - Interactive</a></li>
+          <li><a href="<@ofbizUrl>entityref</@ofbizUrl>" target="_blank">${uiLabelMap.WebtoolsEntityReference} - ${uiLabelMap.WebtoolsEntityReferenceInteractiveVersion}</a></li>
           <li><a href="<@ofbizUrl>entityref?forstatic=true</@ofbizUrl>" target="_blank">${uiLabelMap.WebtoolsEntityReference} - ${uiLabelMap.WebtoolsEntityReferenceStaticVersion}</a></li>
           <li><a href="<@ofbizUrl>entityrefReport</@ofbizUrl>" target="_blank">${uiLabelMap.WebtoolsEntityReferencePdf}</a></li>
           <li><a href="<@ofbizUrl>EntitySQLProcessor</@ofbizUrl>">${uiLabelMap.PageTitleEntitySQLProcessor}</a></li>

Added: ofbiz/trunk/framework/webtools/widget/LabelManagerScreens.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/widget/LabelManagerScreens.xml?rev=731370&view=auto
==============================================================================
--- ofbiz/trunk/framework/webtools/widget/LabelManagerScreens.xml (added)
+++ ofbiz/trunk/framework/webtools/widget/LabelManagerScreens.xml Sun Jan  4 13:44:14 2009
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+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
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<screens xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/widget-screen.xsd">
+    <screen name="SearchLabels">
+        <section>
+            <condition>
+                <if-has-permission permission="LABEL_MANAGER_VIEW"/>
+            </condition>
+            <actions>
+                <set field="titleProperty" value="WebtoolsLabelManager"/>
+                <script location="component://webtools/webapp/webtools/WEB-INF/actions/labelmanager/LabelManager.groovy"/>
+            </actions>
+            <widgets>
+                <decorator-screen name="main-decorator" location="${parameters.mainDecoratorLocation}">
+                    <decorator-section name="body">
+                        <screenlet id="SearchLabelsPanel" title="${uiLabelMap.WebtoolsLabelManagerSearchBy}" collapsible="true">
+                            <platform-specific><html><html-template location="component://webtools/webapp/webtools/labelmanager/SearchLabels.ftl"/></html></platform-specific>
+                        </screenlet>
+                        <screenlet id="ViewLabelsPanel" title="${uiLabelMap.WebtoolsLabelManager}" collapsible="false">
+                            <platform-specific><html><html-template location="component://webtools/webapp/webtools/labelmanager/ViewLabels.ftl"/></html></platform-specific>
+                        </screenlet>                        
+                    </decorator-section>
+                </decorator-screen>
+            </widgets>
+            <fail-widgets>
+                <label style="h3">${uiLabelMap.WebtoolsLabelManagerSecuryError}</label>
+            </fail-widgets>
+        </section>
+    </screen>
+    <screen name="UpdateLabel">
+        <section>
+            <condition>
+                <if-has-permission permission="LABEL_MANAGER_VIEW"/>
+            </condition>
+            <actions>
+                <set field="titleProperty" value="WebtoolsLabelManagerUpdate"/>
+                <script location="component://webtools/webapp/webtools/WEB-INF/actions/labelmanager/UpdateManager.groovy"/>
+            </actions>
+            <widgets>
+                <decorator-screen name="main-decorator" location="${parameters.mainDecoratorLocation}">
+                    <decorator-section name="body">
+                        <screenlet id="UpdateLabelPanel" title="${uiLabelMap.WebtoolsLabelManagerUpdate}">
+                            <platform-specific><html><html-template location="component://webtools/webapp/webtools/labelmanager/UpdateLabel.ftl"/></html></platform-specific>
+                        </screenlet>
+                    </decorator-section>
+                </decorator-screen>
+            </widgets>
+            <fail-widgets>
+                <label style="h3">${uiLabelMap.WebtoolsLabelManagerSecuryError}</label>
+            </fail-widgets>
+        </section>
+    </screen>
+</screens>