[Yanel-commits] rev 23404 - public/yanel/trunk/src/contributions/resources/resource-creator/src/java/org/wyona/yanel/impl/resources

michi at wyona.com michi at wyona.com
Mon Mar 26 14:21:18 CEST 2007


Author: michi
Date: 2007-03-26 14:21:17 +0200 (Mon, 26 Mar 2007)
New Revision: 23404

Modified:
   public/yanel/trunk/src/contributions/resources/resource-creator/src/java/org/wyona/yanel/impl/resources/ResourceCreatorResource.java
Log:
use jdom instead Avalon configuration

Modified: public/yanel/trunk/src/contributions/resources/resource-creator/src/java/org/wyona/yanel/impl/resources/ResourceCreatorResource.java
===================================================================
--- public/yanel/trunk/src/contributions/resources/resource-creator/src/java/org/wyona/yanel/impl/resources/ResourceCreatorResource.java	2007-03-26 12:20:21 UTC (rev 23403)
+++ public/yanel/trunk/src/contributions/resources/resource-creator/src/java/org/wyona/yanel/impl/resources/ResourceCreatorResource.java	2007-03-26 12:21:17 UTC (rev 23404)
@@ -123,20 +123,20 @@
      *
      */
     private void getSelectResourceTypeScreen(StringBuffer sb) {
-        sb.append("<h4>Create resource (step 1)</h4>");
-        sb.append("<h2>Select resource type</h2>");
+        sb.append("<h4>Create new page (step 1)</h4>");
+        sb.append("<h2>Select template (resp. resource type)</h2>");
         sb.append("<form>");
 
         ResourceTypeRegistry rtr = new ResourceTypeRegistry();
 
         ResourceTypeDefinition[] rtds = getResourceTypeDefinitions();
         if (rtds != null) {
-        sb.append("Resource Type: <select name=\"resource-type\">");
+        sb.append("Template (resp. resource type): <select name=\"resource-type\">");
         for (int i = 0; i < rtds.length; i++) {
             try {
                 Resource resource = rtr.newResource(rtds[i].getResourceTypeUniversalName());
                 if (resource != null && ResourceAttributeHelper.hasAttributeImplemented(resource, "Creatable", "2")) {
-                    sb.append("<option value=\"" + rtds[i].getResourceTypeNamespace() + "::" + rtds[i].getResourceTypeLocalName() + "\">" + rtds[i].getResourceTypeLocalName() + "</option>");
+                    sb.append("<option value=\"" + rtds[i].getResourceTypeNamespace() + "::" + rtds[i].getResourceTypeLocalName() + "\">" + getDisplayName(rtds[i].getResourceTypeLocalName(), rtds[i].getResourceTypeNamespace()) + "</option>");
                 } else {
                     log.warn("Resource type: " + rtds[i] + " does not implement CreatableV2 interface!");
                 }
@@ -161,81 +161,10 @@
     }
 
     /**
-     * OBSOLETE
-     */
-/*
-    private void getSaveAsScreen(StringBuffer sb) {
-        String rtps = getRequest().getParameter("resource-type");
-        String resNamespace = rtps.substring(0, rtps.indexOf("::"));
-        String resName = rtps.substring(rtps.indexOf("::") + 2);
-        ResourceTypeRegistry rtr = new ResourceTypeRegistry();
-
-        String universalName = "<{"+ resNamespace +"}"+ resName +"/>";
-        log.debug("Universal Name: " + universalName);
-        try {
-            Resource resource = rtr.newResource(universalName);
-            if (resource != null) {
-
-        sb.append("<h4>Create resource (step 3)</h4>");
-        sb.append("<h2>Save As</h2>");
-
-        HttpServletRequest request = getRequest();
-        Enumeration parameters = request.getParameterNames();
-        if (parameters.hasMoreElements()) {
-            sb.append("<ul>");
-            while (parameters.hasMoreElements()) {
-                String parameter = (String) parameters.nextElement();
-                if (parameter.indexOf("rp.") == 0) {
-                    sb.append("<li>"+parameter+": "+request.getParameter(parameter)+"</li>");
-                }
-            }
-            sb.append("</ul>");
-        }
-
-        sb.append("<p>");
-        sb.append("<form>");
-        //sb.append("<form method=\"post\" enctype=\"multipart/form-data\">");
-        // TODO: Add this parameter to the continuation within the session!
-        sb.append("<input type=\"hidden\" name=\"resource-type\" value=\""+rtps+"\"/>");
-
-        parameters = request.getParameterNames();
-        while (parameters.hasMoreElements()) {
-            String parameter = (String) parameters.nextElement();
-            if (parameter.indexOf("rp.") == 0) {
-                String propertyType = ((CreatableV2) resource).getPropertyType(parameter.substring(3));
-                if (propertyType != null && propertyType.equals(CreatableV2.TYPE_UPLOAD)) {
-                    sb.append("<input type=\"file\" name=\""+parameter+"\" value=\""+request.getParameter(parameter)+"\"/><br/>");
-		} else if (propertyType != null && propertyType.equals(CreatableV2.TYPE_SELECT)) {
-                    sb.append("<select name=\"parameter\">");
-                    sb.append("</select>");
-                } else {
-                    sb.append("<input type=\"hidden\" name=\""+parameter+"\" value=\""+request.getParameter(parameter)+"\"/>");
-                }
-            }
-        }
-
-        String createName = request.getParameter("create-name");
-        if (createName != null) {
-            sb.append("Name: <input type=\"text\" name=\"create-name\" value=\"" + createName + "\"/>");
-        } else {
-            sb.append("Name: <input type=\"text\" name=\"create-name\"/>");
-        }
-        sb.append("<br/><input type=\"submit\" value=\"Save\" name=\"save\"/>");
-        sb.append("</form>");
-        sb.append("</p>");
-        }
-        } catch (Exception e) {
-            sb.append("<p>Exception: "+e+"</p>");
-            log.error(e);
-        }
-    }
-*/
-
-    /**
      * Save screen
      */
     private void getSaveScreen(StringBuffer sb) {
-        sb.append("<h4>Create resource (step 3)</h4>");
+        sb.append("<h4>Create new page (step 3)</h4>");
 
         try {
             create();
@@ -279,9 +208,9 @@
             if (resource != null) {
                 if (ResourceAttributeHelper.hasAttributeImplemented(resource, "Creatable", "2")) {
 
-                    sb.append("<h4>Create resource (step 2)</h4>");
-                    sb.append("<h2>Enter/Select resource specific parameters and \"Save As\"</h2>");
-                    sb.append("<p>Resource Type: " + resName + " ("+resNamespace+")</p>");
+                    sb.append("<h4>Create new page (step 2)</h4>");
+                    sb.append("<h2>Enter/Select template (resp. resource) specific parameters and \"Save As\"</h2>");
+                    sb.append("<p>Template (resp. resource type): " + resName + " ("+resNamespace+")</p>");
                     sb.append("<form>");
                     // TODO: Add this parameter to the continuation within the session!
                     sb.append("<input type=\"hidden\" name=\"resource-type\" value=\"" + rtps + "\"/>");
@@ -530,6 +459,35 @@
         }
         return null;
     }
+
+    /**
+     * Get the display name from custom configuration
+     */
+    private String getDisplayName(String resName, String resNamespace) {
+        Document customConfigDoc = getConfiguration().getCustomConfiguration();
+        if (customConfigDoc != null) {
+
+            try {
+                org.jdom.Document jdomDocument = new org.jdom.input.DOMBuilder().build(customConfigDoc);
+                org.jdom.xpath.XPath xpath = org.jdom.xpath.XPath.newInstance("/yanel:custom-config/rc:resource-types/rc:resource-type[@name='" + resName + "']/rc:display-name");
+                xpath.addNamespace("yanel", "http://www.wyona.org/yanel/rti/1.0");
+                xpath.addNamespace("rc", "http://www.wyona.org/yanel/resource/resource-creator/1.0");
+                org.jdom.Element displayNameElement = (org.jdom.Element) xpath.selectSingleNode(jdomDocument);
+                if (displayNameElement != null) {
+                    // TODO: It seems like document does not contain text nodes ...
+                    log.error("DEBUG: " + displayNameElement + " :: " + displayNameElement.getText() + " :: " + displayNameElement.getName());
+                    return displayNameElement.getText();
+                } else {
+                    log.warn("No display name: " + resName);
+                    return resName;
+                }
+            } catch (Exception e) {
+                log.error(e.getMessage(), e);
+                return resName;
+            }
+        }
+        return resName;
+    }
 }
 
 /**




More information about the Yanel-commits mailing list