[richfaces-svn-commits] JBoss Rich Faces SVN: r867 - in trunk/richfaces/panelmenu/src/main: resources/org/richfaces/renderkit/html/css and 1 other directories.

richfaces-svn-commits at lists.jboss.org richfaces-svn-commits at lists.jboss.org
Thu May 24 09:56:15 EDT 2007


Author: dbiatenia
Date: 2007-05-24 09:56:15 -0400 (Thu, 24 May 2007)
New Revision: 867

Modified:
   trunk/richfaces/panelmenu/src/main/java/org/richfaces/renderkit/PanelMenuGroupRenderer.java
   trunk/richfaces/panelmenu/src/main/java/org/richfaces/renderkit/PanelMenuRenderer.java
   trunk/richfaces/panelmenu/src/main/java/org/richfaces/renderkit/PanelMenuRendererBase.java
   trunk/richfaces/panelmenu/src/main/resources/org/richfaces/renderkit/html/css/panelMenu.xcss
   trunk/richfaces/panelmenu/src/main/templates/org/richfaces/htmlPanelMenuGroup.jspx
   trunk/richfaces/panelmenu/src/main/templates/org/richfaces/htmlPanelMenuItem.jspx
Log:


Modified: trunk/richfaces/panelmenu/src/main/java/org/richfaces/renderkit/PanelMenuGroupRenderer.java
===================================================================
--- trunk/richfaces/panelmenu/src/main/java/org/richfaces/renderkit/PanelMenuGroupRenderer.java	2007-05-24 13:38:05 UTC (rev 866)
+++ trunk/richfaces/panelmenu/src/main/java/org/richfaces/renderkit/PanelMenuGroupRenderer.java	2007-05-24 13:56:15 UTC (rev 867)
@@ -158,4 +158,27 @@
 				.append(group.getDisabledStyle());
 		return styleBuffer.toString();
 	}
+
+	public String getHideStyle(FacesContext context, UIComponent component) {
+		// TODO Auto-generated method stub
+		if (!(component.getParent() instanceof UIPanelMenu)) {
+			CSSFormat format = new CSSFormat();
+			format.add("display", "none");
+			if(component.getParent() instanceof UIPanelMenuGroup) {
+				UIPanelMenuGroup parent = (UIPanelMenuGroup)component.getParent();
+				PanelMenuGroupRenderer renderer = (PanelMenuGroupRenderer) context.getRenderKit().getRenderer(parent.getFamily(), parent.getRendererType());
+				try {
+					if ( renderer.isOpened(context, parent).equals("opened") ){
+						return "";
+					} else 
+						return format.toString();
+				} catch (IOException e) {
+					// TODO Auto-generated catch block
+					e.printStackTrace();
+				}
+			} else return format.toString();
+		}
+		return "";
+
+	}
 }

Modified: trunk/richfaces/panelmenu/src/main/java/org/richfaces/renderkit/PanelMenuRenderer.java
===================================================================
--- trunk/richfaces/panelmenu/src/main/java/org/richfaces/renderkit/PanelMenuRenderer.java	2007-05-24 13:38:05 UTC (rev 866)
+++ trunk/richfaces/panelmenu/src/main/java/org/richfaces/renderkit/PanelMenuRenderer.java	2007-05-24 13:56:15 UTC (rev 867)
@@ -95,9 +95,9 @@
 				else if (event.startsWith("on"))
 					event = event.substring(2);
 				
-				String onopen = child instanceof UIPanelMenuGroup ? 
+				String onopen = (child instanceof UIPanelMenuGroup) &&  !((UIPanelMenuGroup)child).isDisabled() && !isParentDisabled(child) ? 
 						parentMenu.getOngroupexpand() + ";" + ((UIPanelMenuGroup)child).getOnexpand() : "";
-				String onclose = child instanceof UIPanelMenuGroup ? 
+				String onclose = (child instanceof UIPanelMenuGroup) && !((UIPanelMenuGroup)child).isDisabled() && !isParentDisabled(child) ? 
 						parentMenu.getOngroupcollapse() + ";" + ((UIPanelMenuGroup)child).getOncollapse() : "";
 				String hoveredStyle = (child instanceof UIPanelMenuGroup ? 
 						parentMenu.getHoveredGroupStyle() : parentMenu.getHoveredItemStyle())
