Wiki source code of Your First Project - Hello World
Last modified by Steve Peery on 2013/05/29 14:41
Hide last authors
author | version | line-number | content |
---|---|---|---|
![]() |
1.1 | 1 | For your first project, we will do the classic "Hello world" example. This tutorial is more for learning how the development tools works. |
2 | |||
![]() |
15.1 | 3 | First, we will create a new Wonder Application. In Eclipse, open the **File** menu, select **New** and select **Wonder Application**. |
![]() |
1.1 | 4 | |
![]() |
15.1 | 5 | [[image:attach:NewWOProject.png]] |
![]() |
1.1 | 6 | |
7 | |||
8 | {{info}} | ||
![]() |
12.1 | 9 | If the Wonder project types don't appear in the File->New menu, you are probably in a Java perspective instead of WOLips. |
![]() |
15.1 | 10 | Go to the Window->Open Perspective->Other... menu and select WOLips. |
![]() |
1.1 | 11 | {{/info}} |
![]() |
3.1 | 12 | |
![]() |
4.1 | 13 | The project wizard will ask for the project name. Enter **HelloWorld**. Click **Finish**. |
![]() |
3.1 | 14 | |
![]() |
15.1 | 15 | [[image:attach:SetProjectName.png]] |
![]() |
3.1 | 16 | |
17 | {{info}} | ||
![]() |
14.1 | 18 | Don't put spaces in the project name, Eclipse has a hard time with projects that have spaces in the file system path. |
![]() |
3.1 | 19 | {{/info}} |
![]() |
4.1 | 20 | |
21 | The project have been created, you will see it in the **WO Explorer** tab. Expand it (click on the triangle next to the project name) and you will see the following folders: | ||
22 | |||
23 | * **Sources**: this folder holds all of your Java source code. When you create a new project, that folder have 4 files: Application.java, Session.java, DirectAction.java and Main.java. | ||
24 | * **JRE System Library**: don't touch this. | ||
25 | * **Components**: this folder holds all of your Project Wonder components. | ||
26 | * **Libraries**: if you have JARs, for example JDBC drivers, that you need for your project, put them in there. | ||
27 | * **Resources**: that folder is for Project Wonder-specific files. A **Properties** file is added by default. | ||
28 | * **WebServerResources**: that folder is for "static" content that you use in your components, be it images, CSS or JavaScript files. | ||
29 | * **woproject**: this folder holds 6 files that the Ant builder use to include or exclude files and folders in the build product. 99% of the time, you don't need to customize those files. | ||
30 | * **build.xml**: This is the XML file to build the project with Ant. Note that this is to build a "product", when you run the project in Eclipse, it use the incremental builder instead of Ant. | ||
31 | |||
![]() |
15.1 | 32 | So let's run the project. Expand the **Sources** folder, expand the **your.app** package, right-click on **Application.java** and select **Run As** -> **WOApplication**. This action will start the project and it will create a run configuration for Eclipse.[[image:attach:RunProject.png]] |
![]() |
4.1 | 33 | |
![]() |
15.1 | 34 | After a couple of seconds, the project will be started and a page will open in your favorite browser. You just ran your first Project Wonder application, congratulations! |
![]() |
4.1 | 35 | |
36 | Now, let's make the "Hello World" to be dynamic. If the HelloWorld application is still running, terminate it by clicking on the square red button in the **Console** tab. | ||
37 | |||
![]() |
9.1 | 38 | In the project, open the **Sources** folder, open the **your.app.components** package and open **Main.java**. **Main.java** is the Java part of a Project Wonder component. If you check the content of the **Related** tab, you will see that **Main.java** is related to other files like **Main.wo** and **Main.api**, it's a good way to find out if a Java class is part of a component. |
![]() |
4.1 | 39 | |
![]() |
15.1 | 40 | [[image:attach:RelatedTab.png]] |
![]() |
8.1 | 41 | |
![]() |
4.1 | 42 | In the **Main.java** editor tab, you will need to put one variable + one setter + one getter. Complete code: |
43 | |||
44 | {{code language="java" theme="Eclipse"}} | ||
45 | private String myTextForDisplay = "Hello World from the Java world"; | ||
46 | |||
47 | public String myTextForDisplay() { | ||
48 | return myTextForDisplay; | ||
49 | } | ||
50 | |||
51 | public void setMyTextForDisplay(String myTextForDisplay) { | ||
52 | this.myTextForDisplay = myTextForDisplay; | ||
53 | } | ||
54 | {{/code}} | ||
55 | |||
56 | Save the file. | ||
57 | |||
![]() |
9.1 | 58 | So now we have a variable to display the content of a string. The next step is to open the HTML part of the component to actually display the string. In the **Related** view, double-click on the **Main.wo** file. This action will open the component in the Component Editor. |
![]() |
4.1 | 59 | |
![]() |
15.1 | 60 | [[image:attach:ComponentEditor.png]] |
![]() |
8.1 | 61 | |
![]() |
4.1 | 62 | Remove the Hello World text from the HTML and replace it with: |
63 | |||
![]() |
5.1 | 64 | {{code language="java" theme="Eclipse"}} |
![]() |
4.1 | 65 | <wo:str value = "$myTextForDisplay" /> |
66 | {{/code}} | ||
67 | |||
![]() |
13.1 | 68 | And save your modifications. You are now ready to run the application again. The first time you ran the application, it created a run configuration inside Eclipse, so to run the application again, click on the green circle with a white arrow in the toolbar, and select **HelloWorld**. |
![]() |
4.1 | 69 | |
![]() |
15.1 | 70 | [[image:attach:RunConfig.png]] |
![]() |
9.1 | 71 | |
![]() |
15.1 | 72 | The application is now displaying the string for the Java variable! You can terminate the application. |
![]() |
4.1 | 73 | |
![]() |
15.1 | 74 | Final step: making the string truly variable by having a small text field to update the string. To do so, go back into the Main component editor view and just after the //<wo:str// call, add: |
![]() |
5.1 | 75 | |
76 | {{code language="java" theme="Eclipse"}} | ||
77 | |||
78 | <br /> | ||
79 | <wo:form> | ||
80 | <wo:textfield value = "$myTextForDisplay" /> | ||
81 | <wo:submit action = "~updateString" /> | ||
82 | </wo:form> | ||
83 | |||
84 | {{/code}} | ||
85 | |||
86 | Now we have a simple form to update the string. The only thing we need to do is to implement the //updateString// method. Open the **Main.java** file and add the following code: | ||
87 | |||
88 | {{code language="java" theme="Eclipse"}} | ||
89 | |||
![]() |
6.1 | 90 | public WOActionResults updateString() { |
![]() |
5.1 | 91 | return null; |
92 | } | ||
93 | |||
94 | {{/code}} | ||
95 | |||
![]() |
15.1 | 96 | Run the project again, and update the string in the text field. It's now 100% dynamic! Since we added a setter for the variable a couple of steps before, you don't need to set the string in the updateString method, that's the power of bindings. |
![]() |
13.1 | 97 | |
![]() |
18.1 | 98 | [[You can move on to the next tutorial>>doc:WEB.Home.Getting Started.Your First Rest Project.WebHome]]. |