[jboss-cvs] jboss-seam/ui/src/main/java/org/jboss/seam/ui/renderkit ...
Peter Muir
peter at bleepbleep.org.uk
Fri Nov 23 17:59:45 EST 2007
User: pmuir
Date: 07/11/23 17:59:45
Modified: ui/src/main/java/org/jboss/seam/ui/renderkit
ConversationPropagationRendererBase.java
Added: ui/src/main/java/org/jboss/seam/ui/renderkit
ConversationNameRendererBase.java
CommandButtonParameterRendererBase.java
Log:
JBSEAM-2124 (part 1, Shane will do part2)
Revision Changes Path
1.2 +13 -61 jboss-seam/ui/src/main/java/org/jboss/seam/ui/renderkit/ConversationPropagationRendererBase.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: ConversationPropagationRendererBase.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/ui/src/main/java/org/jboss/seam/ui/renderkit/ConversationPropagationRendererBase.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- ConversationPropagationRendererBase.java 23 Nov 2007 21:39:29 -0000 1.1
+++ ConversationPropagationRendererBase.java 23 Nov 2007 22:59:45 -0000 1.2
@@ -1,84 +1,36 @@
package org.jboss.seam.ui.renderkit;
-import static org.jboss.seam.ui.util.HTML.SCRIPT_ELEM;
-import static org.jboss.seam.ui.util.HTML.SCRIPT_LANGUAGE_ATTR;
-import static org.jboss.seam.ui.util.HTML.SCRIPT_LANGUAGE_JAVASCRIPT;
-import static org.jboss.seam.ui.util.HTML.SCRIPT_TYPE_ATTR;
-import static org.jboss.seam.ui.util.HTML.SCRIPT_TYPE_TEXT_JAVASCRIPT;
-
-import java.io.IOException;
-
-import javax.faces.component.UIComponent;
-import javax.faces.component.UIForm;
-import javax.faces.component.UIViewRoot;
-import javax.faces.context.FacesContext;
-import javax.faces.context.ResponseWriter;
+
+
import org.jboss.seam.log.LogProvider;
import org.jboss.seam.log.Logging;
import org.jboss.seam.ui.component.UIConversationPropagation;
-import org.jboss.seam.ui.util.cdk.RendererBase;
/**
* @author Pete Muir
*
*/
-public class ConversationPropagationRendererBase extends RendererBase
+public class ConversationPropagationRendererBase extends CommandButtonParameterRendererBase
{
private static LogProvider log = Logging.getLogProvider(ConversationPropagationRendererBase.class);
private static final String PARAMETER_NAME = "conversationPropagation";
@Override
- protected void doEncodeEnd(ResponseWriter writer, FacesContext context,
- UIComponent component) throws IOException
- {
- UIComponent actionComponent = component.getParent();
- String actionComponentId = actionComponent.getClientId(context);
- UIForm form = getUtils().getForm(actionComponent);
- UIConversationPropagation conversationPropagation = (UIConversationPropagation) component;
- if (getUtils().isCommandButton(actionComponent))
- {
- String formId = form.getClientId(context);
- writer.startElement(SCRIPT_ELEM, component);
- writer.writeAttribute(SCRIPT_LANGUAGE_ATTR, SCRIPT_LANGUAGE_JAVASCRIPT, SCRIPT_LANGUAGE_ATTR);
- writer.writeAttribute(SCRIPT_TYPE_ATTR, SCRIPT_TYPE_TEXT_JAVASCRIPT, SCRIPT_TYPE_ATTR);
- if (actionComponent.getId().startsWith(UIViewRoot.UNIQUE_ID_PREFIX))
+ protected Class getComponentClass()
{
- log.warn("Must set an id for the command buttons with s:conversationPropagation");
- }
- String functionBody =
- "{" +
- "if (document.getElementById)" +
- "{" +
- "var form = document.getElementById('" + formId + "');" +
- "var input = document.createElement('input');" +
- "if (document.all)" +
- "{ " + // what follows should work with NN6 but doesn't in M14"
- "input.type = 'hidden';" +
- "input.name = '" + PARAMETER_NAME + "';" +
- "input.value = '" + conversationPropagation.getValue() + "';" +
- "}" +
- "else if (document.getElementById) " +
- "{" + // so here is theNN6 workaround
- "input.setAttribute('type', 'hidden');" +
- "input.setAttribute('name', '" + PARAMETER_NAME + "');" +
- "input.setAttribute('value', '" + conversationPropagation.getValue() + "');" +
- "}" +
- "form.appendChild(input);" +
- "return true;" +
- "}" +
- "}";
- String functionCode =
- "document.forms['" + formId + "'].elements['" + actionComponentId + "'].onclick = " +
- "new Function(\"event\", \"" + functionBody + "\");";
- writer.write(functionCode);
- writer.endElement("script");
+ return UIConversationPropagation.class;
}
+
+ @Override
+ protected LogProvider getLog()
+ {
+ return log;
}
@Override
- protected Class getComponentClass()
+ protected String getParameterName()
{
- return UIConversationPropagation.class;
+ return PARAMETER_NAME;
}
}
\ No newline at end of file
1.1 date: 2007/11/23 22:59:45; author: pmuir; state: Exp;jboss-seam/ui/src/main/java/org/jboss/seam/ui/renderkit/ConversationNameRendererBase.java
Index: ConversationNameRendererBase.java
===================================================================
package org.jboss.seam.ui.renderkit;
import org.jboss.seam.log.LogProvider;
import org.jboss.seam.log.Logging;
import org.jboss.seam.ui.component.UIConversationName;
/**
* @author Pete Muir
*
*/
public class ConversationNameRendererBase extends CommandButtonParameterRendererBase
{
private static LogProvider log = Logging.getLogProvider(ConversationNameRendererBase.class);
private static final String PARAMETER_NAME = "conversationName";
@Override
protected LogProvider getLog()
{
return log;
}
@Override
protected String getParameterName()
{
return PARAMETER_NAME;
}
@Override
protected Class getComponentClass()
{
return UIConversationName.class;
}
}
1.1 date: 2007/11/23 22:59:45; author: pmuir; state: Exp;jboss-seam/ui/src/main/java/org/jboss/seam/ui/renderkit/CommandButtonParameterRendererBase.java
Index: CommandButtonParameterRendererBase.java
===================================================================
package org.jboss.seam.ui.renderkit;
import static org.jboss.seam.ui.util.HTML.SCRIPT_ELEM;
import static org.jboss.seam.ui.util.HTML.SCRIPT_LANGUAGE_ATTR;
import static org.jboss.seam.ui.util.HTML.SCRIPT_LANGUAGE_JAVASCRIPT;
import static org.jboss.seam.ui.util.HTML.SCRIPT_TYPE_ATTR;
import static org.jboss.seam.ui.util.HTML.SCRIPT_TYPE_TEXT_JAVASCRIPT;
import java.io.IOException;
import javax.faces.component.UIComponent;
import javax.faces.component.UIForm;
import javax.faces.component.UIParameter;
import javax.faces.component.UIViewRoot;
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
import org.jboss.seam.log.LogProvider;
import org.jboss.seam.ui.component.UIConversationPropagation;
import org.jboss.seam.ui.util.cdk.RendererBase;
/**
* @author Pete Muir
*
*/
public abstract class CommandButtonParameterRendererBase extends RendererBase
{
protected abstract LogProvider getLog();
protected abstract String getParameterName();
@Override
protected void doEncodeEnd(ResponseWriter writer, FacesContext context, UIComponent component)
throws IOException
{
UIComponent actionComponent = component.getParent();
String actionComponentId = actionComponent.getClientId(context);
UIForm form = getUtils().getForm(actionComponent);
UIParameter parameter = (UIParameter) component;
if (getUtils().isCommandButton(actionComponent))
{
String formId = form.getClientId(context);
writer.startElement(SCRIPT_ELEM, component);
writer.writeAttribute(SCRIPT_LANGUAGE_ATTR, SCRIPT_LANGUAGE_JAVASCRIPT, SCRIPT_LANGUAGE_ATTR);
writer.writeAttribute(SCRIPT_TYPE_ATTR, SCRIPT_TYPE_TEXT_JAVASCRIPT, SCRIPT_TYPE_ATTR);
if (actionComponent.getId().startsWith(UIViewRoot.UNIQUE_ID_PREFIX))
{
getLog().warn("Must set an id for the command buttons with s:conversationPropagation");
}
String functionBody =
"{" +
"if (document.getElementById)" +
"{" +
"var form = document.getElementById('" + formId + "');" +
"var input = document.createElement('input');" +
"if (document.all)" +
"{ " + // what follows should work with NN6 but doesn't in M14"
"input.type = 'hidden';" +
"input.name = '" + getParameterName() + "';" +
"input.value = '" + parameter.getValue() + "';" +
"}" +
"else if (document.getElementById) " +
"{" + // so here is theNN6 workaround
"input.setAttribute('type', 'hidden');" +
"input.setAttribute('name', '" + getParameterName() + "');" +
"input.setAttribute('value', '" + parameter.getValue() + "');" +
"}" +
"form.appendChild(input);" +
"return true;" +
"}" +
"}";
String functionCode =
"document.forms['" + formId + "'].elements['" + actionComponentId + "'].onclick = " +
"new Function(\"event\", \"" + functionBody + "\");";
writer.write(functionCode);
writer.endElement("script");
}
}
}
More information about the jboss-cvs-commits
mailing list