You are viewing a plain text version of this content. The canonical link for it is here.
Posted to adffaces-commits@incubator.apache.org by ma...@apache.org on 2007/03/07 14:44:48 UTC

svn commit: r515587 [6/19] - in /incubator/adffaces/branches/matzew-core-1.0.0-incubation: ./ examples/ examples/trinidad-demo/ examples/trinidad-demo/src/ examples/trinidad-demo/src/conf/ examples/trinidad-demo/src/main/ examples/trinidad-demo/src/mai...

Added: incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/survey/MultChoiceQuestionBean.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/survey/MultChoiceQuestionBean.java?view=auto&rev=515587
==============================================================================
--- incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/survey/MultChoiceQuestionBean.java (added)
+++ incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/survey/MultChoiceQuestionBean.java Wed Mar  7 06:44:35 2007
@@ -0,0 +1,123 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ * 
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+package org.apache.myfaces.trinidaddemo.survey;
+
+import java.io.Serializable;
+import java.util.List;
+
+/***
+ *  class MultChoiceQuestionBean
+ *
+ * This bean represents a single multiple choice questions.  It has fields for
+ * the question prompt, a list of choices, and the correct answer.
+ *
+ ***/
+
+
+public class MultChoiceQuestionBean implements QuestionBean, Serializable
+{
+  
+  /** Constructors **/
+  
+  /**
+   *  Class constructor (no arguments).
+   */
+  public MultChoiceQuestionBean()
+  {
+  }
+  
+  /**
+   *  Class constructor.
+   */
+  public MultChoiceQuestionBean(String prompt,
+                                List<String> choices,
+                                int correctIndex)
+  {
+    _prompt = prompt;
+    _choices = choices;
+    _correctIndex = correctIndex;
+  }
+
+
+  /*** Accessors ***/
+  /**
+   *  returns the question prompt.
+   *
+   *  @return the question prompt
+   */
+  public String getPrompt()
+  {
+    return _prompt;
+  }
+
+
+  /**
+    *  returns the list of answer strings.
+    */
+  public List<String> getAnswerStrings()
+  {
+    return _choices;
+  }
+
+
+  /**
+   * typical toString method
+   *
+   * @return a String representation of a MultChoiceQuestionBean
+   */
+  @Override
+  public String toString()
+  {
+    String str = "[" + _prompt + "; " + _choices.toString() + "]";
+    return str;
+  }
+
+
+
+  /**
+   * returns a message describing the correct answer choices.
+   *
+   * @return a message describing the correct answer choices
+   */
+  public String getCorrectAnswerMessage()
+  {
+    return "The correct answer is: " + _choices.get(_correctIndex);
+  }
+
+  /**
+   * returns the index of the correct answer
+   *
+   * @return the index of the correct answer
+   */
+  public int getCorrectIndex()
+  {
+    return _correctIndex;
+  }
+
+  /* The question as a String object */
+  private String   _prompt;
+  
+  /* arbitrary number of possible answer choices (Strings) */
+  private List<String>  _choices;
+
+  /* The index of the correct answer */
+  private int     _correctIndex;
+
+
+} //end QuestionBean

Propchange: incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/survey/MultChoiceQuestionBean.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/survey/MultChoiceQuestionBean.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/survey/QuestionBean.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/survey/QuestionBean.java?view=auto&rev=515587
==============================================================================
--- incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/survey/QuestionBean.java (added)
+++ incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/survey/QuestionBean.java Wed Mar  7 06:44:35 2007
@@ -0,0 +1,39 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ * 
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+package org.apache.myfaces.trinidaddemo.survey;
+
+/**
+ * @author Simon Lessard, Fujitsu Consulting
+ */
+public interface QuestionBean
+{
+  /**
+   * returns a message describing the correct answer choices.
+   *
+   * @return a message describing the correct answer choices
+   */
+  public String getCorrectAnswerMessage();
+  
+  /**
+   *  returns the question prompt.
+   *
+   *  @return the question prompt
+   */
+  public String getPrompt();
+}

