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/NewAndNoteworthy/3.8"

(InjectFieldTo Annotation (new with 3.8.1))
(Replaced content with "The Scout documentation has been moved to https://eclipsescout.github.io/.")
 
(18 intermediate revisions by 5 users not shown)
Line 1: Line 1:
This page shows what you need to know about the new Eclipse Scout 3.8 release shipped with Eclipse Juno.
+
The Scout documentation has been moved to https://eclipsescout.github.io/.
 
+
== New Runtime Features ==
+
 
+
=== Scout Web UI support based on [http://eclipse.org/rap/ RAP] ===
+
[[Image:Scout.3.8.newAndNoteworthy.runtime.web.png||thumb|right|300px|Scout Web UI with Rap]]
+
[https://bugs.eclipse.org/bugs/show_bug.cgi?id=367812 Bug 367812]
+
 
+
With version 3.8 Scout supports building web applications in addition to the previously supported Swing and SWT desktop technologies. Two scenarios are supported:
+
* Migrate existing Scout Desktop applications into the browser with minimal effort.
+
* Build new Scout applications that simultaneously run in the browser and as rich applications on the desktop.
+
 
+
This is possible because Eclipse Scout features a clean separation of the application model from the UI Layer (also see this [http://wiki.eclipse.org/Scout/Concepts/Separation_UI_and_GUI#Separation_of_UI_and_GUI wiki article]).
+
 
+
'''Benefits for the developer''': The Scout developer builds the application only once. Everything can be done using existing Scout/Java/Eclipse development know how (no new framework to learn, no HTML, CSS or JavaScript to learn).
+
 
+
'''Benefits to the end user''': The end user of Scout applications experiences an identical look and feel for both the web and the desktop application.
+
 
+
'''Outlook''': The Web UI support is only the next step of the Eclipse Scout "Multi Frontend" strategy. In addition to business application on the desktop and in the web, we are also planning to support mobile devices in the near future.
+
 
+
 
+
=== SVG Field as an additional UI Component ===
+
[[Image:Scout.3.8.newAndNoteworthy.runtime.svg.png||thumb|right|250px|SVG Example with SWT UI]]
+
[https://bugs.eclipse.org/bugs/show_bug.cgi?id=351223 Bug 351223]
+
 
+
The new SVG field enhances Eclipse Scout with the ability to display interactive diagrams and graphics that work on both the desktop and the web environment.
+
 
+
Check out the corresponding  {{ScoutLink|Tutorial/3.8|SVG_Field|name=tutorial}}.
+
 
+
 
+
=== New NLS ([http://en.wikipedia.org/wiki/Internationalization_and_localization i18n]) concept: TextProviderServices ===
+
 
+
[https://bugs.eclipse.org/bugs/show_bug.cgi?id=361816 Bug 361816]
+
 
+
Before version 3.8 Scout only supported internationalization and localization of applications using the Scout NLS properties files. This restriction has been removed by introducing TextProviderServices. This way the translated text retrieval is also aligned with the icon retrieval which is also managed using IconProviderServices. Using the new TextProviderServices developers can decide to store the translations in a custom container like a database or XML files. Furthermore using TextProviderServices it is very easy to overwrite any translated text in the application (also texts used in Scout itself) using the already well known service ranking.
+
 
+
By default the existing properties files will be supported by a reference implementation of the TextProviderServices.
+
 
+
 
+
=== Label Position Top ===
+
[[Image:Scout.3.8.newAndNoteworthy.runtime.toplabel.png||thumb|right|250px|Label Positioning]]
+
 
+
Scout already provides a mechanism to control the position of the field's label. Until now it has been possible to position the label on the left side of the field (which is the default) or on the field itself. The property to control this behavior is called "LabelPosition" and has been extended for Eclipse Scout 3.8.0 to allow a positioning on top of the field.
+
 
+
 
+
=== InjectFieldTo Annotation (new with 3.8.1) ===
+
[https://bugs.eclipse.org/bugs/show_bug.cgi?id=381971 Bug 381971]
+
 
+
A new annotation [http://dev.eclipse.org/svnroot/technology/org.eclipse.scout/scout.rt/trunk/org.eclipse.scout.commons/src/org/eclipse/scout/commons/annotations/InjectFieldTo.java InjectFieldTo]
+
was introduced. It allows adding a field to an existing form without changing it. A field may be added to a container inside the same form or a container in the super classes form fields.
+
 
+
In the following example, the field SalaryField is added to the FirstGroupBox by injection.
+
The order of the fields in FirstGroupBox is determined by the @Order annotation. In this example, SalaryField will appear after NameField:
+
 
+
public class BaseForm {
+
  @Order(10)
+
  public class MainBox extends AbstractGroupBox {
+
    @Order(10)
+
    public class FirstGroupBox extends AbstractGroupBox {
+
      @Order(10)
+
      public class NameField extends AbstractStringField {
+
      }
+
    }
+
  }
+
}
+
+
public class ExtendedForm extends BaseForm {
+
  @Order(20)
+
  @InjectFieldTo(BaseForm.MainBox.FirstGroupBox.class)
+
  public class SalaryField extends AbstractDoubleField {
+
  }
+
}
+
 
+
The injected fields are currently not displayed in the Scout SDK.
+
 
+
=== Better support for creating/overriding form data in search and other forms (new with 3.8.1) ===
+
[https://bugs.eclipse.org/bugs/show_bug.cgi?id=381968 Bug 381968]
+
 
+
This new feature allows to specify how a form creates its form data. This is useful when using search forms that should automatically attach a formdata export to the SearchFilter.
+
Or if a subclass of a searchform has an extended formdata and wants to just override that.
+
 
+
Former (frequently used) code inside a form/searchform of the form:
+
 
+
  @Override
+
  protected void execResetSearchFilter(SearchFilter searchFilter) throws ProcessingException {
+
    super.execResetSearchFilter(getSearchFilter());
+
    FooSearchFormData data = new FooSearchFormData();
+
    exportFormData(data);
+
    getSearchFilter().setFormData(data);
+
  }
+
 
+
can now be replaced by:
+
 
+
  @Override
+
  protected AbstractFormData execCreateFormData() throws ProcessingException {
+
    return new FooSearchFormData();
+
  }
+
 
+
== New SDK Features ==
+
 
+
=== Support for Scout Web UI ===
+
[[Image:Scout.3.8.newAndNoteworthy.sdk.rap_support.png||thumb|right|350px|SDK Support for Rap UI]]
+
[https://bugs.eclipse.org/bugs/show_bug.cgi?id=362401 Bug 362401]
+
 
+
The SDK comes with some handy tools to support you in dealing with the {{ScoutLink|NewAndNoteworthy#Scout_Web_UI_support_based_on_RAP|name=new Web UI}} that comes with Scout 3.8.
+
 
+
'''Create a RAP Web UI plugin when creating a new Scout Project'''
+
When creating a new Scout Project you can now choose to also create a RAP web plugin (this feature is only available when using an Eclipse version 3.6 or higher). The SDK then also supports you by creating a RAP target definition. See the {{ScoutLink|HowTo/3.8/Create_a_new_project#Step_3_.28Optional.29|name="Create a new project"}} HowTo for more information about the different options.
+
 
+
'''Add a RAP Web UI plugin to existing Scout Projects'''
+
If you already have a Scout Project that will be migrated to Scout 3.8 and you want to use the new Web UI in your project, you can add a new Scout RAP Web bundle using the corresponding wizard:
+
 
+
'''Export web projects as WAR files'''
+
In previous Scout releases there was the possibility to export a Scout Server plugin using the ''"Export as WAR file"'' wizard. This wizard has been replaced by a more powerful version that is also capable to export the RAP Web UI bundle into a [http://en.wikipedia.org/wiki/WAR_(Sun_file_format) WAR] file so that you can deploy it easily to an application server. Optionally you now also have the possibility to export the entire application into a single [http://en.wikipedia.org/wiki/EAR_(file_format) EAR]. See the {{ScoutLink|Tutorial/3.8|Deploy to Tomcat|name="Deploy to Tomcat"}} tutorial for more information.
+
 
+
 
+
=== JAX-WS Integration ===
+
[[Image:Scout.3.8.newAndNoteworthy.jaxws.png|thumb|right|300px|SDK Support for Jax-WS]]
+
[https://bugs.eclipse.org/bugs/show_bug.cgi?id=362485 Bug 362485]
+
 
+
A typical scenario for Eclipse Scout applications in the enterprise environment is to communicate with other applications through web services. With version 3.8 Scout is moving from the previously supported [http://ws.apache.org/axis/ Apache Axis] framework to the more modern and active [http://en.wikipedia.org/wiki/JAX-WS JAX-WS] technology.
+
 
+
See this [http://www.bsiag.com/scout/?p=370 post] for a brief introduction to the scope of the JAX-WS integration.
+
 
+
This new feature is supported in the Scout SDK with the following capabilities:
+
* Support to create/maintain JAX-WS consumers.
+
* Support to create/maintain JAX-WS producers.
+
 
+
Check out the corresponding {{ScoutLink|Tutorial/3.8/webservices|Webservices with JAX-WS|name=tutorial}} to learn more on how to use the new features.
+
 
+
 
+
 
+
=== Reorganized Scout Properties View ===
+
[https://bugs.eclipse.org/bugs/show_bug.cgi?id=366928 Bug 366928]
+
[[Image:Scout.3.8.newAndNoteworthy.propertyview1.png|thumb|left|300px|SDK Property View]]
+
 
+
Some objects in the {{ScoutLink|SDK|Explorer_View|name=Scout Explorer}} provide a lot of properties and operations to choose from. In the past the list was without any logical order. E.g. username and password properties did not belong together but were ordered alphabetically in the whole list which made it sometimes harder to find the corresponding fields. Therefore we redesigned the {{ScoutLink|SDK|Object_Properties_View|name=Property View}} to help the developers to find the right properties and operations more easily.
+
 
+
 
+
'''Group Operations and Properties'''
+
 
+
Operations and Properties are now grouped in two levels:
+
* Separation in methods that are used very often and methods that are used rarely: For some object types certain properties or operations are very common. E.g. for a {{ScoutLink|Concepts|StringField|name=StringField}} the maxlength property should always be set. That's why we have defined a section ''Properties'' holding the most common ones for each object type and a section ''Advanced Properties'' holding all other methods. By default the more important properties are expanded while the advanced sections are collapsed. The same also exists for Operations. If you change the collapsed state, the sections remember your changes as long as your IDE is running.
+
* Operations and Properties are grouped into types like ''Appearance'', ''Layout'', ''Behavior'' or ''Data''. This helps to jump faster to the desired methods and ensures methods that belong to the same topics are next to each others.
+
 
+
 
+
'''New Layout for the {{ScoutLink|SDK|Perspective|name=Scout Perspective}}'''
+
[[Image:Scout.3.8.newAndNoteworthy.propertyview2.png|thumb|right|700px|SDK Property View]]
+
 
+
Because the Operations and Properties are now separated (see paragraph above) the {{ScoutLink|SDK|Object_Properties_View|name=Property View}} does no longer need so much space. This allowed us to reorganize the {{ScoutLink|SDK|Perspective|name=Scout Perspective}}. With the new layout developers have more space for the Java Editor where the business logic is implemented. See the {{ScoutLink|SDK|Perspective|name=Scout Perspective wiki article}} for a screenshot of the new perspective layout.
+
 
+
The {{ScoutLink|SDK|Object_Properties_View|name=Property View}} can also adapt to different layouts if you want to customize the {{ScoutLink|SDK|Perspective|name=Scout Perspective}}. As more space gets available on the X axis, the {{ScoutLink|SDK|Object_Properties_View|name=Property View}} re-layouts to make use of the free room:
+
 
+
 
+
'''Help Text for Operations and Properties'''
+
[[Image:Scout.3.8.newAndNoteworthy.propertyview3.png|thumb|right|300px|Property Documentation]]
+
For some Properties or Operations it may not be clear what they do and how/when to use them. To support the developer we improved the help texts that are shown when you hover with the mouse over an Operation or Property.
+
* First of all the help texts themselves have been added and improved at various places. It is not complete yet and we will continue to improve this type of help and documentation.
+
* Second the hover window showing the help is now capable to follow the links provided in the help.
+
 
+
 
+
=== Feature Technology Checkboxes ===
+
[[Image:Scout.3.8.newAndNoteworthy.technologies.png|thumb|right|300px|Feature Technology Section]]
+
 
+
[https://bugs.eclipse.org/bugs/show_bug.cgi?id=373566 Bug 373566]
+
 
+
Scout offers various additional functionalities and features that are not all enabled by default after a project has been created. To easier add and remove such features new ''Technology'' checkboxes have been added. When selecting the project node in the {{ScoutLink|SDK|Explorer_View|name=Scout Explorer}}, the section on the image "Feature Technology Section" is shown (amongst others) in the {{ScoutLink|SDK|Object_Properties_View|name=Scout Object Properties View}}.
+
 
+
When the selection of a technology checkbox is changed, a confirmation box is shown to the user. This box lists which resources that would be changed to apply the new selection. The preselected resources can be adapted to the needs of the project. If the dialog is confirmed, the selected resources are modified to add or remove the feature for the chosen resources.
+
 
+
If a technology is added that needs to install some new features from the internet first, a license confirmation dialog is shown upfront. After confirmation the required files are downloaded from the corresponding udpatesites and automatically installed in the local Eclipse instance of the developer.
+
 
+
 
+
=== Management of External Libraries ===
+
[[Image:Scout.3.8.newAndNoteworthy.libraries.png|thumb|right|300px|"New Library Bundle" Wizard]]
+
 
+
[https://bugs.eclipse.org/bugs/show_bug.cgi?id=362895 Bug 362895]
+
 
+
Scout SDK now allows to easily include and manage external libraries. Developers have the possibility to create own library bundles as
+
* independent bundle that can be used by any plugin
+
* fragment bundle for a specific host (the library will then only be available to that single host plugin)
+
* fragment bundle for ''system.bundle'' which then allows every bundle to use the new library
+
 
+
 
+
=== NLS ([http://en.wikipedia.org/wiki/Internationalization_and_localization i18n]) Changes ===
+
[[Image:Scout.3.8.newAndNoteworthy.nls1.png|thumb|right|300px|Text Provider Service]]
+
 
+
[https://bugs.eclipse.org/bugs/show_bug.cgi?id=361818 Bug 361818] and [https://bugs.eclipse.org/bugs/show_bug.cgi?id=354265 Bug 354265]
+
 
+
The Scout SDK also supports the new TextProviderServices introduced with Scout 3.8 (see {{ScoutLink|NewAndNoteworthy#New_NLS_.28i18n.29_concept:_TextProviderServices|name=here}}). The support is restricted to the built in support for [http://en.wikipedia.org/wiki/.properties properties files] but can be extended to custom implementations if necessary. The NLS Editor is now capable to also show contents of TextProviderServices. Furthermore the SDK includes support to create new and remove existing TextProviderServices.
+
 
+
[[Image:Scout.3.8.newAndNoteworthy.nls2.png|thumb|right|300px|NLS Editor]]
+
Along with the move to TextProviderServices also other improvements of the NLS SDK have been implemented:
+
* The Translation Dialog can now handle multiline texts
+
* When creating a new translation, the Translation Dialog offers a generated key based on the text entered
+
* The Translation Dialog remembers its last size
+
* If creating a new translation out of a wizard: The Translation dialog offers to choose in which TextProviderService the new text should be created
+
* Direct edit in the table of the NLS Editor (also supporting multi line)
+
* Support to overwrite texts using the Translation Dialog
+
* and much more...
+
 
+
 
+
== Bugfixes ==
+
The following list shows all bugs which have been fixed for this release. The list also contains all new enhancements.
+
 
+
* [https://bugs.eclipse.org/bugs/buglist.cgi?list_id=1891843;query_format=advanced;bug_status=RESOLVED;bug_status=VERIFIED;bug_status=CLOSED;target_milestone=3.8.0%20Juno;product=Scout Ticket list for 3.8.0]
+
 
+
 
+
== Migration Guidelines ==
+
Some features and bugfixes sometimes require a change of the api. If this has been the case for the new release then you'll find behind the link below a guideline how to migrate your scout application to the newest release.
+
 
+
{{ScoutLink|Migration|3.8| Migration Guidelines for 3.8}}
+

Latest revision as of 10:31, 18 March 2024

The Scout documentation has been moved to https://eclipsescout.github.io/.

Back to the top