|
|
(163 intermediate revisions by 21 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: 30%; "> |
− | |-
| + | <h3>Get Started</h3> |
− | | __TOC__
| + | * '''[https://eclipsescout.github.io/6.0/beginners-guide.html#installation-and-setup Install]''' Scout |
− | |} | + | * Do the '''[https://eclipsescout.github.io/6.0/beginners-guide.html#cha-helloworld Hello World]''' |
| + | * Read the '''[https://eclipsescout.github.io/6.0/ Documentation]''' |
| + | * '''{{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.
| + | <h3>'''Eclipse Scout''' - Future Proof Business Applications</h3> |
| | | |
− | Please note that these pages are work in progress and still far from complete.
| + | [[Image:ScoutIconLarge.gif|left]] |
| | | |
− | == What is it ==
| + | [[Image:scout_neon_business_application.png|800px]] |
| | | |
− | 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.
| + | Scout applications are based on Java/HTML5 and run on desktop, tablet, and mobile devices. |
| | | |
− | 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.
| + | {| border="0" cellspacing="0" valign="top" style="width:100%; margin-top: 15px;" |
| | | |
− | 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.
| + | |-valign="top" |
− | | + | |style="width:50%; padding-right: 15px; padding-bottom: 15px;"| |
− | == Key Concepts == | + | <h3>Get in Touch</h3> |
− | | + | * '''[http://www.eclipse.org/scout Scout Home]''' - the Scout website |
− | 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.
| + | * '''[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 |
− | With eclipse Scout you have
| + | * '''[https://dev.eclipse.org/mailman/listinfo/scout-dev Scout Newsgroup]''' - scout-dev@eclipse.org |
− | | + | * '''[https://www.ohloh.net/p/eclipsescout Scout ohloh]''' - code metrics and more |
− | #Separation of UI (user interface layer) and GUI (graphical user interface). SWT and Swing GUI factory
| + | * '''[http://www.bsi-software.com BSI Business Systems Integration AG]''' - the currently contributing organization |
− | #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
| + | <h3>Scout Project News</h3> |
− | #Automatic nls support as-you-type
| + | * '''[http://twitter.com/EclipseScout Twitter]''' - follow us on Twitter |
− | #Soap-based remote service tunnel for hi-speed service remoting to a eclipse server-side application
| + | * '''[http://www.bsiag.com/scout Blog]''' - News about Scout |
− | #Extension point for declaring OSGi services and remote service proxies
| + | * '''{{ScoutLink|Release|Mars|Overview|name=Mars Documentation }}''' - Scout 5.0 |
− | #Extension point for UI component to gui widget mapping
| + | * '''{{ScoutLink|Release|Neon|Overview|name=Neon Documentation }}''' - Scout 6.0 (development) |
− | #Complete abstration layer for desktop (workbench), outlines (perspectives), forms (views, dialogs) and fields
| + | * '''[[media:Factsheet_Neon_2015_16.pdf|Scout Factsheet]]''' - the 2015/16 edition |
− | #Configurable code
| + | * '''{{ScoutLink|Overview|Slides|Scout Presentations}}''' - slides and related materials |
− | #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 == | + | |
− | | + | |
− |
| + | |
− | | + | |
− | == 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]] |
Scout applications are based on Java/HTML5 and run on desktop, tablet, and mobile devices.