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/New And Noteworthy"

(M4)
(M4)
Line 26: Line 26:
 
</source>
 
</source>
 
[[Image:riena_grouped_tree_table.png]]
 
[[Image:riena_grouped_tree_table.png]]
[[Category:Riena]]
+
 
 
* SingleChoiceRidget and MultipleChoiceRidget have been implemented.  
 
* SingleChoiceRidget and MultipleChoiceRidget have been implemented.  
 
[[Image:Riena_choice_ridgets.png]]
 
[[Image:Riena_choice_ridgets.png]]
Line 77: Line 77:
  
 
* Riena now supports sending Attachments (binary large chunks) as parameter or returnvalues in remote service calls, data is transferred in the remote service call.
 
* Riena now supports sending Attachments (binary large chunks) as parameter or returnvalues in remote service calls, data is transferred in the remote service call.
 +
 +
* Modular Riena - New RCP example: The project org.eclipse.riena.sample.client.'''rcpmail''' shows how to use Ridgets in a regular RCP application/ViewPart, without using the rest of Riena. This may be interesting for developers that want to utilize Riena's Ridget concept without fully migrating their RCP application to Riena.
 +
* [[Riena_Snippets | Code Snippets]]: Created a wiki page with code samples that teach you how to use Ridgets. We'll keep adding more examples as the project progresses.
 +
* Output markers: Ridgets with an output marker are "read only". Their content cannot be changed by the user.
 +
<source lang="java">
 +
ITextFieldRidget ridget;
 +
ridget.setOutputOnly(true);
 +
</source>
 +
* Mandatory markers: Ridgets with a mandatory marker must be filled out by the user.
 +
[[Image:riena_mandatory.png]]
 +
<source lang="java">
 +
ITextFieldRidget ridget;
 +
ridget.setMandatory(true);
 +
</source>
 +
 +
[[Category:Riena]]

Revision as of 02:51, 29 August 2008

M4

Collection Information about News and Notewory for M4

  • support Attachments (binary blobs) in Remote Service calls
    • ability to create an "Attachment" object (a java object from Riena) from a URL, InputStream or File and pass it as parameter or return it from a method call
    • the Attachment can read on the target as if it where a local container
  • improved Exception handling for remote services
    • calls to remote services no longer return RemoteFailure with the real exception nested inside but they return the actually exception. we check that this exception is actually allowed by the method signature so the client isnt "surprised", we also let RuntimeExceptions go through. For checked exceptions like IOExceptions Riena nicely wraps them in a RemoteFailure
  • Ridgets for Trees and Trees with columns

Riena treetable.png

  • Menu Bar and Tool Bar (Cool Bar) below sub-application switcher
  • Status Line (with message, number, date and time)
  • Resizing of shell (without OS-Shell-Border)
  • After adding / removing validation rules from an IEditableRidget you can now invoke revalidate() to update the ridget's validation state:
IEditableRidget ridget;
ridget.removeValidationRule(numbersOnly);
ridget.revalidate();
  • The TableRidget and TreeTableRidget will automatically show checkbox images on columns that contain a boolean value. Riena table with checkbox.png
  • The TreeTableRidget now supports "grouping" for tree nodes. Enabling grouping, will hide the column values for rows that contain a tree node that has children. See IGroupedTreeTableRidget for details.
TreeTableRidget ridget;
ridget.setGroupingEnabled(true);

Riena grouped tree table.png

  • SingleChoiceRidget and MultipleChoiceRidget have been implemented.

Riena choice ridgets.png

  • ITreeRidget.setRootsVisible(boolean) can be used to hide / show the root node in a ITreeRidget
  • two new extension points added to configure navigation targets in the tree-like Riena UI application model
    • INavigationNodeId added to identify nodes
      • the interface INavigationNode was extended with a new method getNodeId() that returns an INavigationNodeId
      • an INavigationNodeId has a 'type' part and an 'instance' part both being arbitrary Strings. It is suggested to use a package-like naming for the typeId to ensure uniqueness across an application
      • the typeId defines the type of a node like 'com.acme.banking.bankingSubApplication' or 'com.acme.banking.accountModule'
      • the instanceId is used to distinguish between nodes of the same type like multiple account nodes with different account numbers. The instanceId is optional and may be null for nodes of which only one instance can exist.
    • INavigationNode.navigate(INavigationNodeId) method added to navigate to another node
      • if a node with the specified ID exists it is activated
      • if no node is found a new instance is created first
      • INavigationNode.create(INavigationNodeId) only creates nodes without activating them and may be used for initialization
    • extension point "org.eclipse.riena.navigation.navigationNodeType"
      • defines how to create nodes of a given typeId
      • an implementation of the interface INavigationNodeBuilder returns a single navigation node or the root of a new subtree in the application model
      • parentTypeId sets where to place the new node in the application model. If the parent node does not exist it will be created too
      • the class of the parent node must be the one required for the created node e.g. an ISubApplicationNode for an IModuleGroupNode
    • extension point "org.eclipse.riena.navigation.subModuleType"
      • defines how to represent a sub module in the work area. A sub module is the only navigation node in the Riena UI that does not come with a default presentation
      • view refers to an "org.eclipse.ui.view" extension
      • controller must be a subclass of IController. An instance is created for every submodule node and equiped with a set of Ridgets that is bound to the UI-widgets in the view
<extension point="org.eclipse.riena.navigation.navigationNodeType">
   <navigationNodeType
         typeId="com.acme.example.barModule"
         nodeBuilder="com.acme.example.FooModuleBuilder"
         parentTypeId="com.acme.example.fooModuleGroup" />
</extension>
<extension point="org.eclipse.riena.navigation.subModuleType">
   <subModuleType
         typeId="com.acme.example.bazSubModule"
         view="com.acme.example.BazSubModuleView"
         controller="com.acme.example.BazSubModuleController" />
</extension>
  • Riena now provides UIProcesses for easy synchronization and visualization of parallel jobs
    • Based on eclipse jobs API
    • Integration of exisiting eclipse jobs
    • Dialog visualizing activity and progress
    • Support for visual contexts (describing under which circumstances an UIProcess is visualized)
    • Thread-Serialized callback methods (initialUpdateUi, updateUi, finalUpdateUi)

Uiprocess2.JPG

  • Markers in navigation tree

Error and mandatory marker are displayed in the navigation tree for these sub modules that have marked widgets.

TreeItemMarker.png

  • Riena now supports sending Attachments (binary large chunks) as parameter or returnvalues in remote service calls, data is transferred in the remote service call.
  • Modular Riena - New RCP example: The project org.eclipse.riena.sample.client.rcpmail shows how to use Ridgets in a regular RCP application/ViewPart, without using the rest of Riena. This may be interesting for developers that want to utilize Riena's Ridget concept without fully migrating their RCP application to Riena.
  • Code Snippets: Created a wiki page with code samples that teach you how to use Ridgets. We'll keep adding more examples as the project progresses.
  • Output markers: Ridgets with an output marker are "read only". Their content cannot be changed by the user.
ITextFieldRidget ridget;
ridget.setOutputOnly(true);
  • Mandatory markers: Ridgets with a mandatory marker must be filled out by the user.

Riena mandatory.png

ITextFieldRidget ridget;
ridget.setMandatory(true);

Back to the top