Create a new WO Component

Last modified by Kieran Kelleher on 2007/12/21 14:09

Information
Short video showing new component editor

Let's add a new WO Component to our project.

1. Right-Click/Ctrl-Click on the project and select "New" => "WOComponent"

Picture 25.png


2. The "New WebObjects Component" dialog opens. The only required field is the WOComponent name. Let's just use the default "MyComponent" as the component name. I generally deselect "Create body tag" and "Create api file", but you can leave them if you'd like. Click "Finish" to continue.

Picture 26.png


3. You should now have a new MyComponent.java in your source folder, a MyComponent.wo folder at the project root (or whereever you decide to add the component), a wod, woo, html, and optional api file, and the Component Editor should now open to show your new component.

Picture 27.png


4. Switch to the "Java" tab and add the "greeting" method as defined in the picture below and save.

Picture 28.png


5. Now switch to the "Component" tab, add a <webobject> tag in the HTML and save, then the WOD definition and save. Note that you must save each of the editors individually for changes to be visible – even in the split view. If your file is unsaved, you will see a "*" next to the filename in the tab at the top of the editor.

Picture 29.png


6. Now switch to your Main.wo Component Editor "Component" tab and add a <webobject> tag named "Greeting" and save. Switch to the WOD editor and add a Greeting element that is of type "MyComponent" (you'll notice that code completion now shows MyComponent in the list, because it is a subclass of WOElement).

Picture 30.png


7. Adding a new Java file technically is not a violation of Hot Code Replacement, however, WO seems to not like a new HTML template appearing in your bundle that it doesn't know about. So go ahead and stop your app if it's running and then re-debug it (from the previous instructions). You should now have a "Hello!" in Main.wo is generated by the embedded MyComponent component.

(Note: I found no need to stop/start. It worked fine – Lachlan Deck 8 Jan 2007).

Picture 31.png


8. Continue on to see how to Add a Framework Dependency to your project.