You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@click.apache.org by sa...@apache.org on 2008/12/20 18:44:11 UTC
svn commit: r728320 [2/2] - in
/incubator/click/trunk/click/examples/src/net/sf/click/examples: control/
control/cayenne/ page/table/ page/tree/ page/wizard/
Modified: incubator/click/trunk/click/examples/src/net/sf/click/examples/page/wizard/Step2.java
URL: http://svn.apache.org/viewvc/incubator/click/trunk/click/examples/src/net/sf/click/examples/page/wizard/Step2.java?rev=728320&r1=728319&r2=728320&view=diff
==============================================================================
--- incubator/click/trunk/click/examples/src/net/sf/click/examples/page/wizard/Step2.java (original)
+++ incubator/click/trunk/click/examples/src/net/sf/click/examples/page/wizard/Step2.java Sat Dec 20 09:44:11 2008
@@ -1,138 +1,138 @@
-/*
- * 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 net.sf.click.examples.page.wizard;
-
-import net.sf.click.control.AbstractContainer;
-import net.sf.click.control.PageLink;
-import net.sf.click.control.TextField;
-import net.sf.click.examples.control.cayenne.CayenneIntegerField;
-import net.sf.click.extras.cayenne.QuerySelect;
-import net.sf.click.extras.control.IntegerField;
-
-/**
- * The second step in the 3 step process is to capture the Client address.
- * <p/>
- * Note this Panel has no associated template.
- *
- * @author Bob Schellink
- */
-public class Step2 extends Step {
-
- /** Reference to the postCode field. */
- private IntegerField postCodeField;
-
- /** Reference to the state field. */
- private QuerySelect stateSelect;
-
- /**
- * Construct Step2 with the specified name, label, description and page.
- *
- * @param name the step name
- * @param label the step label
- * @param description the step description
- * @param page the wizard page
- */
- public Step2(String name, String label, String description, WizardPage page) {
- super(name, label, description, page);
-
- // PageLink to page where post codes can be looked up
- final PageLink postCodeLookup = new PageLink("postCodePage", "Lookup Post Code", SelectPostCode.class);
-
- // We want to right align the postCodeLookup link, however fields must
- // be left aligned. In order to do this we wrap postCodeLookupPage inside
- // a div (block level element) and set its contents to be right aligned.
- Div postCodeLookupWrapper = new Div();
- postCodeLookupWrapper.add(postCodeLookup);
- postCodeLookupWrapper.setStyle("text-align", "right");
-
- getForm().add(postCodeLookupWrapper);
-
- getForm().add(new TextField("address.line1", "Line One"));
- getForm().add(new TextField("address.line2", "Line Two"));
- getForm().add(new TextField("address.suburb", "Suburb"));
-
- stateSelect = new QuerySelect("address.state", "State", true);
-
- stateSelect.setQueryValueLabel("states", "value", "label");
- getForm().add(stateSelect);
- postCodeField = new CayenneIntegerField("address.postCode", "Post Code");
- postCodeField.setMaxLength(5);
- postCodeField.setSize(5);
- getForm().add(postCodeField);
- }
-
- /**
- * Step2 links to a lookup table for populating the post code and state values.
- *
- * The onInit phase is overridden to check if the post code and state values
- * are passed in from the lookup table.
- */
- public void onInit() {
- // Invoke default onInit implementation
- super.onInit();
-
- // Check if postCode is passed to this Page from SelectPostCode page
- String postCodeValue = getContext().getRequestParameter(postCodeField.getName());
- if (postCodeValue != null) {
- postCodeField.setValue(postCodeValue);
- }
- // Check if state is passed to this Page from SelectPostCode page
- String stateValue = getContext().getRequestParameter(stateSelect.getName());
- if (stateValue != null) {
- stateSelect.setValue(stateValue);
- }
- }
-
- /**
- * The onNext action of Step2 checks if the form is valid, moves to the
- * next step in the process and passes the client to the next step.
- *
- * @return true if page processing should continue or not
- */
- public boolean onNext() {
- if (getForm().isValid()) {
- // Pass client to next Step
- getWizardPage().next();
- getWizardPage().getCurrentStep().setClient(getClient());
- }
- return true;
- }
-
- /**
- * The onPrevious action of Step2 moves to the previous step in the process
- * and clears and form errors.
- *
- * @return true if page processing should continue or not
- */
- public boolean onPrevious() {
- getWizardPage().previous();
- getForm().clearErrors();
- return false;
- }
-
- /**
- * Represents a Div HTML element.
- */
- class Div extends AbstractContainer {
- public String getTag() {
- return "div";
- }
- }
-}
-
+/*
+ * 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 net.sf.click.examples.page.wizard;
+
+import net.sf.click.control.AbstractContainer;
+import net.sf.click.control.PageLink;
+import net.sf.click.control.TextField;
+import net.sf.click.examples.control.cayenne.CayenneIntegerField;
+import net.sf.click.extras.cayenne.QuerySelect;
+import net.sf.click.extras.control.IntegerField;
+
+/**
+ * The second step in the 3 step process is to capture the Client address.
+ * <p/>
+ * Note this Panel has no associated template.
+ *
+ * @author Bob Schellink
+ */
+public class Step2 extends Step {
+
+ /** Reference to the postCode field. */
+ private IntegerField postCodeField;
+
+ /** Reference to the state field. */
+ private QuerySelect stateSelect;
+
+ /**
+ * Construct Step2 with the specified name, label, description and page.
+ *
+ * @param name the step name
+ * @param label the step label
+ * @param description the step description
+ * @param page the wizard page
+ */
+ public Step2(String name, String label, String description, WizardPage page) {
+ super(name, label, description, page);
+
+ // PageLink to page where post codes can be looked up
+ final PageLink postCodeLookup = new PageLink("postCodePage", "Lookup Post Code", SelectPostCode.class);
+
+ // We want to right align the postCodeLookup link, however fields must
+ // be left aligned. In order to do this we wrap postCodeLookupPage inside
+ // a div (block level element) and set its contents to be right aligned.
+ Div postCodeLookupWrapper = new Div();
+ postCodeLookupWrapper.add(postCodeLookup);
+ postCodeLookupWrapper.setStyle("text-align", "right");
+
+ getForm().add(postCodeLookupWrapper);
+
+ getForm().add(new TextField("address.line1", "Line One"));
+ getForm().add(new TextField("address.line2", "Line Two"));
+ getForm().add(new TextField("address.suburb", "Suburb"));
+
+ stateSelect = new QuerySelect("address.state", "State", true);
+
+ stateSelect.setQueryValueLabel("states", "value", "label");
+ getForm().add(stateSelect);
+ postCodeField = new CayenneIntegerField("address.postCode", "Post Code");
+ postCodeField.setMaxLength(5);
+ postCodeField.setSize(5);
+ getForm().add(postCodeField);
+ }
+
+ /**
+ * Step2 links to a lookup table for populating the post code and state values.
+ *
+ * The onInit phase is overridden to check if the post code and state values
+ * are passed in from the lookup table.
+ */
+ public void onInit() {
+ // Invoke default onInit implementation
+ super.onInit();
+
+ // Check if postCode is passed to this Page from SelectPostCode page
+ String postCodeValue = getContext().getRequestParameter(postCodeField.getName());
+ if (postCodeValue != null) {
+ postCodeField.setValue(postCodeValue);
+ }
+ // Check if state is passed to this Page from SelectPostCode page
+ String stateValue = getContext().getRequestParameter(stateSelect.getName());
+ if (stateValue != null) {
+ stateSelect.setValue(stateValue);
+ }
+ }
+
+ /**
+ * The onNext action of Step2 checks if the form is valid, moves to the
+ * next step in the process and passes the client to the next step.
+ *
+ * @return true if page processing should continue or not
+ */
+ public boolean onNext() {
+ if (getForm().isValid()) {
+ // Pass client to next Step
+ getWizardPage().next();
+ getWizardPage().getCurrentStep().setClient(getClient());
+ }
+ return true;
+ }
+
+ /**
+ * The onPrevious action of Step2 moves to the previous step in the process
+ * and clears and form errors.
+ *
+ * @return true if page processing should continue or not
+ */
+ public boolean onPrevious() {
+ getWizardPage().previous();
+ getForm().clearErrors();
+ return false;
+ }
+
+ /**
+ * Represents a Div HTML element.
+ */
+ class Div extends AbstractContainer {
+ public String getTag() {
+ return "div";
+ }
+ }
+}
+
Modified: incubator/click/trunk/click/examples/src/net/sf/click/examples/page/wizard/Step3.java
URL: http://svn.apache.org/viewvc/incubator/click/trunk/click/examples/src/net/sf/click/examples/page/wizard/Step3.java?rev=728320&r1=728319&r2=728320&view=diff
==============================================================================
--- incubator/click/trunk/click/examples/src/net/sf/click/examples/page/wizard/Step3.java (original)
+++ incubator/click/trunk/click/examples/src/net/sf/click/examples/page/wizard/Step3.java Sat Dec 20 09:44:11 2008
@@ -1,98 +1,98 @@
-/*
- * 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 net.sf.click.examples.page.wizard;
-
-/**
- * This step asks for confirmation on the client information added through the
- * wizard. If user confirms, the new client is inserted into the database,
- * if user cancels the wizard is ended and user is redirected back to the first
- * step.
- * <p/>
- * Step3 uses a Velocity template (Step3.htm) to render client
- * information.
- *
- * @author Bob Schellink
- */
-public class Step3 extends Step {
-
- /**
- * Construct Step3 with the specified name, label, description and page.
- *
- * @param name the step name
- * @param label the step label
- * @param description the step description
- * @param page the wizard
- */
- public Step3(String name, String label, String description, WizardPage page) {
- super(name, label, description, page);
- }
-
- /**
- * The onFinish action of Step3 checks if the form is valid, saves the
- * client and address in the database, sets up a success message, and
- * sets the page back to stateless.
- *
- * @return true if page processing should continue or not
- */
- public boolean onFinish() {
- if (getForm().isValid()) {
-
- // Store client and associated address in the database
- getForm().saveChanges();
-
- // Set a flash success message
- getContext().setFlashAttribute("message", "The client "
- + getClient().getName() + " was successfully created.");
-
- // Set page state to stateless which removes the page from
- // the session
- getWizardPage().setStateful(false);
-
- // Redirect to wizard page to start another process
- getWizardPage().setRedirect(WizardPage.class);
- }
- return true;
- }
-
- /**
- * The onPrevious action of Step3 moves to the previous step in the process
- * and clears and form errors.
- *
- * @return true if page processing should continue or not
- */
- public boolean onPrevious() {
- getWizardPage().previous();
- getForm().clearValues();
- return false;
- }
-
- /**
- * Override onRender phase to add the client instance to the Template
- * model for rendering.
- */
- public void onRender() {
- // Invoke default onInit implementation
- super.onRender();
-
- // Add client to model for displaying confirmation message
- if (!getModel().containsKey("client")) {
- addModel("client", getClient());
- }
- }
-}
+/*
+ * 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 net.sf.click.examples.page.wizard;
+
+/**
+ * This step asks for confirmation on the client information added through the
+ * wizard. If user confirms, the new client is inserted into the database,
+ * if user cancels the wizard is ended and user is redirected back to the first
+ * step.
+ * <p/>
+ * Step3 uses a Velocity template (Step3.htm) to render client
+ * information.
+ *
+ * @author Bob Schellink
+ */
+public class Step3 extends Step {
+
+ /**
+ * Construct Step3 with the specified name, label, description and page.
+ *
+ * @param name the step name
+ * @param label the step label
+ * @param description the step description
+ * @param page the wizard
+ */
+ public Step3(String name, String label, String description, WizardPage page) {
+ super(name, label, description, page);
+ }
+
+ /**
+ * The onFinish action of Step3 checks if the form is valid, saves the
+ * client and address in the database, sets up a success message, and
+ * sets the page back to stateless.
+ *
+ * @return true if page processing should continue or not
+ */
+ public boolean onFinish() {
+ if (getForm().isValid()) {
+
+ // Store client and associated address in the database
+ getForm().saveChanges();
+
+ // Set a flash success message
+ getContext().setFlashAttribute("message", "The client "
+ + getClient().getName() + " was successfully created.");
+
+ // Set page state to stateless which removes the page from
+ // the session
+ getWizardPage().setStateful(false);
+
+ // Redirect to wizard page to start another process
+ getWizardPage().setRedirect(WizardPage.class);
+ }
+ return true;
+ }
+
+ /**
+ * The onPrevious action of Step3 moves to the previous step in the process
+ * and clears and form errors.
+ *
+ * @return true if page processing should continue or not
+ */
+ public boolean onPrevious() {
+ getWizardPage().previous();
+ getForm().clearValues();
+ return false;
+ }
+
+ /**
+ * Override onRender phase to add the client instance to the Template
+ * model for rendering.
+ */
+ public void onRender() {
+ // Invoke default onInit implementation
+ super.onRender();
+
+ // Add client to model for displaying confirmation message
+ if (!getModel().containsKey("client")) {
+ addModel("client", getClient());
+ }
+ }
+}
Modified: incubator/click/trunk/click/examples/src/net/sf/click/examples/page/wizard/WizardPage.java
URL: http://svn.apache.org/viewvc/incubator/click/trunk/click/examples/src/net/sf/click/examples/page/wizard/WizardPage.java?rev=728320&r1=728319&r2=728320&view=diff
==============================================================================
--- incubator/click/trunk/click/examples/src/net/sf/click/examples/page/wizard/WizardPage.java (original)
+++ incubator/click/trunk/click/examples/src/net/sf/click/examples/page/wizard/WizardPage.java Sat Dec 20 09:44:11 2008
@@ -1,146 +1,146 @@
-/*
- * 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 net.sf.click.examples.page.wizard;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import net.sf.click.examples.page.BorderPage;
-
-/**
- * This Page manages steps in a wizard process.
- *
- * @author Bob Schellink
- */
-public class WizardPage extends BorderPage {
-
- /** Current step in the process. */
- private Step currentStep;
-
- /** List of all steps. */
- private List steps = new ArrayList();
-
- /**
- * Default constructor.
- */
- public WizardPage() {
- steps.add(new Step1("step", "Client", "Step 1 of 3", this));
- steps.add(new Step2("step", "Address", "Step 2 of 3", this));
- steps.add(new Step3("step", "Confirmation", "Step 3 of 3", this));
-
- // Set first step as current
- setCurrentStep((Step) steps.get(0));
-
- // Initialize all the steps
- Iterator it = steps.iterator();
- while(it.hasNext()) {
- Step step = (Step) it.next();
- step.init();
- }
- }
-
- /**
- * Return the current step.
- *
- * @return the current step
- */
- public Step getCurrentStep() {
- return currentStep;
- }
-
- /**
- * Sets the current Step to the specified Step.
- *
- * @param step the new step to set
- */
- public void setCurrentStep(Step step) {
- if (this.currentStep != null) {
- // Remove the current step from the page list of controls
- removeControl(this.currentStep);
- }
- this.currentStep = step;
- // Add the new step to the page list of controls
- addControl(step);
- }
-
- /**
- * Return true if there is another step before the specified step.
- *
- * @param step the step to check against
- * @return true if there is another step before the specified step
- */
- public boolean hasPreviousStep(Step step) {
- return steps.indexOf(step) > 0;
- }
-
- /**
- * Return true if there is another step after the specified step.
- *
- * @param step the step to check against
- * @return true if there is another step after the specified step
- */
- public boolean hasNextStep(Step step) {
- return !isLastStep(step);
- }
-
- /**
- * Return true if the specified step is the last step in the process.
- *
- * @param step the step to check against
- * @return true if the specified step is the last step in the process
- */
- public boolean isLastStep(Step step) {
- int numberOfSteps = steps.size();
- int currentStepIndex = steps.indexOf(step);
-
- // currentStepIndex is a zero based index. Add 1 when comparing to
- // numberOfSteps
- return (numberOfSteps == currentStepIndex + 1);
- }
-
- /**
- * Goto previous step.
- */
- public void previous() {
- int currentIndex = steps.indexOf(getCurrentStep());
- if (currentIndex > 0) {
- setCurrentStep((Step) steps.get(currentIndex - 1));
- }
- }
-
- /**
- * Goto next step.
- */
- public void next() {
- int currentIndex = steps.indexOf(getCurrentStep());
- if (currentIndex < steps.size() - 1) {
- setCurrentStep((Step) steps.get(currentIndex + 1));
- }
- }
-
- /**
- * Return the page stylesheet: wizard.css.
- *
- * @return the page stylesheet
- */
- public String getHtmlImports() {
- String contextPath = getContext().getRequest().getContextPath();
- return "<link type=\"text/css\" rel=\"stylesheet\" href=\"" + contextPath + "/wizard/wizard.css\"/>";
- }
-}
+/*
+ * 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 net.sf.click.examples.page.wizard;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import net.sf.click.examples.page.BorderPage;
+
+/**
+ * This Page manages steps in a wizard process.
+ *
+ * @author Bob Schellink
+ */
+public class WizardPage extends BorderPage {
+
+ /** Current step in the process. */
+ private Step currentStep;
+
+ /** List of all steps. */
+ private List steps = new ArrayList();
+
+ /**
+ * Default constructor.
+ */
+ public WizardPage() {
+ steps.add(new Step1("step", "Client", "Step 1 of 3", this));
+ steps.add(new Step2("step", "Address", "Step 2 of 3", this));
+ steps.add(new Step3("step", "Confirmation", "Step 3 of 3", this));
+
+ // Set first step as current
+ setCurrentStep((Step) steps.get(0));
+
+ // Initialize all the steps
+ Iterator it = steps.iterator();
+ while(it.hasNext()) {
+ Step step = (Step) it.next();
+ step.init();
+ }
+ }
+
+ /**
+ * Return the current step.
+ *
+ * @return the current step
+ */
+ public Step getCurrentStep() {
+ return currentStep;
+ }
+
+ /**
+ * Sets the current Step to the specified Step.
+ *
+ * @param step the new step to set
+ */
+ public void setCurrentStep(Step step) {
+ if (this.currentStep != null) {
+ // Remove the current step from the page list of controls
+ removeControl(this.currentStep);
+ }
+ this.currentStep = step;
+ // Add the new step to the page list of controls
+ addControl(step);
+ }
+
+ /**
+ * Return true if there is another step before the specified step.
+ *
+ * @param step the step to check against
+ * @return true if there is another step before the specified step
+ */
+ public boolean hasPreviousStep(Step step) {
+ return steps.indexOf(step) > 0;
+ }
+
+ /**
+ * Return true if there is another step after the specified step.
+ *
+ * @param step the step to check against
+ * @return true if there is another step after the specified step
+ */
+ public boolean hasNextStep(Step step) {
+ return !isLastStep(step);
+ }
+
+ /**
+ * Return true if the specified step is the last step in the process.
+ *
+ * @param step the step to check against
+ * @return true if the specified step is the last step in the process
+ */
+ public boolean isLastStep(Step step) {
+ int numberOfSteps = steps.size();
+ int currentStepIndex = steps.indexOf(step);
+
+ // currentStepIndex is a zero based index. Add 1 when comparing to
+ // numberOfSteps
+ return (numberOfSteps == currentStepIndex + 1);
+ }
+
+ /**
+ * Goto previous step.
+ */
+ public void previous() {
+ int currentIndex = steps.indexOf(getCurrentStep());
+ if (currentIndex > 0) {
+ setCurrentStep((Step) steps.get(currentIndex - 1));
+ }
+ }
+
+ /**
+ * Goto next step.
+ */
+ public void next() {
+ int currentIndex = steps.indexOf(getCurrentStep());
+ if (currentIndex < steps.size() - 1) {
+ setCurrentStep((Step) steps.get(currentIndex + 1));
+ }
+ }
+
+ /**
+ * Return the page stylesheet: wizard.css.
+ *
+ * @return the page stylesheet
+ */
+ public String getHtmlImports() {
+ String contextPath = getContext().getRequest().getContextPath();
+ return "<link type=\"text/css\" rel=\"stylesheet\" href=\"" + contextPath + "/wizard/wizard.css\"/>";
+ }
+}