[jboss-cvs] jboss-seam/src/main/org/jboss/seam/pages ...

Gavin King gavin.king at jboss.com
Tue Dec 19 16:16:54 EST 2006


  User: gavin   
  Date: 06/12/19 16:16:54

  Modified:    src/main/org/jboss/seam/pages      Page.java
  Added:       src/main/org/jboss/seam/pages      Navigation.java Rule.java
  Removed:     src/main/org/jboss/seam/pages      ActionNavigation.java
                        Outcome.java
  Log:
  renames
  
  Revision  Changes    Path
  1.4       +5 -5      jboss-seam/src/main/org/jboss/seam/pages/Page.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: Page.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/pages/Page.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -b -r1.3 -r1.4
  --- Page.java	19 Dec 2006 00:40:41 -0000	1.3
  +++ Page.java	19 Dec 2006 21:16:54 -0000	1.4
  @@ -27,8 +27,8 @@
      private List<Param> parameters = new ArrayList<Param>();
      private List<Input> inputs = new ArrayList<Input>();
      private List<Action> actions = new ArrayList<Action>();
  -   private Map<String, ActionNavigation> navigations = new HashMap<String, ActionNavigation>();
  -   private ActionNavigation defaultNavigation;
  +   private Map<String, Navigation> navigations = new HashMap<String, Navigation>();
  +   private Navigation defaultNavigation;
      private boolean conversationRequired;
      private ConversationControl conversationControl = new ConversationControl();
      
  @@ -140,7 +140,7 @@
         return parameters;
      }
   
  -   public Map<String, ActionNavigation> getNavigations()
  +   public Map<String, Navigation> getNavigations()
      {
         return navigations;
      }
  @@ -160,12 +160,12 @@
         this.conversationRequired = conversationRequired;
      }
   
  -   public ActionNavigation getDefaultNavigation()
  +   public Navigation getDefaultNavigation()
      {
         return defaultNavigation;
      }
   
  -   public void setDefaultNavigation(ActionNavigation defaultActionOutcomeMapping)
  +   public void setDefaultNavigation(Navigation defaultActionOutcomeMapping)
      {
         this.defaultNavigation = defaultActionOutcomeMapping;
      }
  
  
  
  1.1      date: 2006/12/19 21:16:54;  author: gavin;  state: Exp;jboss-seam/src/main/org/jboss/seam/pages/Navigation.java
  
  Index: Navigation.java
  ===================================================================
  /**
   * 
   */
  package org.jboss.seam.pages;
  
  import java.util.ArrayList;
  import java.util.List;
  
  import javax.faces.context.FacesContext;
  
  import org.jboss.seam.core.Expressions.ValueBinding;
  
  public final class Navigation
  {
     private ValueBinding<Object> outcome;
     private List<Rule> rules = new ArrayList<Rule>();
     private Rule rule;
     
     public List<Rule> getRules()
     {
        return rules;
     }
     
     public void setOutcome(ValueBinding<Object> outcomeValueBinding)
     {
        this.outcome = outcomeValueBinding;
     }
     
     public ValueBinding<Object> getOutcome()
     {
        return outcome;
     }
  
     public Rule getRule()
     {
        return rule;
     }
  
     public void setRule(Rule rule)
     {
        this.rule = rule;
     }
  
     public boolean navigate(FacesContext context, final String actionOutcomeValue)
     {
        String outcomeValue;
        if ( getOutcome()==null )
        {
           outcomeValue = actionOutcomeValue;
        }
        else
        {
           Object value = getOutcome().getValue();
           outcomeValue = value==null ? null : value.toString();
        }
        
        for ( Rule rule: getRules() )
        {
           if ( rule.matches(outcomeValue) )
           {
              return rule.execute(context);
           }
        }
        
        return getRule().execute(context);
     }
  
  }
  
  
  1.1      date: 2006/12/19 21:16:54;  author: gavin;  state: Exp;jboss-seam/src/main/org/jboss/seam/pages/Rule.java
  
  Index: Rule.java
  ===================================================================
  /**
   * 
   */
  package org.jboss.seam.pages;
  
  import java.util.ArrayList;
  import java.util.List;
  
  import javax.faces.context.FacesContext;
  
  import org.jboss.seam.core.Expressions.ValueBinding;
  
  public final class Rule
  {
     private String outcomeValue;
     private ValueBinding condition;
     private List<Output> outputs = new ArrayList<Output>();
     private ConversationControl conversationControl = new ConversationControl();
     private NavigationHandler navigationHandler = new NavigationHandler() { 
        @Override
        public boolean navigate(FacesContext context) 
        {
           return false;
        }
     };
  
     public boolean matches(String actualValue)
     {
        return ( actualValue!=null || condition!=null ) &&
              ( outcomeValue==null || outcomeValue.equals(actualValue) ) &&
              ( condition==null || Boolean.TRUE.equals( condition.getValue() ) );
     }
     
     public NavigationHandler getNavigationHandler()
     {
        return navigationHandler;
     }
  
     public void setNavigationHandler(NavigationHandler result)
     {
        this.navigationHandler = result;
     }
  
     public ConversationControl getConversationControl()
     {
        return conversationControl;
     }
  
     public ValueBinding getCondition()
     {
        return condition;
     }
  
     public void setCondition(ValueBinding expression)
     {
        this.condition = expression;
     }
  
     public String getOutcomeValue()
     {
        return outcomeValue;
     }
  
     public void setOutcomeValue(String value)
     {
        this.outcomeValue = value;
     }
  
     public List<Output> getOutputs()
     {
        return outputs;
     }
  
     public boolean execute(FacesContext context)
     {
        getConversationControl().beginOrEndConversation();
        for ( Output output: getOutputs() ) output.out();
        return getNavigationHandler().navigate(context);
     }
  }
  
  



More information about the jboss-cvs-commits mailing list