====== Release Notes 0.9.1 ======
===== Changes (17-04-2019) =====
* new way to launch delayed process with org.adichatz.engine.common.DelayedThread class.
* add postSelection listener: viewer.addPostSelectionChangedListener(...).
* add postCreatePart listener: triggered at the end of the BoundedPart creation process.
* Add [[controllers:multichoicecontroller|MultiChoiceController]] controller to select an array of values.
* Add [[controllers:starratingcontroller|StarRatingController]] controller which provides a rating notation.
* Add [[controllers:gmapcontroller|GMapController]] controller which provides ways to display google map from coordinates or address.
* Add [[controllers:rgbtextcontroller|RGBTextController]] controller for choosing color.
* Add [[controllers:fonttextcontroller|FontTextController]] controller for choosing font.
* Add [[controllers:checktablecontroller|CheckTableController]] extension of [[controllers:tablecontroller|TableController]] controller using a **CheckboxTableViewer** viewer.
* Provides a way to easily manage Array of strings type in pojo (e.g. for **PostgreSQL** database).
* Provides a way to easily manage Enum type in pojo (e.g. for **PostgreSQL** database).
* Full text clause on **PostgreSQL** database is supported.
* Geometry point type on **MySQL** database is supported.
* Customization xml file can be merge to current **Scenario.xml** file. This is an easy and efficient way to customize scenarios.
* Several Callback classes (server side) or Callfore classes (client side) can be associated to an entity.
* Super pojo classes can be used e.g. for adding entity listener (@PreUpdate or @PreInsert).
* Preferences for queries are split into 2 items QueryPreference and ControllerPreference.
* Port for communication between IDE and application is dynamically determined.
* Add copy/paste feature in ImageViewerController controller when image has DATA type (image is stored in database).
* [[tutorial:css|CSS Themes]] can be defined for styling your application.
===== BugFixes =====
|< 100% 80px>|
^ Bug Id ^ Summary ^
| @#F5F6CE:**0.9.1-01** | in org.adichatz.tool.ToolActivator class, instance of org.adichatz.tool.ToolNavigatorContent could be null when Navigator is minimized at startup.|
| @#F5F6CE:**0.9.1-02** | in org.adichatz.engine.widgets.extratext.ExtraText.setFormattedText(String) method, Caret could be invalid when cancelling changes.|
| @#F5F6CE:**0.9.1-03** | in NullPointerException occcured in org.adichatz.tool.ToolNavigatorContent.removeOpenMenuController(INavigator) method when having navigator minimized and restoring editor part (navigator variable is not initialized).|
| @#F5F6CE:**0.9.1-04** | In RefTextController controller, style of control waw not determined by the Style property bu was hard-coded.|
| @#F5F6CE:**0.9.1-05** | When closing eclipse with a open **Scenario.xml** file editor, if you restart eclipse and try to reopen the same file and if active editor is not the editor of this file, a new editor is open. Thats means there are two editor for the same file \\ this comes because, partName (displayed name of the editor) = "{projectName} - {fileName}" is different of FileInputEditor#getName() wich is equals to "**Scenario.xml**". // // In AdiParlistener#partClosed, add line [setPartName(fileEditorInput.getFile().getName());].|
| @#F5F6CE:**0.9.1-06** | entitySetType must not extend propertyFieldType but must extend filedType.|
| @#F5F6CE:**0.9.1-07** | org.adichatz.engine.controller.AWidgetController.removeListener(AListener) doesn't work because listener key is not correct.|
| @#F5F6CE:**0.9.1-08** | When using a seconde perspective, Development and Testing tools do not work: org.adichatz.engine.e4.resource.E4SimulationTools.getSelectedNavigator() must consider different perpspectives option.|
| @#F5F6CE:**0.9.1-09** | 'Valid' clause is not intepreted by MenuGenerator.|
\\
===== TODO List =====
|< 100% 80px>|
^ Issue ^ Summary ^
| @#F5F6CE:**0.9.1-01** | Improve entity injection when opening a new Editor. Search for all needed lazy relationship to be loaded for all entities and then, query the server. (Today the server is queried once by entity). |
| @#F5F6CE:**0.9.1-02** | When adding controllerClassName to TableColumnWrapper or GridColumnWrapper, class declaration and method must be parameterized (e.g. extends TableColumnController<Film>). |