[jboss-cvs] jboss-seam/seam-ui-cdk/jboss-seam-ui/src/main/java/org/jboss/seam/ui/component ...
Peter Muir
peter at bleepbleep.org.uk
Fri Mar 23 16:25:34 EDT 2007
User: pmuir
Date: 07/03/23 16:25:34
Modified: seam-ui-cdk/jboss-seam-ui/src/main/java/org/jboss/seam/ui/component
UIFileUpload.java UIButton.java
UISeamCommandBase.java
Log:
More ui example and move CDK renderers to templates
Revision Changes Path
1.2 +0 -29 jboss-seam/seam-ui-cdk/jboss-seam-ui/src/main/java/org/jboss/seam/ui/component/UIFileUpload.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: UIFileUpload.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/seam-ui-cdk/jboss-seam-ui/src/main/java/org/jboss/seam/ui/component/UIFileUpload.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- UIFileUpload.java 20 Mar 2007 17:58:58 -0000 1.1
+++ UIFileUpload.java 23 Mar 2007 20:25:33 -0000 1.2
@@ -22,7 +22,6 @@
package org.jboss.seam.ui.component;
import javax.faces.component.UIComponentBase;
-import javax.faces.el.ValueBinding;
/**
* JSF component class
@@ -34,32 +33,4 @@
private static final String COMPONENT_FAMILY = "org.jboss.seam.ui.FileUpload";
- public abstract String getAccept();
-
- public abstract void setAccept(String accept);
-
- public abstract String getStyleClass();
-
- public abstract void setStyleClass(String styleClass);
-
- public abstract void setStyle(String style);
-
- public abstract String getStyle();
-
- public abstract ValueBinding getData();
-
- public abstract void setData(ValueBinding data);
-
- public abstract ValueBinding getContentType();
-
- public abstract void setContentType(ValueBinding contentType);
-
- public abstract ValueBinding getFileName();
-
- public abstract void setFileName(ValueBinding fileName);
-
- public abstract ValueBinding getFileSize();
-
- public abstract void setFileSize(ValueBinding fileSize);
-
}
1.2 +8 -7 jboss-seam/seam-ui-cdk/jboss-seam-ui/src/main/java/org/jboss/seam/ui/component/UIButton.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: UIButton.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/seam-ui-cdk/jboss-seam-ui/src/main/java/org/jboss/seam/ui/component/UIButton.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- UIButton.java 20 Mar 2007 17:58:58 -0000 1.1
+++ UIButton.java 23 Mar 2007 20:25:33 -0000 1.2
@@ -21,12 +21,6 @@
package org.jboss.seam.ui.component;
-import javax.faces.component.UIComponent;
-import javax.faces.component.UIData;
-import javax.faces.el.MethodBinding;
-import javax.faces.event.ActionListener;
-import javax.faces.model.DataModel;
-
/**
* JSF component class
*
@@ -41,5 +35,12 @@
public abstract void setImage(String image);
-
+ public String getType()
+ {
+ if (getImage() == null) {
+ return "button";
+ } else {
+ return "image";
+ }
+ }
}
1.2 +229 -33 jboss-seam/seam-ui-cdk/jboss-seam-ui/src/main/java/org/jboss/seam/ui/component/UISeamCommandBase.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: UISeamCommandBase.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/seam-ui-cdk/jboss-seam-ui/src/main/java/org/jboss/seam/ui/component/UISeamCommandBase.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- UISeamCommandBase.java 20 Mar 2007 17:58:58 -0000 1.1
+++ UISeamCommandBase.java 23 Mar 2007 20:25:33 -0000 1.2
@@ -1,26 +1,202 @@
package org.jboss.seam.ui.component;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
import javax.faces.component.ActionSource;
import javax.faces.component.UIComponent;
import javax.faces.component.UIData;
import javax.faces.component.UIOutput;
+import javax.faces.component.UIParameter;
+import javax.faces.context.FacesContext;
import javax.faces.el.MethodBinding;
+import javax.faces.el.ValueBinding;
import javax.faces.event.ActionListener;
import javax.faces.model.DataModel;
+import org.jboss.seam.core.Conversation;
+import org.jboss.seam.core.Pages;
+import org.jboss.seam.pages.Page;
+
public abstract class UISeamCommandBase extends UIOutput implements ActionSource
{
-public abstract String getDisabled();
+ private String encodedUrl;
+
+ private class Url
+ {
+ private String encodedUrl;
+
+ private Map<String, String> parameters;
+
+ private String fragment;
+
+ private String characterEncoding;
+
+ private Page page;
+
+ public Url(String viewId, String fragment)
+ {
+ FacesContext facesContext = FacesContext.getCurrentInstance();
+ String url = facesContext.getApplication().getViewHandler().getActionURL(facesContext,
+ viewId);
+ String encodedUrl = facesContext.getExternalContext().encodeActionURL(url);
+ encodedUrl = Pages.instance().encodeScheme(viewId, facesContext, encodedUrl);
+ characterEncoding = facesContext.getResponseWriter().getCharacterEncoding();
+ page = Pages.instance().getPage(viewId);
+ this.encodedUrl = url;
+ this.fragment = fragment;
+ this.parameters = new HashMap<String, String>();
+ }
+
+ private String urlEncode(String value) throws UnsupportedEncodingException
+ {
+ return characterEncoding == null ? URLEncoder.encode(value) : URLEncoder.encode(value,
+ characterEncoding);
+ }
+
+ public void addParameter(UIParameter parameter) throws UnsupportedEncodingException
+ {
+ String value = parameter.getValue() == null ? "" : parameter.getValue().toString();
+ String name = parameter.getName();
+ boolean append = true;
+ if (name.equals(page.getConversationIdParameter().getParameterName())
+ && parameters.containsKey(name))
+ {
+ append = false;
+ }
+ if (append)
+ {
+ parameters.put(name, urlEncode(value));
+ }
+ }
+
+ private String getParameters()
+ {
+ String params = "";
+ for (String key : parameters.keySet())
+ {
+ params += "&" + key + "=" + parameters.get(key);
+ }
+ if (!"".equals(params))
+ {
+ params = "?" + params.substring(1);
+ }
+ return params;
+ }
- public abstract void setDisabled(String disabled);
+ private String getFragment()
+ {
+ if (fragment != null && !"".equals(fragment))
+ {
+ return "#" + fragment;
+ }
+ else
+ {
+ return "";
+ }
+ }
- public boolean disabled() {
- return new Boolean(getDisabled());
+ public String getEncodedUrl()
+ {
+ return encodedUrl + getParameters() + getFragment();
+ }
}
+ public abstract boolean isDisabled();
+
+ public abstract void setDisabled(boolean disabled);
+
public abstract String getView();
+ protected String getUrl() throws UnsupportedEncodingException
+ {
+ if (encodedUrl == null)
+ {
+ FacesContext context = getFacesContext();
+ String viewId = getView();
+ if (viewId == null)
+ {
+ viewId = Pages.getViewId(getFacesContext());
+ }
+
+ Url url = new UISeamCommandBase.Url(viewId, getFragment());
+
+ Set<String> usedParameters = new HashSet<String>();
+ for (Object child : getChildren())
+ {
+ if (child instanceof UIParameter)
+ {
+ usedParameters.add(((UIParameter) child).getName());
+ }
+ }
+
+ if (viewId != null)
+ {
+ Map<String, Object> pageParameters = Pages.instance().getConvertedParameters(context,
+ viewId, usedParameters);
+ for (Map.Entry<String, Object> me : pageParameters.entrySet())
+ {
+ UIParameter uip = new UIParameter();
+ uip.setName(me.getKey());
+ uip.setValue(me.getValue());
+ url.addParameter(uip);
+ }
+ }
+
+ if (getAction() != null || getOutcome() != null)
+ {
+
+ UIAction uiAction = new UIAction();
+ uiAction.setAction(getAction() == null ? getOutcome() : getAction()
+ .getExpressionString());
+ url.addParameter(uiAction);
+ }
+
+ if ("default".equals(getPropagation()) || "join".equals(getPropagation())
+ || "nest".equals(getPropagation()) || "end".equals(getPropagation()))
+ {
+ UIConversationId uiConversationId = new UIConversationId();
+ uiConversationId.setViewId(viewId);
+ url.addParameter(uiConversationId);
+ if (Conversation.instance().isLongRunning() || Conversation.instance().isNested())
+ {
+ url.addParameter(new UIConversationIsLongRunning());
+ }
+ }
+
+ if ("join".equals(getPropagation()) || "nest".equals(getPropagation())
+ || "begin".equals(getPropagation()) || "end".equals(getPropagation()))
+ {
+ UIConversationPropagation uiPropagation = new UIConversationPropagation();
+ uiPropagation.setType(getPropagation());
+ uiPropagation.setPageflow(getPageflow());
+ url.addParameter(uiPropagation);
+ }
+
+ ValueBinding taskInstanceValueBinding = getValueBinding("taskInstance");
+ if (taskInstanceValueBinding != null)
+ {
+ UITaskId uiTaskId = new UITaskId();
+ uiTaskId.setValueBinding("taskInstance", taskInstanceValueBinding);
+ url.addParameter(uiTaskId);
+ }
+
+ UISelection uiSelection = getSelection();
+ if (uiSelection != null)
+ {
+ url.addParameter(uiSelection);
+ }
+ encodedUrl = url.getEncodedUrl();
+ }
+ return encodedUrl;
+ }
+
public abstract void setView(String view);
public abstract MethodBinding getAction();
@@ -45,20 +221,40 @@
public abstract String getOnclick();
+ public String getOnClick() throws IOException
+ {
+ String onclick = getOnclick();
+ if (onclick == null)
+ {
+ onclick = "";
+ }
+ else if (onclick.length() > 0 && !onclick.endsWith(";"))
+ {
+ onclick += ";";
+ }
+ if (!isDisabled())
+ {
+ onclick += "location.href='" + getUrl() + "'";
+ }
+ return onclick;
+ }
+
public abstract void setOnclick(String onclick);
public UISelection getSelection()
{
UIData parentUIData = getParentUIData();
- if (parentUIData!=null)
+ if (parentUIData != null)
{
- if ( parentUIData.getValue() instanceof DataModel )
+ if (parentUIData.getValue() instanceof DataModel)
{
- String dataModelExpression = parentUIData.getValueBinding("value").getExpressionString();
- String dataModelName = dataModelExpression.substring(2, dataModelExpression.length()-1).replace('$','.');
+ String dataModelExpression = parentUIData.getValueBinding("value")
+ .getExpressionString();
+ String dataModelName = dataModelExpression.substring(2,
+ dataModelExpression.length() - 1).replace('$', '.');
UISelection uiSelection = new UISelection();
uiSelection.setDataModel(dataModelName);
- uiSelection.setVar( parentUIData.getVar() );
+ uiSelection.setVar(parentUIData.getVar());
return uiSelection;
}
else
@@ -75,7 +271,7 @@
public UIData getParentUIData()
{
UIComponent parent = this.getParent();
- while (parent!=null)
+ while (parent != null)
{
if (parent instanceof UIData)
{
More information about the jboss-cvs-commits
mailing list