Last modified by Bastian Triller on 2021/08/07 03:59

From version 3.1
edited by Pascal Robert
on 2012/08/06 05:04
Change comment: There is no comment for this version
To version 5.1
edited by Pascal Robert
on 2012/08/06 05:52
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -11,8 +11,65 @@
11 11  * The main page will display a list of blog entries, with a link to see the blog entry.
12 12  * The main page will have a link to an "admin" page that will show a login form.
13 13  * After login, a list of blog entries with links to edit, delete and create blog entries will be show.
14 -* We need a form to edit/create blog entries.
14 +* We need a form to edit/create blog entries.
15 15  
16 16  Let's start by creating a new project in Eclipse. You need to create a **Wonder Application** project type, and name it **StatefulBlog**.
17 17  
18 18  [[image:Capture d’écran 2012-08-06 à 04.56.13.png||border="1"]]
19 +
20 +Just like the D2W tutorial, you need to link the application with the **BlogCommon**, **Ajax** and **H2PlugIn** frameworks. To do so, right-click on **StatefulBlog** and select **Build Path** > **Configure Build Path**. 
21 +
22 +[[image:Capture d’écran 2012-07-29 à 14.25.46.png||border="1"]]
23 +
24 +In the **Libraries** tab, click on **Add Library**. Select **WebObjects Frameworks** and click **Next**. Check **Ajax**, **BlogCommon** and **H2PlugIn** from the list and click **Finish**. The **Libraries** tab should look like this:
25 +
26 +[[image:Capture d’écran 2012-08-06 à 05.15.32.png||border="1"]]
27 +
28 +We are ready to code Open the **Components** folder of the project, and open **Main WO**. In the **Related** view (bottom-right), you see that all related files of the component are listed, and we need to open the Java code associated with the component. To do so, in the **Related** view, double-click on **Main.java** to open the Java class into an editor.
29 +
30 +In **Main.java**, we need some Java code to get the list of blog entries so that we can show that list into the component. The following code will do what we need:
31 +
32 +{{code}}
33 +
34 +import your.app.model.BlogEntry;
35 +
36 +import com.webobjects.appserver.WOContext;
37 +import com.webobjects.eoaccess.EODatabaseDataSource;
38 +import com.webobjects.eocontrol.EOEditingContext;
39 +
40 +import er.extensions.batching.ERXBatchingDisplayGroup;
41 +import er.extensions.components.ERXComponent;
42 +import er.extensions.eof.ERXEC;
43 +
44 +public class Main extends ERXComponent {
45 +
46 + private EOEditingContext _ec;
47 + private BlogEntry _blogEntryItem;
48 +
49 + public Main(WOContext context) {
50 + super(context);
51 + EODatabaseDataSource dataSource = new EODatabaseDataSource(editingContext(), BlogEntry.ENTITY_NAME);
52 + ERXBatchingDisplayGroup<BlogEntry> dg = new ERXBatchingDisplayGroup<BlogEntry>();
53 + dg.setNumberOfObjectsPerBatch(20);
54 + dg.setDataSource(dataSource);
55 + dg.setObjectArray(BlogEntry.fetchAllBlogEntries(editingContext(), BlogEntry.LAST_MODIFIED.descs()));
56 + }
57 +
58 + private EOEditingContext editingContext() {
59 + if (_ec == null) {
60 + _ec = ERXEC.newEditingContext();
61 + }
62 + return _ec;
63 + }
64 +
65 + public void setBlogEntryItem(BlogEntry blogEntryItem) {
66 + this._blogEntryItem = blogEntryItem;
67 + }
68 +
69 + public BlogEntry blogEntryItem() {
70 + return this._blogEntryItem;
71 + }
72 +
73 +}
74 +
75 +{{/code}}