You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beehive.apache.org by ri...@apache.org on 2005/05/25 08:04:39 UTC

svn commit: r178383 - in /incubator/beehive/trunk/samples/netui-samples: ./ lifecycle/ lifecycle/base/ lifecycle/longlived/ lifecycle/normal/

Author: rich
Date: Tue May 24 23:04:38 2005
New Revision: 178383

URL: http://svn.apache.org/viewcvs?rev=178383&view=rev
Log:
Added a sample to demonstrate the Page Flow lifecycle.

tests: build.dist (WinXP)
BB (and run.tests): self (linux)


Added:
    incubator/beehive/trunk/samples/netui-samples/lifecycle/
    incubator/beehive/trunk/samples/netui-samples/lifecycle/base/
    incubator/beehive/trunk/samples/netui-samples/lifecycle/base/BasePageFlow.java   (with props)
    incubator/beehive/trunk/samples/netui-samples/lifecycle/base/template.jsp   (with props)
    incubator/beehive/trunk/samples/netui-samples/lifecycle/longlived/
    incubator/beehive/trunk/samples/netui-samples/lifecycle/longlived/LongLivedPageFlow.java   (with props)
    incubator/beehive/trunk/samples/netui-samples/lifecycle/longlived/index.jsp   (with props)
    incubator/beehive/trunk/samples/netui-samples/lifecycle/normal/
    incubator/beehive/trunk/samples/netui-samples/lifecycle/normal/NormalPageFlow.java   (with props)
    incubator/beehive/trunk/samples/netui-samples/lifecycle/normal/index.jsp   (with props)
Modified:
    incubator/beehive/trunk/samples/netui-samples/index.jsp

Modified: incubator/beehive/trunk/samples/netui-samples/index.jsp
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/samples/netui-samples/index.jsp?rev=178383&r1=178382&r2=178383&view=diff
==============================================================================
--- incubator/beehive/trunk/samples/netui-samples/index.jsp (original)
+++ incubator/beehive/trunk/samples/netui-samples/index.jsp Tue May 24 23:04:38 2005
@@ -35,6 +35,11 @@
           <dd>Demonstrates Page Flow declarative exception handling.</dd>
       </dl>
       <dl>
+          <dt><netui:anchor href="lifecycle/normal/NormalPageFlow.jpf" value="Lifecycle"/></dt>
+          <dd>Demonstrates the lifecycle (creation/destruction) of "normal" and "long-lived" page
+              flows.  Also demonstrates inheritance of actions.</dd>
+      </dl>
+      <dl>
           <dt><netui:anchor href="loginexample/start/Controller.jpf" value="Login"/></dt>
           <dd>Demonstrates defining your own LoginHandler, as well as nested page flows and Page Flow
               inheritance.</dd>

Added: incubator/beehive/trunk/samples/netui-samples/lifecycle/base/BasePageFlow.java
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/samples/netui-samples/lifecycle/base/BasePageFlow.java?rev=178383&view=auto
==============================================================================
--- incubator/beehive/trunk/samples/netui-samples/lifecycle/base/BasePageFlow.java (added)
+++ incubator/beehive/trunk/samples/netui-samples/lifecycle/base/BasePageFlow.java Tue May 24 23:04:38 2005
@@ -0,0 +1,69 @@
+/*
+ * Copyright 2004-2005 The Apache Software Foundation.
+ *
+ * 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.
+ *
+ * $Header:$
+ */
+package lifecycle.base;
+
+import java.io.Serializable;
+
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+import org.apache.beehive.netui.pageflow.Forward;
+import org.apache.beehive.netui.pageflow.PageFlowController;
+
+
+/**
+ * This page flow contains an integer variable and an action to increment it, as well as some
+ * common actions and lifecycle methods.  It's extended by the other page flows in this sample, and
+ * can't be hit directly.
+ */
+@Jpf.Controller(
+    simpleActions={
+        @Jpf.SimpleAction(name="begin", path="index.jsp"),
+        @Jpf.SimpleAction(name="goNormal", path="/lifecycle/normal/NormalPageFlow.jpf"),
+        @Jpf.SimpleAction(name="goLongLived", path="/lifecycle/longlived/LongLivedPageFlow.jpf")
+    }
+)
+public abstract class BasePageFlow
+    extends PageFlowController
+{
+    private int _num = 0;
+
+    public int getNum()
+    {
+        return _num;
+    }
+
+    @Jpf.Action(
+        forwards={
+            @Jpf.Forward(name="current", navigateTo=Jpf.NavigateTo.currentPage)
+        }
+    )
+    public Forward increment()
+    {
+        _num++;
+        return new Forward("current");
+    }
+
+    protected void onCreate()
+    {
+        System.out.println( "**** in onCreate for " + getClass().getName() );
+    }
+
+    protected void onDestroy()
+    {
+        System.out.println( "**** in onDestroy for " + getClass().getName() );
+    }
+}