Propchange: incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/survey/QuestionBean.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/survey/QuestionBean.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/survey/SurveyBean.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/survey/SurveyBean.java?view=auto&rev=515587
==============================================================================
--- incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/survey/SurveyBean.java (added)
+++ incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/survey/SurveyBean.java Wed Mar  7 06:44:35 2007
@@ -0,0 +1,582 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ * 
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+package org.apache.myfaces.trinidaddemo.survey;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+/***
+ *  class SurveyBean
+ *
+ * This is the main backing bean for the Survey Demo project.
+ *  It represents a multiple-choice survey.  It contains state about
+ *  the list of questions to ask in the survey and the user's responses to
+ *  these questions.  It also has methods that help with application
+ *  navigation.
+ *
+ * ***/
+
+public class SurveyBean extends Object implements Serializable
+{
+
+  /** A List of QuestionBean objects */
+  private ArrayList<QuestionBean> _questions = new ArrayList<QuestionBean>();
+
+  /** The index of the (current) question displayed */
+  private int               _currentIndex;
+
+  /** A List of QuestionBean objects */
+  private ArrayList<String> _userAnswers = new ArrayList<String>();
+
+  /** number of choices */
+  static final int NUMBER_OF_ANSWER_CHOICES = 4;
+
+  /** debug flag */
+  private boolean     debug = false;
+
+  /** beans for each question in the survey */
+  MultChoiceQuestionBean _q0;
+
+  TextQuestionBean _q1; // insert a text field question here
+
+  MultChoiceQuestionBean _q2;
+
+  CheckboxQuestionBean _q3; // this is a checkbox question
+
+  MultChoiceQuestionBean _q4;
+
+  /** a String for each user response in the survey */
+  String _a0;   //response for a multiple choice (normal) question
+  String _a1;   //response for TextQuestion
+  String _a2;   //response for a multiple choice (normal) question
+
+  String _a3;   //special case: responses for CheckboxQuestion
+  boolean _a30;   // these booleans represent the user's choices for the
+  boolean _a31;   // checkbox question
+  boolean _a32;
+  boolean _a33;
+
+  String _a4;   //response for a multiple choice (normal) question
+
+  /** A List of SurveyPage objects for use with the processTrain component */
+  private List<SurveyPage> _pages;
+  /**
+   *  Class constructor (no arguments).
+   */
+  public SurveyBean()
+  {
+    init("survey.bundles.california");
+  }
+
+  /**
+   *  Class constructor.
+   *
+   *  @param  bundleName  the path of a bundle file
+   */
+  public SurveyBean(String bundleName)
+  {
+    init(bundleName);
+  }
+
+  /**
+   *  Initializes survey application.
+   *
+   *  @param  bundleName  the path of a bundle file
+   */
+  private void init(String bundleName)
+  {
+    //TODO
+    /*FacesContext context = FacesContext.getCurrentInstance();
+     *   ResourceBundle data = null;
+     *data = ResourceBundle.getBundle(bundleName);
+     */
+
+    // load in the questions
+    loadQuestions();
+
+    // initialize other state for each survey session
+    initSurveyState();
+  }
+
+    /**
+     *  Loads the questions into survey application.
+     */
+  private void loadQuestions()
+  {
+    // notice there are redundant data structures
+    // the QuestionBeans are both stored in instance fields, which are linked
+    // together in an Array List
+
+    // question 0, for surveyPage1
+    ArrayList<String> choices = new ArrayList<String>();
+    choices.add("A. Loading zone for freight or passengers.");
+    choices.add("B. Loading zone for passengers or mail only.");
+    choices.add("C. Loading zone for freight only.");
+    choices.add("D. They ran out of red paint.");
+    _q0 = new MultChoiceQuestionBean("A white painted curb means ", choices, 1);
+    _questions.add(_q0);
+
+    // question 1, for surveyPage2
+    _q1 = new TextQuestionBean("The color of a typical stop sign is ", "RED");
+    _questions.add(_q1);
+
+    // question 2, for surveyPage3
+    ArrayList<String> choices2 = new ArrayList<String>();
+    choices2.add("A. If the shoulder is wide enough to accommodate your vehicle.");
+    choices2.add("B. If the vehicle ahead of you is turning left.");
+    choices2.add("C. Under no circumstances.");
+    choices2.add("D. If you are driving a Hummer.");
+    _q2 = new MultChoiceQuestionBean("You may drive off of the paved roadway to pass another vehicle ", choices2, 2);
+    _questions.add(_q2);
+
+    // question 3, for surveyPage4
+    ArrayList<String> choices3 = new ArrayList<String>();
+    choices3.add("A. In a crosswalk.");
+    choices3.add("B. Within 10 feet of a fire hydrant.");
+    choices3.add("C. Next to a red painted curb.");
+    choices3.add("D. If you are driving a Hummer.");
+    _q3 = new CheckboxQuestionBean("It is illegal to park your vehicle (check all that apply) ", choices3, 14, true, true, true, false);
+    _questions.add(_q3);
+
+    // question 4, for surveyPage5
+    ArrayList<String> choices4 = new ArrayList<String>();
+    choices4.add("A. Stop, then proceed when you think all of the children have exited the bus.");
+    choices4.add("B. Slow to 25 MPH and pass cautiously.");
+    choices4.add("C. Stop as long as the red lights are flashing. ");
+    choices4.add("D. Grab your sack lunch and jump onboard so you're not late for homeroom like yesterday.");
+    _q4 = new MultChoiceQuestionBean("A school bus ahead of you in your lane is stopped with red lights flashing. You should ", choices4, 2);
+    _questions.add(_q4);
+
+    if (debug)
+    {
+      System.out.println("init() printing out the list of questions:\n" + _questions);
+      System.out.println("length of list of questions: " + _questions.size());
+    }
+
+  }  //end loadQuestions()
+
+  /**
+   *  Initializes various survey state.  Should be called for each new sesion
+   *  through the survey.
+   */
+  public void initSurveyState()
+  {
+    /* start with the first(0th) question */
+    _currentIndex = 0;
+
+    /* holders for user responses are initialized to "no selection" */
+    _a0 = null;
+    _a1 = "";   //response for a TextQuestion
+    _a2 = null;
+
+    _a3 = "0"; //response for a CheckboxQuestion
+    _a30 = false;
+    _a31 = false;
+    _a32 = false;
+    _a33 = false;
+
+    _a4 = null;
+
+    /* add initialized responses into array */
+    _userAnswers.add(_a0);
+    _userAnswers.add(_a1);
+    _userAnswers.add(_a2);
+    _userAnswers.add(_a3);
+    _userAnswers.add(_a4);
+
+  } //end initSurveyState()
+
+
+
+  /*** navigation methods ***/
+
+  /**
+   * advances the survey to the next question.
+   *
+   * @return a String object, "next"
+   */
+  public String next()
+  {
+    advanceToNextQuestion();
+    if (debug)
+    {
+      System.out.println("the currentIndex is:" + _currentIndex);
+      System.out.println("next() is finished");
+    }
+
+    return "next";
+  }
+  /**
+   * moves the survey to the previous question.
+   *
+   * @return a String object, "back"
+   */
+  public String back()
+  {
+    goToPreviousQuestion();
+    if (debug)
+    {
+      System.out.println("the currentIndex is:" + _currentIndex);
+      System.out.println("next() is finished");
+    }
+    return "back";
+  }
+
+  /**
+   * called when the first run through the survey is completed.
+   *
+   * @return a String object, "finish"
+   */
+ public String finish()
+  {
+    return "finish";
+  }
+
+  /**
+   * called to advance to the results page.
+   *
+   * @return a String object, "check"
+   */
+  public String check()
+  {
+    return "check";
+  }
+
+  /**
+   * called to go back to beginning of survey and clears all previous responses.
+   *
+   * @return a String object, "start"
+   */
+  public String start()
+  {
+    initSurveyState();
+    return "start";
+  }
+
+
+  /*** Accessors ***/
+
+  /**
+   * advances the survey to the next question.
+   *
+   * @return  a String object representing the number of questions in the survey
+   */
+  public String getNumQuestions()
+  {
+    return ( String.valueOf(_questions.size()) );
+  }
+
+  /**
+   * determines whether we have reached the end of the survey
+   *
+   * @return  a boolean that is true if we have reached the end of the survey
+   */
+  public boolean getDone()
+  {
+    // when we've reached the last question in the list
+    return ( _currentIndex == _questions.size()-1 );
+  }
+
+  /**
+   * determines the number of the current question in the survey.
+   *
+   * @return  a String that represents the number of the current question
+   */
+  public String getCurrentQuestionNumber()
+  {
+    // the question number is index+1 since the index starts at 0
+    int i = _currentIndex + 1 ;
+    return String.valueOf(i);
+  }
+
+  /*** Utils ***/
+
+
+  /**
+   * increments question index to next question.
+   */
+  public void advanceToNextQuestion()
+  {
+    _currentIndex++;
+  }
+
+  /**
+   * decrements question index to previous question.
+   */
+  public void goToPreviousQuestion()
+  {
+    _currentIndex--;
+  }
+
+  /**
+   * a hack to return the String "error" inside a binding using EL
+   *
+   * @return  the literal String, "error"
+   */
+  public String getError()
+  {
+    return "error";
+  }
+
+  /**
+   * a hack to return the String "none" inside a binding using EL
+   *
+   * @return  the literal String, "none"
+   */
+  public String getNone()
+    // a hack to return a String inside a binding using EL
+  {
+    return "none";
+  }
+
+  /**
+   * a hack to return the empty String "" inside a binding using EL
+   *
+   * @return  the empty String, ""
+   */
+  public String getEmptyString()
+    // a hack to return a String inside a binding using EL
+  {
+    return "";
+  }
+
+ /**
+   * a hack to return the String "correct" inside a binding using EL
+   *
+   * @return  the literal String, "correct"
+   */
+  public String getCorrect()
+    // a hack to return a String inside a binding using EL
+  {
+    return "correct";
+  }
+
+
+  /**
+   * a hack to return the String "incorrect" inside a binding using EL
+   *
+   * @return  the literal String, "incorrect"
+   */
+  public String getIncorrect()
+    // a hack to return a String inside a binding using EL
+  {
+    return "incorrect";
+  }
+
+
+  /**
+   * stores whether a checkbox is checked.  This app uses a simple bit mapping
+   * to represent the "checked" state of the checkboxes.  For example, assume the
+   * number of checkboxes is 4. If all four checkboxes were checked, then
+   * the representation is "1111", which is equivalent to the number 15 in
+   * base 10.  Likewise, if only the first and third checkboxes are selected,
+   * then the representation is "1010", which is the number 10 in base 10.
+   * This method turns the bits on/off according to whether the "index"-th
+   * checkbox is "checked".
+   *
+   * @param checked             whether this checkbox is checked
+   * @param index               the index of the checkbox
+   * @param storageDestination  the String of the integer representation of the selection state
+   *
+   * @return  a String that represents the current selections (an integer)
+   */
+  private String storeCheckSelection (boolean checked, int index,
+                                      String storageDestination)
+  {
+    // extract an integer from the string
+    int storageInt = Integer.parseInt(storageDestination);
+    if (checked)
+    {
+      // if checked, then turn on index-th bit
+      storageInt = storageInt | 1<<(NUMBER_OF_ANSWER_CHOICES-index-1);
+    }
+    else
+    {
+      // if not checked, then turn off index-th bit
+      storageInt = storageInt & ~(1<<(NUMBER_OF_ANSWER_CHOICES-index-1));
+    }
+
+   if (debug)
+   {
+    System.out.println("checked is: " + checked + ", index is: " + index + ", storageInt is:" + storageInt);
+   }
+
+   // store the integer as a string
+   return String.valueOf(storageInt);
+
+  } // end storeCheckSelection
+
+
+ /*** IDE generated accessors ***/
+
+  public MultChoiceQuestionBean getQ0()
+  {
+    return _q0;
+  }
+
+  public TextQuestionBean getQ1()
+  {
+    return _q1;
+  }
+
+  public MultChoiceQuestionBean getQ2()
+  {
+    return _q2;
+  }
+
+  public CheckboxQuestionBean getQ3()
+  {
+    return _q3;
+  }
+
+  public MultChoiceQuestionBean getQ4()
+  {
+    return _q4;
+  }
+
+
+  public void setA0(String a0)
+  {
+    _a0 = a0;
+  }
+
+
+  public String getA0()
+  {
+    return _a0;
+  }
+
+
+  public void setA1(String a1)
+  {
+  // special set method to trim and convert response from text input
+    _a1 = a1.trim().toUpperCase();
+  }
+
+
+  public String getA1()
+  {
+    return _a1;
+  }
+
+
+  public void setA2(String a2)
+  {
+    _a2 = a2;
+  }
+
+
+  public String getA2()
+  {
+    return _a2;
+  }
+
+
+  public void setA3(String a3)
+  {
+    _a3 = a3;
+  }
+
+
+  public String getA3()
+  {
+    return _a3;
+  }
+
+
+  public void setA4(String a4)
+  {
+    _a4 = a4;
+  }
+
+
+  public String getA4()
+  {
+    return _a4;
+  }
+
+
+  public void setA30(boolean a30)
+  {
+    _a30 = a30;
+    _a3 = storeCheckSelection(a30, 0, _a3);
+
+  }
+
+
+  public boolean getA30()
+  {
+    return _a30;
+  }
+
+
+  public void setA31(boolean a31)
+  {
+    _a31 = a31;
+    _a3 = storeCheckSelection(a31, 1, _a3);
+  }
+
+
+  public boolean getA31()
+  {
+    return _a31;
+  }
+
+
+  public void setA32(boolean a32)
+  {
+    _a32 = a32;
+    _a3 = storeCheckSelection(a32, 2, _a3);
+  }
+
+
+  public boolean getA32()
+  {
+    return _a32;
+  }
+
+
+  public void setA33(boolean a33)
+  {
+    _a33 = a33;
+    _a3 = storeCheckSelection(a33, 3, _a3);
+  }
+
+
+  public boolean getA33()
+  {
+    return _a33;
+  }
+
+  public List<SurveyPage> getPages()
+  {
+    if (_pages == null)
+    {
+      _pages = new ArrayList<SurveyPage>();
+      _pages.add(new SurveyPage("/surveydemo/surveyPage1.jspx", "Step1"));
+      _pages.add(new SurveyPage("/surveydemo/surveyPage2.jspx", "Step2"));
+      _pages.add(new SurveyPage("/surveydemo/surveyPage3.jspx", "Step3"));
+      _pages.add(new SurveyPage("/surveydemo/surveyPage4.jspx", "Step4"));
+      _pages.add(new SurveyPage("/surveydemo/surveyPage5.jspx", "Step5"));
+    }
+    return _pages;
+  }
+
+} //end SurveyBean class

