Wavemaker: Difference between revisions

From Wildsong
Jump to navigationJump to search
Brian Wilson (talk | contribs)
Brian Wilson (talk | contribs)
Line 89: Line 89:


Under Services, create a Java Service. It will create a simple class file that you can edit.
Under Services, create a Java Service. It will create a simple class file that you can edit.
import your classes in the generated code.


=== Service variables ===
To [http://dev.wavemaker.com/wiki/bin/view/Documentation/CallingServices call a server-side operation] in a WaveMaker application, you create a component called a Service Variable.
* Create a Service Variable
* Bind the inputs (text fields for example) on the Service Variable to a form.


== Related products ==
== Related products ==

Revision as of 21:32, 30 May 2013

Overview

Wavemaker is a RAD browser based development tool for creating Java/Javascript/Ajax applications. Wavemaker is 100% open source. (Apache 2 license)

I am interested in it because I need to create applications backed by PostgreSQL databases.

Get it from http://wavemaker.com/ -- download and run the installer. On a Mac it's an application, on Linux it installs into /opt/wavemaker-version by default.

Wavemaker is Java and comes bundled with Tomcat so you can just run it and it connects via a web browser.

Projects are stored in your home directory under WaveMaker-version on Linux or Documents/WaveMaker on Mac.

Getting started

First, download and install. I used the Ubuntu .deb package and did sudo dpkg --install wavemaker_6.5.3.Release_amd64.deb.

Next, build a database. I have some commands to build my sample database here: Motion database. Come back when you are done. You can build a database directly in Wavemaker but it's more work than doing it with database tools. Use pgadmin3 if you don't like psql.

Start Wavemaker running (as yourself not root). On my Linux server I run this: /opt/wavemaker-6.5.3.Release/bin/wavemaker.sh

Wavemaker is a development system so I suggest you do all development on a desktop system, then deploy to a server. It's possible to run it on a server. I had trouble installing the "WaveMaker System Requirements Bundle". I clicked on the "Proxy Problems" button which let me do it as two steps: download a file from Internet then upload to my wavemaker installation.

If you do run on a server you have to plug in the correct server name or IP address. It runs on port 8094. So for example, you would open http://myservername:8094/wavemaker instead of http://localhost:8094/wavemaker

If you go to http://localhost:8094/ instead you will see the Tomcat page. Wavemaker is running in its own instance of Tomcat.

The idea here is that you will build on a staging server (running on 8094) and then deploy to Cloud Foundry. I assume I can deploy anywhere I want as long as the server supports the right pieces. (Tomcat 6) I have not tried yet.

A project directory is created in your home directory.

~bwilson/WaveMaker
[bwilson@dart MotionDBDemo]$ cat file_map_readme.txt this file gives details on what's in all the files here

Sample database

The motion database can be used keep track of bicycle and car things. It is part training log, part asset manager.

The basic tables are: trip rider photo vehicle maintenance

The junction tables are: j_trip j_photo

Importing data into Wavemaker

  1. Services in top bar
  2. Import database

Once you have done this then the tables will be available as Data Widgets but there are no joins!

Services tab (the one on the left not the one in the top bar)

If you make changes to the database you can re-import it in Services.

Setting up relationships

Wavemaker docs on relationships and foreign keys

So far it seems to have done a pretty good job on its own.

LiveViews are like Views in a database. I can create a LiveView to access the joined results as a single Data Widget. I think.

Insert -> LiveVariable

"Related" problems

What I am having problems with is seeing details in related tables. They show in the LiveVariable but not in the actual running user interface. I found some discussion of this here: http://dev.wavemaker.com/forums/?q=node/6165 and installed the TestRelatedRelated project that was uploaded there into Dart. This was all written 2011 though, seems like it should be fixed.

I had to install MySQL and http://dart.geo-ceg.org/phpmyadmin/ to get it going.

A "LiveVariable" holds the results of a database query.

A "LiveForm" automates the creation of a form tat accesses data in a datatable.

Work around = use a view in PostgreSQL??? Make the complex join look like a single simple table. I might not get editing going tonight. Darn. Let's go make some views. Motion database#Views

Connecting a JAR file

Put your JAR file in ~/WaveMaker/projects/IncidentViewServer

Under Services, create a Java Service. It will create a simple class file that you can edit. import your classes in the generated code.

To call a server-side operation in a WaveMaker application, you create a component called a Service Variable.

  • Create a Service Variable
  • Bind the inputs (text fields for example) on the Service Variable to a form.

Related products

Eclipse http://eclipse.org/

Spring http://springsource.com/