Propchange: incubator/beehive/trunk/samples/netui-samples/lifecycle/base/BasePageFlow.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/beehive/trunk/samples/netui-samples/lifecycle/base/template.jsp
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/samples/netui-samples/lifecycle/base/template.jsp?rev=178383&view=auto
==============================================================================
--- incubator/beehive/trunk/samples/netui-samples/lifecycle/base/template.jsp (added)
+++ incubator/beehive/trunk/samples/netui-samples/lifecycle/base/template.jsp Tue May 24 23:04:38 2005
@@ -0,0 +1,74 @@
+<%--
+   Copyright 2004-2005 The Apache Software Foundation.
+
+   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.
+  
+   $Header:$
+--%>
+<%@ page language="java" contentType="text/html;charset=UTF-8"%>
+<%@ taglib uri="http://beehive.apache.org/netui/tags-databinding-1.0" prefix="netui-data"%>
+<%@ taglib uri="http://beehive.apache.org/netui/tags-html-1.0" prefix="netui"%>
+<%@ taglib uri="http://beehive.apache.org/netui/tags-template-1.0" prefix="netui-template"%>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
+
+<netui-data:declareBundle bundlePath="org.apache.beehive.samples.netui.resources.site" name="site"/>
+
+<netui:html>
+    <head>
+        <title>
+            ${bundle.site.browserTitle} -- NetUI Feature Samples: Page Flow Lifecycle
+        </title>
+        <link rel="stylesheet" href="${pageContext.request.contextPath}/resources/css/style.css" type="text/css"/>
+    </head>
+    <netui:body>
+        <div>
+            <div id="header">
+                <table style="background-color:#FFE87C;width:100%;">
+                  <tr>
+                    <td style="font-size:x-large;">NetUI Feature Samples: Page Flow Lifecycle</td>
+                    <td style="text-align:right;"><a href="${pageContext.request.contextPath}" target="_top">Samples Home</a></td>
+                  </tr>
+                </table><br/>
+            </div>
+
+            <div id="main">
+                <h3>Page Flow ${pageFlow.URI}</h3>
+                <p>
+                    <netui-template:includeSection name="notes"/>
+                </p>
+                <table>
+                    <tr>
+                        <td>Current integer value: <b>${pageFlow.num}</b></td>
+                        <td>
+                            <netui:form action="increment">
+                                <netui:button value="increment"/>
+                            </netui:form>
+                        </td>
+                    </tr>
+                </table>
+                <p>
+                    <netui-template:includeSection name="links"/>
+                </p>
+            </div>
+
+            <div id="footer">
+                <table style="background-color:#FFE87C;width:100%;">
+                  <tr>
+                    <td>&nbsp;</td>
+                    <td style="text-align:right;"><a href="${pageContext.request.contextPath}">Samples Home</a></td>
+                  </tr>
+                </table>
+            </div>
+        </div>
+    </netui:body>
+</netui:html>

Propchange: incubator/beehive/trunk/samples/netui-samples/lifecycle/base/template.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/beehive/trunk/samples/netui-samples/lifecycle/longlived/LongLivedPageFlow.java
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/samples/netui-samples/lifecycle/longlived/LongLivedPageFlow.java?rev=178383&view=auto
==============================================================================
--- incubator/beehive/trunk/samples/netui-samples/lifecycle/longlived/LongLivedPageFlow.java (added)
+++ incubator/beehive/trunk/samples/netui-samples/lifecycle/longlived/LongLivedPageFlow.java Tue May 24 23:04:38 2005
@@ -0,0 +1,40 @@
+/*
+ * Copyright 2004-2005 The Apache Software Foundation.
+ *
+ * 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.
+ *
+ * $Header:$
+ */
+package lifecycle.longlived;
+
+import java.io.Serializable;
+
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+import org.apache.beehive.netui.pageflow.Forward;
+import org.apache.beehive.netui.pageflow.PageFlowController;
+
+import lifecycle.base.BasePageFlow;
+
+
+/**
+ * This is a "long-lived" page flow.  It is not "destroyed" (released) when you hit another page
+ * flow.  It inherits everythign else from BaseFlow, which contains an action for incrementing a
+ * member variable.
+ */
+@Jpf.Controller(
+    longLived=true
+)
+public class LongLivedPageFlow
+    extends BasePageFlow
+{
+}