Propchange: incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/survey/SurveyBean.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/survey/SurveyBean.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/survey/SurveyPage.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/survey/SurveyPage.java?view=auto&rev=515587
==============================================================================
--- incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/survey/SurveyPage.java (added)
+++ incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/survey/SurveyPage.java Wed Mar  7 06:44:35 2007
@@ -0,0 +1,85 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ * 
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+package org.apache.myfaces.trinidaddemo.survey;
+
+public class SurveyPage implements java.io.Serializable
+{
+  public SurveyPage()
+  {
+  }
+  
+  public SurveyPage(String viewId, String label)
+  {
+    setViewId(viewId);
+    setLabel(label);
+    setDisabled(false);
+  }
+
+  public void setViewId(String viewId)
+  {
+    _viewId = viewId;
+  }
+
+
+  public String getViewId()
+  {
+    return _viewId;
+  }
+
+  public void setOutcome(String outcome)
+  {
+    _outcome = outcome;
+  }
+
+
+  public String getOutcome()
+  {
+    return _outcome;
+  }
+
+  public void setLabel(String label)
+  {
+    _label = label;
+  }
+
+
+  public String getLabel()
+  {
+    return _label;
+  } 
+
+
+  public void setDisabled(boolean disabled)
+  {
+    _disabled = disabled;
+  }
+
+
+  public boolean isDisabled()
+  {
+    return _disabled;
+  } 
+  
+  private String _viewId;
+  private String _outcome;
+  private String _label;
+  private boolean _disabled;
+
+
+}

