Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Riena Examples Application and Code Templates"

(New page: {{RienaBreadcrumbs| Riena | Example Applications and Code Templates | }} {| align=right | __TOC__ |} On this page you will get a feel of the Riena framework by buildi...)
 
(move)
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
{{RienaBreadcrumbs|
+
#REDIRECT [[Riena Example Applications and Code Templates]]
[[Riena_Project | Riena]] | Example Applications and Code Templates | }}
+
 
+
{| align=right
+
| __TOC__
+
|}
+
 
+
On this page you will get a feel of the Riena framework by building and running applications built with Riena:
+
 
+
* We show you how to build your first Riena application, either using a template or starting from scratch.
+
* We briefly explain what '''Ridgets''' ("Riena widgets") are; an extensive set of snippets will show you how to use them.
+
* Sample applications will give you a glimpse of Riena features such as '''Remote Services''' and of Riena's UI/Navigation approach.
+
 
+
== Build your first Riena application ==
+
 
+
The easiest way to start building a Riena application is to use a template included in the Riena Templates Feature. Of course, you can also write a Riena app from scratch.
+
 
+
=== Using the 'new project' templates ===
+
 
+
# Install the '''Riena Templates Feature''' from http://download.eclipse.org/rt/riena/updatesites/rienawizard
+
# Create a new Plug-in Project (File > New > Plug-in Project > Next)
+
# Choose a project name > Next
+
# On the Content page:
+
## "This plug-in will make contributions to the UI" => Yes
+
## "Would you like to create a rich client application?" => Yes
+
# The Templates page offers three "Riena" templates (picture below). Choose either one and hit Next or Finish.
+
#* [[Image:Riena_pde_templates.png|350x350px]]
+
 
+
; If you picked the "Riena Hello World" or "Riena Mail Template"
+
: start the resulting project with Run As -> Eclipse Application.
+
; If you picked the "Riena Client/Server Template"
+
: use the launch configurations that are included in the project. Start the server first, then the client.
+
 
+
Look at the code in the projects and have fun.
+
 