Propchange: incubator/beehive/trunk/samples/netui-samples/lifecycle/longlived/LongLivedPageFlow.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/beehive/trunk/samples/netui-samples/lifecycle/longlived/index.jsp
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/samples/netui-samples/lifecycle/longlived/index.jsp?rev=178383&view=auto
==============================================================================
--- incubator/beehive/trunk/samples/netui-samples/lifecycle/longlived/index.jsp (added)
+++ incubator/beehive/trunk/samples/netui-samples/lifecycle/longlived/index.jsp Tue May 24 23:04:38 2005
@@ -0,0 +1,35 @@
+<%--
+   Copyright 2004-2005 The Apache Software Foundation.
+
+   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.
+  
+   $Header:$
+--%>
+<%@ page language="java" contentType="text/html;charset=UTF-8"%>
+<%@ taglib prefix="netui" uri="http://beehive.apache.org/netui/tags-html-1.0"%>
+<%@ taglib prefix="netui-data" uri="http://beehive.apache.org/netui/tags-databinding-1.0"%>
+<%@ taglib prefix="netui-template" uri="http://beehive.apache.org/netui/tags-template-1.0"%>
+
+<netui-template:template templatePage="../base/template.jsp">
+
+    <netui-template:section name="notes">
+        This is a "long-lived" page flow.  When you hit another page flow, this one is <i>not</i>
+        "destroyed" (released).  Increment the variable a few times, then leave the page flow and
+        come back; the value will be retained.
+    </netui-template:section>
+
+    <netui-template:section name="links">
+        <netui:anchor action="goNormal">Go to the "normal" page flow</netui:anchor>
+    </netui-template:section>
+
+</netui-template:template>

Propchange: incubator/beehive/trunk/samples/netui-samples/lifecycle/longlived/index.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/beehive/trunk/samples/netui-samples/lifecycle/normal/NormalPageFlow.java
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/samples/netui-samples/lifecycle/normal/NormalPageFlow.java?rev=178383&view=auto
==============================================================================
--- incubator/beehive/trunk/samples/netui-samples/lifecycle/normal/NormalPageFlow.java (added)
+++ incubator/beehive/trunk/samples/netui-samples/lifecycle/normal/NormalPageFlow.java Tue May 24 23:04:38 2005
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2004-2005 The Apache Software Foundation.
+ *
+ * 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.
+ *
+ * $Header:$
+ */
+package lifecycle.normal;
+
+import java.io.Serializable;
+
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+import org.apache.beehive.netui.pageflow.Forward;
+import org.apache.beehive.netui.pageflow.PageFlowController;
+
+import lifecycle.base.BasePageFlow;
+
+
+/**
+ * This page flow simply inherits everything from BaseFlow, which contains an action for
+ * incrementing a member variable.  When you leave this page flow, it is "destroyed" (released).
+ */
+@Jpf.Controller()
+public class NormalPageFlow
+    extends BasePageFlow
+{
+}

Propchange: incubator/beehive/trunk/samples/netui-samples/lifecycle/normal/NormalPageFlow.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/beehive/trunk/samples/netui-samples/lifecycle/normal/index.jsp
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/samples/netui-samples/lifecycle/normal/index.jsp?rev=178383&view=auto
==============================================================================
--- incubator/beehive/trunk/samples/netui-samples/lifecycle/normal/index.jsp (added)
+++ incubator/beehive/trunk/samples/netui-samples/lifecycle/normal/index.jsp Tue May 24 23:04:38 2005
@@ -0,0 +1,35 @@
+<%--
+   Copyright 2004-2005 The Apache Software Foundation.
+
+   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.
+  
+   $Header:$
+--%>
+<%@ page language="java" contentType="text/html;charset=UTF-8"%>
+<%@ taglib prefix="netui" uri="http://beehive.apache.org/netui/tags-html-1.0"%>
+<%@ taglib prefix="netui-data" uri="http://beehive.apache.org/netui/tags-databinding-1.0"%>
+<%@ taglib prefix="netui-template" uri="http://beehive.apache.org/netui/tags-template-1.0"%>
+
+<netui-template:template templatePage="../base/template.jsp">
+
+    <netui-template:section name="notes">
+        This is a "normal" page flow.  When you hit another page flow, this one is "destroyed"
+        (released).  Increment the variable a few times, then leave the page flow and come back;
+        the value will be reset to zero.
+    </netui-template:section>
+
+    <netui-template:section name="links">
+        <netui:anchor action="goLongLived">Go to the "long-lived" page flow</netui:anchor>
+    </netui-template:section>
+
+</netui-template:template>

Propchange: incubator/beehive/trunk/samples/netui-samples/lifecycle/normal/index.jsp
------------------------------------------------------------------------------
    svn:eol-style = native