You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by mm...@apache.org on 2005/09/17 22:23:56 UTC

svn commit: r289848 - in /myfaces/tomahawk/trunk/src/java/org/apache/myfaces: component/html/util/ custom/navmenu/jscookmenu/ custom/navmenu/jscookmenu/resource/ThemeIE/ custom/navmenu/jscookmenu/resource/ThemeOffice/ custom/navmenu/jscookmenu/resource...

Author: mmarinschek
Date: Sat Sep 17 13:23:46 2005
New Revision: 289848

URL: http://svn.apache.org/viewcvs?rev=289848&view=rev
Log:
fixed last problems with scripts, fixed jsCookMenu not rendering images

Modified:
    myfaces/tomahawk/trunk/src/java/org/apache/myfaces/component/html/util/AddResource.java
    myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/navmenu/jscookmenu/HtmlJSCookMenuRenderer.java
    myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/navmenu/jscookmenu/resource/ThemeIE/theme.js
    myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/navmenu/jscookmenu/resource/ThemeOffice/theme.js
    myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/navmenu/jscookmenu/resource/ThemePanel/theme.js

Modified: myfaces/tomahawk/trunk/src/java/org/apache/myfaces/component/html/util/AddResource.java
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/src/java/org/apache/myfaces/component/html/util/AddResource.java?rev=289848&r1=289847&r2=289848&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/src/java/org/apache/myfaces/component/html/util/AddResource.java (original)
+++ myfaces/tomahawk/trunk/src/java/org/apache/myfaces/component/html/util/AddResource.java Sat Sep 17 13:23:46 2005
@@ -121,6 +121,16 @@
     }
 
     /**
+     * Adds the given Script to the document Header.
+     * If the style sheet is already has already been referenced, it's added only once.
+     */
+    public static void addInlineScriptToHeader(String inlineScript, FacesContext context){
+        AdditionalHeaderInfoToRender scriptInfo =
+            new AdditionalHeaderInfoToRender(AdditionalHeaderInfoToRender.TYPE_JS_INLINE, inlineScript);
+        addAdditionalHeaderInfoToRender(context, scriptInfo );
+    }
+
+    /**
      * Get the Path used to retrieve an internal resource for a custom component.
      * Example : You can use this to initialize javascript scripts so that they know the path of some other resources
      * (image, css, ...).
@@ -385,6 +395,7 @@
         static final int TYPE_JS = 0;
         static final int TYPE_CSS = 1;
         static final int TYPE_CSS_INLINE = 2;
+        static final int TYPE_JS_INLINE = 3;
 
         public int type;
         public boolean deferJS = false;
@@ -408,8 +419,8 @@
         }
 
         public AdditionalHeaderInfoToRender(int infoType, String inlineText) {
-            if( infoType != TYPE_CSS_INLINE )
-                log.error("This constructor only supports TYPE_CSS_INLINE");
+            if( infoType != TYPE_CSS_INLINE  && infoType != TYPE_JS_INLINE)
+                log.error("This constructor only supports TYPE_CSS_INLINE or TYPE_JS_INLINE");
             this.type = infoType;
             this.inlineText = inlineText;
         }
@@ -463,7 +474,9 @@
         				+"type=\"text/css\"/>\n";
         		case TYPE_CSS_INLINE:
         			return "<style type=\"text/css\">"+inlineText+"</style>\n";
-        		default:
+                case TYPE_JS_INLINE:
+                    return "<script type=\"text/javascript\">"+inlineText+"</script>\n";
+                default:
         			log.warn("Unknown type:"+type);
         			return "<link href=\""+"\"/>\n";
         	}

Modified: myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/navmenu/jscookmenu/HtmlJSCookMenuRenderer.java
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/navmenu/jscookmenu/HtmlJSCookMenuRenderer.java?rev=289848&r1=289847&r2=289848&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/navmenu/jscookmenu/HtmlJSCookMenuRenderer.java (original)
+++ myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/navmenu/jscookmenu/HtmlJSCookMenuRenderer.java Sat Sep 17 13:23:46 2005
@@ -268,16 +268,41 @@
         AddResource.addJavaScriptToHeader(HtmlJSCookMenuRenderer.class, "MyFacesHack.js", context);
 
         if( theme.equals( "ThemeOffice" ) ){
-        	AddResource.addJavaScriptToHeader(HtmlJSCookMenuRenderer.class, "ThemeOffice/theme.js", context);
+            StringBuffer buf = new StringBuffer();
+            buf.append("myThemeOfficeBase='");
+            buf.append(AddResource.getResourceBasePath(HtmlJSCookMenuRenderer.class,context));
+            buf.append("/ThemeOffice/';");
+
+        	AddResource.addInlineScriptToHeader(buf.toString(), context);
+
+            AddResource.addJavaScriptToHeader(HtmlJSCookMenuRenderer.class, "ThemeOffice/theme.js", context);
         	AddResource.addStyleSheet(HtmlJSCookMenuRenderer.class, "ThemeOffice/theme.css", context);
         }else if( theme.equals( "ThemeMiniBlack" ) ){
-        	AddResource.addJavaScriptToHeader(HtmlJSCookMenuRenderer.class, "ThemeMiniBlack/theme.js", context);
+            StringBuffer buf = new StringBuffer();
+            buf.append("myThemeMiniBlackBase='");
+            buf.append(AddResource.getResourceBasePath(HtmlJSCookMenuRenderer.class,context));
+            buf.append("/ThemeMiniBlack/';");
+
+        	AddResource.addInlineScriptToHeader(buf.toString(), context);
+            AddResource.addJavaScriptToHeader(HtmlJSCookMenuRenderer.class, "ThemeMiniBlack/theme.js", context);
         	AddResource.addStyleSheet(HtmlJSCookMenuRenderer.class, "ThemeMiniBlack/theme.css", context);
         }else if( theme.equals( "ThemeIE" ) ){
-        	AddResource.addJavaScriptToHeader(HtmlJSCookMenuRenderer.class, "ThemeIE/theme.js", context);
+            StringBuffer buf = new StringBuffer();
+            buf.append("myThemeIEBase='");
+            buf.append(AddResource.getResourceBasePath(HtmlJSCookMenuRenderer.class,context));
+            buf.append("/ThemeIE/';");
+
+        	AddResource.addInlineScriptToHeader(buf.toString(), context);
+            AddResource.addJavaScriptToHeader(HtmlJSCookMenuRenderer.class, "ThemeIE/theme.js", context);
         	AddResource.addStyleSheet(HtmlJSCookMenuRenderer.class, "ThemeIE/theme.css", context);
         }else if( theme.equals( "ThemePanel" ) ){
-        	AddResource.addJavaScriptToHeader(HtmlJSCookMenuRenderer.class, "ThemePanel/theme.js", context);
+            StringBuffer buf = new StringBuffer();
+            buf.append("myThemePanelBase='");
+            buf.append(AddResource.getResourceBasePath(HtmlJSCookMenuRenderer.class,context));
+            buf.append("/ThemePanel/';");
+
+        	AddResource.addInlineScriptToHeader(buf.toString(), context);
+            AddResource.addJavaScriptToHeader(HtmlJSCookMenuRenderer.class, "ThemePanel/theme.js", context);
         	AddResource.addStyleSheet(HtmlJSCookMenuRenderer.class, "ThemePanel/theme.css", context);
         }
         	// Otherwise ?? bug ??
@@ -285,18 +310,37 @@
 
         String menuId = getMenuId(context, component);
 
-        writer.write("<div id=\"" + menuId + "\"></div>\n" +
-                     "<script type=\"text/javascript\"><!--\n" +
-                     "\tcmDraw ('" + menuId + "', " + menuId + ", '" + menu.getLayout() + "', cm" + theme + ", '" + theme + "');\n" +
-                     "--></script>\n");
+        writer.write("<div id=\"");
+        writer.write(menuId);
+        writer.write("\"></div>\n");
+        writer.startElement(HTML.SCRIPT_ELEM,menu);
+        writer.writeAttribute(HTML.SCRIPT_TYPE_ATTR,HTML.SCRIPT_TYPE_TEXT_JAVASCRIPT,null);
+
+        StringBuffer buf = new StringBuffer();
+        buf.append("\n");
+        buf.append("\tcmDraw ('").
+                append(menuId).
+                append("', ").
+                append(menuId).
+                append(", '").
+                append(menu.getLayout()).
+                append("', cm").
+                append(theme).
+                append(", '").
+                append(theme).
+                append("');");
+        buf.append("\n//");
+
+        writer.writeComment(buf.toString());
+        writer.endElement(HTML.SCRIPT_ELEM);
     }
 
     /**
-     * TODO Give this a good comment.
+     * Fetch the very last part of the menu id.
      * 
      * @param context
      * @param component
-     * @return
+     * @return String id of the menu
      */
     private String getMenuId(FacesContext context, UIComponent component) {
         String menuId = component.getClientId(context).replaceAll(":","_") + "_menu";

Modified: myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/navmenu/jscookmenu/resource/ThemeIE/theme.js
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/navmenu/jscookmenu/resource/ThemeIE/theme.js?rev=289848&r1=289847&r2=289848&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/navmenu/jscookmenu/resource/ThemeIE/theme.js (original)
+++ myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/navmenu/jscookmenu/resource/ThemeIE/theme.js Sat Sep 17 13:23:46 2005
@@ -1,6 +1,9 @@
 
 var cmThemeIEBase = 'jscookmenu/ThemeIE/';
 
+if(myThemeIEBase)
+    cmThemeIEBase = myThemeIEBase;
+
 var cmThemeIE =
 {
   	// main menu display attributes

Modified: myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/navmenu/jscookmenu/resource/ThemeOffice/theme.js
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/navmenu/jscookmenu/resource/ThemeOffice/theme.js?rev=289848&r1=289847&r2=289848&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/navmenu/jscookmenu/resource/ThemeOffice/theme.js (original)
+++ myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/navmenu/jscookmenu/resource/ThemeOffice/theme.js Sat Sep 17 13:23:46 2005
@@ -1,6 +1,8 @@
-
 // directory of where all the images are
 var cmThemeOfficeBase = 'jscookmenu/ThemeOffice/';
+
+if(myThemeOfficeBase)
+    cmThemeOfficeBase = myThemeOfficeBase;
 
 var cmThemeOffice =
 {

Modified: myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/navmenu/jscookmenu/resource/ThemePanel/theme.js
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/navmenu/jscookmenu/resource/ThemePanel/theme.js?rev=289848&r1=289847&r2=289848&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/navmenu/jscookmenu/resource/ThemePanel/theme.js (original)
+++ myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/navmenu/jscookmenu/resource/ThemePanel/theme.js Sat Sep 17 13:23:46 2005
@@ -2,6 +2,9 @@
 // directory of where all the images are
 var cmThemePanelBase = 'jscookmenu/ThemePanel/';
 
+if(myThemePanelBase)
+    cmThemePanelBase = myThemePanelBase;
+
 var cmThemePanel =
 {
   	// main menu display attributes