Difference between revisions of "EDT:How to move RBD app to EDT"

From Eclipsepedia

Jump to: navigation, search
Line 16: Line 16:
  
 
== Modify EGL code  ==
 
== Modify EGL code  ==
This is a handy list of thing to modify. It is recorded when we move RBD samples and test apps to EDT.  
+
#Use Organize Imports (Ctrl+Shift+O) to let EDT import the correct widgets and system parts. This is needed for almost all EGL files because of the package name changes.
See the [http://wiki.eclipse.org/EDT:EGL_Language_conversion EGL Language conversion page] for more information about updates to EGL.  
+
#Below is a handy list of things to modify. It is recorded when we move RBD samples and test apps to EDT. See the [http://wiki.eclipse.org/EDT:EGL_Language_conversion EGL Language conversion page] for more information about updates to EGL. The [http://wiki.eclipse.org/EDT:Code_snippets Code snippets page] is also a good place to find code.  
The [http://wiki.eclipse.org/EDT:Code_snippets Code snippets page] is also a good place to find code.  
+
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 94: Line 93:
 
| See [http://wiki.eclipse.org/EDT:EGL_Language_conversion EGL Language conversion page] for more annotation changes.
 
| See [http://wiki.eclipse.org/EDT:EGL_Language_conversion EGL Language conversion page] for more annotation changes.
 
|-
 
|-
 
+
|<source lang="java">
 
+
egl.defineWidget('utils', 'QueryUtils',
 +
'egl.ui.rui', 'Widget',
 +
</source>
 +
|<source lang="java">
 +
egl.defineWidget('utils', 'QueryUtils',
 +
'eglx.ui.rui', 'Widget',
 +
</source>
 +
| EGL Widget package is changed from '''egl.ui.rui''' to '''eglx.ui.rui''', make corresponding changes when define custom widgets with JS. 
 +
|-
  
  

Revision as of 05:27, 30 November 2011

An EDT project has different layout with an RBD project, the best way to make RBD code working in EDT is to create a new EDT project and copy the code to it. There have also been some changes to the EGL language that may require you to change your RBD-developed code to be modified prior to running on EDT. 

Move code to an EDT project

  1. Create a new EDT project.
    1. If the application contains RUI Handlers, choose either Web2.0 client application or Web 2.0 client application with service depending on if the application also contains services.
    2. If the application contains only Programs and common code, choose Basic.
  2. Copy EGL files and packages from the RBD project to the EDT project
  3. Configure EGL Compiler and generators. Compiler setting is a new feature in EDT which allows setting of different generators for each package and file.
    1. Select JavaScript Generator for Rich UI Handlers, Widgets and any common parts(Record, Library) which are referenced by Rich UI Handlers or Widgets
    2. Select Java Generator for Services, Programs and any common parts referenced by Services or Programs
    3. Common parts require both JavaScript Generator and Java Generator are suggest to be put into a separate package which is configured with both Generators
    4. Compiler setting of a parent resource is inherited by the children. Setting the package is usually good enough.
    5. Refactor package and code is sometimes necessary


Modify EGL code

  1. Use Organize Imports (Ctrl+Shift+O) to let EDT import the correct widgets and system parts. This is needed for almost all EGL files because of the package name changes.
  2. Below is a handy list of things to modify. It is recorded when we move RBD samples and test apps to EDT. See the EGL Language conversion page for more information about updates to EGL. The Code snippets page is also a good place to find code.
RBD EDT Comments
employeeList Employee[0];
employeeList Employee[];
Dimension is not allowed on Array declaration, change to [ ].
program MyProgram type BasicProgram {}
library MyLibrary type BasicLibrary {}
record recordName type BasicRecord
program MyProgram
record recordName
library MyLibrary
Basic stereotypes including BasicLibrary, BasicProgram, BasicRecord are removed. A part without stereotype is the basic type
myService1 MyService {@DedicatedService};
myService1 MyService?{@DedicatedService};
Service-access variable has to be defined as nullable with a ?
myService1 MyService {@bindService{bindingKey = "abc"}};
myService1 MyService?{@Resource {bindingKey = "abc"}};
 
or 
 
myService1 MyService?;
myService1 = SysLib.getResource("abc");
@Resource annotation is new in EDT. Search "resource annotation" in help for the details.
writeStderr("hello world!");
Syslib.writeStderr("hello world!");
all needs to be fully qualified with library name i.e. sysLib, dateTimeLib, serviceLib, xmlLib...etc.
Record Attendee {
XMLStructure = XMLStructureKind.simpleContent}
 
ExternalType BrowserUtils ... {
javaScriptName = "BrowserUtils" ...}	
 
target String{@JavaScriptProperty {}};
Record Attendee {@XMLValue {
kind = XMLStructureKind.simpleContent}}
 
ExternalType BrowserUtils ... {
externalName= "BrowserUtils" ...}
 
target String{@Property {}};
See EGL Language conversion page for more annotation changes.
egl.defineWidget('utils', 'QueryUtils', 
'egl.ui.rui', 'Widget',
egl.defineWidget('utils', 'QueryUtils', 
'eglx.ui.rui', 'Widget',
EGL Widget package is changed from egl.ui.rui to eglx.ui.rui, make corresponding changes when define custom widgets with JS.