Author: a.izobov
Date: 2007-03-21 11:35:53 -0400 (Wed, 21 Mar 2007)
New Revision: 114
Modified:
trunk/richfaces/panelbar/src/main/config/component/panelbar.xml
trunk/richfaces/panelbar/src/main/java/org/richfaces/component/UIPanelBar.java
trunk/richfaces/panelbar/src/main/java/org/richfaces/renderkit/html/PanelBarRendererBase.java
trunk/richfaces/panelbar/src/main/resources/org/richfaces/renderkit/html/scripts/panelbar.js
Log:
http://jira.jboss.com/jira/browse/RF-20 fixed
Modified: trunk/richfaces/panelbar/src/main/config/component/panelbar.xml
===================================================================
--- trunk/richfaces/panelbar/src/main/config/component/panelbar.xml 2007-03-21 15:33:25
UTC (rev 113)
+++ trunk/richfaces/panelbar/src/main/config/component/panelbar.xml 2007-03-21 15:35:53
UTC (rev 114)
@@ -63,6 +63,11 @@
<classname>java.lang.String</classname>
<description>The component header style class
active</description>
</property>
+ <property>
+ <name>value</name>
+ <classname>java.lang.String</classname>
+ <description>Id of expanded panelBarItem</description>
+ </property>
&ui_component_attributes;
Modified: trunk/richfaces/panelbar/src/main/java/org/richfaces/component/UIPanelBar.java
===================================================================
---
trunk/richfaces/panelbar/src/main/java/org/richfaces/component/UIPanelBar.java 2007-03-21
15:33:25 UTC (rev 113)
+++
trunk/richfaces/panelbar/src/main/java/org/richfaces/component/UIPanelBar.java 2007-03-21
15:35:53 UTC (rev 114)
@@ -28,8 +28,8 @@
*
*/
-public abstract class UIPanelBar
- extends UIComponentBase
+public abstract class UIPanelBar extends UISwitchablePanel
+// extends UIComponentBase
{
public static final String COMPONENT_TYPE = "org.richfaces.PanelBar";
@@ -42,8 +42,12 @@
public abstract void setWidth(String width);
- public boolean getRendersChildren() {
+ public boolean getRendersChildren() {
return true;
}
+ public String getSwitchType() {
+ return CLIENT_METHOD;
+ }
+
}
Modified:
trunk/richfaces/panelbar/src/main/java/org/richfaces/renderkit/html/PanelBarRendererBase.java
===================================================================
---
trunk/richfaces/panelbar/src/main/java/org/richfaces/renderkit/html/PanelBarRendererBase.java 2007-03-21
15:33:25 UTC (rev 113)
+++
trunk/richfaces/panelbar/src/main/java/org/richfaces/renderkit/html/PanelBarRendererBase.java 2007-03-21
15:35:53 UTC (rev 114)
@@ -22,6 +22,9 @@
package org.richfaces.renderkit.html;
import java.io.IOException;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
@@ -34,6 +37,7 @@
import org.ajax4jsf.framework.resource.InternetResource;
import org.ajax4jsf.framework.resource.PrototypeScript;
import org.richfaces.component.UIPanelBar;
+import org.richfaces.event.SwitchablePanelSwitchEvent;
public abstract class PanelBarRendererBase extends HeaderResourcesRendererBase {
@@ -55,13 +59,22 @@
}
public String expanded(FacesContext context, UIComponent component) throws IOException
{
-
- Object expanded=component.getAttributes().get(EXPANDED_ATTR);
+ UIPanelBar panelbar = (UIPanelBar) component;
+ String value = (String)panelbar.getValue();
+ if (value != null) {
+ UIComponent item = component.findComponent(value);
+ if (item != null) {
+ panelbar.setValue(item.getClientId(context));
+ return item.getClientId(context);
+ }
+ }
+ return "";
+/* Object expanded=component.getAttributes().get(EXPANDED_ATTR);
String exp=component.getChildCount()==0?"-1":"0";
if (expanded!=null) {
exp=expanded.toString();
}
- return exp;
+ return exp; */
}
public String width(FacesContext context, UIComponent component) throws IOException {
@@ -83,10 +96,17 @@
public void decode(FacesContext context, UIComponent component) {
super.decode(context,component);
- Object
property=context.getExternalContext().getRequestParameterMap().get(component.getClientId(context));
+
+ Map requestParameterMap = context.getExternalContext().getRequestParameterMap();
+ String value = (String)requestParameterMap.get(component.getClientId(context));
+ if (value != null) {
+ new SwitchablePanelSwitchEvent(component, value, null).queue();
+ }
+
+/* Object
property=context.getExternalContext().getRequestParameterMap().get(component.getClientId(context));
if (property!=null){
component.getAttributes().put(EXPANDED_ATTR,property);
- }
+ }*/
}
}
Modified:
trunk/richfaces/panelbar/src/main/resources/org/richfaces/renderkit/html/scripts/panelbar.js
===================================================================
---
trunk/richfaces/panelbar/src/main/resources/org/richfaces/renderkit/html/scripts/panelbar.js 2007-03-21
15:33:25 UTC (rev 113)
+++
trunk/richfaces/panelbar/src/main/resources/org/richfaces/renderkit/html/scripts/panelbar.js 2007-03-21
15:35:53 UTC (rev 114)
@@ -23,7 +23,7 @@
this.input=$(panelId+"_panelBarInput");
- this.defaultIndex=$F(panelId+"_panelBarInput");
+ this.defaultIndex=this.findPanelById($F(panelId+"_panelBarInput"));
Event.observe(window,'load',this.handleOnLoad.bindAsEventListener(this));
@@ -81,7 +81,8 @@
}
slide.showContent();
this.current=slide;
- this.input.value=this.current.index;
+// this.input.value=this.current.index;
+ this.input.value=this.current.item.id;
},
@@ -106,7 +107,15 @@
}
return kids;
+ },
+
+ findPanelById: function(value) {
+ for(var i = 0; i<this.slides.length; i++) {
+ if (this.slides[i].item.id==value) return i;
+ }
+ return 0;
}
+
}