diff options
author | Nathalie Lepine | 2015-03-05 09:47:00 +0000 |
---|---|---|
committer | Nathalie Lepine | 2015-03-05 09:48:49 +0000 |
commit | 7b4dba1d8345d988d474a91985c5cb8a99fc7ff2 (patch) | |
tree | 37057caf18d30be28583e51951fc8b95002cd80b | |
parent | 1abe5587c5408f6de10e4f11ef10a0f5e5724813 (diff) | |
download | org.eclipse.eef-7b4dba1d8345d988d474a91985c5cb8a99fc7ff2.tar.gz org.eclipse.eef-7b4dba1d8345d988d474a91985c5cb8a99fc7ff2.tar.xz org.eclipse.eef-7b4dba1d8345d988d474a91985c5cb8a99fc7ff2.zip |
fix init editing model in wizard
fix item providers for editor new child descritors
init ecombo and single containment editor if they already have a value
add Form JDT widget
add editing model view for PropertyBinding
17 files changed, 712 insertions, 448 deletions
diff --git a/plugins/org.eclipse.emf.eef.editor/models/editingModel.editingmodel b/plugins/org.eclipse.emf.eef.editor/models/editingModel.editingmodel index 93c799572..f94a8d2d1 100644 --- a/plugins/org.eclipse.emf.eef.editor/models/editingModel.editingmodel +++ b/plugins/org.eclipse.emf.eef.editor/models/editingModel.editingmodel @@ -1,179 +1,209 @@ -<?xml version="1.0" encoding="UTF-8"?> -<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:eef-model="http://www.eclipse.org/emf/eef/editingmodel/1.0.0" xmlns:eef-query="http://www.eclipse.org/emf/eef/query/1.0" xmlns:eef-views="http://www.eclipse.org/emf/eef/views/1.0.0"> - <eef-model:PropertiesEditingModel name="EditingModel of the EditingModel model" id="org.eclipse.emf.eef.runtime.EditingModel"> - <bindings> - <eClass href="platform:/plugin/org.eclipse.emf.eef.runtime/model/editingModel.ecore#//EClassBinding"/> - <views xsi:type="eef-model:EObjectView" definition="/1/@views.0"/> - <propertyBindings xsi:type="eef-model:EStructuralFeatureBinding"> - <feature xsi:type="ecore:EReference" href="platform:/plugin/org.eclipse.emf.eef.runtime/model/editingModel.ecore#//EClassBinding/eClass"/> - <editor xsi:type="eef-model:EObjectEditor" definition="/1/@views.0/@elements.0"/> - </propertyBindings> - <propertyBindings xsi:type="eef-model:EStructuralFeatureBinding"> - <feature xsi:type="ecore:EReference" href="platform:/plugin/org.eclipse.emf.eef.runtime/model/editingModel.ecore#//EClassBinding/views"/> - <editor xsi:type="eef-model:EObjectEditor" definition="/1/@views.0/@elements.1"/> - </propertyBindings> - </bindings> - <bindings> - <eClass href="platform:/plugin/org.eclipse.emf.eef.runtime/model/editingModel.ecore#//PropertiesEditingModel"/> - <views xsi:type="eef-model:EObjectView" definition="/1/@views.1"/> - <propertyBindings xsi:type="eef-model:EStructuralFeatureBinding"> - <feature xsi:type="ecore:EAttribute" href="platform:/plugin/org.eclipse.emf.eef.runtime/model/editingModel.ecore#//PropertiesEditingModel/id"/> - <editor xsi:type="eef-model:EObjectEditor" definition="/1/@views.1/@elements.0/@elements.0"/> - </propertyBindings> - <propertyBindings xsi:type="eef-model:EStructuralFeatureBinding"> - <feature xsi:type="ecore:EAttribute" href="platform:/plugin/org.eclipse.emf.eef.runtime/model/editingModel.ecore#//PropertiesEditingModel/name"/> - <editor xsi:type="eef-model:EObjectEditor" definition="/1/@views.1/@elements.0/@elements.1"/> - </propertyBindings> - <propertyBindings xsi:type="eef-model:EStructuralFeatureBinding"> - <feature xsi:type="ecore:EReference" href="platform:/plugin/org.eclipse.emf.eef.runtime/model/editingModel.ecore#//PropertiesEditingModel/involvedModels"/> - <editor xsi:type="eef-model:EObjectEditor" definition="/1/@views.1/@elements.0/@elements.2"/> - </propertyBindings> - </bindings> - <bindings> - <eClass href="platform:/plugin/org.eclipse.emf.eef.runtime/model/editingModel.ecore#//EObjectView"/> - <views xsi:type="eef-model:EObjectView" definition="/1/@views.2"/> - <propertyBindings xsi:type="eef-model:EStructuralFeatureBinding"> - <feature xsi:type="ecore:EReference" href="platform:/plugin/org.eclipse.emf.eef.runtime/model/editingModel.ecore#//EObjectView/definition"/> - <editor xsi:type="eef-model:EObjectEditor" definition="/1/@views.2/@elements.0"/> - </propertyBindings> - </bindings> - <bindings> - <eClass href="platform:/plugin/org.eclipse.emf.eef.runtime/model/editingModel.ecore#//EStructuralFeatureBinding"/> - <views xsi:type="eef-model:EObjectView" definition="/1/@views.3"/> - <views xsi:type="eef-model:EObjectView" definition="/1/@views.6"/> - <views xsi:type="eef-model:EObjectView" definition="/1/@views.5"/> - <propertyBindings xsi:type="eef-model:EStructuralFeatureBinding"> - <feature xsi:type="ecore:EReference" href="platform:/plugin/org.eclipse.emf.eef.runtime/model/editingModel.ecore#//EStructuralFeatureBinding/feature"/> - <editor xsi:type="eef-model:EObjectEditor" definition="/1/@views.3/@elements.0"/> - <settings xsi:type="eef-model:EReferenceFilter"> - <body xsi:type="eef-query:JavaBody" qualifiedClass="org.eclipse.emf.eef.editor.internal.filters.PropertyBindingFilter" method="bindableFeature"/> - </settings> - </propertyBindings> - <propertyBindings xsi:type="eef-model:EStructuralFeatureBinding"> - <feature xsi:type="ecore:EReference" href="platform:/plugin/org.eclipse.emf.eef.runtime/model/editingModel.ecore#//PropertyBinding/editor"/> - <editor xsi:type="eef-model:EObjectEditor" definition="/1/@views.3/@elements.1"/> - </propertyBindings> - <propertyBindings xsi:type="eef-model:EStructuralFeatureBinding"> - <feature xsi:type="ecore:EReference" href="platform:/plugin/org.eclipse.emf.eef.runtime/model/editingModel.ecore#//PropertyBinding/subPropertyBindings"/> - <editor xsi:type="eef-model:EObjectEditor" definition="/1/@views.5/@elements.0"/> - </propertyBindings> - <propertyBindings xsi:type="eef-model:EStructuralFeatureBinding"> - <feature xsi:type="ecore:EReference" href="platform:/plugin/org.eclipse.emf.eef.runtime/model/editingModel.ecore#//PropertyBinding/settings"/> - <editor xsi:type="eef-model:EObjectEditor" definition="/1/@views.6/@elements.0"/> - </propertyBindings> - </bindings> - <bindings> - <eClass href="platform:/plugin/org.eclipse.emf.eef.runtime/model/editingModel.ecore#//EObjectEditor"/> - <views xsi:type="eef-model:EObjectView" definition="/1/@views.4"/> - <propertyBindings xsi:type="eef-model:EStructuralFeatureBinding"> - <feature xsi:type="ecore:EReference" href="platform:/plugin/org.eclipse.emf.eef.runtime/model/editingModel.ecore#//EObjectEditor/definition"/> - <editor xsi:type="eef-model:EObjectEditor" definition="/1/@views.4/@elements.0"/> - <settings xsi:type="eef-model:EReferenceFilter"> - <body xsi:type="eef-query:JavaBody" qualifiedClass="org.eclipse.emf.eef.editor.internal.filters.EObjectEditorFilter" method="bindableEditor"/> - </settings> - </propertyBindings> - </bindings> - <bindings> - <eClass href="platform:/plugin/org.eclipse.emf.eef.runtime/model/editingModel.ecore#//EReferenceFilter"/> - <views xsi:type="eef-model:EObjectView" definition="/1/@views.8"/> - <propertyBindings xsi:type="eef-model:EStructuralFeatureBinding"> - <feature xsi:type="ecore:EReference" href="platform:/plugin/org.eclipse.emf.eef.runtime/model/query.ecore#//Query/body"/> - <editor xsi:type="eef-model:EObjectEditor" definition="/1/@views.8/@elements.0"/> - </propertyBindings> - </bindings> - <bindings> - <eClass href="platform:/plugin/org.eclipse.emf.eef.runtime/model/query.ecore#//JavaBody"/> - <views xsi:type="eef-model:EObjectView" definition="/1/@views.7"/> - <propertyBindings xsi:type="eef-model:EStructuralFeatureBinding"> - <feature xsi:type="ecore:EAttribute" href="platform:/plugin/org.eclipse.emf.eef.runtime/model/query.ecore#//JavaBody/qualifiedClass"/> - <editor xsi:type="eef-model:EObjectEditor" definition="/1/@views.7/@elements.0/@elements.0"/> - </propertyBindings> - <propertyBindings xsi:type="eef-model:EStructuralFeatureBinding"> - <feature xsi:type="ecore:EAttribute" href="platform:/plugin/org.eclipse.emf.eef.runtime/model/query.ecore#//JavaBody/method"/> - <editor xsi:type="eef-model:EObjectEditor" definition="/1/@views.7/@elements.1/@elements.0"/> - </propertyBindings> - <propertyBindings xsi:type="eef-model:EStructuralFeatureBinding"> - <feature xsi:type="ecore:EAttribute" href="platform:/plugin/org.eclipse.emf.eef.runtime/model/query.ecore#//JavaBody/static"/> - <editor xsi:type="eef-model:EObjectEditor" definition="/1/@views.7/@elements.1/@elements.1"/> - </propertyBindings> - </bindings> - <involvedModels href="platform:/plugin/org.eclipse.emf.eef.runtime/model/editingModel.genmodel#/"/> - <involvedModels href="platform:/plugin/org.eclipse.emf.eef.runtime/model/editingModel.ecore#/"/> - <involvedModels href="platform:/plugin/org.eclipse.emf.eef.runtime/model/query.genmodel#/"/> - <involvedModels href="platform:/plugin/org.eclipse.emf.eef.runtime/model/query.ecore#/"/> - </eef-model:PropertiesEditingModel> - <eef-views:ViewsRepository name="editingModel"> - <views name="Binding"> - <elements xsi:type="eef-views:ElementEditor" name="eClass"> - <representation href="eeftoolkit:/org.eclipse.emf.eef.runtime.ui.swt/org.eclipse.emf.eef.runtime.ui.swt.view.propertyeditors.impl.emfpropertiestoolkit.EMFPropertiesToolkit#//@widgets.1"/> - </elements> - <elements xsi:type="eef-views:ElementEditor" name="views"> - <representation href="eeftoolkit:/org.eclipse.emf.eef.runtime.ui.swt/org.eclipse.emf.eef.runtime.ui.swt.view.propertyeditors.impl.emfpropertiestoolkit.EMFPropertiesToolkit#//@widgets.2"/> - </elements> - </views> - <views name="Editing Model"> - <elements xsi:type="eef-views:Container" name="Editing Model"> - <representation href="eeftoolkit:/org.eclipse.emf.eef.runtime.ui.swt/org.eclipse.emf.eef.runtime.ui.swt.view.propertyeditors.impl.swttoolkit.SWTToolkit#//@widgets.2"/> - <elements xsi:type="eef-views:ElementEditor" name="id"> - <representation href="eeftoolkit:/org.eclipse.emf.eef.runtime.ui.swt/org.eclipse.emf.eef.runtime.ui.swt.view.propertyeditors.impl.swttoolkit.SWTToolkit#//@widgets.0"/> - </elements> - <elements xsi:type="eef-views:ElementEditor" name="name"> - <representation href="eeftoolkit:/org.eclipse.emf.eef.runtime.ui.swt/org.eclipse.emf.eef.runtime.ui.swt.view.propertyeditors.impl.swttoolkit.SWTToolkit#//@widgets.0"/> - </elements> - <elements xsi:type="eef-views:ElementEditor" name="Involved Models"> - <representation href="eeftoolkit:/org.eclipse.emf.eef.runtime.ui.swt/org.eclipse.emf.eef.runtime.ui.swt.view.propertyeditors.impl.emfpropertiestoolkit.EMFPropertiesToolkit#//@widgets.0"/> - </elements> - </elements> - </views> - <views name="EObjectView"> - <elements xsi:type="eef-views:ElementEditor" name="definition"> - <representation href="eeftoolkit:/org.eclipse.emf.eef.runtime.ui.swt/org.eclipse.emf.eef.runtime.ui.swt.view.propertyeditors.impl.emfpropertiestoolkit.EMFPropertiesToolkit#//@widgets.1"/> - </elements> - </views> - <views name="Property Binding"> - <elements xsi:type="eef-views:ElementEditor" name="feature"> - <representation href="eeftoolkit:/org.eclipse.emf.eef.runtime.ui.swt/org.eclipse.emf.eef.runtime.ui.swt.view.propertyeditors.impl.emfpropertiestoolkit.EMFPropertiesToolkit#//@widgets.1"/> - </elements> - <elements xsi:type="eef-views:ElementEditor" name="Editor"> - <representation href="eeftoolkit:/org.eclipse.emf.eef.runtime.ui.swt/org.eclipse.emf.eef.runtime.ui.swt.view.propertyeditors.impl.emfpropertiestoolkit.EMFPropertiesToolkit#//@widgets.4"/> - </elements> - </views> - <views name="EObjectEditor"> - <elements xsi:type="eef-views:ElementEditor" name="definition"> - <representation href="eeftoolkit:/org.eclipse.emf.eef.runtime.ui.swt/org.eclipse.emf.eef.runtime.ui.swt.view.propertyeditors.impl.emfpropertiestoolkit.EMFPropertiesToolkit#//@widgets.1"/> - </elements> - </views> - <views name="Subbindings"> - <elements xsi:type="eef-views:ElementEditor" name="subbindings"> - <representation href="eeftoolkit:/org.eclipse.emf.eef.runtime.ui.swt/org.eclipse.emf.eef.runtime.ui.swt.view.propertyeditors.impl.emfpropertiestoolkit.EMFPropertiesToolkit#//@widgets.2"/> - </elements> - </views> - <views name="Settings"> - <elements xsi:type="eef-views:ElementEditor" name="settings"> - <representation href="eeftoolkit:/org.eclipse.emf.eef.runtime.ui.swt/org.eclipse.emf.eef.runtime.ui.swt.view.propertyeditors.impl.emfpropertiestoolkit.EMFPropertiesToolkit#//@widgets.2"/> - </elements> - </views> - <views name="JavaBody"> - <elements xsi:type="eef-views:Container" name="Class"> - <representation href="eeftoolkit:/org.eclipse.emf.eef.runtime.ui.swt/org.eclipse.emf.eef.runtime.ui.swt.view.propertyeditors.impl.swttoolkit.SWTToolkit#//@widgets.2"/> - <elements xsi:type="eef-views:ElementEditor" name="Qualified Class"> - <representation href="eeftoolkit:/org.eclipse.emf.eef.runtime.ui.jdt/org.eclipse.emf.eef.runtime.ui.jdt.jdttoolkit.JDTToolkit#//@widgets.0"/> - </elements> - </elements> - <elements xsi:type="eef-views:Container" name="Method"> - <representation href="eeftoolkit:/org.eclipse.emf.eef.runtime.ui.swt/org.eclipse.emf.eef.runtime.ui.swt.view.propertyeditors.impl.swttoolkit.SWTToolkit#//@widgets.2"/> - <elements xsi:type="eef-views:ElementEditor" name="method"> - <representation href="eeftoolkit:/org.eclipse.emf.eef.runtime.ui.swt/org.eclipse.emf.eef.runtime.ui.swt.view.propertyeditors.impl.swttoolkit.SWTToolkit#//@widgets.0"/> - </elements> - <elements xsi:type="eef-views:ElementEditor" name="static"> - <representation href="eeftoolkit:/org.eclipse.emf.eef.runtime.ui.swt/org.eclipse.emf.eef.runtime.ui.swt.view.propertyeditors.impl.swttoolkit.SWTToolkit#//@widgets.1"/> - </elements> - </elements> - </views> - <views name="EReferenceFilter"> - <elements xsi:type="eef-views:ElementEditor" name="body"> - <representation href="eeftoolkit:/org.eclipse.emf.eef.runtime.ui.swt/org.eclipse.emf.eef.runtime.ui.swt.view.propertyeditors.impl.emfpropertiestoolkit.EMFPropertiesToolkit#//@widgets.4"/> - </elements> - </views> - </eef-views:ViewsRepository> -</xmi:XMI> +<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:eef-model="http://www.eclipse.org/emf/eef/editingmodel/1.0.0" xmlns:eef-query="http://www.eclipse.org/emf/eef/query/1.0" xmlns:eef-views="http://www.eclipse.org/emf/eef/views/1.0.0">
+ <eef-model:PropertiesEditingModel name="EditingModel of the EditingModel model" id="org.eclipse.emf.eef.runtime.EditingModel">
+ <bindings>
+ <eClass href="platform:/plugin/org.eclipse.emf.eef.runtime/model/editingModel.ecore#//EClassBinding"/>
+ <views xsi:type="eef-model:EObjectView" definition="/1/@views.0"/>
+ <propertyBindings xsi:type="eef-model:EStructuralFeatureBinding">
+ <editor xsi:type="eef-model:EObjectEditor" definition="/1/@views.0/@elements.0"/>
+ <feature xsi:type="ecore:EReference" href="platform:/plugin/org.eclipse.emf.eef.runtime/model/editingModel.ecore#//EClassBinding/eClass"/>
+ </propertyBindings>
+ <propertyBindings xsi:type="eef-model:EStructuralFeatureBinding">
+ <editor xsi:type="eef-model:EObjectEditor" definition="/1/@views.0/@elements.1"/>
+ <feature xsi:type="ecore:EReference" href="platform:/plugin/org.eclipse.emf.eef.runtime/model/editingModel.ecore#//EClassBinding/views"/>
+ </propertyBindings>
+ </bindings>
+ <bindings>
+ <eClass href="platform:/plugin/org.eclipse.emf.eef.runtime/model/editingModel.ecore#//PropertiesEditingModel"/>
+ <views xsi:type="eef-model:EObjectView" definition="/1/@views.1"/>
+ <propertyBindings xsi:type="eef-model:EStructuralFeatureBinding">
+ <editor xsi:type="eef-model:EObjectEditor" definition="/1/@views.1/@elements.0/@elements.0"/>
+ <feature xsi:type="ecore:EAttribute" href="platform:/plugin/org.eclipse.emf.eef.runtime/model/editingModel.ecore#//PropertiesEditingModel/id"/>
+ </propertyBindings>
+ <propertyBindings xsi:type="eef-model:EStructuralFeatureBinding">
+ <editor xsi:type="eef-model:EObjectEditor" definition="/1/@views.1/@elements.0/@elements.1"/>
+ <feature xsi:type="ecore:EAttribute" href="platform:/plugin/org.eclipse.emf.eef.runtime/model/editingModel.ecore#//PropertiesEditingModel/name"/>
+ </propertyBindings>
+ <propertyBindings xsi:type="eef-model:EStructuralFeatureBinding">
+ <editor xsi:type="eef-model:EObjectEditor" definition="/1/@views.1/@elements.0/@elements.2"/>
+ <feature xsi:type="ecore:EReference" href="platform:/plugin/org.eclipse.emf.eef.runtime/model/editingModel.ecore#//PropertiesEditingModel/involvedModels"/>
+ </propertyBindings>
+ </bindings>
+ <bindings>
+ <eClass href="platform:/plugin/org.eclipse.emf.eef.runtime/model/editingModel.ecore#//EObjectView"/>
+ <views xsi:type="eef-model:EObjectView" definition="/1/@views.2"/>
+ <propertyBindings xsi:type="eef-model:EStructuralFeatureBinding">
+ <editor xsi:type="eef-model:EObjectEditor" definition="/1/@views.2/@elements.0"/>
+ <feature xsi:type="ecore:EReference" href="platform:/plugin/org.eclipse.emf.eef.runtime/model/editingModel.ecore#//EObjectView/definition"/>
+ </propertyBindings>
+ </bindings>
+ <bindings>
+ <eClass href="platform:/plugin/org.eclipse.emf.eef.runtime/model/editingModel.ecore#//EStructuralFeatureBinding"/>
+ <views xsi:type="eef-model:EObjectView" definition="/1/@views.3"/>
+ <views xsi:type="eef-model:EObjectView" definition="/1/@views.6"/>
+ <views xsi:type="eef-model:EObjectView" definition="/1/@views.5"/>
+ <propertyBindings xsi:type="eef-model:EStructuralFeatureBinding">
+ <editor xsi:type="eef-model:EObjectEditor" definition="/1/@views.3/@elements.0"/>
+ <settings xsi:type="eef-model:EReferenceFilter">
+ <body xsi:type="eef-query:JavaBody" qualifiedClass="org.eclipse.emf.eef.editor.internal.filters.PropertyBindingFilter" method="bindableFeature"/>
+ </settings>
+ <feature xsi:type="ecore:EReference" href="platform:/plugin/org.eclipse.emf.eef.runtime/model/editingModel.ecore#//EStructuralFeatureBinding/feature"/>
+ </propertyBindings>
+ <propertyBindings xsi:type="eef-model:EStructuralFeatureBinding">
+ <editor xsi:type="eef-model:EObjectEditor" definition="/1/@views.3/@elements.1"/>
+ <feature xsi:type="ecore:EReference" href="platform:/plugin/org.eclipse.emf.eef.runtime/model/editingModel.ecore#//PropertyBinding/editor"/>
+ </propertyBindings>
+ <propertyBindings xsi:type="eef-model:EStructuralFeatureBinding">
+ <editor xsi:type="eef-model:EObjectEditor" definition="/1/@views.5/@elements.0"/>
+ <feature xsi:type="ecore:EReference" href="platform:/plugin/org.eclipse.emf.eef.runtime/model/editingModel.ecore#//PropertyBinding/subPropertyBindings"/>
+ </propertyBindings>
+ <propertyBindings xsi:type="eef-model:EStructuralFeatureBinding">
+ <editor xsi:type="eef-model:EObjectEditor" definition="/1/@views.6/@elements.0"/>
+ <feature xsi:type="ecore:EReference" href="platform:/plugin/org.eclipse.emf.eef.runtime/model/editingModel.ecore#//PropertyBinding/settings"/>
+ </propertyBindings>
+ </bindings>
+ <bindings>
+ <eClass href="platform:/plugin/org.eclipse.emf.eef.runtime/model/editingModel.ecore#//EObjectEditor"/>
+ <views xsi:type="eef-model:EObjectView" definition="/1/@views.4"/>
+ <propertyBindings xsi:type="eef-model:EStructuralFeatureBinding">
+ <editor xsi:type="eef-model:EObjectEditor" definition="/1/@views.4/@elements.0"/>
+ <settings xsi:type="eef-model:EReferenceFilter">
+ <body xsi:type="eef-query:JavaBody" qualifiedClass="org.eclipse.emf.eef.editor.internal.filters.EObjectEditorFilter" method="bindableEditor"/>
+ </settings>
+ <feature xsi:type="ecore:EReference" href="platform:/plugin/org.eclipse.emf.eef.runtime/model/editingModel.ecore#//EObjectEditor/definition"/>
+ </propertyBindings>
+ </bindings>
+ <bindings>
+ <eClass href="platform:/plugin/org.eclipse.emf.eef.runtime/model/editingModel.ecore#//EReferenceFilter"/>
+ <views xsi:type="eef-model:EObjectView" definition="/1/@views.8"/>
+ <propertyBindings xsi:type="eef-model:EStructuralFeatureBinding">
+ <editor xsi:type="eef-model:EObjectEditor" definition="/1/@views.8/@elements.0"/>
+ <feature xsi:type="ecore:EReference" href="platform:/plugin/org.eclipse.emf.eef.runtime/model/query.ecore#//Query/body"/>
+ </propertyBindings>
+ </bindings>
+ <bindings>
+ <eClass href="platform:/plugin/org.eclipse.emf.eef.runtime/model/query.ecore#//JavaBody"/>
+ <views xsi:type="eef-model:EObjectView" definition="/1/@views.7"/>
+ <propertyBindings xsi:type="eef-model:EStructuralFeatureBinding">
+ <editor xsi:type="eef-model:EObjectEditor" definition="/1/@views.7/@elements.0/@elements.0"/>
+ <feature xsi:type="ecore:EAttribute" href="platform:/plugin/org.eclipse.emf.eef.runtime/model/query.ecore#//JavaBody/qualifiedClass"/>
+ </propertyBindings>
+ <propertyBindings xsi:type="eef-model:EStructuralFeatureBinding">
+ <editor xsi:type="eef-model:EObjectEditor" definition="/1/@views.7/@elements.1/@elements.0"/>
+ <feature xsi:type="ecore:EAttribute" href="platform:/plugin/org.eclipse.emf.eef.runtime/model/query.ecore#//JavaBody/method"/>
+ </propertyBindings>
+ <propertyBindings xsi:type="eef-model:EStructuralFeatureBinding">
+ <editor xsi:type="eef-model:EObjectEditor" definition="/1/@views.7/@elements.1/@elements.1"/>
+ <feature xsi:type="ecore:EAttribute" href="platform:/plugin/org.eclipse.emf.eef.runtime/model/query.ecore#//JavaBody/static"/>
+ </propertyBindings>
+ </bindings>
+ <bindings>
+ <eClass href="platform:/plugin/org.eclipse.emf.eef.runtime/model/editingModel.ecore#//PropertyBinding"/>
+ <views xsi:type="eef-model:EObjectView" definition="/1/@views.9"/>
+ <views xsi:type="eef-model:EObjectView" definition="/1/@views.6"/>
+ <views xsi:type="eef-model:EObjectView" definition="/1/@views.5"/>
+ <propertyBindings xsi:type="eef-model:EStructuralFeatureBinding">
+ <editor xsi:type="eef-model:EObjectEditor" definition="/1/@views.9/@elements.0"/>
+ <feature xsi:type="ecore:EAttribute" href="platform:/plugin/org.eclipse.emf.eef.runtime/model/editingModel.ecore#//PropertyBinding/bindingCustomizer"/>
+ </propertyBindings>
+ <propertyBindings xsi:type="eef-model:EStructuralFeatureBinding">
+ <editor xsi:type="eef-model:EObjectEditor" definition="/1/@views.9/@elements.1"/>
+ <feature xsi:type="ecore:EReference" href="platform:/plugin/org.eclipse.emf.eef.runtime/model/editingModel.ecore#//PropertyBinding/editor"/>
+ </propertyBindings>
+ <propertyBindings xsi:type="eef-model:EStructuralFeatureBinding">
+ <editor xsi:type="eef-model:EObjectEditor" definition="/1/@views.5/@elements.0"/>
+ <feature xsi:type="ecore:EReference" href="platform:/plugin/org.eclipse.emf.eef.runtime/model/editingModel.ecore#//PropertyBinding/subPropertyBindings"/>
+ </propertyBindings>
+ <propertyBindings xsi:type="eef-model:EStructuralFeatureBinding">
+ <editor xsi:type="eef-model:EObjectEditor" definition="/1/@views.6/@elements.0"/>
+ <feature xsi:type="ecore:EReference" href="platform:/plugin/org.eclipse.emf.eef.runtime/model/editingModel.ecore#//PropertyBinding/settings"/>
+ </propertyBindings>
+ </bindings>
+ <involvedModels href="platform:/plugin/org.eclipse.emf.eef.runtime/model/editingModel.genmodel#/"/>
+ <involvedModels href="platform:/plugin/org.eclipse.emf.eef.runtime/model/editingModel.ecore#/"/>
+ <involvedModels href="platform:/plugin/org.eclipse.emf.eef.runtime/model/query.genmodel#/"/>
+ <involvedModels href="platform:/plugin/org.eclipse.emf.eef.runtime/model/query.ecore#/"/>
+ </eef-model:PropertiesEditingModel>
+ <eef-views:ViewsRepository name="editingModel">
+ <views name="Binding">
+ <elements xsi:type="eef-views:ElementEditor" name="eClass">
+ <representation href="eeftoolkit:/org.eclipse.emf.eef.runtime.ui.swt/org.eclipse.emf.eef.runtime.ui.swt.view.propertyeditors.impl.emfpropertiestoolkit.EMFPropertiesToolkit#//@widgets.1"/>
+ </elements>
+ <elements xsi:type="eef-views:ElementEditor" name="views">
+ <representation href="eeftoolkit:/org.eclipse.emf.eef.runtime.ui.swt/org.eclipse.emf.eef.runtime.ui.swt.view.propertyeditors.impl.emfpropertiestoolkit.EMFPropertiesToolkit#//@widgets.2"/>
+ </elements>
+ </views>
+ <views name="Editing Model">
+ <elements xsi:type="eef-views:Container" name="Editing Model">
+ <representation href="eeftoolkit:/org.eclipse.emf.eef.runtime.ui.swt/org.eclipse.emf.eef.runtime.ui.swt.view.propertyeditors.impl.swttoolkit.SWTToolkit#//@widgets.2"/>
+ <elements xsi:type="eef-views:ElementEditor" name="id">
+ <representation href="eeftoolkit:/org.eclipse.emf.eef.runtime.ui.swt/org.eclipse.emf.eef.runtime.ui.swt.view.propertyeditors.impl.swttoolkit.SWTToolkit#//@widgets.0"/>
+ </elements>
+ <elements xsi:type="eef-views:ElementEditor" name="name">
+ <representation href="eeftoolkit:/org.eclipse.emf.eef.runtime.ui.swt/org.eclipse.emf.eef.runtime.ui.swt.view.propertyeditors.impl.swttoolkit.SWTToolkit#//@widgets.0"/>
+ </elements>
+ <elements xsi:type="eef-views:ElementEditor" name="Involved Models">
+ <representation href="eeftoolkit:/org.eclipse.emf.eef.runtime.ui.swt/org.eclipse.emf.eef.runtime.ui.swt.view.propertyeditors.impl.emfpropertiestoolkit.EMFPropertiesToolkit#//@widgets.0"/>
+ </elements>
+ </elements>
+ </views>
+ <views name="EObjectView">
+ <elements xsi:type="eef-views:ElementEditor" name="definition">
+ <representation href="eeftoolkit:/org.eclipse.emf.eef.runtime.ui.swt/org.eclipse.emf.eef.runtime.ui.swt.view.propertyeditors.impl.emfpropertiestoolkit.EMFPropertiesToolkit#//@widgets.1"/>
+ </elements>
+ </views>
+ <views name="Property Binding Feature">
+ <elements xsi:type="eef-views:ElementEditor" name="feature">
+ <representation href="eeftoolkit:/org.eclipse.emf.eef.runtime.ui.swt/org.eclipse.emf.eef.runtime.ui.swt.view.propertyeditors.impl.emfpropertiestoolkit.EMFPropertiesToolkit#//@widgets.1"/>
+ </elements>
+ <elements xsi:type="eef-views:ElementEditor" name="Editor">
+ <representation href="eeftoolkit:/org.eclipse.emf.eef.runtime.ui.swt/org.eclipse.emf.eef.runtime.ui.swt.view.propertyeditors.impl.emfpropertiestoolkit.EMFPropertiesToolkit#//@widgets.4"/>
+ </elements>
+ </views>
+ <views name="EObjectEditor">
+ <elements xsi:type="eef-views:ElementEditor" name="definition">
+ <representation href="eeftoolkit:/org.eclipse.emf.eef.runtime.ui.swt/org.eclipse.emf.eef.runtime.ui.swt.view.propertyeditors.impl.emfpropertiestoolkit.EMFPropertiesToolkit#//@widgets.1"/>
+ </elements>
+ </views>
+ <views name="Subbindings">
+ <elements xsi:type="eef-views:ElementEditor" name="subbindings">
+ <representation href="eeftoolkit:/org.eclipse.emf.eef.runtime.ui.swt/org.eclipse.emf.eef.runtime.ui.swt.view.propertyeditors.impl.emfpropertiestoolkit.EMFPropertiesToolkit#//@widgets.2"/>
+ </elements>
+ </views>
+ <views name="Settings">
+ <elements xsi:type="eef-views:ElementEditor" name="settings">
+ <representation href="eeftoolkit:/org.eclipse.emf.eef.runtime.ui.swt/org.eclipse.emf.eef.runtime.ui.swt.view.propertyeditors.impl.emfpropertiestoolkit.EMFPropertiesToolkit#//@widgets.2"/>
+ </elements>
+ </views>
+ <views name="JavaBody">
+ <elements xsi:type="eef-views:Container" name="Class">
+ <representation href="eeftoolkit:/org.eclipse.emf.eef.runtime.ui.swt/org.eclipse.emf.eef.runtime.ui.swt.view.propertyeditors.impl.swttoolkit.SWTToolkit#//@widgets.2"/>
+ <elements xsi:type="eef-views:ElementEditor" name="Qualified Class">
+ <representation href="eeftoolkit:/org.eclipse.emf.eef.runtime.ui.jdt/org.eclipse.emf.eef.runtime.ui.jdt.jdttoolkit.JDTToolkit#//@widgets.0"/>
+ </elements>
+ </elements>
+ <elements xsi:type="eef-views:Container" name="Method">
+ <representation href="eeftoolkit:/org.eclipse.emf.eef.runtime.ui.swt/org.eclipse.emf.eef.runtime.ui.swt.view.propertyeditors.impl.swttoolkit.SWTToolkit#//@widgets.2"/>
+ <elements xsi:type="eef-views:ElementEditor" name="method">
+ <representation href="eeftoolkit:/org.eclipse.emf.eef.runtime.ui.swt/org.eclipse.emf.eef.runtime.ui.swt.view.propertyeditors.impl.swttoolkit.SWTToolkit#//@widgets.0"/>
+ </elements>
+ <elements xsi:type="eef-views:ElementEditor" name="static">
+ <representation href="eeftoolkit:/org.eclipse.emf.eef.runtime.ui.swt/org.eclipse.emf.eef.runtime.ui.swt.view.propertyeditors.impl.swttoolkit.SWTToolkit#//@widgets.1"/>
+ </elements>
+ </elements>
+ </views>
+ <views name="EReferenceFilter">
+ <elements xsi:type="eef-views:ElementEditor" name="body">
+ <representation href="eeftoolkit:/org.eclipse.emf.eef.runtime.ui.swt/org.eclipse.emf.eef.runtime.ui.swt.view.propertyeditors.impl.emfpropertiestoolkit.EMFPropertiesToolkit#//@widgets.4"/>
+ </elements>
+ </views>
+ <views name="PropertyBinding">
+ <elements xsi:type="eef-views:ElementEditor" name="bindingCustomizer">
+ <representation href="eeftoolkit:/org.eclipse.emf.eef.runtime.ui.jdt/org.eclipse.emf.eef.runtime.ui.jdt.jdttoolkit.JDTToolkit#//@widgets.0"/>
+ </elements>
+ <elements xsi:type="eef-views:ElementEditor" name="Editor">
+ <representation href="eeftoolkit:/org.eclipse.emf.eef.runtime.ui.swt/org.eclipse.emf.eef.runtime.ui.swt.view.propertyeditors.impl.emfpropertiestoolkit.EMFPropertiesToolkit#//@widgets.4"/>
+ </elements>
+ </views>
+ </eef-views:ViewsRepository>
+</xmi:XMI>
diff --git a/plugins/org.eclipse.emf.eef.editor/src-gen/org/eclipse/emf/eef/runtime/editingModel/presentation/EditingModelModelWizard.java b/plugins/org.eclipse.emf.eef.editor/src-gen/org/eclipse/emf/eef/runtime/editingModel/presentation/EditingModelModelWizard.java index 68af546a7..fab5205e5 100644 --- a/plugins/org.eclipse.emf.eef.editor/src-gen/org/eclipse/emf/eef/runtime/editingModel/presentation/EditingModelModelWizard.java +++ b/plugins/org.eclipse.emf.eef.editor/src-gen/org/eclipse/emf/eef/runtime/editingModel/presentation/EditingModelModelWizard.java @@ -59,8 +59,11 @@ import org.eclipse.emf.eef.runtime.editingModel.presentation.pages.EditingModelM import org.eclipse.emf.eef.runtime.editingModel.presentation.pages.ModelToChoosePage; import org.eclipse.emf.eef.runtime.editingModel.presentation.pages.ModelToChoosePage.ModelInitializationChangeListener; import org.eclipse.emf.eef.runtime.editingModel.provider.EditingModelItemProviderAdapterFactory; +import org.eclipse.emf.eef.runtime.internal.editingModel.EditingModelEnvironmentImpl; import org.eclipse.emf.eef.runtime.ui.swt.internal.binding.settings.GenericBindingSettings; +import org.eclipse.emf.eef.runtime.ui.swt.internal.binding.settings.GenericBindingSettingsUtil; import org.eclipse.emf.eef.runtime.util.EEFURIAwareResourceSet; +import org.eclipse.emf.eef.runtime.util.EMFServiceProvider; import org.eclipse.emf.eef.runtime.util.OSGiHelper; import org.eclipse.emf.eef.views.ViewsFactory; import org.eclipse.emf.eef.views.ViewsPackage; @@ -337,8 +340,8 @@ public class EditingModelModelWizard extends Wizard implements INewWizard { setMetamodelePackage(ePackage); PropertiesEditingModel editingModel = null; + BundleContext bundleContext = FrameworkUtil.getBundle(getClass()).getBundleContext(); if (initializingMethodPage.initModel()) { - BundleContext bundleContext = FrameworkUtil.getBundle(getClass()).getBundleContext(); EEFBindingSettingsProvider bindingSettingsProvider = OSGiHelper.getService(bundleContext, EEFBindingSettingsProvider.class); EEFBindingSettings<?> bindingSettings = bindingSettingsProvider.getBindingSettings(ePackage); @@ -358,6 +361,10 @@ public class EditingModelModelWizard extends Wizard implements INewWizard { } editingModel = bindingSettings.getEditingModel(ePackage); + } else { + EMFServiceProvider emfServiceProvider = OSGiHelper.getService(bundleContext, EMFServiceProvider.class); + Resource propertiesEditingModelResource = GenericBindingSettingsUtil.initPropertiesEditingModel(ePackage, emfServiceProvider, new EditingModelEnvironmentImpl(null)); + editingModel = GenericBindingSettingsUtil.getPropertiesEditionModel(propertiesEditingModelResource); } if (editingModel != null) { diff --git a/plugins/org.eclipse.emf.eef.editor/src-gen/org/eclipse/emf/eef/runtime/editingModel/provider/EClassBindingItemProvider.java b/plugins/org.eclipse.emf.eef.editor/src-gen/org/eclipse/emf/eef/runtime/editingModel/provider/EClassBindingItemProvider.java index 602fd8c48..92762d636 100644 --- a/plugins/org.eclipse.emf.eef.editor/src-gen/org/eclipse/emf/eef/runtime/editingModel/provider/EClassBindingItemProvider.java +++ b/plugins/org.eclipse.emf.eef.editor/src-gen/org/eclipse/emf/eef/runtime/editingModel/provider/EClassBindingItemProvider.java @@ -215,8 +215,8 @@ public class EClassBindingItemProvider extends ItemProviderAdapter implements IE protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) { super.collectNewChildDescriptors(newChildDescriptors, object); - // newChildDescriptors.add(createChildParameter(EditingModelPackage.Literals.ECLASS_BINDING__VIEWS, - // EditingModelFactory.eINSTANCE.createEObjectView())); + newChildDescriptors.add(createChildParameter(EditingModelPackage.Literals.ECLASS_BINDING__VIEWS, + EditingModelFactory.eINSTANCE.createEObjectView())); // newChildDescriptors.add // (createChildParameter diff --git a/plugins/org.eclipse.emf.eef.editor/src-gen/org/eclipse/emf/eef/runtime/editingModel/provider/PropertyBindingItemProvider.java b/plugins/org.eclipse.emf.eef.editor/src-gen/org/eclipse/emf/eef/runtime/editingModel/provider/PropertyBindingItemProvider.java index 3e89ffc3a..bbdbf202b 100644 --- a/plugins/org.eclipse.emf.eef.editor/src-gen/org/eclipse/emf/eef/runtime/editingModel/provider/PropertyBindingItemProvider.java +++ b/plugins/org.eclipse.emf.eef.editor/src-gen/org/eclipse/emf/eef/runtime/editingModel/provider/PropertyBindingItemProvider.java @@ -6,7 +6,6 @@ */ package org.eclipse.emf.eef.runtime.editingModel.provider; - import java.util.Collection; import java.util.List; @@ -30,23 +29,17 @@ import org.eclipse.emf.eef.runtime.editingModel.EditingModelPackage; import org.eclipse.emf.eef.runtime.editingModel.PropertyBinding; /** - * This is the item provider adapter for a {@link org.eclipse.emf.eef.runtime.editingModel.PropertyBinding} object. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> + * This is the item provider adapter for a + * {@link org.eclipse.emf.eef.runtime.editingModel.PropertyBinding} object. <!-- + * begin-user-doc --> <!-- end-user-doc --> + * * @generated */ -public class PropertyBindingItemProvider - extends ItemProviderAdapter - implements - IEditingDomainItemProvider, - IStructuredItemContentProvider, - ITreeItemContentProvider, - IItemLabelProvider, - IItemPropertySource { +public class PropertyBindingItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider, IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource { /** - * This constructs an instance from a factory and a notifier. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> + * This constructs an instance from a factory and a notifier. <!-- + * begin-user-doc --> <!-- end-user-doc --> + * * @generated */ public PropertyBindingItemProvider(AdapterFactory adapterFactory) { @@ -54,9 +47,9 @@ public class PropertyBindingItemProvider } /** - * This returns the property descriptors for the adapted class. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> + * This returns the property descriptors for the adapted class. <!-- + * begin-user-doc --> <!-- end-user-doc --> + * * @generated */ @Override @@ -70,33 +63,24 @@ public class PropertyBindingItemProvider } /** - * This adds a property descriptor for the Binding Customizer feature. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> + * This adds a property descriptor for the Binding Customizer feature. <!-- + * begin-user-doc --> <!-- end-user-doc --> + * * @generated */ protected void addBindingCustomizerPropertyDescriptor(Object object) { - itemPropertyDescriptors.add - (createItemPropertyDescriptor - (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), - getResourceLocator(), - getString("_UI_PropertyBinding_bindingCustomizer_feature"), - getString("_UI_PropertyDescriptor_description", "_UI_PropertyBinding_bindingCustomizer_feature", "_UI_PropertyBinding_type"), - EditingModelPackage.Literals.PROPERTY_BINDING__BINDING_CUSTOMIZER, - true, - false, - false, - ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, - null, - null)); + itemPropertyDescriptors.add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(), getResourceLocator(), getString("_UI_PropertyBinding_bindingCustomizer_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_PropertyBinding_bindingCustomizer_feature", "_UI_PropertyBinding_type"), EditingModelPackage.Literals.PROPERTY_BINDING__BINDING_CUSTOMIZER, true, false, false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null)); } /** - * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an - * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or - * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> + * This specifies how to implement {@link #getChildren} and is used to + * deduce an appropriate feature for an + * {@link org.eclipse.emf.edit.command.AddCommand}, + * {@link org.eclipse.emf.edit.command.RemoveCommand} or + * {@link org.eclipse.emf.edit.command.MoveCommand} in + * {@link #createCommand}. <!-- begin-user-doc --> <!-- end-user-doc --> + * * @generated */ @Override @@ -111,22 +95,23 @@ public class PropertyBindingItemProvider } /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> + * <!-- begin-user-doc --> <!-- end-user-doc --> + * * @generated */ @Override protected EStructuralFeature getChildFeature(Object object, Object child) { - // Check the type of the specified child object and return the proper feature to use for + // Check the type of the specified child object and return the proper + // feature to use for // adding (see {@link AddCommand}) it as a child. return super.getChildFeature(object, child); } /** - * This returns PropertyBinding.gif. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> + * This returns PropertyBinding.gif. <!-- begin-user-doc --> <!-- + * end-user-doc --> + * * @generated */ @Override @@ -135,8 +120,8 @@ public class PropertyBindingItemProvider } /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> + * <!-- begin-user-doc --> <!-- end-user-doc --> + * * @generated */ @Override @@ -145,24 +130,23 @@ public class PropertyBindingItemProvider } /** - * This returns the label text for the adapted class. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> + * This returns the label text for the adapted class. <!-- begin-user-doc + * --> <!-- end-user-doc --> + * * @generated */ @Override public String getText(Object object) { - String label = ((PropertyBinding)object).getBindingCustomizer(); - return label == null || label.length() == 0 ? - getString("_UI_PropertyBinding_type") : - getString("_UI_PropertyBinding_type") + " " + label; + String label = ((PropertyBinding) object).getBindingCustomizer(); + return label == null || label.length() == 0 ? getString("_UI_PropertyBinding_type") : getString("_UI_PropertyBinding_type") + " " + label; } /** - * This handles model notifications by calling {@link #updateChildren} to update any cached - * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> + * This handles model notifications by calling {@link #updateChildren} to + * update any cached children and by creating a viewer notification, which + * it passes to {@link #fireNotifyChanged}. <!-- begin-user-doc --> <!-- + * end-user-doc --> + * * @generated */ @Override @@ -170,59 +154,50 @@ public class PropertyBindingItemProvider updateChildren(notification); switch (notification.getFeatureID(PropertyBinding.class)) { - case EditingModelPackage.PROPERTY_BINDING__BINDING_CUSTOMIZER: - fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); - return; - case EditingModelPackage.PROPERTY_BINDING__EDITOR: - case EditingModelPackage.PROPERTY_BINDING__SUB_PROPERTY_BINDINGS: - case EditingModelPackage.PROPERTY_BINDING__SETTINGS: - fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false)); - return; + case EditingModelPackage.PROPERTY_BINDING__BINDING_CUSTOMIZER: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); + return; + case EditingModelPackage.PROPERTY_BINDING__EDITOR: + case EditingModelPackage.PROPERTY_BINDING__SUB_PROPERTY_BINDINGS: + case EditingModelPackage.PROPERTY_BINDING__SETTINGS: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false)); + return; } super.notifyChanged(notification); } /** - * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children - * that can be created under this object. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> + * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s + * describing the children that can be created under this object. <!-- + * begin-user-doc --> <!-- end-user-doc --> + * * @generated NOT */ @Override protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) { super.collectNewChildDescriptors(newChildDescriptors, object); -// newChildDescriptors.add -// (createChildParameter -// (EditingModelPackage.Literals.PROPERTY_BINDING__EDITOR, -// EditingModelFactory.eINSTANCE.createEObjectEditor())); -// -// newChildDescriptors.add -// (createChildParameter -// (EditingModelPackage.Literals.PROPERTY_BINDING__EDITOR, -// EditingModelFactory.eINSTANCE.createJavaEditor())); - - newChildDescriptors.add - (createChildParameter - (EditingModelPackage.Literals.PROPERTY_BINDING__SUB_PROPERTY_BINDINGS, - EditingModelFactory.eINSTANCE.createPropertyBinding())); - - newChildDescriptors.add - (createChildParameter - (EditingModelPackage.Literals.PROPERTY_BINDING__SUB_PROPERTY_BINDINGS, - EditingModelFactory.eINSTANCE.createEStructuralFeatureBinding())); - - newChildDescriptors.add - (createChildParameter - (EditingModelPackage.Literals.PROPERTY_BINDING__SETTINGS, - EditingModelFactory.eINSTANCE.createEReferenceFilter())); + newChildDescriptors.add(createChildParameter(EditingModelPackage.Literals.PROPERTY_BINDING__EDITOR, EditingModelFactory.eINSTANCE.createEObjectEditor())); + + // newChildDescriptors.add + // (createChildParameter + // (EditingModelPackage.Literals.PROPERTY_BINDING__EDITOR, + // EditingModelFactory.eINSTANCE.createJavaEditor())); + + newChildDescriptors.add(createChildParameter(EditingModelPackage.Literals.PROPERTY_BINDING__SUB_PROPERTY_BINDINGS, EditingModelFactory.eINSTANCE.createPropertyBinding())); + + newChildDescriptors.add(createChildParameter(EditingModelPackage.Literals.PROPERTY_BINDING__SUB_PROPERTY_BINDINGS, EditingModelFactory.eINSTANCE.createEStructuralFeatureBinding())); + + // newChildDescriptors.add + // (createChildParameter + // (EditingModelPackage.Literals.PROPERTY_BINDING__SETTINGS, + // EditingModelFactory.eINSTANCE.createEReferenceFilter())); } /** - * Return the resource locator for this item provider's resources. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> + * Return the resource locator for this item provider's resources. <!-- + * begin-user-doc --> <!-- end-user-doc --> + * * @generated */ @Override diff --git a/plugins/org.eclipse.emf.eef.runtime.ui.jdt/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.eef.runtime.ui.jdt/META-INF/MANIFEST.MF index b4dd77721..6282c58c3 100644 --- a/plugins/org.eclipse.emf.eef.runtime.ui.jdt/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.emf.eef.runtime.ui.jdt/META-INF/MANIFEST.MF @@ -17,10 +17,13 @@ Import-Package: com.google.common.collect;version="10.0.1", org.eclipse.emf.ecore.resource, org.eclipse.emf.eef.runtime.binding, org.eclipse.emf.eef.runtime.context, + org.eclipse.emf.eef.runtime.context.impl, org.eclipse.emf.eef.runtime.editingModel, - org.eclipse.emf.eef.runtime.ui.swt.internal.view.notify, org.eclipse.emf.eef.runtime.notify, org.eclipse.emf.eef.runtime.ui.swt, + org.eclipse.emf.eef.runtime.ui.swt.e3.internal.view.propertyeditors.impl, + org.eclipse.emf.eef.runtime.ui.swt.e3.internal.widgets, + org.eclipse.emf.eef.runtime.ui.swt.internal.view.notify, org.eclipse.emf.eef.runtime.ui.swt.internal.view.propertyeditors.impl, org.eclipse.emf.eef.runtime.ui.swt.internal.widgets, org.eclipse.emf.eef.runtime.ui.swt.internal.widgets.util, @@ -46,6 +49,7 @@ Import-Package: com.google.common.collect;version="10.0.1", org.eclipse.swt.layout, org.eclipse.swt.widgets, org.eclipse.ui, - org.eclipse.ui.dialogs + org.eclipse.ui.dialogs, + org.eclipse.ui.forms.widgets Service-Component: OSGI-INF/JDTToolkit.xml Bundle-ActivationPolicy: lazy diff --git a/plugins/org.eclipse.emf.eef.runtime.ui.jdt/src/org/eclipse/emf/eef/runtime/ui/jdt/internal/jdttoolkit/propertyeditors/JavaClassChooserFormPropertyEditor.java b/plugins/org.eclipse.emf.eef.runtime.ui.jdt/src/org/eclipse/emf/eef/runtime/ui/jdt/internal/jdttoolkit/propertyeditors/JavaClassChooserFormPropertyEditor.java new file mode 100644 index 000000000..31ca510ff --- /dev/null +++ b/plugins/org.eclipse.emf.eef.runtime.ui.jdt/src/org/eclipse/emf/eef/runtime/ui/jdt/internal/jdttoolkit/propertyeditors/JavaClassChooserFormPropertyEditor.java @@ -0,0 +1,129 @@ +/******************************************************************************* + * Copyright (c) 2013 Obeo. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Obeo - initial API and implementation + *******************************************************************************/ +package org.eclipse.emf.eef.runtime.ui.jdt.internal.jdttoolkit.propertyeditors; + +import java.util.Collection; + +import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext; +import org.eclipse.emf.eef.runtime.ui.swt.e3.internal.view.propertyeditors.impl.StandardFormPropertyEditor; +import org.eclipse.emf.eef.runtime.ui.swt.e3.internal.widgets.FormSingleLinePropertyViewer; +import org.eclipse.emf.eef.runtime.ui.swt.internal.widgets.SingleLinePropertyViewer; +import org.eclipse.emf.eef.runtime.ui.swt.resources.ImageManager; +import org.eclipse.emf.eef.runtime.ui.swt.view.propertyeditors.FilterablePropertyEditor; +import org.eclipse.emf.eef.runtime.ui.swt.viewer.EditUIProvidersFactory; +import org.eclipse.emf.eef.runtime.ui.view.PropertiesEditingView; +import org.eclipse.emf.eef.views.ElementEditor; +import org.eclipse.jface.viewers.ViewerFilter; +import org.eclipse.swt.SWT; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.ui.forms.widgets.FormToolkit; + +import com.google.common.collect.Lists; + +/** + * @author <a href="mailto:goulwen.lefur@obeo.fr">Goulwen Le Fur</a> + * + */ +public class JavaClassChooserFormPropertyEditor extends StandardFormPropertyEditor<SingleLinePropertyViewer> implements FilterablePropertyEditor { + + private EditUIProvidersFactory editUIProvidersFactory; + private ImageManager imageManager; + + private SingleLinePropertyViewer eComboEditor; + + private Collection<ViewerFilter> filters; + + /** + * @param view + * @param elementEditor + * @param imageManager + */ + public JavaClassChooserFormPropertyEditor(EditUIProvidersFactory editUIProvidersFactory, ImageManager imageManager, PropertiesEditingView<Composite> view, ElementEditor elementEditor) { + super(view, elementEditor); + this.editUIProvidersFactory = editUIProvidersFactory; + this.imageManager = imageManager; + this.filters = Lists.newArrayList(); + } + + /** + * {@inheritDoc} + * + * @see org.eclipse.emf.eef.runtime.ui.view.propertyeditors.PropertyEditorViewer#getViewer() + */ + public SingleLinePropertyViewer getViewer() { + return eComboEditor; + } + + /** + * {@inheritDoc} + * + * @see org.eclipse.emf.eef.runtime.ui.swt.view.propertyeditors.FilterablePropertyEditor#addFilter(org.eclipse.jface.viewers.ViewerFilter) + */ + public void addFilter(ViewerFilter filter) { + filters.add(filter); + } + + /** + * {@inheritDoc} + * + * @see org.eclipse.emf.eef.runtime.ui.swt.view.propertyeditors.FilterablePropertyEditor#removeFilter(org.eclipse.jface.viewers.ViewerFilter) + */ + public void removeFilter(ViewerFilter filter) { + filters.remove(filter); + } + + /** + * {@inheritDoc} + * + * @see org.eclipse.emf.eef.runtime.ui.swt.view.propertyeditors.FilterablePropertyEditor#getFilters() + */ + public Collection<ViewerFilter> getFilters() { + return filters; + } + + /** + * {@inheritDoc} + * + * @see org.eclipse.emf.eef.runtime.ui.swt.e3.internal.view.propertyeditors.impl.StandardFormPropertyEditor#lock() + */ + @Override + public void lock() { + eComboEditor.setLocked(true); + } + + /** + * {@inheritDoc} + * + * @see org.eclipse.emf.eef.runtime.ui.swt.e3.internal.view.propertyeditors.impl.StandardFormPropertyEditor#unlock() + */ + @Override + public void unlock() { + eComboEditor.setLocked(false); + } + + /** + * (non-Javadoc) + * + * @see org.eclipse.emf.eef.runtime.ui.swt.e3.internal.view.propertyeditors.impl.StandardFormPropertyEditor#createEditorContents(org.eclipse.ui.forms.widgets.FormToolkit, + * org.eclipse.swt.widgets.Composite) + */ + @Override + protected void createEditorContents(FormToolkit toolkit, Composite parent) { + eComboEditor = new FormSingleLinePropertyViewer(toolkit, parent, SWT.BORDER); + PropertiesEditingContext editingContext = view.getEditingComponent().getEditingContext(); + eComboEditor.setLabelProvider(editUIProvidersFactory.createLabelProvider(editingContext.getAdapterFactory())); + eComboEditor.setImageManager(imageManager); + eComboEditor.createContents(); + GridData layoutData = new GridData(GridData.FILL_HORIZONTAL); + eComboEditor.getControl().setLayoutData(layoutData); + } +} diff --git a/plugins/org.eclipse.emf.eef.runtime.ui.jdt/src/org/eclipse/emf/eef/runtime/ui/jdt/internal/jdttoolkit/propertyeditors/JavaClassChooserPropertyEditor.java b/plugins/org.eclipse.emf.eef.runtime.ui.jdt/src/org/eclipse/emf/eef/runtime/ui/jdt/internal/jdttoolkit/propertyeditors/JavaClassChooserPropertyEditor.java index 677ac2998..86d710f14 100644 --- a/plugins/org.eclipse.emf.eef.runtime.ui.jdt/src/org/eclipse/emf/eef/runtime/ui/jdt/internal/jdttoolkit/propertyeditors/JavaClassChooserPropertyEditor.java +++ b/plugins/org.eclipse.emf.eef.runtime.ui.jdt/src/org/eclipse/emf/eef/runtime/ui/jdt/internal/jdttoolkit/propertyeditors/JavaClassChooserPropertyEditor.java @@ -48,7 +48,6 @@ public class JavaClassChooserPropertyEditor extends PropertyEditorImpl implement protected PropertyEditorViewer<SingleLinePropertyViewer> propertyEditorViewer; private SingleLinePropertyViewerListener listener; - /** * @param view * @param elementEditor @@ -63,6 +62,7 @@ public class JavaClassChooserPropertyEditor extends PropertyEditorImpl implement /** * {@inheritDoc} + * * @see org.eclipse.emf.eef.runtime.ui.view.propertyeditors.PropertyEditor#init() */ public void init() { @@ -75,6 +75,7 @@ public class JavaClassChooserPropertyEditor extends PropertyEditorImpl implement /** * {@inheritDoc} + * * @see org.eclipse.emf.eef.runtime.ui.view.propertyeditors.PropertyEditor#getPropertyEditorViewer() */ public PropertyEditorViewer<?> getPropertyEditorViewer() { @@ -83,6 +84,7 @@ public class JavaClassChooserPropertyEditor extends PropertyEditorImpl implement /** * {@inheritDoc} + * * @see org.eclipse.emf.eef.runtime.ui.view.propertyeditors.MonovaluedPropertyEditor#setValue(java.lang.Object) */ public void setValue(Object value) { @@ -93,11 +95,12 @@ public class JavaClassChooserPropertyEditor extends PropertyEditorImpl implement /** * {@inheritDoc} + * * @see org.eclipse.emf.eef.runtime.ui.view.propertyeditors.MonovaluedPropertyEditor#unsetValue() */ public void unsetValue() { listener.disable(); - propertyEditorViewer.getViewer().setInput(null); + propertyEditorViewer.getViewer().setInput(null); listener.enable(); } @@ -110,35 +113,37 @@ public class JavaClassChooserPropertyEditor extends PropertyEditorImpl implement /** * {@inheritDoc} + * * @see org.eclipse.emf.eef.runtime.ui.widgets.EComboEditor.EComboListener#set() */ public void set() { IJavaElement[] elements = new IJavaElement[] { getContainingProject() }; IJavaSearchScope scope = SearchEngine.createJavaSearchScope(elements); FilteredTypesSelectionDialog dialog = new FilteredTypesSelectionDialog(view.getContents().getShell(), false, PlatformUI.getWorkbench().getProgressService(), scope, IJavaSearchConstants.CLASS); + dialog.setInitialPattern(viewer.getCurrentValue()); dialog.open(); Object result = dialog.getFirstResult(); if (result instanceof IType) { - IType javaClass = (IType)result; - propertyEditor.firePropertiesChanged(view.getEditingComponent(), new PropertiesEditingEventImpl(view, elementEditor, PropertiesEditingEvent.SET, null, javaClass.getClass().getName())); + IType javaClass = (IType) result; + propertyEditor.firePropertiesChanged(view.getEditingComponent(), new PropertiesEditingEventImpl(view, elementEditor, PropertiesEditingEvent.SET, null, javaClass.getFullyQualifiedName('.'))); } } /** * {@inheritDoc} + * * @see org.eclipse.emf.eef.runtime.ui.widgets.EComboEditor.EComboListener#clear() */ public void clear() { firePropertiesChanged(view.getEditingComponent(), new PropertiesEditingEventImpl(view, elementEditor, PropertiesEditingEvent.UNSET, null, null)); propertyEditorViewer.getViewer().refresh(); } - + }; propertyEditorViewer.getViewer().addSingleLinePropertyViewerListener(listener); } } - private IJavaProject getContainingProject() { URI uri = view.getEditingComponent().getEObject().eResource().getURI(); if (uri.isPlatformResource()) { @@ -148,7 +153,7 @@ public class JavaClassChooserPropertyEditor extends PropertyEditorImpl implement IJavaProject javaProject = manager.getJavaModel().getJavaProject(project); return javaProject; } else { - //TODO: for the moment I can't handle this case. + // TODO: for the moment I can't handle this case. } return null; diff --git a/plugins/org.eclipse.emf.eef.runtime.ui.jdt/src/org/eclipse/emf/eef/runtime/ui/jdt/internal/jdttoolkit/propertyeditors/JavaClassChooserPropertyEditorFactory.java b/plugins/org.eclipse.emf.eef.runtime.ui.jdt/src/org/eclipse/emf/eef/runtime/ui/jdt/internal/jdttoolkit/propertyeditors/JavaClassChooserPropertyEditorFactory.java index 140469699..7bf6dc153 100644 --- a/plugins/org.eclipse.emf.eef.runtime.ui.jdt/src/org/eclipse/emf/eef/runtime/ui/jdt/internal/jdttoolkit/propertyeditors/JavaClassChooserPropertyEditorFactory.java +++ b/plugins/org.eclipse.emf.eef.runtime.ui.jdt/src/org/eclipse/emf/eef/runtime/ui/jdt/internal/jdttoolkit/propertyeditors/JavaClassChooserPropertyEditorFactory.java @@ -13,6 +13,7 @@ package org.eclipse.emf.eef.runtime.ui.jdt.internal.jdttoolkit.propertyeditors; import org.eclipse.emf.ecore.EAttribute; import org.eclipse.emf.ecore.EStructuralFeature; import org.eclipse.emf.eef.runtime.ui.jdt.jdttoolkit.JDTToolkit; +import org.eclipse.emf.eef.runtime.ui.swt.EEFSWTConstants; import org.eclipse.emf.eef.runtime.ui.view.PropertiesEditingView; import org.eclipse.emf.eef.runtime.ui.view.propertyeditors.PropertyEditor; import org.eclipse.emf.eef.runtime.ui.view.propertyeditors.impl.WidgetPropertyEditorFactoryImpl; @@ -20,6 +21,7 @@ import org.eclipse.emf.eef.views.ElementEditor; import org.eclipse.emf.eef.views.toolkits.ToolkitsFactory; import org.eclipse.emf.eef.views.toolkits.Widget; import org.eclipse.swt.widgets.Composite; +import org.eclipse.ui.forms.widgets.FormToolkit; /** * @author <a href="mailto:goulwen.lefur@obeo.fr">Goulwen Le Fur</a> @@ -67,17 +69,14 @@ public class JavaClassChooserPropertyEditorFactory extends WidgetPropertyEditorF */ @SuppressWarnings("unchecked") protected PropertyEditor createPropertyEditor(PropertyEditorContext editorContext) { - return new JavaClassChooserPropertyEditor( - toolkit.getEEFEditingServiceProvider(), - (PropertiesEditingView<Composite>) editorContext.view, - (ElementEditor) editorContext.viewElement, - new JavaClassChooserSWTPropertyEditor( - toolkit.getEditUIProvidersFactory(), - toolkit.getImageManager(), - (PropertiesEditingView<Composite>) editorContext.view, - (ElementEditor) editorContext.viewElement - ) - ); + FormToolkit formtoolkit = editorContext.view.getEditingComponent().getEditingContext().getOptions().getOption(EEFSWTConstants.FORM_TOOLKIT); + if (formtoolkit != null) { + return new JavaClassChooserPropertyEditor(toolkit.getEEFEditingServiceProvider(), (PropertiesEditingView<Composite>) editorContext.view, (ElementEditor) editorContext.viewElement, new JavaClassChooserFormPropertyEditor(toolkit.getEditUIProvidersFactory(), toolkit.getImageManager(), + (PropertiesEditingView<Composite>) editorContext.view, (ElementEditor) editorContext.viewElement)); + } else { + return new JavaClassChooserPropertyEditor(toolkit.getEEFEditingServiceProvider(), (PropertiesEditingView<Composite>) editorContext.view, (ElementEditor) editorContext.viewElement, new JavaClassChooserSWTPropertyEditor(toolkit.getEditUIProvidersFactory(), toolkit.getImageManager(), + (PropertiesEditingView<Composite>) editorContext.view, (ElementEditor) editorContext.viewElement)); + } } /** diff --git a/plugins/org.eclipse.emf.eef.runtime.ui.swt.e3/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.eef.runtime.ui.swt.e3/META-INF/MANIFEST.MF index eff2dee46..6ef368317 100644 --- a/plugins/org.eclipse.emf.eef.runtime.ui.swt.e3/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.emf.eef.runtime.ui.swt.e3/META-INF/MANIFEST.MF @@ -104,8 +104,10 @@ Export-Package: org.eclipse.emf.eef.runtime.ui.swt.e3, org.eclipse.emf.eef.runtime.ui.swt.e3.internal.util;x-friends:="org.eclipse.emf.eef.runtime.tests", org.eclipse.emf.eef.runtime.ui.swt.e3.internal.view.handle.editingview;x-friends:="org.eclipse.emf.eef.runtime.tests", org.eclipse.emf.eef.runtime.ui.swt.e3.internal.view.impl;x-friends:="org.eclipse.emf.eef.runtime.tabbed", + org.eclipse.emf.eef.runtime.ui.swt.e3.internal.view.propertyeditors.impl;x-friends:="org.eclipse.emf.eef.runtime.ui.jdt", org.eclipse.emf.eef.runtime.ui.swt.e3.internal.view.propertyeditors.impl.emfpropertiestoolkit;x-friends:="org.eclipse.emf.eef.runtime.tests", org.eclipse.emf.eef.runtime.ui.swt.e3.internal.view.propertyeditors.impl.swttoolkit;x-friends:="org.eclipse.emf.eef.runtime.tests", + org.eclipse.emf.eef.runtime.ui.swt.e3.internal.widgets;x-friends:="org.eclipse.emf.eef.runtime.ui.jdt", org.eclipse.emf.eef.runtime.ui.swt.e3.tabbed.view.providers, org.eclipse.emf.eef.runtime.ui.swt.e3.tabbed.view.section, org.eclipse.emf.eef.runtime.ui.swt.e3.view.propertyeditors, diff --git a/plugins/org.eclipse.emf.eef.runtime.ui.swt.e3/src/org/eclipse/emf/eef/runtime/ui/swt/e3/internal/view/propertyeditors/impl/emfpropertiestoolkit/ecomboeditor/EComboE3PropertyEditor.java b/plugins/org.eclipse.emf.eef.runtime.ui.swt.e3/src/org/eclipse/emf/eef/runtime/ui/swt/e3/internal/view/propertyeditors/impl/emfpropertiestoolkit/ecomboeditor/EComboE3PropertyEditor.java index ddca3b3de..6474b77f5 100644 --- a/plugins/org.eclipse.emf.eef.runtime.ui.swt.e3/src/org/eclipse/emf/eef/runtime/ui/swt/e3/internal/view/propertyeditors/impl/emfpropertiestoolkit/ecomboeditor/EComboE3PropertyEditor.java +++ b/plugins/org.eclipse.emf.eef.runtime.ui.swt.e3/src/org/eclipse/emf/eef/runtime/ui/swt/e3/internal/view/propertyeditors/impl/emfpropertiestoolkit/ecomboeditor/EComboE3PropertyEditor.java @@ -12,6 +12,8 @@ package org.eclipse.emf.eef.runtime.ui.swt.e3.internal.view.propertyeditors.impl import java.util.Collection; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; import org.eclipse.emf.eef.runtime.notify.PropertiesEditingEvent; import org.eclipse.emf.eef.runtime.notify.PropertiesEditingEventImpl; import org.eclipse.emf.eef.runtime.ui.swt.EEFSWTConstants; @@ -27,6 +29,7 @@ import org.eclipse.emf.eef.runtime.ui.swt.viewer.EditUIProvidersFactory; import org.eclipse.emf.eef.runtime.ui.swt.viewer.filters.ViewerFilterBuilderProvider; import org.eclipse.emf.eef.runtime.ui.view.PropertiesEditingView; import org.eclipse.emf.eef.runtime.ui.view.propertyeditors.PropertyEditorViewer; +import org.eclipse.emf.eef.runtime.util.EEFEditingService; import org.eclipse.emf.eef.runtime.util.EEFEditingServiceProvider; import org.eclipse.emf.eef.runtime.util.EMFServiceProvider; import org.eclipse.emf.eef.views.ElementEditor; @@ -51,16 +54,14 @@ public class EComboE3PropertyEditor extends EComboPropertyEditor { * @param elementEditor * @param propertyEditorViewer */ - public EComboE3PropertyEditor(EMFServiceProvider emfServiceProvider, EEFEditingServiceProvider eefEditingServiceProvider, - EditUIProvidersFactory editUIProvidersFactory, ImageManager imageManager, ViewerFilterBuilderProvider filterBuilderProvider, - PropertiesEditingView<Composite> view, ElementEditor elementEditor, - PropertyEditorViewer<SingleLinePropertyViewer> propertyEditorViewer) { - super(emfServiceProvider, eefEditingServiceProvider, editUIProvidersFactory, imageManager, filterBuilderProvider, view, - elementEditor, propertyEditorViewer); + public EComboE3PropertyEditor(EMFServiceProvider emfServiceProvider, EEFEditingServiceProvider eefEditingServiceProvider, EditUIProvidersFactory editUIProvidersFactory, ImageManager imageManager, ViewerFilterBuilderProvider filterBuilderProvider, PropertiesEditingView<Composite> view, + ElementEditor elementEditor, PropertyEditorViewer<SingleLinePropertyViewer> propertyEditorViewer) { + super(emfServiceProvider, eefEditingServiceProvider, editUIProvidersFactory, imageManager, filterBuilderProvider, view, elementEditor, propertyEditorViewer); } /** * {@inheritDoc} + * * @see org.eclipse.emf.eef.runtime.ui.swt.internal.view.propertyeditors.impl.emfpropertiestoolkit.ecomboeditor.EComboPropertyEditor#createPropertyViewerListener() */ @Override @@ -70,25 +71,22 @@ public class EComboE3PropertyEditor extends EComboPropertyEditor { public void set() { if (isEnabled()) { - EEFSelectionDialog dialog = new EEFSelectionDialogWithFilter(propertyEditorViewer.getViewer().getControl().getShell(), true); + EEFSelectionDialog dialog = new EEFSelectionDialogWithFilter(propertyEditorViewer.getViewer().getControl().getShell(), false); dialog.setTitle("Choose the element to set to the reference:"); dialog.setAdapterFactory(view.getEditingComponent().getEditingContext().getAdapterFactory()); dialog.setEditUIProvidersFactory(editUIProvidersFactory); dialog.setImageManager(imageManager); - dialog.addFilter( - new ChoiceOfValuesFilter( - eefEditingServiceProvider, - view.getEditingComponent().getEditingContext(), - view.getEditingComponent().getEObject(), - elementEditor, - EEFSWTConstants.DEFAULT_SELECTION_MODE)); - Collection<ViewerFilter> filters = ((FilterablePropertyEditor)propertyEditorViewer).getFilters(); + dialog.addFilter(new ChoiceOfValuesFilter(eefEditingServiceProvider, view.getEditingComponent().getEditingContext(), view.getEditingComponent().getEObject(), elementEditor, EEFSWTConstants.DEFAULT_SELECTION_MODE)); + Collection<ViewerFilter> filters = ((FilterablePropertyEditor) propertyEditorViewer).getFilters(); if (!filters.isEmpty()) { for (ViewerFilter viewerFilter : filters) { dialog.addFilter(viewerFilter); } } dialog.setInput(view.getViewService().getBestInput(view.getEditingComponent().getEObject())); + // set dialog selection if reference not empty + setSelectionToDialog(dialog); + if (dialog.open() == Window.OK) { if (dialog.getSelection() != null) { firePropertiesChanged(view.getEditingComponent(), new PropertiesEditingEventImpl(view, elementEditor, PropertiesEditingEvent.SET, null, dialog.getSelection())); @@ -101,6 +99,23 @@ public class EComboE3PropertyEditor extends EComboPropertyEditor { }; } + /** + * Set selection to dialog. + * + * @param dialog + * EEFSelectionDialog + */ + public void setSelectionToDialog(EEFSelectionDialog dialog) { + EEFEditingService editingService = eefEditingServiceProvider.getEditingService(view.getEditingComponent().getEObject()); + EStructuralFeature feature = editingService.featureFromEditor(view.getEditingComponent().getEditingContext(), elementEditor); + if (feature != null) { + Object eGet = view.getEditingComponent().getEObject().eGet(feature); + if (eGet instanceof EObject) { + dialog.setInitialSelection((EObject) eGet); + } + } + } + private static class DelegatingSingleLinePropertyViewerListener extends SingleLinePropertyViewerListener { private SingleLinePropertyViewerListener delegatedListener; diff --git a/plugins/org.eclipse.emf.eef.runtime.ui.swt/src/org/eclipse/emf/eef/runtime/ui/swt/internal/binding/settings/GenericBindingSettings.java b/plugins/org.eclipse.emf.eef.runtime.ui.swt/src/org/eclipse/emf/eef/runtime/ui/swt/internal/binding/settings/GenericBindingSettings.java index cf6f950e4..51763469b 100644 --- a/plugins/org.eclipse.emf.eef.runtime.ui.swt/src/org/eclipse/emf/eef/runtime/ui/swt/internal/binding/settings/GenericBindingSettings.java +++ b/plugins/org.eclipse.emf.eef.runtime.ui.swt/src/org/eclipse/emf/eef/runtime/ui/swt/internal/binding/settings/GenericBindingSettings.java @@ -14,19 +14,15 @@ import java.util.HashMap; import java.util.Map;
import org.eclipse.core.runtime.Status;
-import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.plugin.EcorePlugin;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.resource.impl.ResourceImpl;
import org.eclipse.emf.eef.runtime.binding.PropertyBindingCustomizer;
import org.eclipse.emf.eef.runtime.binding.settings.EEFBindingSettings;
import org.eclipse.emf.eef.runtime.editingModel.EClassBinding;
import org.eclipse.emf.eef.runtime.editingModel.EditingModelEnvironment;
-import org.eclipse.emf.eef.runtime.editingModel.EditingModelFactory;
import org.eclipse.emf.eef.runtime.editingModel.PropertiesEditingModel;
import org.eclipse.emf.eef.runtime.editingModel.View;
import org.eclipse.emf.eef.runtime.internal.editingModel.EditingModelEnvironmentImpl;
@@ -39,7 +35,6 @@ import org.eclipse.emf.eef.runtime.util.EMFServiceProvider; import org.eclipse.emf.eef.runtime.view.handle.ViewHandler;
import org.eclipse.emf.eef.runtime.view.handle.ViewHandlerProvider;
import org.eclipse.emf.eef.runtime.view.lock.policies.EEFLockPolicy;
-import org.eclipse.emf.eef.views.ViewsFactory;
import org.eclipse.emf.eef.views.ViewsRepository;
import org.osgi.service.event.EventAdmin;
@@ -157,8 +152,8 @@ public class GenericBindingSettings implements EEFBindingSettings<PropertiesEdit initResourceSet();
// get PropertiesEditingModel if exists, else create one.
Resource resource = getPropertiesEditingModel(eClass);
- propertiesEditingModel = getPropertiesEditionModel(resource);
- viewsRepository = getViewsRepository(resource);
+ propertiesEditingModel = GenericBindingSettingsUtil.getPropertiesEditionModel(resource);
+ viewsRepository = GenericBindingSettingsUtil.getViewsRepository(resource);
// get bindings
if (propertiesEditingModel != null && viewsRepository != null) {
// define EClass and EStruturalFeature bindings if do not exist.
@@ -168,52 +163,6 @@ public class GenericBindingSettings implements EEFBindingSettings<PropertiesEdit }
/**
- * @param resource
- * @return viewsRepository
- */
- public ViewsRepository getViewsRepository(Resource resource) {
- if (resource.getContents().size() == 2 && resource.getContents().get(1) instanceof ViewsRepository) {
- return (ViewsRepository) resource.getContents().get(1);
- }
- return null;
- }
-
- /**
- * @param resource
- * Resource
- * @return propertiesEditingModel
- */
- public PropertiesEditingModel getPropertiesEditionModel(Resource resource) {
- if (resource.getContents().size() == 2 && resource.getContents().get(0) instanceof PropertiesEditingModel) {
- return (PropertiesEditingModel) resource.getContents().get(0);
- }
- return null;
- }
-
- /**
- * Get genmodel if exists.
- *
- * @param eObject
- * EObject
- * @param propertiesEditingModel
- * PropertiesEditingModel
- */
- protected void bindGenModel(EClass eObject, PropertiesEditingModel propertiesEditingModel) {
- URI uri = EcorePlugin.getEPackageNsURIToGenModelLocationMap().get(eObject.getEPackage().getNsURI());
- if (uri != null) {
- Resource genModelResource = getResourceSet().getResource(uri, true);
- if (!genModelResource.getContents().isEmpty()) {
- propertiesEditingModel.getInvolvedModels().add(genModelResource.getContents().get(0));
- }
- } else {
- // load Ecore resource
- if (eObject.eResource().getURI() != null) {
- getResourceSet().getResource(eObject.eResource().getURI(), true);
- }
- }
- }
-
- /**
* Defines bindings between EClass/ EStructuralFeatures and
* views/representations.
*
@@ -232,7 +181,7 @@ public class GenericBindingSettings implements EEFBindingSettings<PropertiesEdit org.eclipse.emf.eef.views.View createdView = builder.createViewForEClassBinding(eObject);
// get eClass in environment resource set
- EPackage ePackage = getEPackageFromResourceSet(eObject);
+ EPackage ePackage = GenericBindingSettingsUtil.getEPackageFromResourceSet(eObject.getEPackage(), getEditingModelEnvironment());
EClass eClass = getEMFServiceProvider().getEMFService(ePackage).mapEClass(ePackage, eObject);
// create EClassBinding and link the createdView
@@ -252,68 +201,17 @@ public class GenericBindingSettings implements EEFBindingSettings<PropertiesEdit }
/**
- * Get eObject ePackage
- *
- * @param eObject
- * EObject
- */
- protected EPackage getEPackageFromResourceSet(EClass eObject) {
- for (Resource resource : editingModelEnvironment.getResourceSet().getResources()) {
- for (EObject content : resource.getContents()) {
- if (content instanceof EPackage) {
- EPackage ePackageFromResourceSet = getEPackageFromResourceSet(((EPackage) content), eObject);
- if (ePackageFromResourceSet != null) {
- return ePackageFromResourceSet;
- }
- }
- }
- }
- return null;
- }
-
- private EPackage getEPackageFromResourceSet(EPackage ePackage, EClass eObject) {
- if (ePackage.getNsURI().equals(eObject.getEPackage().getNsURI())) {
- return ePackage;
- }
- for (EPackage subPackage : ePackage.getESubpackages()) {
- EPackage ePackageFromResourceSet = getEPackageFromResourceSet(subPackage, eObject);
- if (ePackageFromResourceSet != null) {
- return ePackageFromResourceSet;
- }
- }
- return null;
- }
-
- /**
* @param eObject
* EObject
* @return the existing PropertiesEditingModel if exists, else create one.
*/
private Resource getPropertiesEditingModel(EClass eObject) {
- PropertiesEditingModel propertiesEditingModel = null;
- Resource resource = null;
String uri = eObject.getEPackage().getNsURI();
+ Resource resource = null;
if (mapURI2PropertiesEditingModelResource.get(uri) == null) {
- propertiesEditingModel = EditingModelFactory.eINSTANCE.createPropertiesEditingModel();
- propertiesEditingModel.setId(PROPERTIES_EDITING_MODEL_ID);
- String modelName = PROPERTIES_EDITING_MODEL_NAME;
- if (eObject.getEPackage().getName() != null) {
- modelName = eObject.getEPackage().getName() + " " + modelName;
- }
- propertiesEditingModel.setName(modelName);
- propertiesEditingModel.setEMFServiceProvider(emfServiceProvider);
- resource = new ResourceImpl(URI.createURI(eObject.getEPackage().getNsURI() + ".editingModel"));
- resource.getContents().add(propertiesEditingModel);
- ViewsRepository viewsRepository = ViewsFactory.eINSTANCE.createViewsRepository();
- viewsRepository.setName(eObject.getEPackage().getName() + " View Repository");
- resource.getContents().add(viewsRepository);
+ resource = GenericBindingSettingsUtil.initPropertiesEditingModel(eObject.getEPackage(), getEMFServiceProvider(), getEditingModelEnvironment());
getResourceSet().getResources().add(resource);
mapURI2PropertiesEditingModelResource.put(uri, resource);
-
- // bind genmodel if exist
- bindGenModel(eObject, propertiesEditingModel);
- EPackage ePackage = getEPackageFromResourceSet(eObject);
- propertiesEditingModel.getInvolvedModels().add(ePackage);
} else {
resource = mapURI2PropertiesEditingModelResource.get(uri);
if (!getResourceSet().getResources().contains(resource)) {
@@ -386,7 +284,7 @@ public class GenericBindingSettings implements EEFBindingSettings<PropertiesEdit * @see org.eclipse.emf.eef.runtime.binding.settings.EEFBindingSettings#getEditingModel(org.eclipse.emf.ecore.EPackage)
*/
public PropertiesEditingModel getEditingModel(EPackage ePackage) {
- return getPropertiesEditionModel(mapURI2PropertiesEditingModelResource.get(ePackage.getNsURI()));
+ return GenericBindingSettingsUtil.getPropertiesEditionModel(mapURI2PropertiesEditingModelResource.get(ePackage.getNsURI()));
}
/**
diff --git a/plugins/org.eclipse.emf.eef.runtime.ui.swt/src/org/eclipse/emf/eef/runtime/ui/swt/internal/binding/settings/GenericBindingSettingsUtil.java b/plugins/org.eclipse.emf.eef.runtime.ui.swt/src/org/eclipse/emf/eef/runtime/ui/swt/internal/binding/settings/GenericBindingSettingsUtil.java new file mode 100644 index 000000000..ca61e6bf7 --- /dev/null +++ b/plugins/org.eclipse.emf.eef.runtime.ui.swt/src/org/eclipse/emf/eef/runtime/ui/swt/internal/binding/settings/GenericBindingSettingsUtil.java @@ -0,0 +1,147 @@ +/*******************************************************************************
+ * Copyright (c) 2015 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.eef.runtime.ui.swt.internal.binding.settings;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceImpl;
+import org.eclipse.emf.eef.runtime.editingModel.EditingModelEnvironment;
+import org.eclipse.emf.eef.runtime.editingModel.EditingModelFactory;
+import org.eclipse.emf.eef.runtime.editingModel.PropertiesEditingModel;
+import org.eclipse.emf.eef.runtime.util.EMFServiceProvider;
+import org.eclipse.emf.eef.views.ViewsFactory;
+import org.eclipse.emf.eef.views.ViewsRepository;
+
+/**
+ * Generic binding settings for EObject.
+ *
+ * @author <a href="mailto:nathalie.lepine@obeo.fr">Nathalie Lepine</a>
+ *
+ */
+public class GenericBindingSettingsUtil {
+
+ public static final String PROPERTIES_EDITING_MODEL_NAME = "Binding Settings";
+ public static final String PROPERTIES_EDITING_MODEL_ID = "org.eclipse.emf.eef.runtime.ui.swt.genericBindingSetting";
+
+ /**
+ * @param resource
+ * @return viewsRepository
+ */
+ public static ViewsRepository getViewsRepository(Resource resource) {
+ if (resource.getContents().size() == 2 && resource.getContents().get(1) instanceof ViewsRepository) {
+ return (ViewsRepository) resource.getContents().get(1);
+ }
+ return null;
+ }
+
+ /**
+ * @param resource
+ * Resource
+ * @return propertiesEditingModel
+ */
+ public static PropertiesEditingModel getPropertiesEditionModel(Resource resource) {
+ if (resource.getContents().size() == 2 && resource.getContents().get(0) instanceof PropertiesEditingModel) {
+ return (PropertiesEditingModel) resource.getContents().get(0);
+ }
+ return null;
+ }
+
+ /**
+ * Get genmodel if exists.
+ *
+ * @param eObject
+ * EObject
+ * @param propertiesEditingModel
+ * PropertiesEditingModel
+ */
+ @SuppressWarnings("deprecation")
+ protected static void bindGenModel(EPackage eObject, PropertiesEditingModel propertiesEditingModel, ResourceSet resourceSet) {
+ URI uri = EcorePlugin.getEPackageNsURIToGenModelLocationMap().get(eObject.getNsURI());
+ if (uri != null) {
+ Resource genModelResource = resourceSet.getResource(uri, true);
+ if (!genModelResource.getContents().isEmpty()) {
+ propertiesEditingModel.getInvolvedModels().add(genModelResource.getContents().get(0));
+ }
+ } else {
+ // load Ecore resource
+ if (eObject.eResource().getURI() != null) {
+ resourceSet.getResource(eObject.eResource().getURI(), true);
+ }
+ }
+ }
+
+ /**
+ * Get eObject ePackage
+ *
+ * @param eObject
+ * EObject
+ */
+ protected static EPackage getEPackageFromResourceSet(EPackage eObject, EditingModelEnvironment editingModelEnvironment) {
+ for (Resource resource : editingModelEnvironment.getResourceSet().getResources()) {
+ for (EObject content : resource.getContents()) {
+ if (content instanceof EPackage) {
+ EPackage ePackageFromResourceSet = getEPackageFromResourceSet(((EPackage) content), eObject);
+ if (ePackageFromResourceSet != null) {
+ return ePackageFromResourceSet;
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ private static EPackage getEPackageFromResourceSet(EPackage ePackage, EPackage eObject) {
+ if (ePackage.getNsURI().equals(eObject.getNsURI())) {
+ return ePackage;
+ }
+ for (EPackage subPackage : ePackage.getESubpackages()) {
+ EPackage ePackageFromResourceSet = getEPackageFromResourceSet(subPackage, eObject);
+ if (ePackageFromResourceSet != null) {
+ return ePackageFromResourceSet;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Init PropertiesEditingModel.
+ *
+ * @param eClass
+ * @return PropertiesEditingModel Resource
+ */
+ public static Resource initPropertiesEditingModel(EPackage ePackage, EMFServiceProvider emfServiceProvider, EditingModelEnvironment editingModelEnvironment) {
+ PropertiesEditingModel propertiesEditingModel = null;
+ propertiesEditingModel = EditingModelFactory.eINSTANCE.createPropertiesEditingModel();
+ propertiesEditingModel.setId(PROPERTIES_EDITING_MODEL_ID);
+ String modelName = PROPERTIES_EDITING_MODEL_NAME;
+ if (ePackage.getName() != null) {
+ modelName = ePackage.getName() + " " + modelName;
+ }
+ propertiesEditingModel.setName(modelName);
+ propertiesEditingModel.setEMFServiceProvider(emfServiceProvider);
+ Resource resource = new ResourceImpl(URI.createURI(ePackage.getNsURI() + ".editingModel"));
+ resource.getContents().add(propertiesEditingModel);
+ ViewsRepository viewsRepository = ViewsFactory.eINSTANCE.createViewsRepository();
+ viewsRepository.setName(ePackage.getName() + " View Repository");
+ resource.getContents().add(viewsRepository);
+
+ // bind genmodel if exist
+ bindGenModel(ePackage, propertiesEditingModel, editingModelEnvironment.getResourceSet());
+ EPackage ePackageFromResourceSet = getEPackageFromResourceSet(ePackage, editingModelEnvironment);
+ propertiesEditingModel.getInvolvedModels().add(ePackageFromResourceSet);
+ return resource;
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.eef.runtime.ui.swt/src/org/eclipse/emf/eef/runtime/ui/swt/internal/view/propertyeditors/impl/emfpropertiestoolkit/ecomboeditor/EComboPropertyEditor.java b/plugins/org.eclipse.emf.eef.runtime.ui.swt/src/org/eclipse/emf/eef/runtime/ui/swt/internal/view/propertyeditors/impl/emfpropertiestoolkit/ecomboeditor/EComboPropertyEditor.java index f9c880163..5286c8ff6 100644 --- a/plugins/org.eclipse.emf.eef.runtime.ui.swt/src/org/eclipse/emf/eef/runtime/ui/swt/internal/view/propertyeditors/impl/emfpropertiestoolkit/ecomboeditor/EComboPropertyEditor.java +++ b/plugins/org.eclipse.emf.eef.runtime.ui.swt/src/org/eclipse/emf/eef/runtime/ui/swt/internal/view/propertyeditors/impl/emfpropertiestoolkit/ecomboeditor/EComboPropertyEditor.java @@ -57,7 +57,8 @@ public class EComboPropertyEditor extends PropertyEditorImpl implements Monovalu protected PropertyEditorViewer<SingleLinePropertyViewer> propertyEditorViewer; private SingleLinePropertyViewerListener listener; - public EComboPropertyEditor(EMFServiceProvider emfServiceProvider, EEFEditingServiceProvider eefEditingServiceProvider, EditUIProvidersFactory editUIProvidersFactory, ImageManager imageManager, ViewerFilterBuilderProvider filterBuilderProvider, PropertiesEditingView<Composite> view, ElementEditor elementEditor, PropertyEditorViewer<SingleLinePropertyViewer> propertyEditorViewer) { + public EComboPropertyEditor(EMFServiceProvider emfServiceProvider, EEFEditingServiceProvider eefEditingServiceProvider, EditUIProvidersFactory editUIProvidersFactory, ImageManager imageManager, ViewerFilterBuilderProvider filterBuilderProvider, PropertiesEditingView<Composite> view, + ElementEditor elementEditor, PropertyEditorViewer<SingleLinePropertyViewer> propertyEditorViewer) { this.emfServiceProvider = emfServiceProvider; this.eefEditingServiceProvider = eefEditingServiceProvider; this.editUIProvidersFactory = editUIProvidersFactory; @@ -70,11 +71,13 @@ public class EComboPropertyEditor extends PropertyEditorImpl implements Monovalu /** * {@inheritDoc} + * * @see org.eclipse.emf.eef.runtime.ui.view.propertyeditors.PropertyEditor#init() */ public void init() { EEFViewerInput input = new EEFViewerInput(eefEditingServiceProvider, view.getEditingComponent().getEditingContext(), elementEditor); propertyEditorViewer.getViewer().setInput(input); + propertyEditorViewer.getViewer().setValue(); PropertyBinding propertyBinding = view.getEditingComponent().getBinding().propertyBinding(elementEditor, view.getEditingComponent().getEditingContext().getOptions().autowire()); if (propertyBinding != null) { EList<EditorSettings> settings = propertyBinding.getSettings(); @@ -82,7 +85,7 @@ public class EComboPropertyEditor extends PropertyEditorImpl implements Monovalu if (editorSettings instanceof EReferenceFilter) { EReferenceFilter eReferenceFilter = (EReferenceFilter) editorSettings; ViewerFilter viewerFilter = filterBuilderProvider.getFilterBuilder(eReferenceFilter).buildFilter(view.getEditingComponent().getEditingContext(), view, eReferenceFilter); - ((FilterablePropertyEditor)propertyEditorViewer).addFilter(viewerFilter); + ((FilterablePropertyEditor) propertyEditorViewer).addFilter(viewerFilter); } } } @@ -93,6 +96,7 @@ public class EComboPropertyEditor extends PropertyEditorImpl implements Monovalu /** * {@inheritDoc} + * * @see org.eclipse.emf.eef.runtime.ui.view.propertyeditors.PropertyEditor#getPropertyEditorViewer() */ public PropertyEditorViewer<?> getPropertyEditorViewer() { @@ -101,6 +105,7 @@ public class EComboPropertyEditor extends PropertyEditorImpl implements Monovalu /** * {@inheritDoc} + * * @see org.eclipse.emf.eef.runtime.ui.view.propertyeditors.MonovaluedPropertyEditor#setValue(java.lang.Object) */ public void setValue(Object value) { @@ -111,11 +116,12 @@ public class EComboPropertyEditor extends PropertyEditorImpl implements Monovalu /** * {@inheritDoc} + * * @see org.eclipse.emf.eef.runtime.ui.view.propertyeditors.MonovaluedPropertyEditor#unsetValue() */ public void unsetValue() { listener.disable(); - propertyEditorViewer.getViewer().setInput(null); + propertyEditorViewer.getViewer().setInput(null); listener.enable(); } @@ -130,14 +136,18 @@ public class EComboPropertyEditor extends PropertyEditorImpl implements Monovalu } /** - * Creates the listener to add to the viewer in order to process viewer events. - * @return the {@link SingleLinePropertyViewerListener} to add to the viewer. + * Creates the listener to add to the viewer in order to process viewer + * events. + * + * @return the {@link SingleLinePropertyViewerListener} to add to the + * viewer. */ protected SingleLinePropertyViewerListener createPropertyViewerListener() { return new SingleLinePropertyViewerListener(this, view, elementEditor, propertyEditorViewer.getViewer()) { /** * {@inheritDoc} + * * @see org.eclipse.emf.eef.runtime.ui.widgets.EComboEditor.EComboListener#set() */ public void set() { @@ -147,14 +157,8 @@ public class EComboPropertyEditor extends PropertyEditorImpl implements Monovalu dialog.setAdapterFactory(view.getEditingComponent().getEditingContext().getAdapterFactory()); dialog.setEditUIProvidersFactory(editUIProvidersFactory); dialog.setImageManager(imageManager); - dialog.addFilter( - new ChoiceOfValuesFilter( - eefEditingServiceProvider, - view.getEditingComponent().getEditingContext(), - view.getEditingComponent().getEObject(), - elementEditor, - EEFSWTConstants.DEFAULT_SELECTION_MODE)); - Collection<ViewerFilter> filters = ((FilterablePropertyEditor)propertyEditorViewer).getFilters(); + dialog.addFilter(new ChoiceOfValuesFilter(eefEditingServiceProvider, view.getEditingComponent().getEditingContext(), view.getEditingComponent().getEObject(), elementEditor, EEFSWTConstants.DEFAULT_SELECTION_MODE)); + Collection<ViewerFilter> filters = ((FilterablePropertyEditor) propertyEditorViewer).getFilters(); if (!filters.isEmpty()) { for (ViewerFilter viewerFilter : filters) { dialog.addFilter(viewerFilter); @@ -172,6 +176,7 @@ public class EComboPropertyEditor extends PropertyEditorImpl implements Monovalu /** * {@inheritDoc} + * * @see org.eclipse.emf.eef.runtime.ui.widgets.EComboEditor.EComboListener#clear() */ public void clear() { @@ -180,10 +185,8 @@ public class EComboPropertyEditor extends PropertyEditorImpl implements Monovalu viewer.refresh(); } } - + }; } - - } diff --git a/plugins/org.eclipse.emf.eef.runtime.ui.swt/src/org/eclipse/emf/eef/runtime/ui/swt/internal/view/propertyeditors/impl/emfpropertiestoolkit/singlecontainmenteditor/SingleContainmentSWTPropertyEditor.java b/plugins/org.eclipse.emf.eef.runtime.ui.swt/src/org/eclipse/emf/eef/runtime/ui/swt/internal/view/propertyeditors/impl/emfpropertiestoolkit/singlecontainmenteditor/SingleContainmentSWTPropertyEditor.java index 38ae0bb74..306e6ab5c 100644 --- a/plugins/org.eclipse.emf.eef.runtime.ui.swt/src/org/eclipse/emf/eef/runtime/ui/swt/internal/view/propertyeditors/impl/emfpropertiestoolkit/singlecontainmenteditor/SingleContainmentSWTPropertyEditor.java +++ b/plugins/org.eclipse.emf.eef.runtime.ui.swt/src/org/eclipse/emf/eef/runtime/ui/swt/internal/view/propertyeditors/impl/emfpropertiestoolkit/singlecontainmenteditor/SingleContainmentSWTPropertyEditor.java @@ -24,11 +24,11 @@ public class SingleContainmentSWTPropertyEditor extends StandardSWTPropertyEdito private ImageManager imageManager; private SingleLinePropertyViewer singleContainmentComboEditor; - + /** * @param view * @param elementEditor - * @param imageManager + * @param imageManager */ public SingleContainmentSWTPropertyEditor(EditUIProvidersFactory editUIProvidersFactory, ImageManager imageManager, PropertiesEditingView<Composite> view, ElementEditor elementEditor) { super(view, elementEditor); @@ -38,6 +38,7 @@ public class SingleContainmentSWTPropertyEditor extends StandardSWTPropertyEdito /** * {@inheritDoc} + * * @see org.eclipse.emf.eef.runtime.ui.view.propertyeditors.PropertyEditorViewer#getViewer() */ public SingleLinePropertyViewer getViewer() { @@ -46,6 +47,7 @@ public class SingleContainmentSWTPropertyEditor extends StandardSWTPropertyEdito /** * {@inheritDoc} + * * @see org.eclipse.emf.eef.runtime.ui.swt.internal.view.propertyeditors.impl.StandardSWTPropertyEditor#createEditorContents(org.eclipse.swt.widgets.Composite) */ @Override @@ -61,6 +63,7 @@ public class SingleContainmentSWTPropertyEditor extends StandardSWTPropertyEdito /** * {@inheritDoc} + * * @see org.eclipse.emf.eef.runtime.ui.swt.e3.internal.view.propertyeditors.impl.StandardFormPropertyEditor#lock() */ @Override @@ -70,6 +73,7 @@ public class SingleContainmentSWTPropertyEditor extends StandardSWTPropertyEdito /** * {@inheritDoc} + * * @see org.eclipse.emf.eef.runtime.ui.swt.e3.internal.view.propertyeditors.impl.StandardFormPropertyEditor#unlock() */ @Override diff --git a/plugins/org.eclipse.emf.eef.runtime.ui.swt/src/org/eclipse/emf/eef/runtime/ui/swt/internal/widgets/EEFSelectionDialog.java b/plugins/org.eclipse.emf.eef.runtime.ui.swt/src/org/eclipse/emf/eef/runtime/ui/swt/internal/widgets/EEFSelectionDialog.java index 08f792367..a34d67bee 100644 --- a/plugins/org.eclipse.emf.eef.runtime.ui.swt/src/org/eclipse/emf/eef/runtime/ui/swt/internal/widgets/EEFSelectionDialog.java +++ b/plugins/org.eclipse.emf.eef.runtime.ui.swt/src/org/eclipse/emf/eef/runtime/ui/swt/internal/widgets/EEFSelectionDialog.java @@ -15,6 +15,7 @@ import java.util.List; import org.eclipse.emf.common.notify.AdapterFactory; import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.resource.ResourceSet; import org.eclipse.emf.eef.runtime.ui.UIConstants; import org.eclipse.emf.eef.runtime.ui.swt.EEFRuntimeUISWT; @@ -73,6 +74,8 @@ public class EEFSelectionDialog extends TrayDialog { private Text urisToLoad; + private StructuredSelection initialSelection; + /** * @param parent */ @@ -186,6 +189,7 @@ public class EEFSelectionDialog extends TrayDialog { okPressed(); } }); + initSelection(); Group modelLoading = new Group(control, SWT.BORDER); modelLoading.setText("Model loading"); modelLoading.setLayout(new GridLayout(3, false)); @@ -245,6 +249,16 @@ public class EEFSelectionDialog extends TrayDialog { } /** + * Init the viewer selection. TODO: better implementation for expandAll. + */ + public void initSelection() { + if (initialSelection != null) { + selectionViewer.expandAll(); + selectionViewer.setSelection(initialSelection); + } + } + + /** * Creates the selection viewer. * * @param parent @@ -440,4 +454,14 @@ public class EEFSelectionDialog extends TrayDialog { return result; } + /** + * Set tree viewer initial selection. + * + * @param eObject + * EObject + */ + public void setInitialSelection(EObject eObject) { + initialSelection = new StructuredSelection(eObject); + } + } diff --git a/plugins/org.eclipse.emf.eef.runtime.ui.swt/src/org/eclipse/emf/eef/runtime/ui/swt/internal/widgets/SingleLinePropertyViewer.java b/plugins/org.eclipse.emf.eef.runtime.ui.swt/src/org/eclipse/emf/eef/runtime/ui/swt/internal/widgets/SingleLinePropertyViewer.java index c8d3a12a9..22120ddfe 100644 --- a/plugins/org.eclipse.emf.eef.runtime.ui.swt/src/org/eclipse/emf/eef/runtime/ui/swt/internal/widgets/SingleLinePropertyViewer.java +++ b/plugins/org.eclipse.emf.eef.runtime.ui.swt/src/org/eclipse/emf/eef/runtime/ui/swt/internal/widgets/SingleLinePropertyViewer.java @@ -210,17 +210,31 @@ public class SingleLinePropertyViewer extends Viewer { */ @Override public void refresh() { + setValue(); + updateButtons(); + } + + /** + * @return the current value. + */ + public String getCurrentValue() { + Object value = input.getCurrentValue(); + if (labelProvider != null) { + return labelProvider.getText(value); + } else { + return value.toString(); + } + } + + /** + * Set the text value. + */ + public void setValue() { if (input == null) { text.setText(""); } else { - Object value = input.getCurrentValue(); - if (labelProvider != null) { - text.setText(labelProvider.getText(value)); - } else { - text.setText(value.toString()); - } + text.setText(getCurrentValue()); } - updateButtons(); } /** diff --git a/plugins/org.eclipse.emf.eef.runtime.ui.swt/src/org/eclipse/emf/eef/runtime/ui/swt/wizard/EEFEditingWizard.java b/plugins/org.eclipse.emf.eef.runtime.ui.swt/src/org/eclipse/emf/eef/runtime/ui/swt/wizard/EEFEditingWizard.java index f31ca4e49..38619b333 100644 --- a/plugins/org.eclipse.emf.eef.runtime.ui.swt/src/org/eclipse/emf/eef/runtime/ui/swt/wizard/EEFEditingWizard.java +++ b/plugins/org.eclipse.emf.eef.runtime.ui.swt/src/org/eclipse/emf/eef/runtime/ui/swt/wizard/EEFEditingWizard.java @@ -98,7 +98,15 @@ public class EEFEditingWizard extends Wizard { creationPage.setInput(listOfInstanciableType); addPage(creationPage); } else { - createdObject = EcoreUtil.create(listOfInstanciableType.iterator().next()); + if (!editedReference.isMany()) { + Object eGet = semanticEditingContext.getEditingComponent().getEObject().eGet(editedReference); + if (eGet instanceof EObject) { + createdObject = (EObject) eGet; + } + } + if (createdObject == null) { + createdObject = EcoreUtil.create(listOfInstanciableType.iterator().next()); + } createObject(createdObject); } } else { |