Propchange: incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/survey/SurveyPage.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/survey/SurveyPage.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/survey/TextQuestionBean.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/survey/TextQuestionBean.java?view=auto&rev=515587
==============================================================================
--- incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/survey/TextQuestionBean.java (added)
+++ incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/survey/TextQuestionBean.java Wed Mar  7 06:44:35 2007
@@ -0,0 +1,82 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ * 
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+package org.apache.myfaces.trinidaddemo.survey;
+
+import java.io.Serializable;
+
+/***
+ *  class TextQuestionBean
+ *
+ * This bean represents a single question with a text field as its answer form.
+ * It has fields for the question prompt and the correct answer.
+ *
+ * ***/
+
+
+public class TextQuestionBean implements QuestionBean, Serializable
+{
+  /** The question as a String object. */
+  private String    _prompt;
+
+  /** The correct answer. */
+  private String    _correctAnswer;
+
+ /**
+  *  Class constructor (no arguments).
+  */
+  public TextQuestionBean()
+  {
+    _prompt = "";
+    _correctAnswer = "";
+  }
+
+ /**
+  *  Class constructor.
+  */
+  public TextQuestionBean(String prompt, String correctAnswer)
+  {
+    _prompt = prompt;
+    _correctAnswer = correctAnswer;
+  }
+
+
+  /*** JDev generated accessors ***/
+
+  public void setPrompt(String prompt)
+  {
+    _prompt = prompt;
+  }
+
+  public String getPrompt()
+  {
+    return _prompt;
+  }
+
+  public String getCorrectAnswer()
+  {
+    return _correctAnswer;
+  }
+
+  public String getCorrectAnswerMessage()
+  {
+    return "The correct answer is: " + _correctAnswer;
+  }
+
+
+}

