Author: abelevich
Date: 2009-12-07 10:01:18 -0500 (Mon, 07 Dec 2009)
New Revision: 16090
Modified:
root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/renderkit/ToggleControlRendererBase.java
root/ui-sandbox/trunk/components/tables/ui/src/main/resources/META-INF/resources/toggler.js
Log:
refactor toggler control client/server API
Modified:
root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/renderkit/ToggleControlRendererBase.java
===================================================================
---
root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/renderkit/ToggleControlRendererBase.java 2009-12-07
15:00:46 UTC (rev 16089)
+++
root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/renderkit/ToggleControlRendererBase.java 2009-12-07
15:01:18 UTC (rev 16090)
@@ -29,11 +29,11 @@
private static final String MANAGER_SCRIPT = "<script
type=\"text/javascript\">ToggleManager.add(new Toggle(\"{0}\",
{1}));</script>";
- private static final String CLIENT_TOGGLE_SCRIPT =
"ToggleManager.clientToggle(''{0}'',
''{1}'');";
+ private static final String CLIENT_TOGGLE_SCRIPT =
"ToggleManager.clientToggle(''{0}'', {1});";
- private static final String SERVER_TOGGLE_SCRIPT =
"ToggleManager.serverToggle(''{0}'',
''{1}'');";
+ private static final String SERVER_TOGGLE_SCRIPT =
"ToggleManager.serverToggle(''{0}'', {1});";
- private static final String AJAX_TOGGLE_SCRIPT =
"ToggleManager.ajaxToggle(''{0}'', ''{1}'');";
+ private static final String AJAX_TOGGLE_SCRIPT =
"ToggleManager.ajaxToggle(''{0}'', {1});";
private static final String DISPLAY_NONE = "display: none;";
@@ -57,13 +57,13 @@
String state = params.get(hiddenId);
if (state != null && state.trim().length() > 0) {
-
+ boolean newState = Boolean.valueOf(state).booleanValue();
UIComponent processed = findComponent(context, toggle);
if (processed instanceof Expandable) {
- String prevState = getState(((Expandable) processed).isExpanded());
- if (!state.equals(prevState)) {
- new ToggleEvent(processed, isExpanded(state)).queue();
+ boolean prevState = ((Expandable) processed).isExpanded();
+ if (newState != prevState) {
+ new ToggleEvent(processed, newState).queue();
}
}
}
@@ -104,7 +104,7 @@
String image = expanded ? control.getExpandControl() :
control.getCollapseControl();
- String script = getScript(control, switchType, state);
+ String script = getScript(control, switchType, expanded);
String style = getStyle(context, control);
String styleClass = getStyleClass(context, control);
@@ -139,12 +139,11 @@
String formId = nestingForm.getClientId(context);
String forId = subTable.getClientId(context);
- String state = getState(subTable.isExpanded());
- HashMap<String, String> options = new HashMap<String, String>();
+ HashMap<String, Object> options = new HashMap<String, Object>();
options.put("formId", formId);
options.put("forId", forId);
- options.put("initialState", state);
+ options.put("initialState", (Boolean)subTable.isExpanded());
return ScriptUtils.toScript(options);
}
@@ -182,7 +181,7 @@
return null;
}
- public String getScript(UIToggleControl toggleControl, String switchType, String
state) {
+ public String getScript(UIToggleControl toggleControl, String switchType, boolean
isExpanded) {
StringBuffer pattern = new StringBuffer();
@@ -196,17 +195,13 @@
String toggleId = toggleControl.getClientId();
- String script = (pattern.length() > 0) ?
MessageFormat.format(pattern.toString(), toggleId, state) : null;
+ String script = (pattern.length() > 0) ?
MessageFormat.format(pattern.toString(), toggleId, isExpanded) : null;
return script;
}
protected String getState(boolean expand) {
return expand ? EXPAND_STATE : COLLAPSE_STATE;
- }
+ }
- protected boolean isExpanded(String state) {
- return state.equals(EXPAND_STATE);
- }
-
}
Modified:
root/ui-sandbox/trunk/components/tables/ui/src/main/resources/META-INF/resources/toggler.js
===================================================================
---
root/ui-sandbox/trunk/components/tables/ui/src/main/resources/META-INF/resources/toggler.js 2009-12-07
15:00:46 UTC (rev 16089)
+++
root/ui-sandbox/trunk/components/tables/ui/src/main/resources/META-INF/resources/toggler.js 2009-12-07
15:01:18 UTC (rev 16090)
@@ -4,6 +4,8 @@
this.state = options.initialState;
this.formId = options.formId;
this.hidden = id + ":hidden";
+ this.expandControl = this.id + ":expand";
+ this.collapseControl = this.id + ":collapse";
}
Toggle.prototype.convertId = function(id) {
@@ -14,26 +16,32 @@
var elements = this.getElement(this.forId);
if(this.state != toState) {
-
- var hideId = this.id + ":" + toState;
- var showId = this.id + ":" + this.state;
-
- var hideControl = this.getElement(hideId);
- var showControl = this.getElement(showId);
-
- this.command("show", showControl);
- this.command("hide", hideControl);
-
- if(toState == 'collapse') {
+
+ this.toggleControls(toState);
+
+ if(toState) {
+ this.command("show", elements);
+ } else {
this.command("hide", elements);
- } else {
- this.command("show", elements);
}
+
this.state = toState;
this.saveState(this.state);
}
}
+Toggle.prototype.toggleControls = function(toState) {
+
+ var hideControlId = toState ? this.expandControl : this.collapseControl;
+ var showControlId = this.state ? this.expandControl : this.collapseControl;
+
+ var hideElement = this.getElement(hideControlId);
+ var showElement = this.getElement(showControlId);
+
+ this.command("show", showElement);
+ this.command("hide", hideElement);
+}
+
Toggle.prototype.saveState= function(state) {
var id = this.hidden;
var element = this.getElement(id);
@@ -42,23 +50,23 @@
}
}
-Toggle.prototype.clientToggle= function(toState){
- this.toggle(toState);
+Toggle.prototype.clientToggle= function(expand){
+ this.toggle(expand);
}
-Toggle.prototype.serverToggle = function(toState) {
- this.saveState(toState);
+Toggle.prototype.serverToggle = function(expand) {
+ this.saveState(expand);
var form = this.getElement(this.formId);
form.submit();
}
-Toggle.prototype.ajaxToggle = function(toState) {
+Toggle.prototype.ajaxToggle = function(expand) {
}
Toggle.prototype.command = function(name, element){
if(name) {
if(element && typeof element[name] == 'function') {
- element[name]();
+ element[name]();
}
}
}
@@ -77,20 +85,20 @@
}
}
-ToggleManager.clientToggle = function(id, state) {
+ToggleManager.clientToggle = function(id, expand) {
if(id) {
- this.process[id].clientToggle(state);
+ this.process[id].clientToggle(expand);
}
}
-ToggleManager.serverToggle = function(id, state) {
+ToggleManager.serverToggle = function(id, expand) {
if(id) {
- this.process[id].serverToggle(state);
+ this.process[id].serverToggle(expand);
}
}
-ToggleManager.ajaxToggle = function(id, state) {
+ToggleManager.ajaxToggle = function(id, expand) {
if(id) {
- this.process[id].ajaxToggle(state);
+ this.process[id].ajaxToggle(expand);
}
}