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 "Scout"

(added the infobox)
(151 intermediate revisions by 19 users not shown)
Line 1: Line 1:
{{Infobox
+
__NOTOC__
| name = Eclipse Scout
+
__NOEDITSECTION__
| website = http://www.eclipse.org/proposals/scout/
+
| download =
+
| list = eclipse.scout-dev
+
| newsgroup = eclipse.scout
+
| product = EclipseScout
+
}}
+
  
{| class="FCK__ShowTableBorders" align="right"
+
<div style="float: right; width: 40%; ">
|-
+
* '''{{ScoutLink|HowTo/{{ScoutCurrentVersion}}|Install Scout SDK|name=Install}}''' Scout
| __TOC__
+
* Follow the '''{{ScoutLink|Tutorial|name=Tutorials}}'''
|}
+
* Read the '''{{ScoutLink|Book/4.0|name=Scout Book}}'''
 +
* '''{{ScoutLink|Contribution|name=Contribute}}''' to Scout
 +
</div>
  
The [http://www.eclipse.org/proposals/scout/ Eclipse Scout] project is a proposed open source project under the Eclipse Technology Project.
+
[[Image:ScoutIconLarge.gif]]
  
Please note that these pages are work in progress and still far from complete.  
+
'''Eclipse Scout''' is a framework for business applications.
 +
Scout applications are based on Java/Eclipse and run on the desktop, in a web browser, and on mobile devices.
  
== What is it  ==
+
[[Image:Eclipsescout_businessapplication_kepler.png]]
  
The eclipse Scout Plug-Ins are used to build applications based on eclipse and equinox. These may be standalone apps, client/server apps, headless apps on server-side equinox etc.  
+
Thanks to the clean separation of the UI model from the UI technology, Scout applications can simultaneously support different UI technologies. Currently, Scout supports Swing and SWT on the desktop and Eclipse RAP for web and/or mobile applications.
  
Eclipse Scout consists of a runtime and an SDK part. The runtime part consists of approx. five Plug-Ins, the SDK consists of approx. three Plug-Ins.  
+
With the tooling provided by Scout SDK, Scout is simple to learn and boosts productivity. To get started, have a look at the {{ScoutLink|Tutorial|name=Wiki tutorials}} and the {{ScoutLink|Book/4.0|name=Scout book}}.
  
The runtime is purely based on equinox, and eclipse. The SDK part is an extension to JDT and PDE with a complete perspective for easy click-and-build of a complete application.
+
{| border="0" cellspacing="0" valign="top" style="width:100%; margin-top: 15px;"
  
== Key Concepts ==
+
|-valign="top"
 +
|style="width:50%; padding-right: 15px; padding-bottom: 15px;"|
 +
<h1>Get Started</h1>
 +
* '''{{ScoutLink|Overview|Screencasts|name=Watch the Scout video tutorials}}''' ! start with [http://www.youtube.com/watch?v=SgbKrZHseTQ&list=PLM9RhoqzsT4Xvkf1lo4ry57JdneEGUJaC Tutorial Part 1]
 +
* '''{{ScoutLink|HowTo/{{ScoutCurrentVersion}}|Install Scout SDK|Install Scout}}''' and start to play around
 +
* '''{{ScoutLink|Tutorial/{{ScoutCurrentVersion}}|HelloWorld|The "Hello World!"}}''' the Scout "Hello World" application
 +
* '''{{ScoutLink|Tutorial/{{ScoutCurrentVersion}}|name=More Tutorials}}''' - more Scout SDK tutorials to play with
 +
* '''{{ScoutLink|HowTo/{{ScoutCurrentVersion}}|name=How To}}''' - recipes for common Scout tasks
 +
* '''{{ScoutLink|Concepts|name=Documentation}}''' - description of the Scout concepts
 +
* '''{{ScoutLink|SDK|name=Scout SDK}}''' - development kit for the Eclipse IDE
 +
|
 +
<h1>Scout Project News</h1>
 +
* '''[http://twitter.com/EclipseScout Twitter]''' - follow us on Twitter
 +
* '''[http://www.bsiag.com/scout Blog]''' - News about Scout
 +
* '''{{ScoutLink|Release|Luna|Overview|name=Luna Documentation }}''' - Scout 4.0
 +
* '''{{ScoutLink|Release|Mars|Overview|name=Mars Documentation }}''' - Scout 5.0 (development)
 +
* '''[[media:EclipseScout_Factsheet_2014.pdf‎|Scout Factsheet]]''' - the 2014 edition
 +
* '''{{ScoutLink|Overview|Slides|Scout Presentations}}''' - slides and related materials
  
An applications built with eclipse Scout typically has a UI with perspectives, views, forms and pages. It may also have a back-end part that is running in an application server with server-side equinox. Perspectives, views, forms and pages are not limited to SWT, Scout supports complete GUI pluggability and also supports Swing of the box.  
+
|-valign="top"
 +
|style="width:50%; padding-right: 15px; padding-bottom: 15px;"|
 +
<h1>Get in Touch</h1>
 +
* '''[http://www.eclipse.org/scout Scout Home]''' - the Scout website
 +
* '''[http://www.eclipse.org/forums/eclipse.scout Scout Forum]''' - community discussions
 +
* '''[https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced;bug_status=UNCONFIRMED;bug_status=NEW;bug_status=ASSIGNED;bug_status=REOPENED;bug_status=RESOLVED;bug_status=VERIFIED;product=Scout&columnlist=bug_id%2Cbug_severity%2Cpriority%2Ctarget_milestone%2Cbug_status%2Cresolution%2Ccomponent%2Cassigned_to%2Cshort_desc Scout Bugs]''' - all open bugs
 +
* '''[https://dev.eclipse.org/mailman/listinfo/scout-dev Scout Newsgroup]''' - scout-dev@eclipse.org
  
With eclipse Scout you have
+
* '''[irc://irc.freenode.net/#eclipse-scout #eclipse-scout]''' - a small [[IRC]] channel
 +
* '''[https://www.ohloh.net/p/eclipsescout Scout ohloh]''' - code metrics and more
 +
* '''[http://www.bsiag.com BSI AG]''' - the currently contributing organization
  
#Separation of UI (user interface layer) and GUI (graphical user interface). SWT and Swing GUI factory
+
|
#Complete workspace overview, multiple Plug-Ins participating to the same application are visualized with their high-level dependencies
+
#Much convenience and support in writing only the code you want to write when for example writing a new form with many sections and fields
+
#Automatic nls support as-you-type
+
#Soap-based remote service tunnel for hi-speed service remoting to a eclipse server-side application
+
#Extension point for declaring OSGi services and remote service proxies
+
#Extension point for UI component to gui widget mapping
+
#Complete abstration layer for desktop (workbench), outlines (perspectives), forms (views, dialogs) and fields
+
#Configurable code
+
#Template concept for creating abstract class libraries
+
#Strong typed code, minimized "string binding" and therefore best support by PDE and JDT
+
#No meta data and no one-way code genration; everything is in the Java code you write. If you prefer to write code manually, or via click-and-build, doesn't matter
+
  
== Screens  ==
+
|}
 
+
&nbsp;
+
 
+
== My first application  ==
+
 
+
Easiest way to begin is creating a new eclipse Scout project group and choosing the mail sample application. A project group is a set of Plug-Ins that make up your application. Project name: com.example.mail Project parts: client, server, SWT UI This will create the Plug-Ins (listed by layer)
+
 
+
#com.example.mail.ui.swt.core
+
#com.example.mail.client.core
+
#com.example.mail.shared.core
+
#com.example.mail.server.core
+
 
+
== A Scout form  ==
+
 
+
To get an idea consider a form with only a title and two string fields. This form is displayed as a complete SWT form with SWT fields when using the SWT GUI Plug-In. It can also be displayed using the Swing GUI Plug-In, or (in development) using the apache wicket GUI Plug-In to serve the form from the server as a web page.
+
 
+
public class PersonForm extends AbstractForm{
+
 
+
  public PersonForm(){
+
  }
+
 
+
  /**
+
  * This method and all other getConfigured* and exec* methods can be written manually
+
  * or via the property editor in the scout sdk view
+
  */
+
  @Override
+
  protected String getConfiguredTitle(){
+
    return Texts.get("MailReader");
+
  }
+
 
+
 
+
  public MainBox getMainBox(){
+
    return (MainBox)getRootGroupBox();
+
  }
+
 
+
  public FirstNameField getFirstNameField(){
+
    return getFieldByClass(FirstNameField.class);
+
  }
+
 
+
  public LastNameField getLastNameField(){
+
    return getFieldByClass(LastNameField.class);
+
  }
+
 
+
  public OkButton getOkButton(){
+
    return getFieldByClass(OkButton.class);
+
  }
+
 
+
  public CancelButton getCancelButton(){
+
    return getFieldByClass(CancelButton.class);
+
  }
+
 
+
  /**
+
  * Start the form with the create handler
+
  */
+
  public void startCreate() throws ProcessingException{
+
    startInternal(new CreateHandler());
+
  }
+
 
+
  /**
+
  * Start the form with the modify handler
+
  */
+
  public void startModify() throws ProcessingException{
+
    startInternal(new ModifyHandler());
+
  }
+
 
+
<br>
+
 
+
  @Order(10)
+
  public class MainBox extends AbstractGroupBox{
+
 
+
    @Order(10)
+
    public class FirstNameField extends AbstractStringField{
+
      @Override
+
      protected String getConfiguredLabel(){
+
        return Texts.get("FirstName");
+
      }
+
    }
+
   
+
 
+
    @Order(20)
+
    public class LastNameField extends AbstractStringField{
+
      @Override
+
      protected String getConfiguredLabel(){
+
        return Texts.get("LastName");
+
      }
+
    }
+
   
+
 
+
    @Order(30)
+
    public class OkButton extends AbstractOkButton{
+
    }
+
   
+
    @Order(40)
+
    public class CancelButton extends AbstractCancelButton{
+
    }
+
   
+
  }
+
 
+
<br>
+
 
+
  /**
+
  * This is the form handler when started with .startCreate();
+
  */
+
  public class CreateHandler extends AbstractFormHandler{
+
    protected void execLoad() throws ProcessingException{
+
      //...
+
    }
+
 
+
    protected void execStore() throws ProcessingException{
+
      //...
+
    }
+
  }
+
 
+
  /**
+
  * This is the form handler when started with .startModify();
+
  */
+
  public class ModifyHandler extends AbstractFormHandler{
+
    protected void execLoad() throws ProcessingException{
+
      //...
+
    }
+
 
+
    protected void execStore() throws ProcessingException{
+
      //...
+
    }
+
  }
+
 
+
}
+
 
+
<br>
+
 
+
== How Tos  ==
+
 
+
*[[Create a Scout Dialog]]
+
*[[Create a Scout Process Service]]
+
 
+
=== Where do I load data into a TablePage?  ===
+
  
*override method '''execLoadTableData '''where you call an outline service operation that returns a Object[][] field
+
[[Category:Eclipse Project]]
*Parameter SearchFilter of execLoadTableData contains all additional WHERE clauses (that start with „AND…“) defined in the getConfiguredSearchTerm methods
+
[[Category:Eclipse Technology Project]]
 +
[[Category:Scout]]

Revision as of 14:39, 16 October 2014


ScoutIconLarge.gif

Eclipse Scout is a framework for business applications. Scout applications are based on Java/Eclipse and run on the desktop, in a web browser, and on mobile devices.

Eclipsescout businessapplication kepler.png

Thanks to the clean separation of the UI model from the UI technology, Scout applications can simultaneously support different UI technologies. Currently, Scout supports Swing and SWT on the desktop and Eclipse RAP for web and/or mobile applications.

With the tooling provided by Scout SDK, Scout is simple to learn and boosts productivity. To get started, have a look at the The Scout documentation has been moved to https://eclipsescout.github.io/. and the The Scout documentation has been moved to https://eclipsescout.github.io/..

Get Started

Scout Project News

Get in Touch

Back to the top