Propchange: incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/survey/TextQuestionBean.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/survey/TextQuestionBean.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/table/DynamicModel.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/table/DynamicModel.java?view=auto&rev=515587
==============================================================================
--- incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/table/DynamicModel.java (added)
+++ incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/table/DynamicModel.java Wed Mar  7 06:44:35 2007
@@ -0,0 +1,106 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ * 
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+package org.apache.myfaces.trinidaddemo.table;
+
+import java.io.Serializable;
+import javax.faces.model.DataModel;
+
+public class DynamicModel extends DataModel implements Serializable 
+{
+  public DynamicModel()
+  {
+  }
+  
+  @Override
+  public int getRowCount()
+  {
+    return _rowCount;    
+  }
+  
+  public void setRowCount(int count)
+  {
+    if ((count >= -1) && (count <= 400))
+      _rowCount = count;
+  }
+  
+  public int getActualRowCount()
+  {
+    return _length;
+  }
+  
+  public void setActualRowCount(int count)
+  {
+    if ((count >= 0) && (count <= 400))
+      _length = count;
+  }
+  
+  public int getBlockSize()
+  {
+    return _blockSize;
+  }
+  
+  public void setBlockSize(int blockSize)
+  {
+    if (blockSize >= 0)
+    {
+      _blockSize = blockSize;
+    }
+  }
+  
+  @Override
+  public boolean isRowAvailable()
+  {
+    return (_index >= 0) && (_index < _length);
+  }
+  
+  @Override
+  public Object getRowData()
+  {
+    return isRowAvailable() ? new Integer(_index) : null;
+  }
+  
+  @Override
+  public int getRowIndex()
+  {
+    return _index;
+  }
+  
+  @Override
+  public void setRowIndex(int index)
+  {
+    _index = index;
+  }
+  
+  @Override
+  public Object getWrappedData()
+  {
+    return this;
+  }
+  
+  @Override
+  public void setWrappedData(Object obj)
+  {
+    throw new UnsupportedOperationException();
+  }
+    
+  private int _rowCount = -1;
+  private int _length = 25;
+  private int _index = -1;
+  private int _blockSize = 10;
+}

