[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