@@ -118,8 +118,11 @@
 				else 
 					targetString = target.toString(); 
 				
+				
+				
 				if (childRendered && parentRendered){
-					if (childDisabled==null || !childDisabled.toString().equals("true")){
+					if ( ( childDisabled==null || !childDisabled.toString().equals("true") ) && 
+							!isParentDisabled(child)){
 						buffer
 								.append("new PanelMenuItem({myId:'")
 								.append((String) child.getClientId(context))

Modified: trunk/richfaces/panelmenu/src/main/java/org/richfaces/renderkit/PanelMenuRendererBase.java
===================================================================
--- trunk/richfaces/panelmenu/src/main/java/org/richfaces/renderkit/PanelMenuRendererBase.java	2007-05-24 13:38:05 UTC (rev 866)
+++ trunk/richfaces/panelmenu/src/main/java/org/richfaces/renderkit/PanelMenuRendererBase.java	2007-05-24 13:56:15 UTC (rev 867)
@@ -164,19 +164,21 @@
 				return "opened";
 			}
 		} else {
+			boolean isParentDisabled = isParentDisabled(component);
 			if(component instanceof UIPanelMenuGroup){
-				if( ((UIPanelMenuGroup)component).isExpanded() ){
+				if( ((UIPanelMenuGroup)component).isExpanded() && !((UIPanelMenuGroup)component).isDisabled() && !isParentDisabled ){
 					return "opened";
 				} else {
 					//check expanded attributes in children groups, if exists
-					return isChildrenExpanded(component) ? "opened" : "closed";
+					boolean isChildrenExpanded = isChildrenExpanded(component);
+					return isChildrenExpanded && !isParentDisabled && !((UIPanelMenuGroup)component).isDisabled() ? "opened" : "closed";
 				}
 			}
 		}
 		return "closed";
 	}
 	
-	public boolean isChildrenExpanded(UIComponent component){
+	protected boolean isChildrenExpanded(UIComponent component){
 		if (component.getChildren() != null){
 			Iterator itr = component.getChildren().iterator();
 			while(itr.hasNext()){
@@ -193,6 +195,20 @@
 		return false;
 	}
 	
+	protected boolean isParentDisabled(UIComponent component){
+		boolean returnValue = false;
+		UIComponent parent = component.getParent();
+		if(parent instanceof UIPanelMenuGroup){
+			UIPanelMenuGroup parentGroup = (UIPanelMenuGroup)parent;
+			if(parentGroup.isDisabled()){
+				returnValue = true;
+			} else {
+				returnValue = isParentDisabled(parentGroup);
+			}
+		}
+		return returnValue;
+	}
+	
 	protected boolean isSubmitted(FacesContext context, UIComponent component){
         boolean submitted = false;
 		String clientId = component.getClientId(context);

Modified: trunk/richfaces/panelmenu/src/main/resources/org/richfaces/renderkit/html/css/panelMenu.xcss
===================================================================
--- trunk/richfaces/panelmenu/src/main/resources/org/richfaces/renderkit/html/css/panelMenu.xcss	2007-05-24 13:38:05 UTC (rev 866)
+++ trunk/richfaces/panelmenu/src/main/resources/org/richfaces/renderkit/html/css/panelMenu.xcss	2007-05-24 13:56:15 UTC (rev 867)
@@ -37,6 +37,26 @@
 			<f:resource f:key="org.richfaces.renderkit.gradientImages.PanelMenuGroupGradient" />
 		</u:style>
 	</u:selector>
+	<u:selector name=".dr-pmenu-disabled-group">
+		<u:style name="width" value="100%"/>
+		<u:style name="padding" value="0px"/>
+		<u:style name="vertical-align" value="middle"/>
+		<u:style name="cursor" value="default"/>
+		<u:style name="text-align" value="left"/>
+		<u:style name="font-weight" skin="headerWeightFont"/>
+		<u:style name="font-family" skin="headerFamilyFont"/>
+		<u:style name="font-size" skin="headerSizeFont"/>
+		<u:style name="color" skin="headerBackgroundColor"/>
+		<u:style name="border-style" value="none"/>
+		<u:style name="border-top-style" value="solid"/>
+		<u:style name="border-color" skin="panelBorderColor"/>
+		<u:style name="background-color" skin="headerBackgroundColor"/>
+		<u:style name="background-image" >
+			<f:resource f:key="org.richfaces.renderkit.gradientImages.PanelMenuGroupGradient" />
+		</u:style>
+	</u:selector>
+
+
 	
 	<u:selector name=".dr-pmenu-item">
 		<u:style name="width" value="100%"/>

Modified: trunk/richfaces/panelmenu/src/main/templates/org/richfaces/htmlPanelMenuGroup.jspx
===================================================================
--- trunk/richfaces/panelmenu/src/main/templates/org/richfaces/htmlPanelMenuGroup.jspx	2007-05-24 13:38:05 UTC (rev 866)
+++ trunk/richfaces/panelmenu/src/main/templates/org/richfaces/htmlPanelMenuGroup.jspx	2007-05-24 13:56:15 UTC (rev 867)
@@ -13,10 +13,25 @@
 	
 	<f:clientid var="clientId"/>
 	<tr id="tdhide#{clientId}" style="#{this:getHideStyle(context, component)}" >
-		<td>
+		<td>
+  			<jsp:scriptlet>
+                 <![CDATA[
+                 	String itemClass;
+                 	String onClick;
+                      if (component.isDisabled()) {
+						itemClass="rich-pmenu-item dr-pmenu-disabled-group ";
+						//onClick="";
+                      } else {
+                      	itemClass="rich-pmenu-group dr-pmenu-group ";
+                      	//onClick = component.getAttributes().get("onclick") + ";" + getOnClick(context, component);
+                      }
+                      variables.setVariable("itemClass", itemClass);
+                      //variables.setVariable("onClick", onClick);
+                  ]]>
+            </jsp:scriptlet>
 			<table cellpadding="0" cellspacing="0" border="0" width="100%"
 					id="tablehide#{clientId}"
-					class="rich-pmenu-group dr-pmenu-group #{this:getFullStyleClass( context, component )}" 
+					class="#{itemClass} #{this:getFullStyleClass( context, component )}" 
 					style="#{this:getFullStyle( context, component )}" >
 					
 				<f:call name="utils.encodeAttributes">

Modified: trunk/richfaces/panelmenu/src/main/templates/org/richfaces/htmlPanelMenuItem.jspx
===================================================================
--- trunk/richfaces/panelmenu/src/main/templates/org/richfaces/htmlPanelMenuItem.jspx	2007-05-24 13:38:05 UTC (rev 866)
+++ trunk/richfaces/panelmenu/src/main/templates/org/richfaces/htmlPanelMenuItem.jspx	2007-05-24 13:56:15 UTC (rev 867)
@@ -17,21 +17,21 @@
 			<jsp:scriptlet>
                  <![CDATA[
                  	String itemClass;
-                 	String onOnClick;
+                 	String onClick;
                       if (component.isDisabled()) {
 						itemClass="rich-pmenu-item dr-pmenu-disabled-item ";
-						onOnClick="";
+						onClick="";
                       } else {
                       	itemClass="rich-pmenu-item dr-pmenu-item ";
-                      	onOnClick = component.getAttributes().get("onclick") + ";" + getOnClick(context, component);
+                      	onClick = component.getAttributes().get("onclick") + ";" + getOnClick(context, component);
                       }
                       variables.setVariable("itemClass", itemClass);
-                      variables.setVariable("onOnClick", onOnClick);
+                      variables.setVariable("onClick", onClick);
                   ]]>
                  </jsp:scriptlet>
 			<table cellpadding="0" cellspacing="0" border="0" width="100%"
 					class="#{itemClass} #{this:getFullStyleClass( context, component )}"
-					style="#{this:getFullStyle( context, component )}"
+					style="#{this:getFullStyle( context, component )}"
 					id="tablehide#{clientId}" >
 				<f:call name="utils.encodeAttributes">
 					<f:parameter value="onmousedown,onmouseup,onmousemove" />




More information about the richfaces-svn-commits mailing list