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.
Difference between revisions of "Efxclipse/Runtime/e4"
(→Missing Features / Services) |
|||
(30 intermediate revisions by 2 users not shown) | |||
Line 6: | Line 6: | ||
Some of the model elements can be enhanced with special kind of values to influence the renderers to provide behavior very specific zu JavaFX | Some of the model elements can be enhanced with special kind of values to influence the renderers to provide behavior very specific zu JavaFX | ||
+ | |||
+ | === MUIElement === | ||
+ | The renderes translate the following stuff in CSS-Selectors | ||
+ | * <code>MApplicationElement#elementId</code> is translated to the an id-selector (dots are replaced by - e.g. <code>my.app.window</code> is translated to #my-app-window) | ||
+ | * Model-Element-Classname (<code>MPart</code>, <code>MWindow</code>, <code>MTrimmedWindow</code>) is translated to a class-selector (<code>.MPart</code>, <code>.MWindow</code>, <code>.MTrimmedWindow</code>) | ||
+ | * Tags starting with <code>efx_styleclass:${name}</code> are translated to class-selectors e.g. <code>efx_styleclass:MyHome</code> is translated to <code>.MyHome</code> | ||
=== MWindow === | === MWindow === | ||
Line 13: | Line 19: | ||
!Slot | !Slot | ||
!Value | !Value | ||
+ | !Since | ||
!Description | !Description | ||
|- | |- | ||
Line 18: | Line 25: | ||
| persistedState | | persistedState | ||
| boolean | | boolean | ||
+ | | 0.9.0 | ||
| If you want to enable depthBuffering in your the windows scene you should pass true here | | If you want to enable depthBuffering in your the windows scene you should pass true here | ||
|- | |- | ||
Line 23: | Line 31: | ||
| persistedState | | persistedState | ||
| url | | url | ||
+ | | 0.9.0 | ||
| In case you want to show a custom window decoration you should pass an URL to a fxml-File to be used | | In case you want to show a custom window decoration you should pass an URL to a fxml-File to be used | ||
|- | |- | ||
− | | efx.window.undecorated | + | | efx.window.undecorated ('''DEPRECATED''') |
| persistedState | | persistedState | ||
| boolean | | boolean | ||
− | | If you want the stage representing the window created with out any StageStyle.UNDECORATED you should pass true for it | + | | 0.9.0 |
+ | | '''DEPRECATED''' If you want the stage representing the window created with out any StageStyle.UNDECORATED you should pass true for it. Use 'efx.window.stagestyle' | ||
+ | |- | ||
+ | | efx.window.stagestyle | ||
+ | | persistedState | ||
+ | | String (one of the value in javafx.stage.StageStyle) | ||
+ | | 1.0.0 | ||
+ | | Allows you to define the stage-style to use Stage.initStyle. The allowed values are those defined in javafx.stage.StageStyle | ||
+ | |- | ||
+ | | efx.window.fullscreen | ||
+ | | persistedState | ||
+ | | boolean | ||
+ | | 0.9.0 | ||
+ | | If set puts the stage into a window into fullscreen mode | ||
+ | |- | ||
+ | | shellMaximized | ||
+ | | tags | ||
+ | | - | ||
+ | | 1.0.0 | ||
+ | | This tag is provided for SWT-Renderer compability | ||
|} | |} | ||
Line 38: | Line 66: | ||
!Slot | !Slot | ||
!Value | !Value | ||
+ | !Since | ||
!Description | !Description | ||
|- | |- | ||
Line 43: | Line 72: | ||
| tags | | tags | ||
| - | | - | ||
+ | | 0.9.0 | ||
| If you add this tag to a MPartSashContainer it will be rendered using a fixed layout (it isn't a Sash anymore but uses a LayoutPane) | | If you add this tag to a MPartSashContainer it will be rendered using a fixed layout (it isn't a Sash anymore but uses a LayoutPane) | ||
|} | |} | ||
Line 53: | Line 83: | ||
!Slot | !Slot | ||
!Value | !Value | ||
+ | !Since | ||
!Description | !Description | ||
|- | |- | ||
Line 58: | Line 89: | ||
| persistedState | | persistedState | ||
| double | | double | ||
+ | | 0.9.0 | ||
| The value is an absolute width this widget will use in the parent (MPartSashContainer tagged with "fx_fixedLayout") | | The value is an absolute width this widget will use in the parent (MPartSashContainer tagged with "fx_fixedLayout") | ||
|- | |- | ||
Line 63: | Line 95: | ||
| persistedState | | persistedState | ||
| double | | double | ||
+ | | 0.9.0 | ||
| The value is an absolute height this widget will use in the parent (MPartSashContainer tagged with "fx_fixedLayout") | | The value is an absolute height this widget will use in the parent (MPartSashContainer tagged with "fx_fixedLayout") | ||
|- | |- | ||
Line 68: | Line 101: | ||
| persistedState | | persistedState | ||
| boolean | | boolean | ||
+ | | 0.9.0 | ||
| If set to true the element grabs all free horizontal space (MPartSashContainer tagged with "fx_fixedLayout") | | If set to true the element grabs all free horizontal space (MPartSashContainer tagged with "fx_fixedLayout") | ||
|- | |- | ||
Line 73: | Line 107: | ||
| persistedState | | persistedState | ||
| boolean | | boolean | ||
+ | | 0.9.0 | ||
| If set to true the element grabs all free vertical space (MPartSashContainer tagged with "fx_fixedLayout") | | If set to true the element grabs all free vertical space (MPartSashContainer tagged with "fx_fixedLayout") | ||
|} | |} | ||
=== MPart === | === MPart === | ||
+ | |||
+ | By default the container injected in <code>javafx.scene.layout.BorderPane</code> instance | ||
{| class="table table-bordered" cellspacing="0" cellpadding="5" | {| class="table table-bordered" cellspacing="0" cellpadding="5" | ||
Line 83: | Line 120: | ||
!Slot | !Slot | ||
!Value | !Value | ||
+ | !Since | ||
!Description | !Description | ||
|- | |- | ||
Line 88: | Line 126: | ||
| tags | | tags | ||
| - | | - | ||
+ | | 0.9.0 | ||
| If this tag is added to the MPart the toolbar is spanning the complete width of the part | | If this tag is added to the MPart the toolbar is spanning the complete width of the part | ||
|- | |- | ||
Line 93: | Line 132: | ||
| tags | | tags | ||
| - | | - | ||
+ | | 0.9.0 | ||
| If this tag is added to the MPart the toolbar is floating above the parts content and can be collapsed | | If this tag is added to the MPart the toolbar is floating above the parts content and can be collapsed | ||
|- | |- | ||
Line 98: | Line 138: | ||
| tags | | tags | ||
| - | | - | ||
+ | | 0.9.0 | ||
| If this tag is added to the MPart the toolbar is rendered at the bottom instead of the top | | If this tag is added to the MPart the toolbar is rendered at the bottom instead of the top | ||
|- | |- | ||
Line 103: | Line 144: | ||
| tags | | tags | ||
| EFX_LC:$URL$ | | EFX_LC:$URL$ | ||
+ | | 0.9.0 | ||
| If you add a tag starting with EFX_LC: and an URL like e.g. bundleclass://my.bundle/my.lifecycle.Handler the methods @PreShow and @PreClose will be called at the appropriate time | | If you add a tag starting with EFX_LC: and an URL like e.g. bundleclass://my.bundle/my.lifecycle.Handler the methods @PreShow and @PreClose will be called at the appropriate time | ||
|- | |- | ||
Line 108: | Line 150: | ||
| tags | | tags | ||
| - | | - | ||
+ | | 0.9.0 | ||
| If this tag is set the container passed to the contribution is an AnchorPane | | If this tag is set the container passed to the contribution is an AnchorPane | ||
|- | |- | ||
Line 113: | Line 156: | ||
| tags | | tags | ||
| - | | - | ||
+ | | 0.9.0 | ||
| If this tag is set the container passed to the contribution is an FlowPane | | If this tag is set the container passed to the contribution is an FlowPane | ||
|- | |- | ||
Line 118: | Line 162: | ||
| tags | | tags | ||
| - | | - | ||
+ | | 0.9.0 | ||
| If this tag is set the container passed to the contribution is an GridPane | | If this tag is set the container passed to the contribution is an GridPane | ||
|- | |- | ||
Line 123: | Line 168: | ||
| tags | | tags | ||
| - | | - | ||
+ | | 0.9.0 | ||
| If this tag is set the container passed to the contribution is an HBox | | If this tag is set the container passed to the contribution is an HBox | ||
|- | |- | ||
Line 128: | Line 174: | ||
| tags | | tags | ||
| - | | - | ||
+ | | 0.9.0 | ||
| If this tag is set the container passed to the contribution is an StackPane | | If this tag is set the container passed to the contribution is an StackPane | ||
|- | |- | ||
Line 133: | Line 180: | ||
| tags | | tags | ||
| - | | - | ||
+ | | 0.9.0 | ||
| If this tag is set the container passed to the contribution is an VBox | | If this tag is set the container passed to the contribution is an VBox | ||
|- | |- | ||
Line 138: | Line 186: | ||
| tags | | tags | ||
| - | | - | ||
+ | | 0.9.0 | ||
| If this tag is set the container passed to the contribution is an org.eclipse.fx.ui.panes.FillLayoutPane | | If this tag is set the container passed to the contribution is an org.eclipse.fx.ui.panes.FillLayoutPane | ||
|- | |- | ||
Line 143: | Line 192: | ||
| tags | | tags | ||
| - | | - | ||
+ | | 0.9.0 | ||
| If this tag is set the container passed to the contribution is an org.eclipse.fx.ui.panes.GridLayoutPane | | If this tag is set the container passed to the contribution is an org.eclipse.fx.ui.panes.GridLayoutPane | ||
|- | |- | ||
Line 148: | Line 198: | ||
| tags | | tags | ||
| - | | - | ||
+ | | 0.9.0 | ||
| If this tag is set the container passed to the contribution is an org.eclipse.fx.ui.panes.RowLayoutPane | | If this tag is set the container passed to the contribution is an org.eclipse.fx.ui.panes.RowLayoutPane | ||
|- | |- | ||
Line 153: | Line 204: | ||
| tags | | tags | ||
| - | | - | ||
+ | | 0.9.0 | ||
| If this tag is set the container passed to the contribution is an org.eclipse.fx.ui.panes.SashLayoutPane | | If this tag is set the container passed to the contribution is an org.eclipse.fx.ui.panes.SashLayoutPane | ||
|- | |- | ||
Line 158: | Line 210: | ||
| tags | | tags | ||
| - | | - | ||
+ | | 0.9.0 | ||
| If this tag is set the container passed to the contribution is an instance of the class provided through the URL e.g. bundleclass://my.container/my.layout.Pane the contributed class has to be a subclass of javafx.scene.layout.Pane | | If this tag is set the container passed to the contribution is an instance of the class provided through the URL e.g. bundleclass://my.container/my.layout.Pane the contributed class has to be a subclass of javafx.scene.layout.Pane | ||
+ | |} | ||
+ | |||
+ | === MToolItem === | ||
+ | {| class="table table-bordered" cellspacing="0" cellpadding="5" | ||
+ | |- | ||
+ | !Title | ||
+ | !Slot | ||
+ | !Value | ||
+ | !Since | ||
+ | !Description | ||
+ | |- | ||
+ | | fx_checkbox | ||
+ | | tags | ||
+ | | - | ||
+ | | 0.9.0 | ||
+ | | If the ItemType is CHECKBOX and the tag is used a real checkbox is used (by default it is a toggle-button) | ||
|} | |} | ||
Line 167: | Line 236: | ||
!Slot | !Slot | ||
!Value | !Value | ||
+ | !Since | ||
!Description | !Description | ||
|- | |- | ||
Line 172: | Line 242: | ||
| tags | | tags | ||
| - | | - | ||
+ | | 0.9.0 | ||
| If this tag is added to the MTrimElement it will fill the remaining space in the trim | | If this tag is added to the MTrimElement it will fill the remaining space in the trim | ||
|} | |} | ||
Line 181: | Line 252: | ||
!Slot | !Slot | ||
!Value | !Value | ||
+ | !Since | ||
!Description | !Description | ||
|- | |- | ||
Line 186: | Line 258: | ||
| tags | | tags | ||
| - | | - | ||
+ | | 0.9.0 | ||
| If this tag is added to the MPartStack it will be rendered using a pagination control instead of a TabFolder | | If this tag is added to the MPartStack it will be rendered using a pagination control instead of a TabFolder | ||
+ | |- | ||
+ | | fx_tab_closing_policy_unavailable | ||
+ | | tags | ||
+ | | - | ||
+ | | 1.1.0 | ||
+ | | If this tag is added to the MPartStack the tab pane will not have a close button, therefore it will not be possible to close part ( see: http://docs.oracle.com/javafx/2/api/javafx/scene/control/TabPane.TabClosingPolicy.html ) | ||
+ | |- | ||
+ | | fx_tab_closing_policy_selectedTab | ||
+ | | tags | ||
+ | | - | ||
+ | | 1.1.0 | ||
+ | | If this tag is added to the MPartStack only the selected tab will have a close button ( see: http://docs.oracle.com/javafx/2/api/javafx/scene/control/TabPane.TabClosingPolicy.html ) | ||
+ | |- | ||
+ | | fx_tab_closing_policy_allTabs | ||
+ | | tags | ||
+ | | - | ||
+ | | 1.1.0 | ||
+ | | If this tag is added to the MPartStack all the tabs on the tab pan will have close buttons ( see: http://docs.oracle.com/javafx/2/api/javafx/scene/control/TabPane.TabClosingPolicy.html ) | ||
|} | |} | ||
Line 195: | Line 286: | ||
!Slot | !Slot | ||
!Value | !Value | ||
+ | !Since | ||
!Description | !Description | ||
|- | |- | ||
Line 200: | Line 292: | ||
| tags | | tags | ||
| EFX_LC:$URL$ | | EFX_LC:$URL$ | ||
+ | | 0.9.0 | ||
| If you add a tag starting with EFX_LC: and an URL like e.g. bundleclass://my.bundle/my.lifecycle.Handler the methods @PreShow and @PreClose will be called at the appropriate time | | If you add a tag starting with EFX_LC: and an URL like e.g. bundleclass://my.bundle/my.lifecycle.Handler the methods @PreShow and @PreClose will be called at the appropriate time | ||
+ | |} | ||
+ | |||
+ | === MMenuBar === | ||
+ | {| class="table table-bordered" cellspacing="0" cellpadding="5" | ||
+ | |- | ||
+ | !Title | ||
+ | !Slot | ||
+ | !Value | ||
+ | !Since | ||
+ | !Description | ||
+ | |- | ||
+ | | fx.menubar.native | ||
+ | | persistedState | ||
+ | | boolean | ||
+ | | 0.9.0 | ||
+ | | If you set this persistedState key to true the menubar will be renderer as a native OS-X menubar. '''WARNING''' currently this only works reliably when you have a one window application | ||
|} | |} | ||
Line 209: | Line 318: | ||
!Slot | !Slot | ||
!Value | !Value | ||
+ | !Since | ||
!Description | !Description | ||
|- | |- | ||
Line 214: | Line 324: | ||
| tags | | tags | ||
| EFX_LC:$URL$ | | EFX_LC:$URL$ | ||
+ | | 0.9.0 | ||
| If you add a tag starting with EFX_LC: and an URL like e.g. bundleclass://my.bundle/my.lifecycle.Handler the methods @PreShow and @PreClose will be called at the appropriate time | | If you add a tag starting with EFX_LC: and an URL like e.g. bundleclass://my.bundle/my.lifecycle.Handler the methods @PreShow and @PreClose will be called at the appropriate time | ||
|} | |} | ||
=== MToolControl === | === MToolControl === | ||
+ | |||
+ | By default the container injected in <code>javafx.scene.Group</code> instance | ||
{| class="table table-bordered" cellspacing="0" cellpadding="5" | {| class="table table-bordered" cellspacing="0" cellpadding="5" | ||
Line 224: | Line 337: | ||
!Slot | !Slot | ||
!Value | !Value | ||
+ | !Since | ||
!Description | !Description | ||
+ | |- | ||
| Container:AnchorPane | | Container:AnchorPane | ||
| tags | | tags | ||
| - | | - | ||
+ | | 0.9.0 | ||
| If this tag is set the container passed to the contribution is an AnchorPane | | If this tag is set the container passed to the contribution is an AnchorPane | ||
|- | |- | ||
Line 233: | Line 349: | ||
| tags | | tags | ||
| - | | - | ||
+ | | 0.9.0 | ||
| If this tag is set the container passed to the contribution is an FlowPane | | If this tag is set the container passed to the contribution is an FlowPane | ||
|- | |- | ||
Line 238: | Line 355: | ||
| tags | | tags | ||
| - | | - | ||
+ | | 0.9.0 | ||
| If this tag is set the container passed to the contribution is an GridPane | | If this tag is set the container passed to the contribution is an GridPane | ||
|- | |- | ||
Line 243: | Line 361: | ||
| tags | | tags | ||
| - | | - | ||
+ | | 0.9.0 | ||
| If this tag is set the container passed to the contribution is an HBox | | If this tag is set the container passed to the contribution is an HBox | ||
|- | |- | ||
Line 248: | Line 367: | ||
| tags | | tags | ||
| - | | - | ||
+ | | 0.9.0 | ||
| If this tag is set the container passed to the contribution is an StackPane | | If this tag is set the container passed to the contribution is an StackPane | ||
|- | |- | ||
Line 253: | Line 373: | ||
| tags | | tags | ||
| - | | - | ||
+ | | 0.9.0 | ||
| If this tag is set the container passed to the contribution is an VBox | | If this tag is set the container passed to the contribution is an VBox | ||
|- | |- | ||
Line 258: | Line 379: | ||
| tags | | tags | ||
| - | | - | ||
+ | | 0.9.0 | ||
| If this tag is set the container passed to the contribution is an org.eclipse.fx.ui.panes.FillLayoutPane | | If this tag is set the container passed to the contribution is an org.eclipse.fx.ui.panes.FillLayoutPane | ||
|- | |- | ||
Line 263: | Line 385: | ||
| tags | | tags | ||
| - | | - | ||
+ | | 0.9.0 | ||
| If this tag is set the container passed to the contribution is an org.eclipse.fx.ui.panes.GridLayoutPane | | If this tag is set the container passed to the contribution is an org.eclipse.fx.ui.panes.GridLayoutPane | ||
|- | |- | ||
Line 268: | Line 391: | ||
| tags | | tags | ||
| - | | - | ||
+ | | 0.9.0 | ||
| If this tag is set the container passed to the contribution is an org.eclipse.fx.ui.panes.RowLayoutPane | | If this tag is set the container passed to the contribution is an org.eclipse.fx.ui.panes.RowLayoutPane | ||
|- | |- | ||
Line 273: | Line 397: | ||
| tags | | tags | ||
| - | | - | ||
+ | | 0.9.0 | ||
| If this tag is set the container passed to the contribution is an org.eclipse.fx.ui.panes.SashLayoutPane | | If this tag is set the container passed to the contribution is an org.eclipse.fx.ui.panes.SashLayoutPane | ||
|- | |- | ||
Line 278: | Line 403: | ||
| tags | | tags | ||
| - | | - | ||
+ | | 0.9.0 | ||
| If this tag is set the container passed to the contribution is an instance of the class provided through the URL e.g. bundleclass://my.container/my.layout.Pane the contributed class has to be a subclass of javafx.scene.layout.Pane | | If this tag is set the container passed to the contribution is an instance of the class provided through the URL e.g. bundleclass://my.container/my.layout.Pane the contributed class has to be a subclass of javafx.scene.layout.Pane | ||
|} | |} | ||
Line 294: | Line 420: | ||
= None standard Services = | = None standard Services = | ||
− | == PopupMenuService == | + | == PopupMenuService (removed with 1.0.0) == |
− | The has the same feature as the EMenuService from e4 on SWT but because the service definition is found in a bundle which has a dependency on SWT we had to invent our own one | + | The has the same feature as the EMenuService from e4 on SWT but because the service definition is found in a bundle which has a dependency on SWT we had to invent our own one. |
+ | |||
+ | '''Since 1.0.0 you should use the EMenuService from the Eclipse Application Platform''' | ||
== ELifecycleService == | == ELifecycleService == | ||
Line 305: | Line 433: | ||
Those 2 services allow you to control how perspective transitions and window open/close transition are done. The renderes will look up the service from the MApplications IEclipseContext and if one available use it. | Those 2 services allow you to control how perspective transitions and window open/close transition are done. The renderes will look up the service from the MApplications IEclipseContext and if one available use it. | ||
+ | |||
+ | == DnDFeedbackService == | ||
+ | |||
+ | The feedback service is responsible to show the drag and drop feedback. If your are not happy with the default implementation provided simply contribute your custom version to the OSGi-Service registry with a ranking > 0 | ||
= Missing Features / Services = | = Missing Features / Services = | ||
Line 310: | Line 442: | ||
Some of the features implemented in e4 on SWT are not yet available in the JavaFX version. Due lack of time/funding and to some extend also due to features not yet available in JavaFX itself: | Some of the features implemented in e4 on SWT are not yet available in the JavaFX version. Due lack of time/funding and to some extend also due to features not yet available in JavaFX itself: | ||
* MinMax support: There's feature request in bugzilla [https://bugs.eclipse.org/bugs/show_bug.cgi?id=409340] but there've not been enough time yet to implement it. | * MinMax support: There's feature request in bugzilla [https://bugs.eclipse.org/bugs/show_bug.cgi?id=409340] but there've not been enough time yet to implement it. | ||
− | * DnD support: | + | * DnD support: With e(fx)clipse 1.2 support to rearrange the UI was added although JavaFX by default does not supports it [https://javafx-jira.kenai.com/browse/RT-31574] compared to SWT support for detaching views using DnD is still missing. |
In case you miss a feature from SWT and/or you have an idea of a new feature file bug reports and link them in this section. We'll do our best to get features in but can promise unless you decide to fund the implementation | In case you miss a feature from SWT and/or you have an idea of a new feature file bug reports and link them in this section. We'll do our best to get features in but can promise unless you decide to fund the implementation |
Revision as of 19:04, 30 March 2015
General
Rendering Tags
Some of the model elements can be enhanced with special kind of values to influence the renderers to provide behavior very specific zu JavaFX
MUIElement
The renderes translate the following stuff in CSS-Selectors
-
MApplicationElement#elementId
is translated to the an id-selector (dots are replaced by - e.g.my.app.window
is translated to #my-app-window) - Model-Element-Classname (
MPart
,MWindow
,MTrimmedWindow
) is translated to a class-selector (.MPart
,.MWindow
,.MTrimmedWindow
) - Tags starting with
efx_styleclass:${name}
are translated to class-selectors e.g.efx_styleclass:MyHome
is translated to.MyHome
MWindow
Title | Slot | Value | Since | Description |
---|---|---|---|---|
efx.window.scene.3d | persistedState | boolean | 0.9.0 | If you want to enable depthBuffering in your the windows scene you should pass true here |
efx.window.decoration.fxml | persistedState | url | 0.9.0 | In case you want to show a custom window decoration you should pass an URL to a fxml-File to be used |
efx.window.undecorated (DEPRECATED) | persistedState | boolean | 0.9.0 | DEPRECATED If you want the stage representing the window created with out any StageStyle.UNDECORATED you should pass true for it. Use 'efx.window.stagestyle' |
efx.window.stagestyle | persistedState | String (one of the value in javafx.stage.StageStyle) | 1.0.0 | Allows you to define the stage-style to use Stage.initStyle. The allowed values are those defined in javafx.stage.StageStyle |
efx.window.fullscreen | persistedState | boolean | 0.9.0 | If set puts the stage into a window into fullscreen mode |
shellMaximized | tags | - | 1.0.0 | This tag is provided for SWT-Renderer compability |
MPartSashContainer
Title | Slot | Value | Since | Description |
---|---|---|---|---|
fx_fixedLayout | tags | - | 0.9.0 | If you add this tag to a MPartSashContainer it will be rendered using a fixed layout (it isn't a Sash anymore but uses a LayoutPane) |
MPartSashContainerElement
Title | Slot | Value | Since | Description |
---|---|---|---|---|
fx_layout_width | persistedState | double | 0.9.0 | The value is an absolute width this widget will use in the parent (MPartSashContainer tagged with "fx_fixedLayout") |
fx_layout_height | persistedState | double | 0.9.0 | The value is an absolute height this widget will use in the parent (MPartSashContainer tagged with "fx_fixedLayout") |
fx_layout_grab_horizontal | persistedState | boolean | 0.9.0 | If set to true the element grabs all free horizontal space (MPartSashContainer tagged with "fx_fixedLayout") |
fx_layout_grab_vertical | persistedState | boolean | 0.9.0 | If set to true the element grabs all free vertical space (MPartSashContainer tagged with "fx_fixedLayout") |
MPart
By default the container injected in javafx.scene.layout.BorderPane
instance
Title | Slot | Value | Since | Description |
---|---|---|---|---|
Part-Toolbar-FullSpan | tags | - | 0.9.0 | If this tag is added to the MPart the toolbar is spanning the complete width of the part |
Part-ToolBarMenu-Floating | tags | - | 0.9.0 | If this tag is added to the MPart the toolbar is floating above the parts content and can be collapsed |
Part-ToolBarMenu-Bottom | tags | - | 0.9.0 | If this tag is added to the MPart the toolbar is rendered at the bottom instead of the top |
Lifecycle URL | tags | EFX_LC:$URL$ | 0.9.0 | If you add a tag starting with EFX_LC: and an URL like e.g. bundleclass://my.bundle/my.lifecycle.Handler the methods @PreShow and @PreClose will be called at the appropriate time |
Container:AnchorPane | tags | - | 0.9.0 | If this tag is set the container passed to the contribution is an AnchorPane |
Container:FlowPane | tags | - | 0.9.0 | If this tag is set the container passed to the contribution is an FlowPane |
Container:GridPane | tags | - | 0.9.0 | If this tag is set the container passed to the contribution is an GridPane |
Container:HBox | tags | - | 0.9.0 | If this tag is set the container passed to the contribution is an HBox |
Container:StackPane | tags | - | 0.9.0 | If this tag is set the container passed to the contribution is an StackPane |
Container:VBox | tags | - | 0.9.0 | If this tag is set the container passed to the contribution is an VBox |
Container:FillLayoutPane | tags | - | 0.9.0 | If this tag is set the container passed to the contribution is an org.eclipse.fx.ui.panes.FillLayoutPane |
Container:GridLayoutPane | tags | - | 0.9.0 | If this tag is set the container passed to the contribution is an org.eclipse.fx.ui.panes.GridLayoutPane |
Container:RowLayoutPane | tags | - | 0.9.0 | If this tag is set the container passed to the contribution is an org.eclipse.fx.ui.panes.RowLayoutPane |
Container:SashLayoutPane | tags | - | 0.9.0 | If this tag is set the container passed to the contribution is an org.eclipse.fx.ui.panes.SashLayoutPane |
Container:UrlPane:$URL$ | tags | - | 0.9.0 | If this tag is set the container passed to the contribution is an instance of the class provided through the URL e.g. bundleclass://my.container/my.layout.Pane the contributed class has to be a subclass of javafx.scene.layout.Pane |
MToolItem
Title | Slot | Value | Since | Description |
---|---|---|---|---|
fx_checkbox | tags | - | 0.9.0 | If the ItemType is CHECKBOX and the tag is used a real checkbox is used (by default it is a toggle-button) |
MTrimElement
Title | Slot | Value | Since | Description |
---|---|---|---|---|
fillspace | tags | - | 0.9.0 | If this tag is added to the MTrimElement it will fill the remaining space in the trim |
MPartStack
Title | Slot | Value | Since | Description |
---|---|---|---|---|
fx_pagination | tags | - | 0.9.0 | If this tag is added to the MPartStack it will be rendered using a pagination control instead of a TabFolder |
fx_tab_closing_policy_unavailable | tags | - | 1.1.0 | If this tag is added to the MPartStack the tab pane will not have a close button, therefore it will not be possible to close part ( see: http://docs.oracle.com/javafx/2/api/javafx/scene/control/TabPane.TabClosingPolicy.html ) |
fx_tab_closing_policy_selectedTab | tags | - | 1.1.0 | If this tag is added to the MPartStack only the selected tab will have a close button ( see: http://docs.oracle.com/javafx/2/api/javafx/scene/control/TabPane.TabClosingPolicy.html ) |
fx_tab_closing_policy_allTabs | tags | - | 1.1.0 | If this tag is added to the MPartStack all the tabs on the tab pan will have close buttons ( see: http://docs.oracle.com/javafx/2/api/javafx/scene/control/TabPane.TabClosingPolicy.html ) |
MPerspective
Title | Slot | Value | Since | Description |
---|---|---|---|---|
Lifecycle URL | tags | EFX_LC:$URL$ | 0.9.0 | If you add a tag starting with EFX_LC: and an URL like e.g. bundleclass://my.bundle/my.lifecycle.Handler the methods @PreShow and @PreClose will be called at the appropriate time |
MMenuBar
Title | Slot | Value | Since | Description |
---|---|---|---|---|
fx.menubar.native | persistedState | boolean | 0.9.0 | If you set this persistedState key to true the menubar will be renderer as a native OS-X menubar. WARNING currently this only works reliably when you have a one window application |
MMenu
Title | Slot | Value | Since | Description |
---|---|---|---|---|
Lifecycle URL | tags | EFX_LC:$URL$ | 0.9.0 | If you add a tag starting with EFX_LC: and an URL like e.g. bundleclass://my.bundle/my.lifecycle.Handler the methods @PreShow and @PreClose will be called at the appropriate time |
MToolControl
By default the container injected in javafx.scene.Group
instance
Title | Slot | Value | Since | Description |
---|---|---|---|---|
Container:AnchorPane | tags | - | 0.9.0 | If this tag is set the container passed to the contribution is an AnchorPane |
Container:FlowPane | tags | - | 0.9.0 | If this tag is set the container passed to the contribution is an FlowPane |
Container:GridPane | tags | - | 0.9.0 | If this tag is set the container passed to the contribution is an GridPane |
Container:HBox | tags | - | 0.9.0 | If this tag is set the container passed to the contribution is an HBox |
Container:StackPane | tags | - | 0.9.0 | If this tag is set the container passed to the contribution is an StackPane |
Container:VBox | tags | - | 0.9.0 | If this tag is set the container passed to the contribution is an VBox |
Container:FillLayoutPane | tags | - | 0.9.0 | If this tag is set the container passed to the contribution is an org.eclipse.fx.ui.panes.FillLayoutPane |
Container:GridLayoutPane | tags | - | 0.9.0 | If this tag is set the container passed to the contribution is an org.eclipse.fx.ui.panes.GridLayoutPane |
Container:RowLayoutPane | tags | - | 0.9.0 | If this tag is set the container passed to the contribution is an org.eclipse.fx.ui.panes.RowLayoutPane |
Container:SashLayoutPane | tags | - | 0.9.0 | If this tag is set the container passed to the contribution is an org.eclipse.fx.ui.panes.SashLayoutPane |
Container:UrlPane:$URL$ | tags | - | 0.9.0 | If this tag is set the container passed to the contribution is an instance of the class provided through the URL e.g. bundleclass://my.container/my.layout.Pane the contributed class has to be a subclass of javafx.scene.layout.Pane |
Lifecycle
Certain renderers based on the efxclipse generic ones support the idea of a lifecycle (Show/Hide/...). We decided no to introduce a new mixin ourselves to support the lifecycle for now but abuse the tags for it because we expect to work with the upstream project on a general solution. Currently the following renderers support lifecycle:
- MMenu
- MPerspective
- MPart
There are 2 ways to register a lifecycle:
- declartive via e4xmi: by adding a tag to the element which starts with EFX_LC: followed by a URL to the lifecycle class
- programmaticall via ELifecycleService: Grab the service and register an lifecylce class using the same URL you'd have used for the tag
None standard Services
PopupMenuService (removed with 1.0.0)
The has the same feature as the EMenuService from e4 on SWT but because the service definition is found in a bundle which has a dependency on SWT we had to invent our own one.
Since 1.0.0 you should use the EMenuService from the Eclipse Application Platform
ELifecycleService
Allows to register/unregister lifecycle handlers on model elements
PerspectiveTransitionService / WindowTransitionService
Those 2 services allow you to control how perspective transitions and window open/close transition are done. The renderes will look up the service from the MApplications IEclipseContext and if one available use it.
DnDFeedbackService
The feedback service is responsible to show the drag and drop feedback. If your are not happy with the default implementation provided simply contribute your custom version to the OSGi-Service registry with a ranking > 0
Missing Features / Services
Some of the features implemented in e4 on SWT are not yet available in the JavaFX version. Due lack of time/funding and to some extend also due to features not yet available in JavaFX itself:
- MinMax support: There's feature request in bugzilla [1] but there've not been enough time yet to implement it.
- DnD support: With e(fx)clipse 1.2 support to rearrange the UI was added although JavaFX by default does not supports it [2] compared to SWT support for detaching views using DnD is still missing.
In case you miss a feature from SWT and/or you have an idea of a new feature file bug reports and link them in this section. We'll do our best to get features in but can promise unless you decide to fund the implementation