Propchange: incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/table/DynamicModel.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/table/DynamicModel.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/table/TableBuilder.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/table/TableBuilder.java?view=auto&rev=515587
==============================================================================
--- incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/table/TableBuilder.java (added)
+++ incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/table/TableBuilder.java Wed Mar  7 06:44:35 2007
@@ -0,0 +1,158 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ * 
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+package org.apache.myfaces.trinidaddemo.table;
+
+import java.beans.BeanInfo;
+import java.beans.IntrospectionException;
+import java.beans.Introspector;
+import java.beans.PropertyDescriptor;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+
+public class TableBuilder implements java.io.Serializable
+{
+  @SuppressWarnings("unchecked")
+  public TableBuilder()
+  {
+    // no arg contructor needed for usage as managed-bean
+    _beanProps = Collections.EMPTY_LIST;
+    _data = Collections.EMPTY_LIST;
+    _result = null;
+  }
+  
+  public void setBeanClass(String klass)
+  {
+    _beanClass = klass;
+  }
+  
+  public void setBeanProperties(List<Object> props)
+  {
+    if (props == null)
+      throw new NullPointerException("beanProperties");
+    _beanProps = props;
+  }
+  
+  public void setBeanData(List<?> data)
+  {
+    if (data == null)
+      throw new NullPointerException("beanData");
+    _data = data;
+  }
+  
+  public List<?> getTableData()
+    throws ClassNotFoundException, IntrospectionException, InstantiationException,
+      IllegalAccessException, InvocationTargetException
+  {
+    if (_result == null)
+    {
+      _result = _getAsList();
+    }
+    return _result;
+  }
+  
+  private List<Object> _getAsList() 
+    throws ClassNotFoundException, IntrospectionException, InstantiationException,
+      IllegalAccessException, InvocationTargetException
+  {
+    if (_beanClass == null)
+      throw new NullPointerException("beanClass");
+    
+    Class<?> beanClass = Class.forName(_beanClass);
+    _setPropertySetters(beanClass, _beanProps);
+    int sz = _beanProps.size();
+    List<Object> result = new ArrayList<Object>(sz);
+
+    Iterator<?> cells = _data.iterator();
+    while(cells.hasNext())
+    {
+      Object beanInstance = beanClass.newInstance();
+      for(int i=0; i<sz; i++)
+      {
+        Object value = cells.next();
+        Method setter = (Method) _beanProps.get(i);
+        Class<?> expectedType = setter.getParameterTypes()[0];
+        if (!expectedType.isAssignableFrom(value.getClass()))
+        {
+          value = _convert(value, expectedType);
+        }
+        
+        setter.invoke(beanInstance, new Object[] {value});
+      }
+      result.add(beanInstance);
+    }
+    return result;
+  }
+  
+  private Object _convert(Object instance, Class<?> expectedType)
+  {
+    if (Integer.TYPE == expectedType)
+    {
+      return new Integer(instance.toString());
+    }
+    throw new IllegalArgumentException("Could not convert instance:"+instance+
+      " of class:"+instance.getClass()+" into "+expectedType);
+  }
+  
+  private void _setPropertySetters(Class<?> klass, List<Object> props)
+    throws IntrospectionException
+  {
+    BeanInfo beanInfo = Introspector.getBeanInfo(klass);
+    PropertyDescriptor[] descs = beanInfo.getPropertyDescriptors();
+    for(int i=0, sz=props.size(); i<sz; i++)
+    {
+      String name = (String)props.get(i);
+      PropertyDescriptor desc = _getDescriptor(descs, name);
+      if (desc == null)
+      {
+        throw new IllegalArgumentException("property:"+name+" not found on:"
+          +klass);
+      }
+      Method setter = desc.getWriteMethod();
+      if (setter == null)
+      {
+        throw new IllegalArgumentException("No way to set property:"+name+" on:"
+          +klass);
+      }
+      props.set(i, setter);
+    }
+  }
+  
+  private PropertyDescriptor _getDescriptor(
+    PropertyDescriptor[] descs,
+    String name)
+  {
+    for(int i=0; i<descs.length; i++)
+    {
+      PropertyDescriptor desc = descs[i];
+      if (name.equals(desc.getName()))
+        return desc;
+    }
+    return null;      
+  }
+  
+  private String _beanClass = null;
+  // Transient as it contains java.lang.reflect.Method objects
+  private transient List<Object> _beanProps;
+  private List<?> _data;
+  private List<?> _result;
+}

Propchange: incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/table/TableBuilder.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/table/TableBuilder.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/tableDemos/EmployeeBean.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/tableDemos/EmployeeBean.java?view=auto&rev=515587
==============================================================================
--- incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/tableDemos/EmployeeBean.java (added)
+++ incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/tableDemos/EmployeeBean.java Wed Mar  7 06:44:35 2007
@@ -0,0 +1,103 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ * 
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+package org.apache.myfaces.trinidaddemo.tableDemos;
+
+import java.io.Serializable;
+
+/**
+ * @author asghosh
+ */
+public class EmployeeBean implements Serializable
+{
+  private String data1;
+
+  private String data2;
+
+  private boolean _readOnly;
+
+  public EmployeeBean()
+  {
+    _readOnly = true;
+  }
+
+  public EmployeeBean(String data1, String data2)
+  {
+    setData1(data1);
+    setData2(data2);
+    _readOnly = true;
+  }
+
+  public EmployeeBean(String data1, String data2, boolean readOnly)
+  {
+    setData1(data1);
+    setData2(data2);
+    setReadOnly(readOnly);
+  }
+
+  /**
+   * @param _readOnly
+   *          The _readOnly to set.
+   */
+  public void setReadOnly(boolean _readOnly)
+  {
+    this._readOnly = _readOnly;
+  }
+
+  /**
+   * @return Returns the _readOnly.
+   */
+  public boolean getReadOnly()
+  {
+    return _readOnly;
+  }
+
+  /**
+   * @param data1
+   *          The data1 to set.
+   */
+  public void setData1(String data1)
+  {
+    this.data1 = data1;
+  }
+
+  /**
+   * @return Returns the data1.
+   */
+  public String getData1()
+  {
+    return data1;
+  }
+
+  /**
+   * @param data2
+   *          The data2 to set.
+   */
+  public void setData2(String data2)
+  {
+    this.data2 = data2;
+  }
+
+  /**
+   * @return Returns the data2.
+   */
+  public String getData2()
+  {
+    return data2;
+  }
+}