+
=== If you prefer to roll your own ===
+
Ralf Ebert has written an excellent tutorial on the first steps of [http://www.ralfebert.de/blog/eclipsercp/riena_tutorial/ how to build a Riena client application from scratch].
+
 
+
== Try the Riena Snippets ==
+
The [[Riena_Snippets|Riena Snippets]] page contains a growing collection of self-contained code examples that show you how to use '''ridgets''' ("Riena widgets") and what you can do with them.
+
 
+
{{RienaBox|
+
=== What are ridgets? ===
+
A ridget wraps an actual UI widget but offers a higher level of abstraction and it is independent from the UI toolkit (SWT). The idea is to separate the UI (view) from the logic behind it, which is moved to a view controller. The view controller interacts with the actual UI widgets through the ridgets. It should be possible to reuse a view controller with a view that is based on a different UI toolkit (e.g. Swing).
+
 
+
In effect, a ridget can be considered a mini-controller for a single UI control.
+
 
+
A ridget offers the most commonly-used functionality (like <tt>setText(String)</tt> of a
+
text field) along with some extra convenience functionality like markers. A textfield can be marked as error by adding an ErrorMarker. The marking itself (changing color, setting icons, etc.) is handled
+
by the Riena framework. Another example is the <tt>bindToModel(...)</tt> method for a simple
+
databinding with a JavaBean.
+
 
+
The overall intention is to reduce the complexity for the application developer
+
and to ensure a common look & feel across the application. If the functionality
+
offered by the ridget's interface is not sufficient the developer can always
+
access the actual UI widget. (Then of course he loses the independence from the
+
UI toolkit). The set of ridgets is constantly getting bigger. If necessary it
+
should be possible for applications to add its own ridgets.
+
 
+
In the view you create SWT controls as always and register them with Riena (<tt>addUIControl(...)</tt>). The ridgets will be injected into the controller, where you then have access to the corresponding ridgets.
+
 
+
(Adapted from a [http://markmail.org/message/tklyqqg7biym6uec discussion on riena-dev].) See also [[Riena_Custom_Ridgets#Ridget_Design_Principles|Ridget Design Principles]].
+
}}
+
 
+
== Try the communication ping pong example ==
+
# File -> Import -> Plug-in Development -> Plug-ins and Fragments -> Next.
+
# Select "Projects with source folders" unter Import As (since it's more fun with source code) -> Next.
+
# In the Plug-ins Listbox, select the 4 plugins <tt>*.communication.sample.pingpong.*</tt> and click Add and then Finish.
+
# In the Run Dialog you can select which of the two components to run (under 'OSGi Framework').
+
#* '''Don't forget''' to press the 'Add required Bundles' button for both of them before you start them!
+
## First, start the Riena Sample PingPong Server.
+
##* The server starts at port 8080, make sure it's not taken.
+
## Then start the Riena Sample PingPong Client.
+
# On success your client will print a message on the console: <tt>PingPong::Client:: [Pong] says = Thx. I got the ping!</tt>
+
# Switch to the server console; it should show a message like this: <tt>PingPong::Server:: [Ping] says = I ping you and you pong me</tt>
+
 
+
== Try the unit tests ==
+
# Import the project <tt>org.eclipse.riena.tests</tt> from the target platform (same as above).
+
# There are classes like <tt>AllTests</tt> on various levels that you can run as Junit Plugin Tests.
+
# You can also run individual tests as JUnit Plugin Tests.
+
 
+
; Currently there are more than 2000 tests
+
: They should all work. Some of them fail if you click or move the mouse while the tests are running (e.g. focus or UI tests).
+
; Launch Error on starting tests
+
: This sometimes happens when you launch a test as JUnit Plugin Test for the first time. => You will need to modify the launch configuration for this class:
+
:# In the "Main" tab, change the field "Run an application" to "[No Application] - Headless Mode".
+
:# In the "Plug-ins" tab:
+
:## Launch with: choose "plug-ins selected below only".
+
:## "Deselect All"
+
:## Check/select the bundle containing the test you want to run.
+
:## "Add Required Plug-ins"
+
:# Apply. Run.
+
; Classes ending with <tt>*ITest</tt> require a server.
+
: That's the Riena App Sample Server (explained in the next step).
+
 
+
== Install the Riena Sample App Server ==
+
 
+
Simple server with customer search web service:
+
# Stop any previously started client or server.
+
# Import the projects <tt>org.eclipse.riena.sample.app.server</tt> and <tt>org.eclipse.riena.sample.app.common</tt> from the target platform.
+
# Start Riena App Server from the Run Dialog:
+
#* Don't forget to press the button "Add required bundles".
+
#* This server starts on port 8080, make sure that port is not taken.
+
# That should bring up a relativly simple app server with just the customer search web service.
+
 
+
Server with many more services:
+
# Stop the server again.
+
# Bring up the Run Dialog again, select Riena App Server and select the bundles <tt>org.eclipse.riena.security.services</tt> and <tt>org.eclipse.riena.security.simpleservices</tt> (both found in the target platform).
+
# Press "Add required bundles".
+
# Run it.
+
# Now you can see in the console a lot more (security-related) web services.
+
# Now you can also run the <tt>*ITests</tt> from the <tt>tests</tt> bundle, e.g. <tt>SessionServiceITest</tt>.
+
 
+
== Run the Riena Example Client ==
+
# File -> Import -> Plug-in Development -> Plug-ins and Fragments -> Next.
+
# Select "Projects with source folders" unter 'Import As' (since it's more fun with source code) -> Next.
+
# In the Plug-ins Listbox, select the plugin <tt>org.eclipse.riena.example.client</tt>, click 'Add' and then 'Finish'.
+
# In the Run Dialog -> Eclipse Application, there are two entries "SWT ExampleApplication" and "SWT ExampleApplication (with alternative Lnf)".
+
# You can launch them both:
+
#* Don't forget to click on Add Required Plug-ins in the Plug-ins Tab.
+
#* Both launchers start the same application based on the same code, but using two distinct Riena Themes (different colors, fonts etc.).
+
# Play with it :-)
+
 
+
There is also a project <tt>org.eclipse.riena.sample.app.client.mail</tt> that you can import and start the same way. (The launcher is "Mail Sample (Riena UI)".)
+
 
+
== Run the Riena Demo ==
+
# File -> Import -> Plug-in Development -> Plug-ins and Fragments -> Next.
+
# Select "Projects with source folders" unter 'Import As' (again: it's more fun with source code) -> Next.
+
# In the Plug-ins Listbox, select the 3 plugins <tt>org.eclipse.riena.demo.*</tt>, click 'Add' and then 'Finish'.
+
# Run the Riena Demo Server launcher (don't forget Add Required Plug-ins).
+
* Run the Riena Demo Client launcher (don't forget Add Required Plug-ins).
+
 
+
== Next Step ==
+
 
+
Get started with the [[Riena_Project#Key_Concepts_and_Features|key concepts and features of Riena]].
+
 
+
 
+
[[Category:Riena]]
+

Latest revision as of 11:21, 5 February 2010

Back to the top