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