Propchange: incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/tableDemos/EmployeeBean.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/tableDemos/EmployeeBean.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/tableDemos/EmployeeTableBean.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/tableDemos/EmployeeTableBean.java?view=auto&rev=515587
==============================================================================
--- incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/tableDemos/EmployeeTableBean.java (added)
+++ incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/tableDemos/EmployeeTableBean.java Wed Mar  7 06:44:35 2007
@@ -0,0 +1,106 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ * 
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+package org.apache.myfaces.trinidaddemo.tableDemos;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.faces.event.ActionEvent;
+
+/**
+ * @author asghosh
+ */
+public class EmployeeTableBean implements Serializable
+{
+  public EmployeeTableBean()
+  {
+    _populate();
+  }
+
+  private List<EmployeeBean> _list;
+
+  private int _total;
+
+  /**
+   * @param _list
+   *          The _list to set.
+   */
+  public void setList(List<EmployeeBean> list)
+  {
+    this._list = list;
+  }
+
+  /**
+   * @return Returns the _list.
+   */
+  public List<EmployeeBean> getList()
+  {
+    return _list;
+  }
+
+  /**
+   * @param _total
+   *          The _total to set.
+   */
+  public void setTotal(int total)
+  {
+    this._total = total;
+  }
+
+  /**
+   * @return Returns the _total.
+   */
+  public int getTotal()
+  {
+    return _total;
+  }
+
+  public void addRow(ActionEvent event)
+  {
+    EmployeeBean dataHolder = _list.get(_list.size() - 1);
+    dataHolder.setReadOnly(true);
+    dataHolder = new EmployeeBean("", "");
+    dataHolder.setReadOnly(false);
+    _list.add(dataHolder);
+  }
+
+  public void totalRow(ActionEvent event)
+  {
+    _total = 0;
+    for(EmployeeBean dataHolder : _list)
+    {
+      if (!dataHolder.getData2().equalsIgnoreCase(""))
+      {
+        _total = _total + Integer.parseInt(dataHolder.getData2());
+      }
+    }
+  }
+
+  private void _populate()
+  {
+    _list = new ArrayList<EmployeeBean>();
+    _list.add(new EmployeeBean("22", "22"));
+    _list.add(new EmployeeBean("44", "44"));
+    _list.add(new EmployeeBean("44", "44"));
+    _list.add(new EmployeeBean("44", "44"));
+    _list.add(new EmployeeBean("44", "44"));
+
+  }
+}

Propchange: incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/tableDemos/EmployeeTableBean.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/tableDemos/EmployeeTableBean.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/webapp/RedirectFilter.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/webapp/RedirectFilter.java?view=auto&rev=515587
==============================================================================
--- incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/webapp/RedirectFilter.java (added)
+++ incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/webapp/RedirectFilter.java Wed Mar  7 06:44:35 2007
@@ -0,0 +1,102 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ * 
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+package org.apache.myfaces.trinidaddemo.webapp;
+
+import java.io.IOException;
+
+import javax.servlet.Filter;
+import javax.servlet.FilterChain;
+import javax.servlet.FilterConfig;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * Servlet filter that ensures the FacesServlet is called before rendering
+ * the page.  Most useful for getting JSP Faces pages to work correctly.
+ * <p>
+ * @version $Name:  $ ($Revision$) $Date$
+ * @author John Fallows
+ */
+public class RedirectFilter implements Filter 
+{
+  public static final String URL_PATTERN_PARAM = "faces-servlet-url-pattern";
+  public static final String DEFAULT_URL_PATTERN = "/faces/*";
+
+  public void init(
+    FilterConfig filterConfig) throws ServletException
+  {
+    String pattern = filterConfig.getInitParameter(URL_PATTERN_PARAM);
+    
+    if (pattern == null)
+      pattern = DEFAULT_URL_PATTERN;
+      
+    int offset = pattern.indexOf('*');
+    if (offset > 1 && pattern.charAt(offset - 1) == '/')
+      offset--;
+      
+    _servletPath = pattern.substring(0, offset);
+  }
+
+  public void destroy()
+  {
+    // Technically, we should dump _servletPath.  However,
+    // OC4J is calling destroy(), then not calling init() before
+    // using the Filter again!  So ignore destroy().
+    //    _servletPath = null;
+  }
+
+  public void doFilter(
+    ServletRequest  request, 
+    ServletResponse response, 
+    FilterChain     chain) throws IOException, ServletException
+  {
+    if (request instanceof HttpServletRequest)
+    {
+      HttpServletRequest httpRequest = (HttpServletRequest) request;
+      String servletPath = httpRequest.getServletPath(); 
+      if (!servletPath.startsWith(_servletPath))
+      {
+        servletPath = _servletPath + servletPath;
+        String pathInfo = httpRequest.getPathInfo();
+        String queryString = httpRequest.getQueryString();
+        // Use a client-side redirect
+        String url =
+          (httpRequest.getContextPath() +
+           servletPath + 
+           (pathInfo == null ? "": pathInfo) +
+           (queryString == null ? "": queryString));
+        
+        // Use a client-side redirect so that filters will run
+        ((HttpServletResponse) response).sendRedirect(url);
+        /*
+          request.getRequestDispatcher(servletPath).
+          forward(request, response);
+        */
+        return;
+      }
+    }
+
+    chain.doFilter(request, response);
+  }
+
+  private String _servletPath;
+}

Propchange: incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/webapp/RedirectFilter.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/webapp/RedirectFilter.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/webapp/SourceCodeServlet.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/webapp/SourceCodeServlet.java?view=auto&rev=515587
==============================================================================
--- incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/webapp/SourceCodeServlet.java (added)
+++ incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/webapp/SourceCodeServlet.java Wed Mar  7 06:44:35 2007
@@ -0,0 +1,73 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ * 
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+package org.apache.myfaces.trinidaddemo.webapp;
+
+import java.io.BufferedInputStream;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+
+import javax.servlet.ServletException;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.lang.StringUtils;
+
+public class SourceCodeServlet extends HttpServlet
+{
+  @Override
+  public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException
+  {
+  String webPage = req.getServletPath();
+  
+  // remove the '*.source' suffix that maps to this servlet
+  int source = webPage.indexOf(".source");
+  webPage = webPage.substring(0, source);
+
+  //remove "/faces" mapping
+  webPage = StringUtils.remove(webPage, "/faces");
+
+  // get the actual file location of the requested resource
+  String realPath = getServletConfig().getServletContext().getRealPath(webPage);
+
+  // output an HTML page
+  res.setContentType("text/plain");
+
+  // print some html
+  ServletOutputStream out = res.getOutputStream();
+
+  // print the file
+  InputStream in = null;
+  try 
+  {
+      in = new BufferedInputStream(new FileInputStream(realPath));
+      int ch;
+      while ((ch = in.read()) !=-1) 
+      {
+          out.print((char)ch);
+      }
+  }
+  finally {
+      if (in != null) in.close();  // very important
+  }
+}
+
+}
\ No newline at end of file

Propchange: incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/webapp/SourceCodeServlet.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/java/org/apache/myfaces/trinidaddemo/webapp/SourceCodeServlet.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/resources/META-INF/DISCLAIMER.txt
URL: http://svn.apache.org/viewvc/incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/resources/META-INF/DISCLAIMER.txt?view=auto&rev=515587
==============================================================================
--- incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/resources/META-INF/DISCLAIMER.txt (added)
+++ incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/resources/META-INF/DISCLAIMER.txt Wed Mar  7 06:44:35 2007
@@ -0,0 +1,10 @@
+Apache Trinidad Demo is an effort undergoing incubation at the Apache Software 
+Foundation (ASF), sponsored by the Apache Incubator PMC. 
+
+Incubation is required of all newly accepted projects until a further review 
+indicates that the infrastructure, communications, and decision making process 
+have stabilized in a manner consistent with other successful ASF projects. 
+
+While incubation status is not necessarily a reflection of the completeness 
+or stability of the code, it does indicate that the project has yet to be 
+fully endorsed by the ASF.

Propchange: incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/resources/META-INF/DISCLAIMER.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/resources/META-INF/DISCLAIMER.txt
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/resources/META-INF/LICENSE
URL: http://svn.apache.org/viewvc/incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/resources/META-INF/LICENSE?view=auto&rev=515587
==============================================================================
--- incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/resources/META-INF/LICENSE (added)
+++ incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/resources/META-INF/LICENSE Wed Mar  7 06:44:35 2007
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.

Added: incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/resources/META-INF/NOTICE
URL: http://svn.apache.org/viewvc/incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/resources/META-INF/NOTICE?view=auto&rev=515587
==============================================================================
--- incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/resources/META-INF/NOTICE (added)
+++ incubator/adffaces/branches/matzew-core-1.0.0-incubation/examples/trinidad-demo/src/main/resources/META-INF/NOTICE Wed Mar  7 06:44:35 2007
@@ -0,0 +1,16 @@
+=========================================================================
+==  NOTICE file corresponding to section 4(d) of the Apache License,   ==
+==  Version 2.0, in this case for the Apache Trinidad Podling Plugins  ==
+=========================================================================
+
+This product includes software developed by 
+The Apache Software Foundation (http://www.apache.org/).
+
+Portions of this software were originally based on the following:
+
+ - software copyright (c) 2000-2006, Oracle Corp, <http://www.oracle.com/>.
+and are licensed to the Apache Software Foundation under the 
+"Software Grant and Corporate Contribution License Agreement"
+
+See the LICENSE.txt file for information on all licenses 
+associated with this software.
\ No newline at end of file