Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLaurent Wouters2014-03-14 13:51:50 +0000
committerLaurent Wouters2014-03-14 13:54:22 +0000
commitf515b310417b386c79d9fbd2500c5373a7179aa7 (patch)
tree1785439bb2467282b35964ab71c18f8e2fffff38 /plugins/infra
parent832ceab5e78772d2b483348f620de7b47a4c091f (diff)
downloadorg.eclipse.papyrus-f515b310417b386c79d9fbd2500c5373a7179aa7.tar.gz
org.eclipse.papyrus-f515b310417b386c79d9fbd2500c5373a7179aa7.tar.xz
org.eclipse.papyrus-f515b310417b386c79d9fbd2500c5373a7179aa7.zip
399860: Papyrus shall enable to customize the creation policy of views
https://bugs.eclipse.org/bugs/show_bug.cgi?id=399860 Signed-off-by: Laurent Wouters <laurent.wouters@cea.fr>
Diffstat (limited to 'plugins/infra')
-rwxr-xr-xplugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/.classpath7
-rwxr-xr-xplugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/.project28
-rwxr-xr-xplugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/.settings/org.eclipse.jdt.core.prefs7
-rwxr-xr-xplugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/META-INF/MANIFEST.MF13
-rwxr-xr-xplugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/about.html28
-rwxr-xr-xplugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/build.properties9
-rwxr-xr-xplugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/icons/classf_obj.gifbin0 -> 373 bytes
-rwxr-xr-xplugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/icons/file_obj.gifbin0 -> 354 bytes
-rwxr-xr-xplugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/icons/jar_obj.gifbin0 -> 587 bytes
-rwxr-xr-xplugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/icons/packagefolder_obj.gifbin0 -> 709 bytes
-rwxr-xr-xplugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/icons/plugin_obj.gifbin0 -> 328 bytes
-rwxr-xr-xplugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/icons/sample.gifbin0 -> 983 bytes
-rwxr-xr-xplugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/plugin.properties16
-rwxr-xr-xplugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/plugin.xml15
-rwxr-xr-xplugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/pluginexplorer.pdoc4
-rwxr-xr-xplugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/src/org/eclipse/papyrus/infra/core/pluginexplorer/Activator.java99
-rwxr-xr-xplugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/src/org/eclipse/papyrus/infra/core/pluginexplorer/EmbeddedFile.java125
-rwxr-xr-xplugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/src/org/eclipse/papyrus/infra/core/pluginexplorer/PhysicalFile.java147
-rwxr-xr-xplugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/src/org/eclipse/papyrus/infra/core/pluginexplorer/Plugin.java227
-rwxr-xr-xplugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/src/org/eclipse/papyrus/infra/core/pluginexplorer/PluginEntry.java76
-rwxr-xr-xplugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/src/org/eclipse/papyrus/infra/core/pluginexplorer/PluginsContentDialog.java182
-rwxr-xr-xplugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/src/org/eclipse/papyrus/infra/core/pluginexplorer/PluginsContentLabelProvider.java33
-rwxr-xr-xplugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/src/org/eclipse/papyrus/infra/core/pluginexplorer/PluginsContentProvider.java124
-rwxr-xr-xplugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/src/org/eclipse/papyrus/infra/core/pluginexplorer/PluginsContentSelectionValidator.java34
-rwxr-xr-xplugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/src/org/eclipse/papyrus/infra/core/pluginexplorer/PluginsContentView.java154
-rw-r--r--plugins/infra/gmfdiag/css/org.eclipse.papyrus.infra.gmfdiag.css/META-INF/MANIFEST.MF1
-rw-r--r--plugins/infra/gmfdiag/css/org.eclipse.papyrus.infra.gmfdiag.css/src/org/eclipse/papyrus/infra/gmfdiag/css/notation/CSSDiagramImpl.java27
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.commands/META-INF/MANIFEST.MF1
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.commands/src/org/eclipse/papyrus/commands/ICreationCommand.java74
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/META-INF/MANIFEST.MF2
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/plugin.xml95
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/AbstractPapyrusGmfCreateDiagramCommandHandler.java793
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/GmfEditorFactory.java3
-rwxr-xr-xplugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/handler/DynamicDiagramsMenuContribution.java101
-rwxr-xr-xplugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/helper/DiagramEditHelper.java178
-rwxr-xr-xplugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/helper/DiagramPrototype.java120
-rwxr-xr-xplugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/helper/GMFDiagramViewTypeHelper.java165
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/helper/NotationHelper.java14
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/model/NotationUtils.java482
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/providers/NotationLabelProvider.java34
-rwxr-xr-xplugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/utils/DiagramUtils.java124
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.controlmode/src/org/eclipse/papyrus/infra/gmfdiag/controlmode/ControlDiagramsCommand.java2
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.modelexplorer/META-INF/MANIFEST.MF4
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.modelexplorer/plugin.xml29
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.modelexplorer/src/org/eclipse/papyrus/infra/gmfdiag/modelexplorer/queries/GetContainedDiagrams.java3
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.modelexplorer/src/org/eclipse/papyrus/infra/gmfdiag/modelexplorer/queries/GetDiagramIcon.java5
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.modelexplorer/src/org/eclipse/papyrus/infra/gmfdiag/modelexplorer/queries/IsDiagramContainer.java3
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.navigation/src/org/eclipse/papyrus/infra/gmfdiag/navigation/CreateDiagramWithNavigationHandler.java173
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/META-INF/MANIFEST.MF3
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/model/notation/notation.ctx110
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/model/notation/ui/SingleDiagram.xwt4
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/src/org/eclipse/papyrus/infra/gmfdiag/properties/modelelement/GMFModelElement.java88
-rwxr-xr-xplugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/src/org/eclipse/papyrus/infra/gmfdiag/properties/provider/ModelContentProvider.java78
-rwxr-xr-xplugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/src/org/eclipse/papyrus/infra/gmfdiag/properties/util/LegacyOwnerObservable.java158
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.common/META-INF/MANIFEST.MF3
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.common/plugin.xml70
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.common/src/org/eclipse/papyrus/infra/nattable/common/handlers/AbstractCreateNattableEditorHandler.java38
-rwxr-xr-xplugins/infra/nattable/org.eclipse.papyrus.infra.nattable.common/src/org/eclipse/papyrus/infra/nattable/common/handlers/DynamicTablesMenuContribution.java102
-rwxr-xr-xplugins/infra/nattable/org.eclipse.papyrus.infra.nattable.common/src/org/eclipse/papyrus/infra/nattable/common/handlers/PolicyDefinedTableHandler.java78
-rwxr-xr-xplugins/infra/nattable/org.eclipse.papyrus.infra.nattable.common/src/org/eclipse/papyrus/infra/nattable/common/helper/SyncTableCommandHelper.java112
-rwxr-xr-xplugins/infra/nattable/org.eclipse.papyrus.infra.nattable.common/src/org/eclipse/papyrus/infra/nattable/common/helper/TableCommandHelper.java69
-rwxr-xr-xplugins/infra/nattable/org.eclipse.papyrus.infra.nattable.common/src/org/eclipse/papyrus/infra/nattable/common/helper/TableViewPrototype.java107
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.model/model/nattable.ecore3
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.model/src-gen/org/eclipse/papyrus/infra/nattable/model/nattable/NattablePackage.java79
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.model/src-gen/org/eclipse/papyrus/infra/nattable/model/nattable/Table.java76
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.model/src-gen/org/eclipse/papyrus/infra/nattable/model/nattable/impl/NattablePackageImpl.java41
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.model/src-gen/org/eclipse/papyrus/infra/nattable/model/nattable/impl/TableImpl.java369
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/META-INF/MANIFEST.MF9
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/plugin.xml16
-rwxr-xr-xplugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/resources/PapyrusTable.custom49
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/resources/PapyrusTables.uiCustom68
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/resources/PapyrusTablesFacet.facetSet12
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/resources/PapyrusTablesFacet.querySet13
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/resources/PapyrusTablesFacet.uiCustom17
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/src/org/eclipse/papyrus/infra/nattable/modelexplorer/queries/GetContainedTables.java35
-rwxr-xr-xplugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/src/org/eclipse/papyrus/infra/nattable/modelexplorer/queries/GetTableIcon.java32
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/src/org/eclipse/papyrus/infra/nattable/modelexplorer/queries/IsTableContainer.java72
-rwxr-xr-xplugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/src/org/eclipse/papyrus/infra/nattable/modelexplorer/queries/NotVisibleStructuralFeatureQuery.java37
-rwxr-xr-xplugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/src/org/eclipse/papyrus/infra/nattable/modelexplorer/queries/TablesRefCollapseQuery.java35
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/META-INF/MANIFEST.MF3
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/SingleTable.xwt8
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/modelelement/NatTableModelElement.java50
-rwxr-xr-xplugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/provider/ContextFeatureContentProvider.java65
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/utils/Constants.java2
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.views.config/plugin.xml3
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.views.editor/plugin.xml53
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/schema/org.eclipse.papyrus.infra.nattable.configuration.exsd7
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.hyperlink/META-INF/MANIFEST.MF1
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/.classpath7
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/.project28
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/.settings/org.eclipse.jdt.core.prefs7
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/META-INF/MANIFEST.MF19
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/about.html28
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/build.properties12
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/ctool16/CreateChildRule_insertionPath_PathElement.pngbin0 -> 480 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/ctool16/CreatePapyrusDiagram_childRules_ChildRule.pngbin0 -> 595 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/ctool16/CreatePapyrusDiagram_paletteRules_PaletteRule.pngbin0 -> 629 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/ctool16/CreatePapyrusView_modelRules_ModelRule.pngbin0 -> 674 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/ctool16/CreatePapyrusView_owningRules_OwningRule.pngbin0 -> 626 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/obj16/ChildRule.pngbin0 -> 490 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/obj16/ElementImport.pngbin0 -> 657 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/obj16/ModelRule.pngbin0 -> 577 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/obj16/OwningRule.pngbin0 -> 540 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/obj16/PaletteRule.pngbin0 -> 584 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/obj16/PapyrusConfiguration.pngbin0 -> 747 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/obj16/PapyrusDiagram.pngbin0 -> 453 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/obj16/PapyrusSyncTable.pngbin0 -> 756 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/obj16/PapyrusTable.pngbin0 -> 471 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/obj16/PapyrusView.pngbin0 -> 638 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/obj16/PapyrusViewpoint.pngbin0 -> 620 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/obj16/PathElement.pngbin0 -> 388 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/plugin.properties91
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/plugin.xml22
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/CategoryItemProvider.java169
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/ChildRuleItemProvider.java248
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/ConfigurationEditPlugin.java106
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/ConfigurationItemProviderAdapterFactory.java498
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/ElementImportItemProvider.java182
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/ModelRuleItemProvider.java251
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/OwningRuleItemProvider.java210
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/PaletteRuleItemProvider.java152
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/PapyrusConfigurationItemProvider.java255
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/PapyrusDiagramItemProvider.java226
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/PapyrusSyncTableItemProvider.java115
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/PapyrusTableItemProvider.java148
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/PapyrusViewItemProvider.java316
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/PapyrusViewpointItemProvider.java166
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/PathElementItemProvider.java202
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/RuleItemProvider.java155
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/.classpath7
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/.project28
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/.settings/org.eclipse.jdt.core.prefs7
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/META-INF/MANIFEST.MF21
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/about.html28
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/build.properties11
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/icons/full/obj16/ConfigurationModelFile.pngbin0 -> 747 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/icons/full/wizban/NewConfiguration.pngbin0 -> 3821 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/icons/full/wizban/NewConfiguration.svg250
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/plugin.properties65
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/plugin.xml34
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/src/org/eclipse/papyrus/infra/viewpoints/configuration/presentation/ConfigurationActionBarContributor.java434
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/src/org/eclipse/papyrus/infra/viewpoints/configuration/presentation/ConfigurationEditor.java1795
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/src/org/eclipse/papyrus/infra/viewpoints/configuration/presentation/ConfigurationEditorPlugin.java108
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/src/org/eclipse/papyrus/infra/viewpoints/configuration/presentation/ConfigurationModelWizard.java602
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/.classpath8
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/.project28
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/.settings/org.eclipse.jdt.core.prefs7
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/META-INF/MANIFEST.MF22
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/about.html28
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/build.properties14
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/custom-src/org/eclipse/papyrus/infra/viewpoints/configuration/EClassPropertyDescriptor.java54
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/custom-src/org/eclipse/papyrus/infra/viewpoints/configuration/EPackagePropertyDescriptor.java55
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/custom-src/org/eclipse/papyrus/infra/viewpoints/configuration/EReferencePropertyDescriptor.java42
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/custom-src/org/eclipse/papyrus/infra/viewpoints/configuration/ProfilePropertyDescriptor.java55
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/custom-src/org/eclipse/papyrus/infra/viewpoints/configuration/StereotypePropertyDescriptor.java83
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/custom-src/org/eclipse/papyrus/infra/viewpoints/configuration/SurrogateItemPropertyDescriptor.java69
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/custom-src/org/eclipse/papyrus/infra/viewpoints/configuration/ui/ConfigurationURLSelectionDialog.java149
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/custom-src/org/eclipse/papyrus/infra/viewpoints/configuration/ui/ECoreModelContentProvider.java68
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/custom-src/org/eclipse/papyrus/infra/viewpoints/configuration/ui/IModelElementValidator.java29
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/custom-src/org/eclipse/papyrus/infra/viewpoints/configuration/ui/ModelElementSelectionDialog.java222
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/icons/svg/ChildRule.svg209
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/icons/svg/ElementImport.svg206
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/icons/svg/ModelRule.svg228
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/icons/svg/OwningRule.svg209
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/icons/svg/PaletteRule.svg315
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/icons/svg/PapyrusConfiguration.svg213
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/icons/svg/PapyrusDiagram.svg192
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/icons/svg/PapyrusSyncTable.svg452
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/icons/svg/PapyrusTable.svg440
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/icons/svg/PapyrusView.svg272
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/icons/svg/PapyrusViewpoint.svg199
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/icons/svg/PathElement.svg177
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/icons/svg/Stakeholder.svg320
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/model/configuration.ecore110
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/model/configuration.genmodel46
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/plugin.properties16
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/plugin.xml11
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/Activator.java43
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/Category.java61
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/ChildRule.java124
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/ConfigurationFactory.java161
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/ConfigurationPackage.java2230
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/ElementImport.java89
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/ModelRule.java124
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/OwningRule.java107
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/PaletteRule.java60
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/PapyrusConfiguration.java108
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/PapyrusDiagram.java137
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/PapyrusSyncTable.java28
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/PapyrusTable.java60
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/PapyrusView.java183
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/PapyrusViewpoint.java61
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/PathElement.java95
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/Rule.java62
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/CategoryImpl.java174
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/ChildRuleImpl.java319
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/ConfigurationFactoryImpl.java238
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/ConfigurationPackageImpl.java864
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/ElementImportImpl.java228
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/ModelRuleImpl.java321
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/OwningRuleImpl.java272
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/PaletteRuleImpl.java173
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/PapyrusConfigurationImpl.java281
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/PapyrusDiagramImpl.java354
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/PapyrusSyncTableImpl.java50
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/PapyrusTableImpl.java173
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/PapyrusViewImpl.java442
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/PapyrusViewpointImpl.java168
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/PathElementImpl.java255
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/RuleImpl.java174
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/util/ConfigurationAdapterFactory.java438
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/util/ConfigurationSwitch.java474
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/.classpath6
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/.project28
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/.settings/org.eclipse.core.resources.prefs3
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/.settings/org.eclipse.jdt.core.prefs7
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/META-INF/MANIFEST.MF8
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/about.html28
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/build.properties6
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/plugin.properties16
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/plugin.xml12
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/resources/captures/config_sample.pngbin0 -> 12893 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/resources/captures/menu_filtered.pngbin0 -> 8668 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/resources/captures/menu_normal.pngbin0 -> 28682 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/resources/captures/preferences.pngbin0 -> 13523 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/resources/captures/properties.pngbin0 -> 19650 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/resources/viewpoints-toc.xml28
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/resources/viewpoints.html34
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/resources/viewpoints.mediawiki240
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/.classpath7
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/.project28
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/.settings/org.eclipse.jdt.core.prefs7
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/META-INF/MANIFEST.MF15
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/about.html28
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/build.properties12
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureDescription_concerns_Concern.gifbin0 -> 223 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureDescription_correspondences_Correspondence.gifbin0 -> 223 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureDescription_decisions_ArchitectureDecision.gifbin0 -> 223 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureDescription_expresses_Architecture.gifbin0 -> 223 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureDescription_rationales_ArchitectureRationale.gifbin0 -> 223 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureDescription_rules_CorrespondenceRule.gifbin0 -> 223 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureDescription_stakeholders_Stakeholder.pngbin0 -> 582 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureDescription_system_System.gifbin0 -> 223 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureDescription_viewpoints_ArchitectureViewpoint.gifbin0 -> 223 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureDescription_views_ArchitectureView.gifbin0 -> 223 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureFramework_concerns_Concern.gifbin0 -> 223 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureFramework_rules_CorrespondenceRule.gifbin0 -> 223 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureFramework_stakeholders_Stakeholder.pngbin0 -> 582 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureFramework_viewpoints_ArchitectureViewpoint.gifbin0 -> 223 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureView_models_ArchitectureModel.gifbin0 -> 223 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureViewpoint_modelKinds_ModelKind.gifbin0 -> 223 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/Architecture.gifbin0 -> 129 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/ArchitectureDecision.gifbin0 -> 129 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/ArchitectureDescription.gifbin0 -> 129 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/ArchitectureFramework.gifbin0 -> 129 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/ArchitectureModel.gifbin0 -> 129 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/ArchitectureRationale.gifbin0 -> 129 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/ArchitectureView.gifbin0 -> 129 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/ArchitectureViewpoint.gifbin0 -> 129 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/Concern.gifbin0 -> 129 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/Correspondence.gifbin0 -> 129 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/CorrespondenceRule.gifbin0 -> 129 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/ModelKind.gifbin0 -> 129 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/Stakeholder.pngbin0 -> 525 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/System.gifbin0 -> 129 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/plugin.properties95
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/plugin.xml22
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/ADElementItemProvider.java180
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/ArchitectureDecisionItemProvider.java261
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/ArchitectureDescriptionItemProvider.java241
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/ArchitectureFrameworkItemProvider.java199
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/ArchitectureItemProvider.java156
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/ArchitectureModelItemProvider.java146
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/ArchitectureRationaleItemProvider.java146
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/ArchitectureViewItemProvider.java214
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/ArchitectureViewpointItemProvider.java214
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/ConcernItemProvider.java238
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/CorrespondenceItemProvider.java179
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/CorrespondenceRuleItemProvider.java156
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/Iso42010EditPlugin.java100
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/Iso42010ItemProviderAdapterFactory.java522
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/ModelKindItemProvider.java146
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/StakeholderItemProvider.java187
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/SystemItemProvider.java213
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/.classpath7
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/.project28
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/.settings/org.eclipse.jdt.core.prefs7
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/META-INF/MANIFEST.MF16
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/about.html28
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/build.properties12
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/model/iso42010.ecore129
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/model/iso42010.genmodel84
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/plugin.properties16
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/plugin.xml18
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/ADElement.java82
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/Activator.java43
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/Architecture.java63
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/ArchitectureDecision.java148
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/ArchitectureDescription.java226
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/ArchitectureFramework.java104
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/ArchitectureModel.java91
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/ArchitectureRationale.java53
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/ArchitectureView.java101
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/ArchitectureViewpoint.java101
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/Concern.java129
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/Correspondence.java72
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/CorrespondenceRule.java55
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/Iso42010Factory.java170
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/Iso42010Package.java2304
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/ModelKind.java82
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/Stakeholder.java99
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/System.java111
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/ADElementImpl.java248
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/ArchitectureDecisionImpl.java368
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/ArchitectureDescriptionImpl.java557
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/ArchitectureFrameworkImpl.java274
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/ArchitectureImpl.java220
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/ArchitectureModelImpl.java295
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/ArchitectureRationaleImpl.java176
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/ArchitectureViewImpl.java308
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/ArchitectureViewpointImpl.java308
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/ConcernImpl.java331
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/CorrespondenceImpl.java214
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/CorrespondenceRuleImpl.java178
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/Iso42010FactoryImpl.java263
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/Iso42010PackageImpl.java1007
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/ModelKindImpl.java253
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/StakeholderImpl.java303
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/SystemImpl.java336
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/util/Iso42010AdapterFactory.java397
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/util/Iso42010Switch.java437
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/.classpath8
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/.project28
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/.settings/org.eclipse.core.resources.prefs2
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/.settings/org.eclipse.jdt.core.prefs7
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/META-INF/MANIFEST.MF29
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/about.html28
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/build.properties14
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/builtin/default.configuration195
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/icons/Diagram_Package.gifbin0 -> 111 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/icons/NewDiagram.gifbin0 -> 917 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/icons/NewTable.gifbin0 -> 907 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/icons/Table.gifbin0 -> 893 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/icons/UnavailableDiagram.gifbin0 -> 915 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/icons/UnavailableTable.gifbin0 -> 914 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/icons/UnavailableView.gifbin0 -> 901 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/icons/View.gifbin0 -> 898 bytes
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/messages.properties13
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/model/style.ecore10
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/model/style.genmodel17
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/plugin.properties16
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/plugin.xml51
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/schema/custom.exsd113
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/schema/profilehelper.exsd102
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/schema/viewType.exsd102
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src-gen/org/eclipse/papyrus/infra/viewpoints/style/PapyrusViewStyle.java91
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src-gen/org/eclipse/papyrus/infra/viewpoints/style/StyleFactory.java53
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src-gen/org/eclipse/papyrus/infra/viewpoints/style/StylePackage.java200
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src-gen/org/eclipse/papyrus/infra/viewpoints/style/impl/PapyrusViewStyleImpl.java229
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src-gen/org/eclipse/papyrus/infra/viewpoints/style/impl/StyleFactoryImpl.java106
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src-gen/org/eclipse/papyrus/infra/viewpoints/style/impl/StylePackageImpl.java210
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src-gen/org/eclipse/papyrus/infra/viewpoints/style/util/StyleAdapterFactory.java151
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src-gen/org/eclipse/papyrus/infra/viewpoints/style/util/StyleSwitch.java139
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/Activator.java79
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/DynamicCommandHandler.java68
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/DynamicContribution.java77
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/IProfileHelper.java47
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/IViewTypeHelper.java60
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/ModelAddData.java195
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/NotationUtils.java168
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/PolicyChecker.java978
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/PreferenceConstants.java73
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/PreferenceInitializer.java41
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/ProfileUtils.java86
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/UnavailableViewPrototype.java135
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/ViewPrototype.java440
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/ViewPrototypeContentProvider.java255
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/ViewpointExplorer.java90
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/WeightedConfiguration.java123
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.preferences/.classpath7
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.preferences/.project28
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.preferences/.settings/org.eclipse.jdt.core.prefs7
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.preferences/META-INF/MANIFEST.MF18
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.preferences/about.html28
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.preferences/build.properties8
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.preferences/plugin.properties16
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.preferences/plugin.xml20
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.preferences/src/org/eclipse/papyrus/infra/viewpoints/preferences/Activator.java63
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.preferences/src/org/eclipse/papyrus/infra/viewpoints/preferences/ResourceFieldEditor.java158
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.preferences/src/org/eclipse/papyrus/infra/viewpoints/preferences/UpdatableComboBoxFieldEditor.java232
-rwxr-xr-xplugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.preferences/src/org/eclipse/papyrus/infra/viewpoints/preferences/ViewpointsPreferencePage.java295
391 files changed, 45932 insertions, 1375 deletions
diff --git a/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/.classpath b/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/.classpath
new file mode 100755
index 00000000000..2d1a4302f04
--- /dev/null
+++ b/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/.project b/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/.project
new file mode 100755
index 00000000000..935d5ed70f1
--- /dev/null
+++ b/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.infra.core.pluginexplorer</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/.settings/org.eclipse.jdt.core.prefs b/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/.settings/org.eclipse.jdt.core.prefs
new file mode 100755
index 00000000000..44217f8c068
--- /dev/null
+++ b/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/META-INF/MANIFEST.MF b/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/META-INF/MANIFEST.MF
new file mode 100755
index 00000000000..140ef3e5e4c
--- /dev/null
+++ b/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/META-INF/MANIFEST.MF
@@ -0,0 +1,13 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.papyrus.infra.core.pluginexplorer;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-Activator: org.eclipse.papyrus.infra.core.pluginexplorer.Activator
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.papyrus.infra.core.log;bundle-version="1.0.0"
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-ActivationPolicy: lazy
+Bundle-Vendor: %providerName
+Export-Package: org.eclipse.papyrus.infra.core.pluginexplorer
diff --git a/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/about.html b/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/about.html
new file mode 100755
index 00000000000..dd02e0be168
--- /dev/null
+++ b/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>December 2, 2009</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/build.properties b/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/build.properties
new file mode 100755
index 00000000000..223e2e481f2
--- /dev/null
+++ b/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/build.properties
@@ -0,0 +1,9 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ about.html,\
+ icons/,\
+ plugin.properties,\
+ plugin.xml
+src.includes = about.html
diff --git a/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/icons/classf_obj.gif b/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/icons/classf_obj.gif
new file mode 100755
index 00000000000..365e3721618
--- /dev/null
+++ b/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/icons/classf_obj.gif
Binary files differ
diff --git a/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/icons/file_obj.gif b/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/icons/file_obj.gif
new file mode 100755
index 00000000000..7ccc6a70317
--- /dev/null
+++ b/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/icons/file_obj.gif
Binary files differ
diff --git a/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/icons/jar_obj.gif b/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/icons/jar_obj.gif
new file mode 100755
index 00000000000..2fa1d777bc7
--- /dev/null
+++ b/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/icons/jar_obj.gif
Binary files differ
diff --git a/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/icons/packagefolder_obj.gif b/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/icons/packagefolder_obj.gif
new file mode 100755
index 00000000000..fca9c53e629
--- /dev/null
+++ b/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/icons/packagefolder_obj.gif
Binary files differ
diff --git a/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/icons/plugin_obj.gif b/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/icons/plugin_obj.gif
new file mode 100755
index 00000000000..8493df40dfe
--- /dev/null
+++ b/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/icons/plugin_obj.gif
Binary files differ
diff --git a/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/icons/sample.gif b/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/icons/sample.gif
new file mode 100755
index 00000000000..34fb3c9d8cb
--- /dev/null
+++ b/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/icons/sample.gif
Binary files differ
diff --git a/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/plugin.properties b/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/plugin.properties
new file mode 100755
index 00000000000..2d32327eb5d
--- /dev/null
+++ b/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/plugin.properties
@@ -0,0 +1,16 @@
+##########################################################################################
+# Copyright (c) 2013 CEA LIST.
+#
+#
+# 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:
+# Laurent Wouters (CEA LIST) laurent.wouters@cea.fr - Initial API and implementation
+#
+########################################################################################
+
+pluginName = Plugin Explorer (Incubation)
+providerName = Eclipse Modeling Project
diff --git a/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/plugin.xml b/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/plugin.xml
new file mode 100755
index 00000000000..8f40342ff2d
--- /dev/null
+++ b/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/plugin.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+ point="org.eclipse.ui.views">
+ <view
+ category="org.eclipse.papyrus.views.category"
+ class="org.eclipse.papyrus.infra.core.pluginexplorer.PluginsContentView"
+ icon="icons/plugin_obj.gif"
+ id="org.eclipse.papyrus.infra.core.pluginexplorer.PluginsContentView"
+ name="Plugin Content Explorer">
+ </view>
+ </extension>
+
+</plugin>
diff --git a/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/pluginexplorer.pdoc b/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/pluginexplorer.pdoc
new file mode 100755
index 00000000000..ca34f5f4af0
--- /dev/null
+++ b/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/pluginexplorer.pdoc
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<doc:Documentation xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:doc="http://www.eclipse.org/papyrus/documentation/plugin/documentation" description="This plugin gives access to the inner content of Eclipse plugins">
+ <referent firstName="Laurent " lastName="Wouters" eMail="laurent.wouters@cea.fr" currentCompany="CEA LIST"/>
+</doc:Documentation>
diff --git a/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/src/org/eclipse/papyrus/infra/core/pluginexplorer/Activator.java b/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/src/org/eclipse/papyrus/infra/core/pluginexplorer/Activator.java
new file mode 100755
index 00000000000..a2aad4c02ce
--- /dev/null
+++ b/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/src/org/eclipse/papyrus/infra/core/pluginexplorer/Activator.java
@@ -0,0 +1,99 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.core.pluginexplorer;
+
+import java.net.URL;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.resource.ImageRegistry;
+import org.eclipse.papyrus.infra.core.log.LogHelper;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.papyrus.infra.core.pluginexplorer"; //$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+
+ // the plugin's context
+ private BundleContext context;
+
+ // The log for this plugin
+ private LogHelper log;
+
+ /**
+ * Gets the context of this plugin
+ * @return The plugin's context
+ */
+ public BundleContext getContext() {
+ return context;
+ }
+
+ /**
+ * Gets the Papyrus log associated with this plugin
+ * @return The Papyrus log for this plugin
+ */
+ public LogHelper getPapyrusLog() {
+ return log;
+ }
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ this.log = new LogHelper(this);
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ this.context = context;
+ ImageRegistry registry = getImageRegistry();
+ registry.put("plugin", ImageDescriptor.createFromURL(new URL("platform:/plugin/" + PLUGIN_ID + "/icons/plugin_obj.gif")));
+ registry.put("folder", ImageDescriptor.createFromURL(new URL("platform:/plugin/" + PLUGIN_ID + "/icons/packagefolder_obj.gif")));
+ registry.put("class", ImageDescriptor.createFromURL(new URL("platform:/plugin/" + PLUGIN_ID + "/icons/classf_obj.gif")));
+ registry.put("file", ImageDescriptor.createFromURL(new URL("platform:/plugin/" + PLUGIN_ID + "/icons/file_obj.gif")));
+ registry.put("jar", ImageDescriptor.createFromURL(new URL("platform:/plugin/" + PLUGIN_ID + "/icons/jar_obj.gif")));
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/src/org/eclipse/papyrus/infra/core/pluginexplorer/EmbeddedFile.java b/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/src/org/eclipse/papyrus/infra/core/pluginexplorer/EmbeddedFile.java
new file mode 100755
index 00000000000..5a384d9a9f0
--- /dev/null
+++ b/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/src/org/eclipse/papyrus/infra/core/pluginexplorer/EmbeddedFile.java
@@ -0,0 +1,125 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.core.pluginexplorer;
+
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Represents a file embedded in a Jar container that is a plugin loaded by Eclipse
+ * @author Laurent Wouters
+ */
+public class EmbeddedFile implements PluginEntry {
+ /**
+ * The parent plugin
+ */
+ private Plugin plugin;
+ /**
+ * The relative path to this file within the plugin
+ */
+ private String relativePath;
+ /**
+ * The name of this file
+ */
+ private String name;
+ /**
+ * The children list
+ */
+ private List<PluginEntry> children;
+
+ /**
+ * Gets the Jar entry as a String corresponding to this file
+ * @return The Jar entry for this file as a String
+ */
+ public String getEntry() { return relativePath; }
+
+
+ /**
+ * Creates the representation of a Jar entry as a plugin entry
+ * @param plugin The parent plugin
+ * @param entryName The Jar entry as a String
+ */
+ public EmbeddedFile(Plugin plugin, String entryName) {
+ this.plugin = plugin;
+ this.relativePath = entryName;
+ if (entryName.endsWith("/"))
+ this.relativePath = entryName.substring(0, entryName.length() - 1);
+ this.name = this.relativePath;
+ this.children = new ArrayList<PluginEntry>();
+ }
+
+ /**
+ * Creates the representation of a Jar entry as a plugin entry
+ * @param plugin The parent plugin
+ * @param entryName The Jar entry as a String
+ * @param parentEntry The parent Jar entry as a String
+ */
+ public EmbeddedFile(Plugin plugin, String entryName, String parentEntry) {
+ this.plugin = plugin;
+ this.relativePath = entryName;
+ if (entryName.endsWith("/"))
+ this.relativePath = entryName.substring(0, entryName.length() - 1);
+ this.name = relativePath.substring(parentEntry.length() + 1);
+ this.children = new ArrayList<PluginEntry>();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.papyrus.infra.core.pluginexplorer.PluginEntry#getPlugin()
+ */
+ public Plugin getPlugin() { return plugin; }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.papyrus.infra.core.pluginexplorer.PluginEntry#getName()
+ */
+ public String getName() { return name; }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.papyrus.infra.core.pluginexplorer.PluginEntry#getLogicalPath()
+ */
+ public String getLogicalPath() { return "platform:/plugin/" + plugin.getName() + "/" + relativePath; }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.papyrus.infra.core.pluginexplorer.PluginEntry#getPhysicalPath()
+ */
+ public String getPhysicalPath() { return null; }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.papyrus.infra.core.pluginexplorer.PluginEntry#hasChildren()
+ */
+ public boolean hasChildren() { return (!children.isEmpty()); }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.papyrus.infra.core.pluginexplorer.PluginEntry#children()
+ */
+ public List<PluginEntry> children() { return children; }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.papyrus.infra.core.pluginexplorer.PluginEntry#getChild(java.lang.String)
+ */
+ public PluginEntry getChild(String name) {
+ for (PluginEntry entry : children)
+ if (entry.getName().equals(name))
+ return entry;
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.papyrus.infra.core.pluginexplorer.PluginEntry#getInputStream()
+ */
+ public InputStream getInputStream() {
+ return plugin.getStreamInJar(relativePath);
+ }
+}
diff --git a/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/src/org/eclipse/papyrus/infra/core/pluginexplorer/PhysicalFile.java b/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/src/org/eclipse/papyrus/infra/core/pluginexplorer/PhysicalFile.java
new file mode 100755
index 00000000000..83defc3ba87
--- /dev/null
+++ b/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/src/org/eclipse/papyrus/infra/core/pluginexplorer/PhysicalFile.java
@@ -0,0 +1,147 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.core.pluginexplorer;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
+
+/**
+ * Represents a physical file (on disk) as a resource within a plugin
+ * @author Laurent Wouters
+ */
+public class PhysicalFile implements PluginEntry {
+ /**
+ * A constant empty list of entries
+ */
+ private static final List<PluginEntry> empty = new ArrayList<PluginEntry>(0);
+
+ /**
+ * The parent plugin
+ */
+ private Plugin plugin;
+ /**
+ * The physical file represented by this object
+ */
+ private File file;
+ /**
+ * The cache of children
+ */
+ private List<PluginEntry> cache;
+
+ /**
+ * Creates the representation of a physical file as a plugin entry
+ * @param plugin The parent plugin
+ * @param file The represented physical file
+ */
+ public PhysicalFile(Plugin plugin, File file) {
+ this.plugin = plugin;
+ this.file = file;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.papyrus.infra.core.pluginexplorer.PluginEntry#getPlugin()
+ */
+ public Plugin getPlugin() { return plugin; }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.papyrus.infra.core.pluginexplorer.PluginEntry#getName()
+ */
+ public String getName() { return file.getName(); }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.papyrus.infra.core.pluginexplorer.PluginEntry#getLogicalPath()
+ */
+ public String getLogicalPath() {
+ IPath pp = new Path(plugin.getPhysicalPath());
+ IPath physical = new Path(file.getAbsolutePath());
+ return "platform:/plugin/" + plugin.getName() + "/" + physical.makeRelativeTo(pp).toString();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.papyrus.infra.core.pluginexplorer.PluginEntry#getPhysicalPath()
+ */
+ public String getPhysicalPath() { return file.getAbsolutePath(); }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.papyrus.infra.core.pluginexplorer.PluginEntry#hasChildren()
+ */
+ public boolean hasChildren() {
+ if (file.isDirectory()) {
+ File[] content = file.listFiles();
+ return (content != null && content.length > 0);
+ }
+ return false;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.papyrus.infra.core.pluginexplorer.PluginEntry#children()
+ */
+ public List<PluginEntry> children() {
+ if (cache != null)
+ return cache;
+ if (!file.isDirectory()) {
+ cache = empty;
+ return empty;
+ }
+ buildCache();
+ return cache;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.papyrus.infra.core.pluginexplorer.PluginEntry#getChild(java.lang.String)
+ */
+ public PluginEntry getChild(String name) {
+ if (cache == null)
+ buildCache();
+ for (PluginEntry entry : cache)
+ if (entry.getName().equals(name))
+ return entry;
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.papyrus.infra.core.pluginexplorer.PluginEntry#getInputStream()
+ */
+ public InputStream getInputStream() {
+ try {
+ return new FileInputStream(file);
+ } catch (FileNotFoundException e) {
+ // Cannot happen, unless the file has been deleted after the lookup
+ // in which case, too bad
+ return null;
+ }
+ }
+
+ /**
+ * Builds the cache of children entries
+ */
+ private void buildCache() {
+ File[] content = file.listFiles();
+ if (content == null || content.length == 0) {
+ cache = empty;
+ } else {
+ cache = new ArrayList<PluginEntry>(content.length);
+ for (int i=0; i!=content.length; i++)
+ cache.add(new PhysicalFile(plugin, content[i]));
+ }
+ }
+}
diff --git a/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/src/org/eclipse/papyrus/infra/core/pluginexplorer/Plugin.java b/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/src/org/eclipse/papyrus/infra/core/pluginexplorer/Plugin.java
new file mode 100755
index 00000000000..87165ce0428
--- /dev/null
+++ b/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/src/org/eclipse/papyrus/infra/core/pluginexplorer/Plugin.java
@@ -0,0 +1,227 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.core.pluginexplorer;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.Enumeration;
+import java.util.List;
+import java.util.jar.JarEntry;
+import java.util.jar.JarFile;
+
+import org.eclipse.core.runtime.FileLocator;
+import org.osgi.framework.Bundle;
+
+/**
+ * Represents an Eclipse plugin that can be introspected
+ * @author Laurent Wouters
+ */
+public class Plugin {
+
+ /**
+ * Gets an array of all the currently loaded plugins
+ * @return The currently loaded plugins
+ */
+ public static Plugin[] getLoadedPlugins() {
+ Bundle[] loaded = Activator.getDefault().getContext().getBundles();
+ Plugin[] plugins = new Plugin[loaded.length];
+ for (int i=0; i!=loaded.length; i++)
+ plugins[i] = new Plugin(loaded[i]);
+ return plugins;
+ }
+
+ /**
+ * The Eclipse bundle represented by this object
+ */
+ private Bundle bundle;
+ /**
+ * The list of entries at the plugin's root
+ */
+ private List<PluginEntry> entries;
+ /**
+ * The physical file represented by this object.
+ * It may be a jar file, or a folder.
+ */
+ private File physicalLocation;
+
+ /**
+ * Gets the corresponding Eclipse bundle
+ * @return The Eclipse bundle represented by this object
+ */
+ public Bundle getBundle() { return bundle; }
+
+ /**
+ * Gets whether this plugin contains resources
+ * @return <code>true</code> if this plugin contains resources
+ */
+ public boolean hasEntries() { return (!entries.isEmpty()); }
+
+ /**
+ * Gets the top entries within this plugin
+ * @return The top entries
+ */
+ public List<PluginEntry> entries() { return entries; }
+
+ /**
+ * Gets the qualified name of this plugin.
+ * This is the symbolic name of the represented bundle
+ * @return The plugin's name
+ */
+ public String getName() { return bundle.getSymbolicName(); }
+
+ /**
+ * Initializes this plugin with the given Eclipse bundle
+ * @param bundle The Eclipse bundle to represent
+ */
+ public Plugin(Bundle bundle) {
+ this.bundle = bundle;
+ this.entries = new ArrayList<PluginEntry>();
+ try { physicalLocation = FileLocator.getBundleFile(bundle); }
+ catch (IOException e) {
+ Activator.getDefault().getPapyrusLog().error("Failed to locate the plugin " + bundle.getSymbolicName(), e);
+ }
+ if (physicalLocation == null)
+ return;
+ if (physicalLocation.isDirectory())
+ buildFromDirectory();
+ else
+ buildFromJar();
+ }
+
+ /**
+ * Gets the absolute physical path to this plugin
+ * @return The absolute path to this plugin
+ */
+ public String getPhysicalPath() {
+ if (physicalLocation == null)
+ return null;
+ return physicalLocation.getAbsolutePath();
+ }
+
+ /**
+ * Gets the entry corresponding to the given path, or <code>null</code> if none is found.
+ * Paths shall be of the form <code>part1/part2/part3</code>, etc.
+ * @param path The path to lookup for an entry
+ * @return The corresponding entry or <code>null</code> if none is found
+ */
+ public PluginEntry getEntry(String path) {
+ // sanitize
+ int start = (path.startsWith("/") ? 1 : 0);
+ int end = (path.endsWith("/") ? path.length() - 1 : path.length());
+ path = path.substring(start, end);
+ // split into the path elements
+ String[] parts = path.split("/");
+ PluginEntry current = null;
+ for (PluginEntry e : entries) {
+ if (e.getName().equals(parts[0])) {
+ current = e;
+ break;
+ }
+ }
+ if (current == null)
+ return null;
+ for (int i=1; i!=parts.length; i++) {
+ current = current.getChild(parts[i]);
+ if (current == null)
+ return null;
+ }
+ return current;
+ }
+
+ /**
+ * Builds this plugin from a physical directory
+ */
+ private void buildFromDirectory() {
+ File[] content = physicalLocation.listFiles();
+ if (content == null || content.length == 0)
+ return;
+ for (int i=0; i!=content.length; i++)
+ entries.add(new PhysicalFile(this, content[i]));
+ }
+
+ /**
+ * Builds this plugin from a Jar file
+ */
+ private void buildFromJar() {
+ try {
+ JarFile jar = new JarFile(physicalLocation);
+ List<JarEntry> content = new ArrayList<JarEntry>();
+ Enumeration<JarEntry> e = jar.entries();
+ while (e.hasMoreElements())
+ content.add(e.nextElement());
+ Collections.sort(content, new Comparator<JarEntry>() {
+ public int compare(JarEntry arg0, JarEntry arg1) {
+ return arg0.getName().compareTo(arg1.getName());
+ }
+ });
+ int next = 0;
+ while (next < content.size()) {
+ EmbeddedFile child = new EmbeddedFile(this, content.get(next).getName());
+ next = buildChildren(child, content, next + 1);
+ entries.add(child);
+ }
+ jar.close();
+ }
+ catch (IOException e) { }
+ }
+
+ /**
+ * Builds the given embedded file with the given data
+ * @param parent The parent embedded directory
+ * @param content The sorted list of all the jar entries
+ * @param index The current index in the list of jar entries
+ * @return The final index within the jar entries
+ */
+ private int buildChildren(EmbeddedFile parent, List<JarEntry> content, int index) {
+ if (index >= content.size())
+ return index;
+ int next = index;
+ while (next < content.size() && content.get(next).getName().startsWith(parent.getEntry())) {
+ EmbeddedFile child = new EmbeddedFile(this, content.get(next).getName(), parent.getEntry());
+ next = buildChildren(child, content, next + 1);
+ parent.children().add(child);
+ }
+ return next;
+ }
+
+ InputStream getStreamInJar(String localPath) {
+ try {
+ final JarFile jar = new JarFile(physicalLocation);
+ final JarEntry entry = jar.getJarEntry(localPath);
+ return new InputStream() {
+ private InputStream inner = jar.getInputStream(entry);
+ @Override
+ public int read() throws IOException {
+ return inner.read();
+ }
+ @Override
+ public void close() {
+ try {
+ inner.close();
+ jar.close();
+ }
+ catch (IOException e) { }
+ }
+ };
+ }
+ catch (IOException e) {
+ return null;
+ }
+ }
+}
diff --git a/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/src/org/eclipse/papyrus/infra/core/pluginexplorer/PluginEntry.java b/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/src/org/eclipse/papyrus/infra/core/pluginexplorer/PluginEntry.java
new file mode 100755
index 00000000000..3c7bf7556ff
--- /dev/null
+++ b/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/src/org/eclipse/papyrus/infra/core/pluginexplorer/PluginEntry.java
@@ -0,0 +1,76 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.core.pluginexplorer;
+
+import java.io.InputStream;
+import java.util.List;
+
+
+/**
+ * Represents a resource within a plugin
+ * @author Laurent Wouters
+ */
+public interface PluginEntry {
+ /**
+ * Gets the parent plugin
+ * @return The parent plugin
+ */
+ Plugin getPlugin();
+
+ /**
+ * Gets the name of this entry
+ * @return The simple name of this entry
+ */
+ String getName();
+
+ /**
+ * Gets the String representation of the URI that can be used to access this resource.
+ * The returned URI is always prefixed by the <code>platform:/plugin/</code> scheme.
+ * @return The logical path to this entry
+ */
+ String getLogicalPath();
+
+ /**
+ * Gets the String representation of the physical path to the file represented by this entry.
+ * This path only exists for files already on disk, for embedded files this method should return <code>null</null>.
+ * @return The physical absolute path to the file
+ */
+ String getPhysicalPath();
+
+ /**
+ * Gets whether this entry has children (sub-entries), in which case this entry is a directory.
+ * @return <code>true</code> if this entry contains sub-entries
+ */
+ boolean hasChildren();
+
+ /**
+ * Gets the children of this entry (sub-entries)
+ * @return The children entries
+ */
+ List<PluginEntry> children();
+
+ /**
+ * Gets the child of this entry with the given name, or null if none is found
+ * @param name The name to lookup for
+ * @return The child entry with the given name
+ */
+ PluginEntry getChild(String name);
+
+ /**
+ * Gets an input stream on the resource represented by this entry
+ * @return An input stream on the resource
+ */
+ InputStream getInputStream();
+}
diff --git a/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/src/org/eclipse/papyrus/infra/core/pluginexplorer/PluginsContentDialog.java b/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/src/org/eclipse/papyrus/infra/core/pluginexplorer/PluginsContentDialog.java
new file mode 100755
index 00000000000..f5d6ddb4375
--- /dev/null
+++ b/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/src/org/eclipse/papyrus/infra/core/pluginexplorer/PluginsContentDialog.java
@@ -0,0 +1,182 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.core.pluginexplorer;
+
+import java.io.File;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.ViewerSorter;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SegmentEvent;
+import org.eclipse.swt.events.SegmentListener;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.osgi.framework.Bundle;
+
+/**
+ * Represents a dialog for the selection of plugins and their resources by a user
+ * @author Laurent Wouters
+ */
+public class PluginsContentDialog extends Dialog {
+ private static final int SIZE_WIDTH = 400;
+ private static final int SIZE_HEIGHT = 300;
+
+ private PluginsContentSelectionValidator validator;
+ private String title;
+ private String message;
+ private Plugin[] plugins;
+ private TreeViewer tree;
+ private Text field;
+ private Object selection;
+
+ /**
+ * Gets the selected element
+ * @return The element selected by the user
+ */
+ public Object getSelection() {
+ return selection;
+ }
+
+ /**
+ * Creates a new dialog
+ * @param parentShell The parent shell
+ * @param validator The validator used for validating the user's selection
+ * @param title The dialog's title
+ * @param message The dialog's message
+ */
+ public PluginsContentDialog(Shell parentShell, PluginsContentSelectionValidator validator, String title, String message) {
+ super(parentShell);
+ this.validator = validator;
+ this.title = title;
+ this.message = message;
+ this.plugins = Plugin.getLoadedPlugins();
+ }
+
+ @Override
+ protected Control createDialogArea(Composite parent) {
+ // create composite
+ Composite composite = (Composite) super.createDialogArea(parent);
+ GridLayout gridLayout = new GridLayout();
+ gridLayout.numColumns = 1;
+ composite.setLayout(gridLayout);
+
+ Label label = new Label(composite, SWT.WRAP | SWT.SINGLE);
+ label.setText(message);
+ label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL));
+
+ field = new Text(composite, SWT.SINGLE | SWT.BORDER);
+ field.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL));
+ field.addSegmentListener(new SegmentListener(){
+ public void getSegments(SegmentEvent event) {
+ if (tree != null)
+ tree.setContentProvider(new PluginsContentProvider(plugins, field.getText()));
+ }
+ });
+
+ Composite inner = new Composite(composite, SWT.NONE);
+ inner.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL | GridData.FILL_VERTICAL));
+ inner.setLayout(new FillLayout());
+
+ tree = new TreeViewer(inner, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
+ tree.setLabelProvider(new PluginsContentLabelProvider());
+ tree.setSorter(getViewerSorter());
+ tree.setContentProvider(new PluginsContentProvider(plugins, null));
+ tree.setInput(PluginsContentProvider.treeRoot);
+ tree.addSelectionChangedListener(new ISelectionChangedListener() {
+ public void selectionChanged(SelectionChangedEvent event) {
+ IStructuredSelection s = (IStructuredSelection)event.getSelection();
+ selection = s.getFirstElement();
+ resetValidity();
+ }
+ });
+
+ applyDialogFont(composite);
+ return composite;
+ }
+
+ @Override
+ protected Control createButtonBar(Composite parent) {
+ Control composite = super.createButtonBar(parent);
+ resetValidity();
+ return composite;
+ }
+
+ /**
+ * Enquires about the current validity of the selection and disables or enables the dialog's validation correspondingly
+ */
+ private void resetValidity() {
+ if (selection == null) {
+ getButton(IDialogConstants.OK_ID).setEnabled(false);
+ return;
+ }
+ if (validator == null) {
+ getButton(IDialogConstants.OK_ID).setEnabled(true);
+ return;
+ }
+ boolean valid = false;
+ if (selection instanceof Plugin)
+ valid = validator.isValid((Plugin)selection);
+ else if (selection instanceof PluginEntry)
+ valid = validator.isValid((PluginEntry)selection);
+ getButton(IDialogConstants.OK_ID).setEnabled(valid);
+ }
+
+ @Override
+ protected boolean isResizable() { return true; }
+
+ @Override
+ protected void configureShell(Shell shell) {
+ super.configureShell(shell);
+ shell.setSize(SIZE_WIDTH, SIZE_HEIGHT);
+ Point size = shell.getParent().getShell().getSize();
+ shell.setLocation((size.x - SIZE_WIDTH)/2, (size.y - SIZE_HEIGHT)/2);
+ shell.setText(title);
+ }
+
+ /**
+ * Gets the viewer sorter for this dialog
+ * @return A viewer sorter
+ */
+ private ViewerSorter getViewerSorter() {
+ return new ViewerSorter() {
+ @Override
+ public int compare(Viewer viewer, Object e1, Object e2) {
+ if (e1 instanceof Bundle) {
+ Bundle b1 = (Bundle)e1;
+ Bundle b2 = (Bundle)e2;
+ return b1.getSymbolicName().compareTo(b2.getSymbolicName());
+ } else if (e1 instanceof File) {
+ File f1 = (File)e1;
+ File f2 = (File)e2;
+ return (f1.getName().compareTo(f2.getName()));
+ }
+ return super.compare(viewer, e1, e2);
+ }
+ };
+ }
+}
diff --git a/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/src/org/eclipse/papyrus/infra/core/pluginexplorer/PluginsContentLabelProvider.java b/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/src/org/eclipse/papyrus/infra/core/pluginexplorer/PluginsContentLabelProvider.java
new file mode 100755
index 00000000000..8161504028f
--- /dev/null
+++ b/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/src/org/eclipse/papyrus/infra/core/pluginexplorer/PluginsContentLabelProvider.java
@@ -0,0 +1,33 @@
+package org.eclipse.papyrus.infra.core.pluginexplorer;
+
+import org.eclipse.jface.resource.ImageRegistry;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.swt.graphics.Image;
+
+public class PluginsContentLabelProvider extends LabelProvider {
+ @Override
+ public Image getImage(Object element) {
+ ImageRegistry registry = Activator.getDefault().getImageRegistry();
+ if (element instanceof Plugin) {
+ return registry.get("plugin");
+ } else if (element instanceof PluginEntry) {
+ if (((PluginEntry) element).hasChildren())
+ return registry.get("folder");
+ String name = ((PluginEntry) element).getName();
+ if (name.endsWith(".class"))
+ return registry.get("class");
+ else if (name.endsWith(".jar"))
+ return registry.get("jar");
+ }
+ return registry.get("file");
+ }
+ @Override
+ public String getText(Object element) {
+ if (element instanceof Plugin) {
+ return ((Plugin)element).getName();
+ } else if (element instanceof PluginEntry) {
+ return ((PluginEntry)element).getName();
+ }
+ return element.toString();
+ }
+}
diff --git a/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/src/org/eclipse/papyrus/infra/core/pluginexplorer/PluginsContentProvider.java b/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/src/org/eclipse/papyrus/infra/core/pluginexplorer/PluginsContentProvider.java
new file mode 100755
index 00000000000..84ef2271d6e
--- /dev/null
+++ b/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/src/org/eclipse/papyrus/infra/core/pluginexplorer/PluginsContentProvider.java
@@ -0,0 +1,124 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.core.pluginexplorer;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.Viewer;
+
+/**
+ * Represents a provider of plugins their content
+ * @author Laurent Wouters
+ */
+public class PluginsContentProvider implements ITreeContentProvider {
+
+ /**
+ * The root of all plugins
+ */
+ public static final Object treeRoot = new Object();
+
+ /**
+ * The unfiltered list of loaded plugins
+ */
+ private Plugin[] plugins;
+ /**
+ * The current filter
+ */
+ private String filter;
+
+ /**
+ * Creates the provider with the given filter on plugins' names
+ * @param plugins The plugins to provide
+ * @param filter The filter used on plugins' names
+ */
+ public PluginsContentProvider(Plugin[] plugins, String filter) {
+ this.plugins = plugins;
+ this.filter = filter;
+ if (this.filter != null && this.filter.isEmpty())
+ this.filter = null;
+ }
+
+ /**
+ * Gets the plugins to provide after the application of the filter
+ * @return The plugins to provide
+ */
+ private Object[] getFilteredPlugins() {
+ if (filter == null)
+ return plugins;
+ List<Plugin> list = new ArrayList<Plugin>();
+ for (int i=0; i!=plugins.length; i++) {
+ String name = plugins[i].getName();
+ if (name.contains(filter))
+ list.add(plugins[i]);
+ }
+ return list.toArray();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.viewers.IContentProvider#dispose()
+ */
+ public void dispose() { }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
+ */
+ public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.viewers.ITreeContentProvider#getElements(java.lang.Object)
+ */
+ public Object[] getElements(Object inputElement) {
+ return getFilteredPlugins();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
+ */
+ public Object[] getChildren(Object element) {
+ if (element == treeRoot)
+ return getFilteredPlugins();
+ if (element instanceof Plugin)
+ return ((Plugin)element).entries().toArray();
+ else if (element instanceof PluginEntry)
+ return ((PluginEntry)element).children().toArray();
+ return new Object[0];
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
+ */
+ public Object getParent(Object element) {
+ if (element == treeRoot)
+ return null;
+ if (element instanceof Plugin)
+ return treeRoot;
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
+ */
+ public boolean hasChildren(Object element) {
+ if (element == treeRoot)
+ return true;
+ if (element instanceof Plugin)
+ return ((Plugin)element).hasEntries();
+ else if (element instanceof PluginEntry)
+ return ((PluginEntry)element).hasChildren();
+ return false;
+ }
+}
diff --git a/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/src/org/eclipse/papyrus/infra/core/pluginexplorer/PluginsContentSelectionValidator.java b/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/src/org/eclipse/papyrus/infra/core/pluginexplorer/PluginsContentSelectionValidator.java
new file mode 100755
index 00000000000..9b90f2958e1
--- /dev/null
+++ b/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/src/org/eclipse/papyrus/infra/core/pluginexplorer/PluginsContentSelectionValidator.java
@@ -0,0 +1,34 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.core.pluginexplorer;
+
+/**
+ * Validates the selection of a resource in a plugin
+ * @author Laurent Wouters
+ */
+public interface PluginsContentSelectionValidator {
+ /**
+ * Determines whether the given plugin is a valid selection
+ * @param plugin The plugin
+ * @return <code>true</code> if the plugin is a valid selection
+ */
+ boolean isValid(Plugin plugin);
+ /**
+ * Determines whether the given plugin entry is a valid selection
+ * @param entry The plugin entry
+ * @return <code>true</code> if the plugin entry is a valid selection
+ */
+ boolean isValid(PluginEntry entry);
+}
diff --git a/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/src/org/eclipse/papyrus/infra/core/pluginexplorer/PluginsContentView.java b/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/src/org/eclipse/papyrus/infra/core/pluginexplorer/PluginsContentView.java
new file mode 100755
index 00000000000..fc1a76362da
--- /dev/null
+++ b/plugins/infra/core/org.eclipse.papyrus.infra.core.pluginexplorer/src/org/eclipse/papyrus/infra/core/pluginexplorer/PluginsContentView.java
@@ -0,0 +1,154 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.core.pluginexplorer;
+
+import java.awt.Toolkit;
+import java.awt.datatransfer.Clipboard;
+import java.awt.datatransfer.StringSelection;
+import java.io.File;
+
+import org.eclipse.jface.action.AbstractAction;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.IMenuCreator;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.ViewerSorter;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.HelpListener;
+import org.eclipse.swt.events.SegmentEvent;
+import org.eclipse.swt.events.SegmentListener;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.part.ViewPart;
+import org.osgi.framework.Bundle;
+
+/**
+ * This represents an Eclipse View displaying reflective information about the loaded Eclipse plugins
+ * @author Laurent Wouters
+ */
+public class PluginsContentView extends ViewPart {
+
+ /**
+ * The ID of the view as specified by the extension.
+ */
+ public static final String ID = "org.eclipse.papyrus.infra.core.pluginexplorer.PluginReflectorView";
+
+ private Plugin[] plugins;
+ private TreeViewer tree;
+ private Text field;
+
+ /**
+ * Initializes this view
+ */
+ public PluginsContentView() {
+ this.plugins = Plugin.getLoadedPlugins();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
+ */
+ public void createPartControl(Composite parent) {
+ GridLayout gridLayout = new GridLayout();
+ gridLayout.numColumns = 1;
+ parent.setLayout(gridLayout);
+
+ field = new Text(parent, SWT.SINGLE | SWT.BORDER);
+ field.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL));
+ field.addSegmentListener(new SegmentListener(){
+ public void getSegments(SegmentEvent event) {
+ if (tree != null)
+ tree.setContentProvider(new PluginsContentProvider(plugins, field.getText()));
+ }
+ });
+
+ Composite inner = new Composite(parent, SWT.NONE);
+ inner.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL | GridData.FILL_VERTICAL));
+ inner.setLayout(new FillLayout());
+
+ tree = new TreeViewer(inner, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
+ tree.setLabelProvider(new PluginsContentLabelProvider());
+ tree.setSorter(getViewerSorter());
+ tree.setContentProvider(new PluginsContentProvider(plugins, null));
+ tree.setInput(PluginsContentProvider.treeRoot);
+ tree.addSelectionChangedListener(new ISelectionChangedListener() {
+ public void selectionChanged(SelectionChangedEvent event) {
+ if(event.getSelection() instanceof IStructuredSelection) {
+ IStructuredSelection selection = (IStructuredSelection)event.getSelection();
+ Object obj = selection.getFirstElement();
+
+ MenuManager menuMgr = new MenuManager();
+ Menu menu = menuMgr.createContextMenu(tree.getControl());
+ tree.getControl().setMenu(menu);
+ getSite().registerContextMenu(menuMgr, tree);
+
+ if (obj instanceof PluginEntry)
+ fillMenuFor((PluginEntry)obj, menuMgr);
+ }
+ }
+ });
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
+ */
+ @Override
+ public void setFocus() {
+ field.setFocus();
+ }
+
+ /**
+ * Gets the viewer sorter for this dialog
+ * @return A viewer sorter
+ */
+ private ViewerSorter getViewerSorter() {
+ return new ViewerSorter() {
+ @Override
+ public int compare(Viewer viewer, Object e1, Object e2) {
+ if (e1 instanceof Bundle) {
+ Bundle b1 = (Bundle)e1;
+ Bundle b2 = (Bundle)e2;
+ return b1.getSymbolicName().compareTo(b2.getSymbolicName());
+ } else if (e1 instanceof File) {
+ File f1 = (File)e1;
+ File f2 = (File)e2;
+ return (f1.getName().compareTo(f2.getName()));
+ }
+ return super.compare(viewer, e1, e2);
+ }
+ };
+ }
+
+ private void fillMenuFor(final PluginEntry entry, MenuManager menu) {
+ menu.add(new org.eclipse.jface.action.Action("Copy URI to clipboard") {
+ @Override
+ public void run() {
+ StringSelection transferable = new StringSelection(entry.getLogicalPath());
+ Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
+ clipboard.setContents(transferable, null);
+ }
+ });
+ }
+} \ No newline at end of file
diff --git a/plugins/infra/gmfdiag/css/org.eclipse.papyrus.infra.gmfdiag.css/META-INF/MANIFEST.MF b/plugins/infra/gmfdiag/css/org.eclipse.papyrus.infra.gmfdiag.css/META-INF/MANIFEST.MF
index c8f2154ede7..385a581b8bf 100644
--- a/plugins/infra/gmfdiag/css/org.eclipse.papyrus.infra.gmfdiag.css/META-INF/MANIFEST.MF
+++ b/plugins/infra/gmfdiag/css/org.eclipse.papyrus.infra.gmfdiag.css/META-INF/MANIFEST.MF
@@ -15,6 +15,7 @@ Require-Bundle: org.eclipse.ui,
org.eclipse.papyrus.infra.gmfdiag.common;bundle-version="1.0.0",
org.eclipse.papyrus.infra.core;bundle-version="1.0.0",
org.eclipse.papyrus.infra.services.markerlistener;bundle-version="1.0.0",
+ org.eclipse.papyrus.infra.viewpoints.policy;bundle-version="1.0.0",
org.eclipse.gmf.runtime.notation.edit;bundle-version="1.7.0",
org.w3c.dom.svg;bundle-version="1.1.0"
Export-Package: org.eclipse.papyrus.infra.gmfdiag.css,
diff --git a/plugins/infra/gmfdiag/css/org.eclipse.papyrus.infra.gmfdiag.css/src/org/eclipse/papyrus/infra/gmfdiag/css/notation/CSSDiagramImpl.java b/plugins/infra/gmfdiag/css/org.eclipse.papyrus.infra.gmfdiag.css/src/org/eclipse/papyrus/infra/gmfdiag/css/notation/CSSDiagramImpl.java
index 28183752898..62f2a628285 100644
--- a/plugins/infra/gmfdiag/css/org.eclipse.papyrus.infra.gmfdiag.css/src/org/eclipse/papyrus/infra/gmfdiag/css/notation/CSSDiagramImpl.java
+++ b/plugins/infra/gmfdiag/css/org.eclipse.papyrus.infra.gmfdiag.css/src/org/eclipse/papyrus/infra/gmfdiag/css/notation/CSSDiagramImpl.java
@@ -28,6 +28,11 @@ import org.eclipse.papyrus.infra.gmfdiag.css.engine.DiagramCSSEngine;
import org.eclipse.papyrus.infra.gmfdiag.css.engine.ExtendedCSSEngine;
import org.eclipse.papyrus.infra.gmfdiag.css.resource.CSSNotationResource;
import org.eclipse.papyrus.infra.gmfdiag.css.stylesheets.StyleSheet;
+import org.eclipse.papyrus.infra.gmfdiag.css.stylesheets.StyleSheetReference;
+import org.eclipse.papyrus.infra.gmfdiag.css.stylesheets.StylesheetsFactory;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusDiagram;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusView;
+import org.eclipse.papyrus.infra.viewpoints.policy.ViewPrototype;
/**
* Default implementation for CSSDiagram
@@ -84,9 +89,31 @@ public class CSSDiagramImpl extends DiagramImpl implements CSSDiagram {
}
}
+ StyleSheet s = getViewpointDefinedStylesheet();
+ if (s != null)
+ result.add(s);
+
return result;
}
+ private StyleSheet getViewpointDefinedStylesheet() {
+ ViewPrototype proto = ViewPrototype.get(this);
+ if (proto == null) {
+ return null;
+ }
+ PapyrusView conf = proto.getConfiguration();
+ if (conf == null || !(conf instanceof PapyrusDiagram)) {
+ return null;
+ }
+ String path = ((PapyrusDiagram) conf).getCustomStyle();
+ if (path == null || path.isEmpty()) {
+ return null;
+ }
+ StyleSheetReference ref = StylesheetsFactory.eINSTANCE.createStyleSheetReference();
+ ref.setPath(path);
+ return ref;
+ }
+
private class DiagramDisposeListener extends AdapterImpl {
@Override
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.commands/META-INF/MANIFEST.MF b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.commands/META-INF/MANIFEST.MF
index 8870a72c112..493e7348a61 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.commands/META-INF/MANIFEST.MF
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.commands/META-INF/MANIFEST.MF
@@ -13,6 +13,7 @@ Require-Bundle: org.eclipse.ui.workbench,
org.eclipse.papyrus.infra.core;bundle-version="1.0.0",
org.eclipse.papyrus.infra.emf;bundle-version="1.0.0",
org.eclipse.papyrus.infra.core.sasheditor;bundle-version="1.0.0",
+ org.eclipse.papyrus.infra.viewpoints.policy;bundle-version="1.0.0",
org.eclipse.core.expressions;bundle-version="3.4.500",
org.eclipse.gmf.runtime.diagram.ui.resources.editor
Bundle-Vendor: %providerName
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.commands/src/org/eclipse/papyrus/commands/ICreationCommand.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.commands/src/org/eclipse/papyrus/commands/ICreationCommand.java
index cf4e726d3f5..532f4ebe38b 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.commands/src/org/eclipse/papyrus/commands/ICreationCommand.java
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.commands/src/org/eclipse/papyrus/commands/ICreationCommand.java
@@ -12,7 +12,10 @@ package org.eclipse.papyrus.commands;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.notation.Diagram;
import org.eclipse.papyrus.infra.core.resource.ModelSet;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusDiagram;
+import org.eclipse.papyrus.infra.viewpoints.policy.ViewPrototype;
/**
* Define a command use to create new diagram. It use to provide Eclipse
@@ -24,33 +27,66 @@ import org.eclipse.papyrus.infra.core.resource.ModelSet;
public interface ICreationCommand {
/**
- * Create a new diagram in diResourceSet with the given name and open it.
+ * Create a diagram.
+ * This method will try to find an adequate view for the passed arguments
*
* @param modelSet
- * the resourceSet containing all diagrams
- * @param container
- * of the diagram, if container is null, the diagram is contained
- * by the top level container
- * @param diagramName
- * the name of the new diagram or null to use a dialog to choose
- * the name
+ * the current model set
+ * @param owner
+ * the diagram's owner and root element
+ * @param name
+ * the diagram's name
+ * @return the created diagram, or <code>null</code> if the creation failed
*/
- public void createDiagram(ModelSet modelSet, EObject container, String diagramName);
+ public Diagram createDiagram(ModelSet modelSet, EObject owner, String name);
/**
- * Get a command to create a new diagram in diResourceSet with the given
- * name.
+ * Create a diagram.
*
* @param modelSet
- * the resourceSet containing all diagrams
- * @param container
- * of the diagram, if container is null, the diagram is contained
- * by the top level container
- * @param diagramName
- * the name of the new diagram or null to use a dialog to choose
- * the name
+ * the current model set
+ * @param owner
+ * the diagram's owner
+ * @param element
+ * the diagram's model element
+ * @param prototype
+ * the diagram's prototype
+ * @param name
+ * the diagram's name
+ * @return the created diagram, or <code>null</code> if the creation failed
*/
- public ICommand getCreateDiagramCommand(final ModelSet modelSet, final EObject container, final String diagramName);
+ public Diagram createDiagram(ModelSet modelSet, EObject owner, EObject element, ViewPrototype prototype, String name);
+
+ /**
+ * Gets the GMF command for the diagram creation
+ * This method will try to find an adequate view for the passed arguments
+ *
+ * @param modelSet
+ * the current model set
+ * @param owner
+ * the diagram's owner and root element
+ * @param name
+ * the diagram's name
+ * @return the created diagram, or <code>null</code> if the creation failed
+ */
+ public ICommand getCreateDiagramCommand(ModelSet modelSet, EObject owner, String name);
+
+ /**
+ * Gets the GMF command for the diagram creation
+ *
+ * @param modelSet
+ * the current model set
+ * @param owner
+ * the diagram's owner
+ * @param element
+ * the diagram's model element
+ * @param prototype
+ * the diagram's prototype
+ * @param name
+ * the diagram's name
+ * @return the created diagram, or <code>null</code> if the creation failed
+ */
+ public ICommand getCreateDiagramCommand(ModelSet modelSet, EObject owner, EObject element, ViewPrototype prototype, String name);
/**
* Get the type of the diagram to create.
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/META-INF/MANIFEST.MF b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/META-INF/MANIFEST.MF
index 2df85a9ff59..5d782327186 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/META-INF/MANIFEST.MF
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/META-INF/MANIFEST.MF
@@ -55,6 +55,8 @@ Require-Bundle: org.eclipse.emf.edit.ui;bundle-version="2.5.0",
org.eclipse.papyrus.emf.facet.custom.ui;bundle-version="0.4.0",
org.eclipse.papyrus.infra.services.decoration;bundle-version="1.0.0",
org.eclipse.papyrus.infra.services.markerlistener;bundle-version="1.0.0",
+ org.eclipse.papyrus.infra.viewpoints.configuration;bundle-version="1.0.0",
+ org.eclipse.papyrus.infra.viewpoints.policy;bundle-version="1.0.0",
org.eclipse.papyrus.uml.tools
Bundle-Vendor: %providerName
Bundle-ActivationPolicy: lazy
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/plugin.xml b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/plugin.xml
index 2d220dd6389..9ed75968eea 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/plugin.xml
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/plugin.xml
@@ -7,8 +7,8 @@
<extension-point id="shapeProvider" name="ShapeProvider" schema="schema/shapeProvider.exsd"/>
<extension-point id="notationTypesMapping" name="notationTypesMapping" schema="schema/notationTypesMapping.exsd"/>
<extension-point id="svgPostProcessors" name="svgPostProcessors" schema="schema/svgPostProcessors.exsd"/>
- <extension-point id="pasteCommandProvider" name="pasteCommandProvider" schema="schema/pasteCommandProvider.exsd"/>
-
+ <extension-point id="pasteCommandProvider" name="pasteCommandProvider" schema="schema/pasteCommandProvider.exsd"/>
+
<extension
point="org.eclipse.ui.handlers">
<handler
@@ -148,6 +148,27 @@
</binding>
</extension>
<extension
+ point="org.eclipse.gmf.runtime.emf.type.core.elementTypes">
+ <metamodel
+ nsURI="http://www.eclipse.org/gmf/runtime/1.0.2/notation">
+ <metamodelType
+ eclass="Diagram"
+ edithelper="org.eclipse.papyrus.infra.gmfdiag.common.helper.DiagramEditHelper"
+ id="org.eclipse.papyrus.infra.gmfdiag.common.DiagramElementType"
+ name="Diagram">
+ </metamodelType>
+ </metamodel>
+</extension>
+<extension
+ point="org.eclipse.gmf.runtime.emf.type.core.elementTypeBindings">
+ <binding
+ context="org.eclipse.papyrus.infra.services.edit.TypeContext">
+ <elementType
+ ref="org.eclipse.papyrus.infra.gmfdiag.common.DiagramElementType">
+ </elementType>
+ </binding>
+</extension>
+<extension
point="org.eclipse.core.expressions.propertyTesters">
<propertyTester
class="org.eclipse.papyrus.infra.gmfdiag.common.utils.DiagramPropertyTester"
@@ -163,6 +184,76 @@
properties="isGmfDiagramContextActive"
type="java.util.Collection">
</propertyTester>
+</extension>
+<extension
+ point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="popup:org.eclipse.papyrus.views.modelexplorer.popupmenu.creatediagram">
+ <dynamic
+ class="org.eclipse.papyrus.infra.gmfdiag.common.handler.DynamicDiagramsMenuContribution"
+ id="org.eclipse.papyrus.infra.gmfdiag.common.handler.DynamicDiagramsMenuContribution">
+ </dynamic>
+ </menuContribution>
+ <menuContribution
+ allPopups="false"
+ locationURI="menu:org.eclipse.papyrus.ui.menu">
+ <menu
+ icon="platform:/plugin/org.eclipse.papyrus.infra.viewpoints.policy/icons/NewDiagram.gif"
+ id="org.eclipse.papyrus.uml.diagram.ui.menu.diagrams"
+ label="New Diagram">
+ <dynamic
+ class="org.eclipse.papyrus.infra.gmfdiag.common.handler.DynamicDiagramsMenuContribution"
+ id="org.eclipse.papyrus.infra.gmfdiag.common.handler.DynamicDiagramsMenuContribution">
+ </dynamic>
+ </menu>
+ </menuContribution>
+ <menuContribution
+ allPopups="false"
+ locationURI="toolbar:org.eclipse.ui.main.toolbar">
+ <toolbar
+ id="org.eclipse.papyrus.infra.viewpoints.policy.toolbar">
+ <command
+ commandId="org.eclipse.papyrus.infra.viewpoints.policy.toolbar.diagrams.command"
+ icon="platform:/plugin/org.eclipse.papyrus.infra.viewpoints.policy/icons/NewDiagram.gif"
+ id="org.eclipse.papyrus.infra.viewpoints.policy.toolbar.diagrams"
+ label="Create a new diagram ..."
+ style="pulldown"
+ tooltip="Create a new diagram ...">
+ <visibleWhen
+ checkEnabled="false">
+ <with
+ variable="activeEditorId">
+ <equals
+ value="org.eclipse.papyrus.infra.core.papyrusEditor">
+ </equals>
+ </with>
+ </visibleWhen>
+ </command>
+ </toolbar>
+ </menuContribution>
+ <menuContribution
+ allPopups="false"
+ locationURI="menu:org.eclipse.papyrus.infra.viewpoints.policy.toolbar.diagrams">
+ <dynamic
+ class="org.eclipse.papyrus.infra.gmfdiag.common.handler.DynamicDiagramsMenuContribution"
+ id="org.eclipse.papyrus.infra.gmfdiag.common.handler.DynamicDiagramsMenuContribution">
+ </dynamic>
+ </menuContribution>
+</extension>
+<extension
+ point="org.eclipse.ui.commands">
+ <command
+ categoryId="org.eclipse.papyrus.infra.viewpoints.policy.commands"
+ defaultHandler="org.eclipse.papyrus.infra.viewpoints.policy.DynamicCommandHandler"
+ id="org.eclipse.papyrus.infra.viewpoints.policy.toolbar.diagrams.command"
+ name="Create Dynamic Diagram Command">
+ </command>
+</extension>
+<extension
+ point="org.eclipse.papyrus.infra.viewpoints.policy.viewType">
+ <helper
+ class="org.eclipse.papyrus.infra.gmfdiag.common.helper.GMFDiagramViewTypeHelper">
+ </helper>
</extension>
<extension
point="org.eclipse.papyrus.infra.gmfdiag.common.shapeProvider">
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/AbstractPapyrusGmfCreateDiagramCommandHandler.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/AbstractPapyrusGmfCreateDiagramCommandHandler.java
index 103b1eb5ee7..6ebafce763c 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/AbstractPapyrusGmfCreateDiagramCommandHandler.java
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/AbstractPapyrusGmfCreateDiagramCommandHandler.java
@@ -1,382 +1,411 @@
-/*****************************************************************************
- * Copyright (c) 2008, 2013 CEA LIST.
- *
- *
- * 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:
- * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Initial API and implementation
- * Christian W. Damus (CEA) - only calculate affected files for workspace resources (CDO)
- *
- *****************************************************************************/
-package org.eclipse.papyrus.infra.gmfdiag.common;
-
-import java.util.ArrayList;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.IHandler;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.transaction.TransactionalEditingDomain;
-import org.eclipse.gmf.runtime.common.core.command.CommandResult;
-import org.eclipse.gmf.runtime.common.core.command.CompositeCommand;
-import org.eclipse.gmf.runtime.common.core.command.ICommand;
-import org.eclipse.gmf.runtime.diagram.core.preferences.PreferencesHint;
-import org.eclipse.gmf.runtime.diagram.core.services.ViewService;
-import org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand;
-import org.eclipse.gmf.runtime.notation.Diagram;
-import org.eclipse.jface.dialogs.InputDialog;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.window.Window;
-import org.eclipse.papyrus.commands.ICreationCommand;
-import org.eclipse.papyrus.commands.OpenDiagramCommand;
-import org.eclipse.papyrus.commands.wrappers.GMFtoEMFCommandWrapper;
-import org.eclipse.papyrus.infra.core.editor.IMultiDiagramEditor;
-import org.eclipse.papyrus.infra.core.resource.ModelSet;
-import org.eclipse.papyrus.infra.core.resource.sasheditor.DiModelUtils;
-import org.eclipse.papyrus.infra.core.sasheditor.contentprovider.IPageManager;
-import org.eclipse.papyrus.infra.core.sasheditor.contentprovider.ISashWindowsContentProvider;
-import org.eclipse.papyrus.infra.core.services.ServiceException;
-import org.eclipse.papyrus.infra.core.services.ServicesRegistry;
-import org.eclipse.papyrus.infra.emf.utils.EMFHelper;
-import org.eclipse.papyrus.infra.emf.utils.ServiceUtilsForHandlers;
-import org.eclipse.papyrus.infra.emf.utils.ServiceUtilsForResource;
-import org.eclipse.papyrus.infra.gmfdiag.common.model.NotationUtils;
-import org.eclipse.papyrus.uml.tools.model.UmlUtils;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * Command creating a new GMF diagram in Papyrus. This command is intended to be used in eclipse
- * extensions.
- *
- * Commands to create a GMF Diagram can subclass this class. There is two kinds of commands: -
- * Eclipse handlers issuing commands (toolbar, menu, ...). This commands can find the active editor
- * by using the Worbench.getActivePArt(). The entry point is {@link #execute(ExecutionEvent)}. -
- * Commands called during editor initializing (like wizard). This commands require the diResourceSet
- * to work. The entry point is {@link #createDiagram(DiResourceSet, EObject, String)}
- *
- * @author cedric dumoulin
- * @author <a href="mailto:jerome.benois@obeo.fr">Jerome Benois</a>
- */
-public abstract class AbstractPapyrusGmfCreateDiagramCommandHandler extends AbstractHandler implements IHandler, ICreationCommand {
-
- /**
- * Method called when the command is invoked.
- */
- public Object execute(ExecutionEvent event) throws ExecutionException {
-
- ServicesRegistry registry;
- try {
- registry = ServiceUtilsForHandlers.getInstance().getServiceRegistry(event);
- } catch (ServiceException ex) {
- throw new ExecutionException("Cannot retrieve the ServicesRegistry", ex);
- }
-
- EObject container = null;
- // if editor is open and active
- container = getSelectedElement();
- runAsTransaction(container, registry);
- return null;
- }
-
- /**
- * Create a new class diagram
- *
- * @param sharedObjects
- * @param container
- * The uml element to which the diagram should be attached, if possible.
- * @throws ExecutionException
- */
- protected void runAsTransaction(EObject container, ServicesRegistry registry) throws ExecutionException {
-
- ModelSet modelSet;
- try {
- modelSet = registry.getService(ModelSet.class);
- } catch (ServiceException e) {
- throw new ExecutionException("Can't get ModelSet", e);
- }
-
- runAsTransaction(modelSet, container, null);
- }
-
- /**
- * Create a new gmf diagram
- *
- * @param sharedObjects
- * @param container
- * The eObject to which the diagram should be attached, if possible.
- */
- protected void runAsTransaction(final ModelSet modelSet, final EObject container, String name) {
- TransactionalEditingDomain dom = modelSet.getTransactionalEditingDomain();
- CompositeCommand cmd = new CompositeCommand("Create diagram");
- ICommand createCmd = getCreateDiagramCommand(modelSet, container, name);
- cmd.add(createCmd);
- cmd.add(new OpenDiagramCommand(dom, createCmd));
-
- dom.getCommandStack().execute(new GMFtoEMFCommandWrapper(cmd));
- }
-
- /**
- * Get the root element associated with canvas.
- */
- protected EObject getRootElement(Resource modelResource) {
- EObject rootElement = null;
- if(modelResource != null && modelResource.getContents() != null && modelResource.getContents().size() > 0) {
- Object root = modelResource.getContents().get(0);
- if(root instanceof EObject) {
- rootElement = (EObject)root;
- }
- }
-
- return rootElement;
- }
-
- /**
- * Store model element in the resource.
- */
- protected void attachModelToResource(EObject root, Resource resource) {
- resource.getContents().add(root);
- }
-
- /**
- * Get the type of the diagram to create.
- *
- * @return diagram type
- */
- public String getCreatedDiagramType() {
- return getDiagramNotationID();
- }
-
- /**
- * @return
- */
- abstract protected String getDiagramNotationID();
-
- /**
- * @return
- */
- abstract protected PreferencesHint getPreferenceHint();
-
- /**
- * Get the name used for diagram.
- *
- * @return
- */
- abstract protected String getDefaultDiagramName();
-
- /**
- * Get currently selected element.
- *
- * @return The currently selected element, or null if any.
- */
- protected EObject getSelectedElement() {
- EObject eObject = null;
- Object selection = getCurrentSelection();
- if(selection != null) {
- eObject = EMFHelper.getEObject(selection);
- }
- return eObject;
- }
-
- /**
- * Get current selection first element.
- *
- * @return the selected element or null.
- */
- private Object getCurrentSelection() {
- ISelection selection = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getSelectionService().getSelection();
- if(selection instanceof IStructuredSelection) {
- IStructuredSelection structuredSelection = (IStructuredSelection)selection;
- return structuredSelection.getFirstElement();
- }
-
- return null;
- }
-
- /**
- * Create a diagram.
- *
- * @param diagramResource
- * the diagram resource
- * @param owner
- * the diagram container
- * @param name
- * the diagram name
- * @return
- */
- protected Diagram createDiagram(Resource diagramResource, EObject owner, String name) {
- // create diagram
- Diagram diagram = ViewService.createDiagram(owner, getDiagramNotationID(), getPreferenceHint());
- if(diagram != null) {
- diagram.setName(name);
- diagram.setElement(owner);
- initializeDiagram(diagram);
- diagramResource.getContents().add(diagram);
- }
- return diagram;
- }
-
- protected void initializeDiagram(EObject diagram) {
- };
-
- /**
- * Get the current MultiDiagramEditor.
- *
- * @return
- */
- protected IMultiDiagramEditor getMultiDiagramEditor() {
- IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
- IEditorPart editorPart = page.getActiveEditor();
- return (IMultiDiagramEditor)editorPart;
- }
-
- /**
- * Open popup to enter the new diagram name
- *
- * @param defaultValue
- * the default value
- * @return the entered diagram name
- */
- protected String openDiagramNameDialog(String defaultValue) {
- if(defaultValue == null) {
- defaultValue = "";
- }
-
- InputDialog inputDialog = new InputDialog(Display.getCurrent().getActiveShell(), Messages.AbstractPapyrusGmfCreateDiagramCommandHandler_SelectNewDiagramName, Messages.AbstractPapyrusGmfCreateDiagramCommandHandler_NewDiagramName, defaultValue, null);
- int result = inputDialog.open();
-
- if(result == Window.OK) {
- String name = inputDialog.getValue();
- if(name == null || name.length() == 0) {
- name = defaultValue;
- }
- return name;
- }
- return null;
- }
-
- /**
- * {@inheritDoc}
- */
- public void createDiagram(final ModelSet modelSet, final EObject container, final String diagramName) {
- runAsTransaction(modelSet, container, diagramName);
- }
-
- /**
- * {@inheritDoc}
- */
- public ICommand getCreateDiagramCommand(final ModelSet modelSet, final EObject container, final String diagramName) {
- //Diagram creation should not change the semantic resource
- final Resource modelResource = UmlUtils.getUmlResource(modelSet);
- final Resource notationResource = NotationUtils.getNotationResource(modelSet);
- final Resource diResource = DiModelUtils.getDiResource(modelSet);
-
- ArrayList<IFile> modifiedFiles = new ArrayList<IFile>();
- if (notationResource.getURI().isPlatformResource()) {
- modifiedFiles.add(ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(notationResource.getURI().toPlatformString(true))));
- }
- if (diResource.getURI().isPlatformResource()) {
- modifiedFiles.add(ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(diResource.getURI().toPlatformString(true))));
- }
-
- return new AbstractTransactionalCommand(modelSet.getTransactionalEditingDomain(), Messages.AbstractPapyrusGmfCreateDiagramCommandHandler_CreateDiagramCommandLabel, modifiedFiles) {
-
- protected Diagram diagram;
-
- protected EObject modelElement;
-
- @Override
- protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
-
- String name = diagramName;
- if(name == null) {
- name = openDiagramNameDialog(getDefaultDiagramName());
- }
- // canceled
- if(name == null) {
- return CommandResult.newCancelledCommandResult();
- }
-
- EObject model = container;
- if(model == null) {
- model = getRootElement(modelResource);
- attachModelToResource(model, modelResource);
- }
-
- diagram = createDiagram(notationResource, model, name);
-
- if(diagram != null) {
- try {
- IPageManager pageManager = ServiceUtilsForResource.getInstance().getIPageManager(diResource);
- pageManager.addPage(diagram);
- return CommandResult.newOKCommandResult(diagram);
- } catch (ServiceException ex) {
- Activator.log.error(ex);
- return CommandResult.newErrorCommandResult(ex);
- }
- }
- return CommandResult.newErrorCommandResult("Error during diagram creation");
- }
-
- @Override
- protected IStatus doUndo(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
- // the undo corresponds to a destroy diagram command
- // during diagram creation no adapters are set to the diagram so the setElement is not registered
- // to remove the cross reference using the element reference it is better to use the destroy element command
- // DestroyElementPapyrusCommand depc = (diagram != null) ? new DestroyElementPapyrusCommand(new DestroyElementRequest(diagram, false)) : null;
- IStatus status = super.doUndo(monitor, info);
-
- modelElement = diagram.getElement();
- diagram.setElement(null);
- return status;
- }
-
- @Override
- protected IStatus doRedo(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
- diagram.setElement(modelElement);
- IStatus status = super.doRedo(monitor, info);
- return status;
- }
- };
- }
-
- /**
- * Get the ISashWindowsContentProvider from the main editor.
- *
- * @return
- */
- protected ISashWindowsContentProvider getISashWindowsContentProvider(ServicesRegistry registry) {
- try {
- return registry.getService(ISashWindowsContentProvider.class);
- } catch (ServiceException ex) {
- Activator.log.error(ex);
- return null;
- }
- }
-
- /**
- * Check if the creation of this diagram is strongly attached to its parent or if it can be reassigned after creation.
- *
- * @return true if parent can be reassigned
- */
- public boolean isParentReassignable() {
- // yes by default
- return true;
- }
-
-}
+/*****************************************************************************
+ * Copyright (c) 2008, 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Initial API and implementation
+ * Christian W. Damus (CEA) - only calculate affected files for workspace resources (CDO)
+ * Laurent Wouters (CEA) - laurent.wouters@cea.fr - Refactoring for viewpoints
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.common;
+
+import java.util.ArrayList;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.commands.IHandler;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.CompositeCommand;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.diagram.core.preferences.PreferencesHint;
+import org.eclipse.gmf.runtime.diagram.core.services.ViewService;
+import org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.jface.dialogs.InputDialog;
+import org.eclipse.jface.window.Window;
+import org.eclipse.papyrus.commands.ICreationCommand;
+import org.eclipse.papyrus.commands.OpenDiagramCommand;
+import org.eclipse.papyrus.commands.wrappers.GMFtoEMFCommandWrapper;
+import org.eclipse.papyrus.infra.core.editor.IMultiDiagramEditor;
+import org.eclipse.papyrus.infra.core.resource.ModelSet;
+import org.eclipse.papyrus.infra.core.resource.sasheditor.DiModelUtils;
+import org.eclipse.papyrus.infra.core.sasheditor.contentprovider.IPageManager;
+import org.eclipse.papyrus.infra.core.services.ServiceException;
+import org.eclipse.papyrus.infra.emf.utils.ServiceUtilsForResource;
+import org.eclipse.papyrus.infra.gmfdiag.common.model.NotationUtils;
+import org.eclipse.papyrus.infra.gmfdiag.common.utils.DiagramUtils;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ModelRule;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ui.IModelElementValidator;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ui.ModelElementSelectionDialog;
+import org.eclipse.papyrus.infra.viewpoints.policy.PolicyChecker;
+import org.eclipse.papyrus.infra.viewpoints.policy.ViewPrototype;
+import org.eclipse.papyrus.uml.tools.model.UmlUtils;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.PlatformUI;
+
+/**
+ * Command creating a new GMF diagram in Papyrus. This command is intended to be used in eclipse
+ * extensions.
+ *
+ * Commands to create a GMF Diagram can subclass this class. There is two kinds of commands: -
+ * Eclipse handlers issuing commands (toolbar, menu, ...). This commands can find the active editor
+ * by using the Worbench.getActivePArt(). The entry point is {@link #execute(ExecutionEvent)}. -
+ * Commands called during editor initializing (like wizard). This commands require the diResourceSet
+ * to work. The entry point is {@link #createDiagram(Resource, EObject, String)}
+ *
+ * @author cedric dumoulin
+ * @author <a href="mailto:jerome.benois@obeo.fr">Jerome Benois</a>
+ */
+public abstract class AbstractPapyrusGmfCreateDiagramCommandHandler extends AbstractHandler implements IHandler, ICreationCommand {
+
+ /**
+ * Inner class for the creation of diagrams
+ *
+ * @author Laurent Wouters
+ *
+ */
+ private class Creator {
+ private ModelSet modelSet;
+ private EObject owner;
+ private EObject element;
+ private ViewPrototype prototype;
+ private String name;
+
+ public Creator(ModelSet modelSet, EObject owner, EObject element, ViewPrototype prototype, String name) {
+ this.modelSet = modelSet;
+ this.owner = owner;
+ this.element = element;
+ this.prototype = prototype;
+ this.name = name;
+ }
+
+ private Diagram createDiagram() throws ServiceException {
+ Resource modelResource = UmlUtils.getUmlResource(modelSet);
+ Resource notationResource = NotationUtils.getNotationResource(modelSet);
+ Resource diResource = DiModelUtils.getDiResource(modelSet);
+
+ if (owner == null) {
+ owner = getRootElement(modelResource);
+ attachModelToResource(owner, modelResource);
+ }
+
+ if (!PolicyChecker.getCurrent().canOwnNewView(owner, prototype)) {
+ ModelElementSelectionDialog dialog = new ModelElementSelectionDialog(Display.getCurrent().getActiveShell(), getMultiDiagramEditor().getServicesRegistry(), "Select an appropriate owner for the diagram:", getRootElement(modelResource), owner,
+ new IModelElementValidator() {
+ public String isSelectable(EObject element) {
+ if (PolicyChecker.getCurrent().canOwnNewView(owner, prototype))
+ return null;
+ return "This element cannot own the diagram.";
+ }
+ });
+ int result = dialog.open();
+ if (result != Window.OK)
+ return null;
+ owner = dialog.getSelection();
+ }
+
+ element = prototype.getRootFor(owner);
+ if (!PolicyChecker.getCurrent().canHaveNewView(element, owner, prototype)) {
+ StringBuilder builder = new StringBuilder("Select a root element for the diagram. Allowed types: ");
+ if (prototype.getConfiguration() == null) {
+ builder.append("<unknown>");
+ } else if (prototype.getConfiguration().getModelRules().size() == 0) {
+ builder.append("<unknown>");
+ } else {
+ boolean first = true;
+ for (ModelRule rule : prototype.getConfiguration().getModelRules()) {
+ EClass model = rule.getElement();
+ if (model != null) {
+ if (!first) {
+ builder.append(", ");
+ }
+ first = false;
+ builder.append(model.getName());
+ }
+ }
+ }
+ builder.append(".");
+ ModelElementSelectionDialog dialog = new ModelElementSelectionDialog(Display.getCurrent().getActiveShell(), getMultiDiagramEditor().getServicesRegistry(), builder.toString(), getRootElement(modelResource), element,
+ new IModelElementValidator() {
+ public String isSelectable(EObject element) {
+ if (PolicyChecker.getCurrent().canHaveNewView(element, owner, prototype))
+ return null;
+ return "This element cannot be the root element of the diagram.";
+ }
+ });
+ int result = dialog.open();
+ if (result != Window.OK)
+ return null;
+ element = dialog.getSelection();
+ }
+
+ if (name == null) {
+ name = openDiagramNameDialog(prototype.isNatural() ? getDefaultDiagramName() : "New" + prototype.getLabel().replace(" ", ""));
+ }
+ // canceled
+ if (name == null) {
+ return null;
+ }
+
+ Diagram diagram = doCreateDiagram(notationResource, owner, element, prototype, name);
+
+ if (diagram != null) {
+ IPageManager pageManager = ServiceUtilsForResource.getInstance().getIPageManager(diResource);
+ pageManager.addPage(diagram);
+
+ }
+ return diagram;
+ }
+ }
+
+
+ /**
+ * Get the root element associated with canvas.
+ */
+ private EObject getRootElement(Resource modelResource) {
+ EObject rootElement = null;
+ if (modelResource != null && modelResource.getContents() != null && modelResource.getContents().size() > 0) {
+ Object root = modelResource.getContents().get(0);
+ if (root instanceof EObject) {
+ rootElement = (EObject) root;
+ }
+ }
+
+ return rootElement;
+ }
+
+ /**
+ * Store model element in the resource.
+ */
+ private void attachModelToResource(EObject root, Resource resource) {
+ resource.getContents().add(root);
+ }
+
+ /**
+ * Get the current MultiDiagramEditor.
+ */
+ private IMultiDiagramEditor getMultiDiagramEditor() {
+ IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
+ IEditorPart editorPart = page.getActiveEditor();
+ return (IMultiDiagramEditor) editorPart;
+ }
+
+ /**
+ * Open popup to enter the new diagram name
+ *
+ * @param defaultValue
+ * the default value
+ * @return the entered diagram name
+ */
+ private String openDiagramNameDialog(String defaultValue) {
+ if (defaultValue == null) {
+ defaultValue = "";
+ }
+
+ InputDialog inputDialog = new InputDialog(Display.getCurrent().getActiveShell(), Messages.AbstractPapyrusGmfCreateDiagramCommandHandler_SelectNewDiagramName, Messages.AbstractPapyrusGmfCreateDiagramCommandHandler_NewDiagramName, defaultValue, null);
+ int result = inputDialog.open();
+
+ if (result == Window.OK) {
+ String name = inputDialog.getValue();
+ if (name == null || name.length() == 0) {
+ name = defaultValue;
+ }
+ return name;
+ }
+ return null;
+ }
+
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.papyrus.commands.ICreationCommand#createDiagram(org.eclipse.emf.ecore.resource.Resource, org.eclipse.emf.ecore.EObject, java.lang.String)
+ */
+ public final Diagram createDiagram(ModelSet modelSet, EObject owner, String name) {
+ ViewPrototype proto = ViewPrototype.get(getCreatedDiagramType(), owner, owner);
+ if (proto == null)
+ return null;
+ return createDiagram(modelSet, owner, owner, proto, name);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.papyrus.commands.ICreationCommand#createDiagram(org.eclipse.emf.ecore.resource.Resource, org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EObject, org.eclipse.papyrus.infra.viewpoints.policy.ViewPrototype, java.lang.String)
+ */
+ public final Diagram createDiagram(ModelSet modelSet, EObject owner, EObject element, ViewPrototype prototype, String name) {
+ ICommand createCmd = getCreateDiagramCommand(modelSet, owner, element, prototype, name);
+ TransactionalEditingDomain dom = modelSet.getTransactionalEditingDomain();
+ CompositeCommand cmd = new CompositeCommand("Create diagram");
+ cmd.add(createCmd);
+ cmd.add(new OpenDiagramCommand(dom, createCmd));
+ dom.getCommandStack().execute(new GMFtoEMFCommandWrapper(cmd));
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.papyrus.commands.ICreationCommand#getCreateDiagramCommand(org.eclipse.papyrus.infra.core.resource.ModelSet, org.eclipse.emf.ecore.EObject, java.lang.String)
+ */
+ public final ICommand getCreateDiagramCommand(ModelSet modelSet, EObject owner, String name) {
+ ViewPrototype proto = ViewPrototype.get(getCreatedDiagramType(), owner, owner);
+ if (proto == null)
+ return null;
+ return getCreateDiagramCommand(modelSet, owner, owner, proto, name);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.papyrus.commands.ICreationCommand#getCreateDiagramCommand(org.eclipse.papyrus.infra.core.resource.ModelSet, org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EObject, org.eclipse.papyrus.infra.viewpoints.policy.ViewPrototype,
+ * java.lang.String)
+ */
+ public final ICommand getCreateDiagramCommand(final ModelSet modelSet, final EObject owner, final EObject element, final ViewPrototype prototype, final String name) {
+ // Diagram creation should not change the semantic resource
+ final Resource notationResource = NotationUtils.getNotationResource(modelSet);
+ final Resource diResource = DiModelUtils.getDiResource(modelSet);
+
+ ArrayList<IFile> modifiedFiles = new ArrayList<IFile>();
+ if (notationResource.getURI().isPlatformResource()) {
+ modifiedFiles.add(ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(notationResource.getURI().toPlatformString(true))));
+ }
+ if (diResource.getURI().isPlatformResource()) {
+ modifiedFiles.add(ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(diResource.getURI().toPlatformString(true))));
+ }
+
+ return new AbstractTransactionalCommand(modelSet.getTransactionalEditingDomain(), Messages.AbstractPapyrusGmfCreateDiagramCommandHandler_CreateDiagramCommandLabel, modifiedFiles) {
+ private Diagram diagram = null;
+ private EObject diagramElement = null;
+ private EObject diagramOwner = null;
+
+ @Override
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
+ Creator creator = new Creator(modelSet, owner, element, prototype, name);
+ try {
+ diagram = creator.createDiagram();
+ if (diagram == null)
+ return CommandResult.newCancelledCommandResult();
+ diagramElement = diagram.getElement();
+ diagramOwner = DiagramUtils.getOwner(diagram);
+ return CommandResult.newOKCommandResult(diagram);
+ } catch (ServiceException e) {
+ Activator.log.error(e);
+ }
+ return CommandResult.newErrorCommandResult("Error during diagram creation");
+ }
+
+ @Override
+ protected IStatus doUndo(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
+ // the undo corresponds to a destroy diagram command
+ // during diagram creation no adapters are set to the diagram so the setElement is not registered
+ // to remove the cross reference using the element reference it is better to use the destroy element command
+ // DestroyElementPapyrusCommand depc = (diagram != null) ? new DestroyElementPapyrusCommand(new DestroyElementRequest(diagram, false)) : null;
+ IStatus status = super.doUndo(monitor, info);
+ diagram.setElement(null);
+ return status;
+ }
+
+ @Override
+ protected IStatus doRedo(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
+ diagram.setElement(diagramElement);
+ DiagramUtils.setOwner(diagram, diagramOwner);
+ IStatus status = super.doRedo(monitor, info);
+ return status;
+ }
+ };
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.papyrus.commands.ICreationCommand#getCreatedDiagramType()
+ */
+ public String getCreatedDiagramType() {
+ return getDiagramNotationID();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.papyrus.commands.ICreationCommand#isParentReassignable()
+ */
+ public boolean isParentReassignable() {
+ // yes by default
+ return true;
+ }
+
+
+
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+ // This method should not be called, use the execute(ExecutionEvent, ViewPrototype, String) method.
+ throw new UnsupportedOperationException();
+ }
+
+
+ protected abstract String getDiagramNotationID();
+
+ protected abstract PreferencesHint getPreferenceHint();
+
+ protected abstract String getDefaultDiagramName();
+
+ /**
+ * Overridable method that effectively create the diagram with the given validated parameters
+ *
+ * @param diagramResource
+ * the diagram resource
+ * @param owner
+ * the diagram's owner
+ * @param element
+ * the diagram's model element
+ * @param prototype
+ * the diagram's prototype
+ * @param name
+ * the diagram's name
+ * @return the created diagram, or <code>null</code> if the creation failed
+ */
+ protected Diagram doCreateDiagram(Resource diagramResource, EObject owner, EObject element, ViewPrototype prototype, String name) {
+ // create diagram
+ Diagram diagram = ViewService.createDiagram(element, getDiagramNotationID(), getPreferenceHint());
+ if (diagram != null) {
+ diagram.setName(name);
+ diagram.setElement(element);
+ DiagramUtils.setOwner(diagram, owner);
+ if (!prototype.isNatural())
+ DiagramUtils.setPrototype(diagram, prototype);
+ initializeDiagram(diagram);
+ diagramResource.getContents().add(diagram);
+ }
+ return diagram;
+ }
+
+ /**
+ * Overridable method for the initialization of create diagrams
+ *
+ * @param diagram
+ * the created diagram
+ */
+ protected void initializeDiagram(EObject diagram) {
+
+ };
+}
+
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/GmfEditorFactory.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/GmfEditorFactory.java
index 0ade2777252..5c7b9e57d0e 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/GmfEditorFactory.java
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/GmfEditorFactory.java
@@ -26,6 +26,7 @@ import org.eclipse.papyrus.infra.core.sasheditor.contentprovider.IEditorModel;
import org.eclipse.papyrus.infra.core.sasheditor.contentprovider.IPageModel;
import org.eclipse.papyrus.infra.core.services.ServiceException;
import org.eclipse.papyrus.infra.core.services.ServicesRegistry;
+import org.eclipse.papyrus.infra.gmfdiag.common.utils.DiagramUtils;
import org.eclipse.swt.graphics.Image;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.PartInitException;
@@ -201,7 +202,7 @@ public class GmfEditorFactory extends AbstractEditorFactory {
*
*/
public Image getTabIcon() {
- ImageDescriptor imageDescriptor = getEditorDescriptor().getIcon();
+ ImageDescriptor imageDescriptor = DiagramUtils.getPrototype(diagram).getIconDescriptor();
if(imageDescriptor == null)
return null;
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/handler/DynamicDiagramsMenuContribution.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/handler/DynamicDiagramsMenuContribution.java
new file mode 100755
index 00000000000..cd6e89e6823
--- /dev/null
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/handler/DynamicDiagramsMenuContribution.java
@@ -0,0 +1,101 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.common.handler;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.ActionContributionItem;
+import org.eclipse.jface.action.IContributionItem;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusDiagram;
+import org.eclipse.papyrus.infra.viewpoints.policy.DynamicContribution;
+import org.eclipse.papyrus.infra.viewpoints.policy.PolicyChecker;
+import org.eclipse.papyrus.infra.viewpoints.policy.ViewPrototype;
+
+/**
+ * Represents the dynamic contribution of a policy to menus
+ * @author Laurent Wouters
+ */
+public class DynamicDiagramsMenuContribution extends DynamicContribution {
+ /**
+ * Constructor.
+ */
+ public DynamicDiagramsMenuContribution() { }
+
+ /**
+ * Constructor.
+ * @param id
+ */
+ public DynamicDiagramsMenuContribution(String id) {
+ super(id);
+ }
+
+ /**
+ * @see org.eclipse.ui.actions.CompoundContributionItem#getContributionItems()
+ */
+ @Override
+ protected IContributionItem[] getContributionItems() {
+ final EObject selection = getSelection();
+ if (selection == null)
+ return new IContributionItem[0];
+
+ // build a list of all the available prototypes
+ List<ViewPrototype> data = new ArrayList<ViewPrototype>();
+ for (final ViewPrototype proto : PolicyChecker.getCurrent().getPrototypesFor(selection)) {
+ if (!(proto.getConfiguration() instanceof PapyrusDiagram))
+ continue;
+ data.add(proto);
+ }
+
+ // sort them
+ Collections.sort(data, new ViewPrototype.Comp());
+
+ // build the full labels
+ List<String> labels = new ArrayList<String>(data.size());
+ String last = null;
+ boolean first = true;
+ for (ViewPrototype item : data) {
+ String label = item.getLabel();
+ if (last != null && last.equals(label)) {
+ // name collision
+ if (first) {
+ labels.set(labels.size() - 1, data.get(labels.size() - 1).getFullLabel());
+ first = false;
+ }
+ labels.add(item.getFullLabel());
+ } else {
+ labels.add(label);
+ last = label;
+ first = true;
+ }
+ }
+
+ // build the menu
+ List<IContributionItem> items = new ArrayList<IContributionItem>(data.size());
+ for (int i = 0; i != data.size(); i++) {
+ final ViewPrototype proto = data.get(i);
+ String label = labels.get(i);
+ items.add(new ActionContributionItem(new Action(CREATE_MESSAGE + label, proto.getIconDescriptor()) {
+ @Override
+ public void run() {
+ proto.instantiateOn(selection);
+ }
+ }));
+ }
+ return items.toArray(new IContributionItem[items.size()]);
+ }
+}
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/helper/DiagramEditHelper.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/helper/DiagramEditHelper.java
new file mode 100755
index 00000000000..96a332820f5
--- /dev/null
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/helper/DiagramEditHelper.java
@@ -0,0 +1,178 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.common.helper;
+
+import java.util.List;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.gmf.runtime.common.core.command.AbstractCommand;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.edithelper.IEditHelper;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.IEditCommandRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.SetRequest;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.papyrus.infra.viewpoints.policy.ModelAddData;
+import org.eclipse.papyrus.infra.viewpoints.policy.PolicyChecker;
+
+/**
+ * Represents an Edit Helper for GMF Diagrams
+ * @author Laurent Wouters
+ */
+public class DiagramEditHelper implements IEditHelper {
+
+ /* (non-Javadoc)
+ * @see org.eclipse.gmf.runtime.emf.type.core.edithelper.IEditHelper#canEdit(org.eclipse.gmf.runtime.emf.type.core.requests.IEditCommandRequest)
+ */
+ public boolean canEdit(IEditCommandRequest req) {
+ return false;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.gmf.runtime.emf.type.core.edithelper.IEditHelper#getEditCommand(org.eclipse.gmf.runtime.emf.type.core.requests.IEditCommandRequest)
+ */
+ public ICommand getEditCommand(final IEditCommandRequest req) {
+ if (req instanceof DestroyElementRequest) {
+ DestroyElementRequest r = (DestroyElementRequest)req;
+ return getDestroyDiagramCommand((Diagram)r.getElementToDestroy());
+ } else if (req instanceof SetRequest) {
+ SetRequest r = (SetRequest)req;
+ return GetSimpleSetCommand(r.getElementToEdit(), r.getFeature(), r.getValue());
+ } else if (req instanceof CreateElementRequest) {
+ CreateElementRequest r = (CreateElementRequest)req;
+ EObject container = r.getContainer();
+ if (container instanceof Diagram)
+ return getCreateCommand((Diagram)container, r.getContainmentFeature(), r.getElementType());
+ }
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.gmf.runtime.emf.type.core.edithelper.IEditHelper#getContainedValues(org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EReference)
+ */
+ public List getContainedValues(EObject eContainer, EReference feature) {
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * Gets the command for destroying the given diagram
+ * @param diagram The diagram to destroy
+ * @return The appropriate command
+ */
+ private ICommand getDestroyDiagramCommand(final Diagram diagram) {
+ final Resource resource = diagram.eResource();
+ return new AbstractCommand("Destroy diagram") {
+ @Override
+ protected CommandResult doExecuteWithResult(IProgressMonitor progressMonitor, IAdaptable info) throws ExecutionException {
+ resource.getContents().remove(diagram);
+ return CommandResult.newOKCommandResult();
+ }
+
+ @Override
+ protected CommandResult doRedoWithResult(IProgressMonitor progressMonitor, IAdaptable info) throws ExecutionException {
+ resource.getContents().remove(diagram);
+ return CommandResult.newOKCommandResult();
+ }
+
+ @Override
+ protected CommandResult doUndoWithResult(IProgressMonitor progressMonitor, IAdaptable info) throws ExecutionException {
+ resource.getContents().add(diagram);
+ return CommandResult.newOKCommandResult();
+ }
+ };
+ }
+
+ /**
+ * Gets the command for setting a property of a view
+ * @param object The object to modify
+ * @param feature The feature to modify
+ * @param newValue The new value for the feature
+ * @return The appropriate command
+ */
+ private ICommand GetSimpleSetCommand(final EObject object, final EStructuralFeature feature, final Object newValue) {
+ return new AbstractCommand("Edit property") {
+ private Object oldValue;
+
+ @Override
+ protected CommandResult doExecuteWithResult(IProgressMonitor progressMonitor, IAdaptable info) throws ExecutionException {
+ oldValue = object.eGet(feature);
+ object.eSet(feature, newValue);
+ return CommandResult.newOKCommandResult();
+ }
+
+ @Override
+ protected CommandResult doRedoWithResult(IProgressMonitor progressMonitor, IAdaptable info) throws ExecutionException {
+ object.eSet(feature, newValue);
+ return CommandResult.newOKCommandResult();
+ }
+
+ @Override
+ protected CommandResult doUndoWithResult(IProgressMonitor progressMonitor, IAdaptable info) throws ExecutionException {
+ object.eSet(feature, oldValue);
+ return CommandResult.newOKCommandResult();
+ }
+ };
+ }
+
+
+ /**
+ * Gets the command for the creation of an element in a diagram
+ * @param diagram The diagram to change
+ * @param reference The containment feature
+ * @param type The type of the element to be created
+ * @return The appropriate command
+ */
+ private ICommand getCreateCommand(final Diagram diagram, final EReference reference, final IElementType type) {
+ return new AbstractCommand("Create element") {
+ private EObject newElement;
+ private ModelAddData data;
+
+ @Override
+ protected CommandResult doExecuteWithResult(IProgressMonitor progressMonitor, IAdaptable info) throws ExecutionException {
+ data = PolicyChecker.getCurrent().getChildAddData(diagram, diagram.getElement().eClass(), type.getEClass());
+ if (!data.isPermitted())
+ return CommandResult.newErrorCommandResult("The current active viewpoint policy prevents the addition of this element to the view");
+ newElement = type.getEClass().getEPackage().getEFactoryInstance().create(type.getEClass());
+ if (data.isPathDefined()) {
+ if (!data.execute(diagram.getElement(), newElement))
+ return CommandResult.newErrorCommandResult("Failed to follow the path");
+ } else {
+ diagram.getElement().eSet(reference, newElement);
+ }
+ return CommandResult.newOKCommandResult();
+ }
+
+ @Override
+ protected CommandResult doRedoWithResult(IProgressMonitor progressMonitor, IAdaptable info) throws ExecutionException {
+ data.redoExecute();
+ return CommandResult.newOKCommandResult();
+ }
+
+ @Override
+ protected CommandResult doUndoWithResult(IProgressMonitor progressMonitor, IAdaptable info) throws ExecutionException {
+ data.undoExecute();
+ return CommandResult.newOKCommandResult();
+ }
+ };
+ }
+}
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/helper/DiagramPrototype.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/helper/DiagramPrototype.java
new file mode 100755
index 00000000000..e28a4eaf4ec
--- /dev/null
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/helper/DiagramPrototype.java
@@ -0,0 +1,120 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.common.helper;
+
+import org.eclipse.emf.common.command.AbstractCommand;
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.papyrus.commands.Activator;
+import org.eclipse.papyrus.infra.core.resource.ModelSet;
+import org.eclipse.papyrus.infra.core.services.ServiceException;
+import org.eclipse.papyrus.infra.core.services.ServicesRegistry;
+import org.eclipse.papyrus.infra.emf.utils.ServiceUtilsForEObject;
+import org.eclipse.papyrus.infra.gmfdiag.common.AbstractPapyrusGmfCreateDiagramCommandHandler;
+import org.eclipse.papyrus.infra.gmfdiag.common.utils.DiagramUtils;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusView;
+import org.eclipse.papyrus.infra.viewpoints.policy.ViewPrototype;
+
+/**
+ * Represents a prototype of GMF diagram for the viewpoints infrastructure
+ * @author Laurent Wouters
+ */
+public class DiagramPrototype extends ViewPrototype {
+ protected final String category;
+ protected final AbstractPapyrusGmfCreateDiagramCommandHandler command;
+
+ public DiagramPrototype(PapyrusView configuration, String category, AbstractPapyrusGmfCreateDiagramCommandHandler command) {
+ super(configuration);
+ this.category = category;
+ this.command = command;
+ }
+
+ @Override
+ public boolean instantiateOn(EObject owner) {
+ return instantiateOn(owner, null);
+ }
+
+ @Override
+ public boolean instantiateOn(EObject owner, String name) {
+ ServicesRegistry registry;
+ try {
+ registry = ServiceUtilsForEObject.getInstance().getServiceRegistry(owner);
+ } catch (ServiceException ex) {
+ Activator.log.error(ex);
+ return false;
+ }
+ ModelSet modelSet;
+ try {
+ modelSet = registry.getService(ModelSet.class);
+ } catch (ServiceException ex) {
+ Activator.log.error(ex);
+ return false;
+ }
+ Object result = command.createDiagram(modelSet, owner, owner, this, name);
+ return (result != null);
+ }
+
+ @Override
+ public boolean isOwnerReassignable() {
+ // Users can always move diagrams that are part of their viewpoint
+ return true;
+ }
+
+ @Override
+ public Command getCommandChangeOwner(EObject view, final EObject target) {
+ final Diagram diagram = (Diagram)view;
+ final EObject previous = DiagramUtils.getOwner(diagram);
+ return new AbstractCommand("Change diagram owner") {
+ @Override
+ public void execute() {
+ DiagramUtils.setOwner(diagram, target);
+ }
+ @Override
+ public void redo() {
+ DiagramUtils.setOwner(diagram, previous);
+ }
+ @Override
+ protected boolean prepare() { return true; }
+ };
+ }
+
+ @Override
+ public Command getCommandChangeRoot(EObject view, final EObject target) {
+ final Diagram diagram = (Diagram)view;
+ final EObject previous = diagram.getElement();
+ return new AbstractCommand("Change diagram root element") {
+ @Override
+ public void execute() {
+ diagram.setElement(target);
+ }
+ @Override
+ public void redo() {
+ diagram.setElement(previous);
+ }
+ @Override
+ protected boolean prepare() { return true; }
+ };
+ }
+
+ @Override
+ public EObject getOwnerOf(EObject view) {
+ return DiagramUtils.getOwner((Diagram)view);
+ }
+
+ @Override
+ public EObject getRootOf(EObject view) {
+ return ((Diagram)view).getElement();
+ }
+}
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/helper/GMFDiagramViewTypeHelper.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/helper/GMFDiagramViewTypeHelper.java
new file mode 100755
index 00000000000..19544a0c3ea
--- /dev/null
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/helper/GMFDiagramViewTypeHelper.java
@@ -0,0 +1,165 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.common.helper;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtension;
+import org.eclipse.core.runtime.IExtensionPoint;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.papyrus.infra.gmfdiag.common.AbstractPapyrusGmfCreateDiagramCommandHandler;
+import org.eclipse.papyrus.infra.gmfdiag.common.utils.DiagramUtils;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusDiagram;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusView;
+import org.eclipse.papyrus.infra.viewpoints.policy.IViewTypeHelper;
+import org.eclipse.papyrus.infra.viewpoints.policy.ViewPrototype;
+
+/**
+ * Represents the dynamic contribution of a policy to menus
+ * @author Laurent Wouters
+ */
+public class GMFDiagramViewTypeHelper implements IViewTypeHelper {
+ /**
+ * ID of the extension point for Papyrus diagrams
+ */
+ private static final String EXTENSION_PAPYRUS_DIAGRAM = "org.eclipse.papyrus.infra.core.papyrusDiagram";
+
+ private static class NakedViewPrototype extends DiagramPrototype {
+ private final String label;
+ private final String icon;
+ public NakedViewPrototype(PapyrusView configuration, String category, AbstractPapyrusGmfCreateDiagramCommandHandler command, String label, String icon) {
+ super(configuration, category, command);
+ this.label = label;
+ this.icon = icon;
+ }
+ @Override
+ public String getLabel() { return label; }
+ @Override
+ public String getIconURI() { return icon; }
+ }
+
+ private static class Implementation {
+ public final String name;
+ public final String icon;
+ public final String language;
+ public final AbstractPapyrusGmfCreateDiagramCommandHandler command;
+ public Implementation(String name, String icon, String language, AbstractPapyrusGmfCreateDiagramCommandHandler command) {
+ this.name = name;
+ this.icon = icon;
+ this.language = language;
+ this.command = command;
+ }
+ }
+
+
+ /**
+ * The cache of prototypes
+ */
+ private Map<PapyrusView, DiagramPrototype> cache;
+
+ /**
+ * The cache of implementations
+ */
+ private Map<String, Implementation> implementations;
+
+ /**
+ * @see org.eclipse.papyrus.infra.viewpoints.policy.IViewTypeHelper#isSupported(org.eclipse.emf.ecore.EClass)
+ */
+ public boolean isSupported(EClass type) {
+ return EcoreUtil.equals(type, ConfigurationPackage.eINSTANCE.getPapyrusDiagram());
+ }
+
+ /**
+ * @see org.eclipse.papyrus.infra.viewpoints.policy.IViewTypeHelper#isSupported(org.eclipse.emf.ecore.EObject)
+ */
+ public boolean isSupported(EObject view) {
+ return (view instanceof Diagram);
+ }
+
+ /**
+ * @see org.eclipse.papyrus.infra.viewpoints.policy.IViewTypeHelper#getPrototypeFor(org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusView)
+ */
+ public ViewPrototype getPrototypeFor(PapyrusView configuration) {
+ if (!(configuration instanceof PapyrusDiagram))
+ return null;
+ if (implementations == null)
+ buildImplementationCache();
+ if (cache == null)
+ cache = new HashMap<PapyrusView, DiagramPrototype>();
+ if (cache.containsKey(configuration))
+ return cache.get(configuration);
+ if (!implementations.containsKey(configuration.getImplementationID()))
+ return null;
+ Implementation impl = implementations.get(configuration.getImplementationID());
+ if (ViewPrototype.isNatural(configuration)) {
+ NakedViewPrototype proto = new NakedViewPrototype(configuration, impl.language, impl.command, impl.name, impl.icon);
+ cache.put(configuration, proto);
+ return proto;
+ } else {
+ DiagramPrototype proto = new DiagramPrototype(configuration, impl.language, impl.command);
+ cache.put(configuration, proto);
+ return proto;
+ }
+ }
+
+ /**
+ * @see org.eclipse.papyrus.infra.viewpoints.policy.IViewTypeHelper#getPrototypeOf(org.eclipse.emf.ecore.EObject)
+ */
+ public ViewPrototype getPrototypeOf(EObject view) {
+ if (!(view instanceof Diagram))
+ return null;
+ return DiagramUtils.getPrototype((Diagram)view);
+ }
+
+ /**
+ * Builds the cache of metadata
+ */
+ private void buildImplementationCache() {
+ implementations = new HashMap<String, Implementation>();
+ IExtensionRegistry registry = Platform.getExtensionRegistry();
+ IExtensionPoint point = registry.getExtensionPoint(EXTENSION_PAPYRUS_DIAGRAM);
+ IExtension[] extensions = point.getExtensions();
+ for (int i=0; i!=extensions.length; i++) {
+ IConfigurationElement[] elements = extensions[i].getConfigurationElements();
+ for (int j=0; j!=elements.length; j++) {
+ if (elements[j].getName().equals("creationCommand")) {
+ try {
+ Object obj = elements[j].createExecutableExtension("creationCommandClass");
+ if (obj instanceof AbstractPapyrusGmfCreateDiagramCommandHandler) {
+ AbstractPapyrusGmfCreateDiagramCommandHandler command = (AbstractPapyrusGmfCreateDiagramCommandHandler)obj;
+ String label = elements[j].getAttribute("label");
+ String icon = elements[j].getAttribute("icon");
+ String language = elements[j].getAttribute("language");
+ String implID = command.getCreatedDiagramType();
+ if (!icon.startsWith("platform:/"))
+ icon = "platform:/plugin/" + extensions[i].getContributor().getName() + "/" + icon;
+ if (!implementations.containsKey(implID))
+ implementations.put(implID, new Implementation(label, icon, language, command));
+ }
+ }
+ catch (CoreException e) { }
+ }
+ }
+ }
+ }
+}
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/helper/NotationHelper.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/helper/NotationHelper.java
index 7d783690bec..7c43a346c1a 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/helper/NotationHelper.java
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/helper/NotationHelper.java
@@ -11,7 +11,6 @@
*****************************************************************************/
package org.eclipse.papyrus.infra.gmfdiag.common.helper;
-import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.gmf.runtime.notation.View;
import org.eclipse.papyrus.infra.emf.utils.EMFHelper;
@@ -34,18 +33,7 @@ public class NotationHelper {
if(source instanceof View) {
return (View)source;
}
- if(source instanceof IAdaptable) {
- IAdaptable adaptable = (IAdaptable)source;
- Object adapter = adaptable.getAdapter(View.class);
- if(adapter != null) {
- return (View)adapter;
- }
- adapter = EMFHelper.getEObject(adaptable);
- if(adapter instanceof View) {
- return (View)adapter;
- }
- }
- return null;
+ return (View) EMFHelper.getEObject(source);
}
/**
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/model/NotationUtils.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/model/NotationUtils.java
index 9ad8ee049be..606fa01febd 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/model/NotationUtils.java
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/model/NotationUtils.java
@@ -1,272 +1,210 @@
-/*****************************************************************************
- * Copyright (c) 2009 Atos Origin.
- *
- *
- * 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:
- * Emilien Perico (Atos Origin) emilien.perico@atosorigin.com - Initial API and implementation
- *
- *****************************************************************************/
-package org.eclipse.papyrus.infra.gmfdiag.common.model;
-
-import java.util.ArrayList;
-import java.util.LinkedList;
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.gmf.runtime.notation.Diagram;
-import org.eclipse.gmf.runtime.notation.NotationPackage;
-import org.eclipse.papyrus.infra.core.resource.IModel;
-import org.eclipse.papyrus.infra.core.resource.ModelSet;
-import org.eclipse.papyrus.infra.core.services.ServiceException;
-import org.eclipse.papyrus.infra.core.services.ServicesRegistry;
-import org.eclipse.papyrus.infra.core.utils.ServiceUtils;
-import org.eclipse.papyrus.infra.core.utils.ServiceUtilsForActionHandlers;
-import org.eclipse.papyrus.infra.emf.utils.EMFHelper;
-import org.eclipse.papyrus.infra.gmfdiag.common.Activator;
-
-import com.google.common.base.Function;
-import com.google.common.base.Predicate;
-import com.google.common.collect.Iterables;
-import com.google.common.collect.Lists;
-
-/**
- * Utilities method to manage notation models. Should be moved in a more
- * suitable plugin
- */
-public class NotationUtils {
-
- /**
- * Get the notation Resource.
- *
- * @return
- *
- * @deprecated Usage of the internal Resource is discouraged.
- */
- @Deprecated
- public static Resource getNotationResource() {
- return getNotationModel().getResource();
- }
-
- /**
- * Gets the NotationModel for the currently selected editor. <br>
- * Warning: This method is designed to be call from ui.handlers. It is not
- * designed to be call from Editors. This method can return null if called
- * during the MultiEditor initialization.
- *
- * @see ServiceUtilsForActionHandlers.getInstance().getModelSet()
- *
- * @return The {@link NotationModel} of the current editor, or null if not
- * found.
- */
- public static NotationModel getNotationModel() {
-
- try {
- return (NotationModel)ServiceUtilsForActionHandlers.getInstance().getModelSet().getModel(NotationModel.MODEL_ID);
- } catch (ServiceException e) {
- return null;
- }
- }
-
- /**
- * Gets the NotationModel for the currently selected editor. <br>
- * Warning: This method is designed to be call from ui.handlers. It is not
- * designed to be call from Editors. This method can return null if called
- * during the MultiEditor initialization.
- *
- * @see ServiceUtilsForActionHandlers.getInstance().getModelSet()
- *
- * @return The {@link NotationModel} of the current editor, or null if not
- * found.
- * @throws ServiceException
- * If an error occurs while getting or starting the service.
- */
- public static NotationModel getNotationModelChecked() throws ServiceException {
-
- return (NotationModel)ServiceUtilsForActionHandlers.getInstance().getModelSet().getModel(NotationModel.MODEL_ID);
- }
-
- /**
- * Gets the NotationModel from the {@link ModelSet}. <br>
- *
- * @param modelsManager
- * The modelManager containing the requested model.
- *
- * @return The {@link NotationModel} registered in modelManager, or null if
- * not found.
- */
- public static NotationModel getNotationModel(ModelSet modelsManager) {
-
- return (NotationModel)modelsManager.getModel(NotationModel.MODEL_ID);
- }
-
- /**
- * Gets the direct associated diagram of the specified eObject.
- *
- * @param eObject
- * @param notationResource
- *
- * @return the associated diagram
- */
- public static Diagram getAssociatedDiagram(Resource notationResource, EObject eObject) {
- if(notationResource != null) {
- for(EObject obj : notationResource.getContents()) {
- if(obj instanceof Diagram) {
- Diagram diagram = (Diagram)obj;
- if(eObject != null && eObject.equals(diagram.getElement())) {
- return diagram;
- }
- }
- }
- }
- return null;
- }
-
- /**
- * Gets the direct associated diagram of the specified eObject.
- *
- * @param eObject
- * @param notationResource
- * @param resolve
- * the resource if true
- *
- * @return the associated diagram
- */
- public static Diagram getAssociatedDiagram(Resource notationResource, EObject eObject, boolean resolve) {
- if(notationResource != null && resolve) {
- EcoreUtil.resolveAll(notationResource);
- }
- return getAssociatedDiagram(notationResource, eObject);
- }
-
- /**
- * Gets the all the diagrams contained in the specified ancestor eObject
- *
- * @param notationResource
- * @param eObject
- *
- * @return all the contained diagrams
- *
- */
- public static List<Diagram> getDiagrams(Resource notationResource, EObject eObject) {
- List<Diagram> diagrams = new LinkedList<Diagram>();
- if(notationResource != null) {
- for(EObject obj : notationResource.getContents()) {
- if(obj instanceof Diagram) {
- Diagram diagram = (Diagram)obj;
- if(EcoreUtil.isAncestor(eObject, diagram.getElement())) {
- diagrams.add(diagram);
- }
- }
- }
- }
- return diagrams;
- }
-
- /**
- * Gets the all the diagrams contained in the specified ancestor eObject
- *
- * @param notationResource
- * @param eObject
- * @param resolve
- * the resource if true
- *
- * @return all the contained diagrams
- */
- public static List<Diagram> getDiagrams(Resource notationResource, EObject eObject, boolean resolve) {
- if(notationResource != null && resolve) {
- EcoreUtil.resolveAll(notationResource);
- }
- return getDiagrams(notationResource, eObject);
- }
-
- /**
- * Helper to retrieve the Notation resource associated to a ModelSet. May be null.
- *
- * @param from
- * @return
- */
- public static Resource getNotationResource(ModelSet from) {
- IModel notationModel = from.getModel(NotationModel.MODEL_ID);
- if(notationModel instanceof NotationModel) {
- return ((NotationModel)notationModel).getResource();
- }
- return null;
- }
-
- /**
- * Helper to retrieve the Notation resource associated to a ServicesRegistry. May be null.
- *
- * @param from
- * @return
- */
- public static Resource getNotationResource(ServicesRegistry registry) {
- try {
- ModelSet modelSet = ServiceUtils.getInstance().getModelSet(registry);
- return getNotationResource(modelSet);
- } catch (ServiceException ex) {
- Activator.log.error(ex);
- return null;
- }
- }
-
- /**
- * Gets the loaded associated diagrams of the specified eObject.
- * This method uses the cross referencer to compute them.
- *
- * @param eObject
- * @param notationResource
- *
- * @return the associated diagram
- */
- public static List<Diagram> getLoadedAssociatedDiagrams(EObject eObject) {
- Predicate<EStructuralFeature.Setting> p = new Predicate<EStructuralFeature.Setting>() {
-
- public boolean apply(EStructuralFeature.Setting setting) {
- return setting.getEObject() instanceof Diagram && NotationPackage.Literals.VIEW__ELEMENT.equals(setting.getEStructuralFeature());
- }
- };
- Function<EStructuralFeature.Setting, Diagram> f = new Function<EStructuralFeature.Setting, Diagram>() {
-
- public Diagram apply(EStructuralFeature.Setting setting) {
- return (Diagram)setting.getEObject();
- }
-
- };
- return Lists.newArrayList(Iterables.transform(Iterables.filter(EMFHelper.getUsages(eObject), p), f));
- }
-
- /**
- * Gets the all the diagrams contained in the specified ancestor eObject and
- * currently stored in the specified notation resource.
- *
- * @param notationResource
- * @param eObject
- *
- * @return all the contained diagrams
- *
- */
- public static List<Diagram> getAllDescendantDiagramsInResource(EObject eObject, Resource notationResource) {
- List<Diagram> diagrams = new ArrayList<Diagram>();
- if(notationResource != null) {
- for(EObject obj : notationResource.getContents()) {
- if(obj instanceof Diagram) {
- Diagram diagram = (Diagram)obj;
- if(EcoreUtil.isAncestor(eObject, diagram.getElement())) {
- diagrams.add(diagram);
- }
- }
- }
- }
- return diagrams;
- }
-
-
-}
+/*****************************************************************************
+ * Copyright (c) 2009 Atos Origin.
+ *
+ *
+ * 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:
+ * Emilien Perico (Atos Origin) emilien.perico@atosorigin.com - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.common.model;
+
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.papyrus.infra.core.resource.IModel;
+import org.eclipse.papyrus.infra.core.resource.ModelSet;
+import org.eclipse.papyrus.infra.core.services.ServiceException;
+import org.eclipse.papyrus.infra.core.services.ServicesRegistry;
+import org.eclipse.papyrus.infra.core.utils.ServiceUtils;
+import org.eclipse.papyrus.infra.core.utils.ServiceUtilsForActionHandlers;
+import org.eclipse.papyrus.infra.gmfdiag.common.Activator;
+import org.eclipse.papyrus.infra.gmfdiag.common.utils.DiagramUtils;
+
+/**
+ * Utilities method to manage notation models. Should be moved in a more
+ * suitable plugin
+ */
+public class NotationUtils {
+
+ /**
+ * Get the notation Resource.
+ *
+ * @return
+ *
+ * @deprecated Usage of the internal Resource is discouraged.
+ */
+ @Deprecated
+ public static Resource getNotationResource() {
+ return getNotationModel().getResource();
+ }
+
+ /**
+ * Gets the NotationModel for the currently selected editor. <br>
+ * Warning: This method is designed to be call from ui.handlers. It is not
+ * designed to be call from Editors. This method can return null if called
+ * during the MultiEditor initialization.
+ *
+ * @see ServiceUtilsForActionHandlers.getInstance().getModelSet()
+ *
+ * @return The {@link NotationModel} of the current editor, or null if not
+ * found.
+ */
+ public static NotationModel getNotationModel() {
+
+ try {
+ return (NotationModel)ServiceUtilsForActionHandlers.getInstance().getModelSet().getModel(NotationModel.MODEL_ID);
+ } catch (ServiceException e) {
+ return null;
+ }
+ }
+
+ /**
+ * Gets the NotationModel for the currently selected editor. <br>
+ * Warning: This method is designed to be call from ui.handlers. It is not
+ * designed to be call from Editors. This method can return null if called
+ * during the MultiEditor initialization.
+ *
+ * @see ServiceUtilsForActionHandlers.getInstance().getModelSet()
+ *
+ * @return The {@link NotationModel} of the current editor, or null if not
+ * found.
+ * @throws ServiceException
+ * If an error occurs while getting or starting the service.
+ */
+ public static NotationModel getNotationModelChecked() throws ServiceException {
+
+ return (NotationModel)ServiceUtilsForActionHandlers.getInstance().getModelSet().getModel(NotationModel.MODEL_ID);
+ }
+
+ /**
+ * Gets the NotationModel from the {@link ModelSet}. <br>
+ *
+ * @param modelsManager
+ * The modelManager containing the requested model.
+ *
+ * @return The {@link NotationModel} registered in modelManager, or null if
+ * not found.
+ */
+ public static NotationModel getNotationModel(ModelSet modelsManager) {
+
+ return (NotationModel)modelsManager.getModel(NotationModel.MODEL_ID);
+ }
+
+ /**
+ * Gets the direct associated diagram of the specified eObject.
+ *
+ * @param eObject
+ * @param notationResource
+ *
+ * @return the associated diagram
+ */
+ public static Diagram getAssociatedDiagram(Resource notationResource, EObject eObject) {
+ if(notationResource != null) {
+ for(EObject obj : notationResource.getContents()) {
+ if(obj instanceof Diagram) {
+ Diagram diagram = (Diagram)obj;
+ if (DiagramUtils.getOwner(diagram) == eObject)
+ return diagram;
+ }
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Gets the direct associated diagram of the specified eObject.
+ *
+ * @param eObject
+ * @param notationResource
+ * @param resolve
+ * the resource if true
+ *
+ * @return the associated diagram
+ */
+ public static Diagram getAssociatedDiagram(Resource notationResource, EObject eObject, boolean resolve) {
+ if(notationResource != null && resolve) {
+ EcoreUtil.resolveAll(notationResource);
+ }
+ return getAssociatedDiagram(notationResource, eObject);
+ }
+
+ /**
+ * Gets the all the diagrams contained in the specified ancestor eObject
+ *
+ * @param notationResource
+ * @param eObject
+ *
+ * @return all the contained diagrams
+ *
+ */
+ public static List<Diagram> getDiagrams(Resource notationResource, EObject eObject) {
+ List<Diagram> diagrams = new LinkedList<Diagram>();
+ if(notationResource != null) {
+ for(EObject obj : notationResource.getContents()) {
+ if(obj instanceof Diagram) {
+ Diagram diagram = (Diagram)obj;
+ if (EcoreUtil.isAncestor(eObject, DiagramUtils.getOwner(diagram)))
+ diagrams.add(diagram);
+ }
+ }
+ }
+ return diagrams;
+ }
+
+ /**
+ * Gets the all the diagrams contained in the specified ancestor eObject
+ *
+ * @param notationResource
+ * @param eObject
+ * @param resolve
+ * the resource if true
+ *
+ * @return all the contained diagrams
+ */
+ public static List<Diagram> getDiagrams(Resource notationResource, EObject eObject, boolean resolve) {
+ if(notationResource != null && resolve) {
+ EcoreUtil.resolveAll(notationResource);
+ }
+ return getDiagrams(notationResource, eObject);
+ }
+
+ /**
+ * Helper to retrieve the Notation resource associated to a ModelSet. May be null.
+ *
+ * @param from
+ * @return
+ */
+ public static Resource getNotationResource(ModelSet from) {
+ IModel notationModel = from.getModel(NotationModel.MODEL_ID);
+ if(notationModel instanceof NotationModel) {
+ return ((NotationModel)notationModel).getResource();
+ }
+ return null;
+ }
+
+ /**
+ * Helper to retrieve the Notation resource associated to a ServicesRegistry. May be null.
+ *
+ * @param from
+ * @return
+ */
+ public static Resource getNotationResource(ServicesRegistry registry) {
+ try {
+ ModelSet modelSet = ServiceUtils.getInstance().getModelSet(registry);
+ return getNotationResource(modelSet);
+ } catch (ServiceException ex) {
+ Activator.log.error(ex);
+ return null;
+ }
+ }
+}
+
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/providers/NotationLabelProvider.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/providers/NotationLabelProvider.java
index cd8d0de611f..7a7c2daef82 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/providers/NotationLabelProvider.java
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/providers/NotationLabelProvider.java
@@ -11,6 +11,8 @@
*****************************************************************************/
package org.eclipse.papyrus.infra.gmfdiag.common.providers;
+import javax.swing.text.Element;
+
import org.eclipse.emf.ecore.EObject;
import org.eclipse.gef.EditPart;
import org.eclipse.gmf.runtime.diagram.ui.editparts.ResizableCompartmentEditPart;
@@ -19,15 +21,14 @@ import org.eclipse.gmf.runtime.notation.BasicCompartment;
import org.eclipse.gmf.runtime.notation.DecorationNode;
import org.eclipse.gmf.runtime.notation.Diagram;
import org.eclipse.gmf.runtime.notation.View;
-import org.eclipse.papyrus.infra.core.editorsfactory.IPageIconsRegistry;
-import org.eclipse.papyrus.infra.core.editorsfactory.PageIconsRegistry;
-import org.eclipse.papyrus.infra.core.extension.diagrameditor.PluggableEditorFactoryReader;
import org.eclipse.papyrus.infra.emf.providers.EMFLabelProvider;
+import org.eclipse.papyrus.infra.emf.utils.EMFHelper;
import org.eclipse.papyrus.infra.gmfdiag.common.Activator;
import org.eclipse.papyrus.infra.gmfdiag.common.types.NotationTypesMap;
+import org.eclipse.papyrus.infra.gmfdiag.common.utils.DiagramUtils;
+import org.eclipse.papyrus.infra.viewpoints.policy.ViewPrototype;
import org.eclipse.swt.graphics.Image;
import org.eclipse.uml2.uml.NamedElement;
-import org.w3c.dom.Element;
/**
* A Label Provider for GMF Notation model
@@ -37,28 +38,27 @@ public class NotationLabelProvider extends EMFLabelProvider {
/** icon for a compartment */
public static final String ICON_COMPARTMENT = "/icons/none_comp_vis.gif"; //$NON-NLS-1$
- private IPageIconsRegistry pageIconsRegistry;
-
@Override
public void dispose() {
super.dispose();
- if(pageIconsRegistry != null) {
- pageIconsRegistry.dispose();
- pageIconsRegistry = null;
+ }
+
+ @Override
+ public Image getImage(Object element) {
+ EObject eObject = EMFHelper.getEObject(element);
+ if (eObject != null) {
+ return getImage(eObject);
}
+ return super.getImage(element);
}
@Override
protected Image getImage(EObject element) {
if(element instanceof Diagram) {
- //return getPagesIconsRegistry().getEditorIcp
- if(pageIconsRegistry == null) {
- pageIconsRegistry = new PageIconsRegistry();
- PluggableEditorFactoryReader editorReader = new PluggableEditorFactoryReader(org.eclipse.papyrus.infra.core.Activator.PLUGIN_ID);
- editorReader.populate((PageIconsRegistry)pageIconsRegistry);
- }
-
- return pageIconsRegistry.getEditorIcon(element);
+ ViewPrototype proto = DiagramUtils.getPrototype((Diagram)element);
+ if (proto == null)
+ return null;
+ return proto.getIcon();
}
// if the element is a compartment
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/utils/DiagramUtils.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/utils/DiagramUtils.java
new file mode 100755
index 00000000000..4e78d0e5047
--- /dev/null
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/utils/DiagramUtils.java
@@ -0,0 +1,124 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.common.utils;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.gmf.runtime.notation.Style;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusView;
+import org.eclipse.papyrus.infra.viewpoints.policy.PolicyChecker;
+import org.eclipse.papyrus.infra.viewpoints.policy.ViewPrototype;
+import org.eclipse.papyrus.infra.viewpoints.style.PapyrusViewStyle;
+import org.eclipse.papyrus.infra.viewpoints.style.StylePackage;
+
+/**
+ * Utilities for the management of configuration-related data on views and diagrams
+ * @author Laurent Wouters
+ */
+public class DiagramUtils {
+
+ /**
+ * Gets the diagram associated to the given edit part
+ * @param part The edit part
+ * @return The diagram associated to the edit part, or <code>null</code> if none is found
+ */
+ public static Diagram getDiagramFrom(EditPart part) {
+ EditPart current = part;
+ while (current != null) {
+ Object model = current.getModel();
+ if (model instanceof Diagram)
+ return (Diagram)model;
+ current = current.getParent();
+ }
+ return null;
+ }
+
+ /**
+ * Gets the owner of a diagram as it will appear in the model explorer.
+ * In the case where the diagram does not yet have a defined owner, the diagram's root element will be returned instead.
+ * @param diagram A diagram
+ * @return The diagram's owner
+ */
+ public static EObject getOwner(Diagram diagram) {
+ Style style = diagram.getStyle(StylePackage.Literals.PAPYRUS_VIEW_STYLE);
+ if (style != null) {
+ PapyrusViewStyle pvs = (PapyrusViewStyle)style;
+ EObject value = pvs.getOwner();
+ if (value != null)
+ return value;
+ }
+ // This is the legacy fallback for old diagrams
+ return diagram.getElement();
+ }
+
+ /**
+ * Sets the owner of a diagram as it will appear in the model explorer
+ * @param diagram A diagram
+ * @param owner The new diagram's owner
+ */
+ public static void setOwner(Diagram diagram, EObject owner) {
+ Style style = diagram.getStyle(StylePackage.Literals.PAPYRUS_VIEW_STYLE);
+ if (style != null) {
+ PapyrusViewStyle pvs = (PapyrusViewStyle)style;
+ pvs.setOwner(owner);
+ } else {
+ PapyrusViewStyle pvs = (PapyrusViewStyle)diagram.createStyle(StylePackage.Literals.PAPYRUS_VIEW_STYLE);
+ pvs.setOwner(owner);
+ }
+ }
+
+ /**
+ * Gets the prototype of a diagram
+ * @param diagram A diagram
+ * @return The diagram's prototype
+ */
+ public static ViewPrototype getPrototype(Diagram diagram) {
+ Style style = diagram.getStyle(StylePackage.Literals.PAPYRUS_VIEW_STYLE);
+ if (style != null) {
+ PapyrusViewStyle pvs = (PapyrusViewStyle)style;
+ PapyrusView config = pvs.getConfiguration();
+ if (config != null) {
+ if (PolicyChecker.getCurrent().isInViewpoint(config))
+ return ViewPrototype.get(config);
+ return ViewPrototype.UNAVAILABLE_DIAGRAM;
+ }
+ return ViewPrototype.get(diagram.getType(), pvs.getOwner(), diagram.getElement());
+ }
+ // This is the legacy fallback for old diagrams
+ if ("Package".equals(diagram.getType())) {
+ for (ViewPrototype prototype : PolicyChecker.getCurrent().getAllPrototypes()) {
+ if ("UML Package Diagram".equals(prototype.getLabel()))
+ return prototype;
+ }
+ }
+ return ViewPrototype.get(diagram.getType(), diagram.getElement(), diagram.getElement());
+ }
+
+ /**
+ * Sets the prototype of a diagram
+ * @param diagram A diagram
+ * @param configuration The new diagram's prototype
+ */
+ public static void setPrototype(Diagram diagram, ViewPrototype prototype) {
+ Style style = diagram.getStyle(StylePackage.Literals.PAPYRUS_VIEW_STYLE);
+ if (style != null) {
+ PapyrusViewStyle pvs = (PapyrusViewStyle)style;
+ pvs.setConfiguration(prototype.getConfiguration());
+ } else {
+ PapyrusViewStyle pvs = (PapyrusViewStyle)diagram.createStyle(StylePackage.Literals.PAPYRUS_VIEW_STYLE);
+ pvs.setConfiguration(prototype.getConfiguration());
+ }
+ }
+}
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.controlmode/src/org/eclipse/papyrus/infra/gmfdiag/controlmode/ControlDiagramsCommand.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.controlmode/src/org/eclipse/papyrus/infra/gmfdiag/controlmode/ControlDiagramsCommand.java
index 34ed42b72bc..08fb60c2c03 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.controlmode/src/org/eclipse/papyrus/infra/gmfdiag/controlmode/ControlDiagramsCommand.java
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.controlmode/src/org/eclipse/papyrus/infra/gmfdiag/controlmode/ControlDiagramsCommand.java
@@ -99,7 +99,7 @@ public class ControlDiagramsCommand extends AbstractControlCommand {
if(notationResource == null) {
throw new ExecutionException("unable to retrieve old notation resource");
}
- return NotationUtils.getAllDescendantDiagramsInResource(getRequest().getTargetObject(), notationResource);
+ return NotationUtils.getDiagrams(notationResource, getRequest().getTargetObject());
}
/**
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.modelexplorer/META-INF/MANIFEST.MF b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.modelexplorer/META-INF/MANIFEST.MF
index a0090e3f2c6..7ad5863dd55 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.modelexplorer/META-INF/MANIFEST.MF
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.modelexplorer/META-INF/MANIFEST.MF
@@ -18,7 +18,9 @@ Require-Bundle: org.eclipse.ui,
org.eclipse.papyrus.emf.facet.efacet,
org.eclipse.papyrus.emf.facet.efacet.metamodel,
org.eclipse.papyrus.emf.facet.custom.metamodel,
- org.eclipse.papyrus.infra.emf
+ org.eclipse.papyrus.infra.emf,
+ org.eclipse.papyrus.infra.gmfdiag.common;bundle-version="1.0.0",
+ org.eclipse.papyrus.infra.viewpoints.policy;bundle-version="1.0.0"
Bundle-Vendor: %providerName
Bundle-ActivationPolicy: lazy
Bundle-Version: 1.0.0.qualifier
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.modelexplorer/plugin.xml b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.modelexplorer/plugin.xml
index 90d477a5bca..6d23ed58823 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.modelexplorer/plugin.xml
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.modelexplorer/plugin.xml
@@ -2,34 +2,9 @@
<?eclipse version="3.4"?>
<plugin>
-
-<extension point="org.eclipse.papyrus.emf.facet.util.emf.core.modeldeclaration">
- <modeldeclaration file="resources/PapyrusDiagram.custom"/>
-</extension>
-
- <!-- TODO: EMF-FACET
- <extension point="org.eclipse.papyrus.emf.facet.infra.query.registration">
- <modelqueryset file="resources/PapyrusNotationFacet.querySet">
- </modelqueryset>
- </extension>
-
- <extension point="org.eclipse.papyrus.emf.facet.infra.browser.custom.core.registration">
- <browserCustomization
- file="resources/PapyrusNotation.uiCustom"
- loadByDefault="true"/>
- </extension>
- <extension point="org.eclipse.papyrus.emf.facet.infra.browser.custom.core.registration">
- <browserCustomization
- file="resources/PapyrusNotationFacet.uiCustom"
- loadByDefault="true"/>
- </extension>
- <extension
- point="org.eclipse.papyrus.emf.facet.infra.facet.registration">
- <facetset
- file="resources/PapyrusNotationFacet.facetSet">
- </facetset>
+ <extension point="org.eclipse.papyrus.emf.facet.util.emf.core.modeldeclaration">
+ <modeldeclaration file="resources/PapyrusDiagram.custom"/>
</extension>
- -->
<extension
point="org.eclipse.ui.handlers">
<handler
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.modelexplorer/src/org/eclipse/papyrus/infra/gmfdiag/modelexplorer/queries/GetContainedDiagrams.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.modelexplorer/src/org/eclipse/papyrus/infra/gmfdiag/modelexplorer/queries/GetContainedDiagrams.java
index c5c535df52d..c9ebb4e79b6 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.modelexplorer/src/org/eclipse/papyrus/infra/gmfdiag/modelexplorer/queries/GetContainedDiagrams.java
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.modelexplorer/src/org/eclipse/papyrus/infra/gmfdiag/modelexplorer/queries/GetContainedDiagrams.java
@@ -20,6 +20,7 @@ import java.util.List;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.papyrus.infra.gmfdiag.common.utils.DiagramUtils;
import org.eclipse.papyrus.emf.facet.efacet.core.IFacetManager;
import org.eclipse.papyrus.emf.facet.efacet.core.exception.DerivedTypedElementException;
import org.eclipse.papyrus.emf.facet.query.java.core.IJavaQuery2;
@@ -41,7 +42,7 @@ public class GetContainedDiagrams extends AbstractEditorContainerQuery implement
while(roots.hasNext()) {
EObject root = roots.next();
if(root instanceof Diagram) {
- if(EcoreUtil.equals(((Diagram)root).getElement(), source)) {
+ if (EcoreUtil.equals(DiagramUtils.getOwner((Diagram) root), source)) {
result.add((Diagram)root);
}
}
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.modelexplorer/src/org/eclipse/papyrus/infra/gmfdiag/modelexplorer/queries/GetDiagramIcon.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.modelexplorer/src/org/eclipse/papyrus/infra/gmfdiag/modelexplorer/queries/GetDiagramIcon.java
index 23b836b4cf5..3572004ef38 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.modelexplorer/src/org/eclipse/papyrus/infra/gmfdiag/modelexplorer/queries/GetDiagramIcon.java
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.modelexplorer/src/org/eclipse/papyrus/infra/gmfdiag/modelexplorer/queries/GetDiagramIcon.java
@@ -14,6 +14,8 @@
package org.eclipse.papyrus.infra.gmfdiag.modelexplorer.queries;
import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.papyrus.infra.gmfdiag.common.utils.DiagramUtils;
+import org.eclipse.papyrus.infra.viewpoints.policy.ViewPrototype;
import org.eclipse.papyrus.emf.facet.custom.metamodel.custompt.IImage;
import org.eclipse.papyrus.emf.facet.custom.ui.ImageUtils;
import org.eclipse.papyrus.emf.facet.efacet.core.IFacetManager;
@@ -27,6 +29,7 @@ public class GetDiagramIcon extends AbstractGetEditorIconQuery implements IJavaQ
public IImage evaluate(Diagram source, IParameterValueList2 parameterValues, IFacetManager facetManager) throws DerivedTypedElementException {
- return ImageUtils.wrap(org.eclipse.emf.common.util.URI.createPlatformPluginURI(getEditorRegistry(source).getEditorURLIcon(source), true).toString()); //$NON-NLS-1$
+ ViewPrototype prototype = DiagramUtils.getPrototype(source);
+ return ImageUtils.wrap(prototype.getIconURI());
}
}
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.modelexplorer/src/org/eclipse/papyrus/infra/gmfdiag/modelexplorer/queries/IsDiagramContainer.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.modelexplorer/src/org/eclipse/papyrus/infra/gmfdiag/modelexplorer/queries/IsDiagramContainer.java
index 23e6be9f436..348eff81323 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.modelexplorer/src/org/eclipse/papyrus/infra/gmfdiag/modelexplorer/queries/IsDiagramContainer.java
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.modelexplorer/src/org/eclipse/papyrus/infra/gmfdiag/modelexplorer/queries/IsDiagramContainer.java
@@ -18,6 +18,7 @@ import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.papyrus.infra.gmfdiag.common.utils.DiagramUtils;
import org.eclipse.papyrus.emf.facet.efacet.core.IFacetManager;
import org.eclipse.papyrus.emf.facet.efacet.core.exception.DerivedTypedElementException;
import org.eclipse.papyrus.emf.facet.efacet.metamodel.v0_2_0.efacet.FacetReference;
@@ -46,7 +47,7 @@ public class IsDiagramContainer extends AbstractEditorContainerQuery implements
while(roots.hasNext()) {
EObject root = roots.next();
if(root instanceof Diagram) {
- if(EcoreUtil.equals(((Diagram)root).getElement(), source)) {
+ if (EcoreUtil.equals(DiagramUtils.getOwner((Diagram) root), source)) {
return true;
}
}
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.navigation/src/org/eclipse/papyrus/infra/gmfdiag/navigation/CreateDiagramWithNavigationHandler.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.navigation/src/org/eclipse/papyrus/infra/gmfdiag/navigation/CreateDiagramWithNavigationHandler.java
deleted file mode 100644
index 3bc66d3ed60..00000000000
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.navigation/src/org/eclipse/papyrus/infra/gmfdiag/navigation/CreateDiagramWithNavigationHandler.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/*****************************************************************************
- * Copyright (c) 2010 Atos Origin.
- *
- *
- * 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:
- * Mathieu Velten (Atos Origin) mathieu.velten@atosorigin.com - Initial API and implementation
- *
- *****************************************************************************/
-package org.eclipse.papyrus.infra.gmfdiag.navigation;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.expressions.IEvaluationContext;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.gmf.runtime.common.core.command.CompositeCommand;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.papyrus.commands.ICreationCommand;
-import org.eclipse.papyrus.commands.wrappers.GMFtoEMFCommandWrapper;
-import org.eclipse.papyrus.infra.core.extension.commands.ICreationCondition;
-import org.eclipse.papyrus.infra.core.resource.ModelSet;
-import org.eclipse.papyrus.infra.core.services.ServiceException;
-import org.eclipse.papyrus.infra.core.services.ServicesRegistry;
-import org.eclipse.papyrus.infra.core.utils.ServiceUtils;
-import org.eclipse.papyrus.infra.emf.utils.BusinessModelResolver;
-import org.eclipse.papyrus.infra.emf.utils.EMFHelper;
-import org.eclipse.papyrus.infra.emf.utils.ServiceUtilsForHandlers;
-import org.eclipse.papyrus.infra.widgets.toolbox.dialog.InformationDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-/**
- * This command handler will try to create a diagram on the currently selected
- * element, using navigation if necessary. The action is always available and
- * the check is done in the run to avoid heavy navigation computation on each
- * selection change.
- *
- * @author mvelten
- *
- */
-public abstract class CreateDiagramWithNavigationHandler extends AbstractHandler {
-
- private ICreationCondition creationCondition;
-
- private ICreationCommand creationCommand;
-
- public CreateDiagramWithNavigationHandler(ICreationCommand creationCommand, ICreationCondition creationCondition) {
- super();
- this.creationCommand = creationCommand;
- this.creationCondition = creationCondition;
- }
-
- public Object execute(ExecutionEvent event) throws ExecutionException {
- NavigableElement navElement = getNavigableElementWhereToCreateDiagram(event);
- ServicesRegistry registry;
- try {
- registry = ServiceUtilsForHandlers.getInstance().getServiceRegistry(event);
- } catch (ServiceException ex) {
- Activator.log.error(ex);
- return null;
- }
-
- if(navElement == null) {
- InformationDialog dialog = new InformationDialog(Display.getCurrent().getActiveShell(), "Impossible diagram creation", "It is not possible to create this diagram on the selected element.", null, null, SWT.OK, MessageDialog.WARNING, new String[]{ IDialogConstants.OK_LABEL });
- dialog.open();
- } else {
- createDiagram(navElement, registry);
- }
- return null;
- }
-
- private NavigableElement getNavigableElementWhereToCreateDiagram(ExecutionEvent event) {
- ISelection selection = HandlerUtil.getCurrentSelection(event);
- if(selection.isEmpty()) {
- return null;
- }
-
- if(selection instanceof IStructuredSelection) {
- EObject selectedElement = EMFHelper.getEObject(((IStructuredSelection)selection).getFirstElement());
-
- if(selectedElement != null) {
- // First check if the current element can host the requested diagram
- if(creationCondition.create(selectedElement)) {
- return new ExistingNavigableElement(selectedElement, null);
- } else {
- List<NavigableElement> navElements = NavigationHelper.getInstance().getAllNavigableElements(selectedElement);
- // this will sort elements by navigation depth
- Collections.sort(navElements);
-
- for(NavigableElement navElement : navElements) {
- // ignore existing elements because we want a hierarchy to
- // be created if it is not on the current element
- if(navElement instanceof CreatedNavigableElement && creationCondition.create(navElement.getElement())) {
- return navElement;
- }
- }
- }
- }
- }
-
- return null;
- }
-
- private void createDiagram(NavigableElement navElement, ServicesRegistry registry) {
- ModelSet modelSet;
- try {
- modelSet = ServiceUtils.getInstance().getModelSet(registry);
- } catch (ServiceException ex) {
- Activator.log.error(ex);
- return;
- }
-
- if(navElement != null && modelSet != null) {
- try {
- CompositeCommand command = NavigationHelper.getLinkCreateAndOpenNavigableDiagramCommand(navElement, creationCommand, null, modelSet);
- modelSet.getTransactionalEditingDomain().getCommandStack().execute(new GMFtoEMFCommandWrapper(command));
- } catch (Exception e) {
- }
- }
- }
-
- /**
- * Resolve semantic element
- *
- * @param object
- * the object to resolve
- * @return <code>null</code> or the semantic element associated to the
- * specified object
- */
- protected EObject resolveSemanticObject(Object object) {
- if(object instanceof EObject) {
- return (EObject)object;
- }
- Object businessObject = BusinessModelResolver.getInstance().getBusinessModel(object);
- if(businessObject instanceof EObject) {
- return (EObject)businessObject;
- }
- return null;
- }
-
- @Override
- public void setEnabled(Object evaluationContext) {
- if(evaluationContext instanceof IEvaluationContext) {
- Object selectionVariable = ((IEvaluationContext)evaluationContext).getDefaultVariable();
-
- if(selectionVariable instanceof Collection<?>) {
- List<?> selection = (selectionVariable instanceof List<?>) ? (List<?>)selectionVariable : new java.util.ArrayList<Object>((Collection<?>)selectionVariable);
- if(selection.size() != 1) {
- setBaseEnabled(false);
- return;
- }
-
- EObject target = EMFHelper.getEObject(selection.get(0));
- setBaseEnabled(creationCondition.create(target));
- }
- }
- super.setEnabled(evaluationContext);
- }
-
-}
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/META-INF/MANIFEST.MF b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/META-INF/MANIFEST.MF
index d922ee2a532..cbdf8697d24 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/META-INF/MANIFEST.MF
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/META-INF/MANIFEST.MF
@@ -19,7 +19,8 @@ Require-Bundle: org.eclipse.ui,
org.eclipse.papyrus.infra.core;bundle-version="1.0.0",
org.eclipse.papyrus.uml.tools;bundle-version="1.0.0",
org.eclipse.papyrus.infra.services.labelprovider;bundle-version="1.0.0",
- org.eclipse.papyrus.infra.gmfdiag.preferences;bundle-version="1.0.0"
+ org.eclipse.papyrus.infra.gmfdiag.preferences;bundle-version="1.0.0",
+ org.eclipse.papyrus.infra.viewpoints.policy;bundle-version="1.0.0"
Export-Package: org.eclipse.papyrus.infra.gmfdiag.properties.extension,
org.eclipse.papyrus.infra.gmfdiag.properties.modelelement
Bundle-Vendor: %Bundle-Vendor
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/model/notation/notation.ctx b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/model/notation/notation.ctx
index 530b8df9e75..484a6246643 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/model/notation/notation.ctx
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/model/notation/notation.ctx
@@ -37,9 +37,6 @@
<sections name="Single RelativeBendpoints" sectionFile="ui/SingleRelativeBendpoints.xwt">
<widget href="ui/SingleRelativeBendpoints.xwt#/"/>
</sections>
- <sections name="Single Diagram" sectionFile="ui/SingleDiagram.xwt">
- <widget href="ui/SingleDiagram.xwt#/"/>
- </sections>
<sections name="Single Image" sectionFile="ui/SingleImage.xwt">
<widget href="ui/SingleImage.xwt#/"/>
</sections>
@@ -184,18 +181,18 @@
<widget href="ui/SingleRulersAndGrid.xwt#/"/>
</sections>
</tabs>
- <views name="Single Diagram" sections="//@tabs.0/@sections.12" automaticContext="true" datacontexts="//@dataContexts.0/@elements.12">
+ <tabs label="General" id="general" category="org.eclipse.papyrus" priority="75">
+ <sections name="Single Diagram" sectionFile="ui/SingleDiagram.xwt">
+ <widget href="ui/SingleDiagram.xwt#/"/>
+ </sections>
+ </tabs>
+ <views name="Single Diagram" sections="//@tabs.2/@sections.0" automaticContext="true" datacontexts="//@dataContexts.0/@elements.12">
<constraints xsi:type="constraints:SimpleConstraint" name="isSingleDiagram">
<constraintType href="ppe:/environment/org.eclipse.papyrus.infra.gmfdiag.properties/model/Environment.xmi#//@constraintTypes.3"/>
<properties xsi:type="constraints:ValueProperty" name="nsUri" value="http://www.eclipse.org/gmf/runtime/1.0.2/notation"/>
<properties xsi:type="constraints:ValueProperty" name="className" value="Diagram"/>
</constraints>
</views>
- <views name="Single Decorable Element" sections="//@tabs.0/@sections.58" automaticContext="true" datacontexts="//@dataContexts.1/@elements.0">
- <constraints xsi:type="constraints:SimpleConstraint" name="isDecorableElementConstraint">
- <constraintType href="ppe:/environment/org.eclipse.papyrus.infra.gmfdiag.properties/model/Environment.xmi#//@constraintTypes.4"/>
- </constraints>
- </views>
<views name="Single Edge" sections="//@tabs.0/@sections.0" automaticContext="true" datacontexts="//@dataContexts.0/@elements.0">
<constraints xsi:type="constraints:SimpleConstraint" name="isSingleEdge">
<constraintType href="ppe:/environment/org.eclipse.papyrus.infra.gmfdiag.properties/model/Environment.xmi#//@constraintTypes.3"/>
@@ -280,112 +277,112 @@
<properties xsi:type="constraints:ValueProperty" name="className" value="RelativeBendpoints"/>
</constraints>
</views>
- <views name="Single Image" sections="//@tabs.0/@sections.13" automaticContext="true" datacontexts="//@dataContexts.0/@elements.13">
+ <views name="Single Image" sections="//@tabs.0/@sections.12" automaticContext="true" datacontexts="//@dataContexts.0/@elements.13">
<constraints xsi:type="constraints:SimpleConstraint" name="isSingleImage">
<constraintType href="ppe:/environment/org.eclipse.papyrus.infra.gmfdiag.properties/model/Environment.xmi#//@constraintTypes.3"/>
<properties xsi:type="constraints:ValueProperty" name="nsUri" value="http://www.eclipse.org/gmf/runtime/1.0.2/notation"/>
<properties xsi:type="constraints:ValueProperty" name="className" value="Image"/>
</constraints>
</views>
- <views name="Single Guide" sections="//@tabs.0/@sections.14" automaticContext="true" datacontexts="//@dataContexts.0/@elements.14">
+ <views name="Single Guide" sections="//@tabs.0/@sections.13" automaticContext="true" datacontexts="//@dataContexts.0/@elements.14">
<constraints xsi:type="constraints:SimpleConstraint" name="isSingleGuide">
<constraintType href="ppe:/environment/org.eclipse.papyrus.infra.gmfdiag.properties/model/Environment.xmi#//@constraintTypes.3"/>
<properties xsi:type="constraints:ValueProperty" name="nsUri" value="http://www.eclipse.org/gmf/runtime/1.0.2/notation"/>
<properties xsi:type="constraints:ValueProperty" name="className" value="Guide"/>
</constraints>
</views>
- <views name="Single NodeEntry" sections="//@tabs.0/@sections.15" automaticContext="true" datacontexts="//@dataContexts.0/@elements.15">
+ <views name="Single NodeEntry" sections="//@tabs.0/@sections.14" automaticContext="true" datacontexts="//@dataContexts.0/@elements.15">
<constraints xsi:type="constraints:SimpleConstraint" name="isSingleNodeEntry">
<constraintType href="ppe:/environment/org.eclipse.papyrus.infra.gmfdiag.properties/model/Environment.xmi#//@constraintTypes.3"/>
<properties xsi:type="constraints:ValueProperty" name="className" value="NodeEntry"/>
<properties xsi:type="constraints:ValueProperty" name="nsUri" value="http://www.eclipse.org/gmf/runtime/1.0.2/notation"/>
</constraints>
</views>
- <views name="Single StringToPropertyValueMapEntry" sections="//@tabs.0/@sections.16" automaticContext="true" datacontexts="//@dataContexts.0/@elements.16">
+ <views name="Single StringToPropertyValueMapEntry" sections="//@tabs.0/@sections.15" automaticContext="true" datacontexts="//@dataContexts.0/@elements.16">
<constraints xsi:type="constraints:SimpleConstraint" name="isSingleStringToPropertyValueMapEntry">
<constraintType href="ppe:/environment/org.eclipse.papyrus.infra.gmfdiag.properties/model/Environment.xmi#//@constraintTypes.3"/>
<properties xsi:type="constraints:ValueProperty" name="className" value="StringToPropertyValueMapEntry"/>
<properties xsi:type="constraints:ValueProperty" name="nsUri" value="http://www.eclipse.org/gmf/runtime/1.0.2/notation"/>
</constraints>
</views>
- <views name="Single PropertyValue" sections="//@tabs.0/@sections.17" automaticContext="true" datacontexts="//@dataContexts.0/@elements.17">
+ <views name="Single PropertyValue" sections="//@tabs.0/@sections.16" automaticContext="true" datacontexts="//@dataContexts.0/@elements.17">
<constraints xsi:type="constraints:SimpleConstraint" name="isSinglePropertyValue">
<constraintType href="ppe:/environment/org.eclipse.papyrus.infra.gmfdiag.properties/model/Environment.xmi#//@constraintTypes.3"/>
<properties xsi:type="constraints:ValueProperty" name="className" value="PropertyValue"/>
<properties xsi:type="constraints:ValueProperty" name="nsUri" value="http://www.eclipse.org/gmf/runtime/1.0.2/notation"/>
</constraints>
</views>
- <views name="Single StringObjectConverter" sections="//@tabs.0/@sections.18" automaticContext="true" datacontexts="//@dataContexts.0/@elements.18">
+ <views name="Single StringObjectConverter" sections="//@tabs.0/@sections.17" automaticContext="true" datacontexts="//@dataContexts.0/@elements.18">
<constraints xsi:type="constraints:SimpleConstraint" name="isSingleStringObjectConverter">
<constraintType href="ppe:/environment/org.eclipse.papyrus.infra.gmfdiag.properties/model/Environment.xmi#//@constraintTypes.3"/>
<properties xsi:type="constraints:ValueProperty" name="nsUri" value="http://www.eclipse.org/gmf/runtime/1.0.2/notation"/>
<properties xsi:type="constraints:ValueProperty" name="className" value="StringObjectConverter"/>
</constraints>
</views>
- <views name="Single Shape" sections="//@tabs.0/@sections.19" automaticContext="true" datacontexts="//@dataContexts.0/@elements.19">
+ <views name="Single Shape" sections="//@tabs.0/@sections.18" automaticContext="true" datacontexts="//@dataContexts.0/@elements.19">
<constraints xsi:type="constraints:SimpleConstraint" name="isSingleShape">
<constraintType href="ppe:/environment/org.eclipse.papyrus.infra.gmfdiag.properties/model/Environment.xmi#//@constraintTypes.3"/>
<properties xsi:type="constraints:ValueProperty" name="nsUri" value="http://www.eclipse.org/gmf/runtime/1.0.2/notation"/>
<properties xsi:type="constraints:ValueProperty" name="className" value="Shape"/>
</constraints>
</views>
- <views name="Single Compartment" sections="//@tabs.0/@sections.20" automaticContext="true" datacontexts="//@dataContexts.0/@elements.20">
+ <views name="Single Compartment" sections="//@tabs.0/@sections.19" automaticContext="true" datacontexts="//@dataContexts.0/@elements.20">
<constraints xsi:type="constraints:SimpleConstraint" name="isSingleCompartment">
<constraintType href="ppe:/environment/org.eclipse.papyrus.infra.gmfdiag.properties/model/Environment.xmi#//@constraintTypes.3"/>
<properties xsi:type="constraints:ValueProperty" name="className" value="Compartment"/>
<properties xsi:type="constraints:ValueProperty" name="nsUri" value="http://www.eclipse.org/gmf/runtime/1.0.2/notation"/>
</constraints>
</views>
- <views name="Single ListCompartment" sections="//@tabs.0/@sections.21" automaticContext="true" datacontexts="//@dataContexts.0/@elements.21">
+ <views name="Single ListCompartment" sections="//@tabs.0/@sections.20" automaticContext="true" datacontexts="//@dataContexts.0/@elements.21">
<constraints xsi:type="constraints:SimpleConstraint" name="isSingleListCompartment">
<constraintType href="ppe:/environment/org.eclipse.papyrus.infra.gmfdiag.properties/model/Environment.xmi#//@constraintTypes.3"/>
<properties xsi:type="constraints:ValueProperty" name="nsUri" value="http://www.eclipse.org/gmf/runtime/1.0.2/notation"/>
<properties xsi:type="constraints:ValueProperty" name="className" value="ListCompartment"/>
</constraints>
</views>
- <views name="Single Connector" sections="//@tabs.0/@sections.22" automaticContext="true" datacontexts="//@dataContexts.0/@elements.22">
+ <views name="Single Connector" sections="//@tabs.0/@sections.21" automaticContext="true" datacontexts="//@dataContexts.0/@elements.22">
<constraints xsi:type="constraints:SimpleConstraint" name="isSingleConnector">
<constraintType href="ppe:/environment/org.eclipse.papyrus.infra.gmfdiag.properties/model/Environment.xmi#//@constraintTypes.3"/>
<properties xsi:type="constraints:ValueProperty" name="className" value="Connector"/>
<properties xsi:type="constraints:ValueProperty" name="nsUri" value="http://www.eclipse.org/gmf/runtime/1.0.2/notation"/>
</constraints>
</views>
- <views name="Single StandardDiagram" sections="//@tabs.0/@sections.23" automaticContext="true" datacontexts="//@dataContexts.0/@elements.23">
+ <views name="Single StandardDiagram" sections="//@tabs.0/@sections.22" automaticContext="true" datacontexts="//@dataContexts.0/@elements.23">
<constraints xsi:type="constraints:SimpleConstraint" name="isSingleStandardDiagram">
<constraintType href="ppe:/environment/org.eclipse.papyrus.infra.gmfdiag.properties/model/Environment.xmi#//@constraintTypes.3"/>
<properties xsi:type="constraints:ValueProperty" name="className" value="StandardDiagram"/>
<properties xsi:type="constraints:ValueProperty" name="nsUri" value="http://www.eclipse.org/gmf/runtime/1.0.2/notation"/>
</constraints>
</views>
- <views name="Single DecorationNode" sections="//@tabs.0/@sections.24" automaticContext="true" datacontexts="//@dataContexts.0/@elements.24">
+ <views name="Single DecorationNode" sections="//@tabs.0/@sections.23" automaticContext="true" datacontexts="//@dataContexts.0/@elements.24">
<constraints xsi:type="constraints:SimpleConstraint" name="isSingleDecorationNode">
<constraintType href="ppe:/environment/org.eclipse.papyrus.infra.gmfdiag.properties/model/Environment.xmi#//@constraintTypes.3"/>
<properties xsi:type="constraints:ValueProperty" name="className" value="DecorationNode"/>
<properties xsi:type="constraints:ValueProperty" name="nsUri" value="http://www.eclipse.org/gmf/runtime/1.0.2/notation"/>
</constraints>
</views>
- <views name="Single BasicDecorationNode" sections="//@tabs.0/@sections.25" automaticContext="true" datacontexts="//@dataContexts.0/@elements.25">
+ <views name="Single BasicDecorationNode" sections="//@tabs.0/@sections.24" automaticContext="true" datacontexts="//@dataContexts.0/@elements.25">
<constraints xsi:type="constraints:SimpleConstraint" name="isSingleBasicDecorationNode">
<constraintType href="ppe:/environment/org.eclipse.papyrus.infra.gmfdiag.properties/model/Environment.xmi#//@constraintTypes.3"/>
<properties xsi:type="constraints:ValueProperty" name="nsUri" value="http://www.eclipse.org/gmf/runtime/1.0.2/notation"/>
<properties xsi:type="constraints:ValueProperty" name="className" value="BasicDecorationNode"/>
</constraints>
</views>
- <views name="Single BasicCompartment" sections="//@tabs.0/@sections.26" automaticContext="true" datacontexts="//@dataContexts.0/@elements.26">
+ <views name="Single BasicCompartment" sections="//@tabs.0/@sections.25" automaticContext="true" datacontexts="//@dataContexts.0/@elements.26">
<constraints xsi:type="constraints:SimpleConstraint" name="isSingleBasicCompartment">
<constraintType href="ppe:/environment/org.eclipse.papyrus.infra.gmfdiag.properties/model/Environment.xmi#//@constraintTypes.3"/>
<properties xsi:type="constraints:ValueProperty" name="className" value="BasicCompartment"/>
<properties xsi:type="constraints:ValueProperty" name="nsUri" value="http://www.eclipse.org/gmf/runtime/1.0.2/notation"/>
</constraints>
</views>
- <views name="Single BasicSemanticCompartment" sections="//@tabs.0/@sections.27" automaticContext="true" datacontexts="//@dataContexts.0/@elements.27">
+ <views name="Single BasicSemanticCompartment" sections="//@tabs.0/@sections.26" automaticContext="true" datacontexts="//@dataContexts.0/@elements.27">
<constraints xsi:type="constraints:SimpleConstraint" name="isSingleBasicSemanticCompartment">
<constraintType href="ppe:/environment/org.eclipse.papyrus.infra.gmfdiag.properties/model/Environment.xmi#//@constraintTypes.3"/>
<properties xsi:type="constraints:ValueProperty" name="className" value="BasicSemanticCompartment"/>
<properties xsi:type="constraints:ValueProperty" name="nsUri" value="http://www.eclipse.org/gmf/runtime/1.0.2/notation"/>
</constraints>
</views>
- <views name="Single SemanticListCompartment" sections="//@tabs.0/@sections.28" automaticContext="true" datacontexts="//@dataContexts.0/@elements.28">
+ <views name="Single SemanticListCompartment" sections="//@tabs.0/@sections.27" automaticContext="true" datacontexts="//@dataContexts.0/@elements.28">
<constraints xsi:type="constraints:SimpleConstraint" name="isSingleSemanticListCompartment">
<constraintType href="ppe:/environment/org.eclipse.papyrus.infra.gmfdiag.properties/model/Environment.xmi#//@constraintTypes.3"/>
<properties xsi:type="constraints:ValueProperty" name="className" value="SemanticListCompartment"/>
@@ -398,209 +395,214 @@
<properties xsi:type="constraints:ValueProperty" name="className" value="org.eclipse.papyrus.infra.gmfdiag.properties.constraint.IsSingleDiagramEditorConstraint"/>
</constraints>
</views>
- <views elementMultiplicity="-1" name="Multiple Edge" sections="//@tabs.0/@sections.29" automaticContext="true" datacontexts="//@dataContexts.0/@elements.0">
+ <views elementMultiplicity="-1" name="Multiple Edge" sections="//@tabs.0/@sections.28" automaticContext="true" datacontexts="//@dataContexts.0/@elements.0">
<constraints xsi:type="constraints:SimpleConstraint" name="isMultipleEdge">
<constraintType href="ppe:/environment/org.eclipse.papyrus.infra.gmfdiag.properties/model/Environment.xmi#//@constraintTypes.3"/>
<properties xsi:type="constraints:ValueProperty" name="nsUri" value="http://www.eclipse.org/gmf/runtime/1.0.2/notation"/>
<properties xsi:type="constraints:ValueProperty" name="className" value="Edge"/>
</constraints>
</views>
- <views elementMultiplicity="-1" name="Multiple Node" sections="//@tabs.0/@sections.30" automaticContext="true" datacontexts="//@dataContexts.0/@elements.1">
+ <views elementMultiplicity="-1" name="Multiple Node" sections="//@tabs.0/@sections.29" automaticContext="true" datacontexts="//@dataContexts.0/@elements.1">
<constraints xsi:type="constraints:SimpleConstraint" name="isMultipleNode">
<constraintType href="ppe:/environment/org.eclipse.papyrus.infra.gmfdiag.properties/model/Environment.xmi#//@constraintTypes.3"/>
<properties xsi:type="constraints:ValueProperty" name="nsUri" value="http://www.eclipse.org/gmf/runtime/1.0.2/notation"/>
<properties xsi:type="constraints:ValueProperty" name="className" value="Node"/>
</constraints>
</views>
- <views elementMultiplicity="-1" name="Multiple LayoutConstraint" sections="//@tabs.0/@sections.31" automaticContext="true" datacontexts="//@dataContexts.0/@elements.2">
+ <views elementMultiplicity="-1" name="Multiple LayoutConstraint" sections="//@tabs.0/@sections.30" automaticContext="true" datacontexts="//@dataContexts.0/@elements.2">
<constraints xsi:type="constraints:SimpleConstraint" name="isMultipleLayoutConstraint">
<constraintType href="ppe:/environment/org.eclipse.papyrus.infra.gmfdiag.properties/model/Environment.xmi#//@constraintTypes.3"/>
<properties xsi:type="constraints:ValueProperty" name="className" value="LayoutConstraint"/>
<properties xsi:type="constraints:ValueProperty" name="nsUri" value="http://www.eclipse.org/gmf/runtime/1.0.2/notation"/>
</constraints>
</views>
- <views elementMultiplicity="-1" name="Multiple Size" sections="//@tabs.0/@sections.32" automaticContext="true" datacontexts="//@dataContexts.0/@elements.3">
+ <views elementMultiplicity="-1" name="Multiple Size" sections="//@tabs.0/@sections.31" automaticContext="true" datacontexts="//@dataContexts.0/@elements.3">
<constraints xsi:type="constraints:SimpleConstraint" name="isMultipleSize">
<constraintType href="ppe:/environment/org.eclipse.papyrus.infra.gmfdiag.properties/model/Environment.xmi#//@constraintTypes.3"/>
<properties xsi:type="constraints:ValueProperty" name="className" value="Size"/>
<properties xsi:type="constraints:ValueProperty" name="nsUri" value="http://www.eclipse.org/gmf/runtime/1.0.2/notation"/>
</constraints>
</views>
- <views elementMultiplicity="-1" name="Multiple Location" sections="//@tabs.0/@sections.33" automaticContext="true" datacontexts="//@dataContexts.0/@elements.4">
+ <views elementMultiplicity="-1" name="Multiple Location" sections="//@tabs.0/@sections.32" automaticContext="true" datacontexts="//@dataContexts.0/@elements.4">
<constraints xsi:type="constraints:SimpleConstraint" name="isMultipleLocation">
<constraintType href="ppe:/environment/org.eclipse.papyrus.infra.gmfdiag.properties/model/Environment.xmi#//@constraintTypes.3"/>
<properties xsi:type="constraints:ValueProperty" name="className" value="Location"/>
<properties xsi:type="constraints:ValueProperty" name="nsUri" value="http://www.eclipse.org/gmf/runtime/1.0.2/notation"/>
</constraints>
</views>
- <views elementMultiplicity="-1" name="Multiple Bounds" sections="//@tabs.0/@sections.34" automaticContext="true" datacontexts="//@dataContexts.0/@elements.5">
+ <views elementMultiplicity="-1" name="Multiple Bounds" sections="//@tabs.0/@sections.33" automaticContext="true" datacontexts="//@dataContexts.0/@elements.5">
<constraints xsi:type="constraints:SimpleConstraint" name="isMultipleBounds">
<constraintType href="ppe:/environment/org.eclipse.papyrus.infra.gmfdiag.properties/model/Environment.xmi#//@constraintTypes.3"/>
<properties xsi:type="constraints:ValueProperty" name="nsUri" value="http://www.eclipse.org/gmf/runtime/1.0.2/notation"/>
<properties xsi:type="constraints:ValueProperty" name="className" value="Bounds"/>
</constraints>
</views>
- <views elementMultiplicity="-1" name="Multiple Ratio" sections="//@tabs.0/@sections.35" automaticContext="true" datacontexts="//@dataContexts.0/@elements.6">
+ <views elementMultiplicity="-1" name="Multiple Ratio" sections="//@tabs.0/@sections.34" automaticContext="true" datacontexts="//@dataContexts.0/@elements.6">
<constraints xsi:type="constraints:SimpleConstraint" name="isMultipleRatio">
<constraintType href="ppe:/environment/org.eclipse.papyrus.infra.gmfdiag.properties/model/Environment.xmi#//@constraintTypes.3"/>
<properties xsi:type="constraints:ValueProperty" name="nsUri" value="http://www.eclipse.org/gmf/runtime/1.0.2/notation"/>
<properties xsi:type="constraints:ValueProperty" name="className" value="Ratio"/>
</constraints>
</views>
- <views elementMultiplicity="-1" name="Multiple Anchor" sections="//@tabs.0/@sections.36" automaticContext="true" datacontexts="//@dataContexts.0/@elements.7">
+ <views elementMultiplicity="-1" name="Multiple Anchor" sections="//@tabs.0/@sections.35" automaticContext="true" datacontexts="//@dataContexts.0/@elements.7">
<constraints xsi:type="constraints:SimpleConstraint" name="isMultipleAnchor">
<constraintType href="ppe:/environment/org.eclipse.papyrus.infra.gmfdiag.properties/model/Environment.xmi#//@constraintTypes.3"/>
<properties xsi:type="constraints:ValueProperty" name="className" value="Anchor"/>
<properties xsi:type="constraints:ValueProperty" name="nsUri" value="http://www.eclipse.org/gmf/runtime/1.0.2/notation"/>
</constraints>
</views>
- <views elementMultiplicity="-1" name="Multiple Bendpoints" sections="//@tabs.0/@sections.37" automaticContext="true" datacontexts="//@dataContexts.0/@elements.8">
+ <views elementMultiplicity="-1" name="Multiple Bendpoints" sections="//@tabs.0/@sections.36" automaticContext="true" datacontexts="//@dataContexts.0/@elements.8">
<constraints xsi:type="constraints:SimpleConstraint" name="isMultipleBendpoints">
<constraintType href="ppe:/environment/org.eclipse.papyrus.infra.gmfdiag.properties/model/Environment.xmi#//@constraintTypes.3"/>
<properties xsi:type="constraints:ValueProperty" name="nsUri" value="http://www.eclipse.org/gmf/runtime/1.0.2/notation"/>
<properties xsi:type="constraints:ValueProperty" name="className" value="Bendpoints"/>
</constraints>
</views>
- <views elementMultiplicity="-1" name="Multiple IdentityAnchor" sections="//@tabs.0/@sections.38" automaticContext="true" datacontexts="//@dataContexts.0/@elements.9">
+ <views elementMultiplicity="-1" name="Multiple IdentityAnchor" sections="//@tabs.0/@sections.37" automaticContext="true" datacontexts="//@dataContexts.0/@elements.9">
<constraints xsi:type="constraints:SimpleConstraint" name="isMultipleIdentityAnchor">
<constraintType href="ppe:/environment/org.eclipse.papyrus.infra.gmfdiag.properties/model/Environment.xmi#//@constraintTypes.3"/>
<properties xsi:type="constraints:ValueProperty" name="nsUri" value="http://www.eclipse.org/gmf/runtime/1.0.2/notation"/>
<properties xsi:type="constraints:ValueProperty" name="className" value="IdentityAnchor"/>
</constraints>
</views>
- <views elementMultiplicity="-1" name="Multiple View" sections="//@tabs.0/@sections.39" automaticContext="true" datacontexts="//@dataContexts.0/@elements.10">
+ <views elementMultiplicity="-1" name="Multiple View" sections="//@tabs.0/@sections.38" automaticContext="true" datacontexts="//@dataContexts.0/@elements.10">
<constraints xsi:type="constraints:SimpleConstraint" name="isMultipleView">
<constraintType href="ppe:/environment/org.eclipse.papyrus.infra.gmfdiag.properties/model/Environment.xmi#//@constraintTypes.3"/>
<properties xsi:type="constraints:ValueProperty" name="className" value="View"/>
<properties xsi:type="constraints:ValueProperty" name="nsUri" value="http://www.eclipse.org/gmf/runtime/1.0.2/notation"/>
</constraints>
</views>
- <views elementMultiplicity="-1" name="Multiple RelativeBendpoints" sections="//@tabs.0/@sections.40" automaticContext="true" datacontexts="//@dataContexts.0/@elements.11">
+ <views elementMultiplicity="-1" name="Multiple RelativeBendpoints" sections="//@tabs.0/@sections.39" automaticContext="true" datacontexts="//@dataContexts.0/@elements.11">
<constraints xsi:type="constraints:SimpleConstraint" name="isMultipleRelativeBendpoints">
<constraintType href="ppe:/environment/org.eclipse.papyrus.infra.gmfdiag.properties/model/Environment.xmi#//@constraintTypes.3"/>
<properties xsi:type="constraints:ValueProperty" name="nsUri" value="http://www.eclipse.org/gmf/runtime/1.0.2/notation"/>
<properties xsi:type="constraints:ValueProperty" name="className" value="RelativeBendpoints"/>
</constraints>
</views>
- <views elementMultiplicity="-1" name="Multiple Diagram" sections="//@tabs.0/@sections.41" automaticContext="true" datacontexts="//@dataContexts.0/@elements.12">
+ <views elementMultiplicity="-1" name="Multiple Diagram" sections="//@tabs.0/@sections.40" automaticContext="true" datacontexts="//@dataContexts.0/@elements.12">
<constraints xsi:type="constraints:SimpleConstraint" name="isMultipleDiagram">
<constraintType href="ppe:/environment/org.eclipse.papyrus.infra.gmfdiag.properties/model/Environment.xmi#//@constraintTypes.3"/>
<properties xsi:type="constraints:ValueProperty" name="nsUri" value="http://www.eclipse.org/gmf/runtime/1.0.2/notation"/>
<properties xsi:type="constraints:ValueProperty" name="className" value="Diagram"/>
</constraints>
</views>
- <views elementMultiplicity="-1" name="Multiple Image" sections="//@tabs.0/@sections.42" automaticContext="true" datacontexts="//@dataContexts.0/@elements.13">
+ <views elementMultiplicity="-1" name="Multiple Image" sections="//@tabs.0/@sections.41" automaticContext="true" datacontexts="//@dataContexts.0/@elements.13">
<constraints xsi:type="constraints:SimpleConstraint" name="isMultipleImage">
<constraintType href="ppe:/environment/org.eclipse.papyrus.infra.gmfdiag.properties/model/Environment.xmi#//@constraintTypes.3"/>
<properties xsi:type="constraints:ValueProperty" name="className" value="Image"/>
<properties xsi:type="constraints:ValueProperty" name="nsUri" value="http://www.eclipse.org/gmf/runtime/1.0.2/notation"/>
</constraints>
</views>
- <views elementMultiplicity="-1" name="Multiple Guide" sections="//@tabs.0/@sections.43" automaticContext="true" datacontexts="//@dataContexts.0/@elements.14">
+ <views elementMultiplicity="-1" name="Multiple Guide" sections="//@tabs.0/@sections.42" automaticContext="true" datacontexts="//@dataContexts.0/@elements.14">
<constraints xsi:type="constraints:SimpleConstraint" name="isMultipleGuide">
<constraintType href="ppe:/environment/org.eclipse.papyrus.infra.gmfdiag.properties/model/Environment.xmi#//@constraintTypes.3"/>
<properties xsi:type="constraints:ValueProperty" name="className" value="Guide"/>
<properties xsi:type="constraints:ValueProperty" name="nsUri" value="http://www.eclipse.org/gmf/runtime/1.0.2/notation"/>
</constraints>
</views>
- <views elementMultiplicity="-1" name="Multiple NodeEntry" sections="//@tabs.0/@sections.44" automaticContext="true" datacontexts="//@dataContexts.0/@elements.15">
+ <views elementMultiplicity="-1" name="Multiple NodeEntry" sections="//@tabs.0/@sections.43" automaticContext="true" datacontexts="//@dataContexts.0/@elements.15">
<constraints xsi:type="constraints:SimpleConstraint" name="isMultipleNodeEntry">
<constraintType href="ppe:/environment/org.eclipse.papyrus.infra.gmfdiag.properties/model/Environment.xmi#//@constraintTypes.3"/>
<properties xsi:type="constraints:ValueProperty" name="nsUri" value="http://www.eclipse.org/gmf/runtime/1.0.2/notation"/>
<properties xsi:type="constraints:ValueProperty" name="className" value="NodeEntry"/>
</constraints>
</views>
- <views elementMultiplicity="-1" name="Multiple StringToPropertyValueMapEntry" sections="//@tabs.0/@sections.45" automaticContext="true" datacontexts="//@dataContexts.0/@elements.16">
+ <views elementMultiplicity="-1" name="Multiple StringToPropertyValueMapEntry" sections="//@tabs.0/@sections.44" automaticContext="true" datacontexts="//@dataContexts.0/@elements.16">
<constraints xsi:type="constraints:SimpleConstraint" name="isMultipleStringToPropertyValueMapEntry">
<constraintType href="ppe:/environment/org.eclipse.papyrus.infra.gmfdiag.properties/model/Environment.xmi#//@constraintTypes.3"/>
<properties xsi:type="constraints:ValueProperty" name="className" value="StringToPropertyValueMapEntry"/>
<properties xsi:type="constraints:ValueProperty" name="nsUri" value="http://www.eclipse.org/gmf/runtime/1.0.2/notation"/>
</constraints>
</views>
- <views elementMultiplicity="-1" name="Multiple PropertyValue" sections="//@tabs.0/@sections.46" automaticContext="true" datacontexts="//@dataContexts.0/@elements.17">
+ <views elementMultiplicity="-1" name="Multiple PropertyValue" sections="//@tabs.0/@sections.45" automaticContext="true" datacontexts="//@dataContexts.0/@elements.17">
<constraints xsi:type="constraints:SimpleConstraint" name="isMultiplePropertyValue">
<constraintType href="ppe:/environment/org.eclipse.papyrus.infra.gmfdiag.properties/model/Environment.xmi#//@constraintTypes.3"/>
<properties xsi:type="constraints:ValueProperty" name="className" value="PropertyValue"/>
<properties xsi:type="constraints:ValueProperty" name="nsUri" value="http://www.eclipse.org/gmf/runtime/1.0.2/notation"/>
</constraints>
</views>
- <views elementMultiplicity="-1" name="Multiple StringObjectConverter" sections="//@tabs.0/@sections.47" automaticContext="true" datacontexts="//@dataContexts.0/@elements.18">
+ <views elementMultiplicity="-1" name="Multiple StringObjectConverter" sections="//@tabs.0/@sections.46" automaticContext="true" datacontexts="//@dataContexts.0/@elements.18">
<constraints xsi:type="constraints:SimpleConstraint" name="isMultipleStringObjectConverter">
<constraintType href="ppe:/environment/org.eclipse.papyrus.infra.gmfdiag.properties/model/Environment.xmi#//@constraintTypes.3"/>
<properties xsi:type="constraints:ValueProperty" name="className" value="StringObjectConverter"/>
<properties xsi:type="constraints:ValueProperty" name="nsUri" value="http://www.eclipse.org/gmf/runtime/1.0.2/notation"/>
</constraints>
</views>
- <views elementMultiplicity="-1" name="Multiple Shape" sections="//@tabs.0/@sections.48" automaticContext="true" datacontexts="//@dataContexts.0/@elements.19">
+ <views elementMultiplicity="-1" name="Multiple Shape" sections="//@tabs.0/@sections.47" automaticContext="true" datacontexts="//@dataContexts.0/@elements.19">
<constraints xsi:type="constraints:SimpleConstraint" name="isMultipleShape">
<constraintType href="ppe:/environment/org.eclipse.papyrus.infra.gmfdiag.properties/model/Environment.xmi#//@constraintTypes.3"/>
<properties xsi:type="constraints:ValueProperty" name="className" value="Shape"/>
<properties xsi:type="constraints:ValueProperty" name="nsUri" value="http://www.eclipse.org/gmf/runtime/1.0.2/notation"/>
</constraints>
</views>
- <views elementMultiplicity="-1" name="Multiple Compartment" sections="//@tabs.0/@sections.49" automaticContext="true" datacontexts="//@dataContexts.0/@elements.20">
+ <views elementMultiplicity="-1" name="Multiple Compartment" sections="//@tabs.0/@sections.48" automaticContext="true" datacontexts="//@dataContexts.0/@elements.20">
<constraints xsi:type="constraints:SimpleConstraint" name="isMultipleCompartment">
<constraintType href="ppe:/environment/org.eclipse.papyrus.infra.gmfdiag.properties/model/Environment.xmi#//@constraintTypes.3"/>
<properties xsi:type="constraints:ValueProperty" name="nsUri" value="http://www.eclipse.org/gmf/runtime/1.0.2/notation"/>
<properties xsi:type="constraints:ValueProperty" name="className" value="Compartment"/>
</constraints>
</views>
- <views elementMultiplicity="-1" name="Multiple ListCompartment" sections="//@tabs.0/@sections.50" automaticContext="true" datacontexts="//@dataContexts.0/@elements.21">
+ <views elementMultiplicity="-1" name="Multiple ListCompartment" sections="//@tabs.0/@sections.49" automaticContext="true" datacontexts="//@dataContexts.0/@elements.21">
<constraints xsi:type="constraints:SimpleConstraint" name="isMultipleListCompartment">
<constraintType href="ppe:/environment/org.eclipse.papyrus.infra.gmfdiag.properties/model/Environment.xmi#//@constraintTypes.3"/>
<properties xsi:type="constraints:ValueProperty" name="className" value="ListCompartment"/>
<properties xsi:type="constraints:ValueProperty" name="nsUri" value="http://www.eclipse.org/gmf/runtime/1.0.2/notation"/>
</constraints>
</views>
- <views elementMultiplicity="-1" name="Multiple Connector" sections="//@tabs.0/@sections.51" automaticContext="true" datacontexts="//@dataContexts.0/@elements.22">
+ <views elementMultiplicity="-1" name="Multiple Connector" sections="//@tabs.0/@sections.50" automaticContext="true" datacontexts="//@dataContexts.0/@elements.22">
<constraints xsi:type="constraints:SimpleConstraint" name="isMultipleConnector">
<constraintType href="ppe:/environment/org.eclipse.papyrus.infra.gmfdiag.properties/model/Environment.xmi#//@constraintTypes.3"/>
<properties xsi:type="constraints:ValueProperty" name="className" value="Connector"/>
<properties xsi:type="constraints:ValueProperty" name="nsUri" value="http://www.eclipse.org/gmf/runtime/1.0.2/notation"/>
</constraints>
</views>
- <views elementMultiplicity="-1" name="Multiple StandardDiagram" sections="//@tabs.0/@sections.52" automaticContext="true" datacontexts="//@dataContexts.0/@elements.23">
+ <views elementMultiplicity="-1" name="Multiple StandardDiagram" sections="//@tabs.0/@sections.51" automaticContext="true" datacontexts="//@dataContexts.0/@elements.23">
<constraints xsi:type="constraints:SimpleConstraint" name="isMultipleStandardDiagram">
<constraintType href="ppe:/environment/org.eclipse.papyrus.infra.gmfdiag.properties/model/Environment.xmi#//@constraintTypes.3"/>
<properties xsi:type="constraints:ValueProperty" name="nsUri" value="http://www.eclipse.org/gmf/runtime/1.0.2/notation"/>
<properties xsi:type="constraints:ValueProperty" name="className" value="StandardDiagram"/>
</constraints>
</views>
- <views elementMultiplicity="-1" name="Multiple DecorationNode" sections="//@tabs.0/@sections.53" automaticContext="true" datacontexts="//@dataContexts.0/@elements.24">
+ <views elementMultiplicity="-1" name="Multiple DecorationNode" sections="//@tabs.0/@sections.52" automaticContext="true" datacontexts="//@dataContexts.0/@elements.24">
<constraints xsi:type="constraints:SimpleConstraint" name="isMultipleDecorationNode">
<constraintType href="ppe:/environment/org.eclipse.papyrus.infra.gmfdiag.properties/model/Environment.xmi#//@constraintTypes.3"/>
<properties xsi:type="constraints:ValueProperty" name="nsUri" value="http://www.eclipse.org/gmf/runtime/1.0.2/notation"/>
<properties xsi:type="constraints:ValueProperty" name="className" value="DecorationNode"/>
</constraints>
</views>
- <views elementMultiplicity="-1" name="Multiple BasicDecorationNode" sections="//@tabs.0/@sections.54" automaticContext="true" datacontexts="//@dataContexts.0/@elements.25">
+ <views elementMultiplicity="-1" name="Multiple BasicDecorationNode" sections="//@tabs.0/@sections.53" automaticContext="true" datacontexts="//@dataContexts.0/@elements.25">
<constraints xsi:type="constraints:SimpleConstraint" name="isMultipleBasicDecorationNode">
<constraintType href="ppe:/environment/org.eclipse.papyrus.infra.gmfdiag.properties/model/Environment.xmi#//@constraintTypes.3"/>
<properties xsi:type="constraints:ValueProperty" name="className" value="BasicDecorationNode"/>
<properties xsi:type="constraints:ValueProperty" name="nsUri" value="http://www.eclipse.org/gmf/runtime/1.0.2/notation"/>
</constraints>
</views>
- <views elementMultiplicity="-1" name="Multiple BasicCompartment" sections="//@tabs.0/@sections.55" automaticContext="true" datacontexts="//@dataContexts.0/@elements.26">
+ <views elementMultiplicity="-1" name="Multiple BasicCompartment" sections="//@tabs.0/@sections.54" automaticContext="true" datacontexts="//@dataContexts.0/@elements.26">
<constraints xsi:type="constraints:SimpleConstraint" name="isMultipleBasicCompartment">
<constraintType href="ppe:/environment/org.eclipse.papyrus.infra.gmfdiag.properties/model/Environment.xmi#//@constraintTypes.3"/>
<properties xsi:type="constraints:ValueProperty" name="nsUri" value="http://www.eclipse.org/gmf/runtime/1.0.2/notation"/>
<properties xsi:type="constraints:ValueProperty" name="className" value="BasicCompartment"/>
</constraints>
</views>
- <views elementMultiplicity="-1" name="Multiple BasicSemanticCompartment" sections="//@tabs.0/@sections.56" automaticContext="true" datacontexts="//@dataContexts.0/@elements.27">
+ <views elementMultiplicity="-1" name="Multiple BasicSemanticCompartment" sections="//@tabs.0/@sections.55" automaticContext="true" datacontexts="//@dataContexts.0/@elements.27">
<constraints xsi:type="constraints:SimpleConstraint" name="isMultipleBasicSemanticCompartment">
<constraintType href="ppe:/environment/org.eclipse.papyrus.infra.gmfdiag.properties/model/Environment.xmi#//@constraintTypes.3"/>
<properties xsi:type="constraints:ValueProperty" name="className" value="BasicSemanticCompartment"/>
<properties xsi:type="constraints:ValueProperty" name="nsUri" value="http://www.eclipse.org/gmf/runtime/1.0.2/notation"/>
</constraints>
</views>
- <views elementMultiplicity="-1" name="Multiple SemanticListCompartment" sections="//@tabs.0/@sections.57" automaticContext="true" datacontexts="//@dataContexts.0/@elements.28">
+ <views elementMultiplicity="-1" name="Multiple SemanticListCompartment" sections="//@tabs.0/@sections.56" automaticContext="true" datacontexts="//@dataContexts.0/@elements.28">
<constraints xsi:type="constraints:SimpleConstraint" name="isMultipleSemanticListCompartment">
<constraintType href="ppe:/environment/org.eclipse.papyrus.infra.gmfdiag.properties/model/Environment.xmi#//@constraintTypes.3"/>
<properties xsi:type="constraints:ValueProperty" name="nsUri" value="http://www.eclipse.org/gmf/runtime/1.0.2/notation"/>
<properties xsi:type="constraints:ValueProperty" name="className" value="SemanticListCompartment"/>
</constraints>
</views>
+ <views name="Single Decorable Element" sections="//@tabs.0/@sections.57" automaticContext="true" datacontexts="//@dataContexts.1/@elements.0">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isDecorableElementConstraint">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.infra.gmfdiag.properties/model/Environment.xmi#//@constraintTypes.4"/>
+ </constraints>
+ </views>
<dataContexts name="notation" label="notation">
<elements name="Edge" supertypes="//@dataContexts.0/@elements.10">
<properties name="source" type="Reference"/>
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/model/notation/ui/SingleDiagram.xwt b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/model/notation/ui/SingleDiagram.xwt
index 0e7eb2296f9..d08acaed9e0 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/model/notation/ui/SingleDiagram.xwt
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/model/notation/ui/SingleDiagram.xwt
@@ -11,6 +11,8 @@
<ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
</Composite.layout>
<ppe:StringEditor input="{Binding}" property="notation:Diagram:name"></ppe:StringEditor>
- <ppe:StringLabel input="{Binding}" property="notation:View:type"></ppe:StringLabel>
+ <ppe:ReferenceLabel input="{Binding}" property="notation:View:prototype" readOnly="true" customLabel="View Type"></ppe:ReferenceLabel>
+ <ppe:ReferenceDialog input="{Binding}" property="notation:View:owner" customLabel="Owner"></ppe:ReferenceDialog>
+ <ppe:ReferenceDialog input="{Binding}" property="notation:View:element" customLabel="Root element"></ppe:ReferenceDialog>
</Composite>
</Composite> \ No newline at end of file
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/src/org/eclipse/papyrus/infra/gmfdiag/properties/modelelement/GMFModelElement.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/src/org/eclipse/papyrus/infra/gmfdiag/properties/modelelement/GMFModelElement.java
index f85b81ae344..a85ef90af4c 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/src/org/eclipse/papyrus/infra/gmfdiag/properties/modelelement/GMFModelElement.java
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/src/org/eclipse/papyrus/infra/gmfdiag/properties/modelelement/GMFModelElement.java
@@ -19,17 +19,28 @@ import org.eclipse.emf.databinding.FeaturePath;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.gmf.runtime.notation.Diagram;
import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.Style;
import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ILabelProviderListener;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.papyrus.infra.core.services.ServiceException;
import org.eclipse.papyrus.infra.emf.utils.ServiceUtilsForEObject;
+import org.eclipse.papyrus.infra.gmfdiag.common.utils.DiagramUtils;
import org.eclipse.papyrus.infra.gmfdiag.properties.Activator;
import org.eclipse.papyrus.infra.gmfdiag.properties.databinding.GradientObservableValue;
+import org.eclipse.papyrus.infra.gmfdiag.properties.provider.ModelContentProvider;
+import org.eclipse.papyrus.infra.gmfdiag.properties.util.LegacyOwnerObservable;
import org.eclipse.papyrus.infra.services.labelprovider.service.LabelProviderService;
+import org.eclipse.papyrus.infra.viewpoints.policy.PolicyChecker;
+import org.eclipse.papyrus.infra.viewpoints.policy.ViewPrototype;
+import org.eclipse.papyrus.infra.viewpoints.style.StylePackage;
+import org.eclipse.papyrus.infra.widgets.providers.IStaticContentProvider;
import org.eclipse.papyrus.uml.tools.databinding.PapyrusObservableList;
import org.eclipse.papyrus.uml.tools.databinding.PapyrusObservableValue;
import org.eclipse.papyrus.views.properties.modelelement.EMFModelElement;
+import org.eclipse.swt.graphics.Image;
/**
* A ModelElement to represent an element of the GMF Notation metamodel
@@ -65,7 +76,29 @@ public class GMFModelElement extends EMFModelElement {
}
@Override
+ protected boolean isFeatureEditable(String propertyPath) {
+ if (propertyPath.endsWith("owner")) {
+ return true;
+ }
+ return super.isFeatureEditable(propertyPath);
+ }
+
+ @Override
protected IObservable doGetObservable(String propertyPath) {
+ if (propertyPath.endsWith("owner")) {
+ Diagram diagram = (Diagram)source;
+ Style style = diagram.getStyle(StylePackage.Literals.PAPYRUS_VIEW_STYLE);
+ if (style != null)
+ return new PapyrusObservableValue(style, StylePackage.Literals.PAPYRUS_VIEW_STYLE__OWNER, domain);
+ return new LegacyOwnerObservable(diagram, StylePackage.Literals.PAPYRUS_VIEW_STYLE__OWNER, domain);
+ } else if (propertyPath.endsWith("prototype")) {
+ Diagram diagram = (Diagram)source;
+ Style style = diagram.getStyle(StylePackage.Literals.PAPYRUS_VIEW_STYLE);
+ if (style != null)
+ return new PapyrusObservableValue(style, StylePackage.Literals.PAPYRUS_VIEW_STYLE__CONFIGURATION, domain);
+ return new LegacyOwnerObservable(diagram, StylePackage.Literals.PAPYRUS_VIEW_STYLE__CONFIGURATION, domain);
+ }
+
FeaturePath featurePath = getFeaturePath(propertyPath);
EStructuralFeature feature = getFeature(propertyPath);
@@ -88,6 +121,22 @@ public class GMFModelElement extends EMFModelElement {
@Override
public ILabelProvider getLabelProvider(String propertyPath) {
+ if (propertyPath.endsWith("prototype")) {
+ return new ILabelProvider() {
+ public void addListener(ILabelProviderListener listener) { }
+ public void removeListener(ILabelProviderListener listener) { }
+ public void dispose() { }
+ public boolean isLabelProperty(Object element, String property) { return false; }
+ public Image getImage(Object element) {
+ ViewPrototype proto = DiagramUtils.getPrototype((Diagram)source);
+ return proto.getIcon();
+ }
+ public String getText(Object element) {
+ ViewPrototype proto = DiagramUtils.getPrototype((Diagram)source);
+ return proto.getQualifiedName();
+ }
+ };
+ }
try {
return ServiceUtilsForEObject.getInstance().getService(LabelProviderService.class, source).getLabelProvider();
} catch (ServiceException ex) {
@@ -96,4 +145,43 @@ public class GMFModelElement extends EMFModelElement {
}
}
+ /**
+ * @see org.eclipse.papyrus.views.properties.modelelement.EMFModelElement#getContentProvider(java.lang.String)
+ */
+ @Override
+ public IStaticContentProvider getContentProvider(String propertyPath) {
+ if (propertyPath.endsWith("element")) {
+ Diagram diagram = (Diagram)source;
+ return new ModelContentProvider(diagram, getRoot(diagram.getElement())) {
+ @Override
+ protected boolean isValid(EObject selection, Diagram diagram, ViewPrototype prototype) {
+ return PolicyChecker.getCurrent().canHaveNewView(selection, DiagramUtils.getOwner(diagram), prototype);
+ }
+ };
+ } else if (propertyPath.endsWith("owner")) {
+ Diagram diagram = (Diagram) source;
+ return new ModelContentProvider(diagram, getRoot(diagram.getElement())) {
+ @Override
+ protected boolean isValid(EObject selection, Diagram diagram, ViewPrototype prototype) {
+ return PolicyChecker.getCurrent().canHaveNewView(diagram.getElement(), selection, prototype);
+ }
+ };
+ }
+ return super.getContentProvider(propertyPath);
+ }
+
+ /**
+ * Gets the root EObject from the given one
+ * @param obj An object
+ * @return The root object which is an ancestor of the given one
+ */
+ private EObject getRoot(EObject obj) {
+ EObject current = obj;
+ EObject parent = obj.eContainer();
+ while (parent != null) {
+ current = parent;
+ parent = parent.eContainer();
+ }
+ return current;
+ }
}
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/src/org/eclipse/papyrus/infra/gmfdiag/properties/provider/ModelContentProvider.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/src/org/eclipse/papyrus/infra/gmfdiag/properties/provider/ModelContentProvider.java
new file mode 100755
index 00000000000..78e29021201
--- /dev/null
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/src/org/eclipse/papyrus/infra/gmfdiag/properties/provider/ModelContentProvider.java
@@ -0,0 +1,78 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.properties.provider;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.papyrus.infra.gmfdiag.common.utils.DiagramUtils;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ui.ECoreModelContentProvider;
+import org.eclipse.papyrus.infra.viewpoints.policy.ViewPrototype;
+import org.eclipse.papyrus.infra.widgets.providers.IHierarchicContentProvider;
+import org.eclipse.papyrus.infra.widgets.providers.IStaticContentProvider;
+
+/**
+ * Represents a simple ECore model content provider for the selection of a diagram's root model element
+ * @author Laurent Wouters
+ */
+public abstract class ModelContentProvider extends ECoreModelContentProvider implements IStaticContentProvider, IHierarchicContentProvider {
+
+ /**
+ * The diagram
+ */
+ private Diagram diagram;
+
+ /**
+ * Initializes the provider with the given root
+ * @param diagram The diagram for which a root model element is to be provided
+ * @param root The root object
+ */
+ public ModelContentProvider(Diagram diagram, EObject root) {
+ super(root);
+ this.diagram = diagram;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.papyrus.infra.widgets.providers.IStaticContentProvider#getElements()
+ */
+ public Object[] getElements() {
+ return getElements(null);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.papyrus.infra.widgets.providers.IHierarchicContentProvider#isValidValue(java.lang.Object)
+ */
+ public boolean isValidValue(Object element) {
+ if (element == null)
+ return false;
+ if (!(element instanceof EObject))
+ return false;
+ ViewPrototype prototype = DiagramUtils.getPrototype(diagram);
+ if (prototype == null)
+ return false;
+ return isValid((EObject) element, diagram, prototype);
+ }
+
+ /**
+ * Determines whether the selection is valid
+ *
+ * @param selection
+ * The selection
+ * @param diagram
+ * The diagram
+ * @param prototype
+ * The diagram's prototype
+ * @return <code>true</code> if the selection is valid
+ */
+ protected abstract boolean isValid(EObject selection, Diagram diagram, ViewPrototype prototype);
+}
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/src/org/eclipse/papyrus/infra/gmfdiag/properties/util/LegacyOwnerObservable.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/src/org/eclipse/papyrus/infra/gmfdiag/properties/util/LegacyOwnerObservable.java
new file mode 100755
index 00000000000..8b941318fae
--- /dev/null
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/src/org/eclipse/papyrus/infra/gmfdiag/properties/util/LegacyOwnerObservable.java
@@ -0,0 +1,158 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.properties.util;
+
+import org.eclipse.core.databinding.observable.ChangeEvent;
+import org.eclipse.core.databinding.observable.IChangeListener;
+import org.eclipse.core.databinding.observable.Realm;
+import org.eclipse.core.databinding.observable.value.AbstractObservableValue;
+import org.eclipse.core.databinding.observable.value.ValueDiff;
+import org.eclipse.emf.common.command.AbstractCommand;
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.Style;
+import org.eclipse.papyrus.infra.gmfdiag.common.utils.DiagramUtils;
+import org.eclipse.papyrus.infra.viewpoints.style.StylePackage;
+import org.eclipse.papyrus.uml.tools.databinding.PapyrusObservableValue;
+
+/**
+ * Represents the observable value of a diagram's owner in the case where the diagram does not yet have the viewpoints-compatible style for holding the value itself
+ * @author Laurent Wouters
+ */
+public class LegacyOwnerObservable extends AbstractObservableValue {
+
+ private EditingDomain domain;
+ private Diagram diagram;
+ private EReference reference;
+ private IChangeListener styleListener;
+ private IChangeListener valueListener;
+ private PapyrusObservableValue styleObservable;
+ private PapyrusObservableValue valueObservable;
+
+ /**
+ * Initializes the observables
+ * @param diagram The diagram to be observed
+ * @param domain The editing domain
+ */
+ public LegacyOwnerObservable(Diagram diagram, EReference feature, EditingDomain domain) {
+ super(Realm.getDefault());
+ this.domain = domain;
+ this.diagram = diagram;
+ this.reference = feature;
+ buildStyleListener();
+ this.styleObservable = new PapyrusObservableValue(diagram, NotationPackage.Literals.VIEW__STYLES, domain);
+ this.styleObservable.addChangeListener(styleListener);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.core.databinding.observable.value.AbstractObservableValue#isStale()
+ */
+ public boolean isStale() {
+ return (valueListener != null);
+ }
+
+ /**
+ * Builds the listener for the styles property of the diagram
+ */
+ private void buildStyleListener() {
+ this.styleListener = new IChangeListener() {
+ public void handleChange(ChangeEvent event) {
+ if (valueListener != null)
+ return;
+ Style style = LegacyOwnerObservable.this.diagram.getStyle(StylePackage.Literals.PAPYRUS_VIEW_STYLE);
+ if (style != null)
+ buildValueListener(style);
+ }
+ };
+ }
+
+ /**
+ * Builds the listener for the EObjectValue property of the style
+ * @param style The style to be observed
+ */
+ private void buildValueListener(Style style) {
+ this.valueListener = new IChangeListener() {
+ public void handleChange(ChangeEvent event) {
+ fireValueChange(new ValueDiff() {
+ public Object getOldValue() { return null; }
+ public Object getNewValue() { return DiagramUtils.getOwner(diagram); }
+ });
+ }
+ };
+ valueObservable = new PapyrusObservableValue(style, reference, domain);
+ valueObservable.addChangeListener(valueListener);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.core.databinding.observable.value.IObservableValue#getValueType()
+ */
+ public Object getValueType() {
+ return EcorePackage.Literals.EOBJECT;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.core.databinding.observable.value.AbstractObservableValue#doGetValue()
+ */
+ protected Object doGetValue() {
+ return DiagramUtils.getOwner(diagram);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.core.databinding.observable.value.AbstractObservableValue#doSetValue(java.lang.Object)
+ */
+ protected void doSetValue(Object value) {
+ Command emfCommand = getCommand((EObject) value);
+ domain.getCommandStack().execute(emfCommand);
+ }
+
+ private Command getCommand(final EObject newValue) {
+ final EObject oldValue = DiagramUtils.getOwner(diagram);
+
+ return new AbstractCommand("Change diagram's owner") {
+ private boolean createStyle = true;
+
+ public void execute() {
+ Style style = diagram.getStyle(StylePackage.Literals.PAPYRUS_VIEW_STYLE);
+ createStyle = (style == null);
+ DiagramUtils.setOwner(diagram, newValue);
+ }
+
+ public void redo() {
+ DiagramUtils.setOwner(diagram, newValue);
+ }
+
+ @Override
+ public void undo() {
+ if (createStyle) {
+ Style style = diagram.getStyle(StylePackage.Literals.PAPYRUS_VIEW_STYLE);
+ diagram.getStyles().remove(style);
+ } else {
+ DiagramUtils.setOwner(diagram, oldValue);
+ }
+ }
+
+ @Override
+ public boolean prepare() {
+ return true;
+ }
+ };
+ }
+}
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.common/META-INF/MANIFEST.MF b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.common/META-INF/MANIFEST.MF
index c3685758a62..272941560fd 100644
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.common/META-INF/MANIFEST.MF
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.common/META-INF/MANIFEST.MF
@@ -14,7 +14,8 @@ Require-Bundle: org.eclipse.ui,
org.eclipse.e4.ui.workbench,
org.eclipse.e4.core.contexts,
org.eclipse.core.expressions,
- org.eclipse.emf.edit.ui
+ org.eclipse.emf.edit.ui,
+ org.eclipse.papyrus.infra.viewpoints.policy;bundle-version="1.0.0"
Export-Package: org.eclipse.papyrus.infra.nattable.common,
org.eclipse.papyrus.infra.nattable.common.editor,
org.eclipse.papyrus.infra.nattable.common.factory,
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.common/plugin.xml b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.common/plugin.xml
index a6220b4d8d6..93fcd4b7399 100644
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.common/plugin.xml
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.common/plugin.xml
@@ -8,16 +8,24 @@
</extension>
<extension id="papyrus.table.menuspapyrus.table.menu" name="Papyrus Table Menus" point="org.eclipse.ui.menus">
<menuContribution allPopups="false" locationURI="popup:org.eclipse.papyrus.views.modelexplorer.modelexplorer.popup?after=org.eclipse.papyrus.views.modelexplorer.popupmenu.creatediagram">
- <menu icon="icons/table.gif" id="org.eclipse.papyrus.infra.nattable.popupmenu.createnattable" label="New Table (New version)" mnemonic="&amp;T" tooltip="The Papyrus Table Menu">
+ <menu icon="platform:/plugin/org.eclipse.papyrus.infra.viewpoints.policy/icons/NewTable.gif" id="org.eclipse.papyrus.infra.nattable.popupmenu.createnattable" label="New Table" mnemonic="&amp;T" tooltip="The Papyrus Table Menu">
+ <dynamic
+ class="org.eclipse.papyrus.infra.nattable.common.handlers.DynamicTablesMenuContribution"
+ id="org.eclipse.papyrus.infra.nattable.common.handlers.DynamicTablesMenuContribution">
+ </dynamic>
</menu>
</menuContribution>
<menuContribution allPopups="false" locationURI="menu:org.eclipse.papyrus.ui.menu?after=org.eclipse.papyrus.uml.diagram.ui.menu.diagrams">
<menu
- icon="icons/table.gif"
+ icon="platform:/plugin/org.eclipse.papyrus.infra.viewpoints.policy/icons/NewTable.gif"
id="org.eclipse.papyrus.infra.nattable.menu.createnattable"
- label="New Table (New version)"
+ label="New Table"
mnemonic="&amp;T"
tooltip="The Papyrus Table Menu">
+ <dynamic
+ class="org.eclipse.papyrus.infra.nattable.common.handlers.DynamicTablesMenuContribution"
+ id="org.eclipse.papyrus.infra.nattable.common.handlers.DynamicTablesMenuContribution">
+ </dynamic>
</menu>
</menuContribution>
@@ -161,5 +169,61 @@
type="org.eclipse.papyrus.infra.core.sasheditor.di.contentprovider.IOpenable">
</adapter>
</factory>
+</extension>
+<extension
+ point="org.eclipse.ui.menus">
+ <menuContribution
+ allPopups="false"
+ locationURI="toolbar:org.eclipse.ui.main.toolbar">
+ <toolbar
+ id="org.eclipse.papyrus.infra.viewpoints.policy.toolbar">
+ <command
+ commandId="org.eclipse.papyrus.infra.viewpoints.policy.toolbar.tables.command"
+ icon="platform:/plugin/org.eclipse.papyrus.infra.viewpoints.policy/icons/NewTable.gif"
+ id="org.eclipse.papyrus.infra.viewpoints.policy.toolbar.tables.command"
+ label="Create a new table ..."
+ style="pulldown"
+ tooltip="Create a new table ...">
+ <visibleWhen
+ checkEnabled="false">
+ <with
+ variable="activeEditorId">
+ <equals
+ value="org.eclipse.papyrus.infra.core.papyrusEditor">
+ </equals>
+ </with>
+ </visibleWhen>
+ </command>
+ </toolbar>
+ </menuContribution>
+ <menuContribution
+ allPopups="false"
+ locationURI="menu:org.eclipse.papyrus.infra.viewpoints.policy.toolbar.tables.command">
+ <dynamic
+ class="org.eclipse.papyrus.infra.nattable.common.handlers.DynamicTablesMenuContribution"
+ id="org.eclipse.papyrus.infra.nattable.common.handlers.DynamicTablesMenuContribution">
+ </dynamic>
+ </menuContribution>
+</extension>
+<extension
+ point="org.eclipse.ui.commands">
+ <command
+ categoryId="org.eclipse.papyrus.infra.viewpoints.policy.commands"
+ defaultHandler="org.eclipse.papyrus.infra.viewpoints.policy.DynamicCommandHandler"
+ id="org.eclipse.papyrus.infra.viewpoints.policy.toolbar.tables.command"
+ name="Create Dynamic Table Command">
+ </command>
+</extension>
+<extension
+ point="org.eclipse.papyrus.infra.viewpoints.policy.viewType">
+ <helper
+ class="org.eclipse.papyrus.infra.nattable.common.helper.TableCommandHelper">
+ </helper>
+</extension>
+<extension
+ point="org.eclipse.papyrus.infra.viewpoints.policy.viewType">
+ <helper
+ class="org.eclipse.papyrus.infra.nattable.common.helper.SyncTableCommandHelper">
+ </helper>
</extension>
</plugin>
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.common/src/org/eclipse/papyrus/infra/nattable/common/handlers/AbstractCreateNattableEditorHandler.java b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.common/src/org/eclipse/papyrus/infra/nattable/common/handlers/AbstractCreateNattableEditorHandler.java
index 75b61a09193..f7f18c4dede 100644
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.common/src/org/eclipse/papyrus/infra/nattable/common/handlers/AbstractCreateNattableEditorHandler.java
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.common/src/org/eclipse/papyrus/infra/nattable/common/handlers/AbstractCreateNattableEditorHandler.java
@@ -83,27 +83,34 @@ public abstract class AbstractCreateNattableEditorHandler extends AbstractHandle
}
/**
- * Run the command as a transaction. Create a Transaction and delegate the
- * command to {@link #doExecute(ServicesRegistry)}.
- *
- * @throws ServiceException
- *
+ * Prompts the user the future table's name
+ * @return The name, or <code>null</code> if the user cancelled the creation
*/
- public void runAsTransaction(final ExecutionEvent event) throws ServiceException {
+ public String askName() {
//we create a new resourceSet to avoid to load unused config in the resourceset in case of Cancel
ResourceSet set = new ResourceSetImpl();
Resource res = set.getResource(getTableEditorConfigurationURI(), true);
TableConfiguration conf = (TableConfiguration)res.getContents().get(0);
String defaultName = conf.getName();
// default Value
- final String name;
final String nameWithIncrement = EditorNameInitializer.getNameWithIncrement(NattablePackage.eINSTANCE.getTable(), NattableconfigurationPackage.eINSTANCE.getTableNamedElement_Name(), defaultName, getTableContext());
final InputDialog dialog = new InputDialog(Display.getDefault().getActiveShell(), Messages.AbstractCreateNattableEditorHandler_PapyrusTableCreation, Messages.AbstractCreateNattableEditorHandler_EnterTheNameForTheNewTable, nameWithIncrement, null);
- if(dialog.open() == Dialog.OK) {
- name = dialog.getValue();
+ if(dialog.open() == Dialog.OK)
+ return dialog.getValue();
+ return null;
+ }
+
+ /**
+ * Run the command as a transaction. Create a Transaction and delegate the
+ * command to {@link #doExecute(ServicesRegistry)}.
+ *
+ * @throws ServiceException
+ *
+ */
+ public void runAsTransaction(final ExecutionEvent event) throws ServiceException {
+ String name = askName();
+ if (name != null)
runAsTransaction(event, name);
- }
-
}
/**
@@ -158,14 +165,13 @@ public abstract class AbstractCreateNattableEditorHandler extends AbstractHandle
* @throws ServiceException
* @throws NotFoundException
*/
- public void doExecute(final ServicesRegistry serviceRegistry, String name, String description) throws ServiceException, NotFoundException {
-
- final Object editorModel = createEditorModel(serviceRegistry, name, description);
+ public Table doExecute(final ServicesRegistry serviceRegistry, String name, String description) throws ServiceException, NotFoundException {
+ final Table editorModel = createEditorModel(serviceRegistry, name, description);
// Get the mngr allowing to add/open new editor.
final IPageManager pageMngr = ServiceUtils.getInstance().getIPageManager(serviceRegistry);
// add the new editor model to the sash.
pageMngr.openPage(editorModel);
-
+ return editorModel;
}
/**
@@ -177,7 +183,7 @@ public abstract class AbstractCreateNattableEditorHandler extends AbstractHandle
* @throws NotFoundException
* The model where to save the TableInstance is not found.
*/
- protected Object createEditorModel(final ServicesRegistry serviceRegistry, String name, String description) throws ServiceException, NotFoundException {
+ protected Table createEditorModel(final ServicesRegistry serviceRegistry, String name, String description) throws ServiceException, NotFoundException {
final TableConfiguration configuration = getDefaultTableEditorConfiguration();
assert configuration != null;
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.common/src/org/eclipse/papyrus/infra/nattable/common/handlers/DynamicTablesMenuContribution.java b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.common/src/org/eclipse/papyrus/infra/nattable/common/handlers/DynamicTablesMenuContribution.java
new file mode 100755
index 00000000000..687e6050a82
--- /dev/null
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.common/src/org/eclipse/papyrus/infra/nattable/common/handlers/DynamicTablesMenuContribution.java
@@ -0,0 +1,102 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.nattable.common.handlers;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.ActionContributionItem;
+import org.eclipse.jface.action.IContributionItem;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusSyncTable;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusTable;
+import org.eclipse.papyrus.infra.viewpoints.policy.DynamicContribution;
+import org.eclipse.papyrus.infra.viewpoints.policy.PolicyChecker;
+import org.eclipse.papyrus.infra.viewpoints.policy.ViewPrototype;
+
+/**
+ * Represents the dynamic contribution of a policy to menus
+ * @author Laurent Wouters
+ */
+public class DynamicTablesMenuContribution extends DynamicContribution {
+ /**
+ * Constructor.
+ */
+ public DynamicTablesMenuContribution() { }
+
+ /**
+ * Constructor.
+ * @param id
+ */
+ public DynamicTablesMenuContribution(String id) {
+ super(id);
+ }
+
+ /**
+ * @see org.eclipse.ui.actions.CompoundContributionItem#getContributionItems()
+ */
+ @Override
+ protected IContributionItem[] getContributionItems() {
+ final EObject selection = getSelection();
+ if (selection == null)
+ return new IContributionItem[0];
+
+ // build a list of all the available prototypes
+ List<ViewPrototype> data = new ArrayList<ViewPrototype>();
+ for (final ViewPrototype proto : PolicyChecker.getCurrent().getPrototypesFor(selection)) {
+ if (!(proto.getConfiguration() instanceof PapyrusTable || proto.getConfiguration() instanceof PapyrusSyncTable))
+ continue;
+ data.add(proto);
+ }
+
+ // sort them
+ Collections.sort(data, new ViewPrototype.Comp());
+
+ // build the full labels
+ List<String> labels = new ArrayList<String>(data.size());
+ String last = null;
+ boolean first = true;
+ for (ViewPrototype item : data) {
+ String label = item.getLabel();
+ if (last != null && last.equals(label)) {
+ // name collision
+ if (first) {
+ labels.set(labels.size() - 1, data.get(labels.size() - 1).getFullLabel());
+ first = false;
+ }
+ labels.add(item.getFullLabel());
+ } else {
+ labels.add(label);
+ last = label;
+ first = true;
+ }
+ }
+
+ // build the menu
+ List<IContributionItem> items = new ArrayList<IContributionItem>(data.size());
+ for (int i = 0; i != data.size(); i++) {
+ final ViewPrototype proto = data.get(i);
+ String label = labels.get(i);
+ items.add(new ActionContributionItem(new Action(CREATE_MESSAGE + label, proto.getIconDescriptor()) {
+ @Override
+ public void run() {
+ proto.instantiateOn(selection);
+ }
+ }));
+ }
+ return items.toArray(new IContributionItem[items.size()]);
+ }
+}
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.common/src/org/eclipse/papyrus/infra/nattable/common/handlers/PolicyDefinedTableHandler.java b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.common/src/org/eclipse/papyrus/infra/nattable/common/handlers/PolicyDefinedTableHandler.java
new file mode 100755
index 00000000000..850517b770e
--- /dev/null
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.common/src/org/eclipse/papyrus/infra/nattable/common/handlers/PolicyDefinedTableHandler.java
@@ -0,0 +1,78 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.nattable.common.handlers;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RecordingCommand;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.papyrus.infra.core.services.ServicesRegistry;
+import org.eclipse.papyrus.infra.core.utils.ServiceUtils;
+import org.eclipse.papyrus.infra.emf.utils.ServiceUtilsForEObject;
+import org.eclipse.papyrus.infra.nattable.Activator;
+import org.eclipse.papyrus.infra.nattable.model.nattable.Table;
+import org.eclipse.papyrus.infra.viewpoints.policy.ViewPrototype;
+
+
+/**
+ * Represents the handler for the creation of table defined in a viewpoint
+ * @author Laurent Wouters
+ */
+public class PolicyDefinedTableHandler extends CreateNatTableEditorHandler {
+ private URI configuration;
+ private EObject context;
+ private String name;
+
+ public PolicyDefinedTableHandler(URI config, EObject context, String name) {
+ this.configuration = config;
+ this.context = context;
+ this.name = name;
+ }
+
+ @Override
+ protected EObject getTableContext() {
+ return context;
+ }
+
+ @Override
+ protected URI getTableEditorConfigurationURI() {
+ return configuration;
+ }
+
+ public boolean execute(final ViewPrototype prototype) {
+ final String name = this.name != null ? this.name : askName();
+ if (name == null)
+ return false;
+ try {
+ final ServicesRegistry serviceRegistry = ServiceUtilsForEObject.getInstance().getServiceRegistry(context);
+ final TransactionalEditingDomain domain = ServiceUtils.getInstance().getTransactionalEditingDomain(serviceRegistry);
+ domain.getCommandStack().execute(new RecordingCommand(domain) {
+ @Override
+ protected void doExecute() {
+ try {
+ Table table = PolicyDefinedTableHandler.this.doExecute(serviceRegistry, name, this.description);
+ table.setOwner(context);
+ table.setPrototype(prototype.getConfiguration());
+ } catch (Exception ex) {
+ Activator.log.error(ex);
+ }
+ }
+ });
+ return true;
+ } catch (Exception ex) {
+ Activator.log.error(ex);
+ return false;
+ }
+ }
+}
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.common/src/org/eclipse/papyrus/infra/nattable/common/helper/SyncTableCommandHelper.java b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.common/src/org/eclipse/papyrus/infra/nattable/common/helper/SyncTableCommandHelper.java
new file mode 100755
index 00000000000..6993609538c
--- /dev/null
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.common/src/org/eclipse/papyrus/infra/nattable/common/helper/SyncTableCommandHelper.java
@@ -0,0 +1,112 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.nattable.common.helper;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtension;
+import org.eclipse.core.runtime.IExtensionPoint;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.infra.nattable.model.nattable.Table;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusSyncTable;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusView;
+import org.eclipse.papyrus.infra.viewpoints.policy.IViewTypeHelper;
+import org.eclipse.papyrus.infra.viewpoints.policy.ViewPrototype;
+
+/**
+ * Represents the command helper for the viewpoints application to synchronized tables
+ * @author Laurent Wouters
+ */
+public class SyncTableCommandHelper implements IViewTypeHelper {
+ /**
+ * ID of the extension point for Papyrus diagrams
+ */
+ private static final String EXTENSION_PAPYRUS_SYNC_TABLE = "org.eclipse.papyrus.infra.nattable.configuration";
+
+ /**
+ * The cache of implementations
+ */
+ private Map<String, String> implementations;
+
+ /**
+ * The cache of prototypes
+ */
+ private Map<PapyrusView, TableViewPrototype> cache;
+
+
+
+ @Override
+ public ViewPrototype getPrototypeFor(PapyrusView configuration) {
+ if (!(configuration instanceof PapyrusSyncTable))
+ return null;
+ if (implementations == null)
+ buildImplementationCache();
+ if (cache == null)
+ cache = new HashMap<PapyrusView, TableViewPrototype>();
+ if (cache.containsKey(configuration))
+ return cache.get(configuration);
+ if (!implementations.containsKey(configuration.getImplementationID()))
+ return null;
+ TableViewPrototype proto = new TableViewPrototype((PapyrusSyncTable)configuration, implementations.get(configuration.getImplementationID()));
+ cache.put(configuration, proto);
+ return proto;
+ }
+
+ @Override
+ public boolean isSupported(EClass type) {
+ return (type == ConfigurationPackage.eINSTANCE.getPapyrusSyncTable());
+ }
+
+ @Override
+ public boolean isSupported(EObject view) {
+ if (!(view instanceof Table))
+ return false;
+ Table table = (Table)view;
+ return (table.getPrototype() instanceof PapyrusSyncTable);
+ }
+
+ @Override
+ public ViewPrototype getPrototypeOf(EObject view) {
+ return getPrototypeFor((PapyrusView)((Table)view).getPrototype());
+ }
+
+ /**
+ * Builds the cache of sync table implementations
+ */
+ private void buildImplementationCache() {
+ implementations = new HashMap<String, String>();
+ IExtensionRegistry registry = Platform.getExtensionRegistry();
+ IExtensionPoint point = registry.getExtensionPoint(EXTENSION_PAPYRUS_SYNC_TABLE);
+ IExtension[] extensions = point.getExtensions();
+ for (int i=0; i!=extensions.length; i++) {
+ IConfigurationElement[] elements = extensions[i].getConfigurationElements();
+ for (int j=0; j!=elements.length; j++) {
+ if (elements[j].getName().equals("configuration")) {
+ String type = elements[j].getAttribute("type");
+ String file = elements[j].getAttribute("file");
+ if (!file.startsWith("platform:/"))
+ file = "platform:/plugin/" + extensions[i].getContributor().getName() + "/" + file;
+ if (!implementations.containsKey(type))
+ implementations.put(type, file);
+ }
+ }
+ }
+ }
+}
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.common/src/org/eclipse/papyrus/infra/nattable/common/helper/TableCommandHelper.java b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.common/src/org/eclipse/papyrus/infra/nattable/common/helper/TableCommandHelper.java
new file mode 100755
index 00000000000..29fdab48711
--- /dev/null
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.common/src/org/eclipse/papyrus/infra/nattable/common/helper/TableCommandHelper.java
@@ -0,0 +1,69 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.nattable.common.helper;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.infra.nattable.model.nattable.Table;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusTable;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusView;
+import org.eclipse.papyrus.infra.viewpoints.policy.IViewTypeHelper;
+import org.eclipse.papyrus.infra.viewpoints.policy.ViewPrototype;
+
+/**
+ * Represents the command helper for viewpoints-based generic tables
+ * @author Laurent Wouters
+ */
+public class TableCommandHelper implements IViewTypeHelper {
+
+ /**
+ * The cache of prototypes
+ */
+ private Map<PapyrusView, TableViewPrototype> cache;
+
+ @Override
+ public ViewPrototype getPrototypeFor(PapyrusView configuration) {
+ if (!(configuration instanceof PapyrusTable))
+ return null;
+ if (cache == null)
+ cache = new HashMap<PapyrusView, TableViewPrototype>();
+ if (cache.containsKey(configuration))
+ return cache.get(configuration);
+ TableViewPrototype proto = new TableViewPrototype((PapyrusTable)configuration);
+ cache.put(configuration, proto);
+ return proto;
+ }
+
+ @Override
+ public boolean isSupported(EClass type) {
+ return (type == ConfigurationPackage.eINSTANCE.getPapyrusTable());
+ }
+
+ @Override
+ public boolean isSupported(EObject view) {
+ if (!(view instanceof Table))
+ return false;
+ Table table = (Table)view;
+ return (table.getPrototype() instanceof PapyrusTable);
+ }
+
+ @Override
+ public ViewPrototype getPrototypeOf(EObject view) {
+ return getPrototypeFor((PapyrusView)((Table)view).getPrototype());
+ }
+}
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.common/src/org/eclipse/papyrus/infra/nattable/common/helper/TableViewPrototype.java b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.common/src/org/eclipse/papyrus/infra/nattable/common/helper/TableViewPrototype.java
new file mode 100755
index 00000000000..739ed4b040c
--- /dev/null
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.common/src/org/eclipse/papyrus/infra/nattable/common/helper/TableViewPrototype.java
@@ -0,0 +1,107 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.nattable.common.helper;
+
+import org.eclipse.emf.common.command.AbstractCommand;
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.infra.nattable.common.handlers.PolicyDefinedTableHandler;
+import org.eclipse.papyrus.infra.nattable.model.nattable.Table;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusSyncTable;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusTable;
+import org.eclipse.papyrus.infra.viewpoints.policy.ViewPrototype;
+
+
+/**
+ * Represents the prototype of a table defined in a viewpoint
+ * @author Laurent Wouters
+ */
+public class TableViewPrototype extends ViewPrototype {
+ private URI configFile;
+
+ public TableViewPrototype(PapyrusTable configuration) {
+ super(configuration);
+ configFile = URI.createURI(configuration.getConfiguration());
+ }
+
+ public TableViewPrototype(PapyrusSyncTable configuration, String file) {
+ super(configuration);
+ configFile = URI.createURI(file);
+ }
+
+ @Override
+ public boolean isOwnerReassignable() {
+ return true;
+ }
+
+ @Override
+ public boolean instantiateOn(EObject owner) {
+ return instantiateOn(owner, null);
+ }
+
+ @Override
+ public boolean instantiateOn(EObject owner, String name) {
+ if (configFile == null)
+ return false;
+ PolicyDefinedTableHandler handler = new PolicyDefinedTableHandler(configFile, owner, name);
+ return handler.execute(this);
+ }
+
+ @Override
+ public Command getCommandChangeOwner(EObject view, final EObject target) {
+ final Table table = (Table)view;
+ final EObject previous = table.getOwner();
+ return new AbstractCommand("Change table owner") {
+ @Override
+ public void execute() {
+ table.setOwner(target);
+ }
+ @Override
+ public void redo() {
+ table.setOwner(previous);
+ }
+ @Override
+ protected boolean prepare() { return true; }
+ };
+ }
+
+ @Override
+ public Command getCommandChangeRoot(EObject view, final EObject target) {
+ final Table table = (Table)view;
+ final EObject previous = table.getContext();
+ return new AbstractCommand("Change table root element") {
+ @Override
+ public void execute() {
+ table.setContext(target);
+ }
+ @Override
+ public void redo() {
+ table.setContext(previous);
+ }
+ @Override
+ protected boolean prepare() { return true; }
+ };
+ }
+
+ @Override
+ public EObject getOwnerOf(EObject view) {
+ return ((Table)view).getOwner();
+ }
+
+ @Override
+ public EObject getRootOf(EObject view) {
+ return ((Table)view).getContext();
+ }
+}
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.model/model/nattable.ecore b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.model/model/nattable.ecore
index 3ae73ec801c..0157539f8c1 100644
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.model/model/nattable.ecore
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.model/model/nattable.ecore
@@ -28,6 +28,9 @@
<details key="documentation" value="The context is used for two things : &#xD;&#xA;&lt;ul> &lt;li>&quot;virtual&quot; parent to display the table in the Papyrus Model Explorer &lt;/li>&#xD;&#xA;&lt;li>container of the objects created in the table&lt;/li>&#xD;&#xA;&lt;/ul> &#xD;&#xA;The context can't be null;"/>
</eAnnotations>
</eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="owner" lowerBound="1" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="prototype" lowerBound="1"
+ eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="tableConfiguration" lowerBound="1"
eType="#//nattableconfiguration/TableConfiguration">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.model/src-gen/org/eclipse/papyrus/infra/nattable/model/nattable/NattablePackage.java b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.model/src-gen/org/eclipse/papyrus/infra/nattable/model/nattable/NattablePackage.java
index b5cdff2b4d7..deb5ac39691 100644
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.model/src-gen/org/eclipse/papyrus/infra/nattable/model/nattable/NattablePackage.java
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.model/src-gen/org/eclipse/papyrus/infra/nattable/model/nattable/NattablePackage.java
@@ -129,6 +129,24 @@ public interface NattablePackage extends EPackage {
int TABLE__CONTEXT = NattableconfigurationPackage.TABLE_NAMED_ELEMENT_FEATURE_COUNT + 0;
/**
+ * The feature id for the '<em><b>Owner</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TABLE__OWNER = NattableconfigurationPackage.TABLE_NAMED_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Prototype</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TABLE__PROTOTYPE = NattableconfigurationPackage.TABLE_NAMED_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
* The feature id for the '<em><b>Table Configuration</b></em>' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -136,7 +154,7 @@ public interface NattablePackage extends EPackage {
* @generated
* @ordered
*/
- int TABLE__TABLE_CONFIGURATION = NattableconfigurationPackage.TABLE_NAMED_ELEMENT_FEATURE_COUNT + 1;
+ int TABLE__TABLE_CONFIGURATION = NattableconfigurationPackage.TABLE_NAMED_ELEMENT_FEATURE_COUNT + 3;
/**
* The feature id for the '<em><b>Invert Axis</b></em>' attribute.
@@ -146,7 +164,7 @@ public interface NattablePackage extends EPackage {
* @generated
* @ordered
*/
- int TABLE__INVERT_AXIS = NattableconfigurationPackage.TABLE_NAMED_ELEMENT_FEATURE_COUNT + 2;
+ int TABLE__INVERT_AXIS = NattableconfigurationPackage.TABLE_NAMED_ELEMENT_FEATURE_COUNT + 4;
/**
* The feature id for the '<em><b>Column Axis Providers History</b></em>' containment reference list.
@@ -156,7 +174,7 @@ public interface NattablePackage extends EPackage {
* @generated
* @ordered
*/
- int TABLE__COLUMN_AXIS_PROVIDERS_HISTORY = NattableconfigurationPackage.TABLE_NAMED_ELEMENT_FEATURE_COUNT + 3;
+ int TABLE__COLUMN_AXIS_PROVIDERS_HISTORY = NattableconfigurationPackage.TABLE_NAMED_ELEMENT_FEATURE_COUNT + 5;
/**
* The feature id for the '<em><b>Row Axis Providers History</b></em>' containment reference list.
@@ -166,7 +184,7 @@ public interface NattablePackage extends EPackage {
* @generated
* @ordered
*/
- int TABLE__ROW_AXIS_PROVIDERS_HISTORY = NattableconfigurationPackage.TABLE_NAMED_ELEMENT_FEATURE_COUNT + 4;
+ int TABLE__ROW_AXIS_PROVIDERS_HISTORY = NattableconfigurationPackage.TABLE_NAMED_ELEMENT_FEATURE_COUNT + 6;
/**
* The feature id for the '<em><b>Local Row Header Axis Configuration</b></em>' containment reference.
@@ -176,7 +194,7 @@ public interface NattablePackage extends EPackage {
* @generated
* @ordered
*/
- int TABLE__LOCAL_ROW_HEADER_AXIS_CONFIGURATION = NattableconfigurationPackage.TABLE_NAMED_ELEMENT_FEATURE_COUNT + 5;
+ int TABLE__LOCAL_ROW_HEADER_AXIS_CONFIGURATION = NattableconfigurationPackage.TABLE_NAMED_ELEMENT_FEATURE_COUNT + 7;
/**
* The feature id for the '<em><b>Local Column Header Axis Configuration</b></em>' containment reference.
@@ -186,7 +204,7 @@ public interface NattablePackage extends EPackage {
* @generated
* @ordered
*/
- int TABLE__LOCAL_COLUMN_HEADER_AXIS_CONFIGURATION = NattableconfigurationPackage.TABLE_NAMED_ELEMENT_FEATURE_COUNT + 6;
+ int TABLE__LOCAL_COLUMN_HEADER_AXIS_CONFIGURATION = NattableconfigurationPackage.TABLE_NAMED_ELEMENT_FEATURE_COUNT + 8;
/**
* The feature id for the '<em><b>Current Row Axis Provider</b></em>' reference.
@@ -196,7 +214,7 @@ public interface NattablePackage extends EPackage {
* @generated
* @ordered
*/
- int TABLE__CURRENT_ROW_AXIS_PROVIDER = NattableconfigurationPackage.TABLE_NAMED_ELEMENT_FEATURE_COUNT + 7;
+ int TABLE__CURRENT_ROW_AXIS_PROVIDER = NattableconfigurationPackage.TABLE_NAMED_ELEMENT_FEATURE_COUNT + 9;
/**
* The feature id for the '<em><b>Current Column Axis Provider</b></em>' reference.
@@ -206,7 +224,7 @@ public interface NattablePackage extends EPackage {
* @generated
* @ordered
*/
- int TABLE__CURRENT_COLUMN_AXIS_PROVIDER = NattableconfigurationPackage.TABLE_NAMED_ELEMENT_FEATURE_COUNT + 8;
+ int TABLE__CURRENT_COLUMN_AXIS_PROVIDER = NattableconfigurationPackage.TABLE_NAMED_ELEMENT_FEATURE_COUNT + 10;
/**
* The feature id for the '<em><b>Cells</b></em>' containment reference list.
@@ -216,7 +234,7 @@ public interface NattablePackage extends EPackage {
* @generated
* @ordered
*/
- int TABLE__CELLS = NattableconfigurationPackage.TABLE_NAMED_ELEMENT_FEATURE_COUNT + 9;
+ int TABLE__CELLS = NattableconfigurationPackage.TABLE_NAMED_ELEMENT_FEATURE_COUNT + 11;
/**
* The number of structural features of the '<em>Table</em>' class.
@@ -226,7 +244,7 @@ public interface NattablePackage extends EPackage {
* @generated
* @ordered
*/
- int TABLE_FEATURE_COUNT = NattableconfigurationPackage.TABLE_NAMED_ELEMENT_FEATURE_COUNT + 10;
+ int TABLE_FEATURE_COUNT = NattableconfigurationPackage.TABLE_NAMED_ELEMENT_FEATURE_COUNT + 12;
/**
* The operation id for the '<em>Get EAnnotation</em>' operation.
@@ -273,8 +291,29 @@ public interface NattablePackage extends EPackage {
EReference getTable_Context();
/**
- * Returns the meta object for the reference '{@link org.eclipse.papyrus.infra.nattable.model.nattable.Table#getTableConfiguration
- * <em>Table Configuration</em>}'.
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.infra.nattable.model.nattable.Table#getOwner <em>Owner</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Owner</em>'.
+ * @see org.eclipse.papyrus.infra.nattable.model.nattable.Table#getOwner()
+ * @see #getTable()
+ * @generated
+ */
+ EReference getTable_Owner();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.infra.nattable.model.nattable.Table#getPrototype <em>Prototype</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Prototype</em>'.
+ * @see org.eclipse.papyrus.infra.nattable.model.nattable.Table#getPrototype()
+ * @see #getTable()
+ * @generated
+ */
+ EReference getTable_Prototype();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.infra.nattable.model.nattable.Table#getTableConfiguration <em>Table Configuration</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
*
@@ -437,6 +476,22 @@ public interface NattablePackage extends EPackage {
EReference TABLE__CONTEXT = eINSTANCE.getTable_Context();
/**
+ * The meta object literal for the '<em><b>Owner</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TABLE__OWNER = eINSTANCE.getTable_Owner();
+
+ /**
+ * The meta object literal for the '<em><b>Prototype</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TABLE__PROTOTYPE = eINSTANCE.getTable_Prototype();
+
+ /**
* The meta object literal for the '<em><b>Table Configuration</b></em>' reference feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.model/src-gen/org/eclipse/papyrus/infra/nattable/model/nattable/Table.java b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.model/src-gen/org/eclipse/papyrus/infra/nattable/model/nattable/Table.java
index 0694ecb41f1..fca2385350f 100644
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.model/src-gen/org/eclipse/papyrus/infra/nattable/model/nattable/Table.java
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.model/src-gen/org/eclipse/papyrus/infra/nattable/model/nattable/Table.java
@@ -38,18 +38,18 @@ import org.eclipse.papyrus.infra.nattable.model.nattable.nattableconfiguration.T
* <p>
* The following features are supported:
* <ul>
- * <li>{@link org.eclipse.papyrus.infra.nattable.model.nattable.Table#getContext <em>Context</em>}</li>
- * <li>{@link org.eclipse.papyrus.infra.nattable.model.nattable.Table#getTableConfiguration <em>Table Configuration</em>}</li>
- * <li>{@link org.eclipse.papyrus.infra.nattable.model.nattable.Table#isInvertAxis <em>Invert Axis</em>}</li>
- * <li>{@link org.eclipse.papyrus.infra.nattable.model.nattable.Table#getColumnAxisProvidersHistory <em>Column Axis Providers History</em>}</li>
- * <li>{@link org.eclipse.papyrus.infra.nattable.model.nattable.Table#getRowAxisProvidersHistory <em>Row Axis Providers History</em>}</li>
- * <li>{@link org.eclipse.papyrus.infra.nattable.model.nattable.Table#getLocalRowHeaderAxisConfiguration <em>Local Row Header Axis Configuration</em>}
- * </li>
- * <li>{@link org.eclipse.papyrus.infra.nattable.model.nattable.Table#getLocalColumnHeaderAxisConfiguration <em>Local Column Header Axis Configuration
- * </em>}</li>
- * <li>{@link org.eclipse.papyrus.infra.nattable.model.nattable.Table#getCurrentRowAxisProvider <em>Current Row Axis Provider</em>}</li>
- * <li>{@link org.eclipse.papyrus.infra.nattable.model.nattable.Table#getCurrentColumnAxisProvider <em>Current Column Axis Provider</em>}</li>
- * <li>{@link org.eclipse.papyrus.infra.nattable.model.nattable.Table#getCells <em>Cells</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.nattable.model.nattable.Table#getContext <em>Context</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.nattable.model.nattable.Table#getOwner <em>Owner</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.nattable.model.nattable.Table#getPrototype <em>Prototype</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.nattable.model.nattable.Table#getTableConfiguration <em>Table Configuration</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.nattable.model.nattable.Table#isInvertAxis <em>Invert Axis</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.nattable.model.nattable.Table#getColumnAxisProvidersHistory <em>Column Axis Providers History</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.nattable.model.nattable.Table#getRowAxisProvidersHistory <em>Row Axis Providers History</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.nattable.model.nattable.Table#getLocalRowHeaderAxisConfiguration <em>Local Row Header Axis Configuration</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.nattable.model.nattable.Table#getLocalColumnHeaderAxisConfiguration <em>Local Column Header Axis Configuration</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.nattable.model.nattable.Table#getCurrentRowAxisProvider <em>Current Row Axis Provider</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.nattable.model.nattable.Table#getCurrentColumnAxisProvider <em>Current Column Axis Provider</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.nattable.model.nattable.Table#getCells <em>Cells</em>}</li>
* </ul>
* </p>
*
@@ -95,6 +95,58 @@ public interface Table extends TableNamedElement {
void setContext(EObject value);
/**
+ * Returns the value of the '<em><b>Owner</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Owner</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Owner</em>' reference.
+ * @see #setOwner(EObject)
+ * @see org.eclipse.papyrus.infra.nattable.model.nattable.NattablePackage#getTable_Owner()
+ * @model required="true"
+ * @generated
+ */
+ EObject getOwner();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.infra.nattable.model.nattable.Table#getOwner <em>Owner</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Owner</em>' reference.
+ * @see #getOwner()
+ * @generated
+ */
+ void setOwner(EObject value);
+
+ /**
+ * Returns the value of the '<em><b>Prototype</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Prototype</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Prototype</em>' reference.
+ * @see #setPrototype(EObject)
+ * @see org.eclipse.papyrus.infra.nattable.model.nattable.NattablePackage#getTable_Prototype()
+ * @model required="true"
+ * @generated
+ */
+ EObject getPrototype();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.infra.nattable.model.nattable.Table#getPrototype <em>Prototype</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Prototype</em>' reference.
+ * @see #getPrototype()
+ * @generated
+ */
+ void setPrototype(EObject value);
+
+ /**
* Returns the value of the '<em><b>Table Configuration</b></em>' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.model/src-gen/org/eclipse/papyrus/infra/nattable/model/nattable/impl/NattablePackageImpl.java b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.model/src-gen/org/eclipse/papyrus/infra/nattable/model/nattable/impl/NattablePackageImpl.java
index ebd416ddfe4..637253097f6 100644
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.model/src-gen/org/eclipse/papyrus/infra/nattable/model/nattable/impl/NattablePackageImpl.java
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.model/src-gen/org/eclipse/papyrus/infra/nattable/model/nattable/impl/NattablePackageImpl.java
@@ -196,18 +196,35 @@ public class NattablePackageImpl extends EPackageImpl implements NattablePackage
*
* @generated
*/
- public EReference getTable_TableConfiguration() {
+ public EReference getTable_Owner() {
return (EReference)tableEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- *
+ * @generated
+ */
+ public EReference getTable_Prototype() {
+ return (EReference)tableEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTable_TableConfiguration() {
+ return (EReference)tableEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
* @generated
*/
public EAttribute getTable_InvertAxis() {
- return (EAttribute)tableEClass.getEStructuralFeatures().get(2);
+ return (EAttribute)tableEClass.getEStructuralFeatures().get(4);
}
/**
@@ -217,7 +234,7 @@ public class NattablePackageImpl extends EPackageImpl implements NattablePackage
* @generated
*/
public EReference getTable_ColumnAxisProvidersHistory() {
- return (EReference)tableEClass.getEStructuralFeatures().get(3);
+ return (EReference)tableEClass.getEStructuralFeatures().get(5);
}
/**
@@ -227,7 +244,7 @@ public class NattablePackageImpl extends EPackageImpl implements NattablePackage
* @generated
*/
public EReference getTable_RowAxisProvidersHistory() {
- return (EReference)tableEClass.getEStructuralFeatures().get(4);
+ return (EReference)tableEClass.getEStructuralFeatures().get(6);
}
/**
@@ -237,7 +254,7 @@ public class NattablePackageImpl extends EPackageImpl implements NattablePackage
* @generated
*/
public EReference getTable_LocalRowHeaderAxisConfiguration() {
- return (EReference)tableEClass.getEStructuralFeatures().get(5);
+ return (EReference)tableEClass.getEStructuralFeatures().get(7);
}
/**
@@ -247,7 +264,7 @@ public class NattablePackageImpl extends EPackageImpl implements NattablePackage
* @generated
*/
public EReference getTable_LocalColumnHeaderAxisConfiguration() {
- return (EReference)tableEClass.getEStructuralFeatures().get(6);
+ return (EReference)tableEClass.getEStructuralFeatures().get(8);
}
/**
@@ -257,7 +274,7 @@ public class NattablePackageImpl extends EPackageImpl implements NattablePackage
* @generated
*/
public EReference getTable_CurrentRowAxisProvider() {
- return (EReference)tableEClass.getEStructuralFeatures().get(7);
+ return (EReference)tableEClass.getEStructuralFeatures().get(9);
}
/**
@@ -267,7 +284,7 @@ public class NattablePackageImpl extends EPackageImpl implements NattablePackage
* @generated
*/
public EReference getTable_CurrentColumnAxisProvider() {
- return (EReference)tableEClass.getEStructuralFeatures().get(8);
+ return (EReference)tableEClass.getEStructuralFeatures().get(10);
}
/**
@@ -277,7 +294,7 @@ public class NattablePackageImpl extends EPackageImpl implements NattablePackage
* @generated
*/
public EReference getTable_Cells() {
- return (EReference)tableEClass.getEStructuralFeatures().get(9);
+ return (EReference)tableEClass.getEStructuralFeatures().get(11);
}
/**
@@ -314,6 +331,8 @@ public class NattablePackageImpl extends EPackageImpl implements NattablePackage
// Create classes and their features
tableEClass = createEClass(TABLE);
createEReference(tableEClass, TABLE__CONTEXT);
+ createEReference(tableEClass, TABLE__OWNER);
+ createEReference(tableEClass, TABLE__PROTOTYPE);
createEReference(tableEClass, TABLE__TABLE_CONFIGURATION);
createEAttribute(tableEClass, TABLE__INVERT_AXIS);
createEReference(tableEClass, TABLE__COLUMN_AXIS_PROVIDERS_HISTORY);
@@ -381,6 +400,8 @@ public class NattablePackageImpl extends EPackageImpl implements NattablePackage
// Initialize classes, features, and operations; add parameters
initEClass(tableEClass, Table.class, "Table", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
initEReference(getTable_Context(), ecorePackage.getEObject(), null, "context", null, 1, 1, Table.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getTable_Owner(), ecorePackage.getEObject(), null, "owner", null, 1, 1, Table.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getTable_Prototype(), ecorePackage.getEObject(), null, "prototype", null, 1, 1, Table.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
initEReference(getTable_TableConfiguration(), theNattableconfigurationPackage.getTableConfiguration(), null, "tableConfiguration", null, 1, 1, Table.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
initEAttribute(getTable_InvertAxis(), ecorePackage.getEBoolean(), "invertAxis", "false", 1, 1, Table.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
initEReference(getTable_ColumnAxisProvidersHistory(), theNattableaxisproviderPackage.getAbstractAxisProvider(), null, "columnAxisProvidersHistory", null, 1, -1, Table.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.model/src-gen/org/eclipse/papyrus/infra/nattable/model/nattable/impl/TableImpl.java b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.model/src-gen/org/eclipse/papyrus/infra/nattable/model/nattable/impl/TableImpl.java
index 91e14488181..30e3f6f3b03 100644
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.model/src-gen/org/eclipse/papyrus/infra/nattable/model/nattable/impl/TableImpl.java
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.model/src-gen/org/eclipse/papyrus/infra/nattable/model/nattable/impl/TableImpl.java
@@ -47,18 +47,18 @@ import org.eclipse.papyrus.infra.nattable.model.nattable.nattableconfiguration.i
* <p>
* The following features are implemented:
* <ul>
- * <li>{@link org.eclipse.papyrus.infra.nattable.model.nattable.impl.TableImpl#getContext <em>Context</em>}</li>
- * <li>{@link org.eclipse.papyrus.infra.nattable.model.nattable.impl.TableImpl#getTableConfiguration <em>Table Configuration</em>}</li>
- * <li>{@link org.eclipse.papyrus.infra.nattable.model.nattable.impl.TableImpl#isInvertAxis <em>Invert Axis</em>}</li>
- * <li>{@link org.eclipse.papyrus.infra.nattable.model.nattable.impl.TableImpl#getColumnAxisProvidersHistory <em>Column Axis Providers History</em>}</li>
- * <li>{@link org.eclipse.papyrus.infra.nattable.model.nattable.impl.TableImpl#getRowAxisProvidersHistory <em>Row Axis Providers History</em>}</li>
- * <li>{@link org.eclipse.papyrus.infra.nattable.model.nattable.impl.TableImpl#getLocalRowHeaderAxisConfiguration <em>Local Row Header Axis
- * Configuration</em>}</li>
- * <li>{@link org.eclipse.papyrus.infra.nattable.model.nattable.impl.TableImpl#getLocalColumnHeaderAxisConfiguration <em>Local Column Header Axis
- * Configuration</em>}</li>
- * <li>{@link org.eclipse.papyrus.infra.nattable.model.nattable.impl.TableImpl#getCurrentRowAxisProvider <em>Current Row Axis Provider</em>}</li>
- * <li>{@link org.eclipse.papyrus.infra.nattable.model.nattable.impl.TableImpl#getCurrentColumnAxisProvider <em>Current Column Axis Provider</em>}</li>
- * <li>{@link org.eclipse.papyrus.infra.nattable.model.nattable.impl.TableImpl#getCells <em>Cells</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.nattable.model.nattable.impl.TableImpl#getContext <em>Context</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.nattable.model.nattable.impl.TableImpl#getOwner <em>Owner</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.nattable.model.nattable.impl.TableImpl#getPrototype <em>Prototype</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.nattable.model.nattable.impl.TableImpl#getTableConfiguration <em>Table Configuration</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.nattable.model.nattable.impl.TableImpl#isInvertAxis <em>Invert Axis</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.nattable.model.nattable.impl.TableImpl#getColumnAxisProvidersHistory <em>Column Axis Providers History</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.nattable.model.nattable.impl.TableImpl#getRowAxisProvidersHistory <em>Row Axis Providers History</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.nattable.model.nattable.impl.TableImpl#getLocalRowHeaderAxisConfiguration <em>Local Row Header Axis Configuration</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.nattable.model.nattable.impl.TableImpl#getLocalColumnHeaderAxisConfiguration <em>Local Column Header Axis Configuration</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.nattable.model.nattable.impl.TableImpl#getCurrentRowAxisProvider <em>Current Row Axis Provider</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.nattable.model.nattable.impl.TableImpl#getCurrentColumnAxisProvider <em>Current Column Axis Provider</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.nattable.model.nattable.impl.TableImpl#getCells <em>Cells</em>}</li>
* </ul>
* </p>
*
@@ -78,6 +78,26 @@ public class TableImpl extends TableNamedElementImpl implements Table {
protected EObject context;
/**
+ * The cached value of the '{@link #getOwner() <em>Owner</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOwner()
+ * @generated
+ * @ordered
+ */
+ protected EObject owner;
+
+ /**
+ * The cached value of the '{@link #getPrototype() <em>Prototype</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPrototype()
+ * @generated
+ * @ordered
+ */
+ protected EObject prototype;
+
+ /**
* The cached value of the '{@link #getTableConfiguration() <em>Table Configuration</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -253,7 +273,82 @@ public class TableImpl extends TableNamedElementImpl implements Table {
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- *
+ * @generated
+ */
+ public EObject getOwner() {
+ if (owner != null && owner.eIsProxy()) {
+ InternalEObject oldOwner = (InternalEObject)owner;
+ owner = eResolveProxy(oldOwner);
+ if (owner != oldOwner) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, NattablePackage.TABLE__OWNER, oldOwner, owner));
+ }
+ }
+ return owner;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EObject basicGetOwner() {
+ return owner;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOwner(EObject newOwner) {
+ EObject oldOwner = owner;
+ owner = newOwner;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, NattablePackage.TABLE__OWNER, oldOwner, owner));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EObject getPrototype() {
+ if (prototype != null && prototype.eIsProxy()) {
+ InternalEObject oldPrototype = (InternalEObject)prototype;
+ prototype = eResolveProxy(oldPrototype);
+ if (prototype != oldPrototype) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, NattablePackage.TABLE__PROTOTYPE, oldPrototype, prototype));
+ }
+ }
+ return prototype;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EObject basicGetPrototype() {
+ return prototype;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPrototype(EObject newPrototype) {
+ EObject oldPrototype = prototype;
+ prototype = newPrototype;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, NattablePackage.TABLE__PROTOTYPE, oldPrototype, prototype));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
* @generated
*/
public TableConfiguration getTableConfiguration() {
@@ -564,35 +659,37 @@ public class TableImpl extends TableNamedElementImpl implements Table {
*/
@Override
public Object eGet(int featureID, boolean resolve, boolean coreType) {
- switch(featureID) {
- case NattablePackage.TABLE__CONTEXT:
- if(resolve)
- return getContext();
- return basicGetContext();
- case NattablePackage.TABLE__TABLE_CONFIGURATION:
- if(resolve)
- return getTableConfiguration();
- return basicGetTableConfiguration();
- case NattablePackage.TABLE__INVERT_AXIS:
- return isInvertAxis();
- case NattablePackage.TABLE__COLUMN_AXIS_PROVIDERS_HISTORY:
- return getColumnAxisProvidersHistory();
- case NattablePackage.TABLE__ROW_AXIS_PROVIDERS_HISTORY:
- return getRowAxisProvidersHistory();
- case NattablePackage.TABLE__LOCAL_ROW_HEADER_AXIS_CONFIGURATION:
- return getLocalRowHeaderAxisConfiguration();
- case NattablePackage.TABLE__LOCAL_COLUMN_HEADER_AXIS_CONFIGURATION:
- return getLocalColumnHeaderAxisConfiguration();
- case NattablePackage.TABLE__CURRENT_ROW_AXIS_PROVIDER:
- if(resolve)
- return getCurrentRowAxisProvider();
- return basicGetCurrentRowAxisProvider();
- case NattablePackage.TABLE__CURRENT_COLUMN_AXIS_PROVIDER:
- if(resolve)
- return getCurrentColumnAxisProvider();
- return basicGetCurrentColumnAxisProvider();
- case NattablePackage.TABLE__CELLS:
- return getCells();
+ switch (featureID) {
+ case NattablePackage.TABLE__CONTEXT:
+ if (resolve) return getContext();
+ return basicGetContext();
+ case NattablePackage.TABLE__OWNER:
+ if (resolve) return getOwner();
+ return basicGetOwner();
+ case NattablePackage.TABLE__PROTOTYPE:
+ if (resolve) return getPrototype();
+ return basicGetPrototype();
+ case NattablePackage.TABLE__TABLE_CONFIGURATION:
+ if (resolve) return getTableConfiguration();
+ return basicGetTableConfiguration();
+ case NattablePackage.TABLE__INVERT_AXIS:
+ return isInvertAxis();
+ case NattablePackage.TABLE__COLUMN_AXIS_PROVIDERS_HISTORY:
+ return getColumnAxisProvidersHistory();
+ case NattablePackage.TABLE__ROW_AXIS_PROVIDERS_HISTORY:
+ return getRowAxisProvidersHistory();
+ case NattablePackage.TABLE__LOCAL_ROW_HEADER_AXIS_CONFIGURATION:
+ return getLocalRowHeaderAxisConfiguration();
+ case NattablePackage.TABLE__LOCAL_COLUMN_HEADER_AXIS_CONFIGURATION:
+ return getLocalColumnHeaderAxisConfiguration();
+ case NattablePackage.TABLE__CURRENT_ROW_AXIS_PROVIDER:
+ if (resolve) return getCurrentRowAxisProvider();
+ return basicGetCurrentRowAxisProvider();
+ case NattablePackage.TABLE__CURRENT_COLUMN_AXIS_PROVIDER:
+ if (resolve) return getCurrentColumnAxisProvider();
+ return basicGetCurrentColumnAxisProvider();
+ case NattablePackage.TABLE__CELLS:
+ return getCells();
}
return super.eGet(featureID, resolve, coreType);
}
@@ -606,40 +703,46 @@ public class TableImpl extends TableNamedElementImpl implements Table {
@SuppressWarnings("unchecked")
@Override
public void eSet(int featureID, Object newValue) {
- switch(featureID) {
- case NattablePackage.TABLE__CONTEXT:
- setContext((EObject)newValue);
- return;
- case NattablePackage.TABLE__TABLE_CONFIGURATION:
- setTableConfiguration((TableConfiguration)newValue);
- return;
- case NattablePackage.TABLE__INVERT_AXIS:
- setInvertAxis((Boolean)newValue);
- return;
- case NattablePackage.TABLE__COLUMN_AXIS_PROVIDERS_HISTORY:
- getColumnAxisProvidersHistory().clear();
- getColumnAxisProvidersHistory().addAll((Collection<? extends AbstractAxisProvider>)newValue);
- return;
- case NattablePackage.TABLE__ROW_AXIS_PROVIDERS_HISTORY:
- getRowAxisProvidersHistory().clear();
- getRowAxisProvidersHistory().addAll((Collection<? extends AbstractAxisProvider>)newValue);
- return;
- case NattablePackage.TABLE__LOCAL_ROW_HEADER_AXIS_CONFIGURATION:
- setLocalRowHeaderAxisConfiguration((LocalTableHeaderAxisConfiguration)newValue);
- return;
- case NattablePackage.TABLE__LOCAL_COLUMN_HEADER_AXIS_CONFIGURATION:
- setLocalColumnHeaderAxisConfiguration((LocalTableHeaderAxisConfiguration)newValue);
- return;
- case NattablePackage.TABLE__CURRENT_ROW_AXIS_PROVIDER:
- setCurrentRowAxisProvider((AbstractAxisProvider)newValue);
- return;
- case NattablePackage.TABLE__CURRENT_COLUMN_AXIS_PROVIDER:
- setCurrentColumnAxisProvider((AbstractAxisProvider)newValue);
- return;
- case NattablePackage.TABLE__CELLS:
- getCells().clear();
- getCells().addAll((Collection<? extends Cell>)newValue);
- return;
+ switch (featureID) {
+ case NattablePackage.TABLE__CONTEXT:
+ setContext((EObject)newValue);
+ return;
+ case NattablePackage.TABLE__OWNER:
+ setOwner((EObject)newValue);
+ return;
+ case NattablePackage.TABLE__PROTOTYPE:
+ setPrototype((EObject)newValue);
+ return;
+ case NattablePackage.TABLE__TABLE_CONFIGURATION:
+ setTableConfiguration((TableConfiguration)newValue);
+ return;
+ case NattablePackage.TABLE__INVERT_AXIS:
+ setInvertAxis((Boolean)newValue);
+ return;
+ case NattablePackage.TABLE__COLUMN_AXIS_PROVIDERS_HISTORY:
+ getColumnAxisProvidersHistory().clear();
+ getColumnAxisProvidersHistory().addAll((Collection<? extends AbstractAxisProvider>)newValue);
+ return;
+ case NattablePackage.TABLE__ROW_AXIS_PROVIDERS_HISTORY:
+ getRowAxisProvidersHistory().clear();
+ getRowAxisProvidersHistory().addAll((Collection<? extends AbstractAxisProvider>)newValue);
+ return;
+ case NattablePackage.TABLE__LOCAL_ROW_HEADER_AXIS_CONFIGURATION:
+ setLocalRowHeaderAxisConfiguration((LocalTableHeaderAxisConfiguration)newValue);
+ return;
+ case NattablePackage.TABLE__LOCAL_COLUMN_HEADER_AXIS_CONFIGURATION:
+ setLocalColumnHeaderAxisConfiguration((LocalTableHeaderAxisConfiguration)newValue);
+ return;
+ case NattablePackage.TABLE__CURRENT_ROW_AXIS_PROVIDER:
+ setCurrentRowAxisProvider((AbstractAxisProvider)newValue);
+ return;
+ case NattablePackage.TABLE__CURRENT_COLUMN_AXIS_PROVIDER:
+ setCurrentColumnAxisProvider((AbstractAxisProvider)newValue);
+ return;
+ case NattablePackage.TABLE__CELLS:
+ getCells().clear();
+ getCells().addAll((Collection<? extends Cell>)newValue);
+ return;
}
super.eSet(featureID, newValue);
}
@@ -652,37 +755,43 @@ public class TableImpl extends TableNamedElementImpl implements Table {
*/
@Override
public void eUnset(int featureID) {
- switch(featureID) {
- case NattablePackage.TABLE__CONTEXT:
- setContext((EObject)null);
- return;
- case NattablePackage.TABLE__TABLE_CONFIGURATION:
- setTableConfiguration((TableConfiguration)null);
- return;
- case NattablePackage.TABLE__INVERT_AXIS:
- setInvertAxis(INVERT_AXIS_EDEFAULT);
- return;
- case NattablePackage.TABLE__COLUMN_AXIS_PROVIDERS_HISTORY:
- getColumnAxisProvidersHistory().clear();
- return;
- case NattablePackage.TABLE__ROW_AXIS_PROVIDERS_HISTORY:
- getRowAxisProvidersHistory().clear();
- return;
- case NattablePackage.TABLE__LOCAL_ROW_HEADER_AXIS_CONFIGURATION:
- setLocalRowHeaderAxisConfiguration((LocalTableHeaderAxisConfiguration)null);
- return;
- case NattablePackage.TABLE__LOCAL_COLUMN_HEADER_AXIS_CONFIGURATION:
- setLocalColumnHeaderAxisConfiguration((LocalTableHeaderAxisConfiguration)null);
- return;
- case NattablePackage.TABLE__CURRENT_ROW_AXIS_PROVIDER:
- setCurrentRowAxisProvider((AbstractAxisProvider)null);
- return;
- case NattablePackage.TABLE__CURRENT_COLUMN_AXIS_PROVIDER:
- setCurrentColumnAxisProvider((AbstractAxisProvider)null);
- return;
- case NattablePackage.TABLE__CELLS:
- getCells().clear();
- return;
+ switch (featureID) {
+ case NattablePackage.TABLE__CONTEXT:
+ setContext((EObject)null);
+ return;
+ case NattablePackage.TABLE__OWNER:
+ setOwner((EObject)null);
+ return;
+ case NattablePackage.TABLE__PROTOTYPE:
+ setPrototype((EObject)null);
+ return;
+ case NattablePackage.TABLE__TABLE_CONFIGURATION:
+ setTableConfiguration((TableConfiguration)null);
+ return;
+ case NattablePackage.TABLE__INVERT_AXIS:
+ setInvertAxis(INVERT_AXIS_EDEFAULT);
+ return;
+ case NattablePackage.TABLE__COLUMN_AXIS_PROVIDERS_HISTORY:
+ getColumnAxisProvidersHistory().clear();
+ return;
+ case NattablePackage.TABLE__ROW_AXIS_PROVIDERS_HISTORY:
+ getRowAxisProvidersHistory().clear();
+ return;
+ case NattablePackage.TABLE__LOCAL_ROW_HEADER_AXIS_CONFIGURATION:
+ setLocalRowHeaderAxisConfiguration((LocalTableHeaderAxisConfiguration)null);
+ return;
+ case NattablePackage.TABLE__LOCAL_COLUMN_HEADER_AXIS_CONFIGURATION:
+ setLocalColumnHeaderAxisConfiguration((LocalTableHeaderAxisConfiguration)null);
+ return;
+ case NattablePackage.TABLE__CURRENT_ROW_AXIS_PROVIDER:
+ setCurrentRowAxisProvider((AbstractAxisProvider)null);
+ return;
+ case NattablePackage.TABLE__CURRENT_COLUMN_AXIS_PROVIDER:
+ setCurrentColumnAxisProvider((AbstractAxisProvider)null);
+ return;
+ case NattablePackage.TABLE__CELLS:
+ getCells().clear();
+ return;
}
super.eUnset(featureID);
}
@@ -695,27 +804,31 @@ public class TableImpl extends TableNamedElementImpl implements Table {
*/
@Override
public boolean eIsSet(int featureID) {
- switch(featureID) {
- case NattablePackage.TABLE__CONTEXT:
- return context != null;
- case NattablePackage.TABLE__TABLE_CONFIGURATION:
- return tableConfiguration != null;
- case NattablePackage.TABLE__INVERT_AXIS:
- return invertAxis != INVERT_AXIS_EDEFAULT;
- case NattablePackage.TABLE__COLUMN_AXIS_PROVIDERS_HISTORY:
- return columnAxisProvidersHistory != null && !columnAxisProvidersHistory.isEmpty();
- case NattablePackage.TABLE__ROW_AXIS_PROVIDERS_HISTORY:
- return rowAxisProvidersHistory != null && !rowAxisProvidersHistory.isEmpty();
- case NattablePackage.TABLE__LOCAL_ROW_HEADER_AXIS_CONFIGURATION:
- return localRowHeaderAxisConfiguration != null;
- case NattablePackage.TABLE__LOCAL_COLUMN_HEADER_AXIS_CONFIGURATION:
- return localColumnHeaderAxisConfiguration != null;
- case NattablePackage.TABLE__CURRENT_ROW_AXIS_PROVIDER:
- return currentRowAxisProvider != null;
- case NattablePackage.TABLE__CURRENT_COLUMN_AXIS_PROVIDER:
- return currentColumnAxisProvider != null;
- case NattablePackage.TABLE__CELLS:
- return cells != null && !cells.isEmpty();
+ switch (featureID) {
+ case NattablePackage.TABLE__CONTEXT:
+ return context != null;
+ case NattablePackage.TABLE__OWNER:
+ return owner != null;
+ case NattablePackage.TABLE__PROTOTYPE:
+ return prototype != null;
+ case NattablePackage.TABLE__TABLE_CONFIGURATION:
+ return tableConfiguration != null;
+ case NattablePackage.TABLE__INVERT_AXIS:
+ return invertAxis != INVERT_AXIS_EDEFAULT;
+ case NattablePackage.TABLE__COLUMN_AXIS_PROVIDERS_HISTORY:
+ return columnAxisProvidersHistory != null && !columnAxisProvidersHistory.isEmpty();
+ case NattablePackage.TABLE__ROW_AXIS_PROVIDERS_HISTORY:
+ return rowAxisProvidersHistory != null && !rowAxisProvidersHistory.isEmpty();
+ case NattablePackage.TABLE__LOCAL_ROW_HEADER_AXIS_CONFIGURATION:
+ return localRowHeaderAxisConfiguration != null;
+ case NattablePackage.TABLE__LOCAL_COLUMN_HEADER_AXIS_CONFIGURATION:
+ return localColumnHeaderAxisConfiguration != null;
+ case NattablePackage.TABLE__CURRENT_ROW_AXIS_PROVIDER:
+ return currentRowAxisProvider != null;
+ case NattablePackage.TABLE__CURRENT_COLUMN_AXIS_PROVIDER:
+ return currentColumnAxisProvider != null;
+ case NattablePackage.TABLE__CELLS:
+ return cells != null && !cells.isEmpty();
}
return super.eIsSet(featureID);
}
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/META-INF/MANIFEST.MF b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/META-INF/MANIFEST.MF
index e5016117c69..40fa0e961b7 100644
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/META-INF/MANIFEST.MF
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/META-INF/MANIFEST.MF
@@ -12,7 +12,14 @@ Require-Bundle: org.eclipse.ui,
org.eclipse.papyrus.infra.widgets;bundle-version="1.0.0",
org.eclipse.papyrus.infra.gmfdiag.commands;bundle-version="1.0.0",
org.eclipse.gmf.runtime.emf.type.core,
- org.eclipse.core.expressions
+ org.eclipse.core.expressions,
+ org.eclipse.papyrus.infra.viewpoints.policy;bundle-version="1.0.0",
+ org.eclipse.papyrus.emf.facet.query.java.core,
+ org.eclipse.papyrus.emf.facet.efacet,
+ org.eclipse.papyrus.emf.facet.efacet.metamodel,
+ org.eclipse.papyrus.emf.facet.custom.metamodel,
+ org.eclipse.papyrus.emf.facet.util.emf.ui,
+ org.eclipse.papyrus.emf.facet.custom.ui
Export-Package: org.eclipse.papyrus.infra.nattable.modelexplorer,
org.eclipse.papyrus.infra.nattable.modelexplorer.handlers,
org.eclipse.papyrus.infra.nattable.modelexplorer.messages,
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/plugin.xml b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/plugin.xml
index 67dca5e4697..917ae285f4c 100644
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/plugin.xml
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/plugin.xml
@@ -1,21 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
- <!-- TODO: EMF-FACET update uicustom and queries
- <extension point="org.eclipse.papyrus.emf.facet.infra.query.registration">
- <modelqueryset file="resources/PapyrusTablesFacet.querySet">
- </modelqueryset>
+ <extension point="org.eclipse.papyrus.emf.facet.util.emf.core.modeldeclaration">
+ <modeldeclaration file="resources/PapyrusTable.custom"/>
</extension>
- <extension point="org.eclipse.papyrus.emf.facet.infra.browser.custom.core.registration">
- <browserCustomization file="resources/PapyrusTables.uiCustom" loadByDefault="true"/>
- </extension>
- <extension point="org.eclipse.papyrus.emf.facet.infra.browser.custom.core.registration">
- <browserCustomization file="resources/PapyrusTablesFacet.uiCustom" loadByDefault="true"/>
- </extension>
- <extension point="org.eclipse.papyrus.emf.facet.infra.facet.registration">
- <facetset file="resources/PapyrusTablesFacet.facetSet">
- </facetset>
- </extension-->
<extension point="org.eclipse.ui.handlers">
<handler class="org.eclipse.papyrus.infra.nattable.modelexplorer.handlers.RenameTableHandler" commandId="org.eclipse.ui.edit.rename">
<activeWhen>
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/resources/PapyrusTable.custom b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/resources/PapyrusTable.custom
new file mode 100755
index 00000000000..591f2c9a5c1
--- /dev/null
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/resources/PapyrusTable.custom
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<custom:Customization xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:custom="http://www.eclipse.org/papyrus/emf/facet/custom/0.2.incubation/custom" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:efacet="http://www.eclipse.org/papyrus/emf/facet/efacet/0.2.incubation/efacet" xmlns:javaQuery="http://www.eclipse.org/papyrus/emf/facet/query/java/0.2.incubation/javaquery" xmlns:query="http://www.eclipse.org/papyrus/emf/facet/efacet/0.2.incubation/efacet/query" name="PapyrusTable" documentation="Display contained table and their icons" mustBeLoadedByDefault="true">
+ <eClassifiers xsi:type="custom:EClassCustomization" name="Table" documentation="Representation of table in model explorer">
+ <extendedMetaclass href="http://www.eclipse.org/papyrus/nattable/model#//Table"/>
+ <facetOperations name="GetTableIcon" documentation="Return the path to the icon of the corresponding table">
+ <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/papyrus/emf/facet/custom/0.2.incubation/custom_primitive_types#//Image"/>
+ <eParameters name="eObject">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+ </eParameters>
+ <query xsi:type="javaQuery:JavaQuery" implementationClassName="org.eclipse.papyrus.infra.nattable.modelexplorer.queries.GetTableIcon"/>
+ <override xsi:type="efacet:FacetOperation" href="../../../plugin/org.eclipse.papyrus.emf.facet.custom.ui/resources/customproperties.efacet#//CustomizedEObject/image"/>
+ </facetOperations>
+ <facetOperations name="NotVisibleStructuralFeature">
+ <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters name="eStructuralFeature">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EStructuralFeature"/>
+ </eParameters>
+ <query xsi:type="javaQuery:JavaQuery" implementationClassName="org.eclipse.papyrus.infra.nattable.modelexplorer.queries.NotVisibleStructuralFeatureQuery"/>
+ <override xsi:type="efacet:FacetOperation" href="../../../plugin/org.eclipse.papyrus.emf.facet.custom.ui/resources/customproperties.efacet#//CustomizedEObject/isVisible"/>
+ </facetOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="custom:EClassCustomization" name="EObject" documentation="representation around EObject displayed in model explorer">
+ <extendedMetaclass href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+ <facetElements xsi:type="efacet:FacetReference" name="tables" upperBound="-1" defaultValueLiteral="" derived="true">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/nattable/model#//Table"/>
+ <query xsi:type="query:OperationCallQuery" operation="//EObject/TablesRefContent"/>
+ </facetElements>
+ <facetOperations name="TablesRefVisibility" documentation="Return true if the element contains tables">
+ <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters name="eStructuralFeature">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EStructuralFeature"/>
+ </eParameters>
+ <query xsi:type="javaQuery:JavaQuery" implementationClassName="org.eclipse.papyrus.infra.nattable.modelexplorer.queries.IsTableContainer"/>
+ <override xsi:type="efacet:FacetOperation" href="../../../plugin/org.eclipse.papyrus.emf.facet.custom.ui/resources/customproperties.efacet#//CustomizedEObject/isVisible"/>
+ </facetOperations>
+ <facetOperations name="TablesRefContent" upperBound="-1" documentation="Get the collection of all contained tables">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/nattable/model#//Table"/>
+ <query xsi:type="javaQuery:JavaQuery" implementationClassName="org.eclipse.papyrus.infra.nattable.modelexplorer.queries.GetContainedTables"/>
+ </facetOperations>
+ <facetOperations name="TablesRefCollapse">
+ <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters name="eStructuralFeature">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EStructuralFeature"/>
+ </eParameters>
+ <query xsi:type="javaQuery:JavaQuery" implementationClassName="org.eclipse.papyrus.infra.nattable.modelexplorer.queries.TablesRefCollapseQuery"/>
+ <override xsi:type="efacet:FacetOperation" href="../../../plugin/org.eclipse.papyrus.emf.facet.custom.ui/resources/customproperties.efacet#//CustomizedEObject/collapseLink"/>
+ </facetOperations>
+ </eClassifiers>
+</custom:Customization>
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/resources/PapyrusTables.uiCustom b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/resources/PapyrusTables.uiCustom
deleted file mode 100644
index 06f1cb76e98..00000000000
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/resources/PapyrusTables.uiCustom
+++ /dev/null
@@ -1,68 +0,0 @@
-<?xml version="1.0" encoding="ASCII"?>
-<uicustom:MetamodelView xmi:version="2.0"
- xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:uicustom="http://www.eclipse.org/EmfFacet/infra/browser/custom/0.8"
- metamodelURI="http://www.eclipse.org/papyrus/nattable/model">
- <types metaclassName="nattable.Table">
- <references referenceName="context">
- <customizedFeatures>
- <defaultValue xsi:type="uicustom:StaticFeatureValue"
- value="false" />
- </customizedFeatures>
- </references>
- <references referenceName="eAnnotations">
- <customizedFeatures>
- <defaultValue xsi:type="uicustom:StaticFeatureValue"
- value="false" />
- </customizedFeatures>
- </references>
- <references referenceName="tableConfiguration">
- <customizedFeatures>
- <defaultValue xsi:type="uicustom:StaticFeatureValue"
- value="false" />
- </customizedFeatures>
- </references>
- <references referenceName="columnAxisProvidersHistory">
- <customizedFeatures>
- <defaultValue xsi:type="uicustom:StaticFeatureValue"
- value="false" />
- </customizedFeatures>
- </references>
- <references referenceName="rowAxisProvidersHistory">
- <customizedFeatures>
- <defaultValue xsi:type="uicustom:StaticFeatureValue"
- value="false" />
- </customizedFeatures>
- </references>
- <references referenceName="localRowHeaderAxisConfiguration">
- <customizedFeatures>
- <defaultValue xsi:type="uicustom:StaticFeatureValue"
- value="false" />
- </customizedFeatures>
- </references>
- <references referenceName="localColumnHeaderAxisConfiguration">
- <customizedFeatures>
- <defaultValue xsi:type="uicustom:StaticFeatureValue"
- value="false" />
- </customizedFeatures>
- </references>
- <references referenceName="currentColumnAxisProvider">
- <customizedFeatures>
- <defaultValue xsi:type="uicustom:StaticFeatureValue"
- value="false" />
- </customizedFeatures>
- </references>
- <references referenceName="currentRowAxisProvider">
- <customizedFeatures>
- <defaultValue xsi:type="uicustom:StaticFeatureValue"
- value="false" />
- </customizedFeatures>
- </references>
- <references referenceName="cells">
- <customizedFeatures>
- <defaultValue xsi:type="uicustom:StaticFeatureValue"
- value="false" />
- </customizedFeatures>
- </references>
- </types>
-</uicustom:MetamodelView>
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/resources/PapyrusTablesFacet.facetSet b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/resources/PapyrusTablesFacet.facetSet
deleted file mode 100644
index bbca3816dbc..00000000000
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/resources/PapyrusTablesFacet.facetSet
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="ASCII"?>
-<facet:FacetSet 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:facet="http://www.eclipse.org/EmfFacet/infra/facet/0.8.incubation" xmlns:query="http://www.eclipse.org/EmfFacet/infra/query/0.8.incubation" name="PapyrusTablesFacet" nsURI="http://org.eclipse.org/papyrus/tables/modelExplorer/Facet" nsPrefix="PapyrusTablesFacet">
- <eClassifiers xsi:type="facet:Facet" name="TableContainer" abstract="true">
- <eSuperTypes href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
- <eStructuralFeatures xsi:type="facet:FacetReference" name="tables" upperBound="-1" volatile="true" unsettable="true">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/nattable/model#//Table"/>
- <valueQuery xsi:type="query:JavaModelQuery" href="emffacet:/query/PapyrusTablesFacet#GetContainedTables"></valueQuery>
- </eStructuralFeatures>
- <conditionQuery xsi:type="query:JavaModelQuery" href="emffacet:/query/PapyrusTablesFacet#IsTableContainer"/>
- </eClassifiers>
- <extendedPackage href="http://www.eclipse.org/emf/2002/Ecore#/"/>
-</facet:FacetSet>
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/resources/PapyrusTablesFacet.querySet b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/resources/PapyrusTablesFacet.querySet
deleted file mode 100644
index 2b220c97629..00000000000
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/resources/PapyrusTablesFacet.querySet
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="ASCII"?>
-<query:ModelQuerySet 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:query="http://www.eclipse.org/EmfFacet/infra/query/0.8.incubation" name="PapyrusTablesFacet" description="A set of queries to manage the tables in the ModelExplorer">
- <associatedMetamodels href="http://www.eclipse.org/emf/2002/Ecore#/"/>
- <associatedMetamodels href="http://www.eclipse.org/papyrus/nattable/model#/"/>
- <queries xsi:type="query:JavaModelQuery" name="IsTableContainer" description="Return true if the element contains tables" implementationClassName="org.eclipse.papyrus.infra.nattable.modelexplorer.queries.IsTableContainer">
- <returnType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
- <scope href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
- </queries>
- <queries xsi:type="query:JavaModelQuery" name="GetContainedTables" description="Get the collection of all contained tables" upperBound="-1" implementationClassName="org.eclipse.papyrus.infra.nattable.modelexplorer.queries.GetContainedTables">
- <returnType xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/nattable/model#//Table"/>
- <scope href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
- </queries>
-</query:ModelQuerySet>
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/resources/PapyrusTablesFacet.uiCustom b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/resources/PapyrusTablesFacet.uiCustom
deleted file mode 100644
index 4149fcb9fe5..00000000000
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/resources/PapyrusTablesFacet.uiCustom
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="ASCII"?>
-<uicustom:MetamodelView xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:query="http://www.eclipse.org/EmfFacet/infra/query/0.8.incubation" xmlns:uicustom="http://www.eclipse.org/EmfFacet/infra/browser/custom/0.8" metamodelURI="http://org.eclipse.org/papyrus/tables/modelExplorer/Facet">
- <types metaclassName="PapyrusTablesFacet.TableContainer">
- <references referenceName="tables">
- <customizedFeatures>
- <valueCases>
- <value xsi:type="uicustom:StaticFeatureValue" value="false"/>
- <condition xsi:type="query:JavaModelQuery" href="emffacet:/query/PapyrusTablesFacet#IsTableContainer"/>
- </valueCases>
- <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
- </customizedFeatures>
- <customizedFeatures customizedFeature="collapseLink">
- <defaultValue xsi:type="uicustom:StaticFeatureValue" value="true"/>
- </customizedFeatures>
- </references>
- </types>
-</uicustom:MetamodelView>
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/src/org/eclipse/papyrus/infra/nattable/modelexplorer/queries/GetContainedTables.java b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/src/org/eclipse/papyrus/infra/nattable/modelexplorer/queries/GetContainedTables.java
index b493d924f04..23bef143690 100644
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/src/org/eclipse/papyrus/infra/nattable/modelexplorer/queries/GetContainedTables.java
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/src/org/eclipse/papyrus/infra/nattable/modelexplorer/queries/GetContainedTables.java
@@ -11,28 +11,39 @@
*****************************************************************************/
package org.eclipse.papyrus.infra.nattable.modelexplorer.queries;
-//TODO: EMF-FACET update query
-/** Get the collection of all contained tables */
-public class GetContainedTables {/*
- extends AbstractEditorContainerQuery implements IJavaModelQuery<EObject, Collection<Table>> {
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.papyrus.emf.facet.efacet.core.IFacetManager;
+import org.eclipse.papyrus.emf.facet.efacet.core.exception.DerivedTypedElementException;
+import org.eclipse.papyrus.emf.facet.query.java.core.IJavaQuery2;
+import org.eclipse.papyrus.emf.facet.query.java.core.IParameterValueList2;
+import org.eclipse.papyrus.infra.nattable.model.nattable.Table;
+import org.eclipse.papyrus.views.modelexplorer.NavigatorUtils;
+import org.eclipse.papyrus.views.modelexplorer.queries.AbstractEditorContainerQuery;
+/** Get the collection of all contained tables */
+public class GetContainedTables extends AbstractEditorContainerQuery implements IJavaQuery2<EObject, Collection<Table>> {
- @Override
- public Collection<Table> evaluate(final EObject context, final ParameterValueList parameterValues) throws ModelQueryExecutionException {
+ public Collection<Table> evaluate(EObject source, IParameterValueList2 parameterValues, IFacetManager facetManager) throws DerivedTypedElementException {
List<Table> result = new ArrayList<Table>();
- Iterator<EObject> roots = NavigatorUtils.getNotationRoots(context);
+ Iterator<EObject> roots = NavigatorUtils.getNotationRoots(source);
if(roots == null) {
return result;
}
while(roots.hasNext()) {
EObject root = roots.next();
- if(root instanceof Table) {
- if(EcoreUtil.equals(((Table)root).getContext(), context)) {
- result.add((Table)root);
+ if (root instanceof Table) {
+ if (EcoreUtil.equals(((Table) root).getOwner(), source)) {
+ result.add((Table) root);
}
}
}
return result;
- }**/
-}
+ }
+} \ No newline at end of file
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/src/org/eclipse/papyrus/infra/nattable/modelexplorer/queries/GetTableIcon.java b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/src/org/eclipse/papyrus/infra/nattable/modelexplorer/queries/GetTableIcon.java
new file mode 100755
index 00000000000..56ebeb5a228
--- /dev/null
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/src/org/eclipse/papyrus/infra/nattable/modelexplorer/queries/GetTableIcon.java
@@ -0,0 +1,32 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters (CEA LIST) laurent.wouters@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.nattable.modelexplorer.queries;
+
+import org.eclipse.papyrus.emf.facet.custom.metamodel.custompt.IImage;
+import org.eclipse.papyrus.emf.facet.custom.ui.ImageUtils;
+import org.eclipse.papyrus.emf.facet.efacet.core.IFacetManager;
+import org.eclipse.papyrus.emf.facet.efacet.core.exception.DerivedTypedElementException;
+import org.eclipse.papyrus.emf.facet.query.java.core.IJavaQuery2;
+import org.eclipse.papyrus.emf.facet.query.java.core.IParameterValueList2;
+import org.eclipse.papyrus.infra.nattable.model.nattable.Table;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusView;
+import org.eclipse.papyrus.infra.viewpoints.policy.ViewPrototype;
+import org.eclipse.papyrus.views.modelexplorer.queries.AbstractGetEditorIconQuery;
+
+/** Return the path to the icon of the corresponding table */
+public class GetTableIcon extends AbstractGetEditorIconQuery implements IJavaQuery2<Table, IImage> {
+
+ public IImage evaluate(Table source, IParameterValueList2 parameterValues, IFacetManager facetManager) throws DerivedTypedElementException {
+ ViewPrototype prototype = ViewPrototype.get((PapyrusView) source.getPrototype());
+ return ImageUtils.wrap(prototype.getIconURI());
+ }
+}
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/src/org/eclipse/papyrus/infra/nattable/modelexplorer/queries/IsTableContainer.java b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/src/org/eclipse/papyrus/infra/nattable/modelexplorer/queries/IsTableContainer.java
index 25b549ed7ca..f878ddf7ba4 100644
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/src/org/eclipse/papyrus/infra/nattable/modelexplorer/queries/IsTableContainer.java
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/src/org/eclipse/papyrus/infra/nattable/modelexplorer/queries/IsTableContainer.java
@@ -1,42 +1,58 @@
-/*****************************************************************************
- * Copyright (c) 2013 CEA LIST.
+/**
+ * Copyright (c) 2011 Atos.
+ *
+ * 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:
+ * Atos - Initial API and implementation
*
- * 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:
- * Juan Cadavid (CEA LIST) juan.cadavid@cea.fr - Initial API and implementation
- *****************************************************************************/
+ */
package org.eclipse.papyrus.infra.nattable.modelexplorer.queries;
import java.util.Iterator;
import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.papyrus.emf.facet.efacet.core.IFacetManager;
+import org.eclipse.papyrus.emf.facet.efacet.core.exception.DerivedTypedElementException;
+import org.eclipse.papyrus.emf.facet.efacet.metamodel.v0_2_0.efacet.FacetReference;
+import org.eclipse.papyrus.emf.facet.efacet.metamodel.v0_2_0.efacet.ParameterValue;
+import org.eclipse.papyrus.emf.facet.query.java.core.IJavaQuery2;
+import org.eclipse.papyrus.emf.facet.query.java.core.IParameterValueList2;
import org.eclipse.papyrus.infra.nattable.model.nattable.Table;
import org.eclipse.papyrus.views.modelexplorer.NavigatorUtils;
-//TODO: EMF-FACET update query
-public class IsTableContainer {/*extends AbstractEditorContainerQuery implements IJavaModelQuery<EObject, Boolean> {
-*/
+import org.eclipse.papyrus.views.modelexplorer.queries.AbstractEditorContainerQuery;
+
+public class IsTableContainer extends AbstractEditorContainerQuery implements IJavaQuery2<EObject, Boolean> {
+
/**
- * Return true if the element is a Diagram Container
+ * Return true if the element is a Table Container
*/
- /*@Override
- public Boolean evaluate(final EObject context, ParameterValueList parameterValues) throws ModelQueryExecutionException {
- Iterator<EObject> roots = NavigatorUtils.getNotationRoots(context);
- if(roots == null) {
- return false;
- }
- while(roots.hasNext()) {
- EObject root = roots.next();
- if(root instanceof Table) {
- if(EcoreUtil.equals(((Table)root).getContext(), context)) {
- return true;
+
+ public Boolean evaluate(EObject source, IParameterValueList2 parameterValues, IFacetManager facetManager) throws DerivedTypedElementException {
+ ParameterValue parameterValue = (ParameterValue) parameterValues.getParameterValueByName("eStructuralFeature");
+ EStructuralFeature eStructuralFeature = (EStructuralFeature) parameterValue.getValue();
+ if ((eStructuralFeature instanceof FacetReference) && ("diagrams".equals((eStructuralFeature).getName()))) {
+
+ Iterator<EObject> roots = NavigatorUtils.getNotationRoots(source);
+ if (roots == null) {
+ return false;
+ }
+
+ while (roots.hasNext()) {
+ EObject root = roots.next();
+ if (root instanceof Table) {
+ if (EcoreUtil.equals(((Table) root).getOwner(), source)) {
+ return true;
+ }
}
}
+ return false;
}
- return false;
- }*/
-}
+ return true;
+ }
+} \ No newline at end of file
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/src/org/eclipse/papyrus/infra/nattable/modelexplorer/queries/NotVisibleStructuralFeatureQuery.java b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/src/org/eclipse/papyrus/infra/nattable/modelexplorer/queries/NotVisibleStructuralFeatureQuery.java
new file mode 100755
index 00000000000..bcc10cbf657
--- /dev/null
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/src/org/eclipse/papyrus/infra/nattable/modelexplorer/queries/NotVisibleStructuralFeatureQuery.java
@@ -0,0 +1,37 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters (CEA LIST) laurent.wouters@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.nattable.modelexplorer.queries;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.papyrus.emf.facet.efacet.core.IFacetManager;
+import org.eclipse.papyrus.emf.facet.efacet.core.exception.DerivedTypedElementException;
+import org.eclipse.papyrus.emf.facet.efacet.metamodel.v0_2_0.efacet.ParameterValue;
+import org.eclipse.papyrus.emf.facet.query.java.core.IJavaQuery2;
+import org.eclipse.papyrus.emf.facet.query.java.core.IParameterValueList2;
+import org.eclipse.papyrus.infra.nattable.model.nattable.Table;
+
+public class NotVisibleStructuralFeatureQuery implements IJavaQuery2<Table, Boolean> {
+ public Boolean evaluate(final Table context,
+ final IParameterValueList2 parameterValues,
+ final IFacetManager facetManager)
+ throws DerivedTypedElementException {
+ ParameterValue parameterValue= (ParameterValue)parameterValues.getParameterValueByName("eStructuralFeature");
+ EStructuralFeature eStructuralFeature=(EStructuralFeature)parameterValue.getValue();
+ //if eStructural feature ==null this is root model explorer.
+ //border effect of this kind of queries
+ if (eStructuralFeature==null){
+ return true;
+ }
+
+ return false;
+ }
+}
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/src/org/eclipse/papyrus/infra/nattable/modelexplorer/queries/TablesRefCollapseQuery.java b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/src/org/eclipse/papyrus/infra/nattable/modelexplorer/queries/TablesRefCollapseQuery.java
new file mode 100755
index 00000000000..6560c8c3a64
--- /dev/null
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/src/org/eclipse/papyrus/infra/nattable/modelexplorer/queries/TablesRefCollapseQuery.java
@@ -0,0 +1,35 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters (CEA LIST) laurent.wouters@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.nattable.modelexplorer.queries;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.papyrus.emf.facet.efacet.core.IFacetManager;
+import org.eclipse.papyrus.emf.facet.efacet.core.exception.DerivedTypedElementException;
+import org.eclipse.papyrus.emf.facet.efacet.metamodel.v0_2_0.efacet.FacetReference;
+import org.eclipse.papyrus.emf.facet.efacet.metamodel.v0_2_0.efacet.ParameterValue;
+import org.eclipse.papyrus.emf.facet.query.java.core.IJavaQuery2;
+import org.eclipse.papyrus.emf.facet.query.java.core.IParameterValueList2;
+
+public class TablesRefCollapseQuery implements IJavaQuery2<EObject, Boolean> {
+ public Boolean evaluate(final EObject context,
+ final IParameterValueList2 parameterValues,
+ final IFacetManager facetManager)
+ throws DerivedTypedElementException {
+ ParameterValue parameterValue= (ParameterValue)parameterValues.getParameterValueByName("eStructuralFeature");
+ EStructuralFeature eStructuralFeature=(EStructuralFeature)parameterValue.getValue();
+ if((eStructuralFeature instanceof FacetReference)&&("diagrams".equals((eStructuralFeature).getName()))){
+ return true;
+ }
+ return false;
+ }
+}
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/META-INF/MANIFEST.MF b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/META-INF/MANIFEST.MF
index d81c9ac5b1d..0915962a3f9 100644
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/META-INF/MANIFEST.MF
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/META-INF/MANIFEST.MF
@@ -19,7 +19,8 @@ Require-Bundle: org.eclipse.ui,
org.eclipse.papyrus.infra.services.edit;bundle-version="1.0.0",
org.eclipse.nebula.widgets.nattable.core;bundle-version="1.0.0",
org.eclipse.emf.databinding,
- org.eclipse.core.databinding.property;bundle-version="1.4.200"
+ org.eclipse.core.databinding.property;bundle-version="1.4.200",
+ org.eclipse.papyrus.infra.viewpoints.policy;bundle-version="1.0.0"
Export-Package: org.eclipse.papyrus.infra.nattable.properties.constrai
nts
Bundle-Vendor: %Bundle-Vendor
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/SingleTable.xwt b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/SingleTable.xwt
index 59f4909fe18..a992fe52044 100644
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/SingleTable.xwt
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/SingleTable.xwt
@@ -12,12 +12,10 @@
</Composite.layout>
<ppe:StringEditor input="{Binding}"
property="nattable:nattableconfiguration:TableNamedElement:name"></ppe:StringEditor>
- <ppe:ReferenceLabel input="{Binding}" property="nattable:Table:context"
- readOnly="true"></ppe:ReferenceLabel>
+ <ppe:ReferenceLabel input="{Binding}" property="nattable:Table:prototype" readOnly="true" customLabel="View Type"></ppe:ReferenceLabel>
+ <ppe:ReferenceLabel input="{Binding}" property="nattable:Table:owner" readOnly="true" customLabel="Owner"></ppe:ReferenceLabel>
+ <ppe:ReferenceDialog input="{Binding}" property="nattable:Table:context" customLabel="Root element"></ppe:ReferenceDialog>
<ppe:BooleanRadio input="{Binding}" property="nattable:Table:invertAxis"></ppe:BooleanRadio>
- <ppe:StringEditor input="{Binding}"
- property="nattable:Table:tableConfiguration.type" readOnly="true"
- customLabel="Type"></ppe:StringEditor>
</Composite>
<Composite>
<Composite.layout>
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/modelelement/NatTableModelElement.java b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/modelelement/NatTableModelElement.java
index 65c431481cb..00ec6b126ea 100644
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/modelelement/NatTableModelElement.java
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/modelelement/NatTableModelElement.java
@@ -23,8 +23,11 @@ import org.eclipse.core.databinding.observable.IObservable;
import org.eclipse.emf.common.notify.Adapter;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.notify.impl.AdapterImpl;
+import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ILabelProviderListener;
import org.eclipse.papyrus.infra.nattable.manager.table.INattableModelManager;
import org.eclipse.papyrus.infra.nattable.manager.table.NattableModelManager;
import org.eclipse.papyrus.infra.nattable.model.nattable.NattablePackage;
@@ -67,13 +70,17 @@ import org.eclipse.papyrus.infra.nattable.properties.observable.RowPasteObjectPo
import org.eclipse.papyrus.infra.nattable.properties.provider.ColumnContainmentFeatureContentProvider;
import org.eclipse.papyrus.infra.nattable.properties.provider.ColumnElementTypeIdContentProvider;
import org.eclipse.papyrus.infra.nattable.properties.provider.ColumnPostActionIdsProvider;
+import org.eclipse.papyrus.infra.nattable.properties.provider.ContextFeatureContentProvider;
import org.eclipse.papyrus.infra.nattable.properties.provider.RowContainmentFeatureContentProvider;
import org.eclipse.papyrus.infra.nattable.properties.provider.RowElementTypeIdContentProvider;
import org.eclipse.papyrus.infra.nattable.properties.provider.RowPostActionIdsProvider;
import org.eclipse.papyrus.infra.nattable.properties.utils.Constants;
import org.eclipse.papyrus.infra.nattable.utils.HeaderAxisConfigurationManagementUtils;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusView;
+import org.eclipse.papyrus.infra.viewpoints.policy.ViewPrototype;
import org.eclipse.papyrus.infra.widgets.providers.IStaticContentProvider;
import org.eclipse.papyrus.views.properties.modelelement.EMFModelElement;
+import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
@@ -143,6 +150,9 @@ public class NatTableModelElement extends EMFModelElement {
tableModelManager = new NattableModelManager(getEditedTable());
this.observableValues = new HashMap<String, IObservable>();
this.interestingFeatures = new ArrayList<EStructuralFeature>();
+ interestingFeatures.add(NattablePackage.eINSTANCE.getTable_Prototype());
+ interestingFeatures.add(NattablePackage.eINSTANCE.getTable_Owner());
+ interestingFeatures.add(NattablePackage.eINSTANCE.getTable_Context());
interestingFeatures.add(NattablePackage.eINSTANCE.getTable_InvertAxis());
interestingFeatures.add(NattablePackage.eINSTANCE.getTable_LocalColumnHeaderAxisConfiguration());
interestingFeatures.add(NattablePackage.eINSTANCE.getTable_LocalRowHeaderAxisConfiguration());
@@ -505,7 +515,10 @@ public class NatTableModelElement extends EMFModelElement {
@Override
public IStaticContentProvider getContentProvider(String propertyPath) {
IStaticContentProvider provider = null;
- if(Constants.ROW_PASTED_EOBJECT_CONTAINMENT_FEATURE.equals(propertyPath)) {
+ if(Constants.TABLE_CONTEXT.equals(propertyPath)) {
+ Table table = getEditedTable();
+ provider = new ContextFeatureContentProvider(table, getRoot(table.getContext()));
+ } else if(Constants.ROW_PASTED_EOBJECT_CONTAINMENT_FEATURE.equals(propertyPath)) {
provider = new RowContainmentFeatureContentProvider(getEditedTable());
} else if(Constants.COLUMN_PASTED_EOBJECT_CONTAINMENT_FEATURE.equals(propertyPath)) {
provider = new ColumnContainmentFeatureContentProvider(getEditedTable());
@@ -558,4 +571,39 @@ public class NatTableModelElement extends EMFModelElement {
return super.isOrdered(propertyPath);
}
+ @Override
+ public ILabelProvider getLabelProvider(String propertyPath) {
+ if (propertyPath.endsWith("prototype")) {
+ return new ILabelProvider() {
+ public void addListener(ILabelProviderListener listener) { }
+ public void removeListener(ILabelProviderListener listener) { }
+ public void dispose() { }
+ public boolean isLabelProperty(Object element, String property) { return false; }
+ public Image getImage(Object element) {
+ ViewPrototype proto = ViewPrototype.get((PapyrusView)element);
+ return proto.getIcon();
+ }
+ public String getText(Object element) {
+ ViewPrototype proto = ViewPrototype.get((PapyrusView)element);
+ return proto.getQualifiedName();
+ }
+ };
+ }
+ return super.getLabelProvider(propertyPath);
+ }
+
+ /**
+ * Gets the root EObject from the given one
+ * @param obj An object
+ * @return The root object which is an ancestor of the given one
+ */
+ private EObject getRoot(EObject obj) {
+ EObject current = obj;
+ EObject parent = obj.eContainer();
+ while (parent != null) {
+ current = parent;
+ parent = parent.eContainer();
+ }
+ return current;
+ }
}
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/provider/ContextFeatureContentProvider.java b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/provider/ContextFeatureContentProvider.java
new file mode 100755
index 00000000000..52b64030bb6
--- /dev/null
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/provider/ContextFeatureContentProvider.java
@@ -0,0 +1,65 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.nattable.properties.provider;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.infra.nattable.model.nattable.Table;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusView;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ui.ECoreModelContentProvider;
+import org.eclipse.papyrus.infra.viewpoints.policy.PolicyChecker;
+import org.eclipse.papyrus.infra.viewpoints.policy.ViewPrototype;
+import org.eclipse.papyrus.infra.widgets.providers.IHierarchicContentProvider;
+import org.eclipse.papyrus.infra.widgets.providers.IStaticContentProvider;
+
+/**
+ * Represents a simple ECore model content provider for the selection of a table's root model element
+ * @author Laurent Wouters
+ */
+public class ContextFeatureContentProvider extends ECoreModelContentProvider implements IStaticContentProvider, IHierarchicContentProvider {
+ /**
+ * The diagram
+ */
+ private Table table;
+
+ /**
+ * Initializes the provider with the given root
+ * @param diagram The diagram for which a root model element is to be provided
+ * @param root The root object
+ */
+ public ContextFeatureContentProvider(Table table, EObject root) {
+ super(root);
+ this.table = table;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.papyrus.infra.widgets.providers.IStaticContentProvider#getElements()
+ */
+ public Object[] getElements() {
+ return getElements(null);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.papyrus.infra.widgets.providers.IHierarchicContentProvider#isValidValue(java.lang.Object)
+ */
+ public boolean isValidValue(Object element) {
+ if (element == null)
+ return false;
+ if (!(element instanceof EObject))
+ return false;
+ ViewPrototype prototype = ViewPrototype.get((PapyrusView)table.getPrototype());
+ if (prototype == null)
+ return false;
+ return PolicyChecker.getCurrent().canHaveNewView((EObject)element, table.getOwner(), prototype);
+ }
+}
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/utils/Constants.java b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/utils/Constants.java
index 8d2e7a4e390..a8ebc6dcc30 100644
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/utils/Constants.java
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/utils/Constants.java
@@ -25,6 +25,8 @@ public class Constants {
//to prevent instanciation
}
+
+ public static final String TABLE_CONTEXT = "context"; //$NON-NLS-1$
public static final String LOCAL_COLUMN_HEADER_AXIS_CONFIGURATION_DISPLAY_LABEL = "localColumnHeaderAxisConfiguration.displayLabel"; //$NON-NLS-1$
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.views.config/plugin.xml b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.views.config/plugin.xml
index e6fc4ce7a79..27149ed7454 100644
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.views.config/plugin.xml
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.views.config/plugin.xml
@@ -50,7 +50,8 @@
<extension
point="org.eclipse.papyrus.infra.nattable.configuration">
<configuration
- file="resources/viewpage.nattableconfiguration">
+ file="resources/viewpage.nattableconfiguration"
+ type="PapyrusViewsTable">
</configuration>
</extension>
</plugin>
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.views.editor/plugin.xml b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.views.editor/plugin.xml
index 452a5493cef..64e206fa600 100644
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.views.editor/plugin.xml
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.views.editor/plugin.xml
@@ -60,59 +60,6 @@
</handler>
</extension>
<extension
- id="create.table.menus"
- name="Create Table Menus"
- point="org.eclipse.ui.menus">
- <menuContribution
- allPopups="false"
- locationURI="popup:org.eclipse.papyrus.infra.nattable.popupmenu.createnattable">
- <command
- commandId="org.eclipse.papyrus.infra.nattable.page.editor.create.command"
- style="push">
- <visibleWhen>
- <with
- variable="activeEditorId">
- <equals
- value="org.eclipse.papyrus.infra.core.papyrusEditor">
- </equals>
- </with>
- </visibleWhen>
- </command>
- </menuContribution>
- <menuContribution
- allPopups="false"
- locationURI="menu:org.eclipse.papyrus.infra.nattable.menu.createnattable">
- <command
- commandId="org.eclipse.papyrus.infra.nattable.page.editor.create.command"
- style="push">
- <visibleWhen>
- <with
- variable="activeEditorId">
- <equals
- value="org.eclipse.papyrus.infra.core.papyrusEditor">
- </equals>
- </with>
- </visibleWhen>
- </command>
- </menuContribution>
- <menuContribution
- allPopups="false"
- locationURI="toolbar:org.eclipse.papyrus.infra.nattable.toolbar.createnattable">
- <command
- commandId="org.eclipse.papyrus.infra.nattable.page.editor.create.command"
- style="push">
- <visibleWhen>
- <with
- variable="activeEditorId">
- <equals
- value="org.eclipse.papyrus.infra.core.papyrusEditor">
- </equals>
- </with>
- </visibleWhen>
- </command>
- </menuContribution>
- </extension>
- <extension
point="org.eclipse.ui.commandImages">
<image
commandId="org.eclipse.papyrus.infra.nattable.page.editor.create.command"
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/schema/org.eclipse.papyrus.infra.nattable.configuration.exsd b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/schema/org.eclipse.papyrus.infra.nattable.configuration.exsd
index 6aa249e6641..e2551c85634 100644
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/schema/org.eclipse.papyrus.infra.nattable.configuration.exsd
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/schema/org.eclipse.papyrus.infra.nattable.configuration.exsd
@@ -64,6 +64,13 @@
</appinfo>
</annotation>
</attribute>
+ <attribute name="type" type="string" use="required">
+ <annotation>
+ <documentation>
+ The unique type identifier of the table as a string
+ </documentation>
+ </annotation>
+ </attribute>
</complexType>
</element>
diff --git a/plugins/infra/org.eclipse.papyrus.infra.hyperlink/META-INF/MANIFEST.MF b/plugins/infra/org.eclipse.papyrus.infra.hyperlink/META-INF/MANIFEST.MF
index f0b94ae6f9f..f82fa9011f4 100644
--- a/plugins/infra/org.eclipse.papyrus.infra.hyperlink/META-INF/MANIFEST.MF
+++ b/plugins/infra/org.eclipse.papyrus.infra.hyperlink/META-INF/MANIFEST.MF
@@ -11,6 +11,7 @@ Bundle-Localization: plugin
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Require-Bundle: org.eclipse.emf.transaction,
org.eclipse.gef,
+ org.eclipse.gmf.runtime.notation.edit,
org.eclipse.papyrus.infra.emf;bundle-version="1.0.0",
org.eclipse.papyrus.infra.core.sasheditor;bundle-version="1.0.0",
org.eclipse.ui,
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/.classpath b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/.classpath
new file mode 100755
index 00000000000..2d1a4302f04
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/.project b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/.project
new file mode 100755
index 00000000000..0e3aaf843fb
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.infra.viewpoints.configuration.edit</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/.settings/org.eclipse.jdt.core.prefs b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/.settings/org.eclipse.jdt.core.prefs
new file mode 100755
index 00000000000..44217f8c068
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/META-INF/MANIFEST.MF b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/META-INF/MANIFEST.MF
new file mode 100755
index 00000000000..29a1b9941f0
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/META-INF/MANIFEST.MF
@@ -0,0 +1,19 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.papyrus.infra.viewpoints.configuration.edit;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-ClassPath: .
+Bundle-Activator: org.eclipse.papyrus.infra.viewpoints.configuration.provider.ConfigurationEditPlugin$Implementation
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: org.eclipse.papyrus.infra.viewpoints.configuration.provider
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.emf.edit,
+ org.eclipse.emf.ecore,
+ org.eclipse.emf.ecore.edit,
+ org.eclipse.papyrus.infra.viewpoints.configuration;bundle-version="1.0.0",
+ org.eclipse.papyrus.infra.viewpoints.iso42010;bundle-version="1.0.0",
+ org.eclipse.papyrus.infra.viewpoints.iso42010.edit;bundle-version="1.0.0"
+Bundle-ActivationPolicy: lazy
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/about.html b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/about.html
new file mode 100755
index 00000000000..dd02e0be168
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>December 2, 2009</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/build.properties b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/build.properties
new file mode 100755
index 00000000000..9811208ae02
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/build.properties
@@ -0,0 +1,12 @@
+#
+
+bin.includes = .,\
+ icons/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties,\
+ about.html
+jars.compile.order = .
+source.. = src/
+output.. = bin/
+src.includes = about.html
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/ctool16/CreateChildRule_insertionPath_PathElement.png b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/ctool16/CreateChildRule_insertionPath_PathElement.png
new file mode 100755
index 00000000000..298c65024cb
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/ctool16/CreateChildRule_insertionPath_PathElement.png
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/ctool16/CreatePapyrusDiagram_childRules_ChildRule.png b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/ctool16/CreatePapyrusDiagram_childRules_ChildRule.png
new file mode 100755
index 00000000000..8e4881ab36f
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/ctool16/CreatePapyrusDiagram_childRules_ChildRule.png
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/ctool16/CreatePapyrusDiagram_paletteRules_PaletteRule.png b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/ctool16/CreatePapyrusDiagram_paletteRules_PaletteRule.png
new file mode 100755
index 00000000000..9cbe852aee8
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/ctool16/CreatePapyrusDiagram_paletteRules_PaletteRule.png
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/ctool16/CreatePapyrusView_modelRules_ModelRule.png b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/ctool16/CreatePapyrusView_modelRules_ModelRule.png
new file mode 100755
index 00000000000..3be5941ebc8
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/ctool16/CreatePapyrusView_modelRules_ModelRule.png
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/ctool16/CreatePapyrusView_owningRules_OwningRule.png b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/ctool16/CreatePapyrusView_owningRules_OwningRule.png
new file mode 100755
index 00000000000..f8826cd1b04
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/ctool16/CreatePapyrusView_owningRules_OwningRule.png
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/obj16/ChildRule.png b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/obj16/ChildRule.png
new file mode 100755
index 00000000000..f521e24194f
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/obj16/ChildRule.png
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/obj16/ElementImport.png b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/obj16/ElementImport.png
new file mode 100755
index 00000000000..4874c9a4bda
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/obj16/ElementImport.png
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/obj16/ModelRule.png b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/obj16/ModelRule.png
new file mode 100755
index 00000000000..b2ed7ef1f5c
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/obj16/ModelRule.png
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/obj16/OwningRule.png b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/obj16/OwningRule.png
new file mode 100755
index 00000000000..b24525e0564
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/obj16/OwningRule.png
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/obj16/PaletteRule.png b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/obj16/PaletteRule.png
new file mode 100755
index 00000000000..702ce3268db
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/obj16/PaletteRule.png
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/obj16/PapyrusConfiguration.png b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/obj16/PapyrusConfiguration.png
new file mode 100755
index 00000000000..3b2678c6fc5
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/obj16/PapyrusConfiguration.png
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/obj16/PapyrusDiagram.png b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/obj16/PapyrusDiagram.png
new file mode 100755
index 00000000000..84904512460
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/obj16/PapyrusDiagram.png
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/obj16/PapyrusSyncTable.png b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/obj16/PapyrusSyncTable.png
new file mode 100755
index 00000000000..e8e0a707a3c
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/obj16/PapyrusSyncTable.png
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/obj16/PapyrusTable.png b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/obj16/PapyrusTable.png
new file mode 100755
index 00000000000..0130d061f42
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/obj16/PapyrusTable.png
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/obj16/PapyrusView.png b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/obj16/PapyrusView.png
new file mode 100755
index 00000000000..6a02a48333d
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/obj16/PapyrusView.png
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/obj16/PapyrusViewpoint.png b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/obj16/PapyrusViewpoint.png
new file mode 100755
index 00000000000..a4674477cc9
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/obj16/PapyrusViewpoint.png
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/obj16/PathElement.png b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/obj16/PathElement.png
new file mode 100755
index 00000000000..fbf0306e6f0
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/obj16/PathElement.png
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/plugin.properties b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/plugin.properties
new file mode 100755
index 00000000000..6c33b907a74
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/plugin.properties
@@ -0,0 +1,91 @@
+##########################################################################################
+# Copyright (c) 2013 CEA LIST.
+#
+#
+# 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:
+# Laurent Wouters (CEA LIST) laurent.wouters@cea.fr - Initial API and implementation
+#
+########################################################################################
+
+pluginName = Papyrus Viewpoints Configuration - Edit (Incubation)
+providerName = Eclipse Modeling Project
+
+_UI_CreateChild_text = {0}
+_UI_CreateChild_text2 = {1} {0}
+_UI_CreateChild_text3 = {1}
+_UI_CreateChild_tooltip = Create New {0} Under {1} Feature
+_UI_CreateChild_description = Create a new child of type {0} for the {1} feature of the selected {2}.
+_UI_CreateSibling_description = Create a new sibling of type {0} for the selected {2}, under the {1} feature of their parent.
+
+_UI_PropertyDescriptor_description = The {0} of the {1}
+
+_UI_PapyrusConfiguration_type = Papyrus Configuration
+_UI_PapyrusViewpoint_type = Papyrus Viewpoint
+_UI_PapyrusView_type = Papyrus View
+_UI_PapyrusDiagram_type = Papyrus Diagram
+_UI_DiagramCreationRule_type = Diagram Creation Rule
+_UI_ModelRule_type = Model Rule
+_UI_PaletteRule_type = Palette Rule
+_UI_Rule_type = Rule
+_UI_PathElement_type = Path Element
+_UI_Unknown_type = Object
+
+_UI_Unknown_datatype= Value
+
+_UI_PapyrusConfiguration_defaultStakeholder_feature = Default Stakeholder
+_UI_PapyrusConfiguration_metamodel_feature = Metamodel
+_UI_PapyrusViewpoint_parent_feature = Parent
+_UI_PapyrusDiagram_creationRules_feature = Creation Rules
+_UI_PapyrusDiagram_modelRules_feature = Model Rules
+_UI_PapyrusDiagram_paletteRules_feature = Palette Rules
+_UI_DiagramCreationRule_element_feature = Element
+_UI_DiagramCreationRule_multiplicity_feature = Multiplicity
+_UI_ModelRule_element_feature = Element
+_UI_ModelRule_origin_feature = Origin
+_UI_ModelRule_insertionPath_feature = Insertion Path
+_UI_PaletteRule_element_feature = Element
+_UI_Rule_permit_feature = Permit
+_UI_PathElement_feature_feature = Feature
+_UI_PathElement_origin_feature = Origin
+_UI_PathElement_target_feature = Target
+_UI_Unknown_feature = Unspecified
+
+_UI_OwningRule_type = Owning Rule
+_UI_ChildRule_type = Child Rule
+_UI_PapyrusView_modelRules_feature = Model Rules
+_UI_PapyrusView_owningRules_feature = Owning Rules
+_UI_PapyrusDiagram_childRules_feature = Child Rules
+_UI_ModelRule_multiplicity_feature = Multiplicity
+_UI_OwningRule_element_feature = Element
+_UI_OwningRule_multiplicity_feature = Multiplicity
+_UI_ChildRule_element_feature = Element
+_UI_ChildRule_origin_feature = Origin
+_UI_ChildRule_insertionPath_feature = Insertion Path
+_UI_PapyrusView_implementationID_feature = Implementation ID
+_UI_PapyrusView_parent_feature = Parent
+_UI_PapyrusConfiguration_profiles_feature = Profiles
+_UI_PapyrusView_icon_feature = Icon
+_UI_ModelRule_stereotypes_feature = Stereotypes
+_UI_OwningRule_stereotypes_feature = Stereotypes
+_UI_ChildRule_stereotypes_feature = Stereotypes
+_UI_PapyrusView_profiles_feature = Profiles
+_UI_PapyrusSyncTable_type = Papyrus Sync Table
+_UI_PapyrusTable_type = Papyrus Table
+_UI_PapyrusTable_configuration_feature = Configuration
+_UI_PapyrusDiagram_customPalette_feature = Custom Palette
+_UI_PapyrusDiagram_customStyle_feature = Custom Style
+_UI_PapyrusView_category_feature = Category
+_UI_Category_type = View Category
+_UI_PapyrusView_categories_feature = Categories
+_UI_Category_name_feature = Name
+_UI_PapyrusConfiguration_categories_feature = View Categories
+_UI_ElementImport_type = Element Import
+_UI_PapyrusDiagram_imports_feature = Imports
+_UI_ElementImport_from_feature = From
+_UI_ElementImport_element_feature = Element
+_UI_ModelRule_autoSelectPath_feature = Auto Select Path
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/plugin.xml b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/plugin.xml
new file mode 100755
index 00000000000..17fa9cd3c33
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/plugin.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+-->
+
+<plugin>
+
+ <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories">
+ <!-- @generated configuration -->
+ <factory
+ uri="http://www.eclipse.org/papyrus/infra/viewpoints/configuration"
+ class="org.eclipse.papyrus.infra.viewpoints.configuration.provider.ConfigurationItemProviderAdapterFactory"
+ supportedTypes=
+ "org.eclipse.emf.edit.provider.IEditingDomainItemProvider
+ org.eclipse.emf.edit.provider.IStructuredItemContentProvider
+ org.eclipse.emf.edit.provider.ITreeItemContentProvider
+ org.eclipse.emf.edit.provider.IItemLabelProvider
+ org.eclipse.emf.edit.provider.IItemPropertySource"/>
+ </extension>
+
+</plugin>
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/CategoryItemProvider.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/CategoryItemProvider.java
new file mode 100755
index 00000000000..7a43e8a0bbc
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/CategoryItemProvider.java
@@ -0,0 +1,169 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.configuration.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.papyrus.infra.viewpoints.configuration.Category;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.infra.viewpoints.configuration.Category} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CategoryItemProvider
+ extends ItemProviderAdapter
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CategoryItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addNamePropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Name feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addNamePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Category_name_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_Category_name_feature", "_UI_Category_type"),
+ ConfigurationPackage.Literals.CATEGORY__NAME,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This returns Category.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/PapyrusView.png"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((Category)object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_Category_type") :
+ getString("_UI_Category_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 -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(Category.class)) {
+ case ConfigurationPackage.CATEGORY__NAME:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ 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 -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return ConfigurationEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/ChildRuleItemProvider.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/ChildRuleItemProvider.java
new file mode 100755
index 00000000000..503a4ab8c83
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/ChildRuleItemProvider.java
@@ -0,0 +1,248 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.configuration.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ChildRule;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationFactory;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage;
+import org.eclipse.papyrus.infra.viewpoints.configuration.EClassPropertyDescriptor;
+import org.eclipse.papyrus.infra.viewpoints.configuration.StereotypePropertyDescriptor;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.infra.viewpoints.configuration.ChildRule} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ChildRuleItemProvider
+ extends RuleItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ChildRuleItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addElementPropertyDescriptor(object);
+ addStereotypesPropertyDescriptor(object);
+ addOriginPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Element feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addElementPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (new EClassPropertyDescriptor(createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_ChildRule_element_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_ChildRule_element_feature", "_UI_ChildRule_type"),
+ ConfigurationPackage.Literals.CHILD_RULE__ELEMENT,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null)));
+ }
+
+ /**
+ * This adds a property descriptor for the Stereotypes feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addStereotypesPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (new StereotypePropertyDescriptor(createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_ChildRule_stereotypes_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_ChildRule_stereotypes_feature", "_UI_ChildRule_type"),
+ ConfigurationPackage.Literals.CHILD_RULE__STEREOTYPES,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null)));
+ }
+
+ /**
+ * This adds a property descriptor for the Origin feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addOriginPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (new EClassPropertyDescriptor(createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_ChildRule_origin_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_ChildRule_origin_feature", "_UI_ChildRule_type"),
+ ConfigurationPackage.Literals.CHILD_RULE__ORIGIN,
+ true,
+ false,
+ true,
+ null,
+ 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 -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(ConfigurationPackage.Literals.CHILD_RULE__INSERTION_PATH);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- 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
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns ChildRule.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/ChildRule.png"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ */
+ @Override
+ public String getText(Object object) {
+ ChildRule rule = (ChildRule) object;
+ StringBuilder builder = new StringBuilder("[");
+ builder.append(rule.getOrigin() != null ? rule.getOrigin().getName() : "#");
+ builder.append("] add: ");
+ if (!rule.getStereotypes().isEmpty()) {
+ builder.append("<<");
+ for (int i = 0; i != rule.getStereotypes().size(); i++) {
+ if (i != 0)
+ builder.append(",");
+ builder.append(rule.getStereotypes().get(i).getName());
+ }
+ builder.append(">> ");
+ }
+ builder.append(rule.getElement() != null ? rule.getElement().getName() : "#");
+ builder.append(" => ");
+ builder.append(rule.isPermit() ? "allow" : "deny");
+ return builder.toString();
+ }
+
+ /**
+ * 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
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(ChildRule.class)) {
+ case ConfigurationPackage.CHILD_RULE__INSERTION_PATH:
+ 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 -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ConfigurationPackage.Literals.CHILD_RULE__INSERTION_PATH,
+ ConfigurationFactory.eINSTANCE.createPathElement()));
+ }
+
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/ConfigurationEditPlugin.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/ConfigurationEditPlugin.java
new file mode 100755
index 00000000000..94da80deb98
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/ConfigurationEditPlugin.java
@@ -0,0 +1,106 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.configuration.provider;
+
+import org.eclipse.emf.common.EMFPlugin;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.ecore.provider.EcoreEditPlugin;
+
+import org.eclipse.papyrus.infra.viewpoints.iso42010.provider.Iso42010EditPlugin;
+
+/**
+ * This is the central singleton for the Configuration edit plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public final class ConfigurationEditPlugin extends EMFPlugin {
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final ConfigurationEditPlugin INSTANCE = new ConfigurationEditPlugin();
+
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static Implementation plugin;
+
+ /**
+ * Create the instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ConfigurationEditPlugin() {
+ super
+ (new ResourceLocator [] {
+ EcoreEditPlugin.INSTANCE,
+ Iso42010EditPlugin.INSTANCE,
+ });
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the singleton instance.
+ * @generated
+ */
+ @Override
+ public ResourceLocator getPluginResourceLocator() {
+ return plugin;
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the singleton instance.
+ * @generated
+ */
+ public static Implementation getPlugin() {
+ return plugin;
+ }
+
+ /**
+ * The actual implementation of the Eclipse <b>Plugin</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static class Implementation extends EclipsePlugin {
+ /**
+ * Creates an instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Implementation() {
+ super();
+
+ // Remember the static instance.
+ //
+ plugin = this;
+ }
+ }
+
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/ConfigurationItemProviderAdapterFactory.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/ConfigurationItemProviderAdapterFactory.java
new file mode 100755
index 00000000000..3414bf305eb
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/ConfigurationItemProviderAdapterFactory.java
@@ -0,0 +1,498 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.configuration.provider;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.edit.provider.ChangeNotifier;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.IChangeNotifier;
+import org.eclipse.emf.edit.provider.IDisposable;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.INotifyChangedListener;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+import org.eclipse.papyrus.infra.viewpoints.configuration.util.ConfigurationAdapterFactory;
+
+/**
+ * This is the factory that is used to provide the interfaces needed to support Viewers.
+ * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}.
+ * The adapters also support Eclipse property sheets.
+ * Note that most of the adapters are shared among multiple instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ConfigurationItemProviderAdapterFactory extends ConfigurationAdapterFactory implements ComposeableAdapterFactory, IChangeNotifier, IDisposable {
+ /**
+ * This keeps track of the root adapter factory that delegates to this adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ComposedAdapterFactory parentAdapterFactory;
+
+ /**
+ * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IChangeNotifier changeNotifier = new ChangeNotifier();
+
+ /**
+ * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<Object> supportedTypes = new ArrayList<Object>();
+
+ /**
+ * This constructs an instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ConfigurationItemProviderAdapterFactory() {
+ supportedTypes.add(IEditingDomainItemProvider.class);
+ supportedTypes.add(IStructuredItemContentProvider.class);
+ supportedTypes.add(ITreeItemContentProvider.class);
+ supportedTypes.add(IItemLabelProvider.class);
+ supportedTypes.add(IItemPropertySource.class);
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusConfiguration} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PapyrusConfigurationItemProvider papyrusConfigurationItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusConfiguration}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createPapyrusConfigurationAdapter() {
+ if (papyrusConfigurationItemProvider == null) {
+ papyrusConfigurationItemProvider = new PapyrusConfigurationItemProvider(this);
+ }
+
+ return papyrusConfigurationItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusViewpoint} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PapyrusViewpointItemProvider papyrusViewpointItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusViewpoint}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createPapyrusViewpointAdapter() {
+ if (papyrusViewpointItemProvider == null) {
+ papyrusViewpointItemProvider = new PapyrusViewpointItemProvider(this);
+ }
+
+ return papyrusViewpointItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusView} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PapyrusViewItemProvider papyrusViewItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusView}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createPapyrusViewAdapter() {
+ if (papyrusViewItemProvider == null) {
+ papyrusViewItemProvider = new PapyrusViewItemProvider(this);
+ }
+
+ return papyrusViewItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusDiagram} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PapyrusDiagramItemProvider papyrusDiagramItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusDiagram}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createPapyrusDiagramAdapter() {
+ if (papyrusDiagramItemProvider == null) {
+ papyrusDiagramItemProvider = new PapyrusDiagramItemProvider(this);
+ }
+
+ return papyrusDiagramItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusSyncTable} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PapyrusSyncTableItemProvider papyrusSyncTableItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusSyncTable}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createPapyrusSyncTableAdapter() {
+ if (papyrusSyncTableItemProvider == null) {
+ papyrusSyncTableItemProvider = new PapyrusSyncTableItemProvider(this);
+ }
+
+ return papyrusSyncTableItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusTable} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PapyrusTableItemProvider papyrusTableItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusTable}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createPapyrusTableAdapter() {
+ if (papyrusTableItemProvider == null) {
+ papyrusTableItemProvider = new PapyrusTableItemProvider(this);
+ }
+
+ return papyrusTableItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.infra.viewpoints.configuration.ModelRule} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ModelRuleItemProvider modelRuleItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.papyrus.infra.viewpoints.configuration.ModelRule}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createModelRuleAdapter() {
+ if (modelRuleItemProvider == null) {
+ modelRuleItemProvider = new ModelRuleItemProvider(this);
+ }
+
+ return modelRuleItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.infra.viewpoints.configuration.OwningRule} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected OwningRuleItemProvider owningRuleItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.papyrus.infra.viewpoints.configuration.OwningRule}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createOwningRuleAdapter() {
+ if (owningRuleItemProvider == null) {
+ owningRuleItemProvider = new OwningRuleItemProvider(this);
+ }
+
+ return owningRuleItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.infra.viewpoints.configuration.ChildRule} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ChildRuleItemProvider childRuleItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.papyrus.infra.viewpoints.configuration.ChildRule}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createChildRuleAdapter() {
+ if (childRuleItemProvider == null) {
+ childRuleItemProvider = new ChildRuleItemProvider(this);
+ }
+
+ return childRuleItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.infra.viewpoints.configuration.PaletteRule} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PaletteRuleItemProvider paletteRuleItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.papyrus.infra.viewpoints.configuration.PaletteRule}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createPaletteRuleAdapter() {
+ if (paletteRuleItemProvider == null) {
+ paletteRuleItemProvider = new PaletteRuleItemProvider(this);
+ }
+
+ return paletteRuleItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.infra.viewpoints.configuration.PathElement} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PathElementItemProvider pathElementItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.papyrus.infra.viewpoints.configuration.PathElement}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createPathElementAdapter() {
+ if (pathElementItemProvider == null) {
+ pathElementItemProvider = new PathElementItemProvider(this);
+ }
+
+ return pathElementItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.infra.viewpoints.configuration.Category} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CategoryItemProvider categoryItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.papyrus.infra.viewpoints.configuration.Category}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createCategoryAdapter() {
+ if (categoryItemProvider == null) {
+ categoryItemProvider = new CategoryItemProvider(this);
+ }
+
+ return categoryItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.infra.viewpoints.configuration.ElementImport} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ElementImportItemProvider elementImportItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.papyrus.infra.viewpoints.configuration.ElementImport}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createElementImportAdapter() {
+ if (elementImportItemProvider == null) {
+ elementImportItemProvider = new ElementImportItemProvider(this);
+ }
+
+ return elementImportItemProvider;
+ }
+
+ /**
+ * This returns the root adapter factory that contains this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ComposeableAdapterFactory getRootAdapterFactory() {
+ return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
+ }
+
+ /**
+ * This sets the composed adapter factory that contains this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) {
+ this.parentAdapterFactory = parentAdapterFactory;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object type) {
+ return supportedTypes.contains(type) || super.isFactoryForType(type);
+ }
+
+ /**
+ * This implementation substitutes the factory itself as the key for the adapter.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter adapt(Notifier notifier, Object type) {
+ return super.adapt(notifier, this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object adapt(Object object, Object type) {
+ if (isFactoryForType(type)) {
+ Object adapter = super.adapt(object, type);
+ if (!(type instanceof Class<?>) || (((Class<?>)type).isInstance(adapter))) {
+ return adapter;
+ }
+ }
+
+ return null;
+ }
+
+ /**
+ * This adds a listener.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void addListener(INotifyChangedListener notifyChangedListener) {
+ changeNotifier.addListener(notifyChangedListener);
+ }
+
+ /**
+ * This removes a listener.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void removeListener(INotifyChangedListener notifyChangedListener) {
+ changeNotifier.removeListener(notifyChangedListener);
+ }
+
+ /**
+ * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void fireNotifyChanged(Notification notification) {
+ changeNotifier.fireNotifyChanged(notification);
+
+ if (parentAdapterFactory != null) {
+ parentAdapterFactory.fireNotifyChanged(notification);
+ }
+ }
+
+ /**
+ * This disposes all of the item providers created by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void dispose() {
+ if (papyrusConfigurationItemProvider != null) papyrusConfigurationItemProvider.dispose();
+ if (papyrusViewpointItemProvider != null) papyrusViewpointItemProvider.dispose();
+ if (papyrusViewItemProvider != null) papyrusViewItemProvider.dispose();
+ if (papyrusDiagramItemProvider != null) papyrusDiagramItemProvider.dispose();
+ if (papyrusSyncTableItemProvider != null) papyrusSyncTableItemProvider.dispose();
+ if (papyrusTableItemProvider != null) papyrusTableItemProvider.dispose();
+ if (modelRuleItemProvider != null) modelRuleItemProvider.dispose();
+ if (owningRuleItemProvider != null) owningRuleItemProvider.dispose();
+ if (childRuleItemProvider != null) childRuleItemProvider.dispose();
+ if (paletteRuleItemProvider != null) paletteRuleItemProvider.dispose();
+ if (pathElementItemProvider != null) pathElementItemProvider.dispose();
+ if (categoryItemProvider != null) categoryItemProvider.dispose();
+ if (elementImportItemProvider != null) elementImportItemProvider.dispose();
+ }
+
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/ElementImportItemProvider.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/ElementImportItemProvider.java
new file mode 100755
index 00000000000..9592e8606c7
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/ElementImportItemProvider.java
@@ -0,0 +1,182 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.configuration.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ElementImport;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.infra.viewpoints.configuration.ElementImport} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ElementImportItemProvider
+ extends ItemProviderAdapter
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ElementImportItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addFromPropertyDescriptor(object);
+ addElementPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the From feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addFromPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_ElementImport_from_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_ElementImport_from_feature", "_UI_ElementImport_type"),
+ ConfigurationPackage.Literals.ELEMENT_IMPORT__FROM,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Element feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addElementPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_ElementImport_element_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_ElementImport_element_feature", "_UI_ElementImport_type"),
+ ConfigurationPackage.Literals.ELEMENT_IMPORT__ELEMENT,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This returns ElementImport.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/ElementImport.png"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ */
+ @Override
+ public String getText(Object object) {
+ ElementImport ei = (ElementImport) object;
+ StringBuilder builder = new StringBuilder("[");
+ builder.append(ei.getElement() != null ? ei.getElement().getName() : "?");
+ builder.append("] from ");
+ builder.append(ei.getFrom() != null ? PapyrusViewItemProvider.getTextFor(ei.getFrom()) : "?");
+ return builder.toString();
+ }
+
+
+ /**
+ * 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
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ 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 -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return ConfigurationEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/ModelRuleItemProvider.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/ModelRuleItemProvider.java
new file mode 100755
index 00000000000..450094af358
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/ModelRuleItemProvider.java
@@ -0,0 +1,251 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.configuration.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationFactory;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage;
+import org.eclipse.papyrus.infra.viewpoints.configuration.EClassPropertyDescriptor;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ModelRule;
+import org.eclipse.papyrus.infra.viewpoints.configuration.StereotypePropertyDescriptor;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.infra.viewpoints.configuration.ModelRule} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ModelRuleItemProvider
+ extends RuleItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ModelRuleItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addElementPropertyDescriptor(object);
+ addStereotypesPropertyDescriptor(object);
+ addMultiplicityPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Element feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ */
+ protected void addElementPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (new EClassPropertyDescriptor(createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_ModelRule_element_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_ModelRule_element_feature", "_UI_ModelRule_type"),
+ ConfigurationPackage.Literals.MODEL_RULE__ELEMENT,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null)));
+ }
+
+ /**
+ * This adds a property descriptor for the Stereotypes feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addStereotypesPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (new StereotypePropertyDescriptor(createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_ModelRule_stereotypes_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_ModelRule_stereotypes_feature", "_UI_ModelRule_type"),
+ ConfigurationPackage.Literals.MODEL_RULE__STEREOTYPES,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null)));
+ }
+
+ /**
+ * This adds a property descriptor for the Multiplicity feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addMultiplicityPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_ModelRule_multiplicity_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_ModelRule_multiplicity_feature", "_UI_ModelRule_type"),
+ ConfigurationPackage.Literals.MODEL_RULE__MULTIPLICITY,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.INTEGRAL_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 -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(ConfigurationPackage.Literals.MODEL_RULE__AUTO_SELECT_PATH);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- 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
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns ModelRule.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/ModelRule.png"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ */
+ @Override
+ public String getText(Object object) {
+ ModelRule rule = (ModelRule) object;
+ StringBuilder builder = new StringBuilder("Root: ");
+ if (!rule.getStereotypes().isEmpty()) {
+ builder.append("<<");
+ for (int i = 0; i != rule.getStereotypes().size(); i++) {
+ if (i != 0)
+ builder.append(",");
+ builder.append(rule.getStereotypes().get(i).getName());
+ }
+ builder.append(">> ");
+ }
+ builder.append(rule.getElement() != null ? rule.getElement().getName() : "#");
+ builder.append("[");
+ builder.append(rule.getMultiplicity() == -1 ? "*" : rule.getMultiplicity());
+ builder.append("] => ");
+ builder.append(rule.isPermit() ? "allow" : "deny");
+ return builder.toString();
+ }
+
+ /**
+ * 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
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(ModelRule.class)) {
+ case ConfigurationPackage.MODEL_RULE__MULTIPLICITY:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ case ConfigurationPackage.MODEL_RULE__AUTO_SELECT_PATH:
+ 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 -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ConfigurationPackage.Literals.MODEL_RULE__AUTO_SELECT_PATH,
+ ConfigurationFactory.eINSTANCE.createPathElement()));
+ }
+
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/OwningRuleItemProvider.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/OwningRuleItemProvider.java
new file mode 100755
index 00000000000..1748a6c4dd0
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/OwningRuleItemProvider.java
@@ -0,0 +1,210 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.configuration.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage;
+import org.eclipse.papyrus.infra.viewpoints.configuration.EClassPropertyDescriptor;
+import org.eclipse.papyrus.infra.viewpoints.configuration.OwningRule;
+import org.eclipse.papyrus.infra.viewpoints.configuration.StereotypePropertyDescriptor;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.infra.viewpoints.configuration.OwningRule} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class OwningRuleItemProvider
+ extends RuleItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OwningRuleItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addElementPropertyDescriptor(object);
+ addStereotypesPropertyDescriptor(object);
+ addMultiplicityPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Element feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ */
+ protected void addElementPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (new EClassPropertyDescriptor(createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_OwningRule_element_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_OwningRule_element_feature", "_UI_OwningRule_type"),
+ ConfigurationPackage.Literals.OWNING_RULE__ELEMENT,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null)));
+ }
+
+ /**
+ * This adds a property descriptor for the Stereotypes feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addStereotypesPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (new StereotypePropertyDescriptor(createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_OwningRule_stereotypes_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_OwningRule_stereotypes_feature", "_UI_OwningRule_type"),
+ ConfigurationPackage.Literals.OWNING_RULE__STEREOTYPES,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null)));
+ }
+
+ /**
+ * This adds a property descriptor for the Multiplicity feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addMultiplicityPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_OwningRule_multiplicity_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_OwningRule_multiplicity_feature", "_UI_OwningRule_type"),
+ ConfigurationPackage.Literals.OWNING_RULE__MULTIPLICITY,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This returns OwningRule.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/OwningRule.png"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ */
+ @Override
+ public String getText(Object object) {
+ OwningRule rule = (OwningRule) object;
+ StringBuilder builder = new StringBuilder("Owner: ");
+ if (!rule.getStereotypes().isEmpty()) {
+ builder.append("<<");
+ for (int i = 0; i != rule.getStereotypes().size(); i++) {
+ if (i != 0)
+ builder.append(",");
+ builder.append(rule.getStereotypes().get(i).getName());
+ }
+ builder.append(">> ");
+ }
+ builder.append(rule.getElement() != null ? rule.getElement().getName() : "#");
+ builder.append("[");
+ builder.append(rule.getMultiplicity() == -1 ? "*" : rule.getMultiplicity());
+ builder.append("] => ");
+ builder.append(rule.isPermit() ? "allow" : "deny");
+ return builder.toString();
+ }
+
+ /**
+ * 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
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(OwningRule.class)) {
+ case ConfigurationPackage.OWNING_RULE__MULTIPLICITY:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ 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 -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/PaletteRuleItemProvider.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/PaletteRuleItemProvider.java
new file mode 100755
index 00000000000..4d0cacbccbe
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/PaletteRuleItemProvider.java
@@ -0,0 +1,152 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.configuration.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PaletteRule;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.infra.viewpoints.configuration.PaletteRule} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PaletteRuleItemProvider
+ extends RuleItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PaletteRuleItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addElementPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Element feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addElementPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_PaletteRule_element_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_PaletteRule_element_feature", "_UI_PaletteRule_type"),
+ ConfigurationPackage.Literals.PALETTE_RULE__ELEMENT,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This returns PaletteRule.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/PaletteRule.png"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ */
+ @Override
+ public String getText(Object object) {
+ PaletteRule rule = (PaletteRule) object;
+ String data = "*";
+ if (rule.getElement() != null && !rule.getElement().isEmpty())
+ data = rule.getElement();
+ return "Palette: " + data + " => " + (rule.isPermit() ? "allow" : "deny");
+ }
+
+ /**
+ * 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
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(PaletteRule.class)) {
+ case ConfigurationPackage.PALETTE_RULE__ELEMENT:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ 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 -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/PapyrusConfigurationItemProvider.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/PapyrusConfigurationItemProvider.java
new file mode 100755
index 00000000000..699f0766555
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/PapyrusConfigurationItemProvider.java
@@ -0,0 +1,255 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.configuration.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationFactory;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage;
+import org.eclipse.papyrus.infra.viewpoints.configuration.EPackagePropertyDescriptor;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusConfiguration;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Factory;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.provider.ArchitectureFrameworkItemProvider;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusConfiguration} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PapyrusConfigurationItemProvider
+ extends ArchitectureFrameworkItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PapyrusConfigurationItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addDefaultStakeholderPropertyDescriptor(object);
+ addMetamodelPropertyDescriptor(object);
+ addCategoriesPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Default Stakeholder feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addDefaultStakeholderPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_PapyrusConfiguration_defaultStakeholder_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_PapyrusConfiguration_defaultStakeholder_feature", "_UI_PapyrusConfiguration_type"),
+ ConfigurationPackage.Literals.PAPYRUS_CONFIGURATION__DEFAULT_STAKEHOLDER,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Metamodel feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ */
+ protected void addMetamodelPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (new EPackagePropertyDescriptor(createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_PapyrusConfiguration_metamodel_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_PapyrusConfiguration_metamodel_feature", "_UI_PapyrusConfiguration_type"),
+ ConfigurationPackage.Literals.PAPYRUS_CONFIGURATION__METAMODEL,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null)));
+ }
+
+ /**
+ * This adds a property descriptor for the Categories feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addCategoriesPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_PapyrusConfiguration_categories_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_PapyrusConfiguration_categories_feature", "_UI_PapyrusConfiguration_type"),
+ ConfigurationPackage.Literals.PAPYRUS_CONFIGURATION__CATEGORIES,
+ true,
+ false,
+ true,
+ null,
+ 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 -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(ConfigurationPackage.Literals.PAPYRUS_CONFIGURATION__CATEGORIES);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- 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
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns PapyrusConfiguration.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/PapyrusConfiguration.png"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ */
+ @Override
+ public String getText(Object object) {
+ PapyrusConfiguration config = (PapyrusConfiguration) object;
+ if (config.getMetamodel() != null)
+ return "Papyrus Configuration (" + config.getMetamodel().getNsURI() + ")";
+ return "Papyrus Configuration (?)";
+ }
+
+ /**
+ * 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
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(PapyrusConfiguration.class)) {
+ case ConfigurationPackage.PAPYRUS_CONFIGURATION__CATEGORIES:
+ 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 -->
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ newChildDescriptors.add
+ (createChildParameter
+ (Iso42010Package.Literals.ARCHITECTURE_FRAMEWORK__VIEWPOINTS,
+ ConfigurationFactory.eINSTANCE.createPapyrusViewpoint()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (Iso42010Package.Literals.ARCHITECTURE_FRAMEWORK__STAKEHOLDERS,
+ Iso42010Factory.eINSTANCE.createStakeholder()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ConfigurationPackage.Literals.PAPYRUS_CONFIGURATION__CATEGORIES,
+ ConfigurationFactory.eINSTANCE.createCategory()));
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return ConfigurationEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/PapyrusDiagramItemProvider.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/PapyrusDiagramItemProvider.java
new file mode 100755
index 00000000000..8263e4d0dd1
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/PapyrusDiagramItemProvider.java
@@ -0,0 +1,226 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.configuration.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationFactory;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusDiagram;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusDiagram} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PapyrusDiagramItemProvider
+ extends PapyrusViewItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PapyrusDiagramItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addCustomPalettePropertyDescriptor(object);
+ addCustomStylePropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Custom Palette feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addCustomPalettePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_PapyrusDiagram_customPalette_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_PapyrusDiagram_customPalette_feature", "_UI_PapyrusDiagram_type"),
+ ConfigurationPackage.Literals.PAPYRUS_DIAGRAM__CUSTOM_PALETTE,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Custom Style feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addCustomStylePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_PapyrusDiagram_customStyle_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_PapyrusDiagram_customStyle_feature", "_UI_PapyrusDiagram_type"),
+ ConfigurationPackage.Literals.PAPYRUS_DIAGRAM__CUSTOM_STYLE,
+ 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 -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(ConfigurationPackage.Literals.PAPYRUS_DIAGRAM__CHILD_RULES);
+ childrenFeatures.add(ConfigurationPackage.Literals.PAPYRUS_DIAGRAM__PALETTE_RULES);
+ childrenFeatures.add(ConfigurationPackage.Literals.PAPYRUS_DIAGRAM__IMPORTS);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- 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
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns PapyrusDiagram.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/PapyrusDiagram.png"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ */
+ @Override
+ public String getText(Object object) {
+ return getTextFor((PapyrusDiagram) object);
+ }
+
+ /**
+ * 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
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(PapyrusDiagram.class)) {
+ case ConfigurationPackage.PAPYRUS_DIAGRAM__CUSTOM_PALETTE:
+ case ConfigurationPackage.PAPYRUS_DIAGRAM__CUSTOM_STYLE:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ case ConfigurationPackage.PAPYRUS_DIAGRAM__CHILD_RULES:
+ case ConfigurationPackage.PAPYRUS_DIAGRAM__PALETTE_RULES:
+ case ConfigurationPackage.PAPYRUS_DIAGRAM__IMPORTS:
+ 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 -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ConfigurationPackage.Literals.PAPYRUS_DIAGRAM__CHILD_RULES,
+ ConfigurationFactory.eINSTANCE.createChildRule()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ConfigurationPackage.Literals.PAPYRUS_DIAGRAM__PALETTE_RULES,
+ ConfigurationFactory.eINSTANCE.createPaletteRule()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ConfigurationPackage.Literals.PAPYRUS_DIAGRAM__IMPORTS,
+ ConfigurationFactory.eINSTANCE.createElementImport()));
+ }
+
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/PapyrusSyncTableItemProvider.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/PapyrusSyncTableItemProvider.java
new file mode 100755
index 00000000000..0c28697c661
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/PapyrusSyncTableItemProvider.java
@@ -0,0 +1,115 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.configuration.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusSyncTable;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusSyncTable} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PapyrusSyncTableItemProvider
+ extends PapyrusViewItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PapyrusSyncTableItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns PapyrusSyncTable.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/PapyrusSyncTable.png"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ */
+ @Override
+ public String getText(Object object) {
+ return getTextFor((PapyrusSyncTable) object);
+ }
+
+ /**
+ * 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
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ 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 -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/PapyrusTableItemProvider.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/PapyrusTableItemProvider.java
new file mode 100755
index 00000000000..ccef2d388ba
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/PapyrusTableItemProvider.java
@@ -0,0 +1,148 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.configuration.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusTable;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusTable} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PapyrusTableItemProvider
+ extends PapyrusViewItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PapyrusTableItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addConfigurationPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Configuration feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addConfigurationPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_PapyrusTable_configuration_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_PapyrusTable_configuration_feature", "_UI_PapyrusTable_type"),
+ ConfigurationPackage.Literals.PAPYRUS_TABLE__CONFIGURATION,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This returns PapyrusTable.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/PapyrusTable.png"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ */
+ @Override
+ public String getText(Object object) {
+ return getTextFor((PapyrusTable) object);
+ }
+
+ /**
+ * 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
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(PapyrusTable.class)) {
+ case ConfigurationPackage.PAPYRUS_TABLE__CONFIGURATION:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ 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 -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/PapyrusViewItemProvider.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/PapyrusViewItemProvider.java
new file mode 100755
index 00000000000..36462a2ff4b
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/PapyrusViewItemProvider.java
@@ -0,0 +1,316 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.configuration.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationFactory;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusView;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusViewpoint;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ProfilePropertyDescriptor;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.provider.ModelKindItemProvider;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusView} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PapyrusViewItemProvider
+ extends ModelKindItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PapyrusViewItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addIconPropertyDescriptor(object);
+ addParentPropertyDescriptor(object);
+ addProfilesPropertyDescriptor(object);
+ addImplementationIDPropertyDescriptor(object);
+ addCategoriesPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Icon feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addIconPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_PapyrusView_icon_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_PapyrusView_icon_feature", "_UI_PapyrusView_type"),
+ ConfigurationPackage.Literals.PAPYRUS_VIEW__ICON,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Parent feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addParentPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_PapyrusView_parent_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_PapyrusView_parent_feature", "_UI_PapyrusView_type"),
+ ConfigurationPackage.Literals.PAPYRUS_VIEW__PARENT,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Profiles feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addProfilesPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (new ProfilePropertyDescriptor(createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_PapyrusView_profiles_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_PapyrusView_profiles_feature", "_UI_PapyrusView_type"),
+ ConfigurationPackage.Literals.PAPYRUS_VIEW__PROFILES,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null)));
+ }
+
+ /**
+ * This adds a property descriptor for the Implementation ID feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addImplementationIDPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_PapyrusView_implementationID_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_PapyrusView_implementationID_feature", "_UI_PapyrusView_type"),
+ ConfigurationPackage.Literals.PAPYRUS_VIEW__IMPLEMENTATION_ID,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Categories feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addCategoriesPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_PapyrusView_categories_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_PapyrusView_categories_feature", "_UI_PapyrusView_type"),
+ ConfigurationPackage.Literals.PAPYRUS_VIEW__CATEGORIES,
+ true,
+ false,
+ true,
+ null,
+ 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 -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(ConfigurationPackage.Literals.PAPYRUS_VIEW__MODEL_RULES);
+ childrenFeatures.add(ConfigurationPackage.Literals.PAPYRUS_VIEW__OWNING_RULES);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- 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
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns PapyrusView.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/PapyrusView.png"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ return getTextFor((PapyrusView) object);
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ */
+ protected static String getTextFor(PapyrusView view) {
+ PapyrusViewpoint vp = (PapyrusViewpoint) view.eContainer();
+ if (view.getName() == null)
+ return (vp.getName() + " :: <natural> [" + view.getImplementationID() + "]");
+ return (vp.getName() + " :: " + view.getName());
+ }
+
+ /**
+ * 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
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(PapyrusView.class)) {
+ case ConfigurationPackage.PAPYRUS_VIEW__ICON:
+ case ConfigurationPackage.PAPYRUS_VIEW__IMPLEMENTATION_ID:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ case ConfigurationPackage.PAPYRUS_VIEW__MODEL_RULES:
+ case ConfigurationPackage.PAPYRUS_VIEW__OWNING_RULES:
+ 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 -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ConfigurationPackage.Literals.PAPYRUS_VIEW__MODEL_RULES,
+ ConfigurationFactory.eINSTANCE.createModelRule()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ConfigurationPackage.Literals.PAPYRUS_VIEW__OWNING_RULES,
+ ConfigurationFactory.eINSTANCE.createOwningRule()));
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return ConfigurationEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/PapyrusViewpointItemProvider.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/PapyrusViewpointItemProvider.java
new file mode 100755
index 00000000000..af4d56f7cb4
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/PapyrusViewpointItemProvider.java
@@ -0,0 +1,166 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.configuration.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationFactory;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusViewpoint;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.provider.ArchitectureViewpointItemProvider;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusViewpoint} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PapyrusViewpointItemProvider
+ extends ArchitectureViewpointItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PapyrusViewpointItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addParentPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Parent feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addParentPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_PapyrusViewpoint_parent_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_PapyrusViewpoint_parent_feature", "_UI_PapyrusViewpoint_type"),
+ ConfigurationPackage.Literals.PAPYRUS_VIEWPOINT__PARENT,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This returns PapyrusViewpoint.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/PapyrusViewpoint.png"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((PapyrusViewpoint)object).getName();
+ return label == null || label.length() == 0 ? getString("_UI_PapyrusViewpoint_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 -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ 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 -->
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ newChildDescriptors.add
+ (createChildParameter
+ (Iso42010Package.Literals.ARCHITECTURE_VIEWPOINT__MODEL_KINDS,
+ ConfigurationFactory.eINSTANCE.createPapyrusDiagram()));
+ newChildDescriptors.add
+ (createChildParameter
+ (Iso42010Package.Literals.ARCHITECTURE_VIEWPOINT__MODEL_KINDS,
+ ConfigurationFactory.eINSTANCE.createPapyrusTable()));
+ newChildDescriptors.add
+ (createChildParameter
+ (Iso42010Package.Literals.ARCHITECTURE_VIEWPOINT__MODEL_KINDS,
+ ConfigurationFactory.eINSTANCE.createPapyrusSyncTable()));
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return ConfigurationEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/PathElementItemProvider.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/PathElementItemProvider.java
new file mode 100755
index 00000000000..4dafa8baee5
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/PathElementItemProvider.java
@@ -0,0 +1,202 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.configuration.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage;
+import org.eclipse.papyrus.infra.viewpoints.configuration.EReferencePropertyDescriptor;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PathElement;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.infra.viewpoints.configuration.PathElement} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PathElementItemProvider
+ extends ItemProviderAdapter
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PathElementItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addFeaturePropertyDescriptor(object);
+ addOriginPropertyDescriptor(object);
+ addTargetPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Feature feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ */
+ protected void addFeaturePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (new EReferencePropertyDescriptor(createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_PathElement_feature_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_PathElement_feature_feature", "_UI_PathElement_type"),
+ ConfigurationPackage.Literals.PATH_ELEMENT__FEATURE,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null)));
+ }
+
+ /**
+ * This adds a property descriptor for the Origin feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ */
+ protected void addOriginPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_PathElement_origin_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_PathElement_origin_feature", "_UI_PathElement_type"),
+ ConfigurationPackage.Literals.PATH_ELEMENT__ORIGIN,
+ false,
+ false,
+ false,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Target feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addTargetPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_PathElement_target_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_PathElement_target_feature", "_UI_PathElement_type"),
+ ConfigurationPackage.Literals.PATH_ELEMENT__TARGET,
+ false,
+ false,
+ false,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This returns PathElement.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/PathElement.png"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ */
+ @Override
+ public String getText(Object object) {
+ PathElement path = (PathElement) object;
+ String data = "<undefined>";
+ if (path.getFeature() != null && path.getOrigin() != null)
+ data = path.getOrigin().getName() + "." + path.getFeature().getName() + " => " + path.getTarget().getName();
+ return data;
+ }
+
+ /**
+ * 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
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ 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 -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return ConfigurationEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/RuleItemProvider.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/RuleItemProvider.java
new file mode 100755
index 00000000000..6883828ee78
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.edit/src/org/eclipse/papyrus/infra/viewpoints/configuration/provider/RuleItemProvider.java
@@ -0,0 +1,155 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.configuration.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage;
+import org.eclipse.papyrus.infra.viewpoints.configuration.Rule;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.infra.viewpoints.configuration.Rule} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class RuleItemProvider
+ extends ItemProviderAdapter
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public RuleItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addPermitPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Permit feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addPermitPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Rule_permit_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_Rule_permit_feature", "_UI_Rule_type"),
+ ConfigurationPackage.Literals.RULE__PERMIT,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ Rule rule = (Rule)object;
+ return getString("_UI_Rule_type") + " " + rule.isPermit();
+ }
+
+ /**
+ * 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
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(Rule.class)) {
+ case ConfigurationPackage.RULE__PERMIT:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ 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 -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return ConfigurationEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/.classpath b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/.classpath
new file mode 100755
index 00000000000..2d1a4302f04
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/.project b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/.project
new file mode 100755
index 00000000000..bcf711a4642
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.infra.viewpoints.configuration.editor</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/.settings/org.eclipse.jdt.core.prefs b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/.settings/org.eclipse.jdt.core.prefs
new file mode 100755
index 00000000000..44217f8c068
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/META-INF/MANIFEST.MF b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/META-INF/MANIFEST.MF
new file mode 100755
index 00000000000..296c54dd063
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/META-INF/MANIFEST.MF
@@ -0,0 +1,21 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.papyrus.infra.viewpoints.configuration.editor;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-ClassPath: .
+Bundle-Activator: org.eclipse.papyrus.infra.viewpoints.configuration.presentation.ConfigurationEditorPlugin$Implementation
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: org.eclipse.papyrus.infra.viewpoints.configuration.presentation
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.core.resources,
+ org.eclipse.emf.ecore.xmi,
+ org.eclipse.emf.edit.ui,
+ org.eclipse.ui.ide,
+ org.eclipse.emf.ecore.edit,
+ org.eclipse.papyrus.infra.viewpoints.iso42010.edit;bundle-version="1.0.0",
+ org.eclipse.papyrus.infra.viewpoints.configuration;bundle-version="1.0.0",
+ org.eclipse.papyrus.infra.viewpoints.configuration.edit;bundle-version="1.0.0"
+Bundle-ActivationPolicy: lazy
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/about.html b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/about.html
new file mode 100755
index 00000000000..dd02e0be168
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>December 2, 2009</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/build.properties b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/build.properties
new file mode 100755
index 00000000000..8e222d89d9f
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/build.properties
@@ -0,0 +1,11 @@
+#
+
+bin.includes = .,\
+ icons/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties,\
+ about.html
+jars.compile.order = .
+source.. = src/
+output.. = bin
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/icons/full/obj16/ConfigurationModelFile.png b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/icons/full/obj16/ConfigurationModelFile.png
new file mode 100755
index 00000000000..3b2678c6fc5
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/icons/full/obj16/ConfigurationModelFile.png
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/icons/full/wizban/NewConfiguration.png b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/icons/full/wizban/NewConfiguration.png
new file mode 100755
index 00000000000..3bbe92e6221
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/icons/full/wizban/NewConfiguration.png
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/icons/full/wizban/NewConfiguration.svg b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/icons/full/wizban/NewConfiguration.svg
new file mode 100755
index 00000000000..6ff5248efe8
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/icons/full/wizban/NewConfiguration.svg
@@ -0,0 +1,250 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="750"
+ height="660"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="WizBan.svg"
+ inkscape:export-filename="C:\Users\LW238780\Desktop\Wizban.png"
+ inkscape:export-xdpi="9"
+ inkscape:export-ydpi="9">
+ <defs
+ id="defs4">
+ <linearGradient
+ id="linearGradient3795">
+ <stop
+ style="stop-color:#c8c8ff;stop-opacity:1;"
+ offset="0"
+ id="stop3797" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.58823532;"
+ offset="1"
+ id="stop3799" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3783">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3785" />
+ <stop
+ style="stop-color:#c8c8c8;stop-opacity:1;"
+ offset="1"
+ id="stop3787" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3765">
+ <stop
+ style="stop-color:#e6e6ff;stop-opacity:1;"
+ offset="0"
+ id="stop3767" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="1"
+ id="stop3769" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3757">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3759" />
+ <stop
+ style="stop-color:#aaaaaa;stop-opacity:1;"
+ offset="1"
+ id="stop3761" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3757"
+ id="linearGradient3763"
+ x1="444.28577"
+ y1="971.64789"
+ x2="604.28577"
+ y2="163.09605"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3765"
+ id="linearGradient3771"
+ x1="444.28577"
+ y1="971.64789"
+ x2="604.28577"
+ y2="163.09605"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3765"
+ id="linearGradient3019"
+ gradientUnits="userSpaceOnUse"
+ x1="444.28577"
+ y1="971.64789"
+ x2="444.28577"
+ y2="201.53497" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3757"
+ id="linearGradient3021"
+ gradientUnits="userSpaceOnUse"
+ x1="444.28577"
+ y1="971.64789"
+ x2="444.28577"
+ y2="201.53497" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3783"
+ id="linearGradient3023"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.25,0,0,1.25,-222.5,-53.090544)"
+ x1="758.57141"
+ y1="343.79074"
+ x2="948.75952"
+ y2="153.60266" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3795"
+ id="linearGradient3801"
+ x1="737.41138"
+ y1="1017.2488"
+ x2="230.78159"
+ y2="358.62936"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.49497475"
+ inkscape:cx="251.27384"
+ inkscape:cy="370.72485"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer2"
+ showgrid="false"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1178"
+ inkscape:window-x="-8"
+ inkscape:window-y="-8"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="File"
+ style="display:inline"
+ transform="translate(0,-364)">
+ <rect
+ style="fill:url(#linearGradient3801);fill-opacity:1;stroke:none"
+ id="rect3025"
+ width="750"
+ height="660"
+ x="0"
+ y="364.00003" />
+ <path
+ sodipodi:type="arc"
+ style="fill:#9696c8;fill-opacity:0.58823532;stroke:none"
+ id="path3803"
+ sodipodi:cx="550.53314"
+ sodipodi:cy="298.36539"
+ sodipodi:rx="261.62952"
+ sodipodi:ry="195.96959"
+ d="m 812.16266,298.36539 a 261.62952,195.96959 0 1 1 -523.25903,0 261.62952,195.96959 0 1 1 523.25903,0 z"
+ transform="matrix(0.63782687,-0.55249393,0.72923815,0.48323784,-19.016144,951.1577)" />
+ <g
+ id="g3008"
+ transform="matrix(0.49779558,0,0,0.49779558,-11.083413,475.28572)">
+ <path
+ sodipodi:nodetypes="cccccc"
+ inkscape:connector-curvature="0"
+ id="rect2985"
+ d="m 250.55206,152.91425 469.44797,0 229.44797,229.44793 -6e-5,619.44792 -698.89588,0 z"
+ style="fill:url(#linearGradient3019);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient3021);stroke-width:25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+ transform="translate(0,-28.36218)" />
+ <path
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0"
+ id="rect3780"
+ d="m 715,137.36218 250,250 -250,0 z"
+ style="fill:url(#linearGradient3023);fill-opacity:1;stroke:none;display:inline"
+ transform="translate(0,-28.36218)" />
+ <g
+ id="g3910">
+ <path
+ style="fill:#3232ff;fill-opacity:1;stroke:#000000;stroke-width:10;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+ inkscape:transform-center-x="-280"
+ d="m 333.91746,576.89245 331.1681,-11.03899 c 12.10305,20.96311 10.59675,36.84058 0,55.19468 l -331.1681,-11.03888 c -6.07195,-10.5169 -7.99455,-19.26985 0,-33.11681 z"
+ id="rect3797"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ sodipodi:type="arc"
+ style="fill:#3232ff;fill-opacity:0.99607843;fill-rule:evenodd;stroke:#000000;stroke-width:10.1804142;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+ id="path3027"
+ sodipodi:cx="428.57144"
+ sodipodi:cy="679.71429"
+ sodipodi:rx="84.285713"
+ sodipodi:ry="84.285713"
+ d="m 512.85715,679.71429 c 0,46.54972 -37.73599,84.28572 -84.28571,84.28572 -46.54971,0 -84.28571,-37.736 -84.28571,-84.28572 0,-46.54971 37.736,-84.28571 84.28571,-84.28571 46.54972,0 84.28571,37.736 84.28571,84.28571 z"
+ transform="matrix(0.98227829,0,0,0.98227829,-230.56514,-74.217723)" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0"
+ id="path3856"
+ d="M 306.62797,508.16338 587.90846,333.01926 c 20.96312,12.10306 27.59734,26.60652 27.59734,47.8 L 323.18637,536.84337 c -10.51692,-6.07194 -16.5584,-12.69091 -16.5584,-28.67999 z"
+ inkscape:transform-center-x="-243.7231"
+ style="fill:#3232ff;fill-opacity:1;stroke:#000000;stroke-width:10;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+ inkscape:transform-center-y="-143.60032" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0"
+ id="path3862"
+ d="m 248.63004,462.28699 156.02398,-292.3195 c 24.20614,0 37.20327,9.24325 47.80001,27.59734 l -175.144,281.28057 c -12.14388,0 -20.68545,-2.71145 -28.67999,-16.55841 z"
+ inkscape:transform-center-x="-143.60036"
+ style="fill:#3232ff;fill-opacity:1;stroke:#000000;stroke-width:10;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+ inkscape:transform-center-y="-243.72307" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0"
+ id="path3864"
+ d="m 323.18631,650.05833 292.31949,156.024 c 0,24.20612 -9.24324,37.20325 -27.59734,47.80001 l -281.28055,-175.144 c -2e-5,-12.14389 2.71144,-20.68545 16.5584,-28.68001 z"
+ inkscape:transform-center-x="-243.72307"
+ style="fill:#3232ff;fill-opacity:1;stroke:#000000;stroke-width:10;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+ inkscape:transform-center-y="143.60036" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0"
+ id="path3866"
+ d="m 277.30993,708.05626 175.1441,281.28046 c -12.10307,20.96318 -26.60651,27.59738 -47.80001,27.59738 L 248.62992,724.61466 c 6.07194,-10.5169 12.69091,-16.5584 28.68001,-16.5584 z"
+ inkscape:transform-center-x="-143.60031"
+ style="fill:#3232ff;fill-opacity:1;stroke:#000000;stroke-width:10;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+ inkscape:transform-center-y="243.72308" />
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/plugin.properties b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/plugin.properties
new file mode 100755
index 00000000000..568790234f0
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/plugin.properties
@@ -0,0 +1,65 @@
+##########################################################################################
+# Copyright (c) 2013 CEA LIST.
+#
+#
+# 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:
+# Laurent Wouters (CEA LIST) laurent.wouters@cea.fr - Initial API and implementation
+#
+########################################################################################
+
+pluginName = Papyrus Viewpoints Configuration - Editor (Incubation)
+providerName = Eclipse Modeling Project
+
+_UI_ConfigurationEditor_menu = &Configuration Editor
+
+_UI_CreateChild_menu_item = &New Child
+_UI_CreateSibling_menu_item = N&ew Sibling
+
+_UI_ShowPropertiesView_menu_item = Show &Properties View
+_UI_RefreshViewer_menu_item = &Refresh
+
+_UI_SelectionPage_label = Selection
+_UI_ParentPage_label = Parent
+_UI_ListPage_label = List
+_UI_TreePage_label = Tree
+_UI_TablePage_label = Table
+_UI_TreeWithColumnsPage_label = Tree with Columns
+_UI_ObjectColumn_label = Object
+_UI_SelfColumn_label = Self
+
+_UI_NoObjectSelected = Selected Nothing
+_UI_SingleObjectSelected = Selected Object: {0}
+_UI_MultiObjectSelected = Selected {0} Objects
+
+_UI_OpenEditorError_label = Open Editor
+
+_UI_Wizard_category = Papyrus
+
+_UI_CreateModelError_message = Problems encountered in file "{0}"
+
+_UI_ConfigurationModelWizard_label = Viewpoints configuration
+_UI_ConfigurationModelWizard_description = Create a new viewpoints configuration model
+
+_UI_ConfigurationEditor_label = Viewpoints Configuration Model Editor
+
+_UI_ConfigurationEditorFilenameDefaultBase = My
+_UI_ConfigurationEditorFilenameExtensions = configuration
+
+_UI_Wizard_label = New
+
+_WARN_FilenameExtension = The file name must end in ''.{0}''
+_WARN_FilenameExtensions = The file name must have one of the following extensions: {0}
+
+_UI_ModelObject = &Model Object
+_UI_XMLEncoding = &XML Encoding
+_UI_XMLEncodingChoices = UTF-8 ASCII UTF-16 UTF-16BE UTF-16LE ISO-8859-1
+_UI_Wizard_initial_object_description = Select a model object to create
+
+_UI_FileConflict_label = File Conflict
+_WARN_FileConflict = There are unsaved changes that conflict with changes made outside the editor. Do you wish to discard this editor's changes?
+
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/plugin.xml b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/plugin.xml
new file mode 100755
index 00000000000..a7bc395be29
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/plugin.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+-->
+
+<plugin>
+
+ <extension point="org.eclipse.ui.newWizards">
+ <!-- @generated configuration -->
+ <wizard
+ id="org.eclipse.papyrus.infra.viewpoints.configuration.presentation.ConfigurationModelWizardID"
+ name="%_UI_ConfigurationModelWizard_label"
+ class="org.eclipse.papyrus.infra.viewpoints.configuration.presentation.ConfigurationModelWizard"
+ category="org.eclipse.papyrus.wizards.category"
+ icon="icons/full/obj16/ConfigurationModelFile.png">
+ <description>%_UI_ConfigurationModelWizard_description</description>
+ <selection class="org.eclipse.core.resources.IResource"/>
+ </wizard>
+ </extension>
+
+ <extension point="org.eclipse.ui.editors">
+ <!-- @generated configuration -->
+ <editor
+ id="org.eclipse.papyrus.infra.viewpoints.configuration.presentation.ConfigurationEditorID"
+ name="%_UI_ConfigurationEditor_label"
+ icon="icons/full/obj16/ConfigurationModelFile.png"
+ extensions="configuration"
+ class="org.eclipse.papyrus.infra.viewpoints.configuration.presentation.ConfigurationEditor"
+ contributorClass="org.eclipse.papyrus.infra.viewpoints.configuration.presentation.ConfigurationActionBarContributor">
+ </editor>
+ </extension>
+
+</plugin>
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/src/org/eclipse/papyrus/infra/viewpoints/configuration/presentation/ConfigurationActionBarContributor.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/src/org/eclipse/papyrus/infra/viewpoints/configuration/presentation/ConfigurationActionBarContributor.java
new file mode 100755
index 00000000000..9d1858515c4
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/src/org/eclipse/papyrus/infra/viewpoints/configuration/presentation/ConfigurationActionBarContributor.java
@@ -0,0 +1,434 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.configuration.presentation;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.emf.common.ui.viewer.IViewerProvider;
+
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.domain.IEditingDomainProvider;
+
+import org.eclipse.emf.edit.ui.action.ControlAction;
+import org.eclipse.emf.edit.ui.action.CreateChildAction;
+import org.eclipse.emf.edit.ui.action.CreateSiblingAction;
+import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;
+import org.eclipse.emf.edit.ui.action.LoadResourceAction;
+import org.eclipse.emf.edit.ui.action.ValidateAction;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.ActionContributionItem;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.IContributionItem;
+import org.eclipse.jface.action.IContributionManager;
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.action.SubContributionItem;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.Viewer;
+
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.PartInitException;
+
+/**
+ * This is the action bar contributor for the Configuration model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ConfigurationActionBarContributor
+ extends EditingDomainActionBarContributor
+ implements ISelectionChangedListener {
+ /**
+ * This keeps track of the active editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IEditorPart activeEditorPart;
+
+ /**
+ * This keeps track of the current selection provider.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ISelectionProvider selectionProvider;
+
+ /**
+ * This action opens the Properties view.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IAction showPropertiesViewAction =
+ new Action(ConfigurationEditorPlugin.INSTANCE.getString("_UI_ShowPropertiesView_menu_item")) {
+ @Override
+ public void run() {
+ try {
+ getPage().showView("org.eclipse.ui.views.PropertySheet");
+ }
+ catch (PartInitException exception) {
+ ConfigurationEditorPlugin.INSTANCE.log(exception);
+ }
+ }
+ };
+
+ /**
+ * This action refreshes the viewer of the current editor if the editor
+ * implements {@link org.eclipse.emf.common.ui.viewer.IViewerProvider}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IAction refreshViewerAction =
+ new Action(ConfigurationEditorPlugin.INSTANCE.getString("_UI_RefreshViewer_menu_item")) {
+ @Override
+ public boolean isEnabled() {
+ return activeEditorPart instanceof IViewerProvider;
+ }
+
+ @Override
+ public void run() {
+ if (activeEditorPart instanceof IViewerProvider) {
+ Viewer viewer = ((IViewerProvider)activeEditorPart).getViewer();
+ if (viewer != null) {
+ viewer.refresh();
+ }
+ }
+ }
+ };
+
+ /**
+ * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateChildAction} corresponding to each descriptor
+ * generated for the current selection by the item provider.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<IAction> createChildActions;
+
+ /**
+ * This is the menu manager into which menu contribution items should be added for CreateChild actions.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IMenuManager createChildMenuManager;
+
+ /**
+ * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} corresponding to each descriptor
+ * generated for the current selection by the item provider.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<IAction> createSiblingActions;
+
+ /**
+ * This is the menu manager into which menu contribution items should be added for CreateSibling actions.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IMenuManager createSiblingMenuManager;
+
+ /**
+ * This creates an instance of the contributor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ConfigurationActionBarContributor() {
+ super(ADDITIONS_LAST_STYLE);
+ loadResourceAction = new LoadResourceAction();
+ validateAction = new ValidateAction();
+ controlAction = new ControlAction();
+ }
+
+ /**
+ * This adds Separators for editor additions to the tool bar.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void contributeToToolBar(IToolBarManager toolBarManager) {
+ toolBarManager.add(new Separator("configuration-settings"));
+ toolBarManager.add(new Separator("configuration-additions"));
+ }
+
+ /**
+ * This adds to the menu bar a menu and some separators for editor additions,
+ * as well as the sub-menus for object creation items.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void contributeToMenu(IMenuManager menuManager) {
+ super.contributeToMenu(menuManager);
+
+ IMenuManager submenuManager = new MenuManager(ConfigurationEditorPlugin.INSTANCE.getString("_UI_ConfigurationEditor_menu"), "org.eclipse.papyrus.infra.viewpoints.configurationMenuID");
+ menuManager.insertAfter("additions", submenuManager);
+ submenuManager.add(new Separator("settings"));
+ submenuManager.add(new Separator("actions"));
+ submenuManager.add(new Separator("additions"));
+ submenuManager.add(new Separator("additions-end"));
+
+ // Prepare for CreateChild item addition or removal.
+ //
+ createChildMenuManager = new MenuManager(ConfigurationEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item"));
+ submenuManager.insertBefore("additions", createChildMenuManager);
+
+ // Prepare for CreateSibling item addition or removal.
+ //
+ createSiblingMenuManager = new MenuManager(ConfigurationEditorPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item"));
+ submenuManager.insertBefore("additions", createSiblingMenuManager);
+
+ // Force an update because Eclipse hides empty menus now.
+ //
+ submenuManager.addMenuListener
+ (new IMenuListener() {
+ public void menuAboutToShow(IMenuManager menuManager) {
+ menuManager.updateAll(true);
+ }
+ });
+
+ addGlobalActions(submenuManager);
+ }
+
+ /**
+ * When the active editor changes, this remembers the change and registers with it as a selection provider.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setActiveEditor(IEditorPart part) {
+ super.setActiveEditor(part);
+ activeEditorPart = part;
+
+ // Switch to the new selection provider.
+ //
+ if (selectionProvider != null) {
+ selectionProvider.removeSelectionChangedListener(this);
+ }
+ if (part == null) {
+ selectionProvider = null;
+ }
+ else {
+ selectionProvider = part.getSite().getSelectionProvider();
+ selectionProvider.addSelectionChangedListener(this);
+
+ // Fake a selection changed event to update the menus.
+ //
+ if (selectionProvider.getSelection() != null) {
+ selectionChanged(new SelectionChangedEvent(selectionProvider, selectionProvider.getSelection()));
+ }
+ }
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionChangedListener},
+ * handling {@link org.eclipse.jface.viewers.SelectionChangedEvent}s by querying for the children and siblings
+ * that can be added to the selected object and updating the menus accordingly.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void selectionChanged(SelectionChangedEvent event) {
+ // Remove any menu items for old selection.
+ //
+ if (createChildMenuManager != null) {
+ depopulateManager(createChildMenuManager, createChildActions);
+ }
+ if (createSiblingMenuManager != null) {
+ depopulateManager(createSiblingMenuManager, createSiblingActions);
+ }
+
+ // Query the new selection for appropriate new child/sibling descriptors
+ //
+ Collection<?> newChildDescriptors = null;
+ Collection<?> newSiblingDescriptors = null;
+
+ ISelection selection = event.getSelection();
+ if (selection instanceof IStructuredSelection && ((IStructuredSelection)selection).size() == 1) {
+ Object object = ((IStructuredSelection)selection).getFirstElement();
+
+ EditingDomain domain = ((IEditingDomainProvider)activeEditorPart).getEditingDomain();
+
+ newChildDescriptors = domain.getNewChildDescriptors(object, null);
+ newSiblingDescriptors = domain.getNewChildDescriptors(null, object);
+ }
+
+ // Generate actions for selection; populate and redraw the menus.
+ //
+ createChildActions = generateCreateChildActions(newChildDescriptors, selection);
+ createSiblingActions = generateCreateSiblingActions(newSiblingDescriptors, selection);
+
+ if (createChildMenuManager != null) {
+ populateManager(createChildMenuManager, createChildActions, null);
+ createChildMenuManager.update(true);
+ }
+ if (createSiblingMenuManager != null) {
+ populateManager(createSiblingMenuManager, createSiblingActions, null);
+ createSiblingMenuManager.update(true);
+ }
+ }
+
+ /**
+ * This generates a {@link org.eclipse.emf.edit.ui.action.CreateChildAction} for each object in <code>descriptors</code>,
+ * and returns the collection of these actions.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<IAction> generateCreateChildActions(Collection<?> descriptors, ISelection selection) {
+ Collection<IAction> actions = new ArrayList<IAction>();
+ if (descriptors != null) {
+ for (Object descriptor : descriptors) {
+ actions.add(new CreateChildAction(activeEditorPart, selection, descriptor));
+ }
+ }
+ return actions;
+ }
+
+ /**
+ * This generates a {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} for each object in <code>descriptors</code>,
+ * and returns the collection of these actions.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<IAction> generateCreateSiblingActions(Collection<?> descriptors, ISelection selection) {
+ Collection<IAction> actions = new ArrayList<IAction>();
+ if (descriptors != null) {
+ for (Object descriptor : descriptors) {
+ actions.add(new CreateSiblingAction(activeEditorPart, selection, descriptor));
+ }
+ }
+ return actions;
+ }
+
+ /**
+ * This populates the specified <code>manager</code> with {@link org.eclipse.jface.action.ActionContributionItem}s
+ * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection,
+ * by inserting them before the specified contribution item <code>contributionID</code>.
+ * If <code>contributionID</code> is <code>null</code>, they are simply added.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void populateManager(IContributionManager manager, Collection<? extends IAction> actions, String contributionID) {
+ if (actions != null) {
+ for (IAction action : actions) {
+ if (contributionID != null) {
+ manager.insertBefore(contributionID, action);
+ }
+ else {
+ manager.add(action);
+ }
+ }
+ }
+ }
+
+ /**
+ * This removes from the specified <code>manager</code> all {@link org.eclipse.jface.action.ActionContributionItem}s
+ * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void depopulateManager(IContributionManager manager, Collection<? extends IAction> actions) {
+ if (actions != null) {
+ IContributionItem[] items = manager.getItems();
+ for (int i = 0; i < items.length; i++) {
+ // Look into SubContributionItems
+ //
+ IContributionItem contributionItem = items[i];
+ while (contributionItem instanceof SubContributionItem) {
+ contributionItem = ((SubContributionItem)contributionItem).getInnerItem();
+ }
+
+ // Delete the ActionContributionItems with matching action.
+ //
+ if (contributionItem instanceof ActionContributionItem) {
+ IAction action = ((ActionContributionItem)contributionItem).getAction();
+ if (actions.contains(action)) {
+ manager.remove(contributionItem);
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * This populates the pop-up menu before it appears.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void menuAboutToShow(IMenuManager menuManager) {
+ super.menuAboutToShow(menuManager);
+ MenuManager submenuManager = null;
+
+ submenuManager = new MenuManager(ConfigurationEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item"));
+ populateManager(submenuManager, createChildActions, null);
+ menuManager.insertBefore("edit", submenuManager);
+
+ submenuManager = new MenuManager(ConfigurationEditorPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item"));
+ populateManager(submenuManager, createSiblingActions, null);
+ menuManager.insertBefore("edit", submenuManager);
+ }
+
+ /**
+ * This inserts global actions before the "additions-end" separator.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void addGlobalActions(IMenuManager menuManager) {
+ menuManager.insertAfter("additions-end", new Separator("ui-actions"));
+ menuManager.insertAfter("ui-actions", showPropertiesViewAction);
+
+ refreshViewerAction.setEnabled(refreshViewerAction.isEnabled());
+ menuManager.insertAfter("ui-actions", refreshViewerAction);
+
+ super.addGlobalActions(menuManager);
+ }
+
+ /**
+ * This ensures that a delete action will clean up all references to deleted objects.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean removeAllReferencesOnDelete() {
+ return true;
+ }
+
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/src/org/eclipse/papyrus/infra/viewpoints/configuration/presentation/ConfigurationEditor.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/src/org/eclipse/papyrus/infra/viewpoints/configuration/presentation/ConfigurationEditor.java
new file mode 100755
index 00000000000..07e0af3313e
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/src/org/eclipse/papyrus/infra/viewpoints/configuration/presentation/ConfigurationEditor.java
@@ -0,0 +1,1795 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.configuration.presentation;
+
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.EventObject;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IResourceChangeEvent;
+import org.eclipse.core.resources.IResourceChangeListener;
+import org.eclipse.core.resources.IResourceDelta;
+import org.eclipse.core.resources.IResourceDeltaVisitor;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.emf.common.command.BasicCommandStack;
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.common.command.CommandStack;
+import org.eclipse.emf.common.command.CommandStackListener;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.ui.MarkerHelper;
+import org.eclipse.emf.common.ui.ViewerPane;
+import org.eclipse.emf.common.ui.editor.ProblemEditorPart;
+import org.eclipse.emf.common.ui.viewer.IViewerProvider;
+import org.eclipse.emf.common.util.BasicDiagnostic;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.provider.EcoreItemProviderAdapterFactory;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.util.EContentAdapter;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.domain.IEditingDomainProvider;
+import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
+import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory;
+import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;
+import org.eclipse.emf.edit.ui.celleditor.AdapterFactoryTreeEditor;
+import org.eclipse.emf.edit.ui.dnd.EditingDomainViewerDropAdapter;
+import org.eclipse.emf.edit.ui.dnd.LocalTransfer;
+import org.eclipse.emf.edit.ui.dnd.ViewerDragAdapter;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.emf.edit.ui.provider.UnwrappingSelectionProvider;
+import org.eclipse.emf.edit.ui.util.EditUIMarkerHelper;
+import org.eclipse.emf.edit.ui.util.EditUIUtil;
+import org.eclipse.emf.edit.ui.view.ExtendedPropertySheetPage;
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IStatusLineManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.dialogs.ProgressMonitorDialog;
+import org.eclipse.jface.util.LocalSelectionTransfer;
+import org.eclipse.jface.viewers.ColumnWeightData;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ListViewer;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.jface.viewers.TableLayout;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.papyrus.infra.viewpoints.configuration.provider.ConfigurationItemProviderAdapterFactory;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.provider.Iso42010ItemProviderAdapterFactory;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CTabFolder;
+import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.FileTransfer;
+import org.eclipse.swt.dnd.Transfer;
+import org.eclipse.swt.events.ControlAdapter;
+import org.eclipse.swt.events.ControlEvent;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.swt.widgets.TreeColumn;
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.IPartListener;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+import org.eclipse.ui.dialogs.SaveAsDialog;
+import org.eclipse.ui.ide.IGotoMarker;
+import org.eclipse.ui.part.FileEditorInput;
+import org.eclipse.ui.part.MultiPageEditorPart;
+import org.eclipse.ui.views.contentoutline.ContentOutline;
+import org.eclipse.ui.views.contentoutline.ContentOutlinePage;
+import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
+import org.eclipse.ui.views.properties.IPropertySheetPage;
+import org.eclipse.ui.views.properties.PropertySheet;
+import org.eclipse.ui.views.properties.PropertySheetPage;
+
+
+/**
+ * This is an example of a Configuration model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ConfigurationEditor
+ extends MultiPageEditorPart
+ implements IEditingDomainProvider, ISelectionProvider, IMenuListener, IViewerProvider, IGotoMarker {
+ /**
+ * This keeps track of the editing domain that is used to track all changes to the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AdapterFactoryEditingDomain editingDomain;
+
+ /**
+ * This is the one adapter factory used for providing views of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ComposedAdapterFactory adapterFactory;
+
+ /**
+ * This is the content outline page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IContentOutlinePage contentOutlinePage;
+
+ /**
+ * This is a kludge...
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IStatusLineManager contentOutlineStatusLineManager;
+
+ /**
+ * This is the content outline page's viewer.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TreeViewer contentOutlineViewer;
+
+ /**
+ * This is the property sheet page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected List<PropertySheetPage> propertySheetPages = new ArrayList<PropertySheetPage>();
+
+ /**
+ * This is the viewer that shadows the selection in the content outline.
+ * The parent relation must be correctly defined for this to work.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TreeViewer selectionViewer;
+
+ /**
+ * This inverts the roll of parent and child in the content provider and show parents as a tree.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TreeViewer parentViewer;
+
+ /**
+ * This shows how a tree view works.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TreeViewer treeViewer;
+
+ /**
+ * This shows how a list view works.
+ * A list viewer doesn't support icons.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ListViewer listViewer;
+
+ /**
+ * This shows how a table view works.
+ * A table can be used as a list with icons.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TableViewer tableViewer;
+
+ /**
+ * This shows how a tree view with columns works.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TreeViewer treeViewerWithColumns;
+
+ /**
+ * This keeps track of the active viewer pane, in the book.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ViewerPane currentViewerPane;
+
+ /**
+ * This keeps track of the active content viewer, which may be either one of the viewers in the pages or the content outline viewer.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Viewer currentViewer;
+
+ /**
+ * This listens to which ever viewer is active.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ISelectionChangedListener selectionChangedListener;
+
+ /**
+ * This keeps track of all the {@link org.eclipse.jface.viewers.ISelectionChangedListener}s that are listening to this editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<ISelectionChangedListener> selectionChangedListeners = new ArrayList<ISelectionChangedListener>();
+
+ /**
+ * This keeps track of the selection of the editor as a whole.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ISelection editorSelection = StructuredSelection.EMPTY;
+
+ /**
+ * The MarkerHelper is responsible for creating workspace resource markers presented
+ * in Eclipse's Problems View.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MarkerHelper markerHelper = new EditUIMarkerHelper();
+
+ /**
+ * This listens for when the outline becomes active
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IPartListener partListener =
+ new IPartListener() {
+ public void partActivated(IWorkbenchPart p) {
+ if (p instanceof ContentOutline) {
+ if (((ContentOutline)p).getCurrentPage() == contentOutlinePage) {
+ getActionBarContributor().setActiveEditor(ConfigurationEditor.this);
+
+ setCurrentViewer(contentOutlineViewer);
+ }
+ }
+ else if (p instanceof PropertySheet) {
+ if (propertySheetPages.contains(((PropertySheet)p).getCurrentPage())) {
+ getActionBarContributor().setActiveEditor(ConfigurationEditor.this);
+ handleActivate();
+ }
+ }
+ else if (p == ConfigurationEditor.this) {
+ handleActivate();
+ }
+ }
+ public void partBroughtToTop(IWorkbenchPart p) {
+ // Ignore.
+ }
+ public void partClosed(IWorkbenchPart p) {
+ // Ignore.
+ }
+ public void partDeactivated(IWorkbenchPart p) {
+ // Ignore.
+ }
+ public void partOpened(IWorkbenchPart p) {
+ // Ignore.
+ }
+ };
+
+ /**
+ * Resources that have been removed since last activation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<Resource> removedResources = new ArrayList<Resource>();
+
+ /**
+ * Resources that have been changed since last activation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<Resource> changedResources = new ArrayList<Resource>();
+
+ /**
+ * Resources that have been saved.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<Resource> savedResources = new ArrayList<Resource>();
+
+ /**
+ * Map to store the diagnostic associated with a resource.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Map<Resource, Diagnostic> resourceToDiagnosticMap = new LinkedHashMap<Resource, Diagnostic>();
+
+ /**
+ * Controls whether the problem indication should be updated.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected boolean updateProblemIndication = true;
+
+ /**
+ * Adapter used to update the problem indication when resources are demanded loaded.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EContentAdapter problemIndicationAdapter =
+ new EContentAdapter() {
+ @Override
+ public void notifyChanged(Notification notification) {
+ if (notification.getNotifier() instanceof Resource) {
+ switch (notification.getFeatureID(Resource.class)) {
+ case Resource.RESOURCE__IS_LOADED:
+ case Resource.RESOURCE__ERRORS:
+ case Resource.RESOURCE__WARNINGS: {
+ Resource resource = (Resource)notification.getNotifier();
+ Diagnostic diagnostic = analyzeResourceProblems(resource, null);
+ if (diagnostic.getSeverity() != Diagnostic.OK) {
+ resourceToDiagnosticMap.put(resource, diagnostic);
+ }
+ else {
+ resourceToDiagnosticMap.remove(resource);
+ }
+
+ if (updateProblemIndication) {
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable() {
+ public void run() {
+ updateProblemIndication();
+ }
+ });
+ }
+ break;
+ }
+ }
+ }
+ else {
+ super.notifyChanged(notification);
+ }
+ }
+
+ @Override
+ protected void setTarget(Resource target) {
+ basicSetTarget(target);
+ }
+
+ @Override
+ protected void unsetTarget(Resource target) {
+ basicUnsetTarget(target);
+ resourceToDiagnosticMap.remove(target);
+ if (updateProblemIndication) {
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable() {
+ public void run() {
+ updateProblemIndication();
+ }
+ });
+ }
+ }
+ };
+
+ /**
+ * This listens for workspace changes.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IResourceChangeListener resourceChangeListener =
+ new IResourceChangeListener() {
+ public void resourceChanged(IResourceChangeEvent event) {
+ IResourceDelta delta = event.getDelta();
+ try {
+ class ResourceDeltaVisitor implements IResourceDeltaVisitor {
+ protected ResourceSet resourceSet = editingDomain.getResourceSet();
+ protected Collection<Resource> changedResources = new ArrayList<Resource>();
+ protected Collection<Resource> removedResources = new ArrayList<Resource>();
+
+ public boolean visit(IResourceDelta delta) {
+ if (delta.getResource().getType() == IResource.FILE) {
+ if (delta.getKind() == IResourceDelta.REMOVED ||
+ delta.getKind() == IResourceDelta.CHANGED && delta.getFlags() != IResourceDelta.MARKERS) {
+ Resource resource = resourceSet.getResource(URI.createPlatformResourceURI(delta.getFullPath().toString(), true), false);
+ if (resource != null) {
+ if (delta.getKind() == IResourceDelta.REMOVED) {
+ removedResources.add(resource);
+ }
+ else if (!savedResources.remove(resource)) {
+ changedResources.add(resource);
+ }
+ }
+ }
+ return false;
+ }
+
+ return true;
+ }
+
+ public Collection<Resource> getChangedResources() {
+ return changedResources;
+ }
+
+ public Collection<Resource> getRemovedResources() {
+ return removedResources;
+ }
+ }
+
+ final ResourceDeltaVisitor visitor = new ResourceDeltaVisitor();
+ delta.accept(visitor);
+
+ if (!visitor.getRemovedResources().isEmpty()) {
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable() {
+ public void run() {
+ removedResources.addAll(visitor.getRemovedResources());
+ if (!isDirty()) {
+ getSite().getPage().closeEditor(ConfigurationEditor.this, false);
+ }
+ }
+ });
+ }
+
+ if (!visitor.getChangedResources().isEmpty()) {
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable() {
+ public void run() {
+ changedResources.addAll(visitor.getChangedResources());
+ if (getSite().getPage().getActiveEditor() == ConfigurationEditor.this) {
+ handleActivate();
+ }
+ }
+ });
+ }
+ }
+ catch (CoreException exception) {
+ ConfigurationEditorPlugin.INSTANCE.log(exception);
+ }
+ }
+ };
+
+ /**
+ * Handles activation of the editor or it's associated views.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void handleActivate() {
+ // Recompute the read only state.
+ //
+ if (editingDomain.getResourceToReadOnlyMap() != null) {
+ editingDomain.getResourceToReadOnlyMap().clear();
+
+ // Refresh any actions that may become enabled or disabled.
+ //
+ setSelection(getSelection());
+ }
+
+ if (!removedResources.isEmpty()) {
+ if (handleDirtyConflict()) {
+ getSite().getPage().closeEditor(ConfigurationEditor.this, false);
+ }
+ else {
+ removedResources.clear();
+ changedResources.clear();
+ savedResources.clear();
+ }
+ }
+ else if (!changedResources.isEmpty()) {
+ changedResources.removeAll(savedResources);
+ handleChangedResources();
+ changedResources.clear();
+ savedResources.clear();
+ }
+ }
+
+ /**
+ * Handles what to do with changed resources on activation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void handleChangedResources() {
+ if (!changedResources.isEmpty() && (!isDirty() || handleDirtyConflict())) {
+ if (isDirty()) {
+ changedResources.addAll(editingDomain.getResourceSet().getResources());
+ }
+ editingDomain.getCommandStack().flush();
+
+ updateProblemIndication = false;
+ for (Resource resource : changedResources) {
+ if (resource.isLoaded()) {
+ resource.unload();
+ try {
+ resource.load(Collections.EMPTY_MAP);
+ }
+ catch (IOException exception) {
+ if (!resourceToDiagnosticMap.containsKey(resource)) {
+ resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+ }
+ }
+ }
+ }
+
+ if (AdapterFactoryEditingDomain.isStale(editorSelection)) {
+ setSelection(StructuredSelection.EMPTY);
+ }
+
+ updateProblemIndication = true;
+ updateProblemIndication();
+ }
+ }
+
+ /**
+ * Updates the problems indication with the information described in the specified diagnostic.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void updateProblemIndication() {
+ if (updateProblemIndication) {
+ BasicDiagnostic diagnostic =
+ new BasicDiagnostic
+ (Diagnostic.OK,
+ "org.eclipse.papyrus.infra.viewpoints.configuration.editor",
+ 0,
+ null,
+ new Object [] { editingDomain.getResourceSet() });
+ for (Diagnostic childDiagnostic : resourceToDiagnosticMap.values()) {
+ if (childDiagnostic.getSeverity() != Diagnostic.OK) {
+ diagnostic.add(childDiagnostic);
+ }
+ }
+
+ int lastEditorPage = getPageCount() - 1;
+ if (lastEditorPage >= 0 && getEditor(lastEditorPage) instanceof ProblemEditorPart) {
+ ((ProblemEditorPart)getEditor(lastEditorPage)).setDiagnostic(diagnostic);
+ if (diagnostic.getSeverity() != Diagnostic.OK) {
+ setActivePage(lastEditorPage);
+ }
+ }
+ else if (diagnostic.getSeverity() != Diagnostic.OK) {
+ ProblemEditorPart problemEditorPart = new ProblemEditorPart();
+ problemEditorPart.setDiagnostic(diagnostic);
+ problemEditorPart.setMarkerHelper(markerHelper);
+ try {
+ addPage(++lastEditorPage, problemEditorPart, getEditorInput());
+ setPageText(lastEditorPage, problemEditorPart.getPartName());
+ setActivePage(lastEditorPage);
+ showTabs();
+ }
+ catch (PartInitException exception) {
+ ConfigurationEditorPlugin.INSTANCE.log(exception);
+ }
+ }
+
+ if (markerHelper.hasMarkers(editingDomain.getResourceSet())) {
+ markerHelper.deleteMarkers(editingDomain.getResourceSet());
+ if (diagnostic.getSeverity() != Diagnostic.OK) {
+ try {
+ markerHelper.createMarkers(diagnostic);
+ }
+ catch (CoreException exception) {
+ ConfigurationEditorPlugin.INSTANCE.log(exception);
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * Shows a dialog that asks if conflicting changes should be discarded.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected boolean handleDirtyConflict() {
+ return
+ MessageDialog.openQuestion
+ (getSite().getShell(),
+ getString("_UI_FileConflict_label"),
+ getString("_WARN_FileConflict"));
+ }
+
+ /**
+ * This creates a model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ConfigurationEditor() {
+ super();
+ initializeEditingDomain();
+ }
+
+ /**
+ * This sets up the editing domain for the model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void initializeEditingDomain() {
+ // Create an adapter factory that yields item providers.
+ //
+ adapterFactory = new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE);
+
+ adapterFactory.addAdapterFactory(new ResourceItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new ConfigurationItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new EcoreItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new Iso42010ItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory());
+
+ // Create the command stack that will notify this editor as commands are executed.
+ //
+ BasicCommandStack commandStack = new BasicCommandStack();
+
+ // Add a listener to set the most recent command's affected objects to be the selection of the viewer with focus.
+ //
+ commandStack.addCommandStackListener
+ (new CommandStackListener() {
+ public void commandStackChanged(final EventObject event) {
+ getContainer().getDisplay().asyncExec
+ (new Runnable() {
+ public void run() {
+ firePropertyChange(IEditorPart.PROP_DIRTY);
+
+ // Try to select the affected objects.
+ //
+ Command mostRecentCommand = ((CommandStack)event.getSource()).getMostRecentCommand();
+ if (mostRecentCommand != null) {
+ setSelectionToViewer(mostRecentCommand.getAffectedObjects());
+ currentViewer.refresh();
+ }
+ for (Iterator<PropertySheetPage> i = propertySheetPages.iterator(); i.hasNext(); ) {
+ PropertySheetPage propertySheetPage = i.next();
+ if (propertySheetPage.getControl().isDisposed()) {
+ i.remove();
+ }
+ else {
+ propertySheetPage.refresh();
+ }
+ }
+ }
+ });
+ }
+ });
+
+ // Create the editing domain with a special command stack.
+ //
+ editingDomain = new AdapterFactoryEditingDomain(adapterFactory, commandStack, new HashMap<Resource, Boolean>());
+ }
+
+ /**
+ * This is here for the listener to be able to call it.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void firePropertyChange(int action) {
+ super.firePropertyChange(action);
+ }
+
+ /**
+ * This sets the selection into whichever viewer is active.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSelectionToViewer(Collection<?> collection) {
+ final Collection<?> theSelection = collection;
+ // Make sure it's okay.
+ //
+ if (theSelection != null && !theSelection.isEmpty()) {
+ Runnable runnable =
+ new Runnable() {
+ public void run() {
+ // Try to select the items in the current content viewer of the editor.
+ //
+ if (currentViewer != null) {
+ currentViewer.setSelection(new StructuredSelection(theSelection.toArray()), true);
+ }
+ }
+ };
+ getSite().getShell().getDisplay().asyncExec(runnable);
+ }
+ }
+
+ /**
+ * This returns the editing domain as required by the {@link IEditingDomainProvider} interface.
+ * This is important for implementing the static methods of {@link AdapterFactoryEditingDomain}
+ * and for supporting {@link org.eclipse.emf.edit.ui.action.CommandAction}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EditingDomain getEditingDomain() {
+ return editingDomain;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public class ReverseAdapterFactoryContentProvider extends AdapterFactoryContentProvider {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ReverseAdapterFactoryContentProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object [] getElements(Object object) {
+ Object parent = super.getParent(object);
+ return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object [] getChildren(Object object) {
+ Object parent = super.getParent(object);
+ return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean hasChildren(Object object) {
+ Object parent = super.getParent(object);
+ return parent != null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getParent(Object object) {
+ return null;
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCurrentViewerPane(ViewerPane viewerPane) {
+ if (currentViewerPane != viewerPane) {
+ if (currentViewerPane != null) {
+ currentViewerPane.showFocus(false);
+ }
+ currentViewerPane = viewerPane;
+ }
+ setCurrentViewer(currentViewerPane.getViewer());
+ }
+
+ /**
+ * This makes sure that one content viewer, either for the current page or the outline view, if it has focus,
+ * is the current one.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCurrentViewer(Viewer viewer) {
+ // If it is changing...
+ //
+ if (currentViewer != viewer) {
+ if (selectionChangedListener == null) {
+ // Create the listener on demand.
+ //
+ selectionChangedListener =
+ new ISelectionChangedListener() {
+ // This just notifies those things that are affected by the section.
+ //
+ public void selectionChanged(SelectionChangedEvent selectionChangedEvent) {
+ setSelection(selectionChangedEvent.getSelection());
+ }
+ };
+ }
+
+ // Stop listening to the old one.
+ //
+ if (currentViewer != null) {
+ currentViewer.removeSelectionChangedListener(selectionChangedListener);
+ }
+
+ // Start listening to the new one.
+ //
+ if (viewer != null) {
+ viewer.addSelectionChangedListener(selectionChangedListener);
+ }
+
+ // Remember it.
+ //
+ currentViewer = viewer;
+
+ // Set the editors selection based on the current viewer's selection.
+ //
+ setSelection(currentViewer == null ? StructuredSelection.EMPTY : currentViewer.getSelection());
+ }
+ }
+
+ /**
+ * This returns the viewer as required by the {@link IViewerProvider} interface.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Viewer getViewer() {
+ return currentViewer;
+ }
+
+ /**
+ * This creates a context menu for the viewer and adds a listener as well registering the menu for extension.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createContextMenuFor(StructuredViewer viewer) {
+ MenuManager contextMenu = new MenuManager("#PopUp");
+ contextMenu.add(new Separator("additions"));
+ contextMenu.setRemoveAllWhenShown(true);
+ contextMenu.addMenuListener(this);
+ Menu menu= contextMenu.createContextMenu(viewer.getControl());
+ viewer.getControl().setMenu(menu);
+ getSite().registerContextMenu(contextMenu, new UnwrappingSelectionProvider(viewer));
+
+ int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK;
+ Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance(), LocalSelectionTransfer.getTransfer(), FileTransfer.getInstance() };
+ viewer.addDragSupport(dndOperations, transfers, new ViewerDragAdapter(viewer));
+ viewer.addDropSupport(dndOperations, transfers, new EditingDomainViewerDropAdapter(editingDomain, viewer));
+ }
+
+ /**
+ * This is the method called to load a resource into the editing domain's resource set based on the editor's input.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createModel() {
+ URI resourceURI = EditUIUtil.getURI(getEditorInput());
+ Exception exception = null;
+ Resource resource = null;
+ try {
+ // Load the resource through the editing domain.
+ //
+ resource = editingDomain.getResourceSet().getResource(resourceURI, true);
+ }
+ catch (Exception e) {
+ exception = e;
+ resource = editingDomain.getResourceSet().getResource(resourceURI, false);
+ }
+
+ Diagnostic diagnostic = analyzeResourceProblems(resource, exception);
+ if (diagnostic.getSeverity() != Diagnostic.OK) {
+ resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+ }
+ editingDomain.getResourceSet().eAdapters().add(problemIndicationAdapter);
+ }
+
+ /**
+ * Returns a diagnostic describing the errors and warnings listed in the resource
+ * and the specified exception (if any).
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Diagnostic analyzeResourceProblems(Resource resource, Exception exception) {
+ if (!resource.getErrors().isEmpty() || !resource.getWarnings().isEmpty()) {
+ BasicDiagnostic basicDiagnostic =
+ new BasicDiagnostic
+ (Diagnostic.ERROR,
+ "org.eclipse.papyrus.infra.viewpoints.configuration.editor",
+ 0,
+ getString("_UI_CreateModelError_message", resource.getURI()),
+ new Object [] { exception == null ? (Object)resource : exception });
+ basicDiagnostic.merge(EcoreUtil.computeDiagnostic(resource, true));
+ return basicDiagnostic;
+ }
+ else if (exception != null) {
+ return
+ new BasicDiagnostic
+ (Diagnostic.ERROR,
+ "org.eclipse.papyrus.infra.viewpoints.configuration.editor",
+ 0,
+ getString("_UI_CreateModelError_message", resource.getURI()),
+ new Object[] { exception });
+ }
+ else {
+ return Diagnostic.OK_INSTANCE;
+ }
+ }
+
+ /**
+ * This is the method used by the framework to install your own controls.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void createPages() {
+ // Creates the model from the editor input
+ //
+ createModel();
+
+ // Only creates the other pages if there is something that can be edited
+ //
+ if (!getEditingDomain().getResourceSet().getResources().isEmpty()) {
+ // Create a page for the selection tree view.
+ //
+ {
+ ViewerPane viewerPane =
+ new ViewerPane(getSite().getPage(), ConfigurationEditor.this) {
+ @Override
+ public Viewer createViewer(Composite composite) {
+ Tree tree = new Tree(composite, SWT.MULTI);
+ TreeViewer newTreeViewer = new TreeViewer(tree);
+ return newTreeViewer;
+ }
+ @Override
+ public void requestActivation() {
+ super.requestActivation();
+ setCurrentViewerPane(this);
+ }
+ };
+ viewerPane.createControl(getContainer());
+
+ selectionViewer = (TreeViewer)viewerPane.getViewer();
+ selectionViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+
+ selectionViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+ selectionViewer.setInput(editingDomain.getResourceSet());
+ selectionViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);
+ viewerPane.setTitle(editingDomain.getResourceSet());
+
+ new AdapterFactoryTreeEditor(selectionViewer.getTree(), adapterFactory);
+
+ createContextMenuFor(selectionViewer);
+ int pageIndex = addPage(viewerPane.getControl());
+ setPageText(pageIndex, getString("_UI_SelectionPage_label"));
+ }
+
+ // Create a page for the parent tree view.
+ //
+ {
+ ViewerPane viewerPane =
+ new ViewerPane(getSite().getPage(), ConfigurationEditor.this) {
+ @Override
+ public Viewer createViewer(Composite composite) {
+ Tree tree = new Tree(composite, SWT.MULTI);
+ TreeViewer newTreeViewer = new TreeViewer(tree);
+ return newTreeViewer;
+ }
+ @Override
+ public void requestActivation() {
+ super.requestActivation();
+ setCurrentViewerPane(this);
+ }
+ };
+ viewerPane.createControl(getContainer());
+
+ parentViewer = (TreeViewer)viewerPane.getViewer();
+ parentViewer.setAutoExpandLevel(30);
+ parentViewer.setContentProvider(new ReverseAdapterFactoryContentProvider(adapterFactory));
+ parentViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+ createContextMenuFor(parentViewer);
+ int pageIndex = addPage(viewerPane.getControl());
+ setPageText(pageIndex, getString("_UI_ParentPage_label"));
+ }
+
+ // This is the page for the list viewer
+ //
+ {
+ ViewerPane viewerPane =
+ new ViewerPane(getSite().getPage(), ConfigurationEditor.this) {
+ @Override
+ public Viewer createViewer(Composite composite) {
+ return new ListViewer(composite);
+ }
+ @Override
+ public void requestActivation() {
+ super.requestActivation();
+ setCurrentViewerPane(this);
+ }
+ };
+ viewerPane.createControl(getContainer());
+ listViewer = (ListViewer)viewerPane.getViewer();
+ listViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+ listViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+ createContextMenuFor(listViewer);
+ int pageIndex = addPage(viewerPane.getControl());
+ setPageText(pageIndex, getString("_UI_ListPage_label"));
+ }
+
+ // This is the page for the tree viewer
+ //
+ {
+ ViewerPane viewerPane =
+ new ViewerPane(getSite().getPage(), ConfigurationEditor.this) {
+ @Override
+ public Viewer createViewer(Composite composite) {
+ return new TreeViewer(composite);
+ }
+ @Override
+ public void requestActivation() {
+ super.requestActivation();
+ setCurrentViewerPane(this);
+ }
+ };
+ viewerPane.createControl(getContainer());
+ treeViewer = (TreeViewer)viewerPane.getViewer();
+ treeViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+ treeViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+ new AdapterFactoryTreeEditor(treeViewer.getTree(), adapterFactory);
+
+ createContextMenuFor(treeViewer);
+ int pageIndex = addPage(viewerPane.getControl());
+ setPageText(pageIndex, getString("_UI_TreePage_label"));
+ }
+
+ // This is the page for the table viewer.
+ //
+ {
+ ViewerPane viewerPane =
+ new ViewerPane(getSite().getPage(), ConfigurationEditor.this) {
+ @Override
+ public Viewer createViewer(Composite composite) {
+ return new TableViewer(composite);
+ }
+ @Override
+ public void requestActivation() {
+ super.requestActivation();
+ setCurrentViewerPane(this);
+ }
+ };
+ viewerPane.createControl(getContainer());
+ tableViewer = (TableViewer)viewerPane.getViewer();
+
+ Table table = tableViewer.getTable();
+ TableLayout layout = new TableLayout();
+ table.setLayout(layout);
+ table.setHeaderVisible(true);
+ table.setLinesVisible(true);
+
+ TableColumn objectColumn = new TableColumn(table, SWT.NONE);
+ layout.addColumnData(new ColumnWeightData(3, 100, true));
+ objectColumn.setText(getString("_UI_ObjectColumn_label"));
+ objectColumn.setResizable(true);
+
+ TableColumn selfColumn = new TableColumn(table, SWT.NONE);
+ layout.addColumnData(new ColumnWeightData(2, 100, true));
+ selfColumn.setText(getString("_UI_SelfColumn_label"));
+ selfColumn.setResizable(true);
+
+ tableViewer.setColumnProperties(new String [] {"a", "b"});
+ tableViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+ tableViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+ createContextMenuFor(tableViewer);
+ int pageIndex = addPage(viewerPane.getControl());
+ setPageText(pageIndex, getString("_UI_TablePage_label"));
+ }
+
+ // This is the page for the table tree viewer.
+ //
+ {
+ ViewerPane viewerPane =
+ new ViewerPane(getSite().getPage(), ConfigurationEditor.this) {
+ @Override
+ public Viewer createViewer(Composite composite) {
+ return new TreeViewer(composite);
+ }
+ @Override
+ public void requestActivation() {
+ super.requestActivation();
+ setCurrentViewerPane(this);
+ }
+ };
+ viewerPane.createControl(getContainer());
+
+ treeViewerWithColumns = (TreeViewer)viewerPane.getViewer();
+
+ Tree tree = treeViewerWithColumns.getTree();
+ tree.setLayoutData(new FillLayout());
+ tree.setHeaderVisible(true);
+ tree.setLinesVisible(true);
+
+ TreeColumn objectColumn = new TreeColumn(tree, SWT.NONE);
+ objectColumn.setText(getString("_UI_ObjectColumn_label"));
+ objectColumn.setResizable(true);
+ objectColumn.setWidth(250);
+
+ TreeColumn selfColumn = new TreeColumn(tree, SWT.NONE);
+ selfColumn.setText(getString("_UI_SelfColumn_label"));
+ selfColumn.setResizable(true);
+ selfColumn.setWidth(200);
+
+ treeViewerWithColumns.setColumnProperties(new String [] {"a", "b"});
+ treeViewerWithColumns.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+ treeViewerWithColumns.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+ createContextMenuFor(treeViewerWithColumns);
+ int pageIndex = addPage(viewerPane.getControl());
+ setPageText(pageIndex, getString("_UI_TreeWithColumnsPage_label"));
+ }
+
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable() {
+ public void run() {
+ setActivePage(0);
+ }
+ });
+ }
+
+ // Ensures that this editor will only display the page's tab
+ // area if there are more than one page
+ //
+ getContainer().addControlListener
+ (new ControlAdapter() {
+ boolean guard = false;
+ @Override
+ public void controlResized(ControlEvent event) {
+ if (!guard) {
+ guard = true;
+ hideTabs();
+ guard = false;
+ }
+ }
+ });
+
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable() {
+ public void run() {
+ updateProblemIndication();
+ }
+ });
+ }
+
+ /**
+ * If there is just one page in the multi-page editor part,
+ * this hides the single tab at the bottom.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void hideTabs() {
+ if (getPageCount() <= 1) {
+ setPageText(0, "");
+ if (getContainer() instanceof CTabFolder) {
+ ((CTabFolder)getContainer()).setTabHeight(1);
+ Point point = getContainer().getSize();
+ getContainer().setSize(point.x, point.y + 6);
+ }
+ }
+ }
+
+ /**
+ * If there is more than one page in the multi-page editor part,
+ * this shows the tabs at the bottom.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void showTabs() {
+ if (getPageCount() > 1) {
+ setPageText(0, getString("_UI_SelectionPage_label"));
+ if (getContainer() instanceof CTabFolder) {
+ ((CTabFolder)getContainer()).setTabHeight(SWT.DEFAULT);
+ Point point = getContainer().getSize();
+ getContainer().setSize(point.x, point.y - 6);
+ }
+ }
+ }
+
+ /**
+ * This is used to track the active viewer.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void pageChange(int pageIndex) {
+ super.pageChange(pageIndex);
+
+ if (contentOutlinePage != null) {
+ handleContentOutlineSelection(contentOutlinePage.getSelection());
+ }
+ }
+
+ /**
+ * This is how the framework determines which interfaces we implement.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ @Override
+ public Object getAdapter(Class key) {
+ if (key.equals(IContentOutlinePage.class)) {
+ return showOutlineView() ? getContentOutlinePage() : null;
+ }
+ else if (key.equals(IPropertySheetPage.class)) {
+ return getPropertySheetPage();
+ }
+ else if (key.equals(IGotoMarker.class)) {
+ return this;
+ }
+ else {
+ return super.getAdapter(key);
+ }
+ }
+
+ /**
+ * This accesses a cached version of the content outliner.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IContentOutlinePage getContentOutlinePage() {
+ if (contentOutlinePage == null) {
+ // The content outline is just a tree.
+ //
+ class MyContentOutlinePage extends ContentOutlinePage {
+ @Override
+ public void createControl(Composite parent) {
+ super.createControl(parent);
+ contentOutlineViewer = getTreeViewer();
+ contentOutlineViewer.addSelectionChangedListener(this);
+
+ // Set up the tree viewer.
+ //
+ contentOutlineViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+ contentOutlineViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+ contentOutlineViewer.setInput(editingDomain.getResourceSet());
+
+ // Make sure our popups work.
+ //
+ createContextMenuFor(contentOutlineViewer);
+
+ if (!editingDomain.getResourceSet().getResources().isEmpty()) {
+ // Select the root object in the view.
+ //
+ contentOutlineViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);
+ }
+ }
+
+ @Override
+ public void makeContributions(IMenuManager menuManager, IToolBarManager toolBarManager, IStatusLineManager statusLineManager) {
+ super.makeContributions(menuManager, toolBarManager, statusLineManager);
+ contentOutlineStatusLineManager = statusLineManager;
+ }
+
+ @Override
+ public void setActionBars(IActionBars actionBars) {
+ super.setActionBars(actionBars);
+ getActionBarContributor().shareGlobalActions(this, actionBars);
+ }
+ }
+
+ contentOutlinePage = new MyContentOutlinePage();
+
+ // Listen to selection so that we can handle it is a special way.
+ //
+ contentOutlinePage.addSelectionChangedListener
+ (new ISelectionChangedListener() {
+ // This ensures that we handle selections correctly.
+ //
+ public void selectionChanged(SelectionChangedEvent event) {
+ handleContentOutlineSelection(event.getSelection());
+ }
+ });
+ }
+
+ return contentOutlinePage;
+ }
+
+ /**
+ * This accesses a cached version of the property sheet.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IPropertySheetPage getPropertySheetPage() {
+ PropertySheetPage propertySheetPage =
+ new ExtendedPropertySheetPage(editingDomain) {
+ @Override
+ public void setSelectionToViewer(List<?> selection) {
+ ConfigurationEditor.this.setSelectionToViewer(selection);
+ ConfigurationEditor.this.setFocus();
+ }
+
+ @Override
+ public void setActionBars(IActionBars actionBars) {
+ super.setActionBars(actionBars);
+ getActionBarContributor().shareGlobalActions(this, actionBars);
+ }
+ };
+ propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory));
+ propertySheetPages.add(propertySheetPage);
+
+ return propertySheetPage;
+ }
+
+ /**
+ * This deals with how we want selection in the outliner to affect the other views.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void handleContentOutlineSelection(ISelection selection) {
+ if (currentViewerPane != null && !selection.isEmpty() && selection instanceof IStructuredSelection) {
+ Iterator<?> selectedElements = ((IStructuredSelection)selection).iterator();
+ if (selectedElements.hasNext()) {
+ // Get the first selected element.
+ //
+ Object selectedElement = selectedElements.next();
+
+ // If it's the selection viewer, then we want it to select the same selection as this selection.
+ //
+ if (currentViewerPane.getViewer() == selectionViewer) {
+ ArrayList<Object> selectionList = new ArrayList<Object>();
+ selectionList.add(selectedElement);
+ while (selectedElements.hasNext()) {
+ selectionList.add(selectedElements.next());
+ }
+
+ // Set the selection to the widget.
+ //
+ selectionViewer.setSelection(new StructuredSelection(selectionList));
+ }
+ else {
+ // Set the input to the widget.
+ //
+ if (currentViewerPane.getViewer().getInput() != selectedElement) {
+ currentViewerPane.getViewer().setInput(selectedElement);
+ currentViewerPane.setTitle(selectedElement);
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * This is for implementing {@link IEditorPart} and simply tests the command stack.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isDirty() {
+ return ((BasicCommandStack)editingDomain.getCommandStack()).isSaveNeeded();
+ }
+
+ /**
+ * This is for implementing {@link IEditorPart} and simply saves the model file.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void doSave(IProgressMonitor progressMonitor) {
+ // Save only resources that have actually changed.
+ //
+ final Map<Object, Object> saveOptions = new HashMap<Object, Object>();
+ saveOptions.put(Resource.OPTION_SAVE_ONLY_IF_CHANGED, Resource.OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER);
+ saveOptions.put(Resource.OPTION_LINE_DELIMITER, Resource.OPTION_LINE_DELIMITER_UNSPECIFIED);
+
+ // Do the work within an operation because this is a long running activity that modifies the workbench.
+ //
+ WorkspaceModifyOperation operation =
+ new WorkspaceModifyOperation() {
+ // This is the method that gets invoked when the operation runs.
+ //
+ @Override
+ public void execute(IProgressMonitor monitor) {
+ // Save the resources to the file system.
+ //
+ boolean first = true;
+ for (Resource resource : editingDomain.getResourceSet().getResources()) {
+ if ((first || !resource.getContents().isEmpty() || isPersisted(resource)) && !editingDomain.isReadOnly(resource)) {
+ try {
+ long timeStamp = resource.getTimeStamp();
+ resource.save(saveOptions);
+ if (resource.getTimeStamp() != timeStamp) {
+ savedResources.add(resource);
+ }
+ }
+ catch (Exception exception) {
+ resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+ }
+ first = false;
+ }
+ }
+ }
+ };
+
+ updateProblemIndication = false;
+ try {
+ // This runs the options, and shows progress.
+ //
+ new ProgressMonitorDialog(getSite().getShell()).run(true, false, operation);
+
+ // Refresh the necessary state.
+ //
+ ((BasicCommandStack)editingDomain.getCommandStack()).saveIsDone();
+ firePropertyChange(IEditorPart.PROP_DIRTY);
+ }
+ catch (Exception exception) {
+ // Something went wrong that shouldn't.
+ //
+ ConfigurationEditorPlugin.INSTANCE.log(exception);
+ }
+ updateProblemIndication = true;
+ updateProblemIndication();
+ }
+
+ /**
+ * This returns whether something has been persisted to the URI of the specified resource.
+ * The implementation uses the URI converter from the editor's resource set to try to open an input stream.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected boolean isPersisted(Resource resource) {
+ boolean result = false;
+ try {
+ InputStream stream = editingDomain.getResourceSet().getURIConverter().createInputStream(resource.getURI());
+ if (stream != null) {
+ result = true;
+ stream.close();
+ }
+ }
+ catch (IOException e) {
+ // Ignore
+ }
+ return result;
+ }
+
+ /**
+ * This always returns true because it is not currently supported.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isSaveAsAllowed() {
+ return true;
+ }
+
+ /**
+ * This also changes the editor's input.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void doSaveAs() {
+ SaveAsDialog saveAsDialog = new SaveAsDialog(getSite().getShell());
+ saveAsDialog.open();
+ IPath path = saveAsDialog.getResult();
+ if (path != null) {
+ IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
+ if (file != null) {
+ doSaveAs(URI.createPlatformResourceURI(file.getFullPath().toString(), true), new FileEditorInput(file));
+ }
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void doSaveAs(URI uri, IEditorInput editorInput) {
+ (editingDomain.getResourceSet().getResources().get(0)).setURI(uri);
+ setInputWithNotify(editorInput);
+ setPartName(editorInput.getName());
+ IProgressMonitor progressMonitor =
+ getActionBars().getStatusLineManager() != null ?
+ getActionBars().getStatusLineManager().getProgressMonitor() :
+ new NullProgressMonitor();
+ doSave(progressMonitor);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void gotoMarker(IMarker marker) {
+ List<?> targetObjects = markerHelper.getTargetObjects(editingDomain, marker);
+ if (!targetObjects.isEmpty()) {
+ setSelectionToViewer(targetObjects);
+ }
+ }
+
+ /**
+ * This is called during startup.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void init(IEditorSite site, IEditorInput editorInput) {
+ setSite(site);
+ setInputWithNotify(editorInput);
+ setPartName(editorInput.getName());
+ site.setSelectionProvider(this);
+ site.getPage().addPartListener(partListener);
+ ResourcesPlugin.getWorkspace().addResourceChangeListener(resourceChangeListener, IResourceChangeEvent.POST_CHANGE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setFocus() {
+ if (currentViewerPane != null) {
+ currentViewerPane.setFocus();
+ }
+ else {
+ getControl(getActivePage()).setFocus();
+ }
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void addSelectionChangedListener(ISelectionChangedListener listener) {
+ selectionChangedListeners.add(listener);
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void removeSelectionChangedListener(ISelectionChangedListener listener) {
+ selectionChangedListeners.remove(listener);
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to return this editor's overall selection.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ISelection getSelection() {
+ return editorSelection;
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to set this editor's overall selection.
+ * Calling this result will notify the listeners.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSelection(ISelection selection) {
+ editorSelection = selection;
+
+ for (ISelectionChangedListener listener : selectionChangedListeners) {
+ listener.selectionChanged(new SelectionChangedEvent(this, selection));
+ }
+ setStatusLineManager(selection);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setStatusLineManager(ISelection selection) {
+ IStatusLineManager statusLineManager = currentViewer != null && currentViewer == contentOutlineViewer ?
+ contentOutlineStatusLineManager : getActionBars().getStatusLineManager();
+
+ if (statusLineManager != null) {
+ if (selection instanceof IStructuredSelection) {
+ Collection<?> collection = ((IStructuredSelection)selection).toList();
+ switch (collection.size()) {
+ case 0: {
+ statusLineManager.setMessage(getString("_UI_NoObjectSelected"));
+ break;
+ }
+ case 1: {
+ String text = new AdapterFactoryItemDelegator(adapterFactory).getText(collection.iterator().next());
+ statusLineManager.setMessage(getString("_UI_SingleObjectSelected", text));
+ break;
+ }
+ default: {
+ statusLineManager.setMessage(getString("_UI_MultiObjectSelected", Integer.toString(collection.size())));
+ break;
+ }
+ }
+ }
+ else {
+ statusLineManager.setMessage("");
+ }
+ }
+ }
+
+ /**
+ * This looks up a string in the plugin's plugin.properties file.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static String getString(String key) {
+ return ConfigurationEditorPlugin.INSTANCE.getString(key);
+ }
+
+ /**
+ * This looks up a string in plugin.properties, making a substitution.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static String getString(String key, Object s1) {
+ return ConfigurationEditorPlugin.INSTANCE.getString(key, new Object [] { s1 });
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.action.IMenuListener} to help fill the context menus with contributions from the Edit menu.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void menuAboutToShow(IMenuManager menuManager) {
+ ((IMenuListener)getEditorSite().getActionBarContributor()).menuAboutToShow(menuManager);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EditingDomainActionBarContributor getActionBarContributor() {
+ return (EditingDomainActionBarContributor)getEditorSite().getActionBarContributor();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IActionBars getActionBars() {
+ return getActionBarContributor().getActionBars();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AdapterFactory getAdapterFactory() {
+ return adapterFactory;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void dispose() {
+ updateProblemIndication = false;
+
+ ResourcesPlugin.getWorkspace().removeResourceChangeListener(resourceChangeListener);
+
+ getSite().getPage().removePartListener(partListener);
+
+ adapterFactory.dispose();
+
+ if (getActionBarContributor().getActiveEditor() == this) {
+ getActionBarContributor().setActiveEditor(null);
+ }
+
+ for (PropertySheetPage propertySheetPage : propertySheetPages) {
+ propertySheetPage.dispose();
+ }
+
+ if (contentOutlinePage != null) {
+ contentOutlinePage.dispose();
+ }
+
+ super.dispose();
+ }
+
+ /**
+ * Returns whether the outline view should be presented to the user.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected boolean showOutlineView() {
+ return true;
+ }
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/src/org/eclipse/papyrus/infra/viewpoints/configuration/presentation/ConfigurationEditorPlugin.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/src/org/eclipse/papyrus/infra/viewpoints/configuration/presentation/ConfigurationEditorPlugin.java
new file mode 100755
index 00000000000..82162189f4d
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/src/org/eclipse/papyrus/infra/viewpoints/configuration/presentation/ConfigurationEditorPlugin.java
@@ -0,0 +1,108 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.configuration.presentation;
+
+import org.eclipse.emf.common.EMFPlugin;
+
+import org.eclipse.emf.common.ui.EclipseUIPlugin;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.ecore.provider.EcoreEditPlugin;
+
+import org.eclipse.papyrus.infra.viewpoints.iso42010.provider.Iso42010EditPlugin;
+
+/**
+ * This is the central singleton for the Configuration editor plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public final class ConfigurationEditorPlugin extends EMFPlugin {
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final ConfigurationEditorPlugin INSTANCE = new ConfigurationEditorPlugin();
+
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static Implementation plugin;
+
+ /**
+ * Create the instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ConfigurationEditorPlugin() {
+ super
+ (new ResourceLocator [] {
+ EcoreEditPlugin.INSTANCE,
+ Iso42010EditPlugin.INSTANCE,
+ });
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the singleton instance.
+ * @generated
+ */
+ @Override
+ public ResourceLocator getPluginResourceLocator() {
+ return plugin;
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the singleton instance.
+ * @generated
+ */
+ public static Implementation getPlugin() {
+ return plugin;
+ }
+
+ /**
+ * The actual implementation of the Eclipse <b>Plugin</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static class Implementation extends EclipseUIPlugin {
+ /**
+ * Creates an instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Implementation() {
+ super();
+
+ // Remember the static instance.
+ //
+ plugin = this;
+ }
+ }
+
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/src/org/eclipse/papyrus/infra/viewpoints/configuration/presentation/ConfigurationModelWizard.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/src/org/eclipse/papyrus/infra/viewpoints/configuration/presentation/ConfigurationModelWizard.java
new file mode 100755
index 00000000000..f78e39f0708
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration.editor/src/org/eclipse/papyrus/infra/viewpoints/configuration/presentation/ConfigurationModelWizard.java
@@ -0,0 +1,602 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.configuration.presentation;
+
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.MissingResourceException;
+import java.util.StringTokenizer;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.ecore.xmi.XMLResource;
+import org.eclipse.emf.edit.ui.provider.ExtendedImageRegistry;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationFactory;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage;
+import org.eclipse.papyrus.infra.viewpoints.configuration.provider.ConfigurationEditPlugin;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.ui.INewWizard;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
+import org.eclipse.ui.part.FileEditorInput;
+import org.eclipse.ui.part.ISetSelectionTarget;
+
+
+/**
+ * This is a simple wizard for creating a new model file.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ConfigurationModelWizard extends Wizard implements INewWizard {
+ /**
+ * The supported extensions for created files.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<String> FILE_EXTENSIONS =
+ Collections.unmodifiableList(Arrays.asList(ConfigurationEditorPlugin.INSTANCE.getString("_UI_ConfigurationEditorFilenameExtensions").split("\\s*,\\s*")));
+
+ /**
+ * A formatted list of supported file extensions, suitable for display.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final String FORMATTED_FILE_EXTENSIONS =
+ ConfigurationEditorPlugin.INSTANCE.getString("_UI_ConfigurationEditorFilenameExtensions").replaceAll("\\s*,\\s*", ", ");
+
+ /**
+ * This caches an instance of the model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ConfigurationPackage configurationPackage = ConfigurationPackage.eINSTANCE;
+
+ /**
+ * This caches an instance of the model factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ConfigurationFactory configurationFactory = configurationPackage.getConfigurationFactory();
+
+ /**
+ * This is the file creation page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ConfigurationModelWizardNewFileCreationPage newFileCreationPage;
+
+ /**
+ * This is the initial object creation page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ConfigurationModelWizardInitialObjectCreationPage initialObjectCreationPage;
+
+ /**
+ * Remember the selection during initialization for populating the default container.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IStructuredSelection selection;
+
+ /**
+ * Remember the workbench during initialization.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IWorkbench workbench;
+
+ /**
+ * Caches the names of the types that can be created as the root object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected List<String> initialObjectNames;
+
+ /**
+ * This just records the information.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void init(IWorkbench workbench, IStructuredSelection selection) {
+ this.workbench = workbench;
+ this.selection = selection;
+ setWindowTitle(ConfigurationEditorPlugin.INSTANCE.getString("_UI_Wizard_label"));
+ setDefaultPageImageDescriptor(ExtendedImageRegistry.INSTANCE.getImageDescriptor(ConfigurationEditorPlugin.INSTANCE.getImage("full/wizban/NewConfiguration.png")));
+ }
+
+ /**
+ * Returns the names of the types that can be created as the root object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ */
+ protected Collection<String> getInitialObjectNames() {
+ if (initialObjectNames == null) {
+ initialObjectNames = new ArrayList<String>();
+ initialObjectNames.add(ConfigurationPackage.Literals.PAPYRUS_CONFIGURATION.getName());
+ }
+ return initialObjectNames;
+ }
+
+ /**
+ * Create a new model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EObject createInitialModel() {
+ EClass eClass = (EClass)configurationPackage.getEClassifier(initialObjectCreationPage.getInitialObjectName());
+ EObject rootObject = configurationFactory.create(eClass);
+ return rootObject;
+ }
+
+ /**
+ * Do the work after everything is specified.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean performFinish() {
+ try {
+ // Remember the file.
+ //
+ final IFile modelFile = getModelFile();
+
+ // Do the work within an operation.
+ //
+ WorkspaceModifyOperation operation =
+ new WorkspaceModifyOperation() {
+ @Override
+ protected void execute(IProgressMonitor progressMonitor) {
+ try {
+ // Create a resource set
+ //
+ ResourceSet resourceSet = new ResourceSetImpl();
+
+ // Get the URI of the model file.
+ //
+ URI fileURI = URI.createPlatformResourceURI(modelFile.getFullPath().toString(), true);
+
+ // Create a resource for this file.
+ //
+ Resource resource = resourceSet.createResource(fileURI);
+
+ // Add the initial model object to the contents.
+ //
+ EObject rootObject = createInitialModel();
+ if (rootObject != null) {
+ resource.getContents().add(rootObject);
+ }
+
+ // Save the contents of the resource to the file system.
+ //
+ Map<Object, Object> options = new HashMap<Object, Object>();
+ options.put(XMLResource.OPTION_ENCODING, initialObjectCreationPage.getEncoding());
+ resource.save(options);
+ }
+ catch (Exception exception) {
+ ConfigurationEditorPlugin.INSTANCE.log(exception);
+ }
+ finally {
+ progressMonitor.done();
+ }
+ }
+ };
+
+ getContainer().run(false, false, operation);
+
+ // Select the new file resource in the current view.
+ //
+ IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
+ IWorkbenchPage page = workbenchWindow.getActivePage();
+ final IWorkbenchPart activePart = page.getActivePart();
+ if (activePart instanceof ISetSelectionTarget) {
+ final ISelection targetSelection = new StructuredSelection(modelFile);
+ getShell().getDisplay().asyncExec
+ (new Runnable() {
+ public void run() {
+ ((ISetSelectionTarget)activePart).selectReveal(targetSelection);
+ }
+ });
+ }
+
+ // Open an editor on the new file.
+ //
+ try {
+ page.openEditor
+ (new FileEditorInput(modelFile),
+ workbench.getEditorRegistry().getDefaultEditor(modelFile.getFullPath().toString()).getId());
+ }
+ catch (PartInitException exception) {
+ MessageDialog.openError(workbenchWindow.getShell(), ConfigurationEditorPlugin.INSTANCE.getString("_UI_OpenEditorError_label"), exception.getMessage());
+ return false;
+ }
+
+ return true;
+ }
+ catch (Exception exception) {
+ ConfigurationEditorPlugin.INSTANCE.log(exception);
+ return false;
+ }
+ }
+
+ /**
+ * This is the one page of the wizard.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public class ConfigurationModelWizardNewFileCreationPage extends WizardNewFileCreationPage {
+ /**
+ * Pass in the selection.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ConfigurationModelWizardNewFileCreationPage(String pageId, IStructuredSelection selection) {
+ super(pageId, selection);
+ }
+
+ /**
+ * The framework calls this to see if the file is correct.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean validatePage() {
+ if (super.validatePage()) {
+ String extension = new Path(getFileName()).getFileExtension();
+ if (extension == null || !FILE_EXTENSIONS.contains(extension)) {
+ String key = FILE_EXTENSIONS.size() > 1 ? "_WARN_FilenameExtensions" : "_WARN_FilenameExtension";
+ setErrorMessage(ConfigurationEditorPlugin.INSTANCE.getString(key, new Object [] { FORMATTED_FILE_EXTENSIONS }));
+ return false;
+ }
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IFile getModelFile() {
+ return ResourcesPlugin.getWorkspace().getRoot().getFile(getContainerFullPath().append(getFileName()));
+ }
+ }
+
+ /**
+ * This is the page where the type of object to create is selected.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public class ConfigurationModelWizardInitialObjectCreationPage extends WizardPage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Combo initialObjectField;
+
+ /**
+ * @generated
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ */
+ protected List<String> encodings;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Combo encodingField;
+
+ /**
+ * Pass in the selection.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ConfigurationModelWizardInitialObjectCreationPage(String pageId) {
+ super(pageId);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createControl(Composite parent) {
+ Composite composite = new Composite(parent, SWT.NONE); {
+ GridLayout layout = new GridLayout();
+ layout.numColumns = 1;
+ layout.verticalSpacing = 12;
+ composite.setLayout(layout);
+
+ GridData data = new GridData();
+ data.verticalAlignment = GridData.FILL;
+ data.grabExcessVerticalSpace = true;
+ data.horizontalAlignment = GridData.FILL;
+ composite.setLayoutData(data);
+ }
+
+ Label containerLabel = new Label(composite, SWT.LEFT);
+ {
+ containerLabel.setText(ConfigurationEditorPlugin.INSTANCE.getString("_UI_ModelObject"));
+
+ GridData data = new GridData();
+ data.horizontalAlignment = GridData.FILL;
+ containerLabel.setLayoutData(data);
+ }
+
+ initialObjectField = new Combo(composite, SWT.BORDER);
+ {
+ GridData data = new GridData();
+ data.horizontalAlignment = GridData.FILL;
+ data.grabExcessHorizontalSpace = true;
+ initialObjectField.setLayoutData(data);
+ }
+
+ for (String objectName : getInitialObjectNames()) {
+ initialObjectField.add(getLabel(objectName));
+ }
+
+ if (initialObjectField.getItemCount() == 1) {
+ initialObjectField.select(0);
+ }
+ initialObjectField.addModifyListener(validator);
+
+ Label encodingLabel = new Label(composite, SWT.LEFT);
+ {
+ encodingLabel.setText(ConfigurationEditorPlugin.INSTANCE.getString("_UI_XMLEncoding"));
+
+ GridData data = new GridData();
+ data.horizontalAlignment = GridData.FILL;
+ encodingLabel.setLayoutData(data);
+ }
+ encodingField = new Combo(composite, SWT.BORDER);
+ {
+ GridData data = new GridData();
+ data.horizontalAlignment = GridData.FILL;
+ data.grabExcessHorizontalSpace = true;
+ encodingField.setLayoutData(data);
+ }
+
+ for (String encoding : getEncodings()) {
+ encodingField.add(encoding);
+ }
+
+ encodingField.select(0);
+ encodingField.addModifyListener(validator);
+
+ setPageComplete(validatePage());
+ setControl(composite);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ModifyListener validator =
+ new ModifyListener() {
+ public void modifyText(ModifyEvent e) {
+ setPageComplete(validatePage());
+ }
+ };
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected boolean validatePage() {
+ return getInitialObjectName() != null && getEncodings().contains(encodingField.getText());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setVisible(boolean visible) {
+ super.setVisible(visible);
+ if (visible) {
+ if (initialObjectField.getItemCount() == 1) {
+ initialObjectField.clearSelection();
+ encodingField.setFocus();
+ }
+ else {
+ encodingField.clearSelection();
+ initialObjectField.setFocus();
+ }
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getInitialObjectName() {
+ String label = initialObjectField.getText();
+
+ for (String name : getInitialObjectNames()) {
+ if (getLabel(name).equals(label)) {
+ return name;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getEncoding() {
+ return encodingField.getText();
+ }
+
+ /**
+ * Returns the label for the specified type name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected String getLabel(String typeName) {
+ try {
+ return ConfigurationEditPlugin.INSTANCE.getString("_UI_" + typeName + "_type");
+ }
+ catch(MissingResourceException mre) {
+ ConfigurationEditorPlugin.INSTANCE.log(mre);
+ }
+ return typeName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<String> getEncodings() {
+ if (encodings == null) {
+ encodings = new ArrayList<String>();
+ for (StringTokenizer stringTokenizer = new StringTokenizer(ConfigurationEditorPlugin.INSTANCE.getString("_UI_XMLEncodingChoices")); stringTokenizer.hasMoreTokens(); ) {
+ encodings.add(stringTokenizer.nextToken());
+ }
+ }
+ return encodings;
+ }
+ }
+
+ /**
+ * The framework calls this to create the contents of the wizard.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void addPages() {
+ // Create a page, set the title, and the initial model file name.
+ //
+ newFileCreationPage = new ConfigurationModelWizardNewFileCreationPage("Whatever", selection);
+ newFileCreationPage.setTitle(ConfigurationEditorPlugin.INSTANCE.getString("_UI_ConfigurationModelWizard_label"));
+ newFileCreationPage.setDescription(ConfigurationEditorPlugin.INSTANCE.getString("_UI_ConfigurationModelWizard_description"));
+ newFileCreationPage.setFileName(ConfigurationEditorPlugin.INSTANCE.getString("_UI_ConfigurationEditorFilenameDefaultBase") + "." + FILE_EXTENSIONS.get(0));
+ addPage(newFileCreationPage);
+
+ // Try and get the resource selection to determine a current directory for the file dialog.
+ //
+ if (selection != null && !selection.isEmpty()) {
+ // Get the resource...
+ //
+ Object selectedElement = selection.iterator().next();
+ if (selectedElement instanceof IResource) {
+ // Get the resource parent, if its a file.
+ //
+ IResource selectedResource = (IResource)selectedElement;
+ if (selectedResource.getType() == IResource.FILE) {
+ selectedResource = selectedResource.getParent();
+ }
+
+ // This gives us a directory...
+ //
+ if (selectedResource instanceof IFolder || selectedResource instanceof IProject) {
+ // Set this for the container.
+ //
+ newFileCreationPage.setContainerFullPath(selectedResource.getFullPath());
+
+ // Make up a unique new name here.
+ //
+ String defaultModelBaseFilename = ConfigurationEditorPlugin.INSTANCE.getString("_UI_ConfigurationEditorFilenameDefaultBase");
+ String defaultModelFilenameExtension = FILE_EXTENSIONS.get(0);
+ String modelFilename = defaultModelBaseFilename + "." + defaultModelFilenameExtension;
+ for (int i = 1; ((IContainer)selectedResource).findMember(modelFilename) != null; ++i) {
+ modelFilename = defaultModelBaseFilename + i + "." + defaultModelFilenameExtension;
+ }
+ newFileCreationPage.setFileName(modelFilename);
+ }
+ }
+ }
+ initialObjectCreationPage = new ConfigurationModelWizardInitialObjectCreationPage("Whatever2");
+ initialObjectCreationPage.setTitle(ConfigurationEditorPlugin.INSTANCE.getString("_UI_ConfigurationModelWizard_label"));
+ initialObjectCreationPage.setDescription(ConfigurationEditorPlugin.INSTANCE.getString("_UI_Wizard_initial_object_description"));
+ addPage(initialObjectCreationPage);
+ }
+
+ /**
+ * Get the file from the page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IFile getModelFile() {
+ return newFileCreationPage.getModelFile();
+ }
+
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/.classpath b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/.classpath
new file mode 100755
index 00000000000..744fb582747
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="custom-src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/.project b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/.project
new file mode 100755
index 00000000000..28e4c8d56a1
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.infra.viewpoints.configuration</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/.settings/org.eclipse.jdt.core.prefs b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/.settings/org.eclipse.jdt.core.prefs
new file mode 100755
index 00000000000..44217f8c068
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/META-INF/MANIFEST.MF b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/META-INF/MANIFEST.MF
new file mode 100755
index 00000000000..70d6e3e5177
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/META-INF/MANIFEST.MF
@@ -0,0 +1,22 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.papyrus.infra.viewpoints.configuration;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-ClassPath: .
+Bundle-Activator: org.eclipse.papyrus.infra.viewpoints.configuration.Activator
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.jface,
+ org.eclipse.emf.ecore,
+ org.eclipse.emf.edit,
+ org.eclipse.papyrus.infra.core;bundle-version="1.0.0",
+ org.eclipse.papyrus.infra.services.labelprovider;bundle-version="1.0.0",
+ org.eclipse.papyrus.infra.viewpoints.iso42010;bundle-version="1.0.0"
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: org.eclipse.papyrus.infra.viewpoints.configuration,
+ org.eclipse.papyrus.infra.viewpoints.configuration.ui,
+ org.eclipse.papyrus.infra.viewpoints.configuration.impl,
+ org.eclipse.papyrus.infra.viewpoints.configuration.util
+Bundle-ActivationPolicy: lazy
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/about.html b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/about.html
new file mode 100755
index 00000000000..dd02e0be168
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>December 2, 2009</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/build.properties b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/build.properties
new file mode 100755
index 00000000000..f2ec60f54ef
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/build.properties
@@ -0,0 +1,14 @@
+#
+
+bin.includes = .,\
+ model/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties,\
+ about.html,\
+ icons/
+jars.compile.order = .
+source.. = src/,\
+ custom-src/
+output.. = bin/
+src.includes = about.html
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/custom-src/org/eclipse/papyrus/infra/viewpoints/configuration/EClassPropertyDescriptor.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/custom-src/org/eclipse/papyrus/infra/viewpoints/configuration/EClassPropertyDescriptor.java
new file mode 100755
index 00000000000..758a9de7d8b
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/custom-src/org/eclipse/papyrus/infra/viewpoints/configuration/EClassPropertyDescriptor.java
@@ -0,0 +1,54 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.configuration;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+/**
+ * Represents a descriptor for properties of type EClass
+ * @author Laurent Wouters
+ */
+public class EClassPropertyDescriptor extends SurrogateItemPropertyDescriptor {
+ private static final Collection<EObject> empty = new ArrayList<EObject>();
+
+ public EClassPropertyDescriptor(IItemPropertyDescriptor inner) {
+ super(inner);
+ }
+
+ @Override
+ public Collection<?> getChoiceOfValues(Object object) {
+ EObject current = (EObject)object;
+ while (current != null && !(current instanceof PapyrusConfiguration))
+ current = current.eContainer();
+ if (current == null)
+ return empty;
+ PapyrusConfiguration conf = (PapyrusConfiguration)current;
+ List<EClass> result = new ArrayList<EClass>();
+ EPackage p = conf.getMetamodel();
+ if (p == null)
+ return result;
+ for (EClassifier c : p.getEClassifiers())
+ if (c instanceof EClass)
+ result.add((EClass)c);
+ return result;
+ }
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/custom-src/org/eclipse/papyrus/infra/viewpoints/configuration/EPackagePropertyDescriptor.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/custom-src/org/eclipse/papyrus/infra/viewpoints/configuration/EPackagePropertyDescriptor.java
new file mode 100755
index 00000000000..67a06a6fb09
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/custom-src/org/eclipse/papyrus/infra/viewpoints/configuration/EPackagePropertyDescriptor.java
@@ -0,0 +1,55 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.configuration;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+/**
+ * Represents a descriptor for properties of type EPackage.
+ * This class lists the currently loaded ECore metamodels.
+ * @author Laurent Wouters
+ */
+public class EPackagePropertyDescriptor extends SurrogateItemPropertyDescriptor {
+ public EPackagePropertyDescriptor(IItemPropertyDescriptor inner) {
+ super(inner);
+ }
+
+ @Override
+ public Collection<?> getChoiceOfValues(Object object) {
+ EPackage.Registry reg = EPackage.Registry.INSTANCE;
+ Collection<EPackage> result = new ArrayList<EPackage>(reg.size());
+ Collection<String> keys = new ArrayList<String>(reg.keySet());
+ for (String key : keys) {
+ EPackage pack = reg.getEPackage(key);
+ if (!result.contains(pack))
+ result.add(reg.getEPackage(key));
+ }
+ return result;
+ }
+
+ @Override
+ public IItemLabelProvider getLabelProvider(Object object) {
+ return new IItemLabelProvider() {
+ public String getText(Object object) {
+ return ((EPackage)object).getNsURI();
+ }
+ public Object getImage(Object object) { return null; }
+ };
+ }
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/custom-src/org/eclipse/papyrus/infra/viewpoints/configuration/EReferencePropertyDescriptor.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/custom-src/org/eclipse/papyrus/infra/viewpoints/configuration/EReferencePropertyDescriptor.java
new file mode 100755
index 00000000000..597cc2ba718
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/custom-src/org/eclipse/papyrus/infra/viewpoints/configuration/EReferencePropertyDescriptor.java
@@ -0,0 +1,42 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.configuration;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+/**
+ * Represents a descriptor for properties of type EReference
+ * @author Laurent Wouters
+ */
+public class EReferencePropertyDescriptor extends SurrogateItemPropertyDescriptor {
+ private static final Collection<?> empty = new ArrayList<EReference>();
+
+ public EReferencePropertyDescriptor(IItemPropertyDescriptor inner) {
+ super(inner);
+ }
+
+ @Override
+ public Collection<?> getChoiceOfValues(Object object) {
+ PathElement pe = (PathElement)object;
+ EClass origin = pe.getOrigin();
+ if (origin == null)
+ return empty;
+ return origin.getEAllReferences();
+ }
+} \ No newline at end of file
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/custom-src/org/eclipse/papyrus/infra/viewpoints/configuration/ProfilePropertyDescriptor.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/custom-src/org/eclipse/papyrus/infra/viewpoints/configuration/ProfilePropertyDescriptor.java
new file mode 100755
index 00000000000..785206b57e4
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/custom-src/org/eclipse/papyrus/infra/viewpoints/configuration/ProfilePropertyDescriptor.java
@@ -0,0 +1,55 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.configuration;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+/**
+ * Represents a descriptor for properties of type EList of EPackage
+ * This class lists the currently loaded ECore metamodels.
+ * @author Laurent Wouters
+ */
+public class ProfilePropertyDescriptor extends EPackagePropertyDescriptor {
+ public ProfilePropertyDescriptor(IItemPropertyDescriptor inner) {
+ super(inner);
+ }
+
+ @Override
+ public IItemLabelProvider getLabelProvider(Object object) {
+ return new IItemLabelProvider() {
+ public String getText(Object object) {
+ if (object instanceof EPackage)
+ return ((EPackage)object).getNsURI();
+ if (object instanceof EList<?>) {
+ EList<?> list = (EList<?>)object;
+ if (list.isEmpty())
+ return "";
+ StringBuilder builder = new StringBuilder("{");
+ for (int i=0; i!=list.size(); i++) {
+ if (i != 0)
+ builder.append(", ");
+ builder.append(((EPackage)list.get(i)).getNsURI());
+ }
+ builder.append("}");
+ return builder.toString();
+ }
+ return "";
+ }
+ public Object getImage(Object object) { return null; }
+ };
+ }
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/custom-src/org/eclipse/papyrus/infra/viewpoints/configuration/StereotypePropertyDescriptor.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/custom-src/org/eclipse/papyrus/infra/viewpoints/configuration/StereotypePropertyDescriptor.java
new file mode 100755
index 00000000000..c1defd00456
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/custom-src/org/eclipse/papyrus/infra/viewpoints/configuration/StereotypePropertyDescriptor.java
@@ -0,0 +1,83 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.configuration;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+/**
+ * Represents a descriptor for stereotype properties
+ * @author Laurent Wouters
+ */
+public class StereotypePropertyDescriptor extends SurrogateItemPropertyDescriptor {
+ private static final Collection<EObject> empty = new ArrayList<EObject>();
+
+ public StereotypePropertyDescriptor(IItemPropertyDescriptor inner) {
+ super(inner);
+ }
+
+ @Override
+ public Collection<?> getChoiceOfValues(Object object) {
+ EObject current = (EObject)object;
+ while (current != null && !(current instanceof PapyrusView))
+ current = current.eContainer();
+ if (current == null)
+ return empty;
+ PapyrusView conf = (PapyrusView)current;
+ List<EClass> result = new ArrayList<EClass>();
+ for (EPackage p : conf.getProfiles())
+ for (EClassifier c : p.getEClassifiers())
+ if (c instanceof EClass)
+ result.add((EClass)c);
+ return result;
+ }
+
+ @Override
+ public IItemLabelProvider getLabelProvider(Object object) {
+ return new IItemLabelProvider() {
+ public String getText(Object object) {
+ if (object instanceof EClass)
+ return eClassToString((EClass)object);
+ if (object instanceof EList<?>) {
+ EList<?> list = (EList<?>)object;
+ if (list.isEmpty())
+ return "";
+ StringBuilder builder = new StringBuilder("{");
+ for (int i=0; i!=list.size(); i++) {
+ if (i != 0)
+ builder.append(", ");
+ builder.append(eClassToString((EClass)list.get(i)));
+ }
+ builder.append("}");
+ return builder.toString();
+ }
+ return "";
+ }
+ public Object getImage(Object object) { return null; }
+ };
+ }
+
+ private String eClassToString(EClass item) {
+ return item.getEPackage().getNsPrefix() + "#" + item.getName();
+ }
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/custom-src/org/eclipse/papyrus/infra/viewpoints/configuration/SurrogateItemPropertyDescriptor.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/custom-src/org/eclipse/papyrus/infra/viewpoints/configuration/SurrogateItemPropertyDescriptor.java
new file mode 100755
index 00000000000..4e81ea6e858
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/custom-src/org/eclipse/papyrus/infra/viewpoints/configuration/SurrogateItemPropertyDescriptor.java
@@ -0,0 +1,69 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.configuration;
+
+import java.util.Collection;
+
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+/**
+ * Represents a surrogate property descriptor delegating to an encapsulated descriptor
+ * @author Laurent Wouters
+ */
+public abstract class SurrogateItemPropertyDescriptor implements IItemPropertyDescriptor {
+ private IItemPropertyDescriptor inner;
+
+ public SurrogateItemPropertyDescriptor(IItemPropertyDescriptor inner) {
+ this.inner = inner;
+ }
+
+ public Object getPropertyValue(Object object) { return inner.getPropertyValue(object); }
+
+ public boolean isPropertySet(Object object) { return inner.isPropertySet(object); }
+
+ public boolean canSetProperty(Object object) { return inner.canSetProperty(object); }
+
+ public void resetPropertyValue(Object object) { inner.resetPropertyValue(object); }
+
+ public void setPropertyValue(Object object, Object value) { inner.setPropertyValue(object, value); }
+
+ public String getCategory(Object object) { return inner.getCategory(object); }
+
+ public String getDescription(Object object) { return inner.getDescription(object); }
+
+ public String getDisplayName(Object object) { return inner.getDisplayName(object); }
+
+ public String[] getFilterFlags(Object object) { return inner.getFilterFlags(object); }
+
+ public Object getHelpContextIds(Object object) { return inner.getHelpContextIds(object); }
+
+ public String getId(Object object) { return inner.getId(object); }
+
+ public IItemLabelProvider getLabelProvider(Object object) { return inner.getLabelProvider(object); }
+
+ public boolean isCompatibleWith(Object object, Object anotherObject, IItemPropertyDescriptor anotherPropertyDescriptor) {
+ return inner.isCompatibleWith(object, anotherObject, anotherPropertyDescriptor);
+ }
+
+ public Object getFeature(Object object) { return inner.getFeature(object); }
+
+ public boolean isMany(Object object) { return inner.isMany(object); }
+
+ public abstract Collection<?> getChoiceOfValues(Object object);
+
+ public boolean isMultiLine(Object object) { return inner.isMultiLine(object); }
+
+ public boolean isSortChoices(Object object) { return inner.isSortChoices(object); }
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/custom-src/org/eclipse/papyrus/infra/viewpoints/configuration/ui/ConfigurationURLSelectionDialog.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/custom-src/org/eclipse/papyrus/infra/viewpoints/configuration/ui/ConfigurationURLSelectionDialog.java
new file mode 100755
index 00000000000..ed3720c1449
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/custom-src/org/eclipse/papyrus/infra/viewpoints/configuration/ui/ConfigurationURLSelectionDialog.java
@@ -0,0 +1,149 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.configuration.ui;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ILabelProviderListener;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ListViewer;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Shell;
+
+/**
+ * Dialog for the selection of a configuration model through URIs
+ * @author Laurent Wouters
+ */
+public class ConfigurationURLSelectionDialog extends Dialog {
+
+ private static final int SIZE_WIDTH = 400;
+ private static final int SIZE_HEIGHT = 300;
+ private static final String MSG_TITLE = "Select the URI of the configuration model";
+
+ private static final Object TREE_ROOT = new Object();
+
+ private Resource selection;
+
+ /**
+ * Represents a provider of URIs
+ * @author Laurent Wouters
+ */
+ private static class ModelContentProvider implements IStructuredContentProvider {
+ public void dispose() { }
+ public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { }
+ public Object[] getElements(Object inputElement) {
+ List<Resource> data = new ArrayList<Resource>();
+
+ return data.toArray();
+ }
+ }
+
+ public ConfigurationURLSelectionDialog(Shell parentShell, int style) {
+ super(parentShell);
+ }
+
+ @Override
+ protected Control createDialogArea(Composite parent) {
+ // create composite
+ Composite composite = (Composite) super.createDialogArea(parent);
+ GridLayout gridLayout = new GridLayout();
+ gridLayout.numColumns = 1;
+ composite.setLayout(gridLayout);
+
+ Composite inner = new Composite(composite, SWT.NONE);
+ inner.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL | GridData.FILL_VERTICAL));
+ inner.setLayout(new FillLayout());
+
+ ListViewer list = new ListViewer(inner, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
+ list.setLabelProvider(getLabelProvider());
+ list.setContentProvider(new ModelContentProvider());
+ list.setInput(TREE_ROOT);
+ list.addSelectionChangedListener(new ISelectionChangedListener() {
+ public void selectionChanged(SelectionChangedEvent event) {
+ IStructuredSelection s = (IStructuredSelection)event.getSelection();
+ Object first = s.getFirstElement();
+ if (first == null)
+ onSelection(null);
+ else if (first instanceof Resource)
+ onSelection((Resource)first);
+ else
+ onSelection(null);
+ }
+ });
+
+ applyDialogFont(composite);
+ return composite;
+ }
+
+ @Override
+ protected Control createButtonBar(Composite parent) {
+ Control composite = super.createButtonBar(parent);
+ if (selection == null)
+ getButton(IDialogConstants.OK_ID).setEnabled(false);
+ else
+ getButton(IDialogConstants.OK_ID).setEnabled(true);
+ return composite;
+ }
+
+ private void onSelection(Resource element) {
+ selection = element;
+ if (selection == null) {
+ getButton(IDialogConstants.OK_ID).setEnabled(false);
+ } else {
+ getButton(IDialogConstants.OK_ID).setEnabled(true);
+ }
+ }
+
+ @Override
+ protected void configureShell(Shell shell) {
+ super.configureShell(shell);
+ shell.setSize(SIZE_WIDTH, SIZE_HEIGHT);
+ Point size = shell.getParent().getShell().getSize();
+ shell.setLocation((size.x - SIZE_WIDTH)/2, (size.y - SIZE_HEIGHT)/2);
+ shell.setText(MSG_TITLE);
+ }
+
+ private ILabelProvider getLabelProvider() {
+ return new ILabelProvider() {
+ public void addListener(ILabelProviderListener listener) { }
+ public void dispose() { }
+ public boolean isLabelProperty(Object element, String property) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+ public void removeListener(ILabelProviderListener listener) { }
+ public Image getImage(Object element) { return null; }
+ public String getText(Object element) {
+ Resource res = (Resource)element;
+ return res.getURI().toString();
+ }
+ };
+ }
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/custom-src/org/eclipse/papyrus/infra/viewpoints/configuration/ui/ECoreModelContentProvider.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/custom-src/org/eclipse/papyrus/infra/viewpoints/configuration/ui/ECoreModelContentProvider.java
new file mode 100755
index 00000000000..dafef1d30a8
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/custom-src/org/eclipse/papyrus/infra/viewpoints/configuration/ui/ECoreModelContentProvider.java
@@ -0,0 +1,68 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.configuration.ui;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.Viewer;
+
+/**
+ * Represents a content provider for a hierarchy of Ecore objects
+ * @author Laurent Wouters
+ */
+public class ECoreModelContentProvider implements ITreeContentProvider {
+ /**
+ * Represents the top object to be passed as input for to the viewer using this provider
+ */
+ public static final Object ROOT = new Object();
+
+ private EObject root;
+
+ /**
+ * Initializes this provider with the given object as root
+ * @param root The root object
+ */
+ public ECoreModelContentProvider(EObject root) {
+ this.root = root;
+ }
+
+ public void dispose() { }
+
+ public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { }
+
+ public Object[] getElements(Object inputElement) {
+ return new Object[] { root };
+ }
+
+ public Object[] getChildren(Object parentElement) {
+ if (parentElement == ROOT)
+ return new Object[] { root };
+ EObject origin = (EObject)parentElement;
+ return origin.eContents().toArray();
+ }
+
+ public Object getParent(Object element) {
+ if (element == ROOT)
+ return null;
+ EObject child = (EObject)element;
+ return child.eContainer();
+ }
+
+ public boolean hasChildren(Object element) {
+ if (element == ROOT)
+ return true;
+ EObject origin = (EObject)element;
+ return !origin.eContents().isEmpty();
+ }
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/custom-src/org/eclipse/papyrus/infra/viewpoints/configuration/ui/IModelElementValidator.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/custom-src/org/eclipse/papyrus/infra/viewpoints/configuration/ui/IModelElementValidator.java
new file mode 100755
index 00000000000..718e21e615f
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/custom-src/org/eclipse/papyrus/infra/viewpoints/configuration/ui/IModelElementValidator.java
@@ -0,0 +1,29 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.configuration.ui;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * Represents the validation for the selection of an object
+ * @author Laurent Wouters
+ */
+public interface IModelElementValidator {
+ /**
+ * Determines whether the given object pass the represented validation
+ * @param element The element to evaluate
+ * @return <code>null</code> if the object passes the validation, or the notification to be displayed
+ */
+ String isSelectable(EObject element);
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/custom-src/org/eclipse/papyrus/infra/viewpoints/configuration/ui/ModelElementSelectionDialog.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/custom-src/org/eclipse/papyrus/infra/viewpoints/configuration/ui/ModelElementSelectionDialog.java
new file mode 100755
index 00000000000..3020ec1a5b0
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/custom-src/org/eclipse/papyrus/infra/viewpoints/configuration/ui/ModelElementSelectionDialog.java
@@ -0,0 +1,222 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.configuration.ui;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.NoSuchElementException;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.papyrus.infra.core.services.ServiceException;
+import org.eclipse.papyrus.infra.core.services.ServicesRegistry;
+import org.eclipse.papyrus.infra.services.labelprovider.service.LabelProviderService;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+
+/**
+ * Represents a dialog for the selection of a model element
+ * @author Laurent Wouters
+ */
+public class ModelElementSelectionDialog extends Dialog {
+ private static final int SIZE_WIDTH = 400;
+ private static final int SIZE_HEIGHT = 300;
+
+ private static final String MSG_TITLE = "Model element selection";
+ private static final String MSG_EMPTYSELECTION = "Select an element";
+
+ private ServicesRegistry registry;
+ private EObject root;
+ private EObject selection;
+ private IModelElementValidator validator;
+ private Label notification;
+ private String message;
+
+ private static class AtomSelection implements IStructuredSelection {
+ private Object element;
+ public AtomSelection(Object element) {
+ this.element = element;
+ }
+ public boolean isEmpty() {
+ return (element == null);
+ }
+ public Object getFirstElement() {
+ return element;
+ }
+ public Iterator iterator() {
+ return new Iterator() {
+ private boolean done = false;
+ public boolean hasNext() {
+ return (!done);
+ }
+ public Object next() {
+ if (done)
+ throw new NoSuchElementException();
+ done = true;
+ return element;
+ }
+ public void remove() { }
+ };
+ }
+ public int size() {
+ return ((element != null) ? 1 : 0);
+ }
+ public Object[] toArray() {
+ if (element == null)
+ return new Object[0];
+ return new Object[] { element };
+ }
+ public List toList() {
+ List<Object> list = new ArrayList<Object>(1);
+ if (element != null)
+ list.add(element);
+ return list;
+ }
+ }
+
+
+ public EObject getSelection() {
+ return selection;
+ }
+
+ public ModelElementSelectionDialog(Shell parentShell, ServicesRegistry registry, String message, EObject root, EObject current, IModelElementValidator validator) {
+ super(parentShell);
+ this.registry = registry;
+ this.root = root;
+ this.selection = current;
+ this.validator = validator;
+ this.message = message;
+ }
+
+ @Override
+ protected Control createDialogArea(Composite parent) {
+ // create composite
+ Composite composite = (Composite) super.createDialogArea(parent);
+ GridLayout gridLayout = new GridLayout();
+ gridLayout.numColumns = 1;
+ composite.setLayout(gridLayout);
+
+ Label label = new Label(composite, SWT.WRAP | SWT.SINGLE);
+ label.setText(message);
+ label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL));
+
+ Composite inner = new Composite(composite, SWT.NONE);
+ inner.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL | GridData.FILL_VERTICAL));
+ inner.setLayout(new FillLayout());
+
+ TreeViewer tree = new TreeViewer(inner, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
+ tree.setLabelProvider(getLabelProvider());
+ tree.setContentProvider(new ECoreModelContentProvider(root));
+ tree.setInput(ECoreModelContentProvider.ROOT);
+ if (selection != null) {
+ tree.reveal(selection);
+ tree.setSelection(new AtomSelection(selection));
+ }
+ tree.addSelectionChangedListener(new ISelectionChangedListener() {
+ public void selectionChanged(SelectionChangedEvent event) {
+ IStructuredSelection s = (IStructuredSelection)event.getSelection();
+ Object first = s.getFirstElement();
+ if (first == null)
+ onSelection(null);
+ else if (first instanceof EObject)
+ onSelection((EObject)first);
+ else
+ onSelection(null);
+ }
+ });
+
+ notification = new Label(composite, SWT.WRAP | SWT.SINGLE);
+ notification.setForeground(new Color(composite.getDisplay(), 255, 0, 0));
+ notification.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL));
+ if (selection == null)
+ notification.setText(MSG_EMPTYSELECTION);
+ else {
+ String msg = validator.isSelectable(selection);
+ if (msg == null)
+ notification.setText("");
+ else
+ notification.setText(msg);
+ }
+
+ applyDialogFont(composite);
+ return composite;
+ }
+
+ @Override
+ protected Control createButtonBar(Composite parent) {
+ Control composite = super.createButtonBar(parent);
+ if (selection == null)
+ getButton(IDialogConstants.OK_ID).setEnabled(false);
+ else {
+ String msg = validator.isSelectable(selection);
+ if (msg == null)
+ getButton(IDialogConstants.OK_ID).setEnabled(true);
+ else
+ getButton(IDialogConstants.OK_ID).setEnabled(false);
+ }
+ return composite;
+ }
+
+
+ private void onSelection(EObject element) {
+ selection = element;
+ if (selection == null) {
+ notification.setText(MSG_EMPTYSELECTION);
+ getButton(IDialogConstants.OK_ID).setEnabled(false);
+ } else {
+ String msg = validator.isSelectable(selection);
+ if (msg == null) {
+ notification.setText("");
+ getButton(IDialogConstants.OK_ID).setEnabled(true);
+ } else {
+ notification.setText(msg);
+ getButton(IDialogConstants.OK_ID).setEnabled(false);
+ }
+ }
+ }
+
+ @Override
+ protected void configureShell(Shell shell) {
+ super.configureShell(shell);
+ shell.setSize(SIZE_WIDTH, SIZE_HEIGHT);
+ Point size = shell.getParent().getShell().getSize();
+ shell.setLocation((size.x - SIZE_WIDTH)/2, (size.y - SIZE_HEIGHT)/2);
+ shell.setText(MSG_TITLE);
+ }
+
+ private ILabelProvider getLabelProvider() {
+ try {
+ LabelProviderService service = registry.getService(LabelProviderService.class);
+ if (service != null)
+ return service.getLabelProvider();
+ }
+ catch (ServiceException e) { }
+ return null;
+ }
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/icons/svg/ChildRule.svg b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/icons/svg/ChildRule.svg
new file mode 100755
index 00000000000..df1f68eebf1
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/icons/svg/ChildRule.svg
@@ -0,0 +1,209 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="1024"
+ height="1024"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="rule_child.svg"
+ inkscape:export-filename="C:\Users\LW238780\Desktop\cviewpoint.png"
+ inkscape:export-xdpi="1.41"
+ inkscape:export-ydpi="1.41">
+ <defs
+ id="defs4">
+ <linearGradient
+ id="linearGradient3976">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop3978" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3980" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3940">
+ <stop
+ style="stop-color:#ff6400;stop-opacity:1;"
+ offset="0"
+ id="stop3942" />
+ <stop
+ style="stop-color:#ffd200;stop-opacity:1;"
+ offset="1"
+ id="stop3944" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3783">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3785" />
+ <stop
+ style="stop-color:#c8c8c8;stop-opacity:1;"
+ offset="1"
+ id="stop3787" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3765">
+ <stop
+ style="stop-color:#e6e6ff;stop-opacity:1;"
+ offset="0"
+ id="stop3767" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="1"
+ id="stop3769" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3757">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3759" />
+ <stop
+ style="stop-color:#aaaaaa;stop-opacity:1;"
+ offset="1"
+ id="stop3761" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3757"
+ id="linearGradient3763"
+ x1="444.28577"
+ y1="971.64789"
+ x2="604.28577"
+ y2="163.09605"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3765"
+ id="linearGradient3771"
+ x1="444.28577"
+ y1="971.64789"
+ x2="604.28577"
+ y2="163.09605"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3940"
+ id="radialGradient3946"
+ cx="1127.8128"
+ cy="480.05185"
+ fx="1127.8128"
+ fy="480.05185"
+ r="150"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2835941,0,0,1.2835941,-647.65383,-392.19171)" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.24410375"
+ inkscape:cx="1591.3792"
+ inkscape:cy="-208.74877"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer2"
+ showgrid="false"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1178"
+ inkscape:window-x="-8"
+ inkscape:window-y="-8"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="Element"
+ style="display:inline">
+ <g
+ id="g3007"
+ transform="matrix(0.55555556,0,0,0.55555556,26.666666,38.44444)">
+ <rect
+ y="174"
+ x="70"
+ height="780"
+ width="880"
+ id="rect3948"
+ style="fill:#ffffff;fill-opacity:1;stroke:#000096;stroke-width:20;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <rect
+ y="169"
+ x="70"
+ height="180"
+ width="880"
+ id="rect3948-5"
+ style="fill:#c8c8ff;fill-opacity:1;stroke:#000096;stroke-width:20;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
+ <rect
+ y="424"
+ x="160"
+ height="150"
+ width="350"
+ id="rect3984"
+ style="fill:#ffc800;fill-opacity:1;stroke:#ff6400;stroke-width:20;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <rect
+ style="fill:#ffc800;fill-opacity:1;stroke:#ff6400;stroke-width:20;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect3997"
+ width="350"
+ height="150"
+ x="510"
+ y="714" />
+ <path
+ sodipodi:nodetypes="ccc"
+ inkscape:connector-curvature="0"
+ id="path3999"
+ d="m 250,574 0,225 260,0"
+ style="fill:none;stroke:#505050;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ </g>
+ <rect
+ style="fill:#c8c8c8;fill-opacity:1;stroke:#505050;stroke-width:20;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect3014"
+ width="600"
+ height="200"
+ x="360"
+ y="754" />
+ <path
+ style="fill:none;stroke:#ff5000;stroke-width:60;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:120, 60;stroke-dashoffset:0"
+ d="m 350,874 -160,0 0,-300"
+ id="path3786"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccc" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer3"
+ inkscape:label="Tool"
+ style="display:none">
+ <path
+ style="fill:url(#radialGradient3946);fill-opacity:1;stroke:#ff5000;stroke-width:14.92178059;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 748.65625,31.460876 0,141.195364 -141.19536,0 0,102.68751 141.19536,0 0,141.19536 102.68751,0 0,-141.19536 141.19535,0 0,-102.68751 -141.19535,0 0,-141.195364 -102.68751,0 z"
+ id="rect3919"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/icons/svg/ElementImport.svg b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/icons/svg/ElementImport.svg
new file mode 100755
index 00000000000..092e2903e84
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/icons/svg/ElementImport.svg
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="1024"
+ height="1024"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="PapyrusDiagram.svg"
+ inkscape:export-filename="C:\Users\LW238780\Desktop\import.png"
+ inkscape:export-xdpi="1.41"
+ inkscape:export-ydpi="1.41">
+ <defs
+ id="defs4">
+ <linearGradient
+ id="linearGradient3976">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop3978" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3980" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3940">
+ <stop
+ style="stop-color:#ff6400;stop-opacity:1;"
+ offset="0"
+ id="stop3942" />
+ <stop
+ style="stop-color:#ffd200;stop-opacity:1;"
+ offset="1"
+ id="stop3944" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3783">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3785" />
+ <stop
+ style="stop-color:#c8c8c8;stop-opacity:1;"
+ offset="1"
+ id="stop3787" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3765">
+ <stop
+ style="stop-color:#e6e6ff;stop-opacity:1;"
+ offset="0"
+ id="stop3767" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="1"
+ id="stop3769" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3757">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3759" />
+ <stop
+ style="stop-color:#aaaaaa;stop-opacity:1;"
+ offset="1"
+ id="stop3761" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3757"
+ id="linearGradient3763"
+ x1="444.28577"
+ y1="971.64789"
+ x2="604.28577"
+ y2="163.09605"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3765"
+ id="linearGradient3771"
+ x1="444.28577"
+ y1="971.64789"
+ x2="604.28577"
+ y2="163.09605"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3940"
+ id="radialGradient3946"
+ cx="1127.8128"
+ cy="480.05185"
+ fx="1127.8128"
+ fy="480.05185"
+ r="150"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2835941,0,0,1.2835941,-647.65383,-392.19171)" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.34521484"
+ inkscape:cx="553.90512"
+ inkscape:cy="756.42382"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1370"
+ inkscape:window-height="894"
+ inkscape:window-x="142"
+ inkscape:window-y="116"
+ inkscape:window-maximized="0" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="Viewpoint"
+ style="display:inline"
+ sodipodi:insensitive="true">
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000096;stroke-width:20;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect3948"
+ width="880"
+ height="780"
+ x="70"
+ y="174" />
+ <rect
+ style="fill:#c8c8ff;fill-opacity:1;stroke:#000096;stroke-width:20;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+ id="rect3948-5"
+ width="880"
+ height="180"
+ x="70"
+ y="169" />
+ <rect
+ style="fill:#ffc800;fill-opacity:1;stroke:#ff6400;stroke-width:20;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect3984"
+ width="350"
+ height="150"
+ x="160"
+ y="424" />
+ <rect
+ y="714"
+ x="510"
+ height="150"
+ width="350"
+ id="rect3997"
+ style="fill:#ffc800;fill-opacity:1;stroke:#ff6400;stroke-width:20;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ style="fill:none;stroke:#505050;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 250,574 0,225 260,0"
+ id="path3999"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccc" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer1"
+ inkscape:label="Import"
+ style="display:inline">
+ <path
+ style="fill:#009600;fill-opacity:1;stroke:none"
+ d="M 173.66714,313.39139 388.79527,686.00423 761.40811,470.87611 543.52198,437.69126 C 591.25878,259.53507 805.51507,85.617118 1004.9441,32.180244 764.68554,-32.196808 385.4246,134.35246 323.33011,366.09224 z"
+ id="path3012"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccc" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer3"
+ inkscape:label="Tool"
+ style="display:none"
+ sodipodi:insensitive="true">
+ <path
+ style="fill:url(#radialGradient3946);fill-opacity:1;stroke:#ff5000;stroke-width:14.92178059;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 748.65625,31.460876 0,141.195364 -141.19536,0 0,102.68751 141.19536,0 0,141.19536 102.68751,0 0,-141.19536 141.19535,0 0,-102.68751 -141.19535,0 0,-141.195364 -102.68751,0 z"
+ id="rect3919"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/icons/svg/ModelRule.svg b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/icons/svg/ModelRule.svg
new file mode 100755
index 00000000000..aa5342a2568
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/icons/svg/ModelRule.svg
@@ -0,0 +1,228 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="1024"
+ height="1024"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="rule_model.svg"
+ inkscape:export-filename="C:\Users\LW238780\Desktop\icons\rule_model_tool.png"
+ inkscape:export-xdpi="1.41"
+ inkscape:export-ydpi="1.41">
+ <defs
+ id="defs4">
+ <linearGradient
+ id="linearGradient3976">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop3978" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3980" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3940">
+ <stop
+ style="stop-color:#ff6400;stop-opacity:1;"
+ offset="0"
+ id="stop3942" />
+ <stop
+ style="stop-color:#ffd200;stop-opacity:1;"
+ offset="1"
+ id="stop3944" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3783">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3785" />
+ <stop
+ style="stop-color:#c8c8c8;stop-opacity:1;"
+ offset="1"
+ id="stop3787" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3765">
+ <stop
+ style="stop-color:#e6e6ff;stop-opacity:1;"
+ offset="0"
+ id="stop3767" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="1"
+ id="stop3769" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3757">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3759" />
+ <stop
+ style="stop-color:#aaaaaa;stop-opacity:1;"
+ offset="1"
+ id="stop3761" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3757"
+ id="linearGradient3763"
+ x1="444.28577"
+ y1="971.64789"
+ x2="604.28577"
+ y2="163.09605"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3765"
+ id="linearGradient3771"
+ x1="444.28577"
+ y1="971.64789"
+ x2="604.28577"
+ y2="163.09605"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3940"
+ id="radialGradient3946"
+ cx="1127.8128"
+ cy="480.05185"
+ fx="1127.8128"
+ fy="480.05185"
+ r="150"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2835941,0,0,1.2835941,-647.65383,-392.19171)" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.35355339"
+ inkscape:cx="-137.87568"
+ inkscape:cy="740.22194"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer2"
+ showgrid="false"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1178"
+ inkscape:window-x="-8"
+ inkscape:window-y="-8"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="Element"
+ style="display:inline">
+ <rect
+ style="fill:#c8c8c8;fill-opacity:1;stroke:#505050;stroke-width:20;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect3014"
+ width="600"
+ height="200"
+ x="70"
+ y="694" />
+ <path
+ style="fill:none;fill-opacity:0.47058823999999999;stroke:#6464ff;stroke-width:10;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 355,364 585,0 -270,330 -600,0 z"
+ id="rect3831"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0"
+ id="path3834"
+ d="m 355,769 585,0 -270,125 -600,0 z"
+ style="fill:none;fill-opacity:0.47058823999999999;stroke:#6464ff;stroke-width:10;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ style="fill:none;fill-opacity:0.47058823999999999;stroke:#6464ff;stroke-width:10;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="M 670,694 940,364 940,769 670,894 z"
+ id="path3836"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="fill:none;fill-opacity:0.47058823999999999;stroke:#6464ff;stroke-width:10;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+ d="M 70,694 355,364 355,769 70,894 z"
+ id="path3836-1"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ <g
+ style="display:inline;opacity:1"
+ id="g3007"
+ transform="matrix(0.66666667,0,0,0.66666667,310,131.33333)">
+ <rect
+ y="174"
+ x="70"
+ height="780"
+ width="880"
+ id="rect3948"
+ style="fill:#ffffff;fill-opacity:1;stroke:#000096;stroke-width:20;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <rect
+ y="169"
+ x="70"
+ height="180"
+ width="880"
+ id="rect3948-5"
+ style="fill:#c8c8ff;fill-opacity:1;stroke:#000096;stroke-width:20;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
+ <rect
+ y="424"
+ x="160"
+ height="150"
+ width="350"
+ id="rect3984"
+ style="fill:#ffc800;fill-opacity:1;stroke:#ff6400;stroke-width:20;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <rect
+ style="fill:#ffc800;fill-opacity:1;stroke:#ff6400;stroke-width:20;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect3997"
+ width="350"
+ height="150"
+ x="510"
+ y="714" />
+ <path
+ sodipodi:nodetypes="ccc"
+ inkscape:connector-curvature="0"
+ id="path3999"
+ d="m 250,574 0,225 260,0"
+ style="fill:none;stroke:#505050;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ </g>
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer3"
+ inkscape:label="Tool"
+ style="display:inline">
+ <path
+ style="fill:url(#radialGradient3946);fill-opacity:1;stroke:#ff5000;stroke-width:14.92178059;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 748.65625,31.460876 0,141.195364 -141.19536,0 0,102.68751 141.19536,0 0,141.19536 102.68751,0 0,-141.19536 141.19535,0 0,-102.68751 -141.19535,0 0,-141.195364 -102.68751,0 z"
+ id="rect3919"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/icons/svg/OwningRule.svg b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/icons/svg/OwningRule.svg
new file mode 100755
index 00000000000..b9fa186a840
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/icons/svg/OwningRule.svg
@@ -0,0 +1,209 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="1024"
+ height="1024"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="rule_owning.svg"
+ inkscape:export-filename="C:\Users\LW238780\Desktop\cviewpoint.png"
+ inkscape:export-xdpi="1.41"
+ inkscape:export-ydpi="1.41">
+ <defs
+ id="defs4">
+ <linearGradient
+ id="linearGradient3976">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop3978" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3980" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3940">
+ <stop
+ style="stop-color:#ff6400;stop-opacity:1;"
+ offset="0"
+ id="stop3942" />
+ <stop
+ style="stop-color:#ffd200;stop-opacity:1;"
+ offset="1"
+ id="stop3944" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3783">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3785" />
+ <stop
+ style="stop-color:#c8c8c8;stop-opacity:1;"
+ offset="1"
+ id="stop3787" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3765">
+ <stop
+ style="stop-color:#e6e6ff;stop-opacity:1;"
+ offset="0"
+ id="stop3767" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="1"
+ id="stop3769" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3757">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3759" />
+ <stop
+ style="stop-color:#aaaaaa;stop-opacity:1;"
+ offset="1"
+ id="stop3761" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3757"
+ id="linearGradient3763"
+ x1="444.28577"
+ y1="971.64789"
+ x2="604.28577"
+ y2="163.09605"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3765"
+ id="linearGradient3771"
+ x1="444.28577"
+ y1="971.64789"
+ x2="604.28577"
+ y2="163.09605"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3940"
+ id="radialGradient3946"
+ cx="1127.8128"
+ cy="480.05185"
+ fx="1127.8128"
+ fy="480.05185"
+ r="150"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2835941,0,0,1.2835941,-647.65383,-392.19171)" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.34521484"
+ inkscape:cx="502.81712"
+ inkscape:cy="418.7586"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer2"
+ showgrid="false"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1370"
+ inkscape:window-height="894"
+ inkscape:window-x="223"
+ inkscape:window-y="84"
+ inkscape:window-maximized="0" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="Element"
+ style="display:inline">
+ <g
+ id="g3007"
+ transform="matrix(0.55555556,0,0,0.55555556,416.66667,393.47427)">
+ <rect
+ y="174"
+ x="70"
+ height="780"
+ width="880"
+ id="rect3948"
+ style="fill:#ffffff;fill-opacity:1;stroke:#000096;stroke-width:20;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <rect
+ y="169"
+ x="70"
+ height="180"
+ width="880"
+ id="rect3948-5"
+ style="fill:#c8c8ff;fill-opacity:1;stroke:#000096;stroke-width:20;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
+ <rect
+ y="424"
+ x="160"
+ height="150"
+ width="350"
+ id="rect3984"
+ style="fill:#ffc800;fill-opacity:1;stroke:#ff6400;stroke-width:20;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <rect
+ style="fill:#ffc800;fill-opacity:1;stroke:#ff6400;stroke-width:20;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect3997"
+ width="350"
+ height="150"
+ x="510"
+ y="714" />
+ <path
+ sodipodi:nodetypes="ccc"
+ inkscape:connector-curvature="0"
+ id="path3999"
+ d="m 250,574 0,225 260,0"
+ style="fill:none;stroke:#505050;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ </g>
+ <rect
+ style="fill:#c8c8c8;fill-opacity:1;stroke:#505050;stroke-width:20;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect3014"
+ width="600"
+ height="200"
+ x="60"
+ y="94" />
+ <path
+ style="fill:none;stroke:#ff5000;stroke-width:60;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:120,60;stroke-dashoffset:0"
+ d="m 150,304 0,520 300,0"
+ id="path3786"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccc" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer3"
+ inkscape:label="Tool"
+ style="display:none">
+ <path
+ style="fill:url(#radialGradient3946);fill-opacity:1;stroke:#ff5000;stroke-width:14.92178059;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 748.65625,31.460876 0,141.195364 -141.19536,0 0,102.68751 141.19536,0 0,141.19536 102.68751,0 0,-141.19536 141.19535,0 0,-102.68751 -141.19535,0 0,-141.195364 -102.68751,0 z"
+ id="rect3919"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/icons/svg/PaletteRule.svg b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/icons/svg/PaletteRule.svg
new file mode 100755
index 00000000000..fc4678b0f8c
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/icons/svg/PaletteRule.svg
@@ -0,0 +1,315 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="1024"
+ height="1024"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="rule_palette.svg"
+ inkscape:export-filename="C:\Users\LW238780\Desktop\icons\rule_palette.png"
+ inkscape:export-xdpi="1.41"
+ inkscape:export-ydpi="1.41">
+ <defs
+ id="defs4">
+ <linearGradient
+ id="linearGradient3828">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop3830" />
+ <stop
+ style="stop-color:#c86400;stop-opacity:1;"
+ offset="1"
+ id="stop3832" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3808">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop3810" />
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="1"
+ id="stop3812" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3976">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop3978" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3980" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3940">
+ <stop
+ style="stop-color:#ff6400;stop-opacity:1;"
+ offset="0"
+ id="stop3942" />
+ <stop
+ style="stop-color:#ffd200;stop-opacity:1;"
+ offset="1"
+ id="stop3944" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3783">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3785" />
+ <stop
+ style="stop-color:#c8c8c8;stop-opacity:1;"
+ offset="1"
+ id="stop3787" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3765">
+ <stop
+ style="stop-color:#e6e6ff;stop-opacity:1;"
+ offset="0"
+ id="stop3767" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="1"
+ id="stop3769" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3757">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3759" />
+ <stop
+ style="stop-color:#aaaaaa;stop-opacity:1;"
+ offset="1"
+ id="stop3761" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3757"
+ id="linearGradient3763"
+ x1="444.28577"
+ y1="971.64789"
+ x2="604.28577"
+ y2="163.09605"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3765"
+ id="linearGradient3771"
+ x1="444.28577"
+ y1="971.64789"
+ x2="604.28577"
+ y2="163.09605"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3940"
+ id="radialGradient3946"
+ cx="1127.8128"
+ cy="480.05185"
+ fx="1127.8128"
+ fy="480.05185"
+ r="150"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2835941,0,0,1.2835941,-647.65383,-392.19171)" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3808"
+ id="radialGradient3814"
+ cx="726.35925"
+ cy="694.49506"
+ fx="726.35925"
+ fy="694.49506"
+ r="16.656294"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3808"
+ id="radialGradient3821"
+ gradientUnits="userSpaceOnUse"
+ cx="726.35925"
+ cy="694.49506"
+ fx="726.35925"
+ fy="694.49506"
+ r="16.656294" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3828"
+ id="radialGradient3834"
+ cx="432.33946"
+ cy="173.08061"
+ fx="432.33946"
+ fy="173.08061"
+ r="254.18953"
+ gradientTransform="matrix(0.83091287,0,0,0.09232366,-152.14788,832.58053)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3808"
+ id="radialGradient3836"
+ gradientUnits="userSpaceOnUse"
+ cx="726.35925"
+ cy="694.49506"
+ fx="726.35925"
+ fy="694.49506"
+ r="16.656294" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3808"
+ id="radialGradient3844"
+ gradientUnits="userSpaceOnUse"
+ cx="726.35925"
+ cy="694.49506"
+ fx="726.35925"
+ fy="694.49506"
+ r="16.656294" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3828"
+ id="radialGradient3846"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83091287,0,0,0.09232366,-152.14788,832.58053)"
+ cx="432.33946"
+ cy="173.08061"
+ fx="432.33946"
+ fy="173.08061"
+ r="254.18953" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.69042968"
+ inkscape:cx="339.29467"
+ inkscape:cy="548.40518"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer2"
+ showgrid="false"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1178"
+ inkscape:window-x="-8"
+ inkscape:window-y="-8"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="Element"
+ style="display:inline">
+ <g
+ style="display:inline"
+ id="g3007"
+ transform="matrix(0.66666667,0,0,0.66666667,21,261.33334)">
+ <rect
+ y="174"
+ x="70"
+ height="780"
+ width="880"
+ id="rect3948"
+ style="fill:#ffffff;fill-opacity:1;stroke:#000096;stroke-width:20;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <rect
+ y="169"
+ x="70"
+ height="180"
+ width="880"
+ id="rect3948-5"
+ style="fill:#c8c8ff;fill-opacity:1;stroke:#000096;stroke-width:20;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
+ <rect
+ y="424"
+ x="160"
+ height="150"
+ width="350"
+ id="rect3984"
+ style="fill:#ffc800;fill-opacity:1;stroke:#ff6400;stroke-width:20;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <rect
+ style="fill:#ffc800;fill-opacity:1;stroke:#ff6400;stroke-width:20;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect3997"
+ width="350"
+ height="150"
+ x="510"
+ y="714" />
+ <path
+ sodipodi:nodetypes="ccc"
+ inkscape:connector-curvature="0"
+ id="path3999"
+ d="m 250,574 0,225 260,0"
+ style="fill:none;stroke:#505050;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ </g>
+ <g
+ id="g3838"
+ transform="matrix(1.1034962,-0.02308912,0.02308912,1.1034962,-130.58439,-2.2648535)">
+ <path
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0"
+ id="rect3800"
+ d="m 890.67392,153.77183 c 52.54032,-13.98518 89.85969,24.32661 79.60087,83.75273 l -352.7346,408.7136 c -42.45634,-1.46691 -47.97342,-1.89935 -51.85945,-55.76315 z"
+ style="fill:#c86400;fill-opacity:1;stroke:none" />
+ <path
+ sodipodi:nodetypes="scsss"
+ inkscape:connector-curvature="0"
+ id="path3802"
+ d="m 668.27631,691.68132 c -15.19666,56.7147 -134.54047,191.90845 -191.25517,176.71179 -37.88584,-9.40316 55.27777,-64.53184 27.79618,-190.15209 -12.54823,-57.35882 31.56925,-131.96336 88.28393,-116.7667 56.7147,15.19666 90.37171,73.49232 75.17506,130.207 z"
+ style="fill:#000000;fill-opacity:1;stroke:none" />
+ <path
+ transform="matrix(2.8237478,0.75662094,-0.75662094,2.8237478,-941.22566,-1872.8999)"
+ d="m 743.01555,694.49506 c 0,9.19901 -7.45728,16.65629 -16.6563,16.65629 -9.19901,0 -16.65629,-7.45728 -16.65629,-16.65629 0,-9.19902 7.45728,-16.6563 16.65629,-16.6563 9.19902,0 16.6563,7.45728 16.6563,16.6563 z"
+ sodipodi:ry="16.656294"
+ sodipodi:rx="16.656294"
+ sodipodi:cy="694.49506"
+ sodipodi:cx="726.35925"
+ id="path3806"
+ style="fill:url(#radialGradient3844);fill-opacity:1;stroke:none"
+ sodipodi:type="arc" />
+ <rect
+ transform="matrix(0.6390587,-0.76915797,0.76915797,0.6390587,0,0)"
+ y="825.09222"
+ x="-4.12082"
+ height="46.935413"
+ width="422.4187"
+ id="rect3826"
+ style="fill:url(#radialGradient3846);fill-opacity:1;stroke:none" />
+ </g>
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer3"
+ inkscape:label="Tool"
+ style="display:none">
+ <path
+ style="fill:url(#radialGradient3946);fill-opacity:1;stroke:#ff5000;stroke-width:14.92178059;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 748.65625,31.460876 0,141.195364 -141.19536,0 0,102.68751 141.19536,0 0,141.19536 102.68751,0 0,-141.19536 141.19535,0 0,-102.68751 -141.19535,0 0,-141.195364 -102.68751,0 z"
+ id="rect3919"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/icons/svg/PapyrusConfiguration.svg b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/icons/svg/PapyrusConfiguration.svg
new file mode 100755
index 00000000000..6701bd91c06
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/icons/svg/PapyrusConfiguration.svg
@@ -0,0 +1,213 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="1024"
+ height="1024"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="conf_file.svg"
+ inkscape:export-filename="C:\Users\LW238780\Desktop\conf_file.png"
+ inkscape:export-xdpi="1.41"
+ inkscape:export-ydpi="1.41">
+ <defs
+ id="defs4">
+ <linearGradient
+ id="linearGradient3783">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3785" />
+ <stop
+ style="stop-color:#c8c8c8;stop-opacity:1;"
+ offset="1"
+ id="stop3787" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3765">
+ <stop
+ style="stop-color:#e6e6ff;stop-opacity:1;"
+ offset="0"
+ id="stop3767" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="1"
+ id="stop3769" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3757">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3759" />
+ <stop
+ style="stop-color:#aaaaaa;stop-opacity:1;"
+ offset="1"
+ id="stop3761" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3757"
+ id="linearGradient3763"
+ x1="444.28577"
+ y1="971.64789"
+ x2="604.28577"
+ y2="163.09605"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3765"
+ id="linearGradient3771"
+ x1="444.28577"
+ y1="971.64789"
+ x2="604.28577"
+ y2="163.09605"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3757"
+ id="linearGradient3774"
+ gradientUnits="userSpaceOnUse"
+ x1="444.28577"
+ y1="971.64789"
+ x2="444.28577"
+ y2="201.53497" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3765"
+ id="linearGradient3776"
+ gradientUnits="userSpaceOnUse"
+ x1="444.28577"
+ y1="971.64789"
+ x2="444.28577"
+ y2="201.53497" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3783"
+ id="linearGradient3789"
+ x1="758.57141"
+ y1="343.79074"
+ x2="948.75952"
+ y2="153.60266"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.25,0,0,1.25,-222.5,-53.090544)" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.49497475"
+ inkscape:cx="610.88814"
+ inkscape:cy="370.72485"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1370"
+ inkscape:window-height="894"
+ inkscape:window-x="385"
+ inkscape:window-y="114"
+ inkscape:window-maximized="0" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="File"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-28.36218)"
+ style="display:inline">
+ <path
+ style="fill:url(#linearGradient3776);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient3774);stroke-width:25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 250.55206,152.91425 469.44797,0 229.44797,229.44793 -6e-5,619.44792 -698.89588,0 z"
+ id="rect2985"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccc" />
+ <path
+ style="fill:url(#linearGradient3789);fill-opacity:1;stroke:none"
+ d="m 715,137.36218 250,250 -250,0 z"
+ id="rect3780"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="Viewpoint"
+ style="display:inline">
+ <g
+ id="g3910">
+ <path
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0"
+ id="rect3797"
+ d="m 333.91746,576.89245 331.1681,-11.03899 c 12.10305,20.96311 10.59675,36.84058 0,55.19468 l -331.1681,-11.03888 c -6.07195,-10.5169 -7.99455,-19.26985 0,-33.11681 z"
+ inkscape:transform-center-x="-280"
+ style="fill:#3232ff;fill-opacity:1;stroke:#000000;display:inline;stroke-opacity:1;stroke-width:10;stroke-miterlimit:4;stroke-dasharray:none" />
+ <path
+ transform="matrix(0.98227829,0,0,0.98227829,-230.56514,-74.217723)"
+ d="m 512.85715,679.71429 a 84.285713,84.285713 0 1 1 -168.57142,0 84.285713,84.285713 0 1 1 168.57142,0 z"
+ sodipodi:ry="84.285713"
+ sodipodi:rx="84.285713"
+ sodipodi:cy="679.71429"
+ sodipodi:cx="428.57144"
+ id="path3027"
+ style="fill:#3232ff;fill-opacity:0.99607842999999996;fill-rule:evenodd;stroke:#000000;display:inline;stroke-opacity:1;stroke-width:10.18041435;stroke-miterlimit:4;stroke-dasharray:none"
+ sodipodi:type="arc" />
+ <path
+ inkscape:transform-center-y="-143.60032"
+ style="fill:#3232ff;fill-opacity:1;stroke:#000000;display:inline;stroke-opacity:1;stroke-width:10;stroke-miterlimit:4;stroke-dasharray:none"
+ inkscape:transform-center-x="-243.7231"
+ d="M 306.62797,508.16338 587.90846,333.01926 c 20.96312,12.10306 27.59734,26.60652 27.59734,47.8 L 323.18637,536.84337 c -10.51692,-6.07194 -16.5584,-12.69091 -16.5584,-28.67999 z"
+ id="path3856"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ inkscape:transform-center-y="-243.72307"
+ style="fill:#3232ff;fill-opacity:1;stroke:#000000;display:inline;stroke-opacity:1;stroke-width:10;stroke-miterlimit:4;stroke-dasharray:none"
+ inkscape:transform-center-x="-143.60036"
+ d="m 248.63004,462.28699 156.02398,-292.3195 c 24.20614,0 37.20327,9.24325 47.80001,27.59734 l -175.144,281.28057 c -12.14388,0 -20.68545,-2.71145 -28.67999,-16.55841 z"
+ id="path3862"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ inkscape:transform-center-y="143.60036"
+ style="fill:#3232ff;fill-opacity:1;stroke:#000000;display:inline;stroke-opacity:1;stroke-width:10;stroke-miterlimit:4;stroke-dasharray:none"
+ inkscape:transform-center-x="-243.72307"
+ d="m 323.18631,650.05833 292.31949,156.024 c 0,24.20612 -9.24324,37.20325 -27.59734,47.80001 l -281.28055,-175.144 c -2e-5,-12.14389 2.71144,-20.68545 16.5584,-28.68001 z"
+ id="path3864"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ inkscape:transform-center-y="243.72308"
+ style="fill:#3232ff;fill-opacity:1;stroke:#000000;display:inline;stroke-opacity:1;stroke-width:10;stroke-miterlimit:4;stroke-dasharray:none"
+ inkscape:transform-center-x="-143.60031"
+ d="m 277.30993,708.05626 175.1441,281.28046 c -12.10307,20.96318 -26.60651,27.59738 -47.80001,27.59738 L 248.62992,724.61466 c 6.07194,-10.5169 12.69091,-16.5584 28.68001,-16.5584 z"
+ id="path3866"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ </g>
+ </g>
+</svg>
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/icons/svg/PapyrusDiagram.svg b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/icons/svg/PapyrusDiagram.svg
new file mode 100755
index 00000000000..806b230789b
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/icons/svg/PapyrusDiagram.svg
@@ -0,0 +1,192 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="1024"
+ height="1024"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="diagram.svg"
+ inkscape:export-filename="C:\Users\LW238780\Desktop\cviewpoint.png"
+ inkscape:export-xdpi="1.41"
+ inkscape:export-ydpi="1.41">
+ <defs
+ id="defs4">
+ <linearGradient
+ id="linearGradient3976">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop3978" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3980" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3940">
+ <stop
+ style="stop-color:#ff6400;stop-opacity:1;"
+ offset="0"
+ id="stop3942" />
+ <stop
+ style="stop-color:#ffd200;stop-opacity:1;"
+ offset="1"
+ id="stop3944" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3783">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3785" />
+ <stop
+ style="stop-color:#c8c8c8;stop-opacity:1;"
+ offset="1"
+ id="stop3787" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3765">
+ <stop
+ style="stop-color:#e6e6ff;stop-opacity:1;"
+ offset="0"
+ id="stop3767" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="1"
+ id="stop3769" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3757">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3759" />
+ <stop
+ style="stop-color:#aaaaaa;stop-opacity:1;"
+ offset="1"
+ id="stop3761" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3757"
+ id="linearGradient3763"
+ x1="444.28577"
+ y1="971.64789"
+ x2="604.28577"
+ y2="163.09605"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3765"
+ id="linearGradient3771"
+ x1="444.28577"
+ y1="971.64789"
+ x2="604.28577"
+ y2="163.09605"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3940"
+ id="radialGradient3946"
+ cx="1127.8128"
+ cy="480.05185"
+ fx="1127.8128"
+ fy="480.05185"
+ r="150"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2835941,0,0,1.2835941,-647.65383,-392.19171)" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.34521484"
+ inkscape:cx="544.14833"
+ inkscape:cy="630.68176"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer2"
+ showgrid="false"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1370"
+ inkscape:window-height="894"
+ inkscape:window-x="385"
+ inkscape:window-y="114"
+ inkscape:window-maximized="0" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="Viewpoint"
+ style="display:inline">
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000096;stroke-width:20;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect3948"
+ width="880"
+ height="780"
+ x="70"
+ y="174" />
+ <rect
+ style="fill:#c8c8ff;fill-opacity:1;stroke:#000096;stroke-width:20;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+ id="rect3948-5"
+ width="880"
+ height="180"
+ x="70"
+ y="169" />
+ <rect
+ style="fill:#ffc800;fill-opacity:1;stroke:#ff6400;stroke-width:20;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect3984"
+ width="350"
+ height="150"
+ x="160"
+ y="424" />
+ <rect
+ y="714"
+ x="510"
+ height="150"
+ width="350"
+ id="rect3997"
+ style="fill:#ffc800;fill-opacity:1;stroke:#ff6400;stroke-width:20;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ style="fill:none;stroke:#505050;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+ d="m 250,574 0,225 260,0"
+ id="path3999"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccc" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer3"
+ inkscape:label="Tool"
+ style="display:none">
+ <path
+ style="fill:url(#radialGradient3946);fill-opacity:1;stroke:#ff5000;stroke-width:14.92178059;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 748.65625,31.460876 0,141.195364 -141.19536,0 0,102.68751 141.19536,0 0,141.19536 102.68751,0 0,-141.19536 141.19535,0 0,-102.68751 -141.19535,0 0,-141.195364 -102.68751,0 z"
+ id="rect3919"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/icons/svg/PapyrusSyncTable.svg b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/icons/svg/PapyrusSyncTable.svg
new file mode 100755
index 00000000000..29364e1449a
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/icons/svg/PapyrusSyncTable.svg
@@ -0,0 +1,452 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="1024"
+ height="1024"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="PapyrusSyncTable.svg"
+ inkscape:export-filename="C:\Users\LW238780\Desktop\PapyrusSyncTable.png"
+ inkscape:export-xdpi="1.41"
+ inkscape:export-ydpi="1.41">
+ <defs
+ id="defs4">
+ <linearGradient
+ id="linearGradient3976">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop3978" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3980" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3940">
+ <stop
+ style="stop-color:#ff6400;stop-opacity:1;"
+ offset="0"
+ id="stop3942" />
+ <stop
+ style="stop-color:#ffd200;stop-opacity:1;"
+ offset="1"
+ id="stop3944" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3783">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3785" />
+ <stop
+ style="stop-color:#c8c8c8;stop-opacity:1;"
+ offset="1"
+ id="stop3787" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3765">
+ <stop
+ style="stop-color:#e6e6ff;stop-opacity:1;"
+ offset="0"
+ id="stop3767" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="1"
+ id="stop3769" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3757">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3759" />
+ <stop
+ style="stop-color:#aaaaaa;stop-opacity:1;"
+ offset="1"
+ id="stop3761" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3757"
+ id="linearGradient3763"
+ x1="444.28577"
+ y1="971.64789"
+ x2="604.28577"
+ y2="163.09605"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3765"
+ id="linearGradient3771"
+ x1="444.28577"
+ y1="971.64789"
+ x2="604.28577"
+ y2="163.09605"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3940"
+ id="radialGradient3946"
+ cx="1127.8128"
+ cy="480.05185"
+ fx="1127.8128"
+ fy="480.05185"
+ r="150"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2835941,0,0,1.2835941,-647.65383,-392.19171)" />
+ <radialGradient
+ gradientTransform="matrix(1.2835941,0,0,1.2835941,-647.65383,-392.19171)"
+ gradientUnits="userSpaceOnUse"
+ r="150"
+ fy="480.05185"
+ fx="1127.8128"
+ cy="480.05185"
+ cx="1127.8128"
+ id="radialGradient3946-2"
+ xlink:href="#linearGradient3940-5"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="163.09605"
+ x2="604.28577"
+ y1="971.64789"
+ x1="444.28577"
+ id="linearGradient3771-2"
+ xlink:href="#linearGradient3765-2"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="163.09605"
+ x2="604.28577"
+ y1="971.64789"
+ x1="444.28577"
+ id="linearGradient3763-3"
+ xlink:href="#linearGradient3757-1"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient3757-1">
+ <stop
+ id="stop3759-4"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <stop
+ id="stop3761-2"
+ offset="1"
+ style="stop-color:#aaaaaa;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3765-2">
+ <stop
+ id="stop3767-7"
+ offset="0"
+ style="stop-color:#e6e6ff;stop-opacity:1;" />
+ <stop
+ id="stop3769-6"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3783-1">
+ <stop
+ id="stop3785-1"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <stop
+ id="stop3787-5"
+ offset="1"
+ style="stop-color:#c8c8c8;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3940-5">
+ <stop
+ id="stop3942-1"
+ offset="0"
+ style="stop-color:#ff6400;stop-opacity:1;" />
+ <stop
+ id="stop3944-7"
+ offset="1"
+ style="stop-color:#ffd200;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3976-2">
+ <stop
+ id="stop3978-4"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <stop
+ id="stop3980-5"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ </linearGradient>
+ <radialGradient
+ gradientTransform="matrix(1.2835941,0,0,1.2835941,-647.65383,-392.19171)"
+ gradientUnits="userSpaceOnUse"
+ r="150"
+ fy="480.05185"
+ fx="1127.8128"
+ cy="480.05185"
+ cx="1127.8128"
+ id="radialGradient3946-3"
+ xlink:href="#linearGradient3940-3"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="163.09605"
+ x2="604.28577"
+ y1="971.64789"
+ x1="444.28577"
+ id="linearGradient3771-9"
+ xlink:href="#linearGradient3765-1"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="163.09605"
+ x2="604.28577"
+ y1="971.64789"
+ x1="444.28577"
+ id="linearGradient3763-7"
+ xlink:href="#linearGradient3757-7"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient3757-7">
+ <stop
+ id="stop3759-42"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <stop
+ id="stop3761-7"
+ offset="1"
+ style="stop-color:#aaaaaa;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3765-1">
+ <stop
+ id="stop3767-3"
+ offset="0"
+ style="stop-color:#e6e6ff;stop-opacity:1;" />
+ <stop
+ id="stop3769-8"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3783-3">
+ <stop
+ id="stop3785-4"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <stop
+ id="stop3787-1"
+ offset="1"
+ style="stop-color:#c8c8c8;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3940-3">
+ <stop
+ id="stop3942-12"
+ offset="0"
+ style="stop-color:#ff6400;stop-opacity:1;" />
+ <stop
+ id="stop3944-3"
+ offset="1"
+ style="stop-color:#ffd200;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3976-7">
+ <stop
+ id="stop3978-9"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <stop
+ id="stop3980-54"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ gradientTransform="matrix(1.25,0,0,1.25,-222.5,-53.090544)"
+ gradientUnits="userSpaceOnUse"
+ y2="153.60266"
+ x2="948.75952"
+ y1="343.79074"
+ x1="758.57141"
+ id="linearGradient3789"
+ xlink:href="#linearGradient3783-5"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="201.53497"
+ x2="444.28577"
+ y1="971.64789"
+ x1="444.28577"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3776"
+ xlink:href="#linearGradient3765-0"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="201.53497"
+ x2="444.28577"
+ y1="971.64789"
+ x1="444.28577"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3774"
+ xlink:href="#linearGradient3757-3"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="163.09605"
+ x2="604.28577"
+ y1="971.64789"
+ x1="444.28577"
+ id="linearGradient3771-4"
+ xlink:href="#linearGradient3765-0"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="163.09605"
+ x2="604.28577"
+ y1="971.64789"
+ x1="444.28577"
+ id="linearGradient3763-34"
+ xlink:href="#linearGradient3757-3"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient3757-3">
+ <stop
+ id="stop3759-8"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <stop
+ id="stop3761-9"
+ offset="1"
+ style="stop-color:#aaaaaa;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3765-0">
+ <stop
+ id="stop3767-0"
+ offset="0"
+ style="stop-color:#e6e6ff;stop-opacity:1;" />
+ <stop
+ id="stop3769-61"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3783-5">
+ <stop
+ id="stop3785-0"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <stop
+ id="stop3787-9"
+ offset="1"
+ style="stop-color:#c8c8c8;stop-opacity:1;" />
+ </linearGradient>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.69042968"
+ inkscape:cx="442.32282"
+ inkscape:cy="483.86327"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer2"
+ showgrid="false"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1178"
+ inkscape:window-x="-8"
+ inkscape:window-y="-8"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="Viewpoint"
+ style="display:inline">
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#505050;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline"
+ id="rect3914-9-6-4"
+ width="440"
+ height="602"
+ x="510"
+ y="352" />
+ <rect
+ style="fill:#ffffff;stroke:#505050;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline;fill-opacity:1"
+ id="rect3914-9-6"
+ width="440"
+ height="602"
+ x="69.26667"
+ y="353" />
+ <rect
+ style="fill:none;stroke:#505050;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline"
+ id="rect3914-9"
+ width="880"
+ height="200"
+ x="70"
+ y="564" />
+ <rect
+ style="fill:none;fill-opacity:1;stroke:#ff3232;stroke-width:20;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect3948"
+ width="880"
+ height="780"
+ x="70"
+ y="174" />
+ <rect
+ style="fill:#ffc8c8;fill-opacity:1;stroke:#ff3232;stroke-width:20;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+ id="rect3948-5"
+ width="880"
+ height="180"
+ x="70"
+ y="174" />
+ <path
+ style="fill:#c8c8ff;fill-opacity:1;stroke:#5050ff;stroke-width:23.9427948;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 930.44728,453.79915 -89.78548,0 0,-418.998891 -179.57096,0 0,418.998891 -89.78548,0 179.57096,179.57096 z"
+ id="rect4168"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccc" />
+ <path
+ style="fill:#c8c8ff;fill-opacity:1;stroke:#5050ff;stroke-width:23.9427948;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+ d="m 451.59139,214.37121 -89.78548,0 0,418.9989 -179.57095,0 0,-418.9989 -89.785484,0 L 272.02043,34.800247 z"
+ id="rect4168-1"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccc" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer3"
+ inkscape:label="Tool"
+ style="display:none">
+ <path
+ style="fill:url(#radialGradient3946);fill-opacity:1;stroke:#ff5000;stroke-width:14.92178059;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 748.65625,31.460876 0,141.195364 -141.19536,0 0,102.68751 141.19536,0 0,141.19536 102.68751,0 0,-141.19536 141.19535,0 0,-102.68751 -141.19535,0 0,-141.195364 -102.68751,0 z"
+ id="rect3919"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/icons/svg/PapyrusTable.svg b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/icons/svg/PapyrusTable.svg
new file mode 100755
index 00000000000..920a202f7ba
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/icons/svg/PapyrusTable.svg
@@ -0,0 +1,440 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="1024"
+ height="1024"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="PapyrusTable.svg"
+ inkscape:export-filename="C:\Users\LW238780\Desktop\PapyrusTable.png"
+ inkscape:export-xdpi="1.41"
+ inkscape:export-ydpi="1.41">
+ <defs
+ id="defs4">
+ <linearGradient
+ id="linearGradient3976">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop3978" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3980" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3940">
+ <stop
+ style="stop-color:#ff6400;stop-opacity:1;"
+ offset="0"
+ id="stop3942" />
+ <stop
+ style="stop-color:#ffd200;stop-opacity:1;"
+ offset="1"
+ id="stop3944" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3783">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3785" />
+ <stop
+ style="stop-color:#c8c8c8;stop-opacity:1;"
+ offset="1"
+ id="stop3787" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3765">
+ <stop
+ style="stop-color:#e6e6ff;stop-opacity:1;"
+ offset="0"
+ id="stop3767" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="1"
+ id="stop3769" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3757">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3759" />
+ <stop
+ style="stop-color:#aaaaaa;stop-opacity:1;"
+ offset="1"
+ id="stop3761" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3757"
+ id="linearGradient3763"
+ x1="444.28577"
+ y1="971.64789"
+ x2="604.28577"
+ y2="163.09605"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3765"
+ id="linearGradient3771"
+ x1="444.28577"
+ y1="971.64789"
+ x2="604.28577"
+ y2="163.09605"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3940"
+ id="radialGradient3946"
+ cx="1127.8128"
+ cy="480.05185"
+ fx="1127.8128"
+ fy="480.05185"
+ r="150"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2835941,0,0,1.2835941,-647.65383,-392.19171)" />
+ <radialGradient
+ gradientTransform="matrix(1.2835941,0,0,1.2835941,-647.65383,-392.19171)"
+ gradientUnits="userSpaceOnUse"
+ r="150"
+ fy="480.05185"
+ fx="1127.8128"
+ cy="480.05185"
+ cx="1127.8128"
+ id="radialGradient3946-2"
+ xlink:href="#linearGradient3940-5"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="163.09605"
+ x2="604.28577"
+ y1="971.64789"
+ x1="444.28577"
+ id="linearGradient3771-2"
+ xlink:href="#linearGradient3765-2"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="163.09605"
+ x2="604.28577"
+ y1="971.64789"
+ x1="444.28577"
+ id="linearGradient3763-3"
+ xlink:href="#linearGradient3757-1"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient3757-1">
+ <stop
+ id="stop3759-4"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <stop
+ id="stop3761-2"
+ offset="1"
+ style="stop-color:#aaaaaa;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3765-2">
+ <stop
+ id="stop3767-7"
+ offset="0"
+ style="stop-color:#e6e6ff;stop-opacity:1;" />
+ <stop
+ id="stop3769-6"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3783-1">
+ <stop
+ id="stop3785-1"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <stop
+ id="stop3787-5"
+ offset="1"
+ style="stop-color:#c8c8c8;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3940-5">
+ <stop
+ id="stop3942-1"
+ offset="0"
+ style="stop-color:#ff6400;stop-opacity:1;" />
+ <stop
+ id="stop3944-7"
+ offset="1"
+ style="stop-color:#ffd200;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3976-2">
+ <stop
+ id="stop3978-4"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <stop
+ id="stop3980-5"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ </linearGradient>
+ <radialGradient
+ gradientTransform="matrix(1.2835941,0,0,1.2835941,-647.65383,-392.19171)"
+ gradientUnits="userSpaceOnUse"
+ r="150"
+ fy="480.05185"
+ fx="1127.8128"
+ cy="480.05185"
+ cx="1127.8128"
+ id="radialGradient3946-3"
+ xlink:href="#linearGradient3940-3"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="163.09605"
+ x2="604.28577"
+ y1="971.64789"
+ x1="444.28577"
+ id="linearGradient3771-9"
+ xlink:href="#linearGradient3765-1"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="163.09605"
+ x2="604.28577"
+ y1="971.64789"
+ x1="444.28577"
+ id="linearGradient3763-7"
+ xlink:href="#linearGradient3757-7"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient3757-7">
+ <stop
+ id="stop3759-42"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <stop
+ id="stop3761-7"
+ offset="1"
+ style="stop-color:#aaaaaa;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3765-1">
+ <stop
+ id="stop3767-3"
+ offset="0"
+ style="stop-color:#e6e6ff;stop-opacity:1;" />
+ <stop
+ id="stop3769-8"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3783-3">
+ <stop
+ id="stop3785-4"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <stop
+ id="stop3787-1"
+ offset="1"
+ style="stop-color:#c8c8c8;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3940-3">
+ <stop
+ id="stop3942-12"
+ offset="0"
+ style="stop-color:#ff6400;stop-opacity:1;" />
+ <stop
+ id="stop3944-3"
+ offset="1"
+ style="stop-color:#ffd200;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3976-7">
+ <stop
+ id="stop3978-9"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <stop
+ id="stop3980-54"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ gradientTransform="matrix(1.25,0,0,1.25,-222.5,-53.090544)"
+ gradientUnits="userSpaceOnUse"
+ y2="153.60266"
+ x2="948.75952"
+ y1="343.79074"
+ x1="758.57141"
+ id="linearGradient3789"
+ xlink:href="#linearGradient3783-5"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="201.53497"
+ x2="444.28577"
+ y1="971.64789"
+ x1="444.28577"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3776"
+ xlink:href="#linearGradient3765-0"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="201.53497"
+ x2="444.28577"
+ y1="971.64789"
+ x1="444.28577"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3774"
+ xlink:href="#linearGradient3757-3"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="163.09605"
+ x2="604.28577"
+ y1="971.64789"
+ x1="444.28577"
+ id="linearGradient3771-4"
+ xlink:href="#linearGradient3765-0"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="163.09605"
+ x2="604.28577"
+ y1="971.64789"
+ x1="444.28577"
+ id="linearGradient3763-34"
+ xlink:href="#linearGradient3757-3"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient3757-3">
+ <stop
+ id="stop3759-8"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <stop
+ id="stop3761-9"
+ offset="1"
+ style="stop-color:#aaaaaa;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3765-0">
+ <stop
+ id="stop3767-0"
+ offset="0"
+ style="stop-color:#e6e6ff;stop-opacity:1;" />
+ <stop
+ id="stop3769-61"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3783-5">
+ <stop
+ id="stop3785-0"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <stop
+ id="stop3787-9"
+ offset="1"
+ style="stop-color:#c8c8c8;stop-opacity:1;" />
+ </linearGradient>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.48820751"
+ inkscape:cx="675.63274"
+ inkscape:cy="458.60193"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer2"
+ showgrid="false"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1178"
+ inkscape:window-x="-8"
+ inkscape:window-y="-8"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="Viewpoint"
+ style="display:inline">
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#505050;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline"
+ id="rect3914-9-6-1"
+ width="440"
+ height="602"
+ x="510"
+ y="352" />
+ <rect
+ style="fill:#ffffff;stroke:#505050;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline;fill-opacity:1"
+ id="rect3914-9-6"
+ width="440"
+ height="602"
+ x="69.26667"
+ y="353" />
+ <rect
+ style="fill:none;stroke:#505050;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline;fill-opacity:1"
+ id="rect3914-9"
+ width="880"
+ height="200"
+ x="70"
+ y="564" />
+ <rect
+ style="fill:none;fill-opacity:1;stroke:#ff3232;stroke-width:20;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect3948"
+ width="880"
+ height="780"
+ x="70"
+ y="174" />
+ <rect
+ style="fill:#ffc8c8;fill-opacity:1;stroke:#ff3232;stroke-width:20;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+ id="rect3948-5"
+ width="880"
+ height="180"
+ x="70"
+ y="174" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer3"
+ inkscape:label="Tool"
+ style="display:none">
+ <path
+ style="fill:url(#radialGradient3946);fill-opacity:1;stroke:#ff5000;stroke-width:14.92178059;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 748.65625,31.460876 0,141.195364 -141.19536,0 0,102.68751 141.19536,0 0,141.19536 102.68751,0 0,-141.19536 141.19535,0 0,-102.68751 -141.19535,0 0,-141.195364 -102.68751,0 z"
+ id="rect3919"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/icons/svg/PapyrusView.svg b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/icons/svg/PapyrusView.svg
new file mode 100755
index 00000000000..35dfe2c70d0
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/icons/svg/PapyrusView.svg
@@ -0,0 +1,272 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="1024"
+ height="1024"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="view.svg"
+ inkscape:export-filename="C:\Users\LW238780\Desktop\icons\view_tool.png"
+ inkscape:export-xdpi="1.41"
+ inkscape:export-ydpi="1.41">
+ <defs
+ id="defs4">
+ <linearGradient
+ id="linearGradient3976">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop3978" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3980" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3940">
+ <stop
+ style="stop-color:#ff6400;stop-opacity:1;"
+ offset="0"
+ id="stop3942" />
+ <stop
+ style="stop-color:#ffd200;stop-opacity:1;"
+ offset="1"
+ id="stop3944" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3783">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3785" />
+ <stop
+ style="stop-color:#c8c8c8;stop-opacity:1;"
+ offset="1"
+ id="stop3787" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3765">
+ <stop
+ style="stop-color:#e6e6ff;stop-opacity:1;"
+ offset="0"
+ id="stop3767" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="1"
+ id="stop3769" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3757">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3759" />
+ <stop
+ style="stop-color:#aaaaaa;stop-opacity:1;"
+ offset="1"
+ id="stop3761" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3757"
+ id="linearGradient3763"
+ x1="444.28577"
+ y1="971.64789"
+ x2="604.28577"
+ y2="163.09605"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3765"
+ id="linearGradient3771"
+ x1="444.28577"
+ y1="971.64789"
+ x2="604.28577"
+ y2="163.09605"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3940"
+ id="radialGradient3946"
+ cx="1127.8128"
+ cy="480.05185"
+ fx="1127.8128"
+ fy="480.05185"
+ r="150"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2835941,0,0,1.2835941,-647.65383,-392.19171)" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.34521484"
+ inkscape:cx="544.14833"
+ inkscape:cy="630.68176"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer2"
+ showgrid="false"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1370"
+ inkscape:window-height="894"
+ inkscape:window-x="385"
+ inkscape:window-y="114"
+ inkscape:window-maximized="0" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="Viewpoint"
+ style="display:inline">
+ <g
+ id="g4001"
+ transform="matrix(0.80568435,0,0,0.80568406,-18.341061,217.32057)">
+ <rect
+ y="174"
+ x="70"
+ height="780"
+ width="880"
+ id="rect3948"
+ style="fill:#ffffff;fill-opacity:1;stroke:#000096;stroke-width:20;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <rect
+ y="169"
+ x="70"
+ height="180"
+ width="880"
+ id="rect3948-5"
+ style="fill:#c8c8ff;fill-opacity:1;stroke:#000096;stroke-width:20;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
+ <rect
+ y="424"
+ x="160"
+ height="150"
+ width="350"
+ id="rect3984"
+ style="fill:#ffc800;fill-opacity:1;stroke:#ff6400;stroke-width:20;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <rect
+ style="fill:#ffc800;fill-opacity:1;stroke:#ff6400;stroke-width:20;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect3997"
+ width="350"
+ height="150"
+ x="510"
+ y="714" />
+ <path
+ sodipodi:nodetypes="ccc"
+ inkscape:connector-curvature="0"
+ id="path3999"
+ d="m 250,574 0,225 260,0"
+ style="fill:none;stroke:#505050;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ </g>
+ <g
+ transform="matrix(0.80568435,0,0,0.80568406,101.65899,97.320558)"
+ id="g4008">
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000096;stroke-width:20;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect4010"
+ width="880"
+ height="780"
+ x="70"
+ y="174" />
+ <rect
+ style="fill:#c8c8ff;fill-opacity:1;stroke:#000096;stroke-width:20;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+ id="rect4012"
+ width="880"
+ height="180"
+ x="70"
+ y="169" />
+ <rect
+ style="fill:#ffc800;fill-opacity:1;stroke:#ff6400;stroke-width:20;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect4014"
+ width="350"
+ height="150"
+ x="160"
+ y="424" />
+ <rect
+ y="714"
+ x="510"
+ height="150"
+ width="350"
+ id="rect4016"
+ style="fill:#ffc800;fill-opacity:1;stroke:#ff6400;stroke-width:20;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ style="fill:none;stroke:#505050;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 250,574 0,225 260,0"
+ id="path4018"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccc" />
+ </g>
+ <g
+ id="g4020"
+ transform="matrix(0.80568435,0,0,0.80568406,221.65903,-22.679442)">
+ <rect
+ y="174"
+ x="70"
+ height="780"
+ width="880"
+ id="rect4022"
+ style="fill:#ffffff;fill-opacity:1;stroke:#000096;stroke-width:20;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <rect
+ y="169"
+ x="70"
+ height="180"
+ width="880"
+ id="rect4024"
+ style="fill:#c8c8ff;fill-opacity:1;stroke:#000096;stroke-width:20;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
+ <rect
+ y="424"
+ x="160"
+ height="150"
+ width="350"
+ id="rect4026"
+ style="fill:#ffc800;fill-opacity:1;stroke:#ff6400;stroke-width:20;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <rect
+ style="fill:#ffc800;fill-opacity:1;stroke:#ff6400;stroke-width:20;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect4028"
+ width="350"
+ height="150"
+ x="510"
+ y="714" />
+ <path
+ sodipodi:nodetypes="ccc"
+ inkscape:connector-curvature="0"
+ id="path4030"
+ d="m 250,574 0,225 260,0"
+ style="fill:none;stroke:#505050;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ </g>
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer3"
+ inkscape:label="Tool"
+ style="display:none">
+ <path
+ style="fill:url(#radialGradient3946);fill-opacity:1;stroke:#ff5000;stroke-width:14.92178059;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 748.65625,31.460876 0,141.195364 -141.19536,0 0,102.68751 141.19536,0 0,141.19536 102.68751,0 0,-141.19536 141.19535,0 0,-102.68751 -141.19535,0 0,-141.195364 -102.68751,0 z"
+ id="rect3919"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/icons/svg/PapyrusViewpoint.svg b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/icons/svg/PapyrusViewpoint.svg
new file mode 100755
index 00000000000..a43b9631f14
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/icons/svg/PapyrusViewpoint.svg
@@ -0,0 +1,199 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="1024"
+ height="1024"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="viewpoint.svg"
+ inkscape:export-filename="C:\Users\LW238780\Desktop\cviewpoint.png"
+ inkscape:export-xdpi="1.41"
+ inkscape:export-ydpi="1.41">
+ <defs
+ id="defs4">
+ <linearGradient
+ id="linearGradient3940">
+ <stop
+ style="stop-color:#ff6400;stop-opacity:1;"
+ offset="0"
+ id="stop3942" />
+ <stop
+ style="stop-color:#ffd200;stop-opacity:1;"
+ offset="1"
+ id="stop3944" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3783">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3785" />
+ <stop
+ style="stop-color:#c8c8c8;stop-opacity:1;"
+ offset="1"
+ id="stop3787" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3765">
+ <stop
+ style="stop-color:#e6e6ff;stop-opacity:1;"
+ offset="0"
+ id="stop3767" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="1"
+ id="stop3769" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3757">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3759" />
+ <stop
+ style="stop-color:#aaaaaa;stop-opacity:1;"
+ offset="1"
+ id="stop3761" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3757"
+ id="linearGradient3763"
+ x1="444.28577"
+ y1="971.64789"
+ x2="604.28577"
+ y2="163.09605"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3765"
+ id="linearGradient3771"
+ x1="444.28577"
+ y1="971.64789"
+ x2="604.28577"
+ y2="163.09605"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3940"
+ id="radialGradient3946"
+ cx="1127.8128"
+ cy="480.05185"
+ fx="1127.8128"
+ fy="480.05185"
+ r="150"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2835941,0,0,1.2835941,-647.65383,-392.19171)" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.49497475"
+ inkscape:cx="610.88814"
+ inkscape:cy="370.72485"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer3"
+ showgrid="false"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1370"
+ inkscape:window-height="894"
+ inkscape:window-x="385"
+ inkscape:window-y="114"
+ inkscape:window-maximized="0" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="Viewpoint"
+ style="display:inline">
+ <g
+ id="g3910"
+ transform="matrix(1.1085613,0,0,1.1085613,86.240263,-133.87659)">
+ <path
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0"
+ id="rect3797"
+ d="m 333.91746,576.89245 331.1681,-11.03899 c 12.10305,20.96311 10.59675,36.84058 0,55.19468 l -331.1681,-11.03888 c -6.07195,-10.5169 -7.99455,-19.26985 0,-33.11681 z"
+ inkscape:transform-center-x="-280"
+ style="fill:#3232ff;fill-opacity:1;stroke:#000000;stroke-width:10;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
+ <path
+ transform="matrix(0.98227829,0,0,0.98227829,-230.56514,-74.217723)"
+ d="m 512.85715,679.71429 a 84.285713,84.285713 0 1 1 -168.57142,0 84.285713,84.285713 0 1 1 168.57142,0 z"
+ sodipodi:ry="84.285713"
+ sodipodi:rx="84.285713"
+ sodipodi:cy="679.71429"
+ sodipodi:cx="428.57144"
+ id="path3027"
+ style="fill:#3232ff;fill-opacity:0.99607843;fill-rule:evenodd;stroke:#000000;stroke-width:10.1804142;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+ sodipodi:type="arc" />
+ <path
+ inkscape:transform-center-y="-143.60032"
+ style="fill:#3232ff;fill-opacity:1;stroke:#000000;stroke-width:10;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+ inkscape:transform-center-x="-243.7231"
+ d="M 306.62797,508.16338 587.90846,333.01926 c 20.96312,12.10306 27.59734,26.60652 27.59734,47.8 L 323.18637,536.84337 c -10.51692,-6.07194 -16.5584,-12.69091 -16.5584,-28.67999 z"
+ id="path3856"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ inkscape:transform-center-y="-243.72307"
+ style="fill:#3232ff;fill-opacity:1;stroke:#000000;stroke-width:10;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+ inkscape:transform-center-x="-143.60036"
+ d="m 248.63004,462.28699 156.02398,-292.3195 c 24.20614,0 37.20327,9.24325 47.80001,27.59734 l -175.144,281.28057 c -12.14388,0 -20.68545,-2.71145 -28.67999,-16.55841 z"
+ id="path3862"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ inkscape:transform-center-y="143.60036"
+ style="fill:#3232ff;fill-opacity:1;stroke:#000000;stroke-width:10;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+ inkscape:transform-center-x="-243.72307"
+ d="m 323.18631,650.05833 292.31949,156.024 c 0,24.20612 -9.24324,37.20325 -27.59734,47.80001 l -281.28055,-175.144 c -2e-5,-12.14389 2.71144,-20.68545 16.5584,-28.68001 z"
+ id="path3864"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ inkscape:transform-center-y="243.72308"
+ style="fill:#3232ff;fill-opacity:1;stroke:#000000;stroke-width:10;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+ inkscape:transform-center-x="-143.60031"
+ d="m 277.30993,708.05626 175.1441,281.28046 c -12.10307,20.96318 -26.60651,27.59738 -47.80001,27.59738 L 248.62992,724.61466 c 6.07194,-10.5169 12.69091,-16.5584 28.68001,-16.5584 z"
+ id="path3866"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ </g>
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer3"
+ inkscape:label="Tool">
+ <path
+ style="fill:url(#radialGradient3946);fill-opacity:1;stroke:#ff5000;stroke-width:14.92178059;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 748.65625,31.460876 0,141.195364 -141.19536,0 0,102.68751 141.19536,0 0,141.19536 102.68751,0 0,-141.19536 141.19535,0 0,-102.68751 -141.19535,0 0,-141.195364 -102.68751,0 z"
+ id="rect3919"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/icons/svg/PathElement.svg b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/icons/svg/PathElement.svg
new file mode 100755
index 00000000000..b660cd491e0
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/icons/svg/PathElement.svg
@@ -0,0 +1,177 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="1024"
+ height="1024"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="path.svg"
+ inkscape:export-filename="C:\Users\LW238780\Desktop\icons\path_tool.png"
+ inkscape:export-xdpi="1.41"
+ inkscape:export-ydpi="1.41">
+ <defs
+ id="defs4">
+ <linearGradient
+ id="linearGradient3976">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop3978" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3980" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3940">
+ <stop
+ style="stop-color:#ff6400;stop-opacity:1;"
+ offset="0"
+ id="stop3942" />
+ <stop
+ style="stop-color:#ffd200;stop-opacity:1;"
+ offset="1"
+ id="stop3944" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3783">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3785" />
+ <stop
+ style="stop-color:#c8c8c8;stop-opacity:1;"
+ offset="1"
+ id="stop3787" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3765">
+ <stop
+ style="stop-color:#e6e6ff;stop-opacity:1;"
+ offset="0"
+ id="stop3767" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="1"
+ id="stop3769" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3757">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3759" />
+ <stop
+ style="stop-color:#aaaaaa;stop-opacity:1;"
+ offset="1"
+ id="stop3761" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3757"
+ id="linearGradient3763"
+ x1="444.28577"
+ y1="971.64789"
+ x2="604.28577"
+ y2="163.09605"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3765"
+ id="linearGradient3771"
+ x1="444.28577"
+ y1="971.64789"
+ x2="604.28577"
+ y2="163.09605"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3940"
+ id="radialGradient3946"
+ cx="1127.8128"
+ cy="480.05185"
+ fx="1127.8128"
+ fy="480.05185"
+ r="150"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2835941,0,0,1.2835941,-647.65383,-392.19171)" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.34521484"
+ inkscape:cx="544.14833"
+ inkscape:cy="630.68176"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer4"
+ showgrid="false"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1370"
+ inkscape:window-height="894"
+ inkscape:window-x="236"
+ inkscape:window-y="77"
+ inkscape:window-maximized="0" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:groupmode="layer"
+ id="layer4"
+ inkscape:label="Element">
+ <rect
+ style="fill:#64c8ff;fill-opacity:1;stroke:#6464ff;stroke-width:25;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+ id="rect3984"
+ width="437.5"
+ height="187.5"
+ x="82.5"
+ y="261.50003" />
+ <rect
+ y="624"
+ x="520"
+ height="187.5"
+ width="437.5"
+ id="rect3997"
+ style="fill:#64c8ff;fill-opacity:1;stroke:#6464ff;stroke-width:25;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
+ <path
+ style="fill:none;stroke:#505050;stroke-width:25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+ d="m 195.00001,449.00003 0,281.25 325,0"
+ id="path3999"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccc" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer3"
+ inkscape:label="Tool"
+ style="display:none">
+ <path
+ style="fill:url(#radialGradient3946);fill-opacity:1;stroke:#ff5000;stroke-width:14.92178059;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 748.65625,31.460876 0,141.195364 -141.19536,0 0,102.68751 141.19536,0 0,141.19536 102.68751,0 0,-141.19536 141.19535,0 0,-102.68751 -141.19535,0 0,-141.195364 -102.68751,0 z"
+ id="rect3919"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/icons/svg/Stakeholder.svg b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/icons/svg/Stakeholder.svg
new file mode 100755
index 00000000000..f123888b125
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/icons/svg/Stakeholder.svg
@@ -0,0 +1,320 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="1024"
+ height="1024"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="stakeholder.svg"
+ inkscape:export-filename="C:\Users\LW238780\Desktop\icons\stakeholder_tool.png"
+ inkscape:export-xdpi="1.41"
+ inkscape:export-ydpi="1.41">
+ <defs
+ id="defs4">
+ <linearGradient
+ id="linearGradient3828">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop3830" />
+ <stop
+ style="stop-color:#c86400;stop-opacity:1;"
+ offset="1"
+ id="stop3832" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3808">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop3810" />
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="1"
+ id="stop3812" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3976">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop3978" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3980" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3940">
+ <stop
+ style="stop-color:#ff6400;stop-opacity:1;"
+ offset="0"
+ id="stop3942" />
+ <stop
+ style="stop-color:#ffd200;stop-opacity:1;"
+ offset="1"
+ id="stop3944" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3783">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3785" />
+ <stop
+ style="stop-color:#c8c8c8;stop-opacity:1;"
+ offset="1"
+ id="stop3787" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3765">
+ <stop
+ style="stop-color:#e6e6ff;stop-opacity:1;"
+ offset="0"
+ id="stop3767" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="1"
+ id="stop3769" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3757">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3759" />
+ <stop
+ style="stop-color:#aaaaaa;stop-opacity:1;"
+ offset="1"
+ id="stop3761" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3757"
+ id="linearGradient3763"
+ x1="444.28577"
+ y1="971.64789"
+ x2="604.28577"
+ y2="163.09605"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3765"
+ id="linearGradient3771"
+ x1="444.28577"
+ y1="971.64789"
+ x2="604.28577"
+ y2="163.09605"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3940"
+ id="radialGradient3946"
+ cx="1127.8128"
+ cy="480.05185"
+ fx="1127.8128"
+ fy="480.05185"
+ r="150"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2835941,0,0,1.2835941,-647.65383,-392.19171)" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3808"
+ id="radialGradient3814"
+ cx="726.35925"
+ cy="694.49506"
+ fx="726.35925"
+ fy="694.49506"
+ r="16.656294"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3808"
+ id="radialGradient3821"
+ gradientUnits="userSpaceOnUse"
+ cx="726.35925"
+ cy="694.49506"
+ fx="726.35925"
+ fy="694.49506"
+ r="16.656294" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3828"
+ id="radialGradient3834"
+ cx="432.33946"
+ cy="173.08061"
+ fx="432.33946"
+ fy="173.08061"
+ r="254.18953"
+ gradientTransform="matrix(0.83091287,0,0,0.09232366,-152.14788,832.58053)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3808"
+ id="radialGradient3836"
+ gradientUnits="userSpaceOnUse"
+ cx="726.35925"
+ cy="694.49506"
+ fx="726.35925"
+ fy="694.49506"
+ r="16.656294" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3808"
+ id="radialGradient3844"
+ gradientUnits="userSpaceOnUse"
+ cx="726.35925"
+ cy="694.49506"
+ fx="726.35925"
+ fy="694.49506"
+ r="16.656294" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3828"
+ id="radialGradient3846"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83091287,0,0,0.09232366,-152.14788,832.58053)"
+ cx="432.33946"
+ cy="173.08061"
+ fx="432.33946"
+ fy="173.08061"
+ r="254.18953" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.69042968"
+ inkscape:cx="113.34842"
+ inkscape:cy="548.79841"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer2"
+ showgrid="false"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1178"
+ inkscape:window-x="-8"
+ inkscape:window-y="-8"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="Element"
+ style="display:inline">
+ <g
+ id="g3838"
+ transform="matrix(0.20865205,0.84939318,0.84939318,-0.20865205,130.38284,25.1294)">
+ <path
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0"
+ id="rect3800"
+ d="m 890.67392,153.77183 c 52.54032,-13.98518 89.85969,24.32661 79.60087,83.75273 l -352.7346,408.7136 c -42.45634,-1.46691 -47.97342,-1.89935 -51.85945,-55.76315 z"
+ style="fill:#c86400;fill-opacity:1;stroke:none" />
+ <path
+ sodipodi:nodetypes="scsss"
+ inkscape:connector-curvature="0"
+ id="path3802"
+ d="m 668.27631,691.68132 c -15.19666,56.7147 -134.54047,191.90845 -191.25517,176.71179 -37.88584,-9.40316 55.27777,-64.53184 27.79618,-190.15209 -12.54823,-57.35882 31.56925,-131.96336 88.28393,-116.7667 56.7147,15.19666 90.37171,73.49232 75.17506,130.207 z"
+ style="fill:#000000;fill-opacity:1;stroke:none" />
+ <path
+ transform="matrix(2.8237478,0.75662094,-0.75662094,2.8237478,-941.22566,-1872.8999)"
+ d="m 743.01555,694.49506 c 0,9.19901 -7.45728,16.65629 -16.6563,16.65629 -9.19901,0 -16.65629,-7.45728 -16.65629,-16.65629 0,-9.19902 7.45728,-16.6563 16.65629,-16.6563 9.19902,0 16.6563,7.45728 16.6563,16.6563 z"
+ sodipodi:ry="16.656294"
+ sodipodi:rx="16.656294"
+ sodipodi:cy="694.49506"
+ sodipodi:cx="726.35925"
+ id="path3806"
+ style="fill:url(#radialGradient3844);fill-opacity:1;stroke:none"
+ sodipodi:type="arc" />
+ <rect
+ transform="matrix(0.6390587,-0.76915797,0.76915797,0.6390587,0,0)"
+ y="825.09222"
+ x="-4.12082"
+ height="46.935413"
+ width="422.4187"
+ id="rect3826"
+ style="fill:url(#radialGradient3846);fill-opacity:1;stroke:none" />
+ </g>
+ <g
+ id="g3809"
+ transform="matrix(1.0795454,0,0,1.0795454,-157.67046,-78.670449)">
+ <path
+ transform="matrix(1.3717145,0,0,1.3717145,-232.11912,-15.072822)"
+ d="m 643.07779,210.73833 c 0,60.39355 -48.95865,109.3522 -109.3522,109.3522 -60.39356,0 -109.35221,-48.95865 -109.35221,-109.3522 0,-60.39356 48.95865,-109.35221 109.35221,-109.35221 60.39355,0 109.3522,48.95865 109.3522,109.35221 z"
+ sodipodi:ry="109.3522"
+ sodipodi:rx="109.3522"
+ sodipodi:cy="210.73833"
+ sodipodi:cx="533.72559"
+ id="path3025"
+ style="fill:none;stroke:#000000;stroke-width:21.87043953;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0"
+ id="path3027"
+ d="m 500,424 0,400"
+ style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0"
+ id="path3033"
+ d="M 500,474 300,624"
+ style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0"
+ id="path3035"
+ d="M 500,474 700,624"
+ style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0"
+ id="path3037"
+ d="M 500,824 300,974"
+ style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0"
+ id="path3039"
+ d="M 500,824 700,974"
+ style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ </g>
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer3"
+ inkscape:label="Tool"
+ style="display:inline">
+ <path
+ style="fill:url(#radialGradient3946);fill-opacity:1;stroke:#ff5000;stroke-width:14.92178059;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 748.65625,31.460876 0,141.195364 -141.19536,0 0,102.68751 141.19536,0 0,141.19536 102.68751,0 0,-141.19536 141.19535,0 0,-102.68751 -141.19535,0 0,-141.195364 -102.68751,0 z"
+ id="rect3919"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/model/configuration.ecore b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/model/configuration.ecore
new file mode 100755
index 00000000000..fa114a399eb
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/model/configuration.ecore
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage 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" name="configuration" nsURI="http://www.eclipse.org/papyrus/infra/viewpoints/configuration"
+ nsPrefix="configuration">
+ <eClassifiers xsi:type="ecore:EClass" name="PapyrusConfiguration" eSuperTypes="../../org.eclipse.papyrus.infra.viewpoints.iso42010/model/iso42010.ecore#//ArchitectureFramework">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="defaultStakeholder" lowerBound="1"
+ eType="ecore:EClass ../../org.eclipse.papyrus.infra.viewpoints.iso42010/model/iso42010.ecore#//Stakeholder"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metamodel" lowerBound="1"
+ eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EPackage"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="categories" upperBound="-1"
+ eType="#//Category" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PapyrusViewpoint" eSuperTypes="../../org.eclipse.papyrus.infra.viewpoints.iso42010/model/iso42010.ecore#//ArchitectureViewpoint">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="parent" eType="#//PapyrusViewpoint"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PapyrusView" eSuperTypes="../../org.eclipse.papyrus.infra.viewpoints.iso42010/model/iso42010.ecore#//ModelKind">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="icon" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="parent" eType="#//PapyrusView"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="profiles" upperBound="-1"
+ eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EPackage"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelRules" lowerBound="1"
+ upperBound="-1" eType="#//ModelRule" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="These rules determine which model elements can be the semantic element behind this diagram"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="owningRules" lowerBound="1"
+ upperBound="-1" eType="#//OwningRule" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="These rules determine which elements can be the syntactic owner of this diagram"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="implementationID" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="categories" upperBound="-1"
+ eType="#//Category"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PapyrusDiagram" eSuperTypes="#//PapyrusView">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="customPalette" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="customStyle" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="childRules" upperBound="-1"
+ eType="#//ChildRule" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="These rules determine which model elements can be added as child of the origin through this diagram"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="paletteRules" upperBound="-1"
+ eType="#//PaletteRule" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="These rules determine which palette elements should be available for this diagram"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="imports" upperBound="-1"
+ eType="#//ElementImport" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PapyrusSyncTable" eSuperTypes="#//PapyrusView"/>
+ <eClassifiers xsi:type="ecore:EClass" name="PapyrusTable" eSuperTypes="#//PapyrusView">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="configuration" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Rule" abstract="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="permit" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ModelRule" eSuperTypes="#//Rule">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="element" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EClass"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="stereotypes" upperBound="-1"
+ eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EClass"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="multiplicity" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" defaultValueLiteral="-1"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="autoSelectPath" upperBound="-1"
+ eType="#//PathElement" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="OwningRule" eSuperTypes="#//Rule">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="element" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EClass"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="stereotypes" upperBound="-1"
+ eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EClass"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="multiplicity" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" defaultValueLiteral="-1"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ChildRule" eSuperTypes="#//Rule">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="element" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EClass"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="stereotypes" upperBound="-1"
+ eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EClass"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="origin" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EClass"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="insertionPath" upperBound="-1"
+ eType="#//PathElement" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PaletteRule" eSuperTypes="#//Rule">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="element" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PathElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="feature" lowerBound="1"
+ eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EReference"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="origin" lowerBound="1"
+ eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EClass" changeable="false"
+ volatile="true" transient="true" derived="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="target" lowerBound="1"
+ eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EClass" changeable="false"
+ volatile="true" transient="true" derived="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Category">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ElementImport">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="from" lowerBound="1" eType="#//PapyrusDiagram"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="element" lowerBound="1"
+ eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EClass"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/model/configuration.genmodel b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/model/configuration.genmodel
new file mode 100755
index 00000000000..7f05dae2503
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/model/configuration.genmodel
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText="Copyright (c) 2013 CEA LIST.&#xD;&#xA;&#xD;&#xA; All rights reserved. This program and the accompanying materials&#xD;&#xA; are made available under the terms of the Eclipse Public License v1.0&#xD;&#xA; which accompanies this distribution, and is available at&#xD;&#xA; http://www.eclipse.org/legal/epl-v10.html&#xD;&#xA; &#xD;&#xA; Contributors:&#xD;&#xA; Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation&#xD;&#xA; &#xD;&#xA;"
+ modelDirectory="/org.eclipse.papyrus.infra.viewpoints.configuration/src"
+ modelPluginID="org.eclipse.papyrus.infra.viewpoints.configuration" modelName="Configuration"
+ rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container" importerID="org.eclipse.emf.importer.ecore"
+ complianceLevel="6.0" copyrightFields="false" usedGenPackages="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore platform:/plugin/org.eclipse.papyrus.infra.viewpoints.iso42010/model/iso42010.genmodel#//iso42010"
+ operationReflection="true" importOrganizing="true">
+ <foreignModel>configuration.ecore</foreignModel>
+ <genPackages prefix="Configuration" basePackage="org.eclipse.papyrus.infra.viewpoints"
+ disposableProviderFactory="true" ecorePackage="configuration.ecore#/">
+ <genClasses ecoreClass="configuration.ecore#//PapyrusConfiguration">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference configuration.ecore#//PapyrusConfiguration/defaultStakeholder"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference configuration.ecore#//PapyrusConfiguration/metamodel"/>
+ </genClasses>
+ <genClasses ecoreClass="configuration.ecore#//PapyrusViewpoint">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference configuration.ecore#//PapyrusViewpoint/parent"/>
+ </genClasses>
+ <genClasses ecoreClass="configuration.ecore#//PapyrusView"/>
+ <genClasses ecoreClass="configuration.ecore#//PapyrusDiagram">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference configuration.ecore#//PapyrusDiagram/creationRules"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference configuration.ecore#//PapyrusDiagram/modelRules"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference configuration.ecore#//PapyrusDiagram/paletteRules"/>
+ </genClasses>
+ <genClasses ecoreClass="configuration.ecore#//DiagramCreationRule">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference configuration.ecore#//DiagramCreationRule/element"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute configuration.ecore#//DiagramCreationRule/multiplicity"/>
+ </genClasses>
+ <genClasses ecoreClass="configuration.ecore#//ModelRule">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference configuration.ecore#//ModelRule/element"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference configuration.ecore#//ModelRule/origin"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference configuration.ecore#//ModelRule/insertionPath"/>
+ </genClasses>
+ <genClasses ecoreClass="configuration.ecore#//PaletteRule">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute configuration.ecore#//PaletteRule/element"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="configuration.ecore#//Rule">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute configuration.ecore#//Rule/permit"/>
+ </genClasses>
+ <genClasses ecoreClass="configuration.ecore#//PathElement">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference configuration.ecore#//PathElement/feature"/>
+ <genFeatures property="Readonly" notify="false" createChild="false" ecoreFeature="ecore:EReference configuration.ecore#//PathElement/origin"/>
+ <genFeatures property="Readonly" notify="false" createChild="false" ecoreFeature="ecore:EReference configuration.ecore#//PathElement/target"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/plugin.properties b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/plugin.properties
new file mode 100755
index 00000000000..bb566a34bae
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/plugin.properties
@@ -0,0 +1,16 @@
+##########################################################################################
+# Copyright (c) 2013 CEA LIST.
+#
+#
+# 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:
+# Laurent Wouters (CEA LIST) laurent.wouters@cea.fr - Initial API and implementation
+#
+########################################################################################
+
+pluginName = Papyrus Viewpoints Configuration (Incubation)
+providerName = Eclipse Modeling Project
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/plugin.xml b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/plugin.xml
new file mode 100755
index 00000000000..9debbf64776
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/plugin.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+<plugin>
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated configuration -->
+ <package
+ uri="http://www.eclipse.org/papyrus/infra/viewpoints/configuration"
+ class="org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage"
+ genModel="model/configuration.genmodel"/>
+ </extension>
+</plugin>
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/Activator.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/Activator.java
new file mode 100755
index 00000000000..f99b732e85c
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/Activator.java
@@ -0,0 +1,43 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.configuration;
+
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+
+public class Activator implements BundleActivator {
+
+ private static BundleContext context;
+
+ static BundleContext getContext() {
+ return context;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext bundleContext) throws Exception {
+ Activator.context = bundleContext;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext bundleContext) throws Exception {
+ Activator.context = null;
+ }
+
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/Category.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/Category.java
new file mode 100755
index 00000000000..58c04e1e2f5
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/Category.java
@@ -0,0 +1,61 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.configuration;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Category</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.Category#getName <em>Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage#getCategory()
+ * @model
+ * @generated
+ */
+public interface Category extends EObject {
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage#getCategory_Name()
+ * @model required="true"
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.infra.viewpoints.configuration.Category#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+} // Category
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/ChildRule.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/ChildRule.java
new file mode 100755
index 00000000000..685b7a93fc5
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/ChildRule.java
@@ -0,0 +1,124 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.configuration;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Child Rule</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.ChildRule#getElement <em>Element</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.ChildRule#getStereotypes <em>Stereotypes</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.ChildRule#getOrigin <em>Origin</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.ChildRule#getInsertionPath <em>Insertion Path</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage#getChildRule()
+ * @model
+ * @generated
+ */
+public interface ChildRule extends Rule {
+ /**
+ * Returns the value of the '<em><b>Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Element</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Element</em>' reference.
+ * @see #setElement(EClass)
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage#getChildRule_Element()
+ * @model
+ * @generated
+ */
+ EClass getElement();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.infra.viewpoints.configuration.ChildRule#getElement <em>Element</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Element</em>' reference.
+ * @see #getElement()
+ * @generated
+ */
+ void setElement(EClass value);
+
+ /**
+ * Returns the value of the '<em><b>Stereotypes</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.emf.ecore.EClass}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Stereotypes</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Stereotypes</em>' reference list.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage#getChildRule_Stereotypes()
+ * @model
+ * @generated
+ */
+ EList<EClass> getStereotypes();
+
+ /**
+ * Returns the value of the '<em><b>Origin</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Origin</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Origin</em>' reference.
+ * @see #setOrigin(EClass)
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage#getChildRule_Origin()
+ * @model
+ * @generated
+ */
+ EClass getOrigin();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.infra.viewpoints.configuration.ChildRule#getOrigin <em>Origin</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Origin</em>' reference.
+ * @see #getOrigin()
+ * @generated
+ */
+ void setOrigin(EClass value);
+
+ /**
+ * Returns the value of the '<em><b>Insertion Path</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.infra.viewpoints.configuration.PathElement}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Insertion Path</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Insertion Path</em>' containment reference list.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage#getChildRule_InsertionPath()
+ * @model containment="true"
+ * @generated
+ */
+ EList<PathElement> getInsertionPath();
+
+} // ChildRule
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/ConfigurationFactory.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/ConfigurationFactory.java
new file mode 100755
index 00000000000..3a6909c1508
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/ConfigurationFactory.java
@@ -0,0 +1,161 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.configuration;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage
+ * @generated
+ */
+public interface ConfigurationFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ ConfigurationFactory eINSTANCE = org.eclipse.papyrus.infra.viewpoints.configuration.impl.ConfigurationFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Papyrus Configuration</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Papyrus Configuration</em>'.
+ * @generated
+ */
+ PapyrusConfiguration createPapyrusConfiguration();
+
+ /**
+ * Returns a new object of class '<em>Papyrus Viewpoint</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Papyrus Viewpoint</em>'.
+ * @generated
+ */
+ PapyrusViewpoint createPapyrusViewpoint();
+
+ /**
+ * Returns a new object of class '<em>Papyrus View</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Papyrus View</em>'.
+ * @generated
+ */
+ PapyrusView createPapyrusView();
+
+ /**
+ * Returns a new object of class '<em>Papyrus Diagram</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Papyrus Diagram</em>'.
+ * @generated
+ */
+ PapyrusDiagram createPapyrusDiagram();
+
+ /**
+ * Returns a new object of class '<em>Papyrus Sync Table</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Papyrus Sync Table</em>'.
+ * @generated
+ */
+ PapyrusSyncTable createPapyrusSyncTable();
+
+ /**
+ * Returns a new object of class '<em>Papyrus Table</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Papyrus Table</em>'.
+ * @generated
+ */
+ PapyrusTable createPapyrusTable();
+
+ /**
+ * Returns a new object of class '<em>Model Rule</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Model Rule</em>'.
+ * @generated
+ */
+ ModelRule createModelRule();
+
+ /**
+ * Returns a new object of class '<em>Owning Rule</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Owning Rule</em>'.
+ * @generated
+ */
+ OwningRule createOwningRule();
+
+ /**
+ * Returns a new object of class '<em>Child Rule</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Child Rule</em>'.
+ * @generated
+ */
+ ChildRule createChildRule();
+
+ /**
+ * Returns a new object of class '<em>Palette Rule</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Palette Rule</em>'.
+ * @generated
+ */
+ PaletteRule createPaletteRule();
+
+ /**
+ * Returns a new object of class '<em>Path Element</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Path Element</em>'.
+ * @generated
+ */
+ PathElement createPathElement();
+
+ /**
+ * Returns a new object of class '<em>Category</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Category</em>'.
+ * @generated
+ */
+ Category createCategory();
+
+ /**
+ * Returns a new object of class '<em>Element Import</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Element Import</em>'.
+ * @generated
+ */
+ ElementImport createElementImport();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ ConfigurationPackage getConfigurationPackage();
+
+} //ConfigurationFactory
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/ConfigurationPackage.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/ConfigurationPackage.java
new file mode 100755
index 00000000000..25d0f1d2ee7
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/ConfigurationPackage.java
@@ -0,0 +1,2230 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.configuration;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface ConfigurationPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "configuration";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/papyrus/infra/viewpoints/configuration";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "configuration";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ ConfigurationPackage eINSTANCE = org.eclipse.papyrus.infra.viewpoints.configuration.impl.ConfigurationPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.PapyrusConfigurationImpl <em>Papyrus Configuration</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.PapyrusConfigurationImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.ConfigurationPackageImpl#getPapyrusConfiguration()
+ * @generated
+ */
+ int PAPYRUS_CONFIGURATION = 0;
+
+ /**
+ * The feature id for the '<em><b>Stakeholders</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_CONFIGURATION__STAKEHOLDERS = Iso42010Package.ARCHITECTURE_FRAMEWORK__STAKEHOLDERS;
+
+ /**
+ * The feature id for the '<em><b>Viewpoints</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_CONFIGURATION__VIEWPOINTS = Iso42010Package.ARCHITECTURE_FRAMEWORK__VIEWPOINTS;
+
+ /**
+ * The feature id for the '<em><b>Rules</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_CONFIGURATION__RULES = Iso42010Package.ARCHITECTURE_FRAMEWORK__RULES;
+
+ /**
+ * The feature id for the '<em><b>Concerns</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_CONFIGURATION__CONCERNS = Iso42010Package.ARCHITECTURE_FRAMEWORK__CONCERNS;
+
+ /**
+ * The feature id for the '<em><b>Default Stakeholder</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_CONFIGURATION__DEFAULT_STAKEHOLDER = Iso42010Package.ARCHITECTURE_FRAMEWORK_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Metamodel</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_CONFIGURATION__METAMODEL = Iso42010Package.ARCHITECTURE_FRAMEWORK_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Categories</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_CONFIGURATION__CATEGORIES = Iso42010Package.ARCHITECTURE_FRAMEWORK_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Papyrus Configuration</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_CONFIGURATION_FEATURE_COUNT = Iso42010Package.ARCHITECTURE_FRAMEWORK_FEATURE_COUNT + 3;
+
+ /**
+ * The number of operations of the '<em>Papyrus Configuration</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_CONFIGURATION_OPERATION_COUNT = Iso42010Package.ARCHITECTURE_FRAMEWORK_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.PapyrusViewpointImpl <em>Papyrus Viewpoint</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.PapyrusViewpointImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.ConfigurationPackageImpl#getPapyrusViewpoint()
+ * @generated
+ */
+ int PAPYRUS_VIEWPOINT = 1;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_VIEWPOINT__NAME = Iso42010Package.ARCHITECTURE_VIEWPOINT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Affected By</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_VIEWPOINT__AFFECTED_BY = Iso42010Package.ARCHITECTURE_VIEWPOINT__AFFECTED_BY;
+
+ /**
+ * The feature id for the '<em><b>Model Kinds</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_VIEWPOINT__MODEL_KINDS = Iso42010Package.ARCHITECTURE_VIEWPOINT__MODEL_KINDS;
+
+ /**
+ * The feature id for the '<em><b>Governs</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_VIEWPOINT__GOVERNS = Iso42010Package.ARCHITECTURE_VIEWPOINT__GOVERNS;
+
+ /**
+ * The feature id for the '<em><b>Frames</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_VIEWPOINT__FRAMES = Iso42010Package.ARCHITECTURE_VIEWPOINT__FRAMES;
+
+ /**
+ * The feature id for the '<em><b>Parent</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_VIEWPOINT__PARENT = Iso42010Package.ARCHITECTURE_VIEWPOINT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Papyrus Viewpoint</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_VIEWPOINT_FEATURE_COUNT = Iso42010Package.ARCHITECTURE_VIEWPOINT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Papyrus Viewpoint</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_VIEWPOINT_OPERATION_COUNT = Iso42010Package.ARCHITECTURE_VIEWPOINT_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.PapyrusViewImpl <em>Papyrus View</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.PapyrusViewImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.ConfigurationPackageImpl#getPapyrusView()
+ * @generated
+ */
+ int PAPYRUS_VIEW = 2;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_VIEW__NAME = Iso42010Package.MODEL_KIND__NAME;
+
+ /**
+ * The feature id for the '<em><b>Affected By</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_VIEW__AFFECTED_BY = Iso42010Package.MODEL_KIND__AFFECTED_BY;
+
+ /**
+ * The feature id for the '<em><b>Governs</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_VIEW__GOVERNS = Iso42010Package.MODEL_KIND__GOVERNS;
+
+ /**
+ * The feature id for the '<em><b>Viewpoint</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_VIEW__VIEWPOINT = Iso42010Package.MODEL_KIND__VIEWPOINT;
+
+ /**
+ * The feature id for the '<em><b>Icon</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_VIEW__ICON = Iso42010Package.MODEL_KIND_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Parent</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_VIEW__PARENT = Iso42010Package.MODEL_KIND_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Profiles</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_VIEW__PROFILES = Iso42010Package.MODEL_KIND_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Model Rules</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_VIEW__MODEL_RULES = Iso42010Package.MODEL_KIND_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Owning Rules</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_VIEW__OWNING_RULES = Iso42010Package.MODEL_KIND_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Implementation ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_VIEW__IMPLEMENTATION_ID = Iso42010Package.MODEL_KIND_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Categories</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_VIEW__CATEGORIES = Iso42010Package.MODEL_KIND_FEATURE_COUNT + 6;
+
+ /**
+ * The number of structural features of the '<em>Papyrus View</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_VIEW_FEATURE_COUNT = Iso42010Package.MODEL_KIND_FEATURE_COUNT + 7;
+
+ /**
+ * The number of operations of the '<em>Papyrus View</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_VIEW_OPERATION_COUNT = Iso42010Package.MODEL_KIND_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.PapyrusDiagramImpl <em>Papyrus Diagram</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.PapyrusDiagramImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.ConfigurationPackageImpl#getPapyrusDiagram()
+ * @generated
+ */
+ int PAPYRUS_DIAGRAM = 3;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_DIAGRAM__NAME = PAPYRUS_VIEW__NAME;
+
+ /**
+ * The feature id for the '<em><b>Affected By</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_DIAGRAM__AFFECTED_BY = PAPYRUS_VIEW__AFFECTED_BY;
+
+ /**
+ * The feature id for the '<em><b>Governs</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_DIAGRAM__GOVERNS = PAPYRUS_VIEW__GOVERNS;
+
+ /**
+ * The feature id for the '<em><b>Viewpoint</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_DIAGRAM__VIEWPOINT = PAPYRUS_VIEW__VIEWPOINT;
+
+ /**
+ * The feature id for the '<em><b>Icon</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_DIAGRAM__ICON = PAPYRUS_VIEW__ICON;
+
+ /**
+ * The feature id for the '<em><b>Parent</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_DIAGRAM__PARENT = PAPYRUS_VIEW__PARENT;
+
+ /**
+ * The feature id for the '<em><b>Profiles</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_DIAGRAM__PROFILES = PAPYRUS_VIEW__PROFILES;
+
+ /**
+ * The feature id for the '<em><b>Model Rules</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_DIAGRAM__MODEL_RULES = PAPYRUS_VIEW__MODEL_RULES;
+
+ /**
+ * The feature id for the '<em><b>Owning Rules</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_DIAGRAM__OWNING_RULES = PAPYRUS_VIEW__OWNING_RULES;
+
+ /**
+ * The feature id for the '<em><b>Implementation ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_DIAGRAM__IMPLEMENTATION_ID = PAPYRUS_VIEW__IMPLEMENTATION_ID;
+
+ /**
+ * The feature id for the '<em><b>Categories</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_DIAGRAM__CATEGORIES = PAPYRUS_VIEW__CATEGORIES;
+
+ /**
+ * The feature id for the '<em><b>Custom Palette</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_DIAGRAM__CUSTOM_PALETTE = PAPYRUS_VIEW_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Custom Style</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_DIAGRAM__CUSTOM_STYLE = PAPYRUS_VIEW_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Child Rules</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_DIAGRAM__CHILD_RULES = PAPYRUS_VIEW_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Palette Rules</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_DIAGRAM__PALETTE_RULES = PAPYRUS_VIEW_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Imports</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_DIAGRAM__IMPORTS = PAPYRUS_VIEW_FEATURE_COUNT + 4;
+
+ /**
+ * The number of structural features of the '<em>Papyrus Diagram</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_DIAGRAM_FEATURE_COUNT = PAPYRUS_VIEW_FEATURE_COUNT + 5;
+
+ /**
+ * The number of operations of the '<em>Papyrus Diagram</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_DIAGRAM_OPERATION_COUNT = PAPYRUS_VIEW_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.PapyrusSyncTableImpl <em>Papyrus Sync Table</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.PapyrusSyncTableImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.ConfigurationPackageImpl#getPapyrusSyncTable()
+ * @generated
+ */
+ int PAPYRUS_SYNC_TABLE = 4;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_SYNC_TABLE__NAME = PAPYRUS_VIEW__NAME;
+
+ /**
+ * The feature id for the '<em><b>Affected By</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_SYNC_TABLE__AFFECTED_BY = PAPYRUS_VIEW__AFFECTED_BY;
+
+ /**
+ * The feature id for the '<em><b>Governs</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_SYNC_TABLE__GOVERNS = PAPYRUS_VIEW__GOVERNS;
+
+ /**
+ * The feature id for the '<em><b>Viewpoint</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_SYNC_TABLE__VIEWPOINT = PAPYRUS_VIEW__VIEWPOINT;
+
+ /**
+ * The feature id for the '<em><b>Icon</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_SYNC_TABLE__ICON = PAPYRUS_VIEW__ICON;
+
+ /**
+ * The feature id for the '<em><b>Parent</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_SYNC_TABLE__PARENT = PAPYRUS_VIEW__PARENT;
+
+ /**
+ * The feature id for the '<em><b>Profiles</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_SYNC_TABLE__PROFILES = PAPYRUS_VIEW__PROFILES;
+
+ /**
+ * The feature id for the '<em><b>Model Rules</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_SYNC_TABLE__MODEL_RULES = PAPYRUS_VIEW__MODEL_RULES;
+
+ /**
+ * The feature id for the '<em><b>Owning Rules</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_SYNC_TABLE__OWNING_RULES = PAPYRUS_VIEW__OWNING_RULES;
+
+ /**
+ * The feature id for the '<em><b>Implementation ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_SYNC_TABLE__IMPLEMENTATION_ID = PAPYRUS_VIEW__IMPLEMENTATION_ID;
+
+ /**
+ * The feature id for the '<em><b>Categories</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_SYNC_TABLE__CATEGORIES = PAPYRUS_VIEW__CATEGORIES;
+
+ /**
+ * The number of structural features of the '<em>Papyrus Sync Table</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_SYNC_TABLE_FEATURE_COUNT = PAPYRUS_VIEW_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Papyrus Sync Table</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_SYNC_TABLE_OPERATION_COUNT = PAPYRUS_VIEW_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.PapyrusTableImpl <em>Papyrus Table</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.PapyrusTableImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.ConfigurationPackageImpl#getPapyrusTable()
+ * @generated
+ */
+ int PAPYRUS_TABLE = 5;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_TABLE__NAME = PAPYRUS_VIEW__NAME;
+
+ /**
+ * The feature id for the '<em><b>Affected By</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_TABLE__AFFECTED_BY = PAPYRUS_VIEW__AFFECTED_BY;
+
+ /**
+ * The feature id for the '<em><b>Governs</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_TABLE__GOVERNS = PAPYRUS_VIEW__GOVERNS;
+
+ /**
+ * The feature id for the '<em><b>Viewpoint</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_TABLE__VIEWPOINT = PAPYRUS_VIEW__VIEWPOINT;
+
+ /**
+ * The feature id for the '<em><b>Icon</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_TABLE__ICON = PAPYRUS_VIEW__ICON;
+
+ /**
+ * The feature id for the '<em><b>Parent</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_TABLE__PARENT = PAPYRUS_VIEW__PARENT;
+
+ /**
+ * The feature id for the '<em><b>Profiles</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_TABLE__PROFILES = PAPYRUS_VIEW__PROFILES;
+
+ /**
+ * The feature id for the '<em><b>Model Rules</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_TABLE__MODEL_RULES = PAPYRUS_VIEW__MODEL_RULES;
+
+ /**
+ * The feature id for the '<em><b>Owning Rules</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_TABLE__OWNING_RULES = PAPYRUS_VIEW__OWNING_RULES;
+
+ /**
+ * The feature id for the '<em><b>Implementation ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_TABLE__IMPLEMENTATION_ID = PAPYRUS_VIEW__IMPLEMENTATION_ID;
+
+ /**
+ * The feature id for the '<em><b>Categories</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_TABLE__CATEGORIES = PAPYRUS_VIEW__CATEGORIES;
+
+ /**
+ * The feature id for the '<em><b>Configuration</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_TABLE__CONFIGURATION = PAPYRUS_VIEW_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Papyrus Table</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_TABLE_FEATURE_COUNT = PAPYRUS_VIEW_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Papyrus Table</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_TABLE_OPERATION_COUNT = PAPYRUS_VIEW_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.RuleImpl <em>Rule</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.RuleImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.ConfigurationPackageImpl#getRule()
+ * @generated
+ */
+ int RULE = 6;
+
+ /**
+ * The feature id for the '<em><b>Permit</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RULE__PERMIT = 0;
+
+ /**
+ * The number of structural features of the '<em>Rule</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RULE_FEATURE_COUNT = 1;
+
+ /**
+ * The number of operations of the '<em>Rule</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RULE_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.ModelRuleImpl <em>Model Rule</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.ModelRuleImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.ConfigurationPackageImpl#getModelRule()
+ * @generated
+ */
+ int MODEL_RULE = 7;
+
+ /**
+ * The feature id for the '<em><b>Permit</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL_RULE__PERMIT = RULE__PERMIT;
+
+ /**
+ * The feature id for the '<em><b>Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL_RULE__ELEMENT = RULE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Stereotypes</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL_RULE__STEREOTYPES = RULE_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Multiplicity</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL_RULE__MULTIPLICITY = RULE_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Auto Select Path</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL_RULE__AUTO_SELECT_PATH = RULE_FEATURE_COUNT + 3;
+
+ /**
+ * The number of structural features of the '<em>Model Rule</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL_RULE_FEATURE_COUNT = RULE_FEATURE_COUNT + 4;
+
+ /**
+ * The number of operations of the '<em>Model Rule</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL_RULE_OPERATION_COUNT = RULE_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.OwningRuleImpl <em>Owning Rule</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.OwningRuleImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.ConfigurationPackageImpl#getOwningRule()
+ * @generated
+ */
+ int OWNING_RULE = 8;
+
+ /**
+ * The feature id for the '<em><b>Permit</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OWNING_RULE__PERMIT = RULE__PERMIT;
+
+ /**
+ * The feature id for the '<em><b>Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OWNING_RULE__ELEMENT = RULE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Stereotypes</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OWNING_RULE__STEREOTYPES = RULE_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Multiplicity</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OWNING_RULE__MULTIPLICITY = RULE_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Owning Rule</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OWNING_RULE_FEATURE_COUNT = RULE_FEATURE_COUNT + 3;
+
+ /**
+ * The number of operations of the '<em>Owning Rule</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OWNING_RULE_OPERATION_COUNT = RULE_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.ChildRuleImpl <em>Child Rule</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.ChildRuleImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.ConfigurationPackageImpl#getChildRule()
+ * @generated
+ */
+ int CHILD_RULE = 9;
+
+ /**
+ * The feature id for the '<em><b>Permit</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CHILD_RULE__PERMIT = RULE__PERMIT;
+
+ /**
+ * The feature id for the '<em><b>Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CHILD_RULE__ELEMENT = RULE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Stereotypes</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CHILD_RULE__STEREOTYPES = RULE_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Origin</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CHILD_RULE__ORIGIN = RULE_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Insertion Path</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CHILD_RULE__INSERTION_PATH = RULE_FEATURE_COUNT + 3;
+
+ /**
+ * The number of structural features of the '<em>Child Rule</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CHILD_RULE_FEATURE_COUNT = RULE_FEATURE_COUNT + 4;
+
+ /**
+ * The number of operations of the '<em>Child Rule</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CHILD_RULE_OPERATION_COUNT = RULE_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.PaletteRuleImpl <em>Palette Rule</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.PaletteRuleImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.ConfigurationPackageImpl#getPaletteRule()
+ * @generated
+ */
+ int PALETTE_RULE = 10;
+
+ /**
+ * The feature id for the '<em><b>Permit</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PALETTE_RULE__PERMIT = RULE__PERMIT;
+
+ /**
+ * The feature id for the '<em><b>Element</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PALETTE_RULE__ELEMENT = RULE_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Palette Rule</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PALETTE_RULE_FEATURE_COUNT = RULE_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Palette Rule</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PALETTE_RULE_OPERATION_COUNT = RULE_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.PathElementImpl <em>Path Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.PathElementImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.ConfigurationPackageImpl#getPathElement()
+ * @generated
+ */
+ int PATH_ELEMENT = 11;
+
+ /**
+ * The feature id for the '<em><b>Feature</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PATH_ELEMENT__FEATURE = 0;
+
+ /**
+ * The feature id for the '<em><b>Origin</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PATH_ELEMENT__ORIGIN = 1;
+
+ /**
+ * The feature id for the '<em><b>Target</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PATH_ELEMENT__TARGET = 2;
+
+ /**
+ * The number of structural features of the '<em>Path Element</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PATH_ELEMENT_FEATURE_COUNT = 3;
+
+ /**
+ * The number of operations of the '<em>Path Element</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PATH_ELEMENT_OPERATION_COUNT = 0;
+
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.CategoryImpl <em>Category</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.CategoryImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.ConfigurationPackageImpl#getCategory()
+ * @generated
+ */
+ int CATEGORY = 12;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CATEGORY__NAME = 0;
+
+ /**
+ * The number of structural features of the '<em>Category</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CATEGORY_FEATURE_COUNT = 1;
+
+ /**
+ * The number of operations of the '<em>Category</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CATEGORY_OPERATION_COUNT = 0;
+
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.ElementImportImpl <em>Element Import</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.ElementImportImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.ConfigurationPackageImpl#getElementImport()
+ * @generated
+ */
+ int ELEMENT_IMPORT = 13;
+
+ /**
+ * The feature id for the '<em><b>From</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ELEMENT_IMPORT__FROM = 0;
+
+ /**
+ * The feature id for the '<em><b>Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ELEMENT_IMPORT__ELEMENT = 1;
+
+ /**
+ * The number of structural features of the '<em>Element Import</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ELEMENT_IMPORT_FEATURE_COUNT = 2;
+
+ /**
+ * The number of operations of the '<em>Element Import</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ELEMENT_IMPORT_OPERATION_COUNT = 0;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusConfiguration <em>Papyrus Configuration</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Papyrus Configuration</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusConfiguration
+ * @generated
+ */
+ EClass getPapyrusConfiguration();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusConfiguration#getDefaultStakeholder <em>Default Stakeholder</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Default Stakeholder</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusConfiguration#getDefaultStakeholder()
+ * @see #getPapyrusConfiguration()
+ * @generated
+ */
+ EReference getPapyrusConfiguration_DefaultStakeholder();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusConfiguration#getMetamodel <em>Metamodel</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Metamodel</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusConfiguration#getMetamodel()
+ * @see #getPapyrusConfiguration()
+ * @generated
+ */
+ EReference getPapyrusConfiguration_Metamodel();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusConfiguration#getCategories <em>Categories</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Categories</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusConfiguration#getCategories()
+ * @see #getPapyrusConfiguration()
+ * @generated
+ */
+ EReference getPapyrusConfiguration_Categories();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusViewpoint <em>Papyrus Viewpoint</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Papyrus Viewpoint</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusViewpoint
+ * @generated
+ */
+ EClass getPapyrusViewpoint();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusViewpoint#getParent <em>Parent</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Parent</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusViewpoint#getParent()
+ * @see #getPapyrusViewpoint()
+ * @generated
+ */
+ EReference getPapyrusViewpoint_Parent();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusView <em>Papyrus View</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Papyrus View</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusView
+ * @generated
+ */
+ EClass getPapyrusView();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusView#getIcon <em>Icon</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Icon</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusView#getIcon()
+ * @see #getPapyrusView()
+ * @generated
+ */
+ EAttribute getPapyrusView_Icon();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusView#getParent <em>Parent</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Parent</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusView#getParent()
+ * @see #getPapyrusView()
+ * @generated
+ */
+ EReference getPapyrusView_Parent();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusView#getProfiles <em>Profiles</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Profiles</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusView#getProfiles()
+ * @see #getPapyrusView()
+ * @generated
+ */
+ EReference getPapyrusView_Profiles();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusView#getModelRules <em>Model Rules</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Model Rules</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusView#getModelRules()
+ * @see #getPapyrusView()
+ * @generated
+ */
+ EReference getPapyrusView_ModelRules();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusView#getOwningRules <em>Owning Rules</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Owning Rules</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusView#getOwningRules()
+ * @see #getPapyrusView()
+ * @generated
+ */
+ EReference getPapyrusView_OwningRules();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusView#getImplementationID <em>Implementation ID</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Implementation ID</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusView#getImplementationID()
+ * @see #getPapyrusView()
+ * @generated
+ */
+ EAttribute getPapyrusView_ImplementationID();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusView#getCategories <em>Categories</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Categories</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusView#getCategories()
+ * @see #getPapyrusView()
+ * @generated
+ */
+ EReference getPapyrusView_Categories();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusDiagram <em>Papyrus Diagram</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Papyrus Diagram</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusDiagram
+ * @generated
+ */
+ EClass getPapyrusDiagram();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusDiagram#getCustomPalette <em>Custom Palette</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Custom Palette</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusDiagram#getCustomPalette()
+ * @see #getPapyrusDiagram()
+ * @generated
+ */
+ EAttribute getPapyrusDiagram_CustomPalette();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusDiagram#getCustomStyle <em>Custom Style</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Custom Style</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusDiagram#getCustomStyle()
+ * @see #getPapyrusDiagram()
+ * @generated
+ */
+ EAttribute getPapyrusDiagram_CustomStyle();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusDiagram#getChildRules <em>Child Rules</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Child Rules</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusDiagram#getChildRules()
+ * @see #getPapyrusDiagram()
+ * @generated
+ */
+ EReference getPapyrusDiagram_ChildRules();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusDiagram#getPaletteRules <em>Palette Rules</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Palette Rules</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusDiagram#getPaletteRules()
+ * @see #getPapyrusDiagram()
+ * @generated
+ */
+ EReference getPapyrusDiagram_PaletteRules();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusDiagram#getImports <em>Imports</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Imports</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusDiagram#getImports()
+ * @see #getPapyrusDiagram()
+ * @generated
+ */
+ EReference getPapyrusDiagram_Imports();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusSyncTable <em>Papyrus Sync Table</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Papyrus Sync Table</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusSyncTable
+ * @generated
+ */
+ EClass getPapyrusSyncTable();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusTable <em>Papyrus Table</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Papyrus Table</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusTable
+ * @generated
+ */
+ EClass getPapyrusTable();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusTable#getConfiguration <em>Configuration</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Configuration</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusTable#getConfiguration()
+ * @see #getPapyrusTable()
+ * @generated
+ */
+ EAttribute getPapyrusTable_Configuration();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.infra.viewpoints.configuration.ModelRule <em>Model Rule</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Model Rule</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ModelRule
+ * @generated
+ */
+ EClass getModelRule();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.infra.viewpoints.configuration.ModelRule#getElement <em>Element</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Element</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ModelRule#getElement()
+ * @see #getModelRule()
+ * @generated
+ */
+ EReference getModelRule_Element();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.infra.viewpoints.configuration.ModelRule#getStereotypes <em>Stereotypes</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Stereotypes</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ModelRule#getStereotypes()
+ * @see #getModelRule()
+ * @generated
+ */
+ EReference getModelRule_Stereotypes();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.infra.viewpoints.configuration.ModelRule#getMultiplicity <em>Multiplicity</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Multiplicity</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ModelRule#getMultiplicity()
+ * @see #getModelRule()
+ * @generated
+ */
+ EAttribute getModelRule_Multiplicity();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.infra.viewpoints.configuration.ModelRule#getAutoSelectPath <em>Auto Select Path</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Auto Select Path</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ModelRule#getAutoSelectPath()
+ * @see #getModelRule()
+ * @generated
+ */
+ EReference getModelRule_AutoSelectPath();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.infra.viewpoints.configuration.OwningRule <em>Owning Rule</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Owning Rule</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.OwningRule
+ * @generated
+ */
+ EClass getOwningRule();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.infra.viewpoints.configuration.OwningRule#getElement <em>Element</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Element</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.OwningRule#getElement()
+ * @see #getOwningRule()
+ * @generated
+ */
+ EReference getOwningRule_Element();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.infra.viewpoints.configuration.OwningRule#getStereotypes <em>Stereotypes</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Stereotypes</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.OwningRule#getStereotypes()
+ * @see #getOwningRule()
+ * @generated
+ */
+ EReference getOwningRule_Stereotypes();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.infra.viewpoints.configuration.OwningRule#getMultiplicity <em>Multiplicity</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Multiplicity</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.OwningRule#getMultiplicity()
+ * @see #getOwningRule()
+ * @generated
+ */
+ EAttribute getOwningRule_Multiplicity();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.infra.viewpoints.configuration.ChildRule <em>Child Rule</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Child Rule</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ChildRule
+ * @generated
+ */
+ EClass getChildRule();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.infra.viewpoints.configuration.ChildRule#getElement <em>Element</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Element</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ChildRule#getElement()
+ * @see #getChildRule()
+ * @generated
+ */
+ EReference getChildRule_Element();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.infra.viewpoints.configuration.ChildRule#getStereotypes <em>Stereotypes</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Stereotypes</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ChildRule#getStereotypes()
+ * @see #getChildRule()
+ * @generated
+ */
+ EReference getChildRule_Stereotypes();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.infra.viewpoints.configuration.ChildRule#getOrigin <em>Origin</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Origin</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ChildRule#getOrigin()
+ * @see #getChildRule()
+ * @generated
+ */
+ EReference getChildRule_Origin();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.infra.viewpoints.configuration.ChildRule#getInsertionPath <em>Insertion Path</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Insertion Path</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ChildRule#getInsertionPath()
+ * @see #getChildRule()
+ * @generated
+ */
+ EReference getChildRule_InsertionPath();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.infra.viewpoints.configuration.PaletteRule <em>Palette Rule</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Palette Rule</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.PaletteRule
+ * @generated
+ */
+ EClass getPaletteRule();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.infra.viewpoints.configuration.PaletteRule#getElement <em>Element</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Element</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.PaletteRule#getElement()
+ * @see #getPaletteRule()
+ * @generated
+ */
+ EAttribute getPaletteRule_Element();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.infra.viewpoints.configuration.Rule <em>Rule</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Rule</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.Rule
+ * @generated
+ */
+ EClass getRule();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.infra.viewpoints.configuration.Rule#isPermit <em>Permit</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Permit</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.Rule#isPermit()
+ * @see #getRule()
+ * @generated
+ */
+ EAttribute getRule_Permit();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.infra.viewpoints.configuration.PathElement <em>Path Element</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Path Element</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.PathElement
+ * @generated
+ */
+ EClass getPathElement();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.infra.viewpoints.configuration.PathElement#getFeature <em>Feature</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Feature</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.PathElement#getFeature()
+ * @see #getPathElement()
+ * @generated
+ */
+ EReference getPathElement_Feature();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.infra.viewpoints.configuration.PathElement#getOrigin <em>Origin</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Origin</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.PathElement#getOrigin()
+ * @see #getPathElement()
+ * @generated
+ */
+ EReference getPathElement_Origin();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.infra.viewpoints.configuration.PathElement#getTarget <em>Target</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Target</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.PathElement#getTarget()
+ * @see #getPathElement()
+ * @generated
+ */
+ EReference getPathElement_Target();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.infra.viewpoints.configuration.Category <em>Category</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Category</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.Category
+ * @generated
+ */
+ EClass getCategory();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.infra.viewpoints.configuration.Category#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.Category#getName()
+ * @see #getCategory()
+ * @generated
+ */
+ EAttribute getCategory_Name();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.infra.viewpoints.configuration.ElementImport <em>Element Import</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Element Import</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ElementImport
+ * @generated
+ */
+ EClass getElementImport();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.infra.viewpoints.configuration.ElementImport#getFrom <em>From</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>From</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ElementImport#getFrom()
+ * @see #getElementImport()
+ * @generated
+ */
+ EReference getElementImport_From();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.infra.viewpoints.configuration.ElementImport#getElement <em>Element</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Element</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ElementImport#getElement()
+ * @see #getElementImport()
+ * @generated
+ */
+ EReference getElementImport_Element();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ ConfigurationFactory getConfigurationFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.PapyrusConfigurationImpl <em>Papyrus Configuration</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.PapyrusConfigurationImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.ConfigurationPackageImpl#getPapyrusConfiguration()
+ * @generated
+ */
+ EClass PAPYRUS_CONFIGURATION = eINSTANCE.getPapyrusConfiguration();
+
+ /**
+ * The meta object literal for the '<em><b>Default Stakeholder</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PAPYRUS_CONFIGURATION__DEFAULT_STAKEHOLDER = eINSTANCE.getPapyrusConfiguration_DefaultStakeholder();
+
+ /**
+ * The meta object literal for the '<em><b>Metamodel</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PAPYRUS_CONFIGURATION__METAMODEL = eINSTANCE.getPapyrusConfiguration_Metamodel();
+
+ /**
+ * The meta object literal for the '<em><b>Categories</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PAPYRUS_CONFIGURATION__CATEGORIES = eINSTANCE.getPapyrusConfiguration_Categories();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.PapyrusViewpointImpl <em>Papyrus Viewpoint</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.PapyrusViewpointImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.ConfigurationPackageImpl#getPapyrusViewpoint()
+ * @generated
+ */
+ EClass PAPYRUS_VIEWPOINT = eINSTANCE.getPapyrusViewpoint();
+
+ /**
+ * The meta object literal for the '<em><b>Parent</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PAPYRUS_VIEWPOINT__PARENT = eINSTANCE.getPapyrusViewpoint_Parent();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.PapyrusViewImpl <em>Papyrus View</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.PapyrusViewImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.ConfigurationPackageImpl#getPapyrusView()
+ * @generated
+ */
+ EClass PAPYRUS_VIEW = eINSTANCE.getPapyrusView();
+
+ /**
+ * The meta object literal for the '<em><b>Icon</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute PAPYRUS_VIEW__ICON = eINSTANCE.getPapyrusView_Icon();
+
+ /**
+ * The meta object literal for the '<em><b>Parent</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PAPYRUS_VIEW__PARENT = eINSTANCE.getPapyrusView_Parent();
+
+ /**
+ * The meta object literal for the '<em><b>Profiles</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PAPYRUS_VIEW__PROFILES = eINSTANCE.getPapyrusView_Profiles();
+
+ /**
+ * The meta object literal for the '<em><b>Model Rules</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PAPYRUS_VIEW__MODEL_RULES = eINSTANCE.getPapyrusView_ModelRules();
+
+ /**
+ * The meta object literal for the '<em><b>Owning Rules</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PAPYRUS_VIEW__OWNING_RULES = eINSTANCE.getPapyrusView_OwningRules();
+
+ /**
+ * The meta object literal for the '<em><b>Implementation ID</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute PAPYRUS_VIEW__IMPLEMENTATION_ID = eINSTANCE.getPapyrusView_ImplementationID();
+
+ /**
+ * The meta object literal for the '<em><b>Categories</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PAPYRUS_VIEW__CATEGORIES = eINSTANCE.getPapyrusView_Categories();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.PapyrusDiagramImpl <em>Papyrus Diagram</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.PapyrusDiagramImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.ConfigurationPackageImpl#getPapyrusDiagram()
+ * @generated
+ */
+ EClass PAPYRUS_DIAGRAM = eINSTANCE.getPapyrusDiagram();
+
+ /**
+ * The meta object literal for the '<em><b>Custom Palette</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute PAPYRUS_DIAGRAM__CUSTOM_PALETTE = eINSTANCE.getPapyrusDiagram_CustomPalette();
+
+ /**
+ * The meta object literal for the '<em><b>Custom Style</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute PAPYRUS_DIAGRAM__CUSTOM_STYLE = eINSTANCE.getPapyrusDiagram_CustomStyle();
+
+ /**
+ * The meta object literal for the '<em><b>Child Rules</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PAPYRUS_DIAGRAM__CHILD_RULES = eINSTANCE.getPapyrusDiagram_ChildRules();
+
+ /**
+ * The meta object literal for the '<em><b>Palette Rules</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PAPYRUS_DIAGRAM__PALETTE_RULES = eINSTANCE.getPapyrusDiagram_PaletteRules();
+
+ /**
+ * The meta object literal for the '<em><b>Imports</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PAPYRUS_DIAGRAM__IMPORTS = eINSTANCE.getPapyrusDiagram_Imports();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.PapyrusSyncTableImpl <em>Papyrus Sync Table</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.PapyrusSyncTableImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.ConfigurationPackageImpl#getPapyrusSyncTable()
+ * @generated
+ */
+ EClass PAPYRUS_SYNC_TABLE = eINSTANCE.getPapyrusSyncTable();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.PapyrusTableImpl <em>Papyrus Table</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.PapyrusTableImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.ConfigurationPackageImpl#getPapyrusTable()
+ * @generated
+ */
+ EClass PAPYRUS_TABLE = eINSTANCE.getPapyrusTable();
+
+ /**
+ * The meta object literal for the '<em><b>Configuration</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute PAPYRUS_TABLE__CONFIGURATION = eINSTANCE.getPapyrusTable_Configuration();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.ModelRuleImpl <em>Model Rule</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.ModelRuleImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.ConfigurationPackageImpl#getModelRule()
+ * @generated
+ */
+ EClass MODEL_RULE = eINSTANCE.getModelRule();
+
+ /**
+ * The meta object literal for the '<em><b>Element</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference MODEL_RULE__ELEMENT = eINSTANCE.getModelRule_Element();
+
+ /**
+ * The meta object literal for the '<em><b>Stereotypes</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference MODEL_RULE__STEREOTYPES = eINSTANCE.getModelRule_Stereotypes();
+
+ /**
+ * The meta object literal for the '<em><b>Multiplicity</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MODEL_RULE__MULTIPLICITY = eINSTANCE.getModelRule_Multiplicity();
+
+ /**
+ * The meta object literal for the '<em><b>Auto Select Path</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference MODEL_RULE__AUTO_SELECT_PATH = eINSTANCE.getModelRule_AutoSelectPath();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.OwningRuleImpl <em>Owning Rule</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.OwningRuleImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.ConfigurationPackageImpl#getOwningRule()
+ * @generated
+ */
+ EClass OWNING_RULE = eINSTANCE.getOwningRule();
+
+ /**
+ * The meta object literal for the '<em><b>Element</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference OWNING_RULE__ELEMENT = eINSTANCE.getOwningRule_Element();
+
+ /**
+ * The meta object literal for the '<em><b>Stereotypes</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference OWNING_RULE__STEREOTYPES = eINSTANCE.getOwningRule_Stereotypes();
+
+ /**
+ * The meta object literal for the '<em><b>Multiplicity</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute OWNING_RULE__MULTIPLICITY = eINSTANCE.getOwningRule_Multiplicity();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.ChildRuleImpl <em>Child Rule</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.ChildRuleImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.ConfigurationPackageImpl#getChildRule()
+ * @generated
+ */
+ EClass CHILD_RULE = eINSTANCE.getChildRule();
+
+ /**
+ * The meta object literal for the '<em><b>Element</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CHILD_RULE__ELEMENT = eINSTANCE.getChildRule_Element();
+
+ /**
+ * The meta object literal for the '<em><b>Stereotypes</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CHILD_RULE__STEREOTYPES = eINSTANCE.getChildRule_Stereotypes();
+
+ /**
+ * The meta object literal for the '<em><b>Origin</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CHILD_RULE__ORIGIN = eINSTANCE.getChildRule_Origin();
+
+ /**
+ * The meta object literal for the '<em><b>Insertion Path</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CHILD_RULE__INSERTION_PATH = eINSTANCE.getChildRule_InsertionPath();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.PaletteRuleImpl <em>Palette Rule</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.PaletteRuleImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.ConfigurationPackageImpl#getPaletteRule()
+ * @generated
+ */
+ EClass PALETTE_RULE = eINSTANCE.getPaletteRule();
+
+ /**
+ * The meta object literal for the '<em><b>Element</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute PALETTE_RULE__ELEMENT = eINSTANCE.getPaletteRule_Element();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.RuleImpl <em>Rule</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.RuleImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.ConfigurationPackageImpl#getRule()
+ * @generated
+ */
+ EClass RULE = eINSTANCE.getRule();
+
+ /**
+ * The meta object literal for the '<em><b>Permit</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute RULE__PERMIT = eINSTANCE.getRule_Permit();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.PathElementImpl <em>Path Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.PathElementImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.ConfigurationPackageImpl#getPathElement()
+ * @generated
+ */
+ EClass PATH_ELEMENT = eINSTANCE.getPathElement();
+
+ /**
+ * The meta object literal for the '<em><b>Feature</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PATH_ELEMENT__FEATURE = eINSTANCE.getPathElement_Feature();
+
+ /**
+ * The meta object literal for the '<em><b>Origin</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PATH_ELEMENT__ORIGIN = eINSTANCE.getPathElement_Origin();
+
+ /**
+ * The meta object literal for the '<em><b>Target</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PATH_ELEMENT__TARGET = eINSTANCE.getPathElement_Target();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.CategoryImpl <em>Category</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.CategoryImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.ConfigurationPackageImpl#getCategory()
+ * @generated
+ */
+ EClass CATEGORY = eINSTANCE.getCategory();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CATEGORY__NAME = eINSTANCE.getCategory_Name();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.ElementImportImpl <em>Element Import</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.ElementImportImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.impl.ConfigurationPackageImpl#getElementImport()
+ * @generated
+ */
+ EClass ELEMENT_IMPORT = eINSTANCE.getElementImport();
+
+ /**
+ * The meta object literal for the '<em><b>From</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ELEMENT_IMPORT__FROM = eINSTANCE.getElementImport_From();
+
+ /**
+ * The meta object literal for the '<em><b>Element</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ELEMENT_IMPORT__ELEMENT = eINSTANCE.getElementImport_Element();
+
+ }
+
+} //ConfigurationPackage
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/ElementImport.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/ElementImport.java
new file mode 100755
index 00000000000..f4a7feb3f20
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/ElementImport.java
@@ -0,0 +1,89 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.configuration;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Element Import</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.ElementImport#getFrom <em>From</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.ElementImport#getElement <em>Element</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage#getElementImport()
+ * @model
+ * @generated
+ */
+public interface ElementImport extends EObject {
+ /**
+ * Returns the value of the '<em><b>From</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>From</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>From</em>' reference.
+ * @see #setFrom(PapyrusDiagram)
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage#getElementImport_From()
+ * @model required="true"
+ * @generated
+ */
+ PapyrusDiagram getFrom();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.infra.viewpoints.configuration.ElementImport#getFrom <em>From</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>From</em>' reference.
+ * @see #getFrom()
+ * @generated
+ */
+ void setFrom(PapyrusDiagram value);
+
+ /**
+ * Returns the value of the '<em><b>Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Element</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Element</em>' reference.
+ * @see #setElement(EClass)
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage#getElementImport_Element()
+ * @model required="true"
+ * @generated
+ */
+ EClass getElement();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.infra.viewpoints.configuration.ElementImport#getElement <em>Element</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Element</em>' reference.
+ * @see #getElement()
+ * @generated
+ */
+ void setElement(EClass value);
+
+} // ElementImport
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/ModelRule.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/ModelRule.java
new file mode 100755
index 00000000000..e4e1607b709
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/ModelRule.java
@@ -0,0 +1,124 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.configuration;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Model Rule</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.ModelRule#getElement <em>Element</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.ModelRule#getStereotypes <em>Stereotypes</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.ModelRule#getMultiplicity <em>Multiplicity</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.ModelRule#getAutoSelectPath <em>Auto Select Path</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage#getModelRule()
+ * @model
+ * @generated
+ */
+public interface ModelRule extends Rule {
+ /**
+ * Returns the value of the '<em><b>Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Element</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Element</em>' reference.
+ * @see #setElement(EClass)
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage#getModelRule_Element()
+ * @model
+ * @generated
+ */
+ EClass getElement();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.infra.viewpoints.configuration.ModelRule#getElement <em>Element</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Element</em>' reference.
+ * @see #getElement()
+ * @generated
+ */
+ void setElement(EClass value);
+
+ /**
+ * Returns the value of the '<em><b>Stereotypes</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.emf.ecore.EClass}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Stereotypes</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Stereotypes</em>' reference list.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage#getModelRule_Stereotypes()
+ * @model
+ * @generated
+ */
+ EList<EClass> getStereotypes();
+
+ /**
+ * Returns the value of the '<em><b>Multiplicity</b></em>' attribute.
+ * The default value is <code>"-1"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Multiplicity</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Multiplicity</em>' attribute.
+ * @see #setMultiplicity(int)
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage#getModelRule_Multiplicity()
+ * @model default="-1" required="true"
+ * @generated
+ */
+ int getMultiplicity();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.infra.viewpoints.configuration.ModelRule#getMultiplicity <em>Multiplicity</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Multiplicity</em>' attribute.
+ * @see #getMultiplicity()
+ * @generated
+ */
+ void setMultiplicity(int value);
+
+ /**
+ * Returns the value of the '<em><b>Auto Select Path</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.infra.viewpoints.configuration.PathElement}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Auto Select Path</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Auto Select Path</em>' containment reference list.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage#getModelRule_AutoSelectPath()
+ * @model containment="true"
+ * @generated
+ */
+ EList<PathElement> getAutoSelectPath();
+
+} // ModelRule
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/OwningRule.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/OwningRule.java
new file mode 100755
index 00000000000..ae4140cbdbf
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/OwningRule.java
@@ -0,0 +1,107 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.configuration;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Owning Rule</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.OwningRule#getElement <em>Element</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.OwningRule#getStereotypes <em>Stereotypes</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.OwningRule#getMultiplicity <em>Multiplicity</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage#getOwningRule()
+ * @model
+ * @generated
+ */
+public interface OwningRule extends Rule {
+ /**
+ * Returns the value of the '<em><b>Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Element</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Element</em>' reference.
+ * @see #setElement(EClass)
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage#getOwningRule_Element()
+ * @model
+ * @generated
+ */
+ EClass getElement();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.infra.viewpoints.configuration.OwningRule#getElement <em>Element</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Element</em>' reference.
+ * @see #getElement()
+ * @generated
+ */
+ void setElement(EClass value);
+
+ /**
+ * Returns the value of the '<em><b>Stereotypes</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.emf.ecore.EClass}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Stereotypes</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Stereotypes</em>' reference list.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage#getOwningRule_Stereotypes()
+ * @model
+ * @generated
+ */
+ EList<EClass> getStereotypes();
+
+ /**
+ * Returns the value of the '<em><b>Multiplicity</b></em>' attribute.
+ * The default value is <code>"-1"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Multiplicity</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Multiplicity</em>' attribute.
+ * @see #setMultiplicity(int)
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage#getOwningRule_Multiplicity()
+ * @model default="-1" required="true"
+ * @generated
+ */
+ int getMultiplicity();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.infra.viewpoints.configuration.OwningRule#getMultiplicity <em>Multiplicity</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Multiplicity</em>' attribute.
+ * @see #getMultiplicity()
+ * @generated
+ */
+ void setMultiplicity(int value);
+
+} // OwningRule
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/PaletteRule.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/PaletteRule.java
new file mode 100755
index 00000000000..278c3cd5c95
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/PaletteRule.java
@@ -0,0 +1,60 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.configuration;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Palette Rule</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.PaletteRule#getElement <em>Element</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage#getPaletteRule()
+ * @model
+ * @generated
+ */
+public interface PaletteRule extends Rule {
+ /**
+ * Returns the value of the '<em><b>Element</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Element</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Element</em>' attribute.
+ * @see #setElement(String)
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage#getPaletteRule_Element()
+ * @model
+ * @generated
+ */
+ String getElement();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.infra.viewpoints.configuration.PaletteRule#getElement <em>Element</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Element</em>' attribute.
+ * @see #getElement()
+ * @generated
+ */
+ void setElement(String value);
+
+} // PaletteRule
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/PapyrusConfiguration.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/PapyrusConfiguration.java
new file mode 100755
index 00000000000..774115ca1d3
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/PapyrusConfiguration.java
@@ -0,0 +1,108 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.configuration;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureFramework;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Stakeholder;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Papyrus Configuration</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusConfiguration#getDefaultStakeholder <em>Default Stakeholder</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusConfiguration#getMetamodel <em>Metamodel</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusConfiguration#getCategories <em>Categories</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage#getPapyrusConfiguration()
+ * @model
+ * @generated
+ */
+public interface PapyrusConfiguration extends ArchitectureFramework {
+ /**
+ * Returns the value of the '<em><b>Default Stakeholder</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Default Stakeholder</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Default Stakeholder</em>' reference.
+ * @see #setDefaultStakeholder(Stakeholder)
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage#getPapyrusConfiguration_DefaultStakeholder()
+ * @model required="true"
+ * @generated
+ */
+ Stakeholder getDefaultStakeholder();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusConfiguration#getDefaultStakeholder <em>Default Stakeholder</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Default Stakeholder</em>' reference.
+ * @see #getDefaultStakeholder()
+ * @generated
+ */
+ void setDefaultStakeholder(Stakeholder value);
+
+ /**
+ * Returns the value of the '<em><b>Metamodel</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Metamodel</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Metamodel</em>' reference.
+ * @see #setMetamodel(EPackage)
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage#getPapyrusConfiguration_Metamodel()
+ * @model required="true"
+ * @generated
+ */
+ EPackage getMetamodel();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusConfiguration#getMetamodel <em>Metamodel</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Metamodel</em>' reference.
+ * @see #getMetamodel()
+ * @generated
+ */
+ void setMetamodel(EPackage value);
+
+ /**
+ * Returns the value of the '<em><b>Categories</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.infra.viewpoints.configuration.Category}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Categories</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Categories</em>' containment reference list.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage#getPapyrusConfiguration_Categories()
+ * @model containment="true"
+ * @generated
+ */
+ EList<Category> getCategories();
+
+} // PapyrusConfiguration
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/PapyrusDiagram.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/PapyrusDiagram.java
new file mode 100755
index 00000000000..7f01343501b
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/PapyrusDiagram.java
@@ -0,0 +1,137 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.configuration;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Papyrus Diagram</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusDiagram#getCustomPalette <em>Custom Palette</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusDiagram#getCustomStyle <em>Custom Style</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusDiagram#getChildRules <em>Child Rules</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusDiagram#getPaletteRules <em>Palette Rules</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusDiagram#getImports <em>Imports</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage#getPapyrusDiagram()
+ * @model
+ * @generated
+ */
+public interface PapyrusDiagram extends PapyrusView {
+ /**
+ * Returns the value of the '<em><b>Custom Palette</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Custom Palette</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Custom Palette</em>' attribute.
+ * @see #setCustomPalette(String)
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage#getPapyrusDiagram_CustomPalette()
+ * @model
+ * @generated
+ */
+ String getCustomPalette();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusDiagram#getCustomPalette <em>Custom Palette</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Custom Palette</em>' attribute.
+ * @see #getCustomPalette()
+ * @generated
+ */
+ void setCustomPalette(String value);
+
+ /**
+ * Returns the value of the '<em><b>Custom Style</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Custom Style</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Custom Style</em>' attribute.
+ * @see #setCustomStyle(String)
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage#getPapyrusDiagram_CustomStyle()
+ * @model
+ * @generated
+ */
+ String getCustomStyle();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusDiagram#getCustomStyle <em>Custom Style</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Custom Style</em>' attribute.
+ * @see #getCustomStyle()
+ * @generated
+ */
+ void setCustomStyle(String value);
+
+ /**
+ * Returns the value of the '<em><b>Child Rules</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.infra.viewpoints.configuration.ChildRule}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * These rules determine which model elements can be added as child of the origin through this diagram
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Child Rules</em>' containment reference list.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage#getPapyrusDiagram_ChildRules()
+ * @model containment="true"
+ * @generated
+ */
+ EList<ChildRule> getChildRules();
+
+ /**
+ * Returns the value of the '<em><b>Palette Rules</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.infra.viewpoints.configuration.PaletteRule}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * These rules determine which palette elements should be available for this diagram
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Palette Rules</em>' containment reference list.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage#getPapyrusDiagram_PaletteRules()
+ * @model containment="true"
+ * @generated
+ */
+ EList<PaletteRule> getPaletteRules();
+
+ /**
+ * Returns the value of the '<em><b>Imports</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.infra.viewpoints.configuration.ElementImport}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Imports</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Imports</em>' containment reference list.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage#getPapyrusDiagram_Imports()
+ * @model containment="true"
+ * @generated
+ */
+ EList<ElementImport> getImports();
+
+} // PapyrusDiagram
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/PapyrusSyncTable.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/PapyrusSyncTable.java
new file mode 100755
index 00000000000..d799cb60aec
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/PapyrusSyncTable.java
@@ -0,0 +1,28 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.configuration;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Papyrus Sync Table</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage#getPapyrusSyncTable()
+ * @model
+ * @generated
+ */
+public interface PapyrusSyncTable extends PapyrusView {
+} // PapyrusSyncTable
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/PapyrusTable.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/PapyrusTable.java
new file mode 100755
index 00000000000..13b8722f09d
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/PapyrusTable.java
@@ -0,0 +1,60 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.configuration;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Papyrus Table</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusTable#getConfiguration <em>Configuration</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage#getPapyrusTable()
+ * @model
+ * @generated
+ */
+public interface PapyrusTable extends PapyrusView {
+ /**
+ * Returns the value of the '<em><b>Configuration</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Configuration</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Configuration</em>' attribute.
+ * @see #setConfiguration(String)
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage#getPapyrusTable_Configuration()
+ * @model required="true"
+ * @generated
+ */
+ String getConfiguration();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusTable#getConfiguration <em>Configuration</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Configuration</em>' attribute.
+ * @see #getConfiguration()
+ * @generated
+ */
+ void setConfiguration(String value);
+
+} // PapyrusTable
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/PapyrusView.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/PapyrusView.java
new file mode 100755
index 00000000000..ee7904d05dc
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/PapyrusView.java
@@ -0,0 +1,183 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.configuration;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ModelKind;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Papyrus View</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusView#getIcon <em>Icon</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusView#getParent <em>Parent</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusView#getProfiles <em>Profiles</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusView#getModelRules <em>Model Rules</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusView#getOwningRules <em>Owning Rules</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusView#getImplementationID <em>Implementation ID</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusView#getCategories <em>Categories</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage#getPapyrusView()
+ * @model
+ * @generated
+ */
+public interface PapyrusView extends ModelKind {
+
+ /**
+ * Returns the value of the '<em><b>Icon</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Icon</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Icon</em>' attribute.
+ * @see #setIcon(String)
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage#getPapyrusView_Icon()
+ * @model
+ * @generated
+ */
+ String getIcon();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusView#getIcon <em>Icon</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Icon</em>' attribute.
+ * @see #getIcon()
+ * @generated
+ */
+ void setIcon(String value);
+
+ /**
+ * Returns the value of the '<em><b>Parent</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Parent</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Parent</em>' reference.
+ * @see #setParent(PapyrusView)
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage#getPapyrusView_Parent()
+ * @model
+ * @generated
+ */
+ PapyrusView getParent();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusView#getParent <em>Parent</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Parent</em>' reference.
+ * @see #getParent()
+ * @generated
+ */
+ void setParent(PapyrusView value);
+
+ /**
+ * Returns the value of the '<em><b>Profiles</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.emf.ecore.EPackage}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Profiles</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Profiles</em>' reference list.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage#getPapyrusView_Profiles()
+ * @model
+ * @generated
+ */
+ EList<EPackage> getProfiles();
+
+ /**
+ * Returns the value of the '<em><b>Model Rules</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.infra.viewpoints.configuration.ModelRule}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * These rules determine which model elements can be the semantic element behind this diagram
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Model Rules</em>' containment reference list.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage#getPapyrusView_ModelRules()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ EList<ModelRule> getModelRules();
+
+ /**
+ * Returns the value of the '<em><b>Owning Rules</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.infra.viewpoints.configuration.OwningRule}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * These rules determine which elements can be the syntactic owner of this diagram
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Owning Rules</em>' containment reference list.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage#getPapyrusView_OwningRules()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ EList<OwningRule> getOwningRules();
+
+ /**
+ * Returns the value of the '<em><b>Implementation ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Implementation ID</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Implementation ID</em>' attribute.
+ * @see #setImplementationID(String)
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage#getPapyrusView_ImplementationID()
+ * @model required="true"
+ * @generated
+ */
+ String getImplementationID();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusView#getImplementationID <em>Implementation ID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Implementation ID</em>' attribute.
+ * @see #getImplementationID()
+ * @generated
+ */
+ void setImplementationID(String value);
+
+ /**
+ * Returns the value of the '<em><b>Categories</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.infra.viewpoints.configuration.Category}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Categories</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Categories</em>' reference list.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage#getPapyrusView_Categories()
+ * @model
+ * @generated
+ */
+ EList<Category> getCategories();
+} // PapyrusView
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/PapyrusViewpoint.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/PapyrusViewpoint.java
new file mode 100755
index 00000000000..5a55ec4d6fe
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/PapyrusViewpoint.java
@@ -0,0 +1,61 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.configuration;
+
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureViewpoint;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Papyrus Viewpoint</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusViewpoint#getParent <em>Parent</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage#getPapyrusViewpoint()
+ * @model
+ * @generated
+ */
+public interface PapyrusViewpoint extends ArchitectureViewpoint {
+ /**
+ * Returns the value of the '<em><b>Parent</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Parent</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Parent</em>' reference.
+ * @see #setParent(PapyrusViewpoint)
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage#getPapyrusViewpoint_Parent()
+ * @model
+ * @generated
+ */
+ PapyrusViewpoint getParent();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusViewpoint#getParent <em>Parent</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Parent</em>' reference.
+ * @see #getParent()
+ * @generated
+ */
+ void setParent(PapyrusViewpoint value);
+
+} // PapyrusViewpoint
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/PathElement.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/PathElement.java
new file mode 100755
index 00000000000..39e28ac30ba
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/PathElement.java
@@ -0,0 +1,95 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.configuration;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Path Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.PathElement#getFeature <em>Feature</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.PathElement#getOrigin <em>Origin</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.PathElement#getTarget <em>Target</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage#getPathElement()
+ * @model
+ * @generated
+ */
+public interface PathElement extends EObject {
+ /**
+ * Returns the value of the '<em><b>Feature</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Feature</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Feature</em>' reference.
+ * @see #setFeature(EReference)
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage#getPathElement_Feature()
+ * @model required="true"
+ * @generated
+ */
+ EReference getFeature();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.infra.viewpoints.configuration.PathElement#getFeature <em>Feature</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Feature</em>' reference.
+ * @see #getFeature()
+ * @generated
+ */
+ void setFeature(EReference value);
+
+ /**
+ * Returns the value of the '<em><b>Origin</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Origin</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Origin</em>' reference.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage#getPathElement_Origin()
+ * @model required="true" transient="true" changeable="false" volatile="true" derived="true"
+ * @generated
+ */
+ EClass getOrigin();
+
+ /**
+ * Returns the value of the '<em><b>Target</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Target</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Target</em>' reference.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage#getPathElement_Target()
+ * @model required="true" transient="true" changeable="false" volatile="true" derived="true"
+ * @generated
+ */
+ EClass getTarget();
+
+} // PathElement
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/Rule.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/Rule.java
new file mode 100755
index 00000000000..a276a04557a
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/Rule.java
@@ -0,0 +1,62 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.configuration;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Rule</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.Rule#isPermit <em>Permit</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage#getRule()
+ * @model abstract="true"
+ * @generated
+ */
+public interface Rule extends EObject {
+ /**
+ * Returns the value of the '<em><b>Permit</b></em>' attribute.
+ * The default value is <code>"true"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Permit</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Permit</em>' attribute.
+ * @see #setPermit(boolean)
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage#getRule_Permit()
+ * @model default="true" required="true"
+ * @generated
+ */
+ boolean isPermit();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.infra.viewpoints.configuration.Rule#isPermit <em>Permit</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Permit</em>' attribute.
+ * @see #isPermit()
+ * @generated
+ */
+ void setPermit(boolean value);
+
+} // Rule
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/CategoryImpl.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/CategoryImpl.java
new file mode 100755
index 00000000000..d0d03140389
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/CategoryImpl.java
@@ -0,0 +1,174 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.configuration.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.infra.viewpoints.configuration.Category;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Category</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.CategoryImpl#getName <em>Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CategoryImpl extends MinimalEObjectImpl.Container implements Category {
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CategoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ConfigurationPackage.Literals.CATEGORY;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName) {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ConfigurationPackage.CATEGORY__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ConfigurationPackage.CATEGORY__NAME:
+ return getName();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ConfigurationPackage.CATEGORY__NAME:
+ setName((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ConfigurationPackage.CATEGORY__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ConfigurationPackage.CATEGORY__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(')');
+ return result.toString();
+ }
+
+} //CategoryImpl
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/ChildRuleImpl.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/ChildRuleImpl.java
new file mode 100755
index 00000000000..4db7fc0d8e9
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/ChildRuleImpl.java
@@ -0,0 +1,319 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.configuration.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.papyrus.infra.viewpoints.configuration.ChildRule;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PathElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Child Rule</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.ChildRuleImpl#getElement <em>Element</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.ChildRuleImpl#getStereotypes <em>Stereotypes</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.ChildRuleImpl#getOrigin <em>Origin</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.ChildRuleImpl#getInsertionPath <em>Insertion Path</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ChildRuleImpl extends RuleImpl implements ChildRule {
+ /**
+ * The cached value of the '{@link #getElement() <em>Element</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getElement()
+ * @generated
+ * @ordered
+ */
+ protected EClass element;
+
+ /**
+ * The cached value of the '{@link #getStereotypes() <em>Stereotypes</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStereotypes()
+ * @generated
+ * @ordered
+ */
+ protected EList<EClass> stereotypes;
+
+ /**
+ * The cached value of the '{@link #getOrigin() <em>Origin</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOrigin()
+ * @generated
+ * @ordered
+ */
+ protected EClass origin;
+
+ /**
+ * The cached value of the '{@link #getInsertionPath() <em>Insertion Path</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInsertionPath()
+ * @generated
+ * @ordered
+ */
+ protected EList<PathElement> insertionPath;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ChildRuleImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ConfigurationPackage.Literals.CHILD_RULE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getElement() {
+ if (element != null && element.eIsProxy()) {
+ InternalEObject oldElement = (InternalEObject)element;
+ element = (EClass)eResolveProxy(oldElement);
+ if (element != oldElement) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, ConfigurationPackage.CHILD_RULE__ELEMENT, oldElement, element));
+ }
+ }
+ return element;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass basicGetElement() {
+ return element;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setElement(EClass newElement) {
+ EClass oldElement = element;
+ element = newElement;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ConfigurationPackage.CHILD_RULE__ELEMENT, oldElement, element));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<EClass> getStereotypes() {
+ if (stereotypes == null) {
+ stereotypes = new EObjectResolvingEList<EClass>(EClass.class, this, ConfigurationPackage.CHILD_RULE__STEREOTYPES);
+ }
+ return stereotypes;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getOrigin() {
+ if (origin != null && origin.eIsProxy()) {
+ InternalEObject oldOrigin = (InternalEObject)origin;
+ origin = (EClass)eResolveProxy(oldOrigin);
+ if (origin != oldOrigin) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, ConfigurationPackage.CHILD_RULE__ORIGIN, oldOrigin, origin));
+ }
+ }
+ return origin;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass basicGetOrigin() {
+ return origin;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOrigin(EClass newOrigin) {
+ EClass oldOrigin = origin;
+ origin = newOrigin;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ConfigurationPackage.CHILD_RULE__ORIGIN, oldOrigin, origin));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<PathElement> getInsertionPath() {
+ if (insertionPath == null) {
+ insertionPath = new EObjectContainmentEList<PathElement>(PathElement.class, this, ConfigurationPackage.CHILD_RULE__INSERTION_PATH);
+ }
+ return insertionPath;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case ConfigurationPackage.CHILD_RULE__INSERTION_PATH:
+ return ((InternalEList<?>)getInsertionPath()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ConfigurationPackage.CHILD_RULE__ELEMENT:
+ if (resolve) return getElement();
+ return basicGetElement();
+ case ConfigurationPackage.CHILD_RULE__STEREOTYPES:
+ return getStereotypes();
+ case ConfigurationPackage.CHILD_RULE__ORIGIN:
+ if (resolve) return getOrigin();
+ return basicGetOrigin();
+ case ConfigurationPackage.CHILD_RULE__INSERTION_PATH:
+ return getInsertionPath();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ConfigurationPackage.CHILD_RULE__ELEMENT:
+ setElement((EClass)newValue);
+ return;
+ case ConfigurationPackage.CHILD_RULE__STEREOTYPES:
+ getStereotypes().clear();
+ getStereotypes().addAll((Collection<? extends EClass>)newValue);
+ return;
+ case ConfigurationPackage.CHILD_RULE__ORIGIN:
+ setOrigin((EClass)newValue);
+ return;
+ case ConfigurationPackage.CHILD_RULE__INSERTION_PATH:
+ getInsertionPath().clear();
+ getInsertionPath().addAll((Collection<? extends PathElement>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ConfigurationPackage.CHILD_RULE__ELEMENT:
+ setElement((EClass)null);
+ return;
+ case ConfigurationPackage.CHILD_RULE__STEREOTYPES:
+ getStereotypes().clear();
+ return;
+ case ConfigurationPackage.CHILD_RULE__ORIGIN:
+ setOrigin((EClass)null);
+ return;
+ case ConfigurationPackage.CHILD_RULE__INSERTION_PATH:
+ getInsertionPath().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ConfigurationPackage.CHILD_RULE__ELEMENT:
+ return element != null;
+ case ConfigurationPackage.CHILD_RULE__STEREOTYPES:
+ return stereotypes != null && !stereotypes.isEmpty();
+ case ConfigurationPackage.CHILD_RULE__ORIGIN:
+ return origin != null;
+ case ConfigurationPackage.CHILD_RULE__INSERTION_PATH:
+ return insertionPath != null && !insertionPath.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ChildRuleImpl
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/ConfigurationFactoryImpl.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/ConfigurationFactoryImpl.java
new file mode 100755
index 00000000000..7176aacd15f
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/ConfigurationFactoryImpl.java
@@ -0,0 +1,238 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.configuration.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.eclipse.papyrus.infra.viewpoints.configuration.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ConfigurationFactoryImpl extends EFactoryImpl implements ConfigurationFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ConfigurationFactory init() {
+ try {
+ ConfigurationFactory theConfigurationFactory = (ConfigurationFactory)EPackage.Registry.INSTANCE.getEFactory(ConfigurationPackage.eNS_URI);
+ if (theConfigurationFactory != null) {
+ return theConfigurationFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new ConfigurationFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ConfigurationFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case ConfigurationPackage.PAPYRUS_CONFIGURATION: return createPapyrusConfiguration();
+ case ConfigurationPackage.PAPYRUS_VIEWPOINT: return createPapyrusViewpoint();
+ case ConfigurationPackage.PAPYRUS_VIEW: return createPapyrusView();
+ case ConfigurationPackage.PAPYRUS_DIAGRAM: return createPapyrusDiagram();
+ case ConfigurationPackage.PAPYRUS_SYNC_TABLE: return createPapyrusSyncTable();
+ case ConfigurationPackage.PAPYRUS_TABLE: return createPapyrusTable();
+ case ConfigurationPackage.MODEL_RULE: return createModelRule();
+ case ConfigurationPackage.OWNING_RULE: return createOwningRule();
+ case ConfigurationPackage.CHILD_RULE: return createChildRule();
+ case ConfigurationPackage.PALETTE_RULE: return createPaletteRule();
+ case ConfigurationPackage.PATH_ELEMENT: return createPathElement();
+ case ConfigurationPackage.CATEGORY: return createCategory();
+ case ConfigurationPackage.ELEMENT_IMPORT: return createElementImport();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PapyrusConfiguration createPapyrusConfiguration() {
+ PapyrusConfigurationImpl papyrusConfiguration = new PapyrusConfigurationImpl();
+ return papyrusConfiguration;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PapyrusViewpoint createPapyrusViewpoint() {
+ PapyrusViewpointImpl papyrusViewpoint = new PapyrusViewpointImpl();
+ return papyrusViewpoint;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PapyrusView createPapyrusView() {
+ PapyrusViewImpl papyrusView = new PapyrusViewImpl();
+ return papyrusView;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PapyrusDiagram createPapyrusDiagram() {
+ PapyrusDiagramImpl papyrusDiagram = new PapyrusDiagramImpl();
+ return papyrusDiagram;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PapyrusSyncTable createPapyrusSyncTable() {
+ PapyrusSyncTableImpl papyrusSyncTable = new PapyrusSyncTableImpl();
+ return papyrusSyncTable;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PapyrusTable createPapyrusTable() {
+ PapyrusTableImpl papyrusTable = new PapyrusTableImpl();
+ return papyrusTable;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ModelRule createModelRule() {
+ ModelRuleImpl modelRule = new ModelRuleImpl();
+ return modelRule;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OwningRule createOwningRule() {
+ OwningRuleImpl owningRule = new OwningRuleImpl();
+ return owningRule;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ChildRule createChildRule() {
+ ChildRuleImpl childRule = new ChildRuleImpl();
+ return childRule;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PaletteRule createPaletteRule() {
+ PaletteRuleImpl paletteRule = new PaletteRuleImpl();
+ return paletteRule;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PathElement createPathElement() {
+ PathElementImpl pathElement = new PathElementImpl();
+ return pathElement;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Category createCategory() {
+ CategoryImpl category = new CategoryImpl();
+ return category;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ElementImport createElementImport() {
+ ElementImportImpl elementImport = new ElementImportImpl();
+ return elementImport;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ConfigurationPackage getConfigurationPackage() {
+ return (ConfigurationPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static ConfigurationPackage getPackage() {
+ return ConfigurationPackage.eINSTANCE;
+ }
+
+} //ConfigurationFactoryImpl
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/ConfigurationPackageImpl.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/ConfigurationPackageImpl.java
new file mode 100755
index 00000000000..74e443c3040
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/ConfigurationPackageImpl.java
@@ -0,0 +1,864 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.configuration.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.papyrus.infra.viewpoints.configuration.Category;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ChildRule;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationFactory;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ElementImport;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ModelRule;
+import org.eclipse.papyrus.infra.viewpoints.configuration.OwningRule;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PaletteRule;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusConfiguration;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusDiagram;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusSyncTable;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusTable;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusView;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusViewpoint;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PathElement;
+import org.eclipse.papyrus.infra.viewpoints.configuration.Rule;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ConfigurationPackageImpl extends EPackageImpl implements ConfigurationPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass papyrusConfigurationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass papyrusViewpointEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass papyrusViewEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass papyrusDiagramEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass papyrusSyncTableEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass papyrusTableEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass modelRuleEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass owningRuleEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass childRuleEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass paletteRuleEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass ruleEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass pathElementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass categoryEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass elementImportEClass = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private ConfigurationPackageImpl() {
+ super(eNS_URI, ConfigurationFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link ConfigurationPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static ConfigurationPackage init() {
+ if (isInited) return (ConfigurationPackage)EPackage.Registry.INSTANCE.getEPackage(ConfigurationPackage.eNS_URI);
+
+ // Obtain or create and register package
+ ConfigurationPackageImpl theConfigurationPackage = (ConfigurationPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof ConfigurationPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new ConfigurationPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ EcorePackage.eINSTANCE.eClass();
+ Iso42010Package.eINSTANCE.eClass();
+
+ // Create package meta-data objects
+ theConfigurationPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theConfigurationPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theConfigurationPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(ConfigurationPackage.eNS_URI, theConfigurationPackage);
+ return theConfigurationPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPapyrusConfiguration() {
+ return papyrusConfigurationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPapyrusConfiguration_DefaultStakeholder() {
+ return (EReference)papyrusConfigurationEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPapyrusConfiguration_Metamodel() {
+ return (EReference)papyrusConfigurationEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPapyrusConfiguration_Categories() {
+ return (EReference)papyrusConfigurationEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPapyrusViewpoint() {
+ return papyrusViewpointEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPapyrusViewpoint_Parent() {
+ return (EReference)papyrusViewpointEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPapyrusView() {
+ return papyrusViewEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getPapyrusView_Icon() {
+ return (EAttribute)papyrusViewEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPapyrusView_Parent() {
+ return (EReference)papyrusViewEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPapyrusView_Profiles() {
+ return (EReference)papyrusViewEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPapyrusView_ModelRules() {
+ return (EReference)papyrusViewEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPapyrusView_OwningRules() {
+ return (EReference)papyrusViewEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getPapyrusView_ImplementationID() {
+ return (EAttribute)papyrusViewEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPapyrusView_Categories() {
+ return (EReference)papyrusViewEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPapyrusDiagram() {
+ return papyrusDiagramEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getPapyrusDiagram_CustomPalette() {
+ return (EAttribute)papyrusDiagramEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getPapyrusDiagram_CustomStyle() {
+ return (EAttribute)papyrusDiagramEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPapyrusDiagram_ChildRules() {
+ return (EReference)papyrusDiagramEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPapyrusDiagram_PaletteRules() {
+ return (EReference)papyrusDiagramEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPapyrusDiagram_Imports() {
+ return (EReference)papyrusDiagramEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPapyrusSyncTable() {
+ return papyrusSyncTableEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPapyrusTable() {
+ return papyrusTableEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getPapyrusTable_Configuration() {
+ return (EAttribute)papyrusTableEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getModelRule() {
+ return modelRuleEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getModelRule_Element() {
+ return (EReference)modelRuleEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getModelRule_Stereotypes() {
+ return (EReference)modelRuleEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getModelRule_Multiplicity() {
+ return (EAttribute)modelRuleEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getModelRule_AutoSelectPath() {
+ return (EReference)modelRuleEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getOwningRule() {
+ return owningRuleEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getOwningRule_Element() {
+ return (EReference)owningRuleEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getOwningRule_Stereotypes() {
+ return (EReference)owningRuleEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getOwningRule_Multiplicity() {
+ return (EAttribute)owningRuleEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getChildRule() {
+ return childRuleEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getChildRule_Element() {
+ return (EReference)childRuleEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getChildRule_Stereotypes() {
+ return (EReference)childRuleEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getChildRule_Origin() {
+ return (EReference)childRuleEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getChildRule_InsertionPath() {
+ return (EReference)childRuleEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPaletteRule() {
+ return paletteRuleEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getPaletteRule_Element() {
+ return (EAttribute)paletteRuleEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getRule() {
+ return ruleEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getRule_Permit() {
+ return (EAttribute)ruleEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPathElement() {
+ return pathElementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPathElement_Feature() {
+ return (EReference)pathElementEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPathElement_Origin() {
+ return (EReference)pathElementEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPathElement_Target() {
+ return (EReference)pathElementEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCategory() {
+ return categoryEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCategory_Name() {
+ return (EAttribute)categoryEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getElementImport() {
+ return elementImportEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getElementImport_From() {
+ return (EReference)elementImportEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getElementImport_Element() {
+ return (EReference)elementImportEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ConfigurationFactory getConfigurationFactory() {
+ return (ConfigurationFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ papyrusConfigurationEClass = createEClass(PAPYRUS_CONFIGURATION);
+ createEReference(papyrusConfigurationEClass, PAPYRUS_CONFIGURATION__DEFAULT_STAKEHOLDER);
+ createEReference(papyrusConfigurationEClass, PAPYRUS_CONFIGURATION__METAMODEL);
+ createEReference(papyrusConfigurationEClass, PAPYRUS_CONFIGURATION__CATEGORIES);
+
+ papyrusViewpointEClass = createEClass(PAPYRUS_VIEWPOINT);
+ createEReference(papyrusViewpointEClass, PAPYRUS_VIEWPOINT__PARENT);
+
+ papyrusViewEClass = createEClass(PAPYRUS_VIEW);
+ createEAttribute(papyrusViewEClass, PAPYRUS_VIEW__ICON);
+ createEReference(papyrusViewEClass, PAPYRUS_VIEW__PARENT);
+ createEReference(papyrusViewEClass, PAPYRUS_VIEW__PROFILES);
+ createEReference(papyrusViewEClass, PAPYRUS_VIEW__MODEL_RULES);
+ createEReference(papyrusViewEClass, PAPYRUS_VIEW__OWNING_RULES);
+ createEAttribute(papyrusViewEClass, PAPYRUS_VIEW__IMPLEMENTATION_ID);
+ createEReference(papyrusViewEClass, PAPYRUS_VIEW__CATEGORIES);
+
+ papyrusDiagramEClass = createEClass(PAPYRUS_DIAGRAM);
+ createEAttribute(papyrusDiagramEClass, PAPYRUS_DIAGRAM__CUSTOM_PALETTE);
+ createEAttribute(papyrusDiagramEClass, PAPYRUS_DIAGRAM__CUSTOM_STYLE);
+ createEReference(papyrusDiagramEClass, PAPYRUS_DIAGRAM__CHILD_RULES);
+ createEReference(papyrusDiagramEClass, PAPYRUS_DIAGRAM__PALETTE_RULES);
+ createEReference(papyrusDiagramEClass, PAPYRUS_DIAGRAM__IMPORTS);
+
+ papyrusSyncTableEClass = createEClass(PAPYRUS_SYNC_TABLE);
+
+ papyrusTableEClass = createEClass(PAPYRUS_TABLE);
+ createEAttribute(papyrusTableEClass, PAPYRUS_TABLE__CONFIGURATION);
+
+ ruleEClass = createEClass(RULE);
+ createEAttribute(ruleEClass, RULE__PERMIT);
+
+ modelRuleEClass = createEClass(MODEL_RULE);
+ createEReference(modelRuleEClass, MODEL_RULE__ELEMENT);
+ createEReference(modelRuleEClass, MODEL_RULE__STEREOTYPES);
+ createEAttribute(modelRuleEClass, MODEL_RULE__MULTIPLICITY);
+ createEReference(modelRuleEClass, MODEL_RULE__AUTO_SELECT_PATH);
+
+ owningRuleEClass = createEClass(OWNING_RULE);
+ createEReference(owningRuleEClass, OWNING_RULE__ELEMENT);
+ createEReference(owningRuleEClass, OWNING_RULE__STEREOTYPES);
+ createEAttribute(owningRuleEClass, OWNING_RULE__MULTIPLICITY);
+
+ childRuleEClass = createEClass(CHILD_RULE);
+ createEReference(childRuleEClass, CHILD_RULE__ELEMENT);
+ createEReference(childRuleEClass, CHILD_RULE__STEREOTYPES);
+ createEReference(childRuleEClass, CHILD_RULE__ORIGIN);
+ createEReference(childRuleEClass, CHILD_RULE__INSERTION_PATH);
+
+ paletteRuleEClass = createEClass(PALETTE_RULE);
+ createEAttribute(paletteRuleEClass, PALETTE_RULE__ELEMENT);
+
+ pathElementEClass = createEClass(PATH_ELEMENT);
+ createEReference(pathElementEClass, PATH_ELEMENT__FEATURE);
+ createEReference(pathElementEClass, PATH_ELEMENT__ORIGIN);
+ createEReference(pathElementEClass, PATH_ELEMENT__TARGET);
+
+ categoryEClass = createEClass(CATEGORY);
+ createEAttribute(categoryEClass, CATEGORY__NAME);
+
+ elementImportEClass = createEClass(ELEMENT_IMPORT);
+ createEReference(elementImportEClass, ELEMENT_IMPORT__FROM);
+ createEReference(elementImportEClass, ELEMENT_IMPORT__ELEMENT);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ Iso42010Package theIso42010Package = (Iso42010Package)EPackage.Registry.INSTANCE.getEPackage(Iso42010Package.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ papyrusConfigurationEClass.getESuperTypes().add(theIso42010Package.getArchitectureFramework());
+ papyrusViewpointEClass.getESuperTypes().add(theIso42010Package.getArchitectureViewpoint());
+ papyrusViewEClass.getESuperTypes().add(theIso42010Package.getModelKind());
+ papyrusDiagramEClass.getESuperTypes().add(this.getPapyrusView());
+ papyrusSyncTableEClass.getESuperTypes().add(this.getPapyrusView());
+ papyrusTableEClass.getESuperTypes().add(this.getPapyrusView());
+ modelRuleEClass.getESuperTypes().add(this.getRule());
+ owningRuleEClass.getESuperTypes().add(this.getRule());
+ childRuleEClass.getESuperTypes().add(this.getRule());
+ paletteRuleEClass.getESuperTypes().add(this.getRule());
+
+ // Initialize classes, features, and operations; add parameters
+ initEClass(papyrusConfigurationEClass, PapyrusConfiguration.class, "PapyrusConfiguration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getPapyrusConfiguration_DefaultStakeholder(), theIso42010Package.getStakeholder(), null, "defaultStakeholder", null, 1, 1, PapyrusConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getPapyrusConfiguration_Metamodel(), ecorePackage.getEPackage(), null, "metamodel", null, 1, 1, PapyrusConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getPapyrusConfiguration_Categories(), this.getCategory(), null, "categories", null, 0, -1, PapyrusConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(papyrusViewpointEClass, PapyrusViewpoint.class, "PapyrusViewpoint", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getPapyrusViewpoint_Parent(), this.getPapyrusViewpoint(), null, "parent", null, 0, 1, PapyrusViewpoint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(papyrusViewEClass, PapyrusView.class, "PapyrusView", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getPapyrusView_Icon(), ecorePackage.getEString(), "icon", null, 0, 1, PapyrusView.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getPapyrusView_Parent(), this.getPapyrusView(), null, "parent", null, 0, 1, PapyrusView.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getPapyrusView_Profiles(), ecorePackage.getEPackage(), null, "profiles", null, 0, -1, PapyrusView.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getPapyrusView_ModelRules(), this.getModelRule(), null, "modelRules", null, 1, -1, PapyrusView.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getPapyrusView_OwningRules(), this.getOwningRule(), null, "owningRules", null, 1, -1, PapyrusView.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getPapyrusView_ImplementationID(), ecorePackage.getEString(), "implementationID", null, 1, 1, PapyrusView.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getPapyrusView_Categories(), this.getCategory(), null, "categories", null, 0, -1, PapyrusView.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(papyrusDiagramEClass, PapyrusDiagram.class, "PapyrusDiagram", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getPapyrusDiagram_CustomPalette(), ecorePackage.getEString(), "customPalette", null, 0, 1, PapyrusDiagram.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getPapyrusDiagram_CustomStyle(), ecorePackage.getEString(), "customStyle", null, 0, 1, PapyrusDiagram.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getPapyrusDiagram_ChildRules(), this.getChildRule(), null, "childRules", null, 0, -1, PapyrusDiagram.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getPapyrusDiagram_PaletteRules(), this.getPaletteRule(), null, "paletteRules", null, 0, -1, PapyrusDiagram.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getPapyrusDiagram_Imports(), this.getElementImport(), null, "imports", null, 0, -1, PapyrusDiagram.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(papyrusSyncTableEClass, PapyrusSyncTable.class, "PapyrusSyncTable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(papyrusTableEClass, PapyrusTable.class, "PapyrusTable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getPapyrusTable_Configuration(), ecorePackage.getEString(), "configuration", null, 1, 1, PapyrusTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(ruleEClass, Rule.class, "Rule", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getRule_Permit(), ecorePackage.getEBoolean(), "permit", "true", 1, 1, Rule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(modelRuleEClass, ModelRule.class, "ModelRule", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getModelRule_Element(), ecorePackage.getEClass(), null, "element", null, 0, 1, ModelRule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getModelRule_Stereotypes(), ecorePackage.getEClass(), null, "stereotypes", null, 0, -1, ModelRule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getModelRule_Multiplicity(), ecorePackage.getEInt(), "multiplicity", "-1", 1, 1, ModelRule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getModelRule_AutoSelectPath(), this.getPathElement(), null, "autoSelectPath", null, 0, -1, ModelRule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(owningRuleEClass, OwningRule.class, "OwningRule", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getOwningRule_Element(), ecorePackage.getEClass(), null, "element", null, 0, 1, OwningRule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getOwningRule_Stereotypes(), ecorePackage.getEClass(), null, "stereotypes", null, 0, -1, OwningRule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getOwningRule_Multiplicity(), ecorePackage.getEInt(), "multiplicity", "-1", 1, 1, OwningRule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(childRuleEClass, ChildRule.class, "ChildRule", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getChildRule_Element(), ecorePackage.getEClass(), null, "element", null, 0, 1, ChildRule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getChildRule_Stereotypes(), ecorePackage.getEClass(), null, "stereotypes", null, 0, -1, ChildRule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getChildRule_Origin(), ecorePackage.getEClass(), null, "origin", null, 0, 1, ChildRule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getChildRule_InsertionPath(), this.getPathElement(), null, "insertionPath", null, 0, -1, ChildRule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(paletteRuleEClass, PaletteRule.class, "PaletteRule", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getPaletteRule_Element(), ecorePackage.getEString(), "element", null, 0, 1, PaletteRule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(pathElementEClass, PathElement.class, "PathElement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getPathElement_Feature(), ecorePackage.getEReference(), null, "feature", null, 1, 1, PathElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getPathElement_Origin(), ecorePackage.getEClass(), null, "origin", null, 1, 1, PathElement.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+ initEReference(getPathElement_Target(), ecorePackage.getEClass(), null, "target", null, 1, 1, PathElement.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+
+ initEClass(categoryEClass, Category.class, "Category", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getCategory_Name(), ecorePackage.getEString(), "name", null, 1, 1, Category.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(elementImportEClass, ElementImport.class, "ElementImport", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getElementImport_From(), this.getPapyrusDiagram(), null, "from", null, 1, 1, ElementImport.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getElementImport_Element(), ecorePackage.getEClass(), null, "element", null, 1, 1, ElementImport.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Create resource
+ createResource(eNS_URI);
+ }
+
+} //ConfigurationPackageImpl
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/ElementImportImpl.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/ElementImportImpl.java
new file mode 100755
index 00000000000..d1f39a65d94
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/ElementImportImpl.java
@@ -0,0 +1,228 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.configuration.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ElementImport;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusDiagram;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Element Import</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.ElementImportImpl#getFrom <em>From</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.ElementImportImpl#getElement <em>Element</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ElementImportImpl extends MinimalEObjectImpl.Container implements ElementImport {
+ /**
+ * The cached value of the '{@link #getFrom() <em>From</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFrom()
+ * @generated
+ * @ordered
+ */
+ protected PapyrusDiagram from;
+
+ /**
+ * The cached value of the '{@link #getElement() <em>Element</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getElement()
+ * @generated
+ * @ordered
+ */
+ protected EClass element;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ElementImportImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ConfigurationPackage.Literals.ELEMENT_IMPORT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PapyrusDiagram getFrom() {
+ if (from != null && from.eIsProxy()) {
+ InternalEObject oldFrom = (InternalEObject)from;
+ from = (PapyrusDiagram)eResolveProxy(oldFrom);
+ if (from != oldFrom) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, ConfigurationPackage.ELEMENT_IMPORT__FROM, oldFrom, from));
+ }
+ }
+ return from;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PapyrusDiagram basicGetFrom() {
+ return from;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFrom(PapyrusDiagram newFrom) {
+ PapyrusDiagram oldFrom = from;
+ from = newFrom;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ConfigurationPackage.ELEMENT_IMPORT__FROM, oldFrom, from));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getElement() {
+ if (element != null && element.eIsProxy()) {
+ InternalEObject oldElement = (InternalEObject)element;
+ element = (EClass)eResolveProxy(oldElement);
+ if (element != oldElement) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, ConfigurationPackage.ELEMENT_IMPORT__ELEMENT, oldElement, element));
+ }
+ }
+ return element;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass basicGetElement() {
+ return element;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setElement(EClass newElement) {
+ EClass oldElement = element;
+ element = newElement;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ConfigurationPackage.ELEMENT_IMPORT__ELEMENT, oldElement, element));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ConfigurationPackage.ELEMENT_IMPORT__FROM:
+ if (resolve) return getFrom();
+ return basicGetFrom();
+ case ConfigurationPackage.ELEMENT_IMPORT__ELEMENT:
+ if (resolve) return getElement();
+ return basicGetElement();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ConfigurationPackage.ELEMENT_IMPORT__FROM:
+ setFrom((PapyrusDiagram)newValue);
+ return;
+ case ConfigurationPackage.ELEMENT_IMPORT__ELEMENT:
+ setElement((EClass)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ConfigurationPackage.ELEMENT_IMPORT__FROM:
+ setFrom((PapyrusDiagram)null);
+ return;
+ case ConfigurationPackage.ELEMENT_IMPORT__ELEMENT:
+ setElement((EClass)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ConfigurationPackage.ELEMENT_IMPORT__FROM:
+ return from != null;
+ case ConfigurationPackage.ELEMENT_IMPORT__ELEMENT:
+ return element != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ElementImportImpl
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/ModelRuleImpl.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/ModelRuleImpl.java
new file mode 100755
index 00000000000..75149e650b0
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/ModelRuleImpl.java
@@ -0,0 +1,321 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.configuration.impl;
+
+import java.util.Collection;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ModelRule;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PathElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Model Rule</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.ModelRuleImpl#getElement <em>Element</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.ModelRuleImpl#getStereotypes <em>Stereotypes</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.ModelRuleImpl#getMultiplicity <em>Multiplicity</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.ModelRuleImpl#getAutoSelectPath <em>Auto Select Path</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ModelRuleImpl extends RuleImpl implements ModelRule {
+ /**
+ * The cached value of the '{@link #getElement() <em>Element</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getElement()
+ * @generated
+ * @ordered
+ */
+ protected EClass element;
+
+ /**
+ * The cached value of the '{@link #getStereotypes() <em>Stereotypes</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStereotypes()
+ * @generated
+ * @ordered
+ */
+ protected EList<EClass> stereotypes;
+
+ /**
+ * The default value of the '{@link #getMultiplicity() <em>Multiplicity</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMultiplicity()
+ * @generated
+ * @ordered
+ */
+ protected static final int MULTIPLICITY_EDEFAULT = -1;
+
+ /**
+ * The cached value of the '{@link #getMultiplicity() <em>Multiplicity</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMultiplicity()
+ * @generated
+ * @ordered
+ */
+ protected int multiplicity = MULTIPLICITY_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getAutoSelectPath() <em>Auto Select Path</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAutoSelectPath()
+ * @generated
+ * @ordered
+ */
+ protected EList<PathElement> autoSelectPath;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ModelRuleImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ConfigurationPackage.Literals.MODEL_RULE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getElement() {
+ if (element != null && element.eIsProxy()) {
+ InternalEObject oldElement = (InternalEObject)element;
+ element = (EClass)eResolveProxy(oldElement);
+ if (element != oldElement) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, ConfigurationPackage.MODEL_RULE__ELEMENT, oldElement, element));
+ }
+ }
+ return element;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass basicGetElement() {
+ return element;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setElement(EClass newElement) {
+ EClass oldElement = element;
+ element = newElement;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ConfigurationPackage.MODEL_RULE__ELEMENT, oldElement, element));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<EClass> getStereotypes() {
+ if (stereotypes == null) {
+ stereotypes = new EObjectResolvingEList<EClass>(EClass.class, this, ConfigurationPackage.MODEL_RULE__STEREOTYPES);
+ }
+ return stereotypes;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getMultiplicity() {
+ return multiplicity;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMultiplicity(int newMultiplicity) {
+ int oldMultiplicity = multiplicity;
+ multiplicity = newMultiplicity;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ConfigurationPackage.MODEL_RULE__MULTIPLICITY, oldMultiplicity, multiplicity));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<PathElement> getAutoSelectPath() {
+ if (autoSelectPath == null) {
+ autoSelectPath = new EObjectContainmentEList<PathElement>(PathElement.class, this, ConfigurationPackage.MODEL_RULE__AUTO_SELECT_PATH);
+ }
+ return autoSelectPath;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case ConfigurationPackage.MODEL_RULE__AUTO_SELECT_PATH:
+ return ((InternalEList<?>)getAutoSelectPath()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ConfigurationPackage.MODEL_RULE__ELEMENT:
+ if (resolve) return getElement();
+ return basicGetElement();
+ case ConfigurationPackage.MODEL_RULE__STEREOTYPES:
+ return getStereotypes();
+ case ConfigurationPackage.MODEL_RULE__MULTIPLICITY:
+ return getMultiplicity();
+ case ConfigurationPackage.MODEL_RULE__AUTO_SELECT_PATH:
+ return getAutoSelectPath();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ConfigurationPackage.MODEL_RULE__ELEMENT:
+ setElement((EClass)newValue);
+ return;
+ case ConfigurationPackage.MODEL_RULE__STEREOTYPES:
+ getStereotypes().clear();
+ getStereotypes().addAll((Collection<? extends EClass>)newValue);
+ return;
+ case ConfigurationPackage.MODEL_RULE__MULTIPLICITY:
+ setMultiplicity((Integer)newValue);
+ return;
+ case ConfigurationPackage.MODEL_RULE__AUTO_SELECT_PATH:
+ getAutoSelectPath().clear();
+ getAutoSelectPath().addAll((Collection<? extends PathElement>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ConfigurationPackage.MODEL_RULE__ELEMENT:
+ setElement((EClass)null);
+ return;
+ case ConfigurationPackage.MODEL_RULE__STEREOTYPES:
+ getStereotypes().clear();
+ return;
+ case ConfigurationPackage.MODEL_RULE__MULTIPLICITY:
+ setMultiplicity(MULTIPLICITY_EDEFAULT);
+ return;
+ case ConfigurationPackage.MODEL_RULE__AUTO_SELECT_PATH:
+ getAutoSelectPath().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ConfigurationPackage.MODEL_RULE__ELEMENT:
+ return element != null;
+ case ConfigurationPackage.MODEL_RULE__STEREOTYPES:
+ return stereotypes != null && !stereotypes.isEmpty();
+ case ConfigurationPackage.MODEL_RULE__MULTIPLICITY:
+ return multiplicity != MULTIPLICITY_EDEFAULT;
+ case ConfigurationPackage.MODEL_RULE__AUTO_SELECT_PATH:
+ return autoSelectPath != null && !autoSelectPath.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (multiplicity: ");
+ result.append(multiplicity);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ModelRuleImpl
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/OwningRuleImpl.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/OwningRuleImpl.java
new file mode 100755
index 00000000000..4b75d1292e8
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/OwningRuleImpl.java
@@ -0,0 +1,272 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.configuration.impl;
+
+import java.util.Collection;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage;
+import org.eclipse.papyrus.infra.viewpoints.configuration.OwningRule;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Owning Rule</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.OwningRuleImpl#getElement <em>Element</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.OwningRuleImpl#getStereotypes <em>Stereotypes</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.OwningRuleImpl#getMultiplicity <em>Multiplicity</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class OwningRuleImpl extends RuleImpl implements OwningRule {
+ /**
+ * The cached value of the '{@link #getElement() <em>Element</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getElement()
+ * @generated
+ * @ordered
+ */
+ protected EClass element;
+
+ /**
+ * The cached value of the '{@link #getStereotypes() <em>Stereotypes</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStereotypes()
+ * @generated
+ * @ordered
+ */
+ protected EList<EClass> stereotypes;
+
+ /**
+ * The default value of the '{@link #getMultiplicity() <em>Multiplicity</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMultiplicity()
+ * @generated
+ * @ordered
+ */
+ protected static final int MULTIPLICITY_EDEFAULT = -1;
+
+ /**
+ * The cached value of the '{@link #getMultiplicity() <em>Multiplicity</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMultiplicity()
+ * @generated
+ * @ordered
+ */
+ protected int multiplicity = MULTIPLICITY_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected OwningRuleImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ConfigurationPackage.Literals.OWNING_RULE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getElement() {
+ if (element != null && element.eIsProxy()) {
+ InternalEObject oldElement = (InternalEObject)element;
+ element = (EClass)eResolveProxy(oldElement);
+ if (element != oldElement) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, ConfigurationPackage.OWNING_RULE__ELEMENT, oldElement, element));
+ }
+ }
+ return element;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass basicGetElement() {
+ return element;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setElement(EClass newElement) {
+ EClass oldElement = element;
+ element = newElement;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ConfigurationPackage.OWNING_RULE__ELEMENT, oldElement, element));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<EClass> getStereotypes() {
+ if (stereotypes == null) {
+ stereotypes = new EObjectResolvingEList<EClass>(EClass.class, this, ConfigurationPackage.OWNING_RULE__STEREOTYPES);
+ }
+ return stereotypes;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getMultiplicity() {
+ return multiplicity;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMultiplicity(int newMultiplicity) {
+ int oldMultiplicity = multiplicity;
+ multiplicity = newMultiplicity;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ConfigurationPackage.OWNING_RULE__MULTIPLICITY, oldMultiplicity, multiplicity));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ConfigurationPackage.OWNING_RULE__ELEMENT:
+ if (resolve) return getElement();
+ return basicGetElement();
+ case ConfigurationPackage.OWNING_RULE__STEREOTYPES:
+ return getStereotypes();
+ case ConfigurationPackage.OWNING_RULE__MULTIPLICITY:
+ return getMultiplicity();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ConfigurationPackage.OWNING_RULE__ELEMENT:
+ setElement((EClass)newValue);
+ return;
+ case ConfigurationPackage.OWNING_RULE__STEREOTYPES:
+ getStereotypes().clear();
+ getStereotypes().addAll((Collection<? extends EClass>)newValue);
+ return;
+ case ConfigurationPackage.OWNING_RULE__MULTIPLICITY:
+ setMultiplicity((Integer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ConfigurationPackage.OWNING_RULE__ELEMENT:
+ setElement((EClass)null);
+ return;
+ case ConfigurationPackage.OWNING_RULE__STEREOTYPES:
+ getStereotypes().clear();
+ return;
+ case ConfigurationPackage.OWNING_RULE__MULTIPLICITY:
+ setMultiplicity(MULTIPLICITY_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ConfigurationPackage.OWNING_RULE__ELEMENT:
+ return element != null;
+ case ConfigurationPackage.OWNING_RULE__STEREOTYPES:
+ return stereotypes != null && !stereotypes.isEmpty();
+ case ConfigurationPackage.OWNING_RULE__MULTIPLICITY:
+ return multiplicity != MULTIPLICITY_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (multiplicity: ");
+ result.append(multiplicity);
+ result.append(')');
+ return result.toString();
+ }
+
+} //OwningRuleImpl
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/PaletteRuleImpl.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/PaletteRuleImpl.java
new file mode 100755
index 00000000000..335799cd43a
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/PaletteRuleImpl.java
@@ -0,0 +1,173 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.configuration.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PaletteRule;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Palette Rule</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.PaletteRuleImpl#getElement <em>Element</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PaletteRuleImpl extends RuleImpl implements PaletteRule {
+ /**
+ * The default value of the '{@link #getElement() <em>Element</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getElement()
+ * @generated
+ * @ordered
+ */
+ protected static final String ELEMENT_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getElement() <em>Element</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getElement()
+ * @generated
+ * @ordered
+ */
+ protected String element = ELEMENT_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PaletteRuleImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ConfigurationPackage.Literals.PALETTE_RULE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getElement() {
+ return element;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setElement(String newElement) {
+ String oldElement = element;
+ element = newElement;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ConfigurationPackage.PALETTE_RULE__ELEMENT, oldElement, element));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ConfigurationPackage.PALETTE_RULE__ELEMENT:
+ return getElement();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ConfigurationPackage.PALETTE_RULE__ELEMENT:
+ setElement((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ConfigurationPackage.PALETTE_RULE__ELEMENT:
+ setElement(ELEMENT_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ConfigurationPackage.PALETTE_RULE__ELEMENT:
+ return ELEMENT_EDEFAULT == null ? element != null : !ELEMENT_EDEFAULT.equals(element);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (element: ");
+ result.append(element);
+ result.append(')');
+ return result.toString();
+ }
+
+} //PaletteRuleImpl
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/PapyrusConfigurationImpl.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/PapyrusConfigurationImpl.java
new file mode 100755
index 00000000000..e7f29683ff3
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/PapyrusConfigurationImpl.java
@@ -0,0 +1,281 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.configuration.impl;
+
+import java.util.Collection;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.papyrus.infra.viewpoints.configuration.Category;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusConfiguration;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Stakeholder;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureFrameworkImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Papyrus Configuration</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.PapyrusConfigurationImpl#getDefaultStakeholder <em>Default Stakeholder</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.PapyrusConfigurationImpl#getMetamodel <em>Metamodel</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.PapyrusConfigurationImpl#getCategories <em>Categories</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PapyrusConfigurationImpl extends ArchitectureFrameworkImpl implements PapyrusConfiguration {
+ /**
+ * The cached value of the '{@link #getDefaultStakeholder() <em>Default Stakeholder</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDefaultStakeholder()
+ * @generated
+ * @ordered
+ */
+ protected Stakeholder defaultStakeholder;
+
+ /**
+ * The cached value of the '{@link #getMetamodel() <em>Metamodel</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMetamodel()
+ * @generated
+ * @ordered
+ */
+ protected EPackage metamodel;
+
+ /**
+ * The cached value of the '{@link #getCategories() <em>Categories</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCategories()
+ * @generated
+ * @ordered
+ */
+ protected EList<Category> categories;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PapyrusConfigurationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ConfigurationPackage.Literals.PAPYRUS_CONFIGURATION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Stakeholder getDefaultStakeholder() {
+ if (defaultStakeholder != null && defaultStakeholder.eIsProxy()) {
+ InternalEObject oldDefaultStakeholder = (InternalEObject)defaultStakeholder;
+ defaultStakeholder = (Stakeholder)eResolveProxy(oldDefaultStakeholder);
+ if (defaultStakeholder != oldDefaultStakeholder) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, ConfigurationPackage.PAPYRUS_CONFIGURATION__DEFAULT_STAKEHOLDER, oldDefaultStakeholder, defaultStakeholder));
+ }
+ }
+ return defaultStakeholder;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Stakeholder basicGetDefaultStakeholder() {
+ return defaultStakeholder;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDefaultStakeholder(Stakeholder newDefaultStakeholder) {
+ Stakeholder oldDefaultStakeholder = defaultStakeholder;
+ defaultStakeholder = newDefaultStakeholder;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ConfigurationPackage.PAPYRUS_CONFIGURATION__DEFAULT_STAKEHOLDER, oldDefaultStakeholder, defaultStakeholder));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EPackage getMetamodel() {
+ if (metamodel != null && metamodel.eIsProxy()) {
+ InternalEObject oldMetamodel = (InternalEObject)metamodel;
+ metamodel = (EPackage)eResolveProxy(oldMetamodel);
+ if (metamodel != oldMetamodel) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, ConfigurationPackage.PAPYRUS_CONFIGURATION__METAMODEL, oldMetamodel, metamodel));
+ }
+ }
+ return metamodel;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EPackage basicGetMetamodel() {
+ return metamodel;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMetamodel(EPackage newMetamodel) {
+ EPackage oldMetamodel = metamodel;
+ metamodel = newMetamodel;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ConfigurationPackage.PAPYRUS_CONFIGURATION__METAMODEL, oldMetamodel, metamodel));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Category> getCategories() {
+ if (categories == null) {
+ categories = new EObjectContainmentEList<Category>(Category.class, this, ConfigurationPackage.PAPYRUS_CONFIGURATION__CATEGORIES);
+ }
+ return categories;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case ConfigurationPackage.PAPYRUS_CONFIGURATION__CATEGORIES:
+ return ((InternalEList<?>)getCategories()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ConfigurationPackage.PAPYRUS_CONFIGURATION__DEFAULT_STAKEHOLDER:
+ if (resolve) return getDefaultStakeholder();
+ return basicGetDefaultStakeholder();
+ case ConfigurationPackage.PAPYRUS_CONFIGURATION__METAMODEL:
+ if (resolve) return getMetamodel();
+ return basicGetMetamodel();
+ case ConfigurationPackage.PAPYRUS_CONFIGURATION__CATEGORIES:
+ return getCategories();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ConfigurationPackage.PAPYRUS_CONFIGURATION__DEFAULT_STAKEHOLDER:
+ setDefaultStakeholder((Stakeholder)newValue);
+ return;
+ case ConfigurationPackage.PAPYRUS_CONFIGURATION__METAMODEL:
+ setMetamodel((EPackage)newValue);
+ return;
+ case ConfigurationPackage.PAPYRUS_CONFIGURATION__CATEGORIES:
+ getCategories().clear();
+ getCategories().addAll((Collection<? extends Category>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ConfigurationPackage.PAPYRUS_CONFIGURATION__DEFAULT_STAKEHOLDER:
+ setDefaultStakeholder((Stakeholder)null);
+ return;
+ case ConfigurationPackage.PAPYRUS_CONFIGURATION__METAMODEL:
+ setMetamodel((EPackage)null);
+ return;
+ case ConfigurationPackage.PAPYRUS_CONFIGURATION__CATEGORIES:
+ getCategories().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ConfigurationPackage.PAPYRUS_CONFIGURATION__DEFAULT_STAKEHOLDER:
+ return defaultStakeholder != null;
+ case ConfigurationPackage.PAPYRUS_CONFIGURATION__METAMODEL:
+ return metamodel != null;
+ case ConfigurationPackage.PAPYRUS_CONFIGURATION__CATEGORIES:
+ return categories != null && !categories.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //PapyrusConfigurationImpl
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/PapyrusDiagramImpl.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/PapyrusDiagramImpl.java
new file mode 100755
index 00000000000..7aa81c0eb8f
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/PapyrusDiagramImpl.java
@@ -0,0 +1,354 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.configuration.impl;
+
+import java.util.Collection;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ChildRule;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ElementImport;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PaletteRule;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusDiagram;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Papyrus Diagram</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.PapyrusDiagramImpl#getCustomPalette <em>Custom Palette</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.PapyrusDiagramImpl#getCustomStyle <em>Custom Style</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.PapyrusDiagramImpl#getChildRules <em>Child Rules</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.PapyrusDiagramImpl#getPaletteRules <em>Palette Rules</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.PapyrusDiagramImpl#getImports <em>Imports</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PapyrusDiagramImpl extends PapyrusViewImpl implements PapyrusDiagram {
+ /**
+ * The default value of the '{@link #getCustomPalette() <em>Custom Palette</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCustomPalette()
+ * @generated
+ * @ordered
+ */
+ protected static final String CUSTOM_PALETTE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getCustomPalette() <em>Custom Palette</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCustomPalette()
+ * @generated
+ * @ordered
+ */
+ protected String customPalette = CUSTOM_PALETTE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getCustomStyle() <em>Custom Style</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCustomStyle()
+ * @generated
+ * @ordered
+ */
+ protected static final String CUSTOM_STYLE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getCustomStyle() <em>Custom Style</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCustomStyle()
+ * @generated
+ * @ordered
+ */
+ protected String customStyle = CUSTOM_STYLE_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getChildRules() <em>Child Rules</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getChildRules()
+ * @generated
+ * @ordered
+ */
+ protected EList<ChildRule> childRules;
+
+ /**
+ * The cached value of the '{@link #getPaletteRules() <em>Palette Rules</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPaletteRules()
+ * @generated
+ * @ordered
+ */
+ protected EList<PaletteRule> paletteRules;
+
+ /**
+ * The cached value of the '{@link #getImports() <em>Imports</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getImports()
+ * @generated
+ * @ordered
+ */
+ protected EList<ElementImport> imports;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PapyrusDiagramImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ConfigurationPackage.Literals.PAPYRUS_DIAGRAM;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getCustomPalette() {
+ return customPalette;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCustomPalette(String newCustomPalette) {
+ String oldCustomPalette = customPalette;
+ customPalette = newCustomPalette;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ConfigurationPackage.PAPYRUS_DIAGRAM__CUSTOM_PALETTE, oldCustomPalette, customPalette));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getCustomStyle() {
+ return customStyle;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCustomStyle(String newCustomStyle) {
+ String oldCustomStyle = customStyle;
+ customStyle = newCustomStyle;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ConfigurationPackage.PAPYRUS_DIAGRAM__CUSTOM_STYLE, oldCustomStyle, customStyle));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<ChildRule> getChildRules() {
+ if (childRules == null) {
+ childRules = new EObjectContainmentEList<ChildRule>(ChildRule.class, this, ConfigurationPackage.PAPYRUS_DIAGRAM__CHILD_RULES);
+ }
+ return childRules;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<PaletteRule> getPaletteRules() {
+ if (paletteRules == null) {
+ paletteRules = new EObjectContainmentEList<PaletteRule>(PaletteRule.class, this, ConfigurationPackage.PAPYRUS_DIAGRAM__PALETTE_RULES);
+ }
+ return paletteRules;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<ElementImport> getImports() {
+ if (imports == null) {
+ imports = new EObjectContainmentEList<ElementImport>(ElementImport.class, this, ConfigurationPackage.PAPYRUS_DIAGRAM__IMPORTS);
+ }
+ return imports;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case ConfigurationPackage.PAPYRUS_DIAGRAM__CHILD_RULES:
+ return ((InternalEList<?>)getChildRules()).basicRemove(otherEnd, msgs);
+ case ConfigurationPackage.PAPYRUS_DIAGRAM__PALETTE_RULES:
+ return ((InternalEList<?>)getPaletteRules()).basicRemove(otherEnd, msgs);
+ case ConfigurationPackage.PAPYRUS_DIAGRAM__IMPORTS:
+ return ((InternalEList<?>)getImports()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ConfigurationPackage.PAPYRUS_DIAGRAM__CUSTOM_PALETTE:
+ return getCustomPalette();
+ case ConfigurationPackage.PAPYRUS_DIAGRAM__CUSTOM_STYLE:
+ return getCustomStyle();
+ case ConfigurationPackage.PAPYRUS_DIAGRAM__CHILD_RULES:
+ return getChildRules();
+ case ConfigurationPackage.PAPYRUS_DIAGRAM__PALETTE_RULES:
+ return getPaletteRules();
+ case ConfigurationPackage.PAPYRUS_DIAGRAM__IMPORTS:
+ return getImports();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ConfigurationPackage.PAPYRUS_DIAGRAM__CUSTOM_PALETTE:
+ setCustomPalette((String)newValue);
+ return;
+ case ConfigurationPackage.PAPYRUS_DIAGRAM__CUSTOM_STYLE:
+ setCustomStyle((String)newValue);
+ return;
+ case ConfigurationPackage.PAPYRUS_DIAGRAM__CHILD_RULES:
+ getChildRules().clear();
+ getChildRules().addAll((Collection<? extends ChildRule>)newValue);
+ return;
+ case ConfigurationPackage.PAPYRUS_DIAGRAM__PALETTE_RULES:
+ getPaletteRules().clear();
+ getPaletteRules().addAll((Collection<? extends PaletteRule>)newValue);
+ return;
+ case ConfigurationPackage.PAPYRUS_DIAGRAM__IMPORTS:
+ getImports().clear();
+ getImports().addAll((Collection<? extends ElementImport>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ConfigurationPackage.PAPYRUS_DIAGRAM__CUSTOM_PALETTE:
+ setCustomPalette(CUSTOM_PALETTE_EDEFAULT);
+ return;
+ case ConfigurationPackage.PAPYRUS_DIAGRAM__CUSTOM_STYLE:
+ setCustomStyle(CUSTOM_STYLE_EDEFAULT);
+ return;
+ case ConfigurationPackage.PAPYRUS_DIAGRAM__CHILD_RULES:
+ getChildRules().clear();
+ return;
+ case ConfigurationPackage.PAPYRUS_DIAGRAM__PALETTE_RULES:
+ getPaletteRules().clear();
+ return;
+ case ConfigurationPackage.PAPYRUS_DIAGRAM__IMPORTS:
+ getImports().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ConfigurationPackage.PAPYRUS_DIAGRAM__CUSTOM_PALETTE:
+ return CUSTOM_PALETTE_EDEFAULT == null ? customPalette != null : !CUSTOM_PALETTE_EDEFAULT.equals(customPalette);
+ case ConfigurationPackage.PAPYRUS_DIAGRAM__CUSTOM_STYLE:
+ return CUSTOM_STYLE_EDEFAULT == null ? customStyle != null : !CUSTOM_STYLE_EDEFAULT.equals(customStyle);
+ case ConfigurationPackage.PAPYRUS_DIAGRAM__CHILD_RULES:
+ return childRules != null && !childRules.isEmpty();
+ case ConfigurationPackage.PAPYRUS_DIAGRAM__PALETTE_RULES:
+ return paletteRules != null && !paletteRules.isEmpty();
+ case ConfigurationPackage.PAPYRUS_DIAGRAM__IMPORTS:
+ return imports != null && !imports.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (customPalette: ");
+ result.append(customPalette);
+ result.append(", customStyle: ");
+ result.append(customStyle);
+ result.append(')');
+ return result.toString();
+ }
+
+} //PapyrusDiagramImpl
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/PapyrusSyncTableImpl.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/PapyrusSyncTableImpl.java
new file mode 100755
index 00000000000..d6ff1bbd4b6
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/PapyrusSyncTableImpl.java
@@ -0,0 +1,50 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.configuration.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusSyncTable;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Papyrus Sync Table</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class PapyrusSyncTableImpl extends PapyrusViewImpl implements PapyrusSyncTable {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PapyrusSyncTableImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ConfigurationPackage.Literals.PAPYRUS_SYNC_TABLE;
+ }
+
+} //PapyrusSyncTableImpl
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/PapyrusTableImpl.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/PapyrusTableImpl.java
new file mode 100755
index 00000000000..5c8b68a7c4a
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/PapyrusTableImpl.java
@@ -0,0 +1,173 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.configuration.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusTable;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Papyrus Table</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.PapyrusTableImpl#getConfiguration <em>Configuration</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PapyrusTableImpl extends PapyrusViewImpl implements PapyrusTable {
+ /**
+ * The default value of the '{@link #getConfiguration() <em>Configuration</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getConfiguration()
+ * @generated
+ * @ordered
+ */
+ protected static final String CONFIGURATION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getConfiguration() <em>Configuration</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getConfiguration()
+ * @generated
+ * @ordered
+ */
+ protected String configuration = CONFIGURATION_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PapyrusTableImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ConfigurationPackage.Literals.PAPYRUS_TABLE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getConfiguration() {
+ return configuration;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setConfiguration(String newConfiguration) {
+ String oldConfiguration = configuration;
+ configuration = newConfiguration;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ConfigurationPackage.PAPYRUS_TABLE__CONFIGURATION, oldConfiguration, configuration));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ConfigurationPackage.PAPYRUS_TABLE__CONFIGURATION:
+ return getConfiguration();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ConfigurationPackage.PAPYRUS_TABLE__CONFIGURATION:
+ setConfiguration((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ConfigurationPackage.PAPYRUS_TABLE__CONFIGURATION:
+ setConfiguration(CONFIGURATION_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ConfigurationPackage.PAPYRUS_TABLE__CONFIGURATION:
+ return CONFIGURATION_EDEFAULT == null ? configuration != null : !CONFIGURATION_EDEFAULT.equals(configuration);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (configuration: ");
+ result.append(configuration);
+ result.append(')');
+ return result.toString();
+ }
+
+} //PapyrusTableImpl
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/PapyrusViewImpl.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/PapyrusViewImpl.java
new file mode 100755
index 00000000000..39b6dd9261d
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/PapyrusViewImpl.java
@@ -0,0 +1,442 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.configuration.impl;
+
+import java.util.Collection;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.papyrus.infra.viewpoints.configuration.Category;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ModelRule;
+import org.eclipse.papyrus.infra.viewpoints.configuration.OwningRule;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusView;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ModelKindImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Papyrus View</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.PapyrusViewImpl#getIcon <em>Icon</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.PapyrusViewImpl#getParent <em>Parent</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.PapyrusViewImpl#getProfiles <em>Profiles</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.PapyrusViewImpl#getModelRules <em>Model Rules</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.PapyrusViewImpl#getOwningRules <em>Owning Rules</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.PapyrusViewImpl#getImplementationID <em>Implementation ID</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.PapyrusViewImpl#getCategories <em>Categories</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PapyrusViewImpl extends ModelKindImpl implements PapyrusView {
+ /**
+ * The default value of the '{@link #getIcon() <em>Icon</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIcon()
+ * @generated
+ * @ordered
+ */
+ protected static final String ICON_EDEFAULT = null;
+ /**
+ * The cached value of the '{@link #getIcon() <em>Icon</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIcon()
+ * @generated
+ * @ordered
+ */
+ protected String icon = ICON_EDEFAULT;
+ /**
+ * The cached value of the '{@link #getParent() <em>Parent</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getParent()
+ * @generated
+ * @ordered
+ */
+ protected PapyrusView parent;
+ /**
+ * The cached value of the '{@link #getProfiles() <em>Profiles</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getProfiles()
+ * @generated
+ * @ordered
+ */
+ protected EList<EPackage> profiles;
+ /**
+ * The cached value of the '{@link #getModelRules() <em>Model Rules</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getModelRules()
+ * @generated
+ * @ordered
+ */
+ protected EList<ModelRule> modelRules;
+ /**
+ * The cached value of the '{@link #getOwningRules() <em>Owning Rules</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOwningRules()
+ * @generated
+ * @ordered
+ */
+ protected EList<OwningRule> owningRules;
+
+ /**
+ * The default value of the '{@link #getImplementationID() <em>Implementation ID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getImplementationID()
+ * @generated
+ * @ordered
+ */
+ protected static final String IMPLEMENTATION_ID_EDEFAULT = null;
+ /**
+ * The cached value of the '{@link #getImplementationID() <em>Implementation ID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getImplementationID()
+ * @generated
+ * @ordered
+ */
+ protected String implementationID = IMPLEMENTATION_ID_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getCategories() <em>Categories</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCategories()
+ * @generated
+ * @ordered
+ */
+ protected EList<Category> categories;
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PapyrusViewImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ConfigurationPackage.Literals.PAPYRUS_VIEW;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getIcon() {
+ return icon;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setIcon(String newIcon) {
+ String oldIcon = icon;
+ icon = newIcon;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ConfigurationPackage.PAPYRUS_VIEW__ICON, oldIcon, icon));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PapyrusView getParent() {
+ if (parent != null && parent.eIsProxy()) {
+ InternalEObject oldParent = (InternalEObject)parent;
+ parent = (PapyrusView)eResolveProxy(oldParent);
+ if (parent != oldParent) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, ConfigurationPackage.PAPYRUS_VIEW__PARENT, oldParent, parent));
+ }
+ }
+ return parent;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PapyrusView basicGetParent() {
+ return parent;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setParent(PapyrusView newParent) {
+ PapyrusView oldParent = parent;
+ parent = newParent;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ConfigurationPackage.PAPYRUS_VIEW__PARENT, oldParent, parent));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<EPackage> getProfiles() {
+ if (profiles == null) {
+ profiles = new EObjectResolvingEList<EPackage>(EPackage.class, this, ConfigurationPackage.PAPYRUS_VIEW__PROFILES);
+ }
+ return profiles;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<ModelRule> getModelRules() {
+ if (modelRules == null) {
+ modelRules = new EObjectContainmentEList<ModelRule>(ModelRule.class, this, ConfigurationPackage.PAPYRUS_VIEW__MODEL_RULES);
+ }
+ return modelRules;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<OwningRule> getOwningRules() {
+ if (owningRules == null) {
+ owningRules = new EObjectContainmentEList<OwningRule>(OwningRule.class, this, ConfigurationPackage.PAPYRUS_VIEW__OWNING_RULES);
+ }
+ return owningRules;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getImplementationID() {
+ return implementationID;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setImplementationID(String newImplementationID) {
+ String oldImplementationID = implementationID;
+ implementationID = newImplementationID;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ConfigurationPackage.PAPYRUS_VIEW__IMPLEMENTATION_ID, oldImplementationID, implementationID));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Category> getCategories() {
+ if (categories == null) {
+ categories = new EObjectResolvingEList<Category>(Category.class, this, ConfigurationPackage.PAPYRUS_VIEW__CATEGORIES);
+ }
+ return categories;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case ConfigurationPackage.PAPYRUS_VIEW__MODEL_RULES:
+ return ((InternalEList<?>)getModelRules()).basicRemove(otherEnd, msgs);
+ case ConfigurationPackage.PAPYRUS_VIEW__OWNING_RULES:
+ return ((InternalEList<?>)getOwningRules()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ConfigurationPackage.PAPYRUS_VIEW__ICON:
+ return getIcon();
+ case ConfigurationPackage.PAPYRUS_VIEW__PARENT:
+ if (resolve) return getParent();
+ return basicGetParent();
+ case ConfigurationPackage.PAPYRUS_VIEW__PROFILES:
+ return getProfiles();
+ case ConfigurationPackage.PAPYRUS_VIEW__MODEL_RULES:
+ return getModelRules();
+ case ConfigurationPackage.PAPYRUS_VIEW__OWNING_RULES:
+ return getOwningRules();
+ case ConfigurationPackage.PAPYRUS_VIEW__IMPLEMENTATION_ID:
+ return getImplementationID();
+ case ConfigurationPackage.PAPYRUS_VIEW__CATEGORIES:
+ return getCategories();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ConfigurationPackage.PAPYRUS_VIEW__ICON:
+ setIcon((String)newValue);
+ return;
+ case ConfigurationPackage.PAPYRUS_VIEW__PARENT:
+ setParent((PapyrusView)newValue);
+ return;
+ case ConfigurationPackage.PAPYRUS_VIEW__PROFILES:
+ getProfiles().clear();
+ getProfiles().addAll((Collection<? extends EPackage>)newValue);
+ return;
+ case ConfigurationPackage.PAPYRUS_VIEW__MODEL_RULES:
+ getModelRules().clear();
+ getModelRules().addAll((Collection<? extends ModelRule>)newValue);
+ return;
+ case ConfigurationPackage.PAPYRUS_VIEW__OWNING_RULES:
+ getOwningRules().clear();
+ getOwningRules().addAll((Collection<? extends OwningRule>)newValue);
+ return;
+ case ConfigurationPackage.PAPYRUS_VIEW__IMPLEMENTATION_ID:
+ setImplementationID((String)newValue);
+ return;
+ case ConfigurationPackage.PAPYRUS_VIEW__CATEGORIES:
+ getCategories().clear();
+ getCategories().addAll((Collection<? extends Category>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ConfigurationPackage.PAPYRUS_VIEW__ICON:
+ setIcon(ICON_EDEFAULT);
+ return;
+ case ConfigurationPackage.PAPYRUS_VIEW__PARENT:
+ setParent((PapyrusView)null);
+ return;
+ case ConfigurationPackage.PAPYRUS_VIEW__PROFILES:
+ getProfiles().clear();
+ return;
+ case ConfigurationPackage.PAPYRUS_VIEW__MODEL_RULES:
+ getModelRules().clear();
+ return;
+ case ConfigurationPackage.PAPYRUS_VIEW__OWNING_RULES:
+ getOwningRules().clear();
+ return;
+ case ConfigurationPackage.PAPYRUS_VIEW__IMPLEMENTATION_ID:
+ setImplementationID(IMPLEMENTATION_ID_EDEFAULT);
+ return;
+ case ConfigurationPackage.PAPYRUS_VIEW__CATEGORIES:
+ getCategories().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ConfigurationPackage.PAPYRUS_VIEW__ICON:
+ return ICON_EDEFAULT == null ? icon != null : !ICON_EDEFAULT.equals(icon);
+ case ConfigurationPackage.PAPYRUS_VIEW__PARENT:
+ return parent != null;
+ case ConfigurationPackage.PAPYRUS_VIEW__PROFILES:
+ return profiles != null && !profiles.isEmpty();
+ case ConfigurationPackage.PAPYRUS_VIEW__MODEL_RULES:
+ return modelRules != null && !modelRules.isEmpty();
+ case ConfigurationPackage.PAPYRUS_VIEW__OWNING_RULES:
+ return owningRules != null && !owningRules.isEmpty();
+ case ConfigurationPackage.PAPYRUS_VIEW__IMPLEMENTATION_ID:
+ return IMPLEMENTATION_ID_EDEFAULT == null ? implementationID != null : !IMPLEMENTATION_ID_EDEFAULT.equals(implementationID);
+ case ConfigurationPackage.PAPYRUS_VIEW__CATEGORIES:
+ return categories != null && !categories.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (icon: ");
+ result.append(icon);
+ result.append(", implementationID: ");
+ result.append(implementationID);
+ result.append(')');
+ return result.toString();
+ }
+
+} //PapyrusViewImpl
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/PapyrusViewpointImpl.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/PapyrusViewpointImpl.java
new file mode 100755
index 00000000000..dcdbe97229e
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/PapyrusViewpointImpl.java
@@ -0,0 +1,168 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.configuration.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusViewpoint;
+
+import org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureViewpointImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Papyrus Viewpoint</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.PapyrusViewpointImpl#getParent <em>Parent</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PapyrusViewpointImpl extends ArchitectureViewpointImpl implements PapyrusViewpoint {
+ /**
+ * The cached value of the '{@link #getParent() <em>Parent</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getParent()
+ * @generated
+ * @ordered
+ */
+ protected PapyrusViewpoint parent;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PapyrusViewpointImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ConfigurationPackage.Literals.PAPYRUS_VIEWPOINT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PapyrusViewpoint getParent() {
+ if (parent != null && parent.eIsProxy()) {
+ InternalEObject oldParent = (InternalEObject)parent;
+ parent = (PapyrusViewpoint)eResolveProxy(oldParent);
+ if (parent != oldParent) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, ConfigurationPackage.PAPYRUS_VIEWPOINT__PARENT, oldParent, parent));
+ }
+ }
+ return parent;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PapyrusViewpoint basicGetParent() {
+ return parent;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setParent(PapyrusViewpoint newParent) {
+ PapyrusViewpoint oldParent = parent;
+ parent = newParent;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ConfigurationPackage.PAPYRUS_VIEWPOINT__PARENT, oldParent, parent));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ConfigurationPackage.PAPYRUS_VIEWPOINT__PARENT:
+ if (resolve) return getParent();
+ return basicGetParent();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ConfigurationPackage.PAPYRUS_VIEWPOINT__PARENT:
+ setParent((PapyrusViewpoint)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ConfigurationPackage.PAPYRUS_VIEWPOINT__PARENT:
+ setParent((PapyrusViewpoint)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ConfigurationPackage.PAPYRUS_VIEWPOINT__PARENT:
+ return parent != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //PapyrusViewpointImpl
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/PathElementImpl.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/PathElementImpl.java
new file mode 100755
index 00000000000..20cf5683b4d
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/PathElementImpl.java
@@ -0,0 +1,255 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.configuration.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ChildRule;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ModelRule;
+import org.eclipse.papyrus.infra.viewpoints.configuration.OwningRule;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusView;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PathElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Path Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.PathElementImpl#getFeature <em>Feature</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.PathElementImpl#getOrigin <em>Origin</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.PathElementImpl#getTarget <em>Target</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PathElementImpl extends MinimalEObjectImpl.Container implements PathElement {
+ /**
+ * The cached value of the '{@link #getFeature() <em>Feature</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFeature()
+ * @generated
+ * @ordered
+ */
+ protected EReference feature;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PathElementImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ConfigurationPackage.Literals.PATH_ELEMENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getFeature() {
+ if (feature != null && feature.eIsProxy()) {
+ InternalEObject oldFeature = (InternalEObject)feature;
+ feature = (EReference)eResolveProxy(oldFeature);
+ if (feature != oldFeature) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, ConfigurationPackage.PATH_ELEMENT__FEATURE, oldFeature, feature));
+ }
+ }
+ return feature;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference basicGetFeature() {
+ return feature;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFeature(EReference newFeature) {
+ EReference oldFeature = feature;
+ feature = newFeature;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ConfigurationPackage.PATH_ELEMENT__FEATURE, oldFeature, feature));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getOrigin() {
+ EClass origin = basicGetOrigin();
+ return origin != null && origin.eIsProxy() ? (EClass)eResolveProxy((InternalEObject)origin) : origin;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ */
+ public EClass basicGetOrigin() {
+ if (this.eContainer() instanceof ChildRule)
+ return basicGetOriginChildRule();
+ return basicGetOriginModelRule();
+ }
+
+ private EClass basicGetOriginChildRule() {
+ ChildRule rule = (ChildRule) this.eContainer();
+ return basicGetOriginFrom(rule.getInsertionPath(), rule.getOrigin());
+ }
+
+ private EClass basicGetOriginModelRule() {
+ ModelRule rule = (ModelRule)this.eContainer();
+ PapyrusView view = (PapyrusView) rule.eContainer();
+ OwningRule or = (view.getOwningRules().size() >= 1) ? view.getOwningRules().get(0) : null;
+ if (or != null)
+ return basicGetOriginFrom(rule.getAutoSelectPath(), or.getElement());
+ return null;
+ }
+
+ private EClass basicGetOriginFrom(EList<PathElement> list, EClass from) {
+ EClass current = from;
+ int index = 0;
+ while ((current != null) && list.get(index) != this) {
+ EReference feature = list.get(index).getFeature();
+ if (!current.getEAllReferences().contains(feature))
+ return null;
+ current = feature.getEReferenceType();
+ index++;
+ }
+ return current;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTarget() {
+ EClass target = basicGetTarget();
+ return target != null && target.eIsProxy() ? (EClass)eResolveProxy((InternalEObject)target) : target;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ */
+ public EClass basicGetTarget() {
+ EReference feature = this.getFeature();
+ if (feature == null)
+ return null;
+ EClass origin = basicGetOrigin();
+ if (origin == null)
+ return null;
+ if (!origin.getEAllReferences().contains(feature))
+ return null;
+ return feature.getEReferenceType();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ConfigurationPackage.PATH_ELEMENT__FEATURE:
+ if (resolve) return getFeature();
+ return basicGetFeature();
+ case ConfigurationPackage.PATH_ELEMENT__ORIGIN:
+ if (resolve) return getOrigin();
+ return basicGetOrigin();
+ case ConfigurationPackage.PATH_ELEMENT__TARGET:
+ if (resolve) return getTarget();
+ return basicGetTarget();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ConfigurationPackage.PATH_ELEMENT__FEATURE:
+ setFeature((EReference)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ConfigurationPackage.PATH_ELEMENT__FEATURE:
+ setFeature((EReference)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ConfigurationPackage.PATH_ELEMENT__FEATURE:
+ return feature != null;
+ case ConfigurationPackage.PATH_ELEMENT__ORIGIN:
+ return basicGetOrigin() != null;
+ case ConfigurationPackage.PATH_ELEMENT__TARGET:
+ return basicGetTarget() != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //PathElementImpl
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/RuleImpl.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/RuleImpl.java
new file mode 100755
index 00000000000..f0e50106366
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/impl/RuleImpl.java
@@ -0,0 +1,174 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.configuration.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage;
+import org.eclipse.papyrus.infra.viewpoints.configuration.Rule;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Rule</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.configuration.impl.RuleImpl#isPermit <em>Permit</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class RuleImpl extends MinimalEObjectImpl.Container implements Rule {
+ /**
+ * The default value of the '{@link #isPermit() <em>Permit</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isPermit()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean PERMIT_EDEFAULT = true;
+
+ /**
+ * The cached value of the '{@link #isPermit() <em>Permit</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isPermit()
+ * @generated
+ * @ordered
+ */
+ protected boolean permit = PERMIT_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected RuleImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ConfigurationPackage.Literals.RULE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isPermit() {
+ return permit;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPermit(boolean newPermit) {
+ boolean oldPermit = permit;
+ permit = newPermit;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ConfigurationPackage.RULE__PERMIT, oldPermit, permit));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ConfigurationPackage.RULE__PERMIT:
+ return isPermit();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ConfigurationPackage.RULE__PERMIT:
+ setPermit((Boolean)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ConfigurationPackage.RULE__PERMIT:
+ setPermit(PERMIT_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ConfigurationPackage.RULE__PERMIT:
+ return permit != PERMIT_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (permit: ");
+ result.append(permit);
+ result.append(')');
+ return result.toString();
+ }
+
+} //RuleImpl
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/util/ConfigurationAdapterFactory.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/util/ConfigurationAdapterFactory.java
new file mode 100755
index 00000000000..b4a8bfdad47
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/util/ConfigurationAdapterFactory.java
@@ -0,0 +1,438 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.configuration.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.infra.viewpoints.configuration.*;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ADElement;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureFramework;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureViewpoint;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ModelKind;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage
+ * @generated
+ */
+public class ConfigurationAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static ConfigurationPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ConfigurationAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = ConfigurationPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ConfigurationSwitch<Adapter> modelSwitch =
+ new ConfigurationSwitch<Adapter>() {
+ @Override
+ public Adapter casePapyrusConfiguration(PapyrusConfiguration object) {
+ return createPapyrusConfigurationAdapter();
+ }
+ @Override
+ public Adapter casePapyrusViewpoint(PapyrusViewpoint object) {
+ return createPapyrusViewpointAdapter();
+ }
+ @Override
+ public Adapter casePapyrusView(PapyrusView object) {
+ return createPapyrusViewAdapter();
+ }
+ @Override
+ public Adapter casePapyrusDiagram(PapyrusDiagram object) {
+ return createPapyrusDiagramAdapter();
+ }
+ @Override
+ public Adapter casePapyrusSyncTable(PapyrusSyncTable object) {
+ return createPapyrusSyncTableAdapter();
+ }
+ @Override
+ public Adapter casePapyrusTable(PapyrusTable object) {
+ return createPapyrusTableAdapter();
+ }
+ @Override
+ public Adapter caseRule(Rule object) {
+ return createRuleAdapter();
+ }
+ @Override
+ public Adapter caseModelRule(ModelRule object) {
+ return createModelRuleAdapter();
+ }
+ @Override
+ public Adapter caseOwningRule(OwningRule object) {
+ return createOwningRuleAdapter();
+ }
+ @Override
+ public Adapter caseChildRule(ChildRule object) {
+ return createChildRuleAdapter();
+ }
+ @Override
+ public Adapter casePaletteRule(PaletteRule object) {
+ return createPaletteRuleAdapter();
+ }
+ @Override
+ public Adapter casePathElement(PathElement object) {
+ return createPathElementAdapter();
+ }
+ @Override
+ public Adapter caseCategory(Category object) {
+ return createCategoryAdapter();
+ }
+ @Override
+ public Adapter caseElementImport(ElementImport object) {
+ return createElementImportAdapter();
+ }
+ @Override
+ public Adapter caseArchitectureFramework(ArchitectureFramework object) {
+ return createArchitectureFrameworkAdapter();
+ }
+ @Override
+ public Adapter caseADElement(ADElement object) {
+ return createADElementAdapter();
+ }
+ @Override
+ public Adapter caseArchitectureViewpoint(ArchitectureViewpoint object) {
+ return createArchitectureViewpointAdapter();
+ }
+ @Override
+ public Adapter caseModelKind(ModelKind object) {
+ return createModelKindAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusConfiguration <em>Papyrus Configuration</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusConfiguration
+ * @generated
+ */
+ public Adapter createPapyrusConfigurationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusViewpoint <em>Papyrus Viewpoint</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusViewpoint
+ * @generated
+ */
+ public Adapter createPapyrusViewpointAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusView <em>Papyrus View</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusView
+ * @generated
+ */
+ public Adapter createPapyrusViewAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusDiagram <em>Papyrus Diagram</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusDiagram
+ * @generated
+ */
+ public Adapter createPapyrusDiagramAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusSyncTable <em>Papyrus Sync Table</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusSyncTable
+ * @generated
+ */
+ public Adapter createPapyrusSyncTableAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusTable <em>Papyrus Table</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusTable
+ * @generated
+ */
+ public Adapter createPapyrusTableAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.viewpoints.configuration.ModelRule <em>Model Rule</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ModelRule
+ * @generated
+ */
+ public Adapter createModelRuleAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.viewpoints.configuration.OwningRule <em>Owning Rule</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.OwningRule
+ * @generated
+ */
+ public Adapter createOwningRuleAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.viewpoints.configuration.ChildRule <em>Child Rule</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ChildRule
+ * @generated
+ */
+ public Adapter createChildRuleAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.viewpoints.configuration.PaletteRule <em>Palette Rule</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.PaletteRule
+ * @generated
+ */
+ public Adapter createPaletteRuleAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.viewpoints.configuration.Rule <em>Rule</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.Rule
+ * @generated
+ */
+ public Adapter createRuleAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.viewpoints.configuration.PathElement <em>Path Element</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.PathElement
+ * @generated
+ */
+ public Adapter createPathElementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.viewpoints.configuration.Category <em>Category</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.Category
+ * @generated
+ */
+ public Adapter createCategoryAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.viewpoints.configuration.ElementImport <em>Element Import</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ElementImport
+ * @generated
+ */
+ public Adapter createElementImportAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureFramework <em>Architecture Framework</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureFramework
+ * @generated
+ */
+ public Adapter createArchitectureFrameworkAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ADElement <em>AD Element</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ADElement
+ * @generated
+ */
+ public Adapter createADElementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureViewpoint <em>Architecture Viewpoint</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureViewpoint
+ * @generated
+ */
+ public Adapter createArchitectureViewpointAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ModelKind <em>Model Kind</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ModelKind
+ * @generated
+ */
+ public Adapter createModelKindAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //ConfigurationAdapterFactory
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/util/ConfigurationSwitch.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/util/ConfigurationSwitch.java
new file mode 100755
index 00000000000..4b8fceb879a
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.configuration/src/org/eclipse/papyrus/infra/viewpoints/configuration/util/ConfigurationSwitch.java
@@ -0,0 +1,474 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.configuration.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.util.Switch;
+import org.eclipse.papyrus.infra.viewpoints.configuration.*;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ADElement;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureFramework;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureViewpoint;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ModelKind;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage
+ * @generated
+ */
+public class ConfigurationSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static ConfigurationPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ConfigurationSwitch() {
+ if (modelPackage == null) {
+ modelPackage = ConfigurationPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @parameter ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case ConfigurationPackage.PAPYRUS_CONFIGURATION: {
+ PapyrusConfiguration papyrusConfiguration = (PapyrusConfiguration)theEObject;
+ T result = casePapyrusConfiguration(papyrusConfiguration);
+ if (result == null) result = caseArchitectureFramework(papyrusConfiguration);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ConfigurationPackage.PAPYRUS_VIEWPOINT: {
+ PapyrusViewpoint papyrusViewpoint = (PapyrusViewpoint)theEObject;
+ T result = casePapyrusViewpoint(papyrusViewpoint);
+ if (result == null) result = caseArchitectureViewpoint(papyrusViewpoint);
+ if (result == null) result = caseADElement(papyrusViewpoint);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ConfigurationPackage.PAPYRUS_VIEW: {
+ PapyrusView papyrusView = (PapyrusView)theEObject;
+ T result = casePapyrusView(papyrusView);
+ if (result == null) result = caseModelKind(papyrusView);
+ if (result == null) result = caseADElement(papyrusView);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ConfigurationPackage.PAPYRUS_DIAGRAM: {
+ PapyrusDiagram papyrusDiagram = (PapyrusDiagram)theEObject;
+ T result = casePapyrusDiagram(papyrusDiagram);
+ if (result == null) result = casePapyrusView(papyrusDiagram);
+ if (result == null) result = caseModelKind(papyrusDiagram);
+ if (result == null) result = caseADElement(papyrusDiagram);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ConfigurationPackage.PAPYRUS_SYNC_TABLE: {
+ PapyrusSyncTable papyrusSyncTable = (PapyrusSyncTable)theEObject;
+ T result = casePapyrusSyncTable(papyrusSyncTable);
+ if (result == null) result = casePapyrusView(papyrusSyncTable);
+ if (result == null) result = caseModelKind(papyrusSyncTable);
+ if (result == null) result = caseADElement(papyrusSyncTable);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ConfigurationPackage.PAPYRUS_TABLE: {
+ PapyrusTable papyrusTable = (PapyrusTable)theEObject;
+ T result = casePapyrusTable(papyrusTable);
+ if (result == null) result = casePapyrusView(papyrusTable);
+ if (result == null) result = caseModelKind(papyrusTable);
+ if (result == null) result = caseADElement(papyrusTable);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ConfigurationPackage.RULE: {
+ Rule rule = (Rule)theEObject;
+ T result = caseRule(rule);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ConfigurationPackage.MODEL_RULE: {
+ ModelRule modelRule = (ModelRule)theEObject;
+ T result = caseModelRule(modelRule);
+ if (result == null) result = caseRule(modelRule);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ConfigurationPackage.OWNING_RULE: {
+ OwningRule owningRule = (OwningRule)theEObject;
+ T result = caseOwningRule(owningRule);
+ if (result == null) result = caseRule(owningRule);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ConfigurationPackage.CHILD_RULE: {
+ ChildRule childRule = (ChildRule)theEObject;
+ T result = caseChildRule(childRule);
+ if (result == null) result = caseRule(childRule);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ConfigurationPackage.PALETTE_RULE: {
+ PaletteRule paletteRule = (PaletteRule)theEObject;
+ T result = casePaletteRule(paletteRule);
+ if (result == null) result = caseRule(paletteRule);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ConfigurationPackage.PATH_ELEMENT: {
+ PathElement pathElement = (PathElement)theEObject;
+ T result = casePathElement(pathElement);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ConfigurationPackage.CATEGORY: {
+ Category category = (Category)theEObject;
+ T result = caseCategory(category);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ConfigurationPackage.ELEMENT_IMPORT: {
+ ElementImport elementImport = (ElementImport)theEObject;
+ T result = caseElementImport(elementImport);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Papyrus Configuration</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Papyrus Configuration</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePapyrusConfiguration(PapyrusConfiguration object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Papyrus Viewpoint</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Papyrus Viewpoint</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePapyrusViewpoint(PapyrusViewpoint object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Papyrus View</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Papyrus View</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePapyrusView(PapyrusView object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Papyrus Diagram</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Papyrus Diagram</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePapyrusDiagram(PapyrusDiagram object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Papyrus Sync Table</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Papyrus Sync Table</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePapyrusSyncTable(PapyrusSyncTable object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Papyrus Table</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Papyrus Table</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePapyrusTable(PapyrusTable object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Model Rule</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Model Rule</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseModelRule(ModelRule object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Owning Rule</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Owning Rule</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseOwningRule(OwningRule object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Child Rule</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Child Rule</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseChildRule(ChildRule object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Palette Rule</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Palette Rule</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePaletteRule(PaletteRule object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Rule</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Rule</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseRule(Rule object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Path Element</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Path Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePathElement(PathElement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Category</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Category</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCategory(Category object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Element Import</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Element Import</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseElementImport(ElementImport object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Architecture Framework</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Architecture Framework</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseArchitectureFramework(ArchitectureFramework object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>AD Element</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>AD Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseADElement(ADElement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Architecture Viewpoint</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Architecture Viewpoint</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseArchitectureViewpoint(ArchitectureViewpoint object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Model Kind</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Model Kind</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseModelKind(ModelKind object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //ConfigurationSwitch
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/.classpath b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/.classpath
new file mode 100755
index 00000000000..f6e5811e42c
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/.classpath
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/.project b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/.project
new file mode 100755
index 00000000000..149c81a950e
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.infra.viewpoints.doc</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/.settings/org.eclipse.core.resources.prefs b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/.settings/org.eclipse.core.resources.prefs
new file mode 100755
index 00000000000..bcaa1b4d07e
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,3 @@
+eclipse.preferences.version=1
+encoding//resources/viewpoints-toc.xml=utf-8
+encoding//resources/viewpoints.html=utf-8
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/.settings/org.eclipse.jdt.core.prefs b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/.settings/org.eclipse.jdt.core.prefs
new file mode 100755
index 00000000000..44217f8c068
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/META-INF/MANIFEST.MF b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/META-INF/MANIFEST.MF
new file mode 100755
index 00000000000..e3d951c84cf
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/META-INF/MANIFEST.MF
@@ -0,0 +1,8 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.papyrus.infra.viewpoints.doc;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-Vendor: %providerName
+Require-Bundle: org.eclipse.help
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/about.html b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/about.html
new file mode 100755
index 00000000000..dd02e0be168
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>December 2, 2009</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/build.properties b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/build.properties
new file mode 100755
index 00000000000..655978a2bc6
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/build.properties
@@ -0,0 +1,6 @@
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ about.html,\
+ plugin.properties,\
+ resources/
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/plugin.properties b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/plugin.properties
new file mode 100755
index 00000000000..1ffd68f5ccb
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/plugin.properties
@@ -0,0 +1,16 @@
+##########################################################################################
+# Copyright (c) 2013 CEA LIST.
+#
+#
+# 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:
+# Laurent Wouters (CEA LIST) laurent.wouters@cea.fr - Initial API and implementation
+#
+########################################################################################
+
+pluginName = Papyrus Viewpoints Documentation (Incubation)
+providerName = Eclipse Modeling Project
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/plugin.xml b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/plugin.xml
new file mode 100755
index 00000000000..2fba0cfd74f
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/plugin.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+ point="org.eclipse.help.toc">
+ <toc
+ file="resources/viewpoints-toc.xml"
+ primary="false">
+ </toc>
+ </extension>
+
+</plugin>
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/resources/captures/config_sample.png b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/resources/captures/config_sample.png
new file mode 100755
index 00000000000..bb9214c7737
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/resources/captures/config_sample.png
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/resources/captures/menu_filtered.png b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/resources/captures/menu_filtered.png
new file mode 100755
index 00000000000..b0ff70d7be2
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/resources/captures/menu_filtered.png
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/resources/captures/menu_normal.png b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/resources/captures/menu_normal.png
new file mode 100755
index 00000000000..6a2ab29f149
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/resources/captures/menu_normal.png
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/resources/captures/preferences.png b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/resources/captures/preferences.png
new file mode 100755
index 00000000000..a37393eb942
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/resources/captures/preferences.png
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/resources/captures/properties.png b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/resources/captures/properties.png
new file mode 100755
index 00000000000..1912f7f2f9e
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/resources/captures/properties.png
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/resources/viewpoints-toc.xml b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/resources/viewpoints-toc.xml
new file mode 100755
index 00000000000..ae66f735f36
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/resources/viewpoints-toc.xml
@@ -0,0 +1,28 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<toc label="viewpoints" link_to="../org.eclipse.papyrus.infra.doc/toc.xml#PapyrusDocUser" topic="resources/viewpoints.html">
+ <topic href="resources/viewpoints.html" label="Viewpoints in Papyrus">
+ <topic href="resources/viewpoints.html#Introduction" label="Introduction"></topic>
+ <topic href="resources/viewpoints.html#Impacts_of_Viewpoints_in_the_Papyrus_Interface" label="Impacts of Viewpoints in the Papyrus Interface">
+ <topic href="resources/viewpoints.html#Contextual_Menus" label="Contextual Menus"></topic>
+ <topic href="resources/viewpoints.html#Toolbar_Elements" label="Toolbar Elements"></topic>
+ <topic href="resources/viewpoints.html#Diagram_Properties" label="Diagram Properties"></topic>
+ </topic>
+ <topic href="resources/viewpoints.html#Changing_the_Applied_Viewpoint" label="Changing the Applied Viewpoint">
+ <topic href="resources/viewpoints.html#Configuration_Kinds" label="Configuration Kinds">
+ <topic href="resources/viewpoints.html#Built-in_Configurations" label="Built-in Configurations"></topic>
+ <topic href="resources/viewpoints.html#Extension_Point-Defined_Configuration" label="Extension Point-Defined Configuration"></topic>
+ <topic href="resources/viewpoints.html#Custom_Configuration" label="Custom Configuration"></topic>
+ </topic>
+ <topic href="resources/viewpoints.html#Stakeholder_and_Viewpoint_Selection" label="Stakeholder and Viewpoint Selection"></topic>
+ </topic>
+ <topic href="resources/viewpoints.html#Defining_New_Viewpoints" label="Defining New Viewpoints">
+ <topic href="resources/viewpoints.html#Available_Concepts" label="Available Concepts"></topic>
+ <topic href="resources/viewpoints.html#Building_a_Configuration" label="Building a Configuration">
+ <topic href="resources/viewpoints.html#Configuration_element" label="Configuration element"></topic>
+ <topic href="resources/viewpoints.html#Stakeholders_and_Viewpoints" label="Stakeholders and Viewpoints"></topic>
+ <topic href="resources/viewpoints.html#Diagram_element" label="Diagram element"></topic>
+ <topic href="resources/viewpoints.html#Viewpoint_Enforcement_Principles" label="Viewpoint Enforcement Principles"></topic>
+ </topic>
+ </topic>
+ </topic>
+</toc>
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/resources/viewpoints.html b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/resources/viewpoints.html
new file mode 100755
index 00000000000..dacce45f8f6
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/resources/viewpoints.html
@@ -0,0 +1,34 @@
+<?xml version='1.0' encoding='utf-8' ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/></head><body><h1 id="Viewpoints_in_Papyrus">Viewpoints in Papyrus</h1><h2 id="Introduction">Introduction</h2><p>Viewpoints in Papyrus enables the specialization of the user experiences by constraining what can be seen and interacted with in models through views.
+The most obvious ways to look at and interact with a model is through diagrams; and viewpoints enables the specification of constraints upon them as well as their specialization.
+Papyrus also define additional views, including textual ones.</p><h2 id="Impacts_of_Viewpoints_in_the_Papyrus_Interface">Impacts of Viewpoints in the Papyrus Interface</h2><p>The enforcement of a particular viewpoint will have noticeable consequences on the user interface of Papyrus, i.e. what a user will be able to see and do.
+Viewpoints also have impacts on the edition experience of the model themselves.</p><h3 id="Contextual_Menus">Contextual Menus</h3><p>The definition a viewpoints specify which views and diagrams can be applied to specified model elements.
+A consequence is that the Papyrus tool bar as well as the contextual menus are aware of the currently enforced viewpoint and only make available actions that are in conformance with the viewpoint.
+For example, in the two captures hereafter the content of the same menu for the creation of a new diagram depends on the enforced viewpoint.</p><table><tr><td><img border="0" src="captures/menu_normal.png"/></td><td><img border="0" src="captures/menu_filtered.png"/></td></tr></table><h3 id="Toolbar_Elements">Toolbar Elements</h3><p>The toolbar elements for the creation of new diagrams are also adapted in the same way as the contextual menus to reflect the currently enforced viewpoint.
+The elements that appeat in the contextual menus should also appear in the toolbar.</p><h3 id="Diagram_Properties">Diagram Properties</h3><p>Papyrus views and diagrams have a set of properties related to the management of viewpoints.
+They are visible in the <b>Properties</b> view of the diagrams.</p><p><img border="0" src="captures/properties.png"/></p><p>In the image above the selected diagram have two properties related to the management of viewpoints:</p><ul><li><b>View Type</b>: This property shows the diagram's type as defined in the viewpoints' configuration. In the example above, it is a <i>UML Activity Diagram</i>, part of the <i>Default Papyrus Viewpoint</i> configuration.</li><li><b>Owner</b>: This property shows the current owner of the diagram, i.e. the model element which the diagram is attached to. In the example above, the diagram is within the <i>Diagrams</i> package, meaning this package owns the diagram.</li><li><b>Root element</b>: This property shows the model element that is visualized through the diagram. In the example above, the top element visualized in the selected diagram is the UML activity named <i>Activity1</i>. It is possible to retarget a diagram, i.e. change its root element. The user will be prompted to select a model element that fits the constraints that apply for this type of diagram.</li></ul><h2 id="Changing_the_Applied_Viewpoint">Changing the Applied Viewpoint</h2><p>The Papyrus viewpoints can be configured in a preference panel accessible along the other Papyrus preferences under the name <b>Viewpoints Configuration</b>.
+The panel looks like the following:</p><p><img border="0" src="captures/preferences.png"/></p><h3 id="Configuration_Kinds">Configuration Kinds</h3><p>The first preference element is the selection of the kind of configuration to apply to the user's environment.
+In the above capture, the radio buttons are used to determine which kind of configuration to use.
+Papyrus comes with two built-in configurations.
+It is nevertheless possible to define new configurations and viewpoints, and select them in this position.</p><h4 id="Built-in_Configurations">Built-in Configurations</h4><p>The built-in configurations are provided for convenience and have the following properties:</p><ul><li><i>Any number of diagrams per model element</i> is a configuration with a viewpoint that allow any kind of view and diagram and does not restrain the number of diagrams that can be created for each model element.</li><li><i>At most one diagram per model element</i> is a configuration with a viewpoint that allow any kind of view and diagram but limit the number of diagrams that can be created for each model element at one.</li></ul><h4 id="Extension_Point-Defined_Configuration">Extension Point-Defined Configuration</h4><p>It is possible to deploy custom viewpoints configuration through an Eclipse plugin and its contribution to an extension point.
+The identifier of the extension point to use is <i>org.eclipse.papyrus.infra.viewpoints.policy.custom</i> and is defined in the <i>org.eclipse.papyrus.infra.viewpoints.policy</i> plugin.
+Each extension can contribute a viewpoints configuration and give it a priority (0 is lowest).
+The setting of the contributed configuration is achieved by giving the path to the configuration file.
+The path can be relative to the contributing plugin's root, or be an absolute URI in the form of <i>platform:/plugin/&lt;pluginID&gt;/&lt;path&gt;</i>.
+If no contribution is made and this option is selected, the builtin configuration named <i>Any number of diagrams per model element</i> will be used as a fallback.</p><h4 id="Custom_Configuration">Custom Configuration</h4><p>To select a custom configuration, choose the <i>Custom</i> option.
+This will activate the corresponding preferences fields:</p><ul><li><i>Access scheme</i> lets the user select how the custom configuration should be looked for. The possible options are:<ul><li><i>Absolute path</i> means that the configuration will be looked for on the host's file system.</li><li><i>Workspace file</i> means that the configuration file will be looked for as a resource in the workspace.</li><li><i>Embedded in a plugin</i> means that the configuration file will be looked for as a resource in a loaded Eclipse plugin.</li></ul></li></ul><ul><li><i>Path</i> lets the user select the configuration file based on the selected scheme:<ul><li>Using the scheme <i>Absolute path</i> the file is selected using a simple file selection dialog.</li><li>Using the scheme <i>Workspace file</i> the file is selected using a workspace resource selection dialog.</li><li>Using the scheme <i>Embedded in a plugin</i> the file is selected using a plugin content selection dialog.</li></ul></li></ul><h3 id="Stakeholder_and_Viewpoint_Selection">Stakeholder and Viewpoint Selection</h3><p>Once a configuration is selected, the use can select one of the viewpoint defined within it.
+This is achieved through the two dropdown boxes:</p><ul><li><i>Stakeholder</i> is used to select the user's archetype</li><li><i>Viewpoint</i> is used to select the viewpoint</li></ul><h2 id="Defining_New_Viewpoints">Defining New Viewpoints</h2><p>Papyrus supports the definition of new viewpoints that can subsequently used by selecting them in the Papyrus Viewpoints preferences panel.
+A configuration file is simply an Ecore model that can be edited with the provided Viewpoints configuration editor in Papyrus.</p><h3 id="Available_Concepts">Available Concepts</h3><p>This subsection summarizes the different concepts that are leveraged for the definition of viewpoints in Papyrus.
+It is important to note that these concepts rely on and extend the ISO 42010 standard for viewpoints.</p><ul><li>A <i>configuration</i> is a specification of a set of <i>viewpoints</i> and <i>stakeholders</i>. A <i>configuration</i> is typically stored in a .configuration file and has to be selected in the preference window (Window/Preferences/Papyrus/Viewpoints Configuration).</li><li>The concept of <i>stakeholder</i> (see ISO 42010) in Papyrus represents a user archetype that pertains in the construction and/or review of a model. A <i>stakeholder</i> is associated to a set of <i>viewpoints</i> defining how he/she can see a model.</li><li>The concept of <i>viewpoint</i> (see ISO 42010) in Papyrus represents a set of constrains about what can be seen in a model. A Papyrus <i>viewpoint</i> mainly defines what are the accessible <i>diagrams</i> and the particular constraints to be applied on each of them.</li><li>A Papyrus <i>diagram</i> is a specialized view on a model in the form of a visual language. It is supported by an implementation artifact, i.e. the actual code that implements the diagram. Moreover, it can be constrained using <i>rules</i>.</li><li>A <i>model rule</i> specifies if a model element can be represented through a <i>diagram</i>, i.e. whether it can be selected as the root element of a <i>diagram</i>.</li><li>An <i>owning rule</i> specifies whether a model element is allowed to own a <i>diagram</i>.</li><li><i>Child rules</i> specify whether a given model element can be added to the model through a <i>diagram</i>.</li><li><i>Palette rules</i> specify the palette elements that are visible for a <i>diagram</i>.</li></ul><h3 id="Building_a_Configuration">Building a Configuration</h3><p>The first step is to create the configuration file.
+Papyrus comes with a wizard for this purpose:</p><ul><li>In the contextual menu of a project, or in the Eclipse <b>File'' menu, select '''New</b>, <b>Other ...</b>.</li><li>The wizard is called <b>Viewpoints configuration</b> and is located in the <b>Papyrus</b> category.</li></ul><h4 id="Configuration_element">Configuration element</h4><p>Once the configuration file is created, it should be automatically opened with the Papyrus viewpoints configuration editor.
+The top element is the <i>configuration</i>.
+It has two properties:</p><ul><li><i>Default Stakeholder</i>, which should be used to select the default stakeholder for this configuration (once one has been created).</li><li><i>Metamodel</i>, which should be used to select the metamodel on which the viewpoint will apply. The property field proposes a list of the loaded metamodels identified by their URI. Usually, the UML metamodel (<a href="http://www.eclipse.org/uml2/4.0.0/UML/">http://www.eclipse.org/uml2/4.0.0/UML/</a>) should be used.</li></ul><h4 id="Stakeholders_and_Viewpoints">Stakeholders and Viewpoints</h4><p>It is then possible to add new <i>Viewpoints</i> and <i>Stakeholders</i> to the configuration by the conxtual menu <b>New Child</b> on the configuration element.
+A <i>stakeholder</i> has two properties, <i>name</i>' and <i>viewpoints</i>. The <i>viewpoints</i> properties must be filled with references to the appropriate viewpoints for the <i>stakeholder</i>.
+A <i>viewpoint</i> also has two properties, <i>name</i> and <i>parent</i>. The <i>parent</i> property is used to specify that a <i>viewpoint</i> inherits from another one.</p><h4 id="Diagram_element">Diagram element</h4><p>Once a viewpoint has been created, it is possible to add to it <i>diagrams</i> using the <b>New Child</b> contextual menu.
+A <i>diagram</i> will define a specialized view on a model, based on the implementation in Papyrus.
+For this purpose, the <i>diagram</i> elements have the following properties:</p><ul><li><i>name</i>, which specifies a descriptor for the diagram</li><li><i>parent</i>, which enables the declaration of an inheritance relationship with another diagram</li><li><i>implementation ID</i>, which is the unique identifier of the software component in papyrus that will effectively implements the diagram</li><li><i>profiles</i>, which is the set of profiles that need to be applied for this diagram. The profiles can be selected through their metamodel identified by their URI. This implies that the profiles must be loaded at this point.</li></ul><p>The list of recognized implementation IDs is as follow:</p><table border="solid 1px grey"><tr><th>Implementation ID</th><th>Description</th></tr><tr><td><b>PapyrusUMLActivityDiagram</b></td><td>UML Activity Diagram</td></tr><tr><td><b>PapyrusUMLClassDiagram</b></td><td>UML Class Diagram</td></tr><tr><td><b>PapyrusUMLCommunicationDiagram</b></td><td>UML Communication Diagram</td></tr><tr><td><b>PapyrusUMLComponentDiagram</b></td><td>UML Component Diagram</td></tr><tr><td><b>CompositeStructure</b></td><td>UML Composite Diagram</td></tr><tr><td><b>PapyrusUMLDeploymentDiagram</b></td><td>UML Deployment Diagram</td></tr><tr><td><b>PapyrusUMLProfileDiagram</b></td><td>UML Profile Diagram</td></tr><tr><td><b>PapyrusUMLSequenceDiagram</b></td><td>UML Sequence Diagram</td></tr><tr><td><b>PapyrusUMLStateMachineDiagram</b></td><td>UML State Machine Diagram</td></tr><tr><td><b>PapyrusUMLTimingDiagram</b></td><td>UML Timing Diagram</td></tr><tr><td><b>UseCase</b></td><td>UML Use Case Diagram</td></tr><tr><td><b>PapyrusUMLInteractionOverviewDiagram</b></td><td>UML Interaction Overview Diagram</td></tr><tr><td><b>BlockDefinition</b></td><td>SysML Block Definition Diagram</td></tr><tr><td><b>InternalBlock</b></td><td>SysML Internal Block Diagram</td></tr><tr><td><b>Parametric</b></td><td>SysML Parametric Diagram</td></tr><tr><td><b>RequirementDiagram</b></td><td>SysML Requirements Diagram</td></tr></table><p>Once a diagram has been created it is possible to constraint it using rules.
+There are four kinds of rules:</p><ul><li><i>Model rules</i> constrain the type of the (root) model elements that can be visualized through this view.</li><li><i>Owning rules</i> constrain the type of the model elements that can own the diagram itself.</li><li><i>Child rules</i> constrain the type of the model elements that can be dropped within this diagram.</li><li><i>Palette rules</i> constrain the display of the diagram's palette elements.</li></ul><p>Each rule has a <i>permit</i> property that specify whether the rule authorizes or forbids the action it represents.
+Otherwise, the properties of the rules are as follow:</p><ul><li><i>Model rules</i><ul><li><i>element</i> represents the type of the model elements to apply the rule on.</li><li><i>multiplicity</i> represents the maximum number of this kind of diagram that can be created for the referenced model element. -1 represents an unbounded number.</li><li><i>stereotypes</i> represents the set of stereotypes that must be applied in the model element for the rule to match. The stereotypes can be picked from the classifiers of the <i>profiles</i> defined in the parent diagram.</li></ul></li><li><i>Owning rules</i><ul><li><i>element</i> represents the type of the model elements to apply the rule on.</li><li><i>multiplicity</i> represents the maximum number of this kind of diagram that can be created for the referenced model element. -1 represents an unbounded number.</li><li><i>stereotypes</i> represents the set of stereotypes that must be applied in the model element for the rule to match. The stereotypes can be picked from the classifiers of the <i>profiles</i> defined in the parent diagram.</li></ul></li><li><i>Child rules</i><ul><li><i>element</i> represents the type of the model elements begin dropped.</li><li><i>stereotypes</i> represents the set of stereotypes that must be applied in the model element for the rule to match. The stereotypes can be picked from the classifiers of the <i>profiles</i> defined in the parent diagram.</li><li><i>origin</i> represents the type of the model elements that are the target of the drop. It is usually one of the type defined in the <i>model rules</i>.</li><li>Additionally, <i>child rules</i> can be completed with children called <i>path elements</i> using the <b>New Child</b> contextual menu. <i>Path elements</i> defines a path of properties that must be used from the <i>origin</i> to insert the new <i>element</i> in the model.</li></ul></li><li><i>Palette rules</i><ul><li><i>element</i> represents a pattern to match for the identifier of a palette element.</li></ul></li></ul><p>As an example, it is possible to define a diagram of the inner classes of classes as follow:</p><p><img border="0" src="captures/config_sample.png"/></p><p>In this example, the sole <i>model rule</i> defines that this kind of diagram can only be applied on <b>Class</b>.
+The <i>owning rules</i> define that the diagrams can be owned only by <b>Class</b> and <b>Package</b> elements.
+Then two <i>child rules</i> are used to define that it is only possible to add new <b>Classifier</b> and <b>Comment</b> elements thorugh this diagram.
+The first <i>child rule</i> specifies that the <b>Classifier</b> elements should be added to the model with the <b>nestedClassifier</b> property of the root <b>Class</b> element.
+In the same way, the second one specifies that the <b>Comment</b> elements should be added to the model with the <b>ownedComment</b> property of the root <b>Class</b> element.</p><h4 id="Viewpoint_Enforcement_Principles">Viewpoint Enforcement Principles</h4><p>When enforcing a viewpoint, the following principles are used when authorizing, or denying user actions:</p><ul><li>If the selected viewpoint does not enable to decide for the action at hand (no mathcing diagram), the parent viewpoints are recursively considered.</li><li>If a diagram is matched, but the defined rules do not enable to decide for the action at hand, then the parent diagrams are recursively considered.</li><li>The rules are considered in the order of their definition in the viewpoints configuration editor.</li><li>The first rule to match the condition (e.g. type of the considered model element) is used to decide upon the user action. Subsequent rules are not considered. Parent diagrams/viewpoints are also not considered.</li></ul></body></html> \ No newline at end of file
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/resources/viewpoints.mediawiki b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/resources/viewpoints.mediawiki
new file mode 100755
index 00000000000..ed0d4705d75
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.doc/resources/viewpoints.mediawiki
@@ -0,0 +1,240 @@
+<!--
+ Copyright (c) 2013 CEA LIST.
+ 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:
+ Laurent Wouters (CEA LIST) laurent.wouters@cea.fr - Initial API and implementation
+-->
+
+=Viewpoints in Papyrus=
+
+==Introduction==
+Viewpoints in Papyrus enables the specialization of the user experiences by constraining what can be seen and interacted with in models through views.
+The most obvious ways to look at and interact with a model is through diagrams; and viewpoints enables the specification of constraints upon them as well as their specialization.
+Papyrus also define additional views, including textual ones.
+
+
+
+
+==Impacts of Viewpoints in the Papyrus Interface==
+The enforcement of a particular viewpoint will have noticeable consequences on the user interface of Papyrus, i.e. what a user will be able to see and do.
+Viewpoints also have impacts on the edition experience of the model themselves.
+
+===Contextual Menus===
+The definition a viewpoints specify which views and diagrams can be applied to specified model elements.
+A consequence is that the Papyrus tool bar as well as the contextual menus are aware of the currently enforced viewpoint and only make available actions that are in conformance with the viewpoint.
+For example, in the two captures hereafter the content of the same menu for the creation of a new diagram depends on the enforced viewpoint.
+{|
+| [[image:captures/menu_normal.png]]
+| [[image:captures/menu_filtered.png]]
+|}
+
+===Toolbar Elements===
+The toolbar elements for the creation of new diagrams are also adapted in the same way as the contextual menus to reflect the currently enforced viewpoint.
+The elements that appeat in the contextual menus should also appear in the toolbar.
+
+===Diagram Properties===
+Papyrus views and diagrams have a set of properties related to the management of viewpoints.
+They are visible in the '''Properties''' view of the diagrams.
+
+[[image:captures/properties.png]]
+
+In the image above the selected diagram have two properties related to the management of viewpoints:
+* '''View Type''': This property shows the diagram's type as defined in the viewpoints' configuration. In the example above, it is a ''UML Activity Diagram'', part of the ''Default Papyrus Viewpoint'' configuration.
+* '''Owner''': This property shows the current owner of the diagram, i.e. the model element which the diagram is attached to. In the example above, the diagram is within the ''Diagrams'' package, meaning this package owns the diagram.
+* '''Root element''': This property shows the model element that is visualized through the diagram. In the example above, the top element visualized in the selected diagram is the UML activity named ''Activity1''. It is possible to retarget a diagram, i.e. change its root element. The user will be prompted to select a model element that fits the constraints that apply for this type of diagram.
+
+
+
+
+==Changing the Applied Viewpoint==
+The Papyrus viewpoints can be configured in a preference panel accessible along the other Papyrus preferences under the name '''Viewpoints Configuration'''.
+The panel looks like the following:
+
+[[image:captures/preferences.png]]
+
+===Configuration Kinds===
+The first preference element is the selection of the kind of configuration to apply to the user's environment.
+In the above capture, the radio buttons are used to determine which kind of configuration to use.
+Papyrus comes with two built-in configurations.
+It is nevertheless possible to define new configurations and viewpoints, and select them in this position.
+
+====Built-in Configurations====
+The built-in configurations are provided for convenience and have the following properties:
+* ''Any number of diagrams per model element'' is a configuration with a viewpoint that allow any kind of view and diagram and does not restrain the number of diagrams that can be created for each model element.
+* ''At most one diagram per model element'' is a configuration with a viewpoint that allow any kind of view and diagram but limit the number of diagrams that can be created for each model element at one.
+
+====Extension Point-Defined Configuration====
+It is possible to deploy custom viewpoints configuration through an Eclipse plugin and its contribution to an extension point.
+The identifier of the extension point to use is ''org.eclipse.papyrus.infra.viewpoints.policy.custom'' and is defined in the ''org.eclipse.papyrus.infra.viewpoints.policy'' plugin.
+Each extension can contribute a viewpoints configuration and give it a priority (0 is lowest).
+The setting of the contributed configuration is achieved by giving the path to the configuration file.
+The path can be relative to the contributing plugin's root, or be an absolute URI in the form of ''platform:/plugin/<pluginID>/<path>''.
+If no contribution is made and this option is selected, the builtin configuration named ''Any number of diagrams per model element'' will be used as a fallback.
+
+====Custom Configuration====
+To select a custom configuration, choose the ''Custom'' option.
+This will activate the corresponding preferences fields:
+* ''Access scheme'' lets the user select how the custom configuration should be looked for. The possible options are:
+** ''Absolute path'' means that the configuration will be looked for on the host's file system.
+** ''Workspace file'' means that the configuration file will be looked for as a resource in the workspace.
+** ''Embedded in a plugin'' means that the configuration file will be looked for as a resource in a loaded Eclipse plugin.
+
+* ''Path'' lets the user select the configuration file based on the selected scheme:
+** Using the scheme ''Absolute path'' the file is selected using a simple file selection dialog.
+** Using the scheme ''Workspace file'' the file is selected using a workspace resource selection dialog.
+** Using the scheme ''Embedded in a plugin'' the file is selected using a plugin content selection dialog.
+
+===Stakeholder and Viewpoint Selection===
+Once a configuration is selected, the use can select one of the viewpoint defined within it.
+This is achieved through the two dropdown boxes:
+* ''Stakeholder'' is used to select the user's archetype
+* ''Viewpoint'' is used to select the viewpoint
+
+
+
+
+==Defining New Viewpoints==
+Papyrus supports the definition of new viewpoints that can subsequently used by selecting them in the Papyrus Viewpoints preferences panel.
+A configuration file is simply an Ecore model that can be edited with the provided Viewpoints configuration editor in Papyrus.
+
+===Available Concepts===
+This subsection summarizes the different concepts that are leveraged for the definition of viewpoints in Papyrus.
+It is important to note that these concepts rely on and extend the ISO 42010 standard for viewpoints.
+
+* A ''configuration'' is a specification of a set of ''viewpoints'' and ''stakeholders''. A ''configuration'' is typically stored in a .configuration file and has to be selected in the preference window (Window/Preferences/Papyrus/Viewpoints Configuration).
+* The concept of ''stakeholder'' (see ISO 42010) in Papyrus represents a user archetype that pertains in the construction and/or review of a model. A ''stakeholder'' is associated to a set of ''viewpoints'' defining how he/she can see a model.
+* The concept of ''viewpoint'' (see ISO 42010) in Papyrus represents a set of constrains about what can be seen in a model. A Papyrus ''viewpoint'' mainly defines what are the accessible ''diagrams'' and the particular constraints to be applied on each of them.
+* A Papyrus ''diagram'' is a specialized view on a model in the form of a visual language. It is supported by an implementation artifact, i.e. the actual code that implements the diagram. Moreover, it can be constrained using ''rules''.
+* A ''model rule'' specifies if a model element can be represented through a ''diagram'', i.e. whether it can be selected as the root element of a ''diagram''.
+* An ''owning rule'' specifies whether a model element is allowed to own a ''diagram''.
+* ''Child rules'' specify whether a given model element can be added to the model through a ''diagram''.
+* ''Palette rules'' specify the palette elements that are visible for a ''diagram''.
+
+===Building a Configuration===
+The first step is to create the configuration file.
+Papyrus comes with a wizard for this purpose:
+* In the contextual menu of a project, or in the Eclipse '''File'' menu, select '''New''', '''Other ...'''.
+* The wizard is called '''Viewpoints configuration''' and is located in the '''Papyrus''' category.
+
+====Configuration element====
+Once the configuration file is created, it should be automatically opened with the Papyrus viewpoints configuration editor.
+The top element is the ''configuration''.
+It has two properties:
+* ''Default Stakeholder'', which should be used to select the default stakeholder for this configuration (once one has been created).
+* ''Metamodel'', which should be used to select the metamodel on which the viewpoint will apply. The property field proposes a list of the loaded metamodels identified by their URI. Usually, the UML metamodel (http://www.eclipse.org/uml2/4.0.0/UML/) should be used.
+
+====Stakeholders and Viewpoints====
+It is then possible to add new ''Viewpoints'' and ''Stakeholders'' to the configuration by the conxtual menu '''New Child''' on the configuration element.
+A ''stakeholder'' has two properties, ''name''' and ''viewpoints''. The ''viewpoints'' properties must be filled with references to the appropriate viewpoints for the ''stakeholder''.
+A ''viewpoint'' also has two properties, ''name'' and ''parent''. The ''parent'' property is used to specify that a ''viewpoint'' inherits from another one.
+
+====Diagram element====
+Once a viewpoint has been created, it is possible to add to it ''diagrams'' using the '''New Child''' contextual menu.
+A ''diagram'' will define a specialized view on a model, based on the implementation in Papyrus.
+For this purpose, the ''diagram'' elements have the following properties:
+* ''name'', which specifies a descriptor for the diagram
+* ''parent'', which enables the declaration of an inheritance relationship with another diagram
+* ''implementation ID'', which is the unique identifier of the software component in papyrus that will effectively implements the diagram
+* ''profiles'', which is the set of profiles that need to be applied for this diagram. The profiles can be selected through their metamodel identified by their URI. This implies that the profiles must be loaded at this point.
+
+The list of recognized implementation IDs is as follow:
+{| border="solid 1px grey"
+! Implementation ID
+! Description
+|-
+| '''PapyrusUMLActivityDiagram'''
+| UML Activity Diagram
+|-
+| '''PapyrusUMLClassDiagram'''
+| UML Class Diagram
+|-
+| '''PapyrusUMLCommunicationDiagram'''
+| UML Communication Diagram
+|-
+| '''PapyrusUMLComponentDiagram'''
+| UML Component Diagram
+|-
+| '''CompositeStructure'''
+| UML Composite Diagram
+|-
+| '''PapyrusUMLDeploymentDiagram'''
+| UML Deployment Diagram
+|-
+| '''PapyrusUMLProfileDiagram'''
+| UML Profile Diagram
+|-
+| '''PapyrusUMLSequenceDiagram'''
+| UML Sequence Diagram
+|-
+| '''PapyrusUMLStateMachineDiagram'''
+| UML State Machine Diagram
+|-
+| '''PapyrusUMLTimingDiagram'''
+| UML Timing Diagram
+|-
+| '''UseCase'''
+| UML Use Case Diagram
+|-
+| '''PapyrusUMLInteractionOverviewDiagram'''
+| UML Interaction Overview Diagram
+|-
+| '''BlockDefinition'''
+| SysML Block Definition Diagram
+|-
+| '''InternalBlock'''
+| SysML Internal Block Diagram
+|-
+| '''Parametric'''
+| SysML Parametric Diagram
+|-
+| '''RequirementDiagram'''
+| SysML Requirements Diagram
+|}
+
+Once a diagram has been created it is possible to constraint it using rules.
+There are four kinds of rules:
+* ''Model rules'' constrain the type of the (root) model elements that can be visualized through this view.
+* ''Owning rules'' constrain the type of the model elements that can own the diagram itself.
+* ''Child rules'' constrain the type of the model elements that can be dropped within this diagram.
+* ''Palette rules'' constrain the display of the diagram's palette elements.
+Each rule has a ''permit'' property that specify whether the rule authorizes or forbids the action it represents.
+Otherwise, the properties of the rules are as follow:
+* ''Model rules''
+** ''element'' represents the type of the model elements to apply the rule on.
+** ''multiplicity'' represents the maximum number of this kind of diagram that can be created for the referenced model element. -1 represents an unbounded number.
+** ''stereotypes'' represents the set of stereotypes that must be applied in the model element for the rule to match. The stereotypes can be picked from the classifiers of the ''profiles'' defined in the parent diagram.
+* ''Owning rules''
+** ''element'' represents the type of the model elements to apply the rule on.
+** ''multiplicity'' represents the maximum number of this kind of diagram that can be created for the referenced model element. -1 represents an unbounded number.
+** ''stereotypes'' represents the set of stereotypes that must be applied in the model element for the rule to match. The stereotypes can be picked from the classifiers of the ''profiles'' defined in the parent diagram.
+* ''Child rules''
+** ''element'' represents the type of the model elements begin dropped.
+** ''stereotypes'' represents the set of stereotypes that must be applied in the model element for the rule to match. The stereotypes can be picked from the classifiers of the ''profiles'' defined in the parent diagram.
+** ''origin'' represents the type of the model elements that are the target of the drop. It is usually one of the type defined in the ''model rules''.
+** Additionally, ''child rules'' can be completed with children called ''path elements'' using the '''New Child''' contextual menu. ''Path elements'' defines a path of properties that must be used from the ''origin'' to insert the new ''element'' in the model.
+* ''Palette rules''
+** ''element'' represents a pattern to match for the identifier of a palette element.
+
+As an example, it is possible to define a diagram of the inner classes of classes as follow:
+
+[[image:captures/config_sample.png]]
+
+In this example, the sole ''model rule'' defines that this kind of diagram can only be applied on '''Class'''.
+The ''owning rules'' define that the diagrams can be owned only by '''Class''' and '''Package''' elements.
+Then two ''child rules'' are used to define that it is only possible to add new '''Classifier''' and '''Comment''' elements thorugh this diagram.
+The first ''child rule'' specifies that the '''Classifier''' elements should be added to the model with the '''nestedClassifier''' property of the root '''Class''' element.
+In the same way, the second one specifies that the '''Comment''' elements should be added to the model with the '''ownedComment''' property of the root '''Class''' element.
+
+
+
+
+====Viewpoint Enforcement Principles====
+When enforcing a viewpoint, the following principles are used when authorizing, or denying user actions:
+* If the selected viewpoint does not enable to decide for the action at hand (no mathcing diagram), the parent viewpoints are recursively considered.
+* If a diagram is matched, but the defined rules do not enable to decide for the action at hand, then the parent diagrams are recursively considered.
+* The rules are considered in the order of their definition in the viewpoints configuration editor.
+* The first rule to match the condition (e.g. type of the considered model element) is used to decide upon the user action. Subsequent rules are not considered. Parent diagrams/viewpoints are also not considered. \ No newline at end of file
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/.classpath b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/.classpath
new file mode 100755
index 00000000000..2d1a4302f04
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/.project b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/.project
new file mode 100755
index 00000000000..3a171fbc9e7
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.infra.viewpoints.iso42010.edit</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/.settings/org.eclipse.jdt.core.prefs b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/.settings/org.eclipse.jdt.core.prefs
new file mode 100755
index 00000000000..44217f8c068
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/META-INF/MANIFEST.MF b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/META-INF/MANIFEST.MF
new file mode 100755
index 00000000000..7e611024bda
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/META-INF/MANIFEST.MF
@@ -0,0 +1,15 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.papyrus.infra.viewpoints.iso42010.edit;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-ClassPath: .
+Bundle-Activator: org.eclipse.papyrus.infra.viewpoints.iso42010.provider.Iso42010EditPlugin$Implementation
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: org.eclipse.papyrus.infra.viewpoints.iso42010.provider
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.papyrus.infra.viewpoints.iso42010;bundle-version="1.0.0";visibility:=reexport,
+ org.eclipse.emf.edit;visibility:=reexport
+Bundle-ActivationPolicy: lazy
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/about.html b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/about.html
new file mode 100755
index 00000000000..dd02e0be168
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>December 2, 2009</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/build.properties b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/build.properties
new file mode 100755
index 00000000000..9811208ae02
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/build.properties
@@ -0,0 +1,12 @@
+#
+
+bin.includes = .,\
+ icons/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties,\
+ about.html
+jars.compile.order = .
+source.. = src/
+output.. = bin/
+src.includes = about.html
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureDescription_concerns_Concern.gif b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureDescription_concerns_Concern.gif
new file mode 100755
index 00000000000..47ec394ad6b
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureDescription_concerns_Concern.gif
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureDescription_correspondences_Correspondence.gif b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureDescription_correspondences_Correspondence.gif
new file mode 100755
index 00000000000..dfe521b7dc1
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureDescription_correspondences_Correspondence.gif
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureDescription_decisions_ArchitectureDecision.gif b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureDescription_decisions_ArchitectureDecision.gif
new file mode 100755
index 00000000000..acf9c16a0fd
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureDescription_decisions_ArchitectureDecision.gif
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureDescription_expresses_Architecture.gif b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureDescription_expresses_Architecture.gif
new file mode 100755
index 00000000000..c0d8f24198b
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureDescription_expresses_Architecture.gif
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureDescription_rationales_ArchitectureRationale.gif b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureDescription_rationales_ArchitectureRationale.gif
new file mode 100755
index 00000000000..dfe521b7dc1
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureDescription_rationales_ArchitectureRationale.gif
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureDescription_rules_CorrespondenceRule.gif b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureDescription_rules_CorrespondenceRule.gif
new file mode 100755
index 00000000000..6247d4144af
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureDescription_rules_CorrespondenceRule.gif
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureDescription_stakeholders_Stakeholder.png b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureDescription_stakeholders_Stakeholder.png
new file mode 100755
index 00000000000..4f334bdbf89
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureDescription_stakeholders_Stakeholder.png
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureDescription_system_System.gif b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureDescription_system_System.gif
new file mode 100755
index 00000000000..d839c758a4c
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureDescription_system_System.gif
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureDescription_viewpoints_ArchitectureViewpoint.gif b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureDescription_viewpoints_ArchitectureViewpoint.gif
new file mode 100755
index 00000000000..048f1ac2406
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureDescription_viewpoints_ArchitectureViewpoint.gif
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureDescription_views_ArchitectureView.gif b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureDescription_views_ArchitectureView.gif
new file mode 100755
index 00000000000..63666342b38
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureDescription_views_ArchitectureView.gif
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureFramework_concerns_Concern.gif b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureFramework_concerns_Concern.gif
new file mode 100755
index 00000000000..8f218cb68af
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureFramework_concerns_Concern.gif
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureFramework_rules_CorrespondenceRule.gif b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureFramework_rules_CorrespondenceRule.gif
new file mode 100755
index 00000000000..e2efc630b97
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureFramework_rules_CorrespondenceRule.gif
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureFramework_stakeholders_Stakeholder.png b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureFramework_stakeholders_Stakeholder.png
new file mode 100755
index 00000000000..4f334bdbf89
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureFramework_stakeholders_Stakeholder.png
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureFramework_viewpoints_ArchitectureViewpoint.gif b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureFramework_viewpoints_ArchitectureViewpoint.gif
new file mode 100755
index 00000000000..0e886ecf2b8
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureFramework_viewpoints_ArchitectureViewpoint.gif
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureView_models_ArchitectureModel.gif b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureView_models_ArchitectureModel.gif
new file mode 100755
index 00000000000..753b7fa3328
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureView_models_ArchitectureModel.gif
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureViewpoint_modelKinds_ModelKind.gif b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureViewpoint_modelKinds_ModelKind.gif
new file mode 100755
index 00000000000..e9c7cf5ac0f
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/ctool16/CreateArchitectureViewpoint_modelKinds_ModelKind.gif
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/Architecture.gif b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/Architecture.gif
new file mode 100755
index 00000000000..739ebbfa6ac
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/Architecture.gif
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/ArchitectureDecision.gif b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/ArchitectureDecision.gif
new file mode 100755
index 00000000000..14af8aaee9f
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/ArchitectureDecision.gif
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/ArchitectureDescription.gif b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/ArchitectureDescription.gif
new file mode 100755
index 00000000000..94c953e013b
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/ArchitectureDescription.gif
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/ArchitectureFramework.gif b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/ArchitectureFramework.gif
new file mode 100755
index 00000000000..53500daf98e
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/ArchitectureFramework.gif
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/ArchitectureModel.gif b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/ArchitectureModel.gif
new file mode 100755
index 00000000000..10d222998af
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/ArchitectureModel.gif
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/ArchitectureRationale.gif b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/ArchitectureRationale.gif
new file mode 100755
index 00000000000..c4a8af41844
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/ArchitectureRationale.gif
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/ArchitectureView.gif b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/ArchitectureView.gif
new file mode 100755
index 00000000000..904159880b3
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/ArchitectureView.gif
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/ArchitectureViewpoint.gif b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/ArchitectureViewpoint.gif
new file mode 100755
index 00000000000..8a5c70cbd74
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/ArchitectureViewpoint.gif
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/Concern.gif b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/Concern.gif
new file mode 100755
index 00000000000..9250fecbffd
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/Concern.gif
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/Correspondence.gif b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/Correspondence.gif
new file mode 100755
index 00000000000..c4a8af41844
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/Correspondence.gif
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/CorrespondenceRule.gif b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/CorrespondenceRule.gif
new file mode 100755
index 00000000000..33854e98c25
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/CorrespondenceRule.gif
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/ModelKind.gif b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/ModelKind.gif
new file mode 100755
index 00000000000..7b7c428c715
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/ModelKind.gif
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/Stakeholder.png b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/Stakeholder.png
new file mode 100755
index 00000000000..ce2ac2d97eb
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/Stakeholder.png
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/System.gif b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/System.gif
new file mode 100755
index 00000000000..89ad5da38ab
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/icons/full/obj16/System.gif
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/plugin.properties b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/plugin.properties
new file mode 100755
index 00000000000..5e089b58e63
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/plugin.properties
@@ -0,0 +1,95 @@
+##########################################################################################
+# Copyright (c) 2013 CEA LIST.
+#
+#
+# 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:
+# Laurent Wouters (CEA LIST) laurent.wouters@cea.fr - Initial API and implementation
+#
+########################################################################################
+
+pluginName = Papyrus ISO42010 Implementation - Edit (Incubation)
+providerName = Eclipse Modeling Project
+
+_UI_CreateChild_text = {0}
+_UI_CreateChild_text2 = {1} {0}
+_UI_CreateChild_text3 = {1}
+_UI_CreateChild_tooltip = Create New {0} Under {1} Feature
+_UI_CreateChild_description = Create a new child of type {0} for the {1} feature of the selected {2}.
+_UI_CreateSibling_description = Create a new sibling of type {0} for the selected {2}, under the {1} feature of their parent.
+
+_UI_PropertyDescriptor_description = The {0} of the {1}
+
+_UI_ADElement_type = AD Element
+_UI_ArchitectureDescription_type = Architecture Description
+_UI_Stakeholder_type = Stakeholder
+_UI_ArchitectureViewpoint_type = Architecture Viewpoint
+_UI_ModelKind_type = Model Kind
+_UI_ArchitectureModel_type = Architecture Model
+_UI_ArchitectureView_type = Architecture View
+_UI_Concern_type = Concern
+_UI_System_type = System
+_UI_Architecture_type = Architecture
+_UI_ArchitectureRationale_type = Architecture Rationale
+_UI_Correspondence_type = Correspondence
+_UI_CorrespondenceRule_type = Correspondence Rule
+_UI_ArchitectureDecision_type = Architecture Decision
+_UI_Unknown_type = Object
+
+_UI_Unknown_datatype= Value
+
+_UI_ADElement_name_feature = Name
+_UI_ADElement_affectedBy_feature = Affected By
+_UI_ArchitectureDescription_stakeholders_feature = Stakeholders
+_UI_ArchitectureDescription_concerns_feature = Concerns
+_UI_ArchitectureDescription_viewpoints_feature = Viewpoints
+_UI_ArchitectureDescription_views_feature = Views
+_UI_ArchitectureDescription_system_feature = System
+_UI_ArchitectureDescription_expresses_feature = Expresses
+_UI_ArchitectureDescription_rationales_feature = Rationales
+_UI_ArchitectureDescription_correspondences_feature = Correspondences
+_UI_ArchitectureDescription_rules_feature = Rules
+_UI_ArchitectureDescription_decisions_feature = Decisions
+_UI_Stakeholder_concerns_feature = Concerns
+_UI_Stakeholder_viewpoints_feature = Viewpoints
+_UI_Stakeholder_hasInterestIn_feature = Has Interest In
+_UI_ArchitectureViewpoint_modelKinds_feature = Model Kinds
+_UI_ArchitectureViewpoint_governs_feature = Governs
+_UI_ArchitectureViewpoint_frames_feature = Frames
+_UI_ModelKind_governs_feature = Governs
+_UI_ModelKind_viewpoint_feature = Viewpoint
+_UI_ArchitectureModel_governedBy_feature = Governed By
+_UI_ArchitectureModel_view_feature = View
+_UI_ArchitectureView_governedBy_feature = Governed By
+_UI_ArchitectureView_models_feature = Models
+_UI_ArchitectureView_addresses_feature = Addresses
+_UI_Concern_framedBy_feature = Framed By
+_UI_Concern_addressedBy_feature = Addressed By
+_UI_Concern_stakeholders_feature = Stakeholders
+_UI_Concern_raisedBy_feature = Raised By
+_UI_Concern_decisions_feature = Decisions
+_UI_System_name_feature = Name
+_UI_System_stakeholders_feature = Stakeholders
+_UI_System_exhibits_feature = Exhibits
+_UI_Architecture_exhibitedIn_feature = Exhibited In
+_UI_ArchitectureRationale_justifies_feature = Justifies
+_UI_Correspondence_governedBy_feature = Governed By
+_UI_Correspondence_relates_feature = Relates
+_UI_CorrespondenceRule_governs_feature = Governs
+_UI_ArchitectureDecision_justifiedBy_feature = Justified By
+_UI_ArchitectureDecision_dependsUpon_feature = Depends Upon
+_UI_ArchitectureDecision_dependents_feature = Dependents
+_UI_ArchitectureDecision_raises_feature = Raises
+_UI_ArchitectureDecision_pertainsTo_feature = Pertains To
+_UI_ArchitectureDecision_affects_feature = Affects
+_UI_Unknown_feature = Unspecified
+
+_UI_ArchitectureFramework_type = Architecture Framework
+_UI_ArchitectureFramework_stakeholders_feature = Stakeholders
+_UI_ArchitectureFramework_viewpoints_feature = Viewpoints
+_UI_ArchitectureFramework_rules_feature = Rules
+_UI_ArchitectureFramework_concerns_feature = Concerns
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/plugin.xml b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/plugin.xml
new file mode 100755
index 00000000000..e5d807fa495
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/plugin.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+-->
+
+<plugin>
+
+ <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories">
+ <!-- @generated iso42010 -->
+ <factory
+ uri="http://www.eclipse.org/papyrus/infra/viewpoints/iso42010"
+ class="org.eclipse.papyrus.infra.viewpoints.iso42010.provider.Iso42010ItemProviderAdapterFactory"
+ supportedTypes=
+ "org.eclipse.emf.edit.provider.IEditingDomainItemProvider
+ org.eclipse.emf.edit.provider.IStructuredItemContentProvider
+ org.eclipse.emf.edit.provider.ITreeItemContentProvider
+ org.eclipse.emf.edit.provider.IItemLabelProvider
+ org.eclipse.emf.edit.provider.IItemPropertySource"/>
+ </extension>
+
+</plugin>
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/ADElementItemProvider.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/ADElementItemProvider.java
new file mode 100755
index 00000000000..87050ac755b
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/ADElementItemProvider.java
@@ -0,0 +1,180 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.iso42010.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ADElement;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.infra.viewpoints.iso42010.ADElement} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ADElementItemProvider
+ extends ItemProviderAdapter
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ADElementItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addNamePropertyDescriptor(object);
+ addAffectedByPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Name feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addNamePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_ADElement_name_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_ADElement_name_feature", "_UI_ADElement_type"),
+ Iso42010Package.Literals.AD_ELEMENT__NAME,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Affected By feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addAffectedByPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_ADElement_affectedBy_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_ADElement_affectedBy_feature", "_UI_ADElement_type"),
+ Iso42010Package.Literals.AD_ELEMENT__AFFECTED_BY,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((ADElement)object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_ADElement_type") :
+ getString("_UI_ADElement_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 -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(ADElement.class)) {
+ case Iso42010Package.AD_ELEMENT__NAME:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ 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 -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return Iso42010EditPlugin.INSTANCE;
+ }
+
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/ArchitectureDecisionItemProvider.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/ArchitectureDecisionItemProvider.java
new file mode 100755
index 00000000000..ddcc6e95c73
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/ArchitectureDecisionItemProvider.java
@@ -0,0 +1,261 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.iso42010.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDecision;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDecision} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ArchitectureDecisionItemProvider
+ extends ADElementItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ArchitectureDecisionItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addJustifiedByPropertyDescriptor(object);
+ addDependsUponPropertyDescriptor(object);
+ addDependentsPropertyDescriptor(object);
+ addRaisesPropertyDescriptor(object);
+ addPertainsToPropertyDescriptor(object);
+ addAffectsPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Justified By feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addJustifiedByPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_ArchitectureDecision_justifiedBy_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_ArchitectureDecision_justifiedBy_feature", "_UI_ArchitectureDecision_type"),
+ Iso42010Package.Literals.ARCHITECTURE_DECISION__JUSTIFIED_BY,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Depends Upon feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addDependsUponPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_ArchitectureDecision_dependsUpon_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_ArchitectureDecision_dependsUpon_feature", "_UI_ArchitectureDecision_type"),
+ Iso42010Package.Literals.ARCHITECTURE_DECISION__DEPENDS_UPON,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Dependents feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addDependentsPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_ArchitectureDecision_dependents_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_ArchitectureDecision_dependents_feature", "_UI_ArchitectureDecision_type"),
+ Iso42010Package.Literals.ARCHITECTURE_DECISION__DEPENDENTS,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Raises feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addRaisesPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_ArchitectureDecision_raises_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_ArchitectureDecision_raises_feature", "_UI_ArchitectureDecision_type"),
+ Iso42010Package.Literals.ARCHITECTURE_DECISION__RAISES,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Pertains To feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addPertainsToPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_ArchitectureDecision_pertainsTo_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_ArchitectureDecision_pertainsTo_feature", "_UI_ArchitectureDecision_type"),
+ Iso42010Package.Literals.ARCHITECTURE_DECISION__PERTAINS_TO,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Affects feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addAffectsPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_ArchitectureDecision_affects_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_ArchitectureDecision_affects_feature", "_UI_ArchitectureDecision_type"),
+ Iso42010Package.Literals.ARCHITECTURE_DECISION__AFFECTS,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This returns ArchitectureDecision.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/ArchitectureDecision"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((ArchitectureDecision)object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_ArchitectureDecision_type") :
+ getString("_UI_ArchitectureDecision_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 -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ 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 -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/ArchitectureDescriptionItemProvider.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/ArchitectureDescriptionItemProvider.java
new file mode 100755
index 00000000000..659ba79aeae
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/ArchitectureDescriptionItemProvider.java
@@ -0,0 +1,241 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.iso42010.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDescription;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Factory;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDescription} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ArchitectureDescriptionItemProvider
+ extends ItemProviderAdapter
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ArchitectureDescriptionItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * 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
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(Iso42010Package.Literals.ARCHITECTURE_DESCRIPTION__STAKEHOLDERS);
+ childrenFeatures.add(Iso42010Package.Literals.ARCHITECTURE_DESCRIPTION__CONCERNS);
+ childrenFeatures.add(Iso42010Package.Literals.ARCHITECTURE_DESCRIPTION__VIEWPOINTS);
+ childrenFeatures.add(Iso42010Package.Literals.ARCHITECTURE_DESCRIPTION__VIEWS);
+ childrenFeatures.add(Iso42010Package.Literals.ARCHITECTURE_DESCRIPTION__SYSTEM);
+ childrenFeatures.add(Iso42010Package.Literals.ARCHITECTURE_DESCRIPTION__EXPRESSES);
+ childrenFeatures.add(Iso42010Package.Literals.ARCHITECTURE_DESCRIPTION__RATIONALES);
+ childrenFeatures.add(Iso42010Package.Literals.ARCHITECTURE_DESCRIPTION__CORRESPONDENCES);
+ childrenFeatures.add(Iso42010Package.Literals.ARCHITECTURE_DESCRIPTION__RULES);
+ childrenFeatures.add(Iso42010Package.Literals.ARCHITECTURE_DESCRIPTION__DECISIONS);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- 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
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns ArchitectureDescription.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/ArchitectureDescription"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ return getString("_UI_ArchitectureDescription_type");
+ }
+
+ /**
+ * 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
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(ArchitectureDescription.class)) {
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__STAKEHOLDERS:
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__CONCERNS:
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__VIEWPOINTS:
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__VIEWS:
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__SYSTEM:
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__EXPRESSES:
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__RATIONALES:
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__CORRESPONDENCES:
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__RULES:
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__DECISIONS:
+ 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 -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add
+ (createChildParameter
+ (Iso42010Package.Literals.ARCHITECTURE_DESCRIPTION__STAKEHOLDERS,
+ Iso42010Factory.eINSTANCE.createStakeholder()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (Iso42010Package.Literals.ARCHITECTURE_DESCRIPTION__CONCERNS,
+ Iso42010Factory.eINSTANCE.createConcern()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (Iso42010Package.Literals.ARCHITECTURE_DESCRIPTION__VIEWPOINTS,
+ Iso42010Factory.eINSTANCE.createArchitectureViewpoint()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (Iso42010Package.Literals.ARCHITECTURE_DESCRIPTION__VIEWS,
+ Iso42010Factory.eINSTANCE.createArchitectureView()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (Iso42010Package.Literals.ARCHITECTURE_DESCRIPTION__SYSTEM,
+ Iso42010Factory.eINSTANCE.createSystem()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (Iso42010Package.Literals.ARCHITECTURE_DESCRIPTION__EXPRESSES,
+ Iso42010Factory.eINSTANCE.createArchitecture()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (Iso42010Package.Literals.ARCHITECTURE_DESCRIPTION__RATIONALES,
+ Iso42010Factory.eINSTANCE.createArchitectureRationale()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (Iso42010Package.Literals.ARCHITECTURE_DESCRIPTION__CORRESPONDENCES,
+ Iso42010Factory.eINSTANCE.createCorrespondence()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (Iso42010Package.Literals.ARCHITECTURE_DESCRIPTION__RULES,
+ Iso42010Factory.eINSTANCE.createCorrespondenceRule()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (Iso42010Package.Literals.ARCHITECTURE_DESCRIPTION__DECISIONS,
+ Iso42010Factory.eINSTANCE.createArchitectureDecision()));
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return Iso42010EditPlugin.INSTANCE;
+ }
+
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/ArchitectureFrameworkItemProvider.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/ArchitectureFrameworkItemProvider.java
new file mode 100755
index 00000000000..d32f549e3e7
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/ArchitectureFrameworkItemProvider.java
@@ -0,0 +1,199 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.iso42010.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureFramework;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Factory;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureFramework} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ArchitectureFrameworkItemProvider
+ extends ItemProviderAdapter
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ArchitectureFrameworkItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * 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
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(Iso42010Package.Literals.ARCHITECTURE_FRAMEWORK__STAKEHOLDERS);
+ childrenFeatures.add(Iso42010Package.Literals.ARCHITECTURE_FRAMEWORK__VIEWPOINTS);
+ childrenFeatures.add(Iso42010Package.Literals.ARCHITECTURE_FRAMEWORK__RULES);
+ childrenFeatures.add(Iso42010Package.Literals.ARCHITECTURE_FRAMEWORK__CONCERNS);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- 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
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns ArchitectureFramework.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/ArchitectureFramework"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ return getString("_UI_ArchitectureFramework_type");
+ }
+
+ /**
+ * 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
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(ArchitectureFramework.class)) {
+ case Iso42010Package.ARCHITECTURE_FRAMEWORK__STAKEHOLDERS:
+ case Iso42010Package.ARCHITECTURE_FRAMEWORK__VIEWPOINTS:
+ case Iso42010Package.ARCHITECTURE_FRAMEWORK__RULES:
+ case Iso42010Package.ARCHITECTURE_FRAMEWORK__CONCERNS:
+ 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 -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add
+ (createChildParameter
+ (Iso42010Package.Literals.ARCHITECTURE_FRAMEWORK__STAKEHOLDERS,
+ Iso42010Factory.eINSTANCE.createStakeholder()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (Iso42010Package.Literals.ARCHITECTURE_FRAMEWORK__VIEWPOINTS,
+ Iso42010Factory.eINSTANCE.createArchitectureViewpoint()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (Iso42010Package.Literals.ARCHITECTURE_FRAMEWORK__RULES,
+ Iso42010Factory.eINSTANCE.createCorrespondenceRule()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (Iso42010Package.Literals.ARCHITECTURE_FRAMEWORK__CONCERNS,
+ Iso42010Factory.eINSTANCE.createConcern()));
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return Iso42010EditPlugin.INSTANCE;
+ }
+
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/ArchitectureItemProvider.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/ArchitectureItemProvider.java
new file mode 100755
index 00000000000..24e89c3dc7e
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/ArchitectureItemProvider.java
@@ -0,0 +1,156 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.iso42010.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.infra.viewpoints.iso42010.Architecture} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ArchitectureItemProvider
+ extends ItemProviderAdapter
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ArchitectureItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addExhibitedInPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Exhibited In feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addExhibitedInPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Architecture_exhibitedIn_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_Architecture_exhibitedIn_feature", "_UI_Architecture_type"),
+ Iso42010Package.Literals.ARCHITECTURE__EXHIBITED_IN,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This returns Architecture.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/Architecture"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ return getString("_UI_Architecture_type");
+ }
+
+ /**
+ * 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
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ 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 -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return Iso42010EditPlugin.INSTANCE;
+ }
+
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/ArchitectureModelItemProvider.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/ArchitectureModelItemProvider.java
new file mode 100755
index 00000000000..a546dfcd8a6
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/ArchitectureModelItemProvider.java
@@ -0,0 +1,146 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.iso42010.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureModel;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureModel} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ArchitectureModelItemProvider
+ extends ADElementItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ArchitectureModelItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addGovernedByPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Governed By feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addGovernedByPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_ArchitectureModel_governedBy_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_ArchitectureModel_governedBy_feature", "_UI_ArchitectureModel_type"),
+ Iso42010Package.Literals.ARCHITECTURE_MODEL__GOVERNED_BY,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This returns ArchitectureModel.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/ArchitectureModel"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((ArchitectureModel)object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_ArchitectureModel_type") :
+ getString("_UI_ArchitectureModel_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 -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ 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 -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/ArchitectureRationaleItemProvider.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/ArchitectureRationaleItemProvider.java
new file mode 100755
index 00000000000..237f502d187
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/ArchitectureRationaleItemProvider.java
@@ -0,0 +1,146 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.iso42010.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureRationale;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureRationale} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ArchitectureRationaleItemProvider
+ extends ADElementItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ArchitectureRationaleItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addJustifiesPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Justifies feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addJustifiesPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_ArchitectureRationale_justifies_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_ArchitectureRationale_justifies_feature", "_UI_ArchitectureRationale_type"),
+ Iso42010Package.Literals.ARCHITECTURE_RATIONALE__JUSTIFIES,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This returns ArchitectureRationale.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/ArchitectureRationale"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((ArchitectureRationale)object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_ArchitectureRationale_type") :
+ getString("_UI_ArchitectureRationale_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 -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ 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 -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/ArchitectureViewItemProvider.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/ArchitectureViewItemProvider.java
new file mode 100755
index 00000000000..3cd97ab6577
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/ArchitectureViewItemProvider.java
@@ -0,0 +1,214 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.iso42010.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureView;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Factory;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureView} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ArchitectureViewItemProvider
+ extends ADElementItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ArchitectureViewItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addGovernedByPropertyDescriptor(object);
+ addAddressesPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Governed By feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addGovernedByPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_ArchitectureView_governedBy_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_ArchitectureView_governedBy_feature", "_UI_ArchitectureView_type"),
+ Iso42010Package.Literals.ARCHITECTURE_VIEW__GOVERNED_BY,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Addresses feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addAddressesPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_ArchitectureView_addresses_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_ArchitectureView_addresses_feature", "_UI_ArchitectureView_type"),
+ Iso42010Package.Literals.ARCHITECTURE_VIEW__ADDRESSES,
+ true,
+ false,
+ true,
+ null,
+ 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 -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(Iso42010Package.Literals.ARCHITECTURE_VIEW__MODELS);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- 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
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns ArchitectureView.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/ArchitectureView"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((ArchitectureView)object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_ArchitectureView_type") :
+ getString("_UI_ArchitectureView_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 -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(ArchitectureView.class)) {
+ case Iso42010Package.ARCHITECTURE_VIEW__MODELS:
+ 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 -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add
+ (createChildParameter
+ (Iso42010Package.Literals.ARCHITECTURE_VIEW__MODELS,
+ Iso42010Factory.eINSTANCE.createArchitectureModel()));
+ }
+
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/ArchitectureViewpointItemProvider.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/ArchitectureViewpointItemProvider.java
new file mode 100755
index 00000000000..f02e5275752
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/ArchitectureViewpointItemProvider.java
@@ -0,0 +1,214 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.iso42010.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureViewpoint;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Factory;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureViewpoint} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ArchitectureViewpointItemProvider
+ extends ADElementItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ArchitectureViewpointItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addGovernsPropertyDescriptor(object);
+ addFramesPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Governs feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addGovernsPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_ArchitectureViewpoint_governs_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_ArchitectureViewpoint_governs_feature", "_UI_ArchitectureViewpoint_type"),
+ Iso42010Package.Literals.ARCHITECTURE_VIEWPOINT__GOVERNS,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Frames feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addFramesPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_ArchitectureViewpoint_frames_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_ArchitectureViewpoint_frames_feature", "_UI_ArchitectureViewpoint_type"),
+ Iso42010Package.Literals.ARCHITECTURE_VIEWPOINT__FRAMES,
+ true,
+ false,
+ true,
+ null,
+ 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 -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(Iso42010Package.Literals.ARCHITECTURE_VIEWPOINT__MODEL_KINDS);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- 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
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns ArchitectureViewpoint.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/ArchitectureViewpoint"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((ArchitectureViewpoint)object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_ArchitectureViewpoint_type") :
+ getString("_UI_ArchitectureViewpoint_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 -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(ArchitectureViewpoint.class)) {
+ case Iso42010Package.ARCHITECTURE_VIEWPOINT__MODEL_KINDS:
+ 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 -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add
+ (createChildParameter
+ (Iso42010Package.Literals.ARCHITECTURE_VIEWPOINT__MODEL_KINDS,
+ Iso42010Factory.eINSTANCE.createModelKind()));
+ }
+
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/ConcernItemProvider.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/ConcernItemProvider.java
new file mode 100755
index 00000000000..f7ce5594340
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/ConcernItemProvider.java
@@ -0,0 +1,238 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.iso42010.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Concern;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.infra.viewpoints.iso42010.Concern} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ConcernItemProvider
+ extends ADElementItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ConcernItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addFramedByPropertyDescriptor(object);
+ addAddressedByPropertyDescriptor(object);
+ addStakeholdersPropertyDescriptor(object);
+ addRaisedByPropertyDescriptor(object);
+ addDecisionsPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Framed By feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addFramedByPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Concern_framedBy_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_Concern_framedBy_feature", "_UI_Concern_type"),
+ Iso42010Package.Literals.CONCERN__FRAMED_BY,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Addressed By feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addAddressedByPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Concern_addressedBy_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_Concern_addressedBy_feature", "_UI_Concern_type"),
+ Iso42010Package.Literals.CONCERN__ADDRESSED_BY,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Stakeholders feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addStakeholdersPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Concern_stakeholders_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_Concern_stakeholders_feature", "_UI_Concern_type"),
+ Iso42010Package.Literals.CONCERN__STAKEHOLDERS,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Raised By feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addRaisedByPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Concern_raisedBy_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_Concern_raisedBy_feature", "_UI_Concern_type"),
+ Iso42010Package.Literals.CONCERN__RAISED_BY,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Decisions feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addDecisionsPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Concern_decisions_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_Concern_decisions_feature", "_UI_Concern_type"),
+ Iso42010Package.Literals.CONCERN__DECISIONS,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This returns Concern.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/Concern"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((Concern)object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_Concern_type") :
+ getString("_UI_Concern_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 -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ 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 -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/CorrespondenceItemProvider.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/CorrespondenceItemProvider.java
new file mode 100755
index 00000000000..7f9c7c3398f
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/CorrespondenceItemProvider.java
@@ -0,0 +1,179 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.iso42010.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.infra.viewpoints.iso42010.Correspondence} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CorrespondenceItemProvider
+ extends ItemProviderAdapter
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CorrespondenceItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addGovernedByPropertyDescriptor(object);
+ addRelatesPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Governed By feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addGovernedByPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Correspondence_governedBy_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_Correspondence_governedBy_feature", "_UI_Correspondence_type"),
+ Iso42010Package.Literals.CORRESPONDENCE__GOVERNED_BY,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Relates feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addRelatesPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Correspondence_relates_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_Correspondence_relates_feature", "_UI_Correspondence_type"),
+ Iso42010Package.Literals.CORRESPONDENCE__RELATES,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This returns Correspondence.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/Correspondence"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ return getString("_UI_Correspondence_type");
+ }
+
+ /**
+ * 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
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ 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 -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return Iso42010EditPlugin.INSTANCE;
+ }
+
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/CorrespondenceRuleItemProvider.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/CorrespondenceRuleItemProvider.java
new file mode 100755
index 00000000000..03c71723f9b
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/CorrespondenceRuleItemProvider.java
@@ -0,0 +1,156 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.iso42010.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.infra.viewpoints.iso42010.CorrespondenceRule} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CorrespondenceRuleItemProvider
+ extends ItemProviderAdapter
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CorrespondenceRuleItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addGovernsPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Governs feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addGovernsPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_CorrespondenceRule_governs_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_CorrespondenceRule_governs_feature", "_UI_CorrespondenceRule_type"),
+ Iso42010Package.Literals.CORRESPONDENCE_RULE__GOVERNS,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This returns CorrespondenceRule.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/CorrespondenceRule"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ return getString("_UI_CorrespondenceRule_type");
+ }
+
+ /**
+ * 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
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ 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 -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return Iso42010EditPlugin.INSTANCE;
+ }
+
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/Iso42010EditPlugin.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/Iso42010EditPlugin.java
new file mode 100755
index 00000000000..762451dfa73
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/Iso42010EditPlugin.java
@@ -0,0 +1,100 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.iso42010.provider;
+
+import org.eclipse.emf.common.EMFPlugin;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+/**
+ * This is the central singleton for the Iso42010 edit plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public final class Iso42010EditPlugin extends EMFPlugin {
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final Iso42010EditPlugin INSTANCE = new Iso42010EditPlugin();
+
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static Implementation plugin;
+
+ /**
+ * Create the instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Iso42010EditPlugin() {
+ super
+ (new ResourceLocator [] {
+ });
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the singleton instance.
+ * @generated
+ */
+ @Override
+ public ResourceLocator getPluginResourceLocator() {
+ return plugin;
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the singleton instance.
+ * @generated
+ */
+ public static Implementation getPlugin() {
+ return plugin;
+ }
+
+ /**
+ * The actual implementation of the Eclipse <b>Plugin</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static class Implementation extends EclipsePlugin {
+ /**
+ * Creates an instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Implementation() {
+ super();
+
+ // Remember the static instance.
+ //
+ plugin = this;
+ }
+ }
+
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/Iso42010ItemProviderAdapterFactory.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/Iso42010ItemProviderAdapterFactory.java
new file mode 100755
index 00000000000..09a5e7127ac
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/Iso42010ItemProviderAdapterFactory.java
@@ -0,0 +1,522 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.iso42010.provider;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.edit.provider.ChangeNotifier;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.IChangeNotifier;
+import org.eclipse.emf.edit.provider.IDisposable;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.INotifyChangedListener;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+import org.eclipse.papyrus.infra.viewpoints.iso42010.util.Iso42010AdapterFactory;
+
+/**
+ * This is the factory that is used to provide the interfaces needed to support Viewers.
+ * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}.
+ * The adapters also support Eclipse property sheets.
+ * Note that most of the adapters are shared among multiple instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class Iso42010ItemProviderAdapterFactory extends Iso42010AdapterFactory implements ComposeableAdapterFactory, IChangeNotifier, IDisposable {
+ /**
+ * This keeps track of the root adapter factory that delegates to this adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ComposedAdapterFactory parentAdapterFactory;
+
+ /**
+ * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IChangeNotifier changeNotifier = new ChangeNotifier();
+
+ /**
+ * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<Object> supportedTypes = new ArrayList<Object>();
+
+ /**
+ * This constructs an instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Iso42010ItemProviderAdapterFactory() {
+ supportedTypes.add(IEditingDomainItemProvider.class);
+ supportedTypes.add(IStructuredItemContentProvider.class);
+ supportedTypes.add(ITreeItemContentProvider.class);
+ supportedTypes.add(IItemLabelProvider.class);
+ supportedTypes.add(IItemPropertySource.class);
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDescription} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ArchitectureDescriptionItemProvider architectureDescriptionItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDescription}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createArchitectureDescriptionAdapter() {
+ if (architectureDescriptionItemProvider == null) {
+ architectureDescriptionItemProvider = new ArchitectureDescriptionItemProvider(this);
+ }
+
+ return architectureDescriptionItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.infra.viewpoints.iso42010.Stakeholder} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected StakeholderItemProvider stakeholderItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.papyrus.infra.viewpoints.iso42010.Stakeholder}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createStakeholderAdapter() {
+ if (stakeholderItemProvider == null) {
+ stakeholderItemProvider = new StakeholderItemProvider(this);
+ }
+
+ return stakeholderItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureViewpoint} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ArchitectureViewpointItemProvider architectureViewpointItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureViewpoint}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createArchitectureViewpointAdapter() {
+ if (architectureViewpointItemProvider == null) {
+ architectureViewpointItemProvider = new ArchitectureViewpointItemProvider(this);
+ }
+
+ return architectureViewpointItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.infra.viewpoints.iso42010.ModelKind} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ModelKindItemProvider modelKindItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.papyrus.infra.viewpoints.iso42010.ModelKind}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createModelKindAdapter() {
+ if (modelKindItemProvider == null) {
+ modelKindItemProvider = new ModelKindItemProvider(this);
+ }
+
+ return modelKindItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureModel} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ArchitectureModelItemProvider architectureModelItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureModel}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createArchitectureModelAdapter() {
+ if (architectureModelItemProvider == null) {
+ architectureModelItemProvider = new ArchitectureModelItemProvider(this);
+ }
+
+ return architectureModelItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureView} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ArchitectureViewItemProvider architectureViewItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureView}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createArchitectureViewAdapter() {
+ if (architectureViewItemProvider == null) {
+ architectureViewItemProvider = new ArchitectureViewItemProvider(this);
+ }
+
+ return architectureViewItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.infra.viewpoints.iso42010.Concern} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ConcernItemProvider concernItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.papyrus.infra.viewpoints.iso42010.Concern}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createConcernAdapter() {
+ if (concernItemProvider == null) {
+ concernItemProvider = new ConcernItemProvider(this);
+ }
+
+ return concernItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.infra.viewpoints.iso42010.System} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SystemItemProvider systemItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.papyrus.infra.viewpoints.iso42010.System}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createSystemAdapter() {
+ if (systemItemProvider == null) {
+ systemItemProvider = new SystemItemProvider(this);
+ }
+
+ return systemItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.infra.viewpoints.iso42010.Architecture} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ArchitectureItemProvider architectureItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.papyrus.infra.viewpoints.iso42010.Architecture}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createArchitectureAdapter() {
+ if (architectureItemProvider == null) {
+ architectureItemProvider = new ArchitectureItemProvider(this);
+ }
+
+ return architectureItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureRationale} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ArchitectureRationaleItemProvider architectureRationaleItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureRationale}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createArchitectureRationaleAdapter() {
+ if (architectureRationaleItemProvider == null) {
+ architectureRationaleItemProvider = new ArchitectureRationaleItemProvider(this);
+ }
+
+ return architectureRationaleItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.infra.viewpoints.iso42010.Correspondence} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CorrespondenceItemProvider correspondenceItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.papyrus.infra.viewpoints.iso42010.Correspondence}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createCorrespondenceAdapter() {
+ if (correspondenceItemProvider == null) {
+ correspondenceItemProvider = new CorrespondenceItemProvider(this);
+ }
+
+ return correspondenceItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.infra.viewpoints.iso42010.CorrespondenceRule} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CorrespondenceRuleItemProvider correspondenceRuleItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.papyrus.infra.viewpoints.iso42010.CorrespondenceRule}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createCorrespondenceRuleAdapter() {
+ if (correspondenceRuleItemProvider == null) {
+ correspondenceRuleItemProvider = new CorrespondenceRuleItemProvider(this);
+ }
+
+ return correspondenceRuleItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDecision} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ArchitectureDecisionItemProvider architectureDecisionItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDecision}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createArchitectureDecisionAdapter() {
+ if (architectureDecisionItemProvider == null) {
+ architectureDecisionItemProvider = new ArchitectureDecisionItemProvider(this);
+ }
+
+ return architectureDecisionItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureFramework} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ArchitectureFrameworkItemProvider architectureFrameworkItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureFramework}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createArchitectureFrameworkAdapter() {
+ if (architectureFrameworkItemProvider == null) {
+ architectureFrameworkItemProvider = new ArchitectureFrameworkItemProvider(this);
+ }
+
+ return architectureFrameworkItemProvider;
+ }
+
+ /**
+ * This returns the root adapter factory that contains this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ComposeableAdapterFactory getRootAdapterFactory() {
+ return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
+ }
+
+ /**
+ * This sets the composed adapter factory that contains this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) {
+ this.parentAdapterFactory = parentAdapterFactory;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object type) {
+ return supportedTypes.contains(type) || super.isFactoryForType(type);
+ }
+
+ /**
+ * This implementation substitutes the factory itself as the key for the adapter.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter adapt(Notifier notifier, Object type) {
+ return super.adapt(notifier, this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object adapt(Object object, Object type) {
+ if (isFactoryForType(type)) {
+ Object adapter = super.adapt(object, type);
+ if (!(type instanceof Class<?>) || (((Class<?>)type).isInstance(adapter))) {
+ return adapter;
+ }
+ }
+
+ return null;
+ }
+
+ /**
+ * This adds a listener.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void addListener(INotifyChangedListener notifyChangedListener) {
+ changeNotifier.addListener(notifyChangedListener);
+ }
+
+ /**
+ * This removes a listener.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void removeListener(INotifyChangedListener notifyChangedListener) {
+ changeNotifier.removeListener(notifyChangedListener);
+ }
+
+ /**
+ * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void fireNotifyChanged(Notification notification) {
+ changeNotifier.fireNotifyChanged(notification);
+
+ if (parentAdapterFactory != null) {
+ parentAdapterFactory.fireNotifyChanged(notification);
+ }
+ }
+
+ /**
+ * This disposes all of the item providers created by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void dispose() {
+ if (architectureDescriptionItemProvider != null) architectureDescriptionItemProvider.dispose();
+ if (stakeholderItemProvider != null) stakeholderItemProvider.dispose();
+ if (architectureViewpointItemProvider != null) architectureViewpointItemProvider.dispose();
+ if (modelKindItemProvider != null) modelKindItemProvider.dispose();
+ if (architectureModelItemProvider != null) architectureModelItemProvider.dispose();
+ if (architectureViewItemProvider != null) architectureViewItemProvider.dispose();
+ if (concernItemProvider != null) concernItemProvider.dispose();
+ if (systemItemProvider != null) systemItemProvider.dispose();
+ if (architectureItemProvider != null) architectureItemProvider.dispose();
+ if (architectureRationaleItemProvider != null) architectureRationaleItemProvider.dispose();
+ if (correspondenceItemProvider != null) correspondenceItemProvider.dispose();
+ if (correspondenceRuleItemProvider != null) correspondenceRuleItemProvider.dispose();
+ if (architectureDecisionItemProvider != null) architectureDecisionItemProvider.dispose();
+ if (architectureFrameworkItemProvider != null) architectureFrameworkItemProvider.dispose();
+ }
+
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/ModelKindItemProvider.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/ModelKindItemProvider.java
new file mode 100755
index 00000000000..7941e7b4e35
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/ModelKindItemProvider.java
@@ -0,0 +1,146 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.iso42010.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ModelKind;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.infra.viewpoints.iso42010.ModelKind} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ModelKindItemProvider
+ extends ADElementItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ModelKindItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addGovernsPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Governs feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addGovernsPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_ModelKind_governs_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_ModelKind_governs_feature", "_UI_ModelKind_type"),
+ Iso42010Package.Literals.MODEL_KIND__GOVERNS,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This returns ModelKind.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/ModelKind"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((ModelKind)object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_ModelKind_type") :
+ getString("_UI_ModelKind_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 -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ 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 -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/StakeholderItemProvider.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/StakeholderItemProvider.java
new file mode 100755
index 00000000000..fb65a27f40e
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/StakeholderItemProvider.java
@@ -0,0 +1,187 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.iso42010.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Stakeholder;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.infra.viewpoints.iso42010.Stakeholder} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class StakeholderItemProvider
+ extends ADElementItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StakeholderItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addConcernsPropertyDescriptor(object);
+ addViewpointsPropertyDescriptor(object);
+ addHasInterestInPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Concerns feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addConcernsPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Stakeholder_concerns_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_Stakeholder_concerns_feature", "_UI_Stakeholder_type"),
+ Iso42010Package.Literals.STAKEHOLDER__CONCERNS,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Viewpoints feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addViewpointsPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Stakeholder_viewpoints_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_Stakeholder_viewpoints_feature", "_UI_Stakeholder_type"),
+ Iso42010Package.Literals.STAKEHOLDER__VIEWPOINTS,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Has Interest In feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addHasInterestInPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Stakeholder_hasInterestIn_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_Stakeholder_hasInterestIn_feature", "_UI_Stakeholder_type"),
+ Iso42010Package.Literals.STAKEHOLDER__HAS_INTEREST_IN,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This returns Stakeholder.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/Stakeholder.png"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((Stakeholder)object).getName();
+ return label == null || label.length() == 0 ? getString("_UI_Stakeholder_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 -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ 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 -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/SystemItemProvider.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/SystemItemProvider.java
new file mode 100755
index 00000000000..d708360c2df
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010.edit/src/org/eclipse/papyrus/infra/viewpoints/iso42010/provider/SystemItemProvider.java
@@ -0,0 +1,213 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.iso42010.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.infra.viewpoints.iso42010.System} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SystemItemProvider
+ extends ItemProviderAdapter
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SystemItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addNamePropertyDescriptor(object);
+ addStakeholdersPropertyDescriptor(object);
+ addExhibitsPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Name feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addNamePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_System_name_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_System_name_feature", "_UI_System_type"),
+ Iso42010Package.Literals.SYSTEM__NAME,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Stakeholders feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addStakeholdersPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_System_stakeholders_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_System_stakeholders_feature", "_UI_System_type"),
+ Iso42010Package.Literals.SYSTEM__STAKEHOLDERS,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Exhibits feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addExhibitsPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_System_exhibits_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_System_exhibits_feature", "_UI_System_type"),
+ Iso42010Package.Literals.SYSTEM__EXHIBITS,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This returns System.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/System"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((org.eclipse.papyrus.infra.viewpoints.iso42010.System)object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_System_type") :
+ getString("_UI_System_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 -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(org.eclipse.papyrus.infra.viewpoints.iso42010.System.class)) {
+ case Iso42010Package.SYSTEM__NAME:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ 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 -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return Iso42010EditPlugin.INSTANCE;
+ }
+
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/.classpath b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/.classpath
new file mode 100755
index 00000000000..2d1a4302f04
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/.project b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/.project
new file mode 100755
index 00000000000..d7721c0768d
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.infra.viewpoints.iso42010</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/.settings/org.eclipse.jdt.core.prefs b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/.settings/org.eclipse.jdt.core.prefs
new file mode 100755
index 00000000000..44217f8c068
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/META-INF/MANIFEST.MF b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/META-INF/MANIFEST.MF
new file mode 100755
index 00000000000..b7bf4021550
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/META-INF/MANIFEST.MF
@@ -0,0 +1,16 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.papyrus.infra.viewpoints.iso42010;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-ClassPath: .
+Bundle-Activator: org.eclipse.papyrus.infra.viewpoints.iso42010.Activator
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.emf.ecore
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: org.eclipse.papyrus.infra.viewpoints.iso42010,
+ org.eclipse.papyrus.infra.viewpoints.iso42010.impl,
+ org.eclipse.papyrus.infra.viewpoints.iso42010.util
+Bundle-ActivationPolicy: lazy
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/about.html b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/about.html
new file mode 100755
index 00000000000..dd02e0be168
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>December 2, 2009</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/build.properties b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/build.properties
new file mode 100755
index 00000000000..262cbe39d10
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/build.properties
@@ -0,0 +1,12 @@
+#
+
+bin.includes = .,\
+ model/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties,\
+ about.html
+jars.compile.order = .
+source.. = src/
+output.. = bin/
+src.includes = about.html
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/model/iso42010.ecore b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/model/iso42010.ecore
new file mode 100755
index 00000000000..81576cdd927
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/model/iso42010.ecore
@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage 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" name="iso42010" nsURI="http://www.eclipse.org/papyrus/infra/viewpoints/iso42010"
+ nsPrefix="iso42010">
+ <eClassifiers xsi:type="ecore:EClass" name="ADElement" abstract="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="affectedBy" upperBound="-1"
+ eType="#//ArchitectureDecision" eOpposite="#//ArchitectureDecision/affects"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ArchitectureDescription">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="stakeholders" lowerBound="1"
+ upperBound="-1" eType="#//Stakeholder" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="concerns" lowerBound="1"
+ upperBound="-1" eType="#//Concern" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="viewpoints" lowerBound="1"
+ upperBound="-1" eType="#//ArchitectureViewpoint" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="views" lowerBound="1" upperBound="-1"
+ eType="#//ArchitectureView" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="system" lowerBound="1"
+ eType="#//System" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="expresses" lowerBound="1"
+ eType="#//Architecture" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="rationales" lowerBound="1"
+ upperBound="-1" eType="#//ArchitectureRationale" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="correspondences" upperBound="-1"
+ eType="#//Correspondence" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="rules" upperBound="-1"
+ eType="#//CorrespondenceRule" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="decisions" upperBound="-1"
+ eType="#//ArchitectureDecision" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Stakeholder" eSuperTypes="#//ADElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="concerns" lowerBound="1"
+ upperBound="-1" eType="#//Concern" eOpposite="#//Concern/stakeholders"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="viewpoints" lowerBound="1"
+ upperBound="-1" eType="#//ArchitectureViewpoint"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="hasInterestIn" lowerBound="1"
+ eType="#//System" eOpposite="#//System/stakeholders"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ArchitectureViewpoint" eSuperTypes="#//ADElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelKinds" lowerBound="1"
+ upperBound="-1" eType="#//ModelKind" containment="true" eOpposite="#//ModelKind/viewpoint"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="governs" lowerBound="1"
+ eType="#//ArchitectureView" eOpposite="#//ArchitectureView/governedBy"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="frames" lowerBound="1"
+ upperBound="-1" eType="#//Concern" eOpposite="#//Concern/framedBy"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ModelKind" eSuperTypes="#//ADElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="governs" lowerBound="1"
+ upperBound="-1" eType="#//ArchitectureModel" eOpposite="#//ArchitectureModel/governedBy"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="viewpoint" lowerBound="1"
+ eType="#//ArchitectureViewpoint" eOpposite="#//ArchitectureViewpoint/modelKinds"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ArchitectureModel" eSuperTypes="#//ADElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="governedBy" lowerBound="1"
+ eType="#//ModelKind" eOpposite="#//ModelKind/governs"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="view" lowerBound="1" eType="#//ArchitectureView"
+ eOpposite="#//ArchitectureView/models"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ArchitectureView" eSuperTypes="#//ADElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="governedBy" lowerBound="1"
+ eType="#//ArchitectureViewpoint" eOpposite="#//ArchitectureViewpoint/governs"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="models" lowerBound="1"
+ upperBound="-1" eType="#//ArchitectureModel" containment="true" eOpposite="#//ArchitectureModel/view"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="addresses" lowerBound="1"
+ upperBound="-1" eType="#//Concern" eOpposite="#//Concern/addressedBy"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Concern" eSuperTypes="#//ADElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="framedBy" lowerBound="1"
+ upperBound="-1" eType="#//ArchitectureViewpoint" eOpposite="#//ArchitectureViewpoint/frames"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="addressedBy" lowerBound="1"
+ upperBound="-1" eType="#//ArchitectureView" eOpposite="#//ArchitectureView/addresses"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="stakeholders" lowerBound="1"
+ upperBound="-1" eType="#//Stakeholder" eOpposite="#//Stakeholder/concerns"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="raisedBy" upperBound="-1"
+ eType="#//ArchitectureDecision" eOpposite="#//ArchitectureDecision/raises"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="decisions" upperBound="-1"
+ eType="#//ArchitectureDecision" eOpposite="#//ArchitectureDecision/pertainsTo"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="System">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="stakeholders" lowerBound="1"
+ upperBound="-1" eType="#//Stakeholder" eOpposite="#//Stakeholder/hasInterestIn"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="exhibits" lowerBound="1"
+ eType="#//Architecture" eOpposite="#//Architecture/exhibitedIn"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Architecture">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="exhibitedIn" lowerBound="1"
+ eType="#//System" eOpposite="#//System/exhibits"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ArchitectureRationale" eSuperTypes="#//ADElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="justifies" lowerBound="1"
+ upperBound="-1" eType="#//ArchitectureDecision" eOpposite="#//ArchitectureDecision/justifiedBy"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Correspondence">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="governedBy" upperBound="-1"
+ eType="#//CorrespondenceRule" eOpposite="#//CorrespondenceRule/governs"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="relates" lowerBound="2"
+ upperBound="-1" eType="#//ADElement"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CorrespondenceRule">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="governs" lowerBound="1"
+ upperBound="-1" eType="#//Correspondence" eOpposite="#//Correspondence/governedBy"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ArchitectureDecision" eSuperTypes="#//ADElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="justifiedBy" upperBound="-1"
+ eType="#//ArchitectureRationale" eOpposite="#//ArchitectureRationale/justifies"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="dependsUpon" upperBound="-1"
+ eType="#//ArchitectureDecision" eOpposite="#//ArchitectureDecision/dependents"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="dependents" upperBound="-1"
+ eType="#//ArchitectureDecision" eOpposite="#//ArchitectureDecision/dependsUpon"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="raises" upperBound="-1"
+ eType="#//Concern" eOpposite="#//Concern/raisedBy"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="pertainsTo" lowerBound="1"
+ upperBound="-1" eType="#//Concern" eOpposite="#//Concern/decisions"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="affects" lowerBound="1"
+ upperBound="-1" eType="#//ADElement" eOpposite="#//ADElement/affectedBy"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ArchitectureFramework">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="stakeholders" lowerBound="1"
+ upperBound="-1" eType="#//Stakeholder" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="viewpoints" lowerBound="1"
+ upperBound="-1" eType="#//ArchitectureViewpoint" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="rules" upperBound="-1"
+ eType="#//CorrespondenceRule" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="concerns" lowerBound="1"
+ upperBound="-1" eType="#//Concern" containment="true"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/model/iso42010.genmodel b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/model/iso42010.genmodel
new file mode 100755
index 00000000000..e64c5473b37
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/model/iso42010.genmodel
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText="Copyright (c) 2013 CEA LIST.&#xD;&#xA;&#xD;&#xA; All rights reserved. This program and the accompanying materials&#xD;&#xA; are made available under the terms of the Eclipse Public License v1.0&#xD;&#xA; which accompanies this distribution, and is available at&#xD;&#xA; http://www.eclipse.org/legal/epl-v10.html&#xD;&#xA; &#xD;&#xA; Contributors:&#xD;&#xA; Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation&#xD;&#xA; &#xD;&#xA;"
+ modelDirectory="/org.eclipse.papyrus.infra.viewpoints.iso42010/src"
+ modelPluginID="org.eclipse.papyrus.infra.viewpoints.iso42010" modelName="Iso42010"
+ rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container" importerID="org.eclipse.emf.importer.ecore"
+ complianceLevel="6.0" copyrightFields="false" operationReflection="true" importOrganizing="true">
+ <foreignModel>iso42010.ecore</foreignModel>
+ <genPackages prefix="Iso42010" basePackage="org.eclipse.papyrus.infra.viewpoints"
+ disposableProviderFactory="true" ecorePackage="iso42010.ecore#/">
+ <genClasses image="false" ecoreClass="iso42010.ecore#//ADElement">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iso42010.ecore#//ADElement/name"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iso42010.ecore#//ADElement/affectedBy"/>
+ </genClasses>
+ <genClasses ecoreClass="iso42010.ecore#//ArchitectureDescription">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference iso42010.ecore#//ArchitectureDescription/stakeholders"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference iso42010.ecore#//ArchitectureDescription/concerns"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference iso42010.ecore#//ArchitectureDescription/viewpoints"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference iso42010.ecore#//ArchitectureDescription/views"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference iso42010.ecore#//ArchitectureDescription/system"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference iso42010.ecore#//ArchitectureDescription/expresses"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference iso42010.ecore#//ArchitectureDescription/rationales"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference iso42010.ecore#//ArchitectureDescription/correspondences"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference iso42010.ecore#//ArchitectureDescription/rules"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference iso42010.ecore#//ArchitectureDescription/decisions"/>
+ </genClasses>
+ <genClasses ecoreClass="iso42010.ecore#//Stakeholder">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iso42010.ecore#//Stakeholder/concerns"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iso42010.ecore#//Stakeholder/viewpoints"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iso42010.ecore#//Stakeholder/hasInterestIn"/>
+ </genClasses>
+ <genClasses ecoreClass="iso42010.ecore#//ArchitectureViewpoint">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference iso42010.ecore#//ArchitectureViewpoint/modelKinds"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iso42010.ecore#//ArchitectureViewpoint/governs"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iso42010.ecore#//ArchitectureViewpoint/frames"/>
+ </genClasses>
+ <genClasses ecoreClass="iso42010.ecore#//ModelKind">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iso42010.ecore#//ModelKind/governs"/>
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference iso42010.ecore#//ModelKind/viewpoint"/>
+ </genClasses>
+ <genClasses ecoreClass="iso42010.ecore#//ArchitectureModel">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iso42010.ecore#//ArchitectureModel/governedBy"/>
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference iso42010.ecore#//ArchitectureModel/view"/>
+ </genClasses>
+ <genClasses ecoreClass="iso42010.ecore#//ArchitectureView">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iso42010.ecore#//ArchitectureView/governedBy"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference iso42010.ecore#//ArchitectureView/models"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iso42010.ecore#//ArchitectureView/addresses"/>
+ </genClasses>
+ <genClasses ecoreClass="iso42010.ecore#//Concern">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iso42010.ecore#//Concern/framedBy"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iso42010.ecore#//Concern/addressedBy"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iso42010.ecore#//Concern/stakeholders"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iso42010.ecore#//Concern/raisedBy"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iso42010.ecore#//Concern/decisions"/>
+ </genClasses>
+ <genClasses ecoreClass="iso42010.ecore#//System">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iso42010.ecore#//System/name"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iso42010.ecore#//System/stakeholders"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iso42010.ecore#//System/exhibits"/>
+ </genClasses>
+ <genClasses ecoreClass="iso42010.ecore#//Architecture">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iso42010.ecore#//Architecture/exhibitedIn"/>
+ </genClasses>
+ <genClasses ecoreClass="iso42010.ecore#//ArchitectureRationale">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iso42010.ecore#//ArchitectureRationale/justifies"/>
+ </genClasses>
+ <genClasses ecoreClass="iso42010.ecore#//Correspondence">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iso42010.ecore#//Correspondence/governedBy"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iso42010.ecore#//Correspondence/relates"/>
+ </genClasses>
+ <genClasses ecoreClass="iso42010.ecore#//CorrespondenceRule">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iso42010.ecore#//CorrespondenceRule/governs"/>
+ </genClasses>
+ <genClasses ecoreClass="iso42010.ecore#//ArchitectureDecision">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iso42010.ecore#//ArchitectureDecision/justifiedBy"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iso42010.ecore#//ArchitectureDecision/dependsUpon"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iso42010.ecore#//ArchitectureDecision/dependents"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iso42010.ecore#//ArchitectureDecision/raises"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iso42010.ecore#//ArchitectureDecision/pertainsTo"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iso42010.ecore#//ArchitectureDecision/affects"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/plugin.properties b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/plugin.properties
new file mode 100755
index 00000000000..37c0795db11
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/plugin.properties
@@ -0,0 +1,16 @@
+##########################################################################################
+# Copyright (c) 2013 CEA LIST.
+#
+#
+# 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:
+# Laurent Wouters (CEA LIST) laurent.wouters@cea.fr - Initial API and implementation
+#
+########################################################################################
+
+pluginName = Papyrus ISO42010 Implementation (Incubation)
+providerName = Eclipse Modeling Project
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/plugin.xml b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/plugin.xml
new file mode 100755
index 00000000000..0146b430bc6
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/plugin.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+-->
+
+<plugin>
+
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated iso42010 -->
+ <package
+ uri="http://www.eclipse.org/papyrus/infra/viewpoints/iso42010"
+ class="org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package"
+ genModel="model/iso42010.genmodel"/>
+ </extension>
+
+</plugin>
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/ADElement.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/ADElement.java
new file mode 100755
index 00000000000..2aa09b8ebe2
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/ADElement.java
@@ -0,0 +1,82 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.iso42010;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>AD Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ADElement#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ADElement#getAffectedBy <em>Affected By</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getADElement()
+ * @model abstract="true"
+ * @generated
+ */
+public interface ADElement extends EObject {
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getADElement_Name()
+ * @model required="true"
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ADElement#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Affected By</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDecision}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDecision#getAffects <em>Affects</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Affected By</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Affected By</em>' reference list.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getADElement_AffectedBy()
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDecision#getAffects
+ * @model opposite="affects"
+ * @generated
+ */
+ EList<ArchitectureDecision> getAffectedBy();
+
+} // ADElement
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/Activator.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/Activator.java
new file mode 100755
index 00000000000..30776510ccd
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/Activator.java
@@ -0,0 +1,43 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.iso42010;
+
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+
+public class Activator implements BundleActivator {
+
+ private static BundleContext context;
+
+ static BundleContext getContext() {
+ return context;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext bundleContext) throws Exception {
+ Activator.context = bundleContext;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext bundleContext) throws Exception {
+ Activator.context = null;
+ }
+
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/Architecture.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/Architecture.java
new file mode 100755
index 00000000000..d5bd04e12e6
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/Architecture.java
@@ -0,0 +1,63 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.iso42010;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Architecture</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.Architecture#getExhibitedIn <em>Exhibited In</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getArchitecture()
+ * @model
+ * @generated
+ */
+public interface Architecture extends EObject {
+ /**
+ * Returns the value of the '<em><b>Exhibited In</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.System#getExhibits <em>Exhibits</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Exhibited In</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Exhibited In</em>' reference.
+ * @see #setExhibitedIn(org.eclipse.papyrus.infra.viewpoints.iso42010.System)
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getArchitecture_ExhibitedIn()
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.System#getExhibits
+ * @model opposite="exhibits" required="true"
+ * @generated
+ */
+ org.eclipse.papyrus.infra.viewpoints.iso42010.System getExhibitedIn();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.Architecture#getExhibitedIn <em>Exhibited In</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Exhibited In</em>' reference.
+ * @see #getExhibitedIn()
+ * @generated
+ */
+ void setExhibitedIn(org.eclipse.papyrus.infra.viewpoints.iso42010.System value);
+
+} // Architecture
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/ArchitectureDecision.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/ArchitectureDecision.java
new file mode 100755
index 00000000000..b5522541282
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/ArchitectureDecision.java
@@ -0,0 +1,148 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.iso42010;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Architecture Decision</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDecision#getJustifiedBy <em>Justified By</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDecision#getDependsUpon <em>Depends Upon</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDecision#getDependents <em>Dependents</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDecision#getRaises <em>Raises</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDecision#getPertainsTo <em>Pertains To</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDecision#getAffects <em>Affects</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getArchitectureDecision()
+ * @model
+ * @generated
+ */
+public interface ArchitectureDecision extends ADElement {
+ /**
+ * Returns the value of the '<em><b>Justified By</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureRationale}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureRationale#getJustifies <em>Justifies</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Justified By</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Justified By</em>' reference list.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getArchitectureDecision_JustifiedBy()
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureRationale#getJustifies
+ * @model opposite="justifies"
+ * @generated
+ */
+ EList<ArchitectureRationale> getJustifiedBy();
+
+ /**
+ * Returns the value of the '<em><b>Depends Upon</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDecision}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDecision#getDependents <em>Dependents</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Depends Upon</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Depends Upon</em>' reference list.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getArchitectureDecision_DependsUpon()
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDecision#getDependents
+ * @model opposite="dependents"
+ * @generated
+ */
+ EList<ArchitectureDecision> getDependsUpon();
+
+ /**
+ * Returns the value of the '<em><b>Dependents</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDecision}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDecision#getDependsUpon <em>Depends Upon</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Dependents</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Dependents</em>' reference list.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getArchitectureDecision_Dependents()
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDecision#getDependsUpon
+ * @model opposite="dependsUpon"
+ * @generated
+ */
+ EList<ArchitectureDecision> getDependents();
+
+ /**
+ * Returns the value of the '<em><b>Raises</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.infra.viewpoints.iso42010.Concern}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.Concern#getRaisedBy <em>Raised By</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Raises</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Raises</em>' reference list.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getArchitectureDecision_Raises()
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Concern#getRaisedBy
+ * @model opposite="raisedBy"
+ * @generated
+ */
+ EList<Concern> getRaises();
+
+ /**
+ * Returns the value of the '<em><b>Pertains To</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.infra.viewpoints.iso42010.Concern}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.Concern#getDecisions <em>Decisions</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Pertains To</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Pertains To</em>' reference list.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getArchitectureDecision_PertainsTo()
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Concern#getDecisions
+ * @model opposite="decisions" required="true"
+ * @generated
+ */
+ EList<Concern> getPertainsTo();
+
+ /**
+ * Returns the value of the '<em><b>Affects</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.infra.viewpoints.iso42010.ADElement}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ADElement#getAffectedBy <em>Affected By</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Affects</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Affects</em>' reference list.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getArchitectureDecision_Affects()
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ADElement#getAffectedBy
+ * @model opposite="affectedBy" required="true"
+ * @generated
+ */
+ EList<ADElement> getAffects();
+
+} // ArchitectureDecision
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/ArchitectureDescription.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/ArchitectureDescription.java
new file mode 100755
index 00000000000..bae2547375f
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/ArchitectureDescription.java
@@ -0,0 +1,226 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.iso42010;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Architecture Description</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDescription#getStakeholders <em>Stakeholders</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDescription#getConcerns <em>Concerns</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDescription#getViewpoints <em>Viewpoints</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDescription#getViews <em>Views</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDescription#getSystem <em>System</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDescription#getExpresses <em>Expresses</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDescription#getRationales <em>Rationales</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDescription#getCorrespondences <em>Correspondences</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDescription#getRules <em>Rules</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDescription#getDecisions <em>Decisions</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getArchitectureDescription()
+ * @model
+ * @generated
+ */
+public interface ArchitectureDescription extends EObject {
+ /**
+ * Returns the value of the '<em><b>Stakeholders</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.infra.viewpoints.iso42010.Stakeholder}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Stakeholders</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Stakeholders</em>' containment reference list.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getArchitectureDescription_Stakeholders()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ EList<Stakeholder> getStakeholders();
+
+ /**
+ * Returns the value of the '<em><b>Concerns</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.infra.viewpoints.iso42010.Concern}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Concerns</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Concerns</em>' containment reference list.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getArchitectureDescription_Concerns()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ EList<Concern> getConcerns();
+
+ /**
+ * Returns the value of the '<em><b>Viewpoints</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureViewpoint}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Viewpoints</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Viewpoints</em>' containment reference list.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getArchitectureDescription_Viewpoints()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ EList<ArchitectureViewpoint> getViewpoints();
+
+ /**
+ * Returns the value of the '<em><b>Views</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureView}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Views</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Views</em>' containment reference list.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getArchitectureDescription_Views()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ EList<ArchitectureView> getViews();
+
+ /**
+ * Returns the value of the '<em><b>System</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>System</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>System</em>' containment reference.
+ * @see #setSystem(org.eclipse.papyrus.infra.viewpoints.iso42010.System)
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getArchitectureDescription_System()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ org.eclipse.papyrus.infra.viewpoints.iso42010.System getSystem();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDescription#getSystem <em>System</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>System</em>' containment reference.
+ * @see #getSystem()
+ * @generated
+ */
+ void setSystem(org.eclipse.papyrus.infra.viewpoints.iso42010.System value);
+
+ /**
+ * Returns the value of the '<em><b>Expresses</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Expresses</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Expresses</em>' containment reference.
+ * @see #setExpresses(Architecture)
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getArchitectureDescription_Expresses()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ Architecture getExpresses();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDescription#getExpresses <em>Expresses</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Expresses</em>' containment reference.
+ * @see #getExpresses()
+ * @generated
+ */
+ void setExpresses(Architecture value);
+
+ /**
+ * Returns the value of the '<em><b>Rationales</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureRationale}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Rationales</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Rationales</em>' containment reference list.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getArchitectureDescription_Rationales()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ EList<ArchitectureRationale> getRationales();
+
+ /**
+ * Returns the value of the '<em><b>Correspondences</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.infra.viewpoints.iso42010.Correspondence}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Correspondences</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Correspondences</em>' containment reference list.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getArchitectureDescription_Correspondences()
+ * @model containment="true"
+ * @generated
+ */
+ EList<Correspondence> getCorrespondences();
+
+ /**
+ * Returns the value of the '<em><b>Rules</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.infra.viewpoints.iso42010.CorrespondenceRule}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Rules</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Rules</em>' containment reference list.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getArchitectureDescription_Rules()
+ * @model containment="true"
+ * @generated
+ */
+ EList<CorrespondenceRule> getRules();
+
+ /**
+ * Returns the value of the '<em><b>Decisions</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDecision}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Decisions</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Decisions</em>' containment reference list.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getArchitectureDescription_Decisions()
+ * @model containment="true"
+ * @generated
+ */
+ EList<ArchitectureDecision> getDecisions();
+
+} // ArchitectureDescription
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/ArchitectureFramework.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/ArchitectureFramework.java
new file mode 100755
index 00000000000..18493073e01
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/ArchitectureFramework.java
@@ -0,0 +1,104 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.iso42010;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Architecture Framework</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureFramework#getStakeholders <em>Stakeholders</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureFramework#getViewpoints <em>Viewpoints</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureFramework#getRules <em>Rules</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureFramework#getConcerns <em>Concerns</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getArchitectureFramework()
+ * @model
+ * @generated
+ */
+public interface ArchitectureFramework extends EObject {
+ /**
+ * Returns the value of the '<em><b>Stakeholders</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.infra.viewpoints.iso42010.Stakeholder}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Stakeholders</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Stakeholders</em>' containment reference list.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getArchitectureFramework_Stakeholders()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ EList<Stakeholder> getStakeholders();
+
+ /**
+ * Returns the value of the '<em><b>Viewpoints</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureViewpoint}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Viewpoints</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Viewpoints</em>' containment reference list.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getArchitectureFramework_Viewpoints()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ EList<ArchitectureViewpoint> getViewpoints();
+
+ /**
+ * Returns the value of the '<em><b>Rules</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.infra.viewpoints.iso42010.CorrespondenceRule}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Rules</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Rules</em>' containment reference list.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getArchitectureFramework_Rules()
+ * @model containment="true"
+ * @generated
+ */
+ EList<CorrespondenceRule> getRules();
+
+ /**
+ * Returns the value of the '<em><b>Concerns</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.infra.viewpoints.iso42010.Concern}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Concerns</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Concerns</em>' containment reference list.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getArchitectureFramework_Concerns()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ EList<Concern> getConcerns();
+
+} // ArchitectureFramework
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/ArchitectureModel.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/ArchitectureModel.java
new file mode 100755
index 00000000000..177fca1dcb4
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/ArchitectureModel.java
@@ -0,0 +1,91 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.iso42010;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Architecture Model</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureModel#getGovernedBy <em>Governed By</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureModel#getView <em>View</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getArchitectureModel()
+ * @model
+ * @generated
+ */
+public interface ArchitectureModel extends ADElement {
+ /**
+ * Returns the value of the '<em><b>Governed By</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ModelKind#getGoverns <em>Governs</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Governed By</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Governed By</em>' reference.
+ * @see #setGovernedBy(ModelKind)
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getArchitectureModel_GovernedBy()
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ModelKind#getGoverns
+ * @model opposite="governs" required="true"
+ * @generated
+ */
+ ModelKind getGovernedBy();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureModel#getGovernedBy <em>Governed By</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Governed By</em>' reference.
+ * @see #getGovernedBy()
+ * @generated
+ */
+ void setGovernedBy(ModelKind value);
+
+ /**
+ * Returns the value of the '<em><b>View</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureView#getModels <em>Models</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>View</em>' container reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>View</em>' container reference.
+ * @see #setView(ArchitectureView)
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getArchitectureModel_View()
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureView#getModels
+ * @model opposite="models" required="true" transient="false"
+ * @generated
+ */
+ ArchitectureView getView();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureModel#getView <em>View</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>View</em>' container reference.
+ * @see #getView()
+ * @generated
+ */
+ void setView(ArchitectureView value);
+
+} // ArchitectureModel
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/ArchitectureRationale.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/ArchitectureRationale.java
new file mode 100755
index 00000000000..051ccbfea51
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/ArchitectureRationale.java
@@ -0,0 +1,53 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.iso42010;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Architecture Rationale</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureRationale#getJustifies <em>Justifies</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getArchitectureRationale()
+ * @model
+ * @generated
+ */
+public interface ArchitectureRationale extends ADElement {
+ /**
+ * Returns the value of the '<em><b>Justifies</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDecision}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDecision#getJustifiedBy <em>Justified By</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Justifies</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Justifies</em>' reference list.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getArchitectureRationale_Justifies()
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDecision#getJustifiedBy
+ * @model opposite="justifiedBy" required="true"
+ * @generated
+ */
+ EList<ArchitectureDecision> getJustifies();
+
+} // ArchitectureRationale
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/ArchitectureView.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/ArchitectureView.java
new file mode 100755
index 00000000000..ce676c69bf5
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/ArchitectureView.java
@@ -0,0 +1,101 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.iso42010;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Architecture View</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureView#getGovernedBy <em>Governed By</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureView#getModels <em>Models</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureView#getAddresses <em>Addresses</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getArchitectureView()
+ * @model
+ * @generated
+ */
+public interface ArchitectureView extends ADElement {
+ /**
+ * Returns the value of the '<em><b>Governed By</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureViewpoint#getGoverns <em>Governs</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Governed By</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Governed By</em>' reference.
+ * @see #setGovernedBy(ArchitectureViewpoint)
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getArchitectureView_GovernedBy()
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureViewpoint#getGoverns
+ * @model opposite="governs" required="true"
+ * @generated
+ */
+ ArchitectureViewpoint getGovernedBy();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureView#getGovernedBy <em>Governed By</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Governed By</em>' reference.
+ * @see #getGovernedBy()
+ * @generated
+ */
+ void setGovernedBy(ArchitectureViewpoint value);
+
+ /**
+ * Returns the value of the '<em><b>Models</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureModel}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureModel#getView <em>View</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Models</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Models</em>' containment reference list.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getArchitectureView_Models()
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureModel#getView
+ * @model opposite="view" containment="true" required="true"
+ * @generated
+ */
+ EList<ArchitectureModel> getModels();
+
+ /**
+ * Returns the value of the '<em><b>Addresses</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.infra.viewpoints.iso42010.Concern}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.Concern#getAddressedBy <em>Addressed By</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Addresses</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Addresses</em>' reference list.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getArchitectureView_Addresses()
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Concern#getAddressedBy
+ * @model opposite="addressedBy" required="true"
+ * @generated
+ */
+ EList<Concern> getAddresses();
+
+} // ArchitectureView
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/ArchitectureViewpoint.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/ArchitectureViewpoint.java
new file mode 100755
index 00000000000..6f66a7d6af0
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/ArchitectureViewpoint.java
@@ -0,0 +1,101 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.iso42010;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Architecture Viewpoint</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureViewpoint#getModelKinds <em>Model Kinds</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureViewpoint#getGoverns <em>Governs</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureViewpoint#getFrames <em>Frames</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getArchitectureViewpoint()
+ * @model
+ * @generated
+ */
+public interface ArchitectureViewpoint extends ADElement {
+ /**
+ * Returns the value of the '<em><b>Model Kinds</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.infra.viewpoints.iso42010.ModelKind}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ModelKind#getViewpoint <em>Viewpoint</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Model Kinds</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Model Kinds</em>' containment reference list.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getArchitectureViewpoint_ModelKinds()
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ModelKind#getViewpoint
+ * @model opposite="viewpoint" containment="true" required="true"
+ * @generated
+ */
+ EList<ModelKind> getModelKinds();
+
+ /**
+ * Returns the value of the '<em><b>Governs</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureView#getGovernedBy <em>Governed By</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Governs</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Governs</em>' reference.
+ * @see #setGoverns(ArchitectureView)
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getArchitectureViewpoint_Governs()
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureView#getGovernedBy
+ * @model opposite="governedBy" required="true"
+ * @generated
+ */
+ ArchitectureView getGoverns();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureViewpoint#getGoverns <em>Governs</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Governs</em>' reference.
+ * @see #getGoverns()
+ * @generated
+ */
+ void setGoverns(ArchitectureView value);
+
+ /**
+ * Returns the value of the '<em><b>Frames</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.infra.viewpoints.iso42010.Concern}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.Concern#getFramedBy <em>Framed By</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Frames</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Frames</em>' reference list.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getArchitectureViewpoint_Frames()
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Concern#getFramedBy
+ * @model opposite="framedBy" required="true"
+ * @generated
+ */
+ EList<Concern> getFrames();
+
+} // ArchitectureViewpoint
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/Concern.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/Concern.java
new file mode 100755
index 00000000000..a06d56d343f
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/Concern.java
@@ -0,0 +1,129 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.iso42010;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Concern</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.Concern#getFramedBy <em>Framed By</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.Concern#getAddressedBy <em>Addressed By</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.Concern#getStakeholders <em>Stakeholders</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.Concern#getRaisedBy <em>Raised By</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.Concern#getDecisions <em>Decisions</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getConcern()
+ * @model
+ * @generated
+ */
+public interface Concern extends ADElement {
+ /**
+ * Returns the value of the '<em><b>Framed By</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureViewpoint}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureViewpoint#getFrames <em>Frames</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Framed By</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Framed By</em>' reference list.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getConcern_FramedBy()
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureViewpoint#getFrames
+ * @model opposite="frames" required="true"
+ * @generated
+ */
+ EList<ArchitectureViewpoint> getFramedBy();
+
+ /**
+ * Returns the value of the '<em><b>Addressed By</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureView}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureView#getAddresses <em>Addresses</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Addressed By</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Addressed By</em>' reference list.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getConcern_AddressedBy()
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureView#getAddresses
+ * @model opposite="addresses" required="true"
+ * @generated
+ */
+ EList<ArchitectureView> getAddressedBy();
+
+ /**
+ * Returns the value of the '<em><b>Stakeholders</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.infra.viewpoints.iso42010.Stakeholder}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.Stakeholder#getConcerns <em>Concerns</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Stakeholders</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Stakeholders</em>' reference list.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getConcern_Stakeholders()
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Stakeholder#getConcerns
+ * @model opposite="concerns" required="true"
+ * @generated
+ */
+ EList<Stakeholder> getStakeholders();
+
+ /**
+ * Returns the value of the '<em><b>Raised By</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDecision}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDecision#getRaises <em>Raises</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Raised By</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Raised By</em>' reference list.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getConcern_RaisedBy()
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDecision#getRaises
+ * @model opposite="raises"
+ * @generated
+ */
+ EList<ArchitectureDecision> getRaisedBy();
+
+ /**
+ * Returns the value of the '<em><b>Decisions</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDecision}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDecision#getPertainsTo <em>Pertains To</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Decisions</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Decisions</em>' reference list.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getConcern_Decisions()
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDecision#getPertainsTo
+ * @model opposite="pertainsTo"
+ * @generated
+ */
+ EList<ArchitectureDecision> getDecisions();
+
+} // Concern
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/Correspondence.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/Correspondence.java
new file mode 100755
index 00000000000..a3944440af9
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/Correspondence.java
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.iso42010;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Correspondence</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.Correspondence#getGovernedBy <em>Governed By</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.Correspondence#getRelates <em>Relates</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getCorrespondence()
+ * @model
+ * @generated
+ */
+public interface Correspondence extends EObject {
+ /**
+ * Returns the value of the '<em><b>Governed By</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.infra.viewpoints.iso42010.CorrespondenceRule}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.CorrespondenceRule#getGoverns <em>Governs</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Governed By</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Governed By</em>' reference list.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getCorrespondence_GovernedBy()
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.CorrespondenceRule#getGoverns
+ * @model opposite="governs"
+ * @generated
+ */
+ EList<CorrespondenceRule> getGovernedBy();
+
+ /**
+ * Returns the value of the '<em><b>Relates</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.infra.viewpoints.iso42010.ADElement}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Relates</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Relates</em>' reference list.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getCorrespondence_Relates()
+ * @model lower="2"
+ * @generated
+ */
+ EList<ADElement> getRelates();
+
+} // Correspondence
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/CorrespondenceRule.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/CorrespondenceRule.java
new file mode 100755
index 00000000000..0c4827d5b85
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/CorrespondenceRule.java
@@ -0,0 +1,55 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.iso42010;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Correspondence Rule</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.CorrespondenceRule#getGoverns <em>Governs</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getCorrespondenceRule()
+ * @model
+ * @generated
+ */
+public interface CorrespondenceRule extends EObject {
+ /**
+ * Returns the value of the '<em><b>Governs</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.infra.viewpoints.iso42010.Correspondence}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.Correspondence#getGovernedBy <em>Governed By</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Governs</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Governs</em>' reference list.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getCorrespondenceRule_Governs()
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Correspondence#getGovernedBy
+ * @model opposite="governedBy" required="true"
+ * @generated
+ */
+ EList<Correspondence> getGoverns();
+
+} // CorrespondenceRule
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/Iso42010Factory.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/Iso42010Factory.java
new file mode 100755
index 00000000000..6dae5008f9e
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/Iso42010Factory.java
@@ -0,0 +1,170 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.iso42010;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package
+ * @generated
+ */
+public interface Iso42010Factory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ Iso42010Factory eINSTANCE = org.eclipse.papyrus.infra.viewpoints.iso42010.impl.Iso42010FactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Architecture Description</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Architecture Description</em>'.
+ * @generated
+ */
+ ArchitectureDescription createArchitectureDescription();
+
+ /**
+ * Returns a new object of class '<em>Stakeholder</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Stakeholder</em>'.
+ * @generated
+ */
+ Stakeholder createStakeholder();
+
+ /**
+ * Returns a new object of class '<em>Architecture Viewpoint</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Architecture Viewpoint</em>'.
+ * @generated
+ */
+ ArchitectureViewpoint createArchitectureViewpoint();
+
+ /**
+ * Returns a new object of class '<em>Model Kind</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Model Kind</em>'.
+ * @generated
+ */
+ ModelKind createModelKind();
+
+ /**
+ * Returns a new object of class '<em>Architecture Model</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Architecture Model</em>'.
+ * @generated
+ */
+ ArchitectureModel createArchitectureModel();
+
+ /**
+ * Returns a new object of class '<em>Architecture View</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Architecture View</em>'.
+ * @generated
+ */
+ ArchitectureView createArchitectureView();
+
+ /**
+ * Returns a new object of class '<em>Concern</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Concern</em>'.
+ * @generated
+ */
+ Concern createConcern();
+
+ /**
+ * Returns a new object of class '<em>System</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>System</em>'.
+ * @generated
+ */
+ System createSystem();
+
+ /**
+ * Returns a new object of class '<em>Architecture</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Architecture</em>'.
+ * @generated
+ */
+ Architecture createArchitecture();
+
+ /**
+ * Returns a new object of class '<em>Architecture Rationale</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Architecture Rationale</em>'.
+ * @generated
+ */
+ ArchitectureRationale createArchitectureRationale();
+
+ /**
+ * Returns a new object of class '<em>Correspondence</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Correspondence</em>'.
+ * @generated
+ */
+ Correspondence createCorrespondence();
+
+ /**
+ * Returns a new object of class '<em>Correspondence Rule</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Correspondence Rule</em>'.
+ * @generated
+ */
+ CorrespondenceRule createCorrespondenceRule();
+
+ /**
+ * Returns a new object of class '<em>Architecture Decision</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Architecture Decision</em>'.
+ * @generated
+ */
+ ArchitectureDecision createArchitectureDecision();
+
+ /**
+ * Returns a new object of class '<em>Architecture Framework</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Architecture Framework</em>'.
+ * @generated
+ */
+ ArchitectureFramework createArchitectureFramework();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ Iso42010Package getIso42010Package();
+
+} //Iso42010Factory
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/Iso42010Package.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/Iso42010Package.java
new file mode 100755
index 00000000000..9fe05247991
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/Iso42010Package.java
@@ -0,0 +1,2304 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.iso42010;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Factory
+ * @model kind="package"
+ * @generated
+ */
+public interface Iso42010Package extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "iso42010";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/papyrus/infra/viewpoints/iso42010";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "iso42010";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ Iso42010Package eINSTANCE = org.eclipse.papyrus.infra.viewpoints.iso42010.impl.Iso42010PackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ADElementImpl <em>AD Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ADElementImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.Iso42010PackageImpl#getADElement()
+ * @generated
+ */
+ int AD_ELEMENT = 0;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AD_ELEMENT__NAME = 0;
+
+ /**
+ * The feature id for the '<em><b>Affected By</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AD_ELEMENT__AFFECTED_BY = 1;
+
+ /**
+ * The number of structural features of the '<em>AD Element</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AD_ELEMENT_FEATURE_COUNT = 2;
+
+ /**
+ * The number of operations of the '<em>AD Element</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AD_ELEMENT_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureDescriptionImpl <em>Architecture Description</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureDescriptionImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.Iso42010PackageImpl#getArchitectureDescription()
+ * @generated
+ */
+ int ARCHITECTURE_DESCRIPTION = 1;
+
+ /**
+ * The feature id for the '<em><b>Stakeholders</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE_DESCRIPTION__STAKEHOLDERS = 0;
+
+ /**
+ * The feature id for the '<em><b>Concerns</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE_DESCRIPTION__CONCERNS = 1;
+
+ /**
+ * The feature id for the '<em><b>Viewpoints</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE_DESCRIPTION__VIEWPOINTS = 2;
+
+ /**
+ * The feature id for the '<em><b>Views</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE_DESCRIPTION__VIEWS = 3;
+
+ /**
+ * The feature id for the '<em><b>System</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE_DESCRIPTION__SYSTEM = 4;
+
+ /**
+ * The feature id for the '<em><b>Expresses</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE_DESCRIPTION__EXPRESSES = 5;
+
+ /**
+ * The feature id for the '<em><b>Rationales</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE_DESCRIPTION__RATIONALES = 6;
+
+ /**
+ * The feature id for the '<em><b>Correspondences</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE_DESCRIPTION__CORRESPONDENCES = 7;
+
+ /**
+ * The feature id for the '<em><b>Rules</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE_DESCRIPTION__RULES = 8;
+
+ /**
+ * The feature id for the '<em><b>Decisions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE_DESCRIPTION__DECISIONS = 9;
+
+ /**
+ * The number of structural features of the '<em>Architecture Description</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE_DESCRIPTION_FEATURE_COUNT = 10;
+
+ /**
+ * The number of operations of the '<em>Architecture Description</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE_DESCRIPTION_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.StakeholderImpl <em>Stakeholder</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.StakeholderImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.Iso42010PackageImpl#getStakeholder()
+ * @generated
+ */
+ int STAKEHOLDER = 2;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STAKEHOLDER__NAME = AD_ELEMENT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Affected By</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STAKEHOLDER__AFFECTED_BY = AD_ELEMENT__AFFECTED_BY;
+
+ /**
+ * The feature id for the '<em><b>Concerns</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STAKEHOLDER__CONCERNS = AD_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Viewpoints</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STAKEHOLDER__VIEWPOINTS = AD_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Has Interest In</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STAKEHOLDER__HAS_INTEREST_IN = AD_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Stakeholder</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STAKEHOLDER_FEATURE_COUNT = AD_ELEMENT_FEATURE_COUNT + 3;
+
+ /**
+ * The number of operations of the '<em>Stakeholder</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STAKEHOLDER_OPERATION_COUNT = AD_ELEMENT_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureViewpointImpl <em>Architecture Viewpoint</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureViewpointImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.Iso42010PackageImpl#getArchitectureViewpoint()
+ * @generated
+ */
+ int ARCHITECTURE_VIEWPOINT = 3;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE_VIEWPOINT__NAME = AD_ELEMENT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Affected By</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE_VIEWPOINT__AFFECTED_BY = AD_ELEMENT__AFFECTED_BY;
+
+ /**
+ * The feature id for the '<em><b>Model Kinds</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE_VIEWPOINT__MODEL_KINDS = AD_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Governs</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE_VIEWPOINT__GOVERNS = AD_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Frames</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE_VIEWPOINT__FRAMES = AD_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Architecture Viewpoint</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE_VIEWPOINT_FEATURE_COUNT = AD_ELEMENT_FEATURE_COUNT + 3;
+
+ /**
+ * The number of operations of the '<em>Architecture Viewpoint</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE_VIEWPOINT_OPERATION_COUNT = AD_ELEMENT_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ModelKindImpl <em>Model Kind</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ModelKindImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.Iso42010PackageImpl#getModelKind()
+ * @generated
+ */
+ int MODEL_KIND = 4;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL_KIND__NAME = AD_ELEMENT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Affected By</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL_KIND__AFFECTED_BY = AD_ELEMENT__AFFECTED_BY;
+
+ /**
+ * The feature id for the '<em><b>Governs</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL_KIND__GOVERNS = AD_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Viewpoint</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL_KIND__VIEWPOINT = AD_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Model Kind</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL_KIND_FEATURE_COUNT = AD_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The number of operations of the '<em>Model Kind</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL_KIND_OPERATION_COUNT = AD_ELEMENT_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureModelImpl <em>Architecture Model</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureModelImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.Iso42010PackageImpl#getArchitectureModel()
+ * @generated
+ */
+ int ARCHITECTURE_MODEL = 5;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE_MODEL__NAME = AD_ELEMENT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Affected By</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE_MODEL__AFFECTED_BY = AD_ELEMENT__AFFECTED_BY;
+
+ /**
+ * The feature id for the '<em><b>Governed By</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE_MODEL__GOVERNED_BY = AD_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>View</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE_MODEL__VIEW = AD_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Architecture Model</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE_MODEL_FEATURE_COUNT = AD_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The number of operations of the '<em>Architecture Model</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE_MODEL_OPERATION_COUNT = AD_ELEMENT_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureViewImpl <em>Architecture View</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureViewImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.Iso42010PackageImpl#getArchitectureView()
+ * @generated
+ */
+ int ARCHITECTURE_VIEW = 6;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE_VIEW__NAME = AD_ELEMENT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Affected By</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE_VIEW__AFFECTED_BY = AD_ELEMENT__AFFECTED_BY;
+
+ /**
+ * The feature id for the '<em><b>Governed By</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE_VIEW__GOVERNED_BY = AD_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Models</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE_VIEW__MODELS = AD_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Addresses</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE_VIEW__ADDRESSES = AD_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Architecture View</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE_VIEW_FEATURE_COUNT = AD_ELEMENT_FEATURE_COUNT + 3;
+
+ /**
+ * The number of operations of the '<em>Architecture View</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE_VIEW_OPERATION_COUNT = AD_ELEMENT_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ConcernImpl <em>Concern</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ConcernImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.Iso42010PackageImpl#getConcern()
+ * @generated
+ */
+ int CONCERN = 7;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONCERN__NAME = AD_ELEMENT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Affected By</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONCERN__AFFECTED_BY = AD_ELEMENT__AFFECTED_BY;
+
+ /**
+ * The feature id for the '<em><b>Framed By</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONCERN__FRAMED_BY = AD_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Addressed By</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONCERN__ADDRESSED_BY = AD_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Stakeholders</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONCERN__STAKEHOLDERS = AD_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Raised By</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONCERN__RAISED_BY = AD_ELEMENT_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Decisions</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONCERN__DECISIONS = AD_ELEMENT_FEATURE_COUNT + 4;
+
+ /**
+ * The number of structural features of the '<em>Concern</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONCERN_FEATURE_COUNT = AD_ELEMENT_FEATURE_COUNT + 5;
+
+ /**
+ * The number of operations of the '<em>Concern</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONCERN_OPERATION_COUNT = AD_ELEMENT_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.SystemImpl <em>System</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.SystemImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.Iso42010PackageImpl#getSystem()
+ * @generated
+ */
+ int SYSTEM = 8;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SYSTEM__NAME = 0;
+
+ /**
+ * The feature id for the '<em><b>Stakeholders</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SYSTEM__STAKEHOLDERS = 1;
+
+ /**
+ * The feature id for the '<em><b>Exhibits</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SYSTEM__EXHIBITS = 2;
+
+ /**
+ * The number of structural features of the '<em>System</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SYSTEM_FEATURE_COUNT = 3;
+
+ /**
+ * The number of operations of the '<em>System</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SYSTEM_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureImpl <em>Architecture</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.Iso42010PackageImpl#getArchitecture()
+ * @generated
+ */
+ int ARCHITECTURE = 9;
+
+ /**
+ * The feature id for the '<em><b>Exhibited In</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE__EXHIBITED_IN = 0;
+
+ /**
+ * The number of structural features of the '<em>Architecture</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE_FEATURE_COUNT = 1;
+
+ /**
+ * The number of operations of the '<em>Architecture</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureRationaleImpl <em>Architecture Rationale</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureRationaleImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.Iso42010PackageImpl#getArchitectureRationale()
+ * @generated
+ */
+ int ARCHITECTURE_RATIONALE = 10;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE_RATIONALE__NAME = AD_ELEMENT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Affected By</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE_RATIONALE__AFFECTED_BY = AD_ELEMENT__AFFECTED_BY;
+
+ /**
+ * The feature id for the '<em><b>Justifies</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE_RATIONALE__JUSTIFIES = AD_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Architecture Rationale</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE_RATIONALE_FEATURE_COUNT = AD_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Architecture Rationale</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE_RATIONALE_OPERATION_COUNT = AD_ELEMENT_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.CorrespondenceImpl <em>Correspondence</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.CorrespondenceImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.Iso42010PackageImpl#getCorrespondence()
+ * @generated
+ */
+ int CORRESPONDENCE = 11;
+
+ /**
+ * The feature id for the '<em><b>Governed By</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CORRESPONDENCE__GOVERNED_BY = 0;
+
+ /**
+ * The feature id for the '<em><b>Relates</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CORRESPONDENCE__RELATES = 1;
+
+ /**
+ * The number of structural features of the '<em>Correspondence</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CORRESPONDENCE_FEATURE_COUNT = 2;
+
+ /**
+ * The number of operations of the '<em>Correspondence</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CORRESPONDENCE_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.CorrespondenceRuleImpl <em>Correspondence Rule</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.CorrespondenceRuleImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.Iso42010PackageImpl#getCorrespondenceRule()
+ * @generated
+ */
+ int CORRESPONDENCE_RULE = 12;
+
+ /**
+ * The feature id for the '<em><b>Governs</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CORRESPONDENCE_RULE__GOVERNS = 0;
+
+ /**
+ * The number of structural features of the '<em>Correspondence Rule</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CORRESPONDENCE_RULE_FEATURE_COUNT = 1;
+
+ /**
+ * The number of operations of the '<em>Correspondence Rule</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CORRESPONDENCE_RULE_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureDecisionImpl <em>Architecture Decision</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureDecisionImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.Iso42010PackageImpl#getArchitectureDecision()
+ * @generated
+ */
+ int ARCHITECTURE_DECISION = 13;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE_DECISION__NAME = AD_ELEMENT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Affected By</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE_DECISION__AFFECTED_BY = AD_ELEMENT__AFFECTED_BY;
+
+ /**
+ * The feature id for the '<em><b>Justified By</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE_DECISION__JUSTIFIED_BY = AD_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Depends Upon</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE_DECISION__DEPENDS_UPON = AD_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Dependents</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE_DECISION__DEPENDENTS = AD_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Raises</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE_DECISION__RAISES = AD_ELEMENT_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Pertains To</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE_DECISION__PERTAINS_TO = AD_ELEMENT_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Affects</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE_DECISION__AFFECTS = AD_ELEMENT_FEATURE_COUNT + 5;
+
+ /**
+ * The number of structural features of the '<em>Architecture Decision</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE_DECISION_FEATURE_COUNT = AD_ELEMENT_FEATURE_COUNT + 6;
+
+ /**
+ * The number of operations of the '<em>Architecture Decision</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE_DECISION_OPERATION_COUNT = AD_ELEMENT_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureFrameworkImpl <em>Architecture Framework</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureFrameworkImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.Iso42010PackageImpl#getArchitectureFramework()
+ * @generated
+ */
+ int ARCHITECTURE_FRAMEWORK = 14;
+
+ /**
+ * The feature id for the '<em><b>Stakeholders</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE_FRAMEWORK__STAKEHOLDERS = 0;
+
+ /**
+ * The feature id for the '<em><b>Viewpoints</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE_FRAMEWORK__VIEWPOINTS = 1;
+
+ /**
+ * The feature id for the '<em><b>Rules</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE_FRAMEWORK__RULES = 2;
+
+ /**
+ * The feature id for the '<em><b>Concerns</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE_FRAMEWORK__CONCERNS = 3;
+
+ /**
+ * The number of structural features of the '<em>Architecture Framework</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE_FRAMEWORK_FEATURE_COUNT = 4;
+
+ /**
+ * The number of operations of the '<em>Architecture Framework</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHITECTURE_FRAMEWORK_OPERATION_COUNT = 0;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ADElement <em>AD Element</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>AD Element</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ADElement
+ * @generated
+ */
+ EClass getADElement();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ADElement#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ADElement#getName()
+ * @see #getADElement()
+ * @generated
+ */
+ EAttribute getADElement_Name();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ADElement#getAffectedBy <em>Affected By</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Affected By</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ADElement#getAffectedBy()
+ * @see #getADElement()
+ * @generated
+ */
+ EReference getADElement_AffectedBy();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDescription <em>Architecture Description</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Architecture Description</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDescription
+ * @generated
+ */
+ EClass getArchitectureDescription();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDescription#getStakeholders <em>Stakeholders</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Stakeholders</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDescription#getStakeholders()
+ * @see #getArchitectureDescription()
+ * @generated
+ */
+ EReference getArchitectureDescription_Stakeholders();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDescription#getConcerns <em>Concerns</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Concerns</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDescription#getConcerns()
+ * @see #getArchitectureDescription()
+ * @generated
+ */
+ EReference getArchitectureDescription_Concerns();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDescription#getViewpoints <em>Viewpoints</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Viewpoints</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDescription#getViewpoints()
+ * @see #getArchitectureDescription()
+ * @generated
+ */
+ EReference getArchitectureDescription_Viewpoints();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDescription#getViews <em>Views</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Views</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDescription#getViews()
+ * @see #getArchitectureDescription()
+ * @generated
+ */
+ EReference getArchitectureDescription_Views();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDescription#getSystem <em>System</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>System</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDescription#getSystem()
+ * @see #getArchitectureDescription()
+ * @generated
+ */
+ EReference getArchitectureDescription_System();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDescription#getExpresses <em>Expresses</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Expresses</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDescription#getExpresses()
+ * @see #getArchitectureDescription()
+ * @generated
+ */
+ EReference getArchitectureDescription_Expresses();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDescription#getRationales <em>Rationales</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Rationales</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDescription#getRationales()
+ * @see #getArchitectureDescription()
+ * @generated
+ */
+ EReference getArchitectureDescription_Rationales();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDescription#getCorrespondences <em>Correspondences</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Correspondences</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDescription#getCorrespondences()
+ * @see #getArchitectureDescription()
+ * @generated
+ */
+ EReference getArchitectureDescription_Correspondences();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDescription#getRules <em>Rules</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Rules</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDescription#getRules()
+ * @see #getArchitectureDescription()
+ * @generated
+ */
+ EReference getArchitectureDescription_Rules();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDescription#getDecisions <em>Decisions</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Decisions</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDescription#getDecisions()
+ * @see #getArchitectureDescription()
+ * @generated
+ */
+ EReference getArchitectureDescription_Decisions();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.Stakeholder <em>Stakeholder</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Stakeholder</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Stakeholder
+ * @generated
+ */
+ EClass getStakeholder();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.Stakeholder#getConcerns <em>Concerns</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Concerns</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Stakeholder#getConcerns()
+ * @see #getStakeholder()
+ * @generated
+ */
+ EReference getStakeholder_Concerns();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.Stakeholder#getViewpoints <em>Viewpoints</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Viewpoints</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Stakeholder#getViewpoints()
+ * @see #getStakeholder()
+ * @generated
+ */
+ EReference getStakeholder_Viewpoints();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.Stakeholder#getHasInterestIn <em>Has Interest In</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Has Interest In</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Stakeholder#getHasInterestIn()
+ * @see #getStakeholder()
+ * @generated
+ */
+ EReference getStakeholder_HasInterestIn();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureViewpoint <em>Architecture Viewpoint</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Architecture Viewpoint</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureViewpoint
+ * @generated
+ */
+ EClass getArchitectureViewpoint();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureViewpoint#getModelKinds <em>Model Kinds</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Model Kinds</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureViewpoint#getModelKinds()
+ * @see #getArchitectureViewpoint()
+ * @generated
+ */
+ EReference getArchitectureViewpoint_ModelKinds();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureViewpoint#getGoverns <em>Governs</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Governs</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureViewpoint#getGoverns()
+ * @see #getArchitectureViewpoint()
+ * @generated
+ */
+ EReference getArchitectureViewpoint_Governs();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureViewpoint#getFrames <em>Frames</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Frames</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureViewpoint#getFrames()
+ * @see #getArchitectureViewpoint()
+ * @generated
+ */
+ EReference getArchitectureViewpoint_Frames();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ModelKind <em>Model Kind</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Model Kind</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ModelKind
+ * @generated
+ */
+ EClass getModelKind();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ModelKind#getGoverns <em>Governs</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Governs</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ModelKind#getGoverns()
+ * @see #getModelKind()
+ * @generated
+ */
+ EReference getModelKind_Governs();
+
+ /**
+ * Returns the meta object for the container reference '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ModelKind#getViewpoint <em>Viewpoint</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the container reference '<em>Viewpoint</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ModelKind#getViewpoint()
+ * @see #getModelKind()
+ * @generated
+ */
+ EReference getModelKind_Viewpoint();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureModel <em>Architecture Model</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Architecture Model</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureModel
+ * @generated
+ */
+ EClass getArchitectureModel();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureModel#getGovernedBy <em>Governed By</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Governed By</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureModel#getGovernedBy()
+ * @see #getArchitectureModel()
+ * @generated
+ */
+ EReference getArchitectureModel_GovernedBy();
+
+ /**
+ * Returns the meta object for the container reference '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureModel#getView <em>View</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the container reference '<em>View</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureModel#getView()
+ * @see #getArchitectureModel()
+ * @generated
+ */
+ EReference getArchitectureModel_View();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureView <em>Architecture View</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Architecture View</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureView
+ * @generated
+ */
+ EClass getArchitectureView();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureView#getGovernedBy <em>Governed By</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Governed By</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureView#getGovernedBy()
+ * @see #getArchitectureView()
+ * @generated
+ */
+ EReference getArchitectureView_GovernedBy();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureView#getModels <em>Models</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Models</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureView#getModels()
+ * @see #getArchitectureView()
+ * @generated
+ */
+ EReference getArchitectureView_Models();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureView#getAddresses <em>Addresses</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Addresses</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureView#getAddresses()
+ * @see #getArchitectureView()
+ * @generated
+ */
+ EReference getArchitectureView_Addresses();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.Concern <em>Concern</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Concern</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Concern
+ * @generated
+ */
+ EClass getConcern();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.Concern#getFramedBy <em>Framed By</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Framed By</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Concern#getFramedBy()
+ * @see #getConcern()
+ * @generated
+ */
+ EReference getConcern_FramedBy();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.Concern#getAddressedBy <em>Addressed By</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Addressed By</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Concern#getAddressedBy()
+ * @see #getConcern()
+ * @generated
+ */
+ EReference getConcern_AddressedBy();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.Concern#getStakeholders <em>Stakeholders</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Stakeholders</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Concern#getStakeholders()
+ * @see #getConcern()
+ * @generated
+ */
+ EReference getConcern_Stakeholders();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.Concern#getRaisedBy <em>Raised By</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Raised By</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Concern#getRaisedBy()
+ * @see #getConcern()
+ * @generated
+ */
+ EReference getConcern_RaisedBy();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.Concern#getDecisions <em>Decisions</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Decisions</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Concern#getDecisions()
+ * @see #getConcern()
+ * @generated
+ */
+ EReference getConcern_Decisions();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.System <em>System</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>System</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.System
+ * @generated
+ */
+ EClass getSystem();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.System#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.System#getName()
+ * @see #getSystem()
+ * @generated
+ */
+ EAttribute getSystem_Name();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.System#getStakeholders <em>Stakeholders</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Stakeholders</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.System#getStakeholders()
+ * @see #getSystem()
+ * @generated
+ */
+ EReference getSystem_Stakeholders();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.System#getExhibits <em>Exhibits</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Exhibits</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.System#getExhibits()
+ * @see #getSystem()
+ * @generated
+ */
+ EReference getSystem_Exhibits();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.Architecture <em>Architecture</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Architecture</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Architecture
+ * @generated
+ */
+ EClass getArchitecture();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.Architecture#getExhibitedIn <em>Exhibited In</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Exhibited In</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Architecture#getExhibitedIn()
+ * @see #getArchitecture()
+ * @generated
+ */
+ EReference getArchitecture_ExhibitedIn();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureRationale <em>Architecture Rationale</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Architecture Rationale</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureRationale
+ * @generated
+ */
+ EClass getArchitectureRationale();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureRationale#getJustifies <em>Justifies</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Justifies</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureRationale#getJustifies()
+ * @see #getArchitectureRationale()
+ * @generated
+ */
+ EReference getArchitectureRationale_Justifies();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.Correspondence <em>Correspondence</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Correspondence</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Correspondence
+ * @generated
+ */
+ EClass getCorrespondence();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.Correspondence#getGovernedBy <em>Governed By</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Governed By</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Correspondence#getGovernedBy()
+ * @see #getCorrespondence()
+ * @generated
+ */
+ EReference getCorrespondence_GovernedBy();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.Correspondence#getRelates <em>Relates</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Relates</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Correspondence#getRelates()
+ * @see #getCorrespondence()
+ * @generated
+ */
+ EReference getCorrespondence_Relates();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.CorrespondenceRule <em>Correspondence Rule</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Correspondence Rule</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.CorrespondenceRule
+ * @generated
+ */
+ EClass getCorrespondenceRule();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.CorrespondenceRule#getGoverns <em>Governs</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Governs</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.CorrespondenceRule#getGoverns()
+ * @see #getCorrespondenceRule()
+ * @generated
+ */
+ EReference getCorrespondenceRule_Governs();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDecision <em>Architecture Decision</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Architecture Decision</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDecision
+ * @generated
+ */
+ EClass getArchitectureDecision();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDecision#getJustifiedBy <em>Justified By</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Justified By</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDecision#getJustifiedBy()
+ * @see #getArchitectureDecision()
+ * @generated
+ */
+ EReference getArchitectureDecision_JustifiedBy();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDecision#getDependsUpon <em>Depends Upon</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Depends Upon</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDecision#getDependsUpon()
+ * @see #getArchitectureDecision()
+ * @generated
+ */
+ EReference getArchitectureDecision_DependsUpon();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDecision#getDependents <em>Dependents</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Dependents</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDecision#getDependents()
+ * @see #getArchitectureDecision()
+ * @generated
+ */
+ EReference getArchitectureDecision_Dependents();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDecision#getRaises <em>Raises</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Raises</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDecision#getRaises()
+ * @see #getArchitectureDecision()
+ * @generated
+ */
+ EReference getArchitectureDecision_Raises();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDecision#getPertainsTo <em>Pertains To</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Pertains To</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDecision#getPertainsTo()
+ * @see #getArchitectureDecision()
+ * @generated
+ */
+ EReference getArchitectureDecision_PertainsTo();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDecision#getAffects <em>Affects</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Affects</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDecision#getAffects()
+ * @see #getArchitectureDecision()
+ * @generated
+ */
+ EReference getArchitectureDecision_Affects();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureFramework <em>Architecture Framework</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Architecture Framework</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureFramework
+ * @generated
+ */
+ EClass getArchitectureFramework();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureFramework#getStakeholders <em>Stakeholders</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Stakeholders</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureFramework#getStakeholders()
+ * @see #getArchitectureFramework()
+ * @generated
+ */
+ EReference getArchitectureFramework_Stakeholders();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureFramework#getViewpoints <em>Viewpoints</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Viewpoints</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureFramework#getViewpoints()
+ * @see #getArchitectureFramework()
+ * @generated
+ */
+ EReference getArchitectureFramework_Viewpoints();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureFramework#getRules <em>Rules</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Rules</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureFramework#getRules()
+ * @see #getArchitectureFramework()
+ * @generated
+ */
+ EReference getArchitectureFramework_Rules();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureFramework#getConcerns <em>Concerns</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Concerns</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureFramework#getConcerns()
+ * @see #getArchitectureFramework()
+ * @generated
+ */
+ EReference getArchitectureFramework_Concerns();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ Iso42010Factory getIso42010Factory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ADElementImpl <em>AD Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ADElementImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.Iso42010PackageImpl#getADElement()
+ * @generated
+ */
+ EClass AD_ELEMENT = eINSTANCE.getADElement();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute AD_ELEMENT__NAME = eINSTANCE.getADElement_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Affected By</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference AD_ELEMENT__AFFECTED_BY = eINSTANCE.getADElement_AffectedBy();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureDescriptionImpl <em>Architecture Description</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureDescriptionImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.Iso42010PackageImpl#getArchitectureDescription()
+ * @generated
+ */
+ EClass ARCHITECTURE_DESCRIPTION = eINSTANCE.getArchitectureDescription();
+
+ /**
+ * The meta object literal for the '<em><b>Stakeholders</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ARCHITECTURE_DESCRIPTION__STAKEHOLDERS = eINSTANCE.getArchitectureDescription_Stakeholders();
+
+ /**
+ * The meta object literal for the '<em><b>Concerns</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ARCHITECTURE_DESCRIPTION__CONCERNS = eINSTANCE.getArchitectureDescription_Concerns();
+
+ /**
+ * The meta object literal for the '<em><b>Viewpoints</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ARCHITECTURE_DESCRIPTION__VIEWPOINTS = eINSTANCE.getArchitectureDescription_Viewpoints();
+
+ /**
+ * The meta object literal for the '<em><b>Views</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ARCHITECTURE_DESCRIPTION__VIEWS = eINSTANCE.getArchitectureDescription_Views();
+
+ /**
+ * The meta object literal for the '<em><b>System</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ARCHITECTURE_DESCRIPTION__SYSTEM = eINSTANCE.getArchitectureDescription_System();
+
+ /**
+ * The meta object literal for the '<em><b>Expresses</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ARCHITECTURE_DESCRIPTION__EXPRESSES = eINSTANCE.getArchitectureDescription_Expresses();
+
+ /**
+ * The meta object literal for the '<em><b>Rationales</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ARCHITECTURE_DESCRIPTION__RATIONALES = eINSTANCE.getArchitectureDescription_Rationales();
+
+ /**
+ * The meta object literal for the '<em><b>Correspondences</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ARCHITECTURE_DESCRIPTION__CORRESPONDENCES = eINSTANCE.getArchitectureDescription_Correspondences();
+
+ /**
+ * The meta object literal for the '<em><b>Rules</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ARCHITECTURE_DESCRIPTION__RULES = eINSTANCE.getArchitectureDescription_Rules();
+
+ /**
+ * The meta object literal for the '<em><b>Decisions</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ARCHITECTURE_DESCRIPTION__DECISIONS = eINSTANCE.getArchitectureDescription_Decisions();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.StakeholderImpl <em>Stakeholder</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.StakeholderImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.Iso42010PackageImpl#getStakeholder()
+ * @generated
+ */
+ EClass STAKEHOLDER = eINSTANCE.getStakeholder();
+
+ /**
+ * The meta object literal for the '<em><b>Concerns</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference STAKEHOLDER__CONCERNS = eINSTANCE.getStakeholder_Concerns();
+
+ /**
+ * The meta object literal for the '<em><b>Viewpoints</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference STAKEHOLDER__VIEWPOINTS = eINSTANCE.getStakeholder_Viewpoints();
+
+ /**
+ * The meta object literal for the '<em><b>Has Interest In</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference STAKEHOLDER__HAS_INTEREST_IN = eINSTANCE.getStakeholder_HasInterestIn();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureViewpointImpl <em>Architecture Viewpoint</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureViewpointImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.Iso42010PackageImpl#getArchitectureViewpoint()
+ * @generated
+ */
+ EClass ARCHITECTURE_VIEWPOINT = eINSTANCE.getArchitectureViewpoint();
+
+ /**
+ * The meta object literal for the '<em><b>Model Kinds</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ARCHITECTURE_VIEWPOINT__MODEL_KINDS = eINSTANCE.getArchitectureViewpoint_ModelKinds();
+
+ /**
+ * The meta object literal for the '<em><b>Governs</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ARCHITECTURE_VIEWPOINT__GOVERNS = eINSTANCE.getArchitectureViewpoint_Governs();
+
+ /**
+ * The meta object literal for the '<em><b>Frames</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ARCHITECTURE_VIEWPOINT__FRAMES = eINSTANCE.getArchitectureViewpoint_Frames();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ModelKindImpl <em>Model Kind</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ModelKindImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.Iso42010PackageImpl#getModelKind()
+ * @generated
+ */
+ EClass MODEL_KIND = eINSTANCE.getModelKind();
+
+ /**
+ * The meta object literal for the '<em><b>Governs</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference MODEL_KIND__GOVERNS = eINSTANCE.getModelKind_Governs();
+
+ /**
+ * The meta object literal for the '<em><b>Viewpoint</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference MODEL_KIND__VIEWPOINT = eINSTANCE.getModelKind_Viewpoint();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureModelImpl <em>Architecture Model</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureModelImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.Iso42010PackageImpl#getArchitectureModel()
+ * @generated
+ */
+ EClass ARCHITECTURE_MODEL = eINSTANCE.getArchitectureModel();
+
+ /**
+ * The meta object literal for the '<em><b>Governed By</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ARCHITECTURE_MODEL__GOVERNED_BY = eINSTANCE.getArchitectureModel_GovernedBy();
+
+ /**
+ * The meta object literal for the '<em><b>View</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ARCHITECTURE_MODEL__VIEW = eINSTANCE.getArchitectureModel_View();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureViewImpl <em>Architecture View</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureViewImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.Iso42010PackageImpl#getArchitectureView()
+ * @generated
+ */
+ EClass ARCHITECTURE_VIEW = eINSTANCE.getArchitectureView();
+
+ /**
+ * The meta object literal for the '<em><b>Governed By</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ARCHITECTURE_VIEW__GOVERNED_BY = eINSTANCE.getArchitectureView_GovernedBy();
+
+ /**
+ * The meta object literal for the '<em><b>Models</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ARCHITECTURE_VIEW__MODELS = eINSTANCE.getArchitectureView_Models();
+
+ /**
+ * The meta object literal for the '<em><b>Addresses</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ARCHITECTURE_VIEW__ADDRESSES = eINSTANCE.getArchitectureView_Addresses();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ConcernImpl <em>Concern</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ConcernImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.Iso42010PackageImpl#getConcern()
+ * @generated
+ */
+ EClass CONCERN = eINSTANCE.getConcern();
+
+ /**
+ * The meta object literal for the '<em><b>Framed By</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONCERN__FRAMED_BY = eINSTANCE.getConcern_FramedBy();
+
+ /**
+ * The meta object literal for the '<em><b>Addressed By</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONCERN__ADDRESSED_BY = eINSTANCE.getConcern_AddressedBy();
+
+ /**
+ * The meta object literal for the '<em><b>Stakeholders</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONCERN__STAKEHOLDERS = eINSTANCE.getConcern_Stakeholders();
+
+ /**
+ * The meta object literal for the '<em><b>Raised By</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONCERN__RAISED_BY = eINSTANCE.getConcern_RaisedBy();
+
+ /**
+ * The meta object literal for the '<em><b>Decisions</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONCERN__DECISIONS = eINSTANCE.getConcern_Decisions();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.SystemImpl <em>System</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.SystemImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.Iso42010PackageImpl#getSystem()
+ * @generated
+ */
+ EClass SYSTEM = eINSTANCE.getSystem();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SYSTEM__NAME = eINSTANCE.getSystem_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Stakeholders</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SYSTEM__STAKEHOLDERS = eINSTANCE.getSystem_Stakeholders();
+
+ /**
+ * The meta object literal for the '<em><b>Exhibits</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SYSTEM__EXHIBITS = eINSTANCE.getSystem_Exhibits();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureImpl <em>Architecture</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.Iso42010PackageImpl#getArchitecture()
+ * @generated
+ */
+ EClass ARCHITECTURE = eINSTANCE.getArchitecture();
+
+ /**
+ * The meta object literal for the '<em><b>Exhibited In</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ARCHITECTURE__EXHIBITED_IN = eINSTANCE.getArchitecture_ExhibitedIn();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureRationaleImpl <em>Architecture Rationale</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureRationaleImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.Iso42010PackageImpl#getArchitectureRationale()
+ * @generated
+ */
+ EClass ARCHITECTURE_RATIONALE = eINSTANCE.getArchitectureRationale();
+
+ /**
+ * The meta object literal for the '<em><b>Justifies</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ARCHITECTURE_RATIONALE__JUSTIFIES = eINSTANCE.getArchitectureRationale_Justifies();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.CorrespondenceImpl <em>Correspondence</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.CorrespondenceImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.Iso42010PackageImpl#getCorrespondence()
+ * @generated
+ */
+ EClass CORRESPONDENCE = eINSTANCE.getCorrespondence();
+
+ /**
+ * The meta object literal for the '<em><b>Governed By</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CORRESPONDENCE__GOVERNED_BY = eINSTANCE.getCorrespondence_GovernedBy();
+
+ /**
+ * The meta object literal for the '<em><b>Relates</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CORRESPONDENCE__RELATES = eINSTANCE.getCorrespondence_Relates();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.CorrespondenceRuleImpl <em>Correspondence Rule</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.CorrespondenceRuleImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.Iso42010PackageImpl#getCorrespondenceRule()
+ * @generated
+ */
+ EClass CORRESPONDENCE_RULE = eINSTANCE.getCorrespondenceRule();
+
+ /**
+ * The meta object literal for the '<em><b>Governs</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CORRESPONDENCE_RULE__GOVERNS = eINSTANCE.getCorrespondenceRule_Governs();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureDecisionImpl <em>Architecture Decision</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureDecisionImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.Iso42010PackageImpl#getArchitectureDecision()
+ * @generated
+ */
+ EClass ARCHITECTURE_DECISION = eINSTANCE.getArchitectureDecision();
+
+ /**
+ * The meta object literal for the '<em><b>Justified By</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ARCHITECTURE_DECISION__JUSTIFIED_BY = eINSTANCE.getArchitectureDecision_JustifiedBy();
+
+ /**
+ * The meta object literal for the '<em><b>Depends Upon</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ARCHITECTURE_DECISION__DEPENDS_UPON = eINSTANCE.getArchitectureDecision_DependsUpon();
+
+ /**
+ * The meta object literal for the '<em><b>Dependents</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ARCHITECTURE_DECISION__DEPENDENTS = eINSTANCE.getArchitectureDecision_Dependents();
+
+ /**
+ * The meta object literal for the '<em><b>Raises</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ARCHITECTURE_DECISION__RAISES = eINSTANCE.getArchitectureDecision_Raises();
+
+ /**
+ * The meta object literal for the '<em><b>Pertains To</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ARCHITECTURE_DECISION__PERTAINS_TO = eINSTANCE.getArchitectureDecision_PertainsTo();
+
+ /**
+ * The meta object literal for the '<em><b>Affects</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ARCHITECTURE_DECISION__AFFECTS = eINSTANCE.getArchitectureDecision_Affects();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureFrameworkImpl <em>Architecture Framework</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureFrameworkImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.impl.Iso42010PackageImpl#getArchitectureFramework()
+ * @generated
+ */
+ EClass ARCHITECTURE_FRAMEWORK = eINSTANCE.getArchitectureFramework();
+
+ /**
+ * The meta object literal for the '<em><b>Stakeholders</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ARCHITECTURE_FRAMEWORK__STAKEHOLDERS = eINSTANCE.getArchitectureFramework_Stakeholders();
+
+ /**
+ * The meta object literal for the '<em><b>Viewpoints</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ARCHITECTURE_FRAMEWORK__VIEWPOINTS = eINSTANCE.getArchitectureFramework_Viewpoints();
+
+ /**
+ * The meta object literal for the '<em><b>Rules</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ARCHITECTURE_FRAMEWORK__RULES = eINSTANCE.getArchitectureFramework_Rules();
+
+ /**
+ * The meta object literal for the '<em><b>Concerns</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ARCHITECTURE_FRAMEWORK__CONCERNS = eINSTANCE.getArchitectureFramework_Concerns();
+
+ }
+
+} //Iso42010Package
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/ModelKind.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/ModelKind.java
new file mode 100755
index 00000000000..3b33317b3b1
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/ModelKind.java
@@ -0,0 +1,82 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.iso42010;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Model Kind</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ModelKind#getGoverns <em>Governs</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ModelKind#getViewpoint <em>Viewpoint</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getModelKind()
+ * @model
+ * @generated
+ */
+public interface ModelKind extends ADElement {
+ /**
+ * Returns the value of the '<em><b>Governs</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureModel}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureModel#getGovernedBy <em>Governed By</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Governs</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Governs</em>' reference list.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getModelKind_Governs()
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureModel#getGovernedBy
+ * @model opposite="governedBy" required="true"
+ * @generated
+ */
+ EList<ArchitectureModel> getGoverns();
+
+ /**
+ * Returns the value of the '<em><b>Viewpoint</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureViewpoint#getModelKinds <em>Model Kinds</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Viewpoint</em>' container reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Viewpoint</em>' container reference.
+ * @see #setViewpoint(ArchitectureViewpoint)
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getModelKind_Viewpoint()
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureViewpoint#getModelKinds
+ * @model opposite="modelKinds" required="true" transient="false"
+ * @generated
+ */
+ ArchitectureViewpoint getViewpoint();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ModelKind#getViewpoint <em>Viewpoint</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Viewpoint</em>' container reference.
+ * @see #getViewpoint()
+ * @generated
+ */
+ void setViewpoint(ArchitectureViewpoint value);
+
+} // ModelKind
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/Stakeholder.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/Stakeholder.java
new file mode 100755
index 00000000000..75ed915763d
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/Stakeholder.java
@@ -0,0 +1,99 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.iso42010;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Stakeholder</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.Stakeholder#getConcerns <em>Concerns</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.Stakeholder#getViewpoints <em>Viewpoints</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.Stakeholder#getHasInterestIn <em>Has Interest In</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getStakeholder()
+ * @model
+ * @generated
+ */
+public interface Stakeholder extends ADElement {
+ /**
+ * Returns the value of the '<em><b>Concerns</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.infra.viewpoints.iso42010.Concern}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.Concern#getStakeholders <em>Stakeholders</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Concerns</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Concerns</em>' reference list.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getStakeholder_Concerns()
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Concern#getStakeholders
+ * @model opposite="stakeholders" required="true"
+ * @generated
+ */
+ EList<Concern> getConcerns();
+
+ /**
+ * Returns the value of the '<em><b>Viewpoints</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureViewpoint}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Viewpoints</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Viewpoints</em>' reference list.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getStakeholder_Viewpoints()
+ * @model required="true"
+ * @generated
+ */
+ EList<ArchitectureViewpoint> getViewpoints();
+
+ /**
+ * Returns the value of the '<em><b>Has Interest In</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.System#getStakeholders <em>Stakeholders</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Has Interest In</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Has Interest In</em>' reference.
+ * @see #setHasInterestIn(org.eclipse.papyrus.infra.viewpoints.iso42010.System)
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getStakeholder_HasInterestIn()
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.System#getStakeholders
+ * @model opposite="stakeholders" required="true"
+ * @generated
+ */
+ org.eclipse.papyrus.infra.viewpoints.iso42010.System getHasInterestIn();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.Stakeholder#getHasInterestIn <em>Has Interest In</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Has Interest In</em>' reference.
+ * @see #getHasInterestIn()
+ * @generated
+ */
+ void setHasInterestIn(org.eclipse.papyrus.infra.viewpoints.iso42010.System value);
+
+} // Stakeholder
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/System.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/System.java
new file mode 100755
index 00000000000..0e5b51cfd08
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/System.java
@@ -0,0 +1,111 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.iso42010;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>System</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.System#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.System#getStakeholders <em>Stakeholders</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.System#getExhibits <em>Exhibits</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getSystem()
+ * @model
+ * @generated
+ */
+public interface System extends EObject {
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getSystem_Name()
+ * @model required="true"
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.System#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Stakeholders</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.infra.viewpoints.iso42010.Stakeholder}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.Stakeholder#getHasInterestIn <em>Has Interest In</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Stakeholders</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Stakeholders</em>' reference list.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getSystem_Stakeholders()
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Stakeholder#getHasInterestIn
+ * @model opposite="hasInterestIn" required="true"
+ * @generated
+ */
+ EList<Stakeholder> getStakeholders();
+
+ /**
+ * Returns the value of the '<em><b>Exhibits</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.Architecture#getExhibitedIn <em>Exhibited In</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Exhibits</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Exhibits</em>' reference.
+ * @see #setExhibits(Architecture)
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#getSystem_Exhibits()
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Architecture#getExhibitedIn
+ * @model opposite="exhibitedIn" required="true"
+ * @generated
+ */
+ Architecture getExhibits();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.System#getExhibits <em>Exhibits</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Exhibits</em>' reference.
+ * @see #getExhibits()
+ * @generated
+ */
+ void setExhibits(Architecture value);
+
+} // System
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/ADElementImpl.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/ADElementImpl.java
new file mode 100755
index 00000000000..a9b03c65a96
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/ADElementImpl.java
@@ -0,0 +1,248 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.iso42010.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ADElement;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDecision;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>AD Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ADElementImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ADElementImpl#getAffectedBy <em>Affected By</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class ADElementImpl extends MinimalEObjectImpl.Container implements ADElement {
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getAffectedBy() <em>Affected By</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAffectedBy()
+ * @generated
+ * @ordered
+ */
+ protected EList<ArchitectureDecision> affectedBy;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ADElementImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Iso42010Package.Literals.AD_ELEMENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName) {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Iso42010Package.AD_ELEMENT__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<ArchitectureDecision> getAffectedBy() {
+ if (affectedBy == null) {
+ affectedBy = new EObjectWithInverseResolvingEList.ManyInverse<ArchitectureDecision>(ArchitectureDecision.class, this, Iso42010Package.AD_ELEMENT__AFFECTED_BY, Iso42010Package.ARCHITECTURE_DECISION__AFFECTS);
+ }
+ return affectedBy;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case Iso42010Package.AD_ELEMENT__AFFECTED_BY:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getAffectedBy()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case Iso42010Package.AD_ELEMENT__AFFECTED_BY:
+ return ((InternalEList<?>)getAffectedBy()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Iso42010Package.AD_ELEMENT__NAME:
+ return getName();
+ case Iso42010Package.AD_ELEMENT__AFFECTED_BY:
+ return getAffectedBy();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Iso42010Package.AD_ELEMENT__NAME:
+ setName((String)newValue);
+ return;
+ case Iso42010Package.AD_ELEMENT__AFFECTED_BY:
+ getAffectedBy().clear();
+ getAffectedBy().addAll((Collection<? extends ArchitectureDecision>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Iso42010Package.AD_ELEMENT__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case Iso42010Package.AD_ELEMENT__AFFECTED_BY:
+ getAffectedBy().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Iso42010Package.AD_ELEMENT__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case Iso42010Package.AD_ELEMENT__AFFECTED_BY:
+ return affectedBy != null && !affectedBy.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ADElementImpl
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/ArchitectureDecisionImpl.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/ArchitectureDecisionImpl.java
new file mode 100755
index 00000000000..310c93effae
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/ArchitectureDecisionImpl.java
@@ -0,0 +1,368 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.iso42010.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ADElement;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDecision;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureRationale;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Concern;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Architecture Decision</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureDecisionImpl#getJustifiedBy <em>Justified By</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureDecisionImpl#getDependsUpon <em>Depends Upon</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureDecisionImpl#getDependents <em>Dependents</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureDecisionImpl#getRaises <em>Raises</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureDecisionImpl#getPertainsTo <em>Pertains To</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureDecisionImpl#getAffects <em>Affects</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ArchitectureDecisionImpl extends ADElementImpl implements ArchitectureDecision {
+ /**
+ * The cached value of the '{@link #getJustifiedBy() <em>Justified By</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getJustifiedBy()
+ * @generated
+ * @ordered
+ */
+ protected EList<ArchitectureRationale> justifiedBy;
+
+ /**
+ * The cached value of the '{@link #getDependsUpon() <em>Depends Upon</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDependsUpon()
+ * @generated
+ * @ordered
+ */
+ protected EList<ArchitectureDecision> dependsUpon;
+
+ /**
+ * The cached value of the '{@link #getDependents() <em>Dependents</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDependents()
+ * @generated
+ * @ordered
+ */
+ protected EList<ArchitectureDecision> dependents;
+
+ /**
+ * The cached value of the '{@link #getRaises() <em>Raises</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRaises()
+ * @generated
+ * @ordered
+ */
+ protected EList<Concern> raises;
+
+ /**
+ * The cached value of the '{@link #getPertainsTo() <em>Pertains To</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPertainsTo()
+ * @generated
+ * @ordered
+ */
+ protected EList<Concern> pertainsTo;
+
+ /**
+ * The cached value of the '{@link #getAffects() <em>Affects</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAffects()
+ * @generated
+ * @ordered
+ */
+ protected EList<ADElement> affects;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ArchitectureDecisionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Iso42010Package.Literals.ARCHITECTURE_DECISION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<ArchitectureRationale> getJustifiedBy() {
+ if (justifiedBy == null) {
+ justifiedBy = new EObjectWithInverseResolvingEList.ManyInverse<ArchitectureRationale>(ArchitectureRationale.class, this, Iso42010Package.ARCHITECTURE_DECISION__JUSTIFIED_BY, Iso42010Package.ARCHITECTURE_RATIONALE__JUSTIFIES);
+ }
+ return justifiedBy;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<ArchitectureDecision> getDependsUpon() {
+ if (dependsUpon == null) {
+ dependsUpon = new EObjectWithInverseResolvingEList.ManyInverse<ArchitectureDecision>(ArchitectureDecision.class, this, Iso42010Package.ARCHITECTURE_DECISION__DEPENDS_UPON, Iso42010Package.ARCHITECTURE_DECISION__DEPENDENTS);
+ }
+ return dependsUpon;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<ArchitectureDecision> getDependents() {
+ if (dependents == null) {
+ dependents = new EObjectWithInverseResolvingEList.ManyInverse<ArchitectureDecision>(ArchitectureDecision.class, this, Iso42010Package.ARCHITECTURE_DECISION__DEPENDENTS, Iso42010Package.ARCHITECTURE_DECISION__DEPENDS_UPON);
+ }
+ return dependents;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Concern> getRaises() {
+ if (raises == null) {
+ raises = new EObjectWithInverseResolvingEList.ManyInverse<Concern>(Concern.class, this, Iso42010Package.ARCHITECTURE_DECISION__RAISES, Iso42010Package.CONCERN__RAISED_BY);
+ }
+ return raises;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Concern> getPertainsTo() {
+ if (pertainsTo == null) {
+ pertainsTo = new EObjectWithInverseResolvingEList.ManyInverse<Concern>(Concern.class, this, Iso42010Package.ARCHITECTURE_DECISION__PERTAINS_TO, Iso42010Package.CONCERN__DECISIONS);
+ }
+ return pertainsTo;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<ADElement> getAffects() {
+ if (affects == null) {
+ affects = new EObjectWithInverseResolvingEList.ManyInverse<ADElement>(ADElement.class, this, Iso42010Package.ARCHITECTURE_DECISION__AFFECTS, Iso42010Package.AD_ELEMENT__AFFECTED_BY);
+ }
+ return affects;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case Iso42010Package.ARCHITECTURE_DECISION__JUSTIFIED_BY:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getJustifiedBy()).basicAdd(otherEnd, msgs);
+ case Iso42010Package.ARCHITECTURE_DECISION__DEPENDS_UPON:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getDependsUpon()).basicAdd(otherEnd, msgs);
+ case Iso42010Package.ARCHITECTURE_DECISION__DEPENDENTS:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getDependents()).basicAdd(otherEnd, msgs);
+ case Iso42010Package.ARCHITECTURE_DECISION__RAISES:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getRaises()).basicAdd(otherEnd, msgs);
+ case Iso42010Package.ARCHITECTURE_DECISION__PERTAINS_TO:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getPertainsTo()).basicAdd(otherEnd, msgs);
+ case Iso42010Package.ARCHITECTURE_DECISION__AFFECTS:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getAffects()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case Iso42010Package.ARCHITECTURE_DECISION__JUSTIFIED_BY:
+ return ((InternalEList<?>)getJustifiedBy()).basicRemove(otherEnd, msgs);
+ case Iso42010Package.ARCHITECTURE_DECISION__DEPENDS_UPON:
+ return ((InternalEList<?>)getDependsUpon()).basicRemove(otherEnd, msgs);
+ case Iso42010Package.ARCHITECTURE_DECISION__DEPENDENTS:
+ return ((InternalEList<?>)getDependents()).basicRemove(otherEnd, msgs);
+ case Iso42010Package.ARCHITECTURE_DECISION__RAISES:
+ return ((InternalEList<?>)getRaises()).basicRemove(otherEnd, msgs);
+ case Iso42010Package.ARCHITECTURE_DECISION__PERTAINS_TO:
+ return ((InternalEList<?>)getPertainsTo()).basicRemove(otherEnd, msgs);
+ case Iso42010Package.ARCHITECTURE_DECISION__AFFECTS:
+ return ((InternalEList<?>)getAffects()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Iso42010Package.ARCHITECTURE_DECISION__JUSTIFIED_BY:
+ return getJustifiedBy();
+ case Iso42010Package.ARCHITECTURE_DECISION__DEPENDS_UPON:
+ return getDependsUpon();
+ case Iso42010Package.ARCHITECTURE_DECISION__DEPENDENTS:
+ return getDependents();
+ case Iso42010Package.ARCHITECTURE_DECISION__RAISES:
+ return getRaises();
+ case Iso42010Package.ARCHITECTURE_DECISION__PERTAINS_TO:
+ return getPertainsTo();
+ case Iso42010Package.ARCHITECTURE_DECISION__AFFECTS:
+ return getAffects();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Iso42010Package.ARCHITECTURE_DECISION__JUSTIFIED_BY:
+ getJustifiedBy().clear();
+ getJustifiedBy().addAll((Collection<? extends ArchitectureRationale>)newValue);
+ return;
+ case Iso42010Package.ARCHITECTURE_DECISION__DEPENDS_UPON:
+ getDependsUpon().clear();
+ getDependsUpon().addAll((Collection<? extends ArchitectureDecision>)newValue);
+ return;
+ case Iso42010Package.ARCHITECTURE_DECISION__DEPENDENTS:
+ getDependents().clear();
+ getDependents().addAll((Collection<? extends ArchitectureDecision>)newValue);
+ return;
+ case Iso42010Package.ARCHITECTURE_DECISION__RAISES:
+ getRaises().clear();
+ getRaises().addAll((Collection<? extends Concern>)newValue);
+ return;
+ case Iso42010Package.ARCHITECTURE_DECISION__PERTAINS_TO:
+ getPertainsTo().clear();
+ getPertainsTo().addAll((Collection<? extends Concern>)newValue);
+ return;
+ case Iso42010Package.ARCHITECTURE_DECISION__AFFECTS:
+ getAffects().clear();
+ getAffects().addAll((Collection<? extends ADElement>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Iso42010Package.ARCHITECTURE_DECISION__JUSTIFIED_BY:
+ getJustifiedBy().clear();
+ return;
+ case Iso42010Package.ARCHITECTURE_DECISION__DEPENDS_UPON:
+ getDependsUpon().clear();
+ return;
+ case Iso42010Package.ARCHITECTURE_DECISION__DEPENDENTS:
+ getDependents().clear();
+ return;
+ case Iso42010Package.ARCHITECTURE_DECISION__RAISES:
+ getRaises().clear();
+ return;
+ case Iso42010Package.ARCHITECTURE_DECISION__PERTAINS_TO:
+ getPertainsTo().clear();
+ return;
+ case Iso42010Package.ARCHITECTURE_DECISION__AFFECTS:
+ getAffects().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Iso42010Package.ARCHITECTURE_DECISION__JUSTIFIED_BY:
+ return justifiedBy != null && !justifiedBy.isEmpty();
+ case Iso42010Package.ARCHITECTURE_DECISION__DEPENDS_UPON:
+ return dependsUpon != null && !dependsUpon.isEmpty();
+ case Iso42010Package.ARCHITECTURE_DECISION__DEPENDENTS:
+ return dependents != null && !dependents.isEmpty();
+ case Iso42010Package.ARCHITECTURE_DECISION__RAISES:
+ return raises != null && !raises.isEmpty();
+ case Iso42010Package.ARCHITECTURE_DECISION__PERTAINS_TO:
+ return pertainsTo != null && !pertainsTo.isEmpty();
+ case Iso42010Package.ARCHITECTURE_DECISION__AFFECTS:
+ return affects != null && !affects.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ArchitectureDecisionImpl
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/ArchitectureDescriptionImpl.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/ArchitectureDescriptionImpl.java
new file mode 100755
index 00000000000..ae18388f9e1
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/ArchitectureDescriptionImpl.java
@@ -0,0 +1,557 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.iso42010.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Architecture;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDecision;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDescription;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureRationale;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureView;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureViewpoint;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Concern;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Correspondence;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.CorrespondenceRule;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Stakeholder;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Architecture Description</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureDescriptionImpl#getStakeholders <em>Stakeholders</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureDescriptionImpl#getConcerns <em>Concerns</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureDescriptionImpl#getViewpoints <em>Viewpoints</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureDescriptionImpl#getViews <em>Views</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureDescriptionImpl#getSystem <em>System</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureDescriptionImpl#getExpresses <em>Expresses</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureDescriptionImpl#getRationales <em>Rationales</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureDescriptionImpl#getCorrespondences <em>Correspondences</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureDescriptionImpl#getRules <em>Rules</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureDescriptionImpl#getDecisions <em>Decisions</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ArchitectureDescriptionImpl extends MinimalEObjectImpl.Container implements ArchitectureDescription {
+ /**
+ * The cached value of the '{@link #getStakeholders() <em>Stakeholders</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStakeholders()
+ * @generated
+ * @ordered
+ */
+ protected EList<Stakeholder> stakeholders;
+
+ /**
+ * The cached value of the '{@link #getConcerns() <em>Concerns</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getConcerns()
+ * @generated
+ * @ordered
+ */
+ protected EList<Concern> concerns;
+
+ /**
+ * The cached value of the '{@link #getViewpoints() <em>Viewpoints</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getViewpoints()
+ * @generated
+ * @ordered
+ */
+ protected EList<ArchitectureViewpoint> viewpoints;
+
+ /**
+ * The cached value of the '{@link #getViews() <em>Views</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getViews()
+ * @generated
+ * @ordered
+ */
+ protected EList<ArchitectureView> views;
+
+ /**
+ * The cached value of the '{@link #getSystem() <em>System</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSystem()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.papyrus.infra.viewpoints.iso42010.System system;
+
+ /**
+ * The cached value of the '{@link #getExpresses() <em>Expresses</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExpresses()
+ * @generated
+ * @ordered
+ */
+ protected Architecture expresses;
+
+ /**
+ * The cached value of the '{@link #getRationales() <em>Rationales</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRationales()
+ * @generated
+ * @ordered
+ */
+ protected EList<ArchitectureRationale> rationales;
+
+ /**
+ * The cached value of the '{@link #getCorrespondences() <em>Correspondences</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCorrespondences()
+ * @generated
+ * @ordered
+ */
+ protected EList<Correspondence> correspondences;
+
+ /**
+ * The cached value of the '{@link #getRules() <em>Rules</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRules()
+ * @generated
+ * @ordered
+ */
+ protected EList<CorrespondenceRule> rules;
+
+ /**
+ * The cached value of the '{@link #getDecisions() <em>Decisions</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDecisions()
+ * @generated
+ * @ordered
+ */
+ protected EList<ArchitectureDecision> decisions;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ArchitectureDescriptionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Iso42010Package.Literals.ARCHITECTURE_DESCRIPTION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Stakeholder> getStakeholders() {
+ if (stakeholders == null) {
+ stakeholders = new EObjectContainmentEList<Stakeholder>(Stakeholder.class, this, Iso42010Package.ARCHITECTURE_DESCRIPTION__STAKEHOLDERS);
+ }
+ return stakeholders;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Concern> getConcerns() {
+ if (concerns == null) {
+ concerns = new EObjectContainmentEList<Concern>(Concern.class, this, Iso42010Package.ARCHITECTURE_DESCRIPTION__CONCERNS);
+ }
+ return concerns;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<ArchitectureViewpoint> getViewpoints() {
+ if (viewpoints == null) {
+ viewpoints = new EObjectContainmentEList<ArchitectureViewpoint>(ArchitectureViewpoint.class, this, Iso42010Package.ARCHITECTURE_DESCRIPTION__VIEWPOINTS);
+ }
+ return viewpoints;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<ArchitectureView> getViews() {
+ if (views == null) {
+ views = new EObjectContainmentEList<ArchitectureView>(ArchitectureView.class, this, Iso42010Package.ARCHITECTURE_DESCRIPTION__VIEWS);
+ }
+ return views;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.papyrus.infra.viewpoints.iso42010.System getSystem() {
+ return system;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetSystem(org.eclipse.papyrus.infra.viewpoints.iso42010.System newSystem, NotificationChain msgs) {
+ org.eclipse.papyrus.infra.viewpoints.iso42010.System oldSystem = system;
+ system = newSystem;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, Iso42010Package.ARCHITECTURE_DESCRIPTION__SYSTEM, oldSystem, newSystem);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSystem(org.eclipse.papyrus.infra.viewpoints.iso42010.System newSystem) {
+ if (newSystem != system) {
+ NotificationChain msgs = null;
+ if (system != null)
+ msgs = ((InternalEObject)system).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - Iso42010Package.ARCHITECTURE_DESCRIPTION__SYSTEM, null, msgs);
+ if (newSystem != null)
+ msgs = ((InternalEObject)newSystem).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - Iso42010Package.ARCHITECTURE_DESCRIPTION__SYSTEM, null, msgs);
+ msgs = basicSetSystem(newSystem, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Iso42010Package.ARCHITECTURE_DESCRIPTION__SYSTEM, newSystem, newSystem));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Architecture getExpresses() {
+ return expresses;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetExpresses(Architecture newExpresses, NotificationChain msgs) {
+ Architecture oldExpresses = expresses;
+ expresses = newExpresses;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, Iso42010Package.ARCHITECTURE_DESCRIPTION__EXPRESSES, oldExpresses, newExpresses);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setExpresses(Architecture newExpresses) {
+ if (newExpresses != expresses) {
+ NotificationChain msgs = null;
+ if (expresses != null)
+ msgs = ((InternalEObject)expresses).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - Iso42010Package.ARCHITECTURE_DESCRIPTION__EXPRESSES, null, msgs);
+ if (newExpresses != null)
+ msgs = ((InternalEObject)newExpresses).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - Iso42010Package.ARCHITECTURE_DESCRIPTION__EXPRESSES, null, msgs);
+ msgs = basicSetExpresses(newExpresses, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Iso42010Package.ARCHITECTURE_DESCRIPTION__EXPRESSES, newExpresses, newExpresses));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<ArchitectureRationale> getRationales() {
+ if (rationales == null) {
+ rationales = new EObjectContainmentEList<ArchitectureRationale>(ArchitectureRationale.class, this, Iso42010Package.ARCHITECTURE_DESCRIPTION__RATIONALES);
+ }
+ return rationales;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Correspondence> getCorrespondences() {
+ if (correspondences == null) {
+ correspondences = new EObjectContainmentEList<Correspondence>(Correspondence.class, this, Iso42010Package.ARCHITECTURE_DESCRIPTION__CORRESPONDENCES);
+ }
+ return correspondences;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<CorrespondenceRule> getRules() {
+ if (rules == null) {
+ rules = new EObjectContainmentEList<CorrespondenceRule>(CorrespondenceRule.class, this, Iso42010Package.ARCHITECTURE_DESCRIPTION__RULES);
+ }
+ return rules;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<ArchitectureDecision> getDecisions() {
+ if (decisions == null) {
+ decisions = new EObjectContainmentEList<ArchitectureDecision>(ArchitectureDecision.class, this, Iso42010Package.ARCHITECTURE_DESCRIPTION__DECISIONS);
+ }
+ return decisions;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__STAKEHOLDERS:
+ return ((InternalEList<?>)getStakeholders()).basicRemove(otherEnd, msgs);
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__CONCERNS:
+ return ((InternalEList<?>)getConcerns()).basicRemove(otherEnd, msgs);
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__VIEWPOINTS:
+ return ((InternalEList<?>)getViewpoints()).basicRemove(otherEnd, msgs);
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__VIEWS:
+ return ((InternalEList<?>)getViews()).basicRemove(otherEnd, msgs);
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__SYSTEM:
+ return basicSetSystem(null, msgs);
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__EXPRESSES:
+ return basicSetExpresses(null, msgs);
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__RATIONALES:
+ return ((InternalEList<?>)getRationales()).basicRemove(otherEnd, msgs);
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__CORRESPONDENCES:
+ return ((InternalEList<?>)getCorrespondences()).basicRemove(otherEnd, msgs);
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__RULES:
+ return ((InternalEList<?>)getRules()).basicRemove(otherEnd, msgs);
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__DECISIONS:
+ return ((InternalEList<?>)getDecisions()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__STAKEHOLDERS:
+ return getStakeholders();
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__CONCERNS:
+ return getConcerns();
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__VIEWPOINTS:
+ return getViewpoints();
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__VIEWS:
+ return getViews();
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__SYSTEM:
+ return getSystem();
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__EXPRESSES:
+ return getExpresses();
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__RATIONALES:
+ return getRationales();
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__CORRESPONDENCES:
+ return getCorrespondences();
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__RULES:
+ return getRules();
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__DECISIONS:
+ return getDecisions();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__STAKEHOLDERS:
+ getStakeholders().clear();
+ getStakeholders().addAll((Collection<? extends Stakeholder>)newValue);
+ return;
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__CONCERNS:
+ getConcerns().clear();
+ getConcerns().addAll((Collection<? extends Concern>)newValue);
+ return;
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__VIEWPOINTS:
+ getViewpoints().clear();
+ getViewpoints().addAll((Collection<? extends ArchitectureViewpoint>)newValue);
+ return;
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__VIEWS:
+ getViews().clear();
+ getViews().addAll((Collection<? extends ArchitectureView>)newValue);
+ return;
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__SYSTEM:
+ setSystem((org.eclipse.papyrus.infra.viewpoints.iso42010.System)newValue);
+ return;
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__EXPRESSES:
+ setExpresses((Architecture)newValue);
+ return;
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__RATIONALES:
+ getRationales().clear();
+ getRationales().addAll((Collection<? extends ArchitectureRationale>)newValue);
+ return;
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__CORRESPONDENCES:
+ getCorrespondences().clear();
+ getCorrespondences().addAll((Collection<? extends Correspondence>)newValue);
+ return;
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__RULES:
+ getRules().clear();
+ getRules().addAll((Collection<? extends CorrespondenceRule>)newValue);
+ return;
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__DECISIONS:
+ getDecisions().clear();
+ getDecisions().addAll((Collection<? extends ArchitectureDecision>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__STAKEHOLDERS:
+ getStakeholders().clear();
+ return;
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__CONCERNS:
+ getConcerns().clear();
+ return;
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__VIEWPOINTS:
+ getViewpoints().clear();
+ return;
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__VIEWS:
+ getViews().clear();
+ return;
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__SYSTEM:
+ setSystem((org.eclipse.papyrus.infra.viewpoints.iso42010.System)null);
+ return;
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__EXPRESSES:
+ setExpresses((Architecture)null);
+ return;
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__RATIONALES:
+ getRationales().clear();
+ return;
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__CORRESPONDENCES:
+ getCorrespondences().clear();
+ return;
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__RULES:
+ getRules().clear();
+ return;
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__DECISIONS:
+ getDecisions().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__STAKEHOLDERS:
+ return stakeholders != null && !stakeholders.isEmpty();
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__CONCERNS:
+ return concerns != null && !concerns.isEmpty();
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__VIEWPOINTS:
+ return viewpoints != null && !viewpoints.isEmpty();
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__VIEWS:
+ return views != null && !views.isEmpty();
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__SYSTEM:
+ return system != null;
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__EXPRESSES:
+ return expresses != null;
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__RATIONALES:
+ return rationales != null && !rationales.isEmpty();
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__CORRESPONDENCES:
+ return correspondences != null && !correspondences.isEmpty();
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__RULES:
+ return rules != null && !rules.isEmpty();
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION__DECISIONS:
+ return decisions != null && !decisions.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ArchitectureDescriptionImpl
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/ArchitectureFrameworkImpl.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/ArchitectureFrameworkImpl.java
new file mode 100755
index 00000000000..c8e79a51472
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/ArchitectureFrameworkImpl.java
@@ -0,0 +1,274 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.iso42010.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureFramework;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureViewpoint;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Concern;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.CorrespondenceRule;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Stakeholder;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Architecture Framework</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureFrameworkImpl#getStakeholders <em>Stakeholders</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureFrameworkImpl#getViewpoints <em>Viewpoints</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureFrameworkImpl#getRules <em>Rules</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureFrameworkImpl#getConcerns <em>Concerns</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ArchitectureFrameworkImpl extends MinimalEObjectImpl.Container implements ArchitectureFramework {
+ /**
+ * The cached value of the '{@link #getStakeholders() <em>Stakeholders</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStakeholders()
+ * @generated
+ * @ordered
+ */
+ protected EList<Stakeholder> stakeholders;
+
+ /**
+ * The cached value of the '{@link #getViewpoints() <em>Viewpoints</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getViewpoints()
+ * @generated
+ * @ordered
+ */
+ protected EList<ArchitectureViewpoint> viewpoints;
+
+ /**
+ * The cached value of the '{@link #getRules() <em>Rules</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRules()
+ * @generated
+ * @ordered
+ */
+ protected EList<CorrespondenceRule> rules;
+
+ /**
+ * The cached value of the '{@link #getConcerns() <em>Concerns</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getConcerns()
+ * @generated
+ * @ordered
+ */
+ protected EList<Concern> concerns;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ArchitectureFrameworkImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Iso42010Package.Literals.ARCHITECTURE_FRAMEWORK;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Stakeholder> getStakeholders() {
+ if (stakeholders == null) {
+ stakeholders = new EObjectContainmentEList<Stakeholder>(Stakeholder.class, this, Iso42010Package.ARCHITECTURE_FRAMEWORK__STAKEHOLDERS);
+ }
+ return stakeholders;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<ArchitectureViewpoint> getViewpoints() {
+ if (viewpoints == null) {
+ viewpoints = new EObjectContainmentEList<ArchitectureViewpoint>(ArchitectureViewpoint.class, this, Iso42010Package.ARCHITECTURE_FRAMEWORK__VIEWPOINTS);
+ }
+ return viewpoints;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<CorrespondenceRule> getRules() {
+ if (rules == null) {
+ rules = new EObjectContainmentEList<CorrespondenceRule>(CorrespondenceRule.class, this, Iso42010Package.ARCHITECTURE_FRAMEWORK__RULES);
+ }
+ return rules;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Concern> getConcerns() {
+ if (concerns == null) {
+ concerns = new EObjectContainmentEList<Concern>(Concern.class, this, Iso42010Package.ARCHITECTURE_FRAMEWORK__CONCERNS);
+ }
+ return concerns;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case Iso42010Package.ARCHITECTURE_FRAMEWORK__STAKEHOLDERS:
+ return ((InternalEList<?>)getStakeholders()).basicRemove(otherEnd, msgs);
+ case Iso42010Package.ARCHITECTURE_FRAMEWORK__VIEWPOINTS:
+ return ((InternalEList<?>)getViewpoints()).basicRemove(otherEnd, msgs);
+ case Iso42010Package.ARCHITECTURE_FRAMEWORK__RULES:
+ return ((InternalEList<?>)getRules()).basicRemove(otherEnd, msgs);
+ case Iso42010Package.ARCHITECTURE_FRAMEWORK__CONCERNS:
+ return ((InternalEList<?>)getConcerns()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Iso42010Package.ARCHITECTURE_FRAMEWORK__STAKEHOLDERS:
+ return getStakeholders();
+ case Iso42010Package.ARCHITECTURE_FRAMEWORK__VIEWPOINTS:
+ return getViewpoints();
+ case Iso42010Package.ARCHITECTURE_FRAMEWORK__RULES:
+ return getRules();
+ case Iso42010Package.ARCHITECTURE_FRAMEWORK__CONCERNS:
+ return getConcerns();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Iso42010Package.ARCHITECTURE_FRAMEWORK__STAKEHOLDERS:
+ getStakeholders().clear();
+ getStakeholders().addAll((Collection<? extends Stakeholder>)newValue);
+ return;
+ case Iso42010Package.ARCHITECTURE_FRAMEWORK__VIEWPOINTS:
+ getViewpoints().clear();
+ getViewpoints().addAll((Collection<? extends ArchitectureViewpoint>)newValue);
+ return;
+ case Iso42010Package.ARCHITECTURE_FRAMEWORK__RULES:
+ getRules().clear();
+ getRules().addAll((Collection<? extends CorrespondenceRule>)newValue);
+ return;
+ case Iso42010Package.ARCHITECTURE_FRAMEWORK__CONCERNS:
+ getConcerns().clear();
+ getConcerns().addAll((Collection<? extends Concern>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Iso42010Package.ARCHITECTURE_FRAMEWORK__STAKEHOLDERS:
+ getStakeholders().clear();
+ return;
+ case Iso42010Package.ARCHITECTURE_FRAMEWORK__VIEWPOINTS:
+ getViewpoints().clear();
+ return;
+ case Iso42010Package.ARCHITECTURE_FRAMEWORK__RULES:
+ getRules().clear();
+ return;
+ case Iso42010Package.ARCHITECTURE_FRAMEWORK__CONCERNS:
+ getConcerns().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Iso42010Package.ARCHITECTURE_FRAMEWORK__STAKEHOLDERS:
+ return stakeholders != null && !stakeholders.isEmpty();
+ case Iso42010Package.ARCHITECTURE_FRAMEWORK__VIEWPOINTS:
+ return viewpoints != null && !viewpoints.isEmpty();
+ case Iso42010Package.ARCHITECTURE_FRAMEWORK__RULES:
+ return rules != null && !rules.isEmpty();
+ case Iso42010Package.ARCHITECTURE_FRAMEWORK__CONCERNS:
+ return concerns != null && !concerns.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ArchitectureFrameworkImpl
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/ArchitectureImpl.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/ArchitectureImpl.java
new file mode 100755
index 00000000000..882593422e1
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/ArchitectureImpl.java
@@ -0,0 +1,220 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.iso42010.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Architecture;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Architecture</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureImpl#getExhibitedIn <em>Exhibited In</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ArchitectureImpl extends MinimalEObjectImpl.Container implements Architecture {
+ /**
+ * The cached value of the '{@link #getExhibitedIn() <em>Exhibited In</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExhibitedIn()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.papyrus.infra.viewpoints.iso42010.System exhibitedIn;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ArchitectureImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Iso42010Package.Literals.ARCHITECTURE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.papyrus.infra.viewpoints.iso42010.System getExhibitedIn() {
+ if (exhibitedIn != null && exhibitedIn.eIsProxy()) {
+ InternalEObject oldExhibitedIn = (InternalEObject)exhibitedIn;
+ exhibitedIn = (org.eclipse.papyrus.infra.viewpoints.iso42010.System)eResolveProxy(oldExhibitedIn);
+ if (exhibitedIn != oldExhibitedIn) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, Iso42010Package.ARCHITECTURE__EXHIBITED_IN, oldExhibitedIn, exhibitedIn));
+ }
+ }
+ return exhibitedIn;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.papyrus.infra.viewpoints.iso42010.System basicGetExhibitedIn() {
+ return exhibitedIn;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetExhibitedIn(org.eclipse.papyrus.infra.viewpoints.iso42010.System newExhibitedIn, NotificationChain msgs) {
+ org.eclipse.papyrus.infra.viewpoints.iso42010.System oldExhibitedIn = exhibitedIn;
+ exhibitedIn = newExhibitedIn;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, Iso42010Package.ARCHITECTURE__EXHIBITED_IN, oldExhibitedIn, newExhibitedIn);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setExhibitedIn(org.eclipse.papyrus.infra.viewpoints.iso42010.System newExhibitedIn) {
+ if (newExhibitedIn != exhibitedIn) {
+ NotificationChain msgs = null;
+ if (exhibitedIn != null)
+ msgs = ((InternalEObject)exhibitedIn).eInverseRemove(this, Iso42010Package.SYSTEM__EXHIBITS, org.eclipse.papyrus.infra.viewpoints.iso42010.System.class, msgs);
+ if (newExhibitedIn != null)
+ msgs = ((InternalEObject)newExhibitedIn).eInverseAdd(this, Iso42010Package.SYSTEM__EXHIBITS, org.eclipse.papyrus.infra.viewpoints.iso42010.System.class, msgs);
+ msgs = basicSetExhibitedIn(newExhibitedIn, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Iso42010Package.ARCHITECTURE__EXHIBITED_IN, newExhibitedIn, newExhibitedIn));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case Iso42010Package.ARCHITECTURE__EXHIBITED_IN:
+ if (exhibitedIn != null)
+ msgs = ((InternalEObject)exhibitedIn).eInverseRemove(this, Iso42010Package.SYSTEM__EXHIBITS, org.eclipse.papyrus.infra.viewpoints.iso42010.System.class, msgs);
+ return basicSetExhibitedIn((org.eclipse.papyrus.infra.viewpoints.iso42010.System)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case Iso42010Package.ARCHITECTURE__EXHIBITED_IN:
+ return basicSetExhibitedIn(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Iso42010Package.ARCHITECTURE__EXHIBITED_IN:
+ if (resolve) return getExhibitedIn();
+ return basicGetExhibitedIn();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Iso42010Package.ARCHITECTURE__EXHIBITED_IN:
+ setExhibitedIn((org.eclipse.papyrus.infra.viewpoints.iso42010.System)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Iso42010Package.ARCHITECTURE__EXHIBITED_IN:
+ setExhibitedIn((org.eclipse.papyrus.infra.viewpoints.iso42010.System)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Iso42010Package.ARCHITECTURE__EXHIBITED_IN:
+ return exhibitedIn != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ArchitectureImpl
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/ArchitectureModelImpl.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/ArchitectureModelImpl.java
new file mode 100755
index 00000000000..ccfef1fdb2b
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/ArchitectureModelImpl.java
@@ -0,0 +1,295 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.iso42010.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureModel;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureView;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ModelKind;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Architecture Model</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureModelImpl#getGovernedBy <em>Governed By</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureModelImpl#getView <em>View</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ArchitectureModelImpl extends ADElementImpl implements ArchitectureModel {
+ /**
+ * The cached value of the '{@link #getGovernedBy() <em>Governed By</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGovernedBy()
+ * @generated
+ * @ordered
+ */
+ protected ModelKind governedBy;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ArchitectureModelImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Iso42010Package.Literals.ARCHITECTURE_MODEL;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ModelKind getGovernedBy() {
+ if (governedBy != null && governedBy.eIsProxy()) {
+ InternalEObject oldGovernedBy = (InternalEObject)governedBy;
+ governedBy = (ModelKind)eResolveProxy(oldGovernedBy);
+ if (governedBy != oldGovernedBy) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, Iso42010Package.ARCHITECTURE_MODEL__GOVERNED_BY, oldGovernedBy, governedBy));
+ }
+ }
+ return governedBy;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ModelKind basicGetGovernedBy() {
+ return governedBy;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetGovernedBy(ModelKind newGovernedBy, NotificationChain msgs) {
+ ModelKind oldGovernedBy = governedBy;
+ governedBy = newGovernedBy;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, Iso42010Package.ARCHITECTURE_MODEL__GOVERNED_BY, oldGovernedBy, newGovernedBy);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setGovernedBy(ModelKind newGovernedBy) {
+ if (newGovernedBy != governedBy) {
+ NotificationChain msgs = null;
+ if (governedBy != null)
+ msgs = ((InternalEObject)governedBy).eInverseRemove(this, Iso42010Package.MODEL_KIND__GOVERNS, ModelKind.class, msgs);
+ if (newGovernedBy != null)
+ msgs = ((InternalEObject)newGovernedBy).eInverseAdd(this, Iso42010Package.MODEL_KIND__GOVERNS, ModelKind.class, msgs);
+ msgs = basicSetGovernedBy(newGovernedBy, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Iso42010Package.ARCHITECTURE_MODEL__GOVERNED_BY, newGovernedBy, newGovernedBy));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ArchitectureView getView() {
+ if (eContainerFeatureID() != Iso42010Package.ARCHITECTURE_MODEL__VIEW) return null;
+ return (ArchitectureView)eInternalContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetView(ArchitectureView newView, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject)newView, Iso42010Package.ARCHITECTURE_MODEL__VIEW, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setView(ArchitectureView newView) {
+ if (newView != eInternalContainer() || (eContainerFeatureID() != Iso42010Package.ARCHITECTURE_MODEL__VIEW && newView != null)) {
+ if (EcoreUtil.isAncestor(this, newView))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newView != null)
+ msgs = ((InternalEObject)newView).eInverseAdd(this, Iso42010Package.ARCHITECTURE_VIEW__MODELS, ArchitectureView.class, msgs);
+ msgs = basicSetView(newView, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Iso42010Package.ARCHITECTURE_MODEL__VIEW, newView, newView));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case Iso42010Package.ARCHITECTURE_MODEL__GOVERNED_BY:
+ if (governedBy != null)
+ msgs = ((InternalEObject)governedBy).eInverseRemove(this, Iso42010Package.MODEL_KIND__GOVERNS, ModelKind.class, msgs);
+ return basicSetGovernedBy((ModelKind)otherEnd, msgs);
+ case Iso42010Package.ARCHITECTURE_MODEL__VIEW:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetView((ArchitectureView)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case Iso42010Package.ARCHITECTURE_MODEL__GOVERNED_BY:
+ return basicSetGovernedBy(null, msgs);
+ case Iso42010Package.ARCHITECTURE_MODEL__VIEW:
+ return basicSetView(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case Iso42010Package.ARCHITECTURE_MODEL__VIEW:
+ return eInternalContainer().eInverseRemove(this, Iso42010Package.ARCHITECTURE_VIEW__MODELS, ArchitectureView.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Iso42010Package.ARCHITECTURE_MODEL__GOVERNED_BY:
+ if (resolve) return getGovernedBy();
+ return basicGetGovernedBy();
+ case Iso42010Package.ARCHITECTURE_MODEL__VIEW:
+ return getView();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Iso42010Package.ARCHITECTURE_MODEL__GOVERNED_BY:
+ setGovernedBy((ModelKind)newValue);
+ return;
+ case Iso42010Package.ARCHITECTURE_MODEL__VIEW:
+ setView((ArchitectureView)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Iso42010Package.ARCHITECTURE_MODEL__GOVERNED_BY:
+ setGovernedBy((ModelKind)null);
+ return;
+ case Iso42010Package.ARCHITECTURE_MODEL__VIEW:
+ setView((ArchitectureView)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Iso42010Package.ARCHITECTURE_MODEL__GOVERNED_BY:
+ return governedBy != null;
+ case Iso42010Package.ARCHITECTURE_MODEL__VIEW:
+ return getView() != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ArchitectureModelImpl
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/ArchitectureRationaleImpl.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/ArchitectureRationaleImpl.java
new file mode 100755
index 00000000000..00123eaf304
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/ArchitectureRationaleImpl.java
@@ -0,0 +1,176 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.iso42010.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDecision;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureRationale;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Architecture Rationale</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureRationaleImpl#getJustifies <em>Justifies</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ArchitectureRationaleImpl extends ADElementImpl implements ArchitectureRationale {
+ /**
+ * The cached value of the '{@link #getJustifies() <em>Justifies</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getJustifies()
+ * @generated
+ * @ordered
+ */
+ protected EList<ArchitectureDecision> justifies;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ArchitectureRationaleImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Iso42010Package.Literals.ARCHITECTURE_RATIONALE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<ArchitectureDecision> getJustifies() {
+ if (justifies == null) {
+ justifies = new EObjectWithInverseResolvingEList.ManyInverse<ArchitectureDecision>(ArchitectureDecision.class, this, Iso42010Package.ARCHITECTURE_RATIONALE__JUSTIFIES, Iso42010Package.ARCHITECTURE_DECISION__JUSTIFIED_BY);
+ }
+ return justifies;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case Iso42010Package.ARCHITECTURE_RATIONALE__JUSTIFIES:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getJustifies()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case Iso42010Package.ARCHITECTURE_RATIONALE__JUSTIFIES:
+ return ((InternalEList<?>)getJustifies()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Iso42010Package.ARCHITECTURE_RATIONALE__JUSTIFIES:
+ return getJustifies();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Iso42010Package.ARCHITECTURE_RATIONALE__JUSTIFIES:
+ getJustifies().clear();
+ getJustifies().addAll((Collection<? extends ArchitectureDecision>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Iso42010Package.ARCHITECTURE_RATIONALE__JUSTIFIES:
+ getJustifies().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Iso42010Package.ARCHITECTURE_RATIONALE__JUSTIFIES:
+ return justifies != null && !justifies.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ArchitectureRationaleImpl
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/ArchitectureViewImpl.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/ArchitectureViewImpl.java
new file mode 100755
index 00000000000..d303d80be2d
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/ArchitectureViewImpl.java
@@ -0,0 +1,308 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.iso42010.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureModel;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureView;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureViewpoint;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Concern;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Architecture View</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureViewImpl#getGovernedBy <em>Governed By</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureViewImpl#getModels <em>Models</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureViewImpl#getAddresses <em>Addresses</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ArchitectureViewImpl extends ADElementImpl implements ArchitectureView {
+ /**
+ * The cached value of the '{@link #getGovernedBy() <em>Governed By</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGovernedBy()
+ * @generated
+ * @ordered
+ */
+ protected ArchitectureViewpoint governedBy;
+
+ /**
+ * The cached value of the '{@link #getModels() <em>Models</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getModels()
+ * @generated
+ * @ordered
+ */
+ protected EList<ArchitectureModel> models;
+
+ /**
+ * The cached value of the '{@link #getAddresses() <em>Addresses</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAddresses()
+ * @generated
+ * @ordered
+ */
+ protected EList<Concern> addresses;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ArchitectureViewImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Iso42010Package.Literals.ARCHITECTURE_VIEW;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ArchitectureViewpoint getGovernedBy() {
+ if (governedBy != null && governedBy.eIsProxy()) {
+ InternalEObject oldGovernedBy = (InternalEObject)governedBy;
+ governedBy = (ArchitectureViewpoint)eResolveProxy(oldGovernedBy);
+ if (governedBy != oldGovernedBy) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, Iso42010Package.ARCHITECTURE_VIEW__GOVERNED_BY, oldGovernedBy, governedBy));
+ }
+ }
+ return governedBy;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ArchitectureViewpoint basicGetGovernedBy() {
+ return governedBy;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetGovernedBy(ArchitectureViewpoint newGovernedBy, NotificationChain msgs) {
+ ArchitectureViewpoint oldGovernedBy = governedBy;
+ governedBy = newGovernedBy;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, Iso42010Package.ARCHITECTURE_VIEW__GOVERNED_BY, oldGovernedBy, newGovernedBy);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setGovernedBy(ArchitectureViewpoint newGovernedBy) {
+ if (newGovernedBy != governedBy) {
+ NotificationChain msgs = null;
+ if (governedBy != null)
+ msgs = ((InternalEObject)governedBy).eInverseRemove(this, Iso42010Package.ARCHITECTURE_VIEWPOINT__GOVERNS, ArchitectureViewpoint.class, msgs);
+ if (newGovernedBy != null)
+ msgs = ((InternalEObject)newGovernedBy).eInverseAdd(this, Iso42010Package.ARCHITECTURE_VIEWPOINT__GOVERNS, ArchitectureViewpoint.class, msgs);
+ msgs = basicSetGovernedBy(newGovernedBy, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Iso42010Package.ARCHITECTURE_VIEW__GOVERNED_BY, newGovernedBy, newGovernedBy));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<ArchitectureModel> getModels() {
+ if (models == null) {
+ models = new EObjectContainmentWithInverseEList<ArchitectureModel>(ArchitectureModel.class, this, Iso42010Package.ARCHITECTURE_VIEW__MODELS, Iso42010Package.ARCHITECTURE_MODEL__VIEW);
+ }
+ return models;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Concern> getAddresses() {
+ if (addresses == null) {
+ addresses = new EObjectWithInverseResolvingEList.ManyInverse<Concern>(Concern.class, this, Iso42010Package.ARCHITECTURE_VIEW__ADDRESSES, Iso42010Package.CONCERN__ADDRESSED_BY);
+ }
+ return addresses;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case Iso42010Package.ARCHITECTURE_VIEW__GOVERNED_BY:
+ if (governedBy != null)
+ msgs = ((InternalEObject)governedBy).eInverseRemove(this, Iso42010Package.ARCHITECTURE_VIEWPOINT__GOVERNS, ArchitectureViewpoint.class, msgs);
+ return basicSetGovernedBy((ArchitectureViewpoint)otherEnd, msgs);
+ case Iso42010Package.ARCHITECTURE_VIEW__MODELS:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getModels()).basicAdd(otherEnd, msgs);
+ case Iso42010Package.ARCHITECTURE_VIEW__ADDRESSES:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getAddresses()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case Iso42010Package.ARCHITECTURE_VIEW__GOVERNED_BY:
+ return basicSetGovernedBy(null, msgs);
+ case Iso42010Package.ARCHITECTURE_VIEW__MODELS:
+ return ((InternalEList<?>)getModels()).basicRemove(otherEnd, msgs);
+ case Iso42010Package.ARCHITECTURE_VIEW__ADDRESSES:
+ return ((InternalEList<?>)getAddresses()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Iso42010Package.ARCHITECTURE_VIEW__GOVERNED_BY:
+ if (resolve) return getGovernedBy();
+ return basicGetGovernedBy();
+ case Iso42010Package.ARCHITECTURE_VIEW__MODELS:
+ return getModels();
+ case Iso42010Package.ARCHITECTURE_VIEW__ADDRESSES:
+ return getAddresses();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Iso42010Package.ARCHITECTURE_VIEW__GOVERNED_BY:
+ setGovernedBy((ArchitectureViewpoint)newValue);
+ return;
+ case Iso42010Package.ARCHITECTURE_VIEW__MODELS:
+ getModels().clear();
+ getModels().addAll((Collection<? extends ArchitectureModel>)newValue);
+ return;
+ case Iso42010Package.ARCHITECTURE_VIEW__ADDRESSES:
+ getAddresses().clear();
+ getAddresses().addAll((Collection<? extends Concern>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Iso42010Package.ARCHITECTURE_VIEW__GOVERNED_BY:
+ setGovernedBy((ArchitectureViewpoint)null);
+ return;
+ case Iso42010Package.ARCHITECTURE_VIEW__MODELS:
+ getModels().clear();
+ return;
+ case Iso42010Package.ARCHITECTURE_VIEW__ADDRESSES:
+ getAddresses().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Iso42010Package.ARCHITECTURE_VIEW__GOVERNED_BY:
+ return governedBy != null;
+ case Iso42010Package.ARCHITECTURE_VIEW__MODELS:
+ return models != null && !models.isEmpty();
+ case Iso42010Package.ARCHITECTURE_VIEW__ADDRESSES:
+ return addresses != null && !addresses.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ArchitectureViewImpl
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/ArchitectureViewpointImpl.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/ArchitectureViewpointImpl.java
new file mode 100755
index 00000000000..83709b8811f
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/ArchitectureViewpointImpl.java
@@ -0,0 +1,308 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.iso42010.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureView;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureViewpoint;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Concern;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ModelKind;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Architecture Viewpoint</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureViewpointImpl#getModelKinds <em>Model Kinds</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureViewpointImpl#getGoverns <em>Governs</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ArchitectureViewpointImpl#getFrames <em>Frames</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ArchitectureViewpointImpl extends ADElementImpl implements ArchitectureViewpoint {
+ /**
+ * The cached value of the '{@link #getModelKinds() <em>Model Kinds</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getModelKinds()
+ * @generated
+ * @ordered
+ */
+ protected EList<ModelKind> modelKinds;
+
+ /**
+ * The cached value of the '{@link #getGoverns() <em>Governs</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGoverns()
+ * @generated
+ * @ordered
+ */
+ protected ArchitectureView governs;
+
+ /**
+ * The cached value of the '{@link #getFrames() <em>Frames</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFrames()
+ * @generated
+ * @ordered
+ */
+ protected EList<Concern> frames;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ArchitectureViewpointImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Iso42010Package.Literals.ARCHITECTURE_VIEWPOINT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<ModelKind> getModelKinds() {
+ if (modelKinds == null) {
+ modelKinds = new EObjectContainmentWithInverseEList<ModelKind>(ModelKind.class, this, Iso42010Package.ARCHITECTURE_VIEWPOINT__MODEL_KINDS, Iso42010Package.MODEL_KIND__VIEWPOINT);
+ }
+ return modelKinds;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ArchitectureView getGoverns() {
+ if (governs != null && governs.eIsProxy()) {
+ InternalEObject oldGoverns = (InternalEObject)governs;
+ governs = (ArchitectureView)eResolveProxy(oldGoverns);
+ if (governs != oldGoverns) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, Iso42010Package.ARCHITECTURE_VIEWPOINT__GOVERNS, oldGoverns, governs));
+ }
+ }
+ return governs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ArchitectureView basicGetGoverns() {
+ return governs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetGoverns(ArchitectureView newGoverns, NotificationChain msgs) {
+ ArchitectureView oldGoverns = governs;
+ governs = newGoverns;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, Iso42010Package.ARCHITECTURE_VIEWPOINT__GOVERNS, oldGoverns, newGoverns);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setGoverns(ArchitectureView newGoverns) {
+ if (newGoverns != governs) {
+ NotificationChain msgs = null;
+ if (governs != null)
+ msgs = ((InternalEObject)governs).eInverseRemove(this, Iso42010Package.ARCHITECTURE_VIEW__GOVERNED_BY, ArchitectureView.class, msgs);
+ if (newGoverns != null)
+ msgs = ((InternalEObject)newGoverns).eInverseAdd(this, Iso42010Package.ARCHITECTURE_VIEW__GOVERNED_BY, ArchitectureView.class, msgs);
+ msgs = basicSetGoverns(newGoverns, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Iso42010Package.ARCHITECTURE_VIEWPOINT__GOVERNS, newGoverns, newGoverns));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Concern> getFrames() {
+ if (frames == null) {
+ frames = new EObjectWithInverseResolvingEList.ManyInverse<Concern>(Concern.class, this, Iso42010Package.ARCHITECTURE_VIEWPOINT__FRAMES, Iso42010Package.CONCERN__FRAMED_BY);
+ }
+ return frames;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case Iso42010Package.ARCHITECTURE_VIEWPOINT__MODEL_KINDS:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getModelKinds()).basicAdd(otherEnd, msgs);
+ case Iso42010Package.ARCHITECTURE_VIEWPOINT__GOVERNS:
+ if (governs != null)
+ msgs = ((InternalEObject)governs).eInverseRemove(this, Iso42010Package.ARCHITECTURE_VIEW__GOVERNED_BY, ArchitectureView.class, msgs);
+ return basicSetGoverns((ArchitectureView)otherEnd, msgs);
+ case Iso42010Package.ARCHITECTURE_VIEWPOINT__FRAMES:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getFrames()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case Iso42010Package.ARCHITECTURE_VIEWPOINT__MODEL_KINDS:
+ return ((InternalEList<?>)getModelKinds()).basicRemove(otherEnd, msgs);
+ case Iso42010Package.ARCHITECTURE_VIEWPOINT__GOVERNS:
+ return basicSetGoverns(null, msgs);
+ case Iso42010Package.ARCHITECTURE_VIEWPOINT__FRAMES:
+ return ((InternalEList<?>)getFrames()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Iso42010Package.ARCHITECTURE_VIEWPOINT__MODEL_KINDS:
+ return getModelKinds();
+ case Iso42010Package.ARCHITECTURE_VIEWPOINT__GOVERNS:
+ if (resolve) return getGoverns();
+ return basicGetGoverns();
+ case Iso42010Package.ARCHITECTURE_VIEWPOINT__FRAMES:
+ return getFrames();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Iso42010Package.ARCHITECTURE_VIEWPOINT__MODEL_KINDS:
+ getModelKinds().clear();
+ getModelKinds().addAll((Collection<? extends ModelKind>)newValue);
+ return;
+ case Iso42010Package.ARCHITECTURE_VIEWPOINT__GOVERNS:
+ setGoverns((ArchitectureView)newValue);
+ return;
+ case Iso42010Package.ARCHITECTURE_VIEWPOINT__FRAMES:
+ getFrames().clear();
+ getFrames().addAll((Collection<? extends Concern>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Iso42010Package.ARCHITECTURE_VIEWPOINT__MODEL_KINDS:
+ getModelKinds().clear();
+ return;
+ case Iso42010Package.ARCHITECTURE_VIEWPOINT__GOVERNS:
+ setGoverns((ArchitectureView)null);
+ return;
+ case Iso42010Package.ARCHITECTURE_VIEWPOINT__FRAMES:
+ getFrames().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Iso42010Package.ARCHITECTURE_VIEWPOINT__MODEL_KINDS:
+ return modelKinds != null && !modelKinds.isEmpty();
+ case Iso42010Package.ARCHITECTURE_VIEWPOINT__GOVERNS:
+ return governs != null;
+ case Iso42010Package.ARCHITECTURE_VIEWPOINT__FRAMES:
+ return frames != null && !frames.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ArchitectureViewpointImpl
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/ConcernImpl.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/ConcernImpl.java
new file mode 100755
index 00000000000..62f08f92eae
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/ConcernImpl.java
@@ -0,0 +1,331 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.iso42010.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDecision;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureView;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureViewpoint;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Concern;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Stakeholder;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Concern</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ConcernImpl#getFramedBy <em>Framed By</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ConcernImpl#getAddressedBy <em>Addressed By</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ConcernImpl#getStakeholders <em>Stakeholders</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ConcernImpl#getRaisedBy <em>Raised By</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ConcernImpl#getDecisions <em>Decisions</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ConcernImpl extends ADElementImpl implements Concern {
+ /**
+ * The cached value of the '{@link #getFramedBy() <em>Framed By</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFramedBy()
+ * @generated
+ * @ordered
+ */
+ protected EList<ArchitectureViewpoint> framedBy;
+
+ /**
+ * The cached value of the '{@link #getAddressedBy() <em>Addressed By</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAddressedBy()
+ * @generated
+ * @ordered
+ */
+ protected EList<ArchitectureView> addressedBy;
+
+ /**
+ * The cached value of the '{@link #getStakeholders() <em>Stakeholders</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStakeholders()
+ * @generated
+ * @ordered
+ */
+ protected EList<Stakeholder> stakeholders;
+
+ /**
+ * The cached value of the '{@link #getRaisedBy() <em>Raised By</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRaisedBy()
+ * @generated
+ * @ordered
+ */
+ protected EList<ArchitectureDecision> raisedBy;
+
+ /**
+ * The cached value of the '{@link #getDecisions() <em>Decisions</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDecisions()
+ * @generated
+ * @ordered
+ */
+ protected EList<ArchitectureDecision> decisions;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ConcernImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Iso42010Package.Literals.CONCERN;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<ArchitectureViewpoint> getFramedBy() {
+ if (framedBy == null) {
+ framedBy = new EObjectWithInverseResolvingEList.ManyInverse<ArchitectureViewpoint>(ArchitectureViewpoint.class, this, Iso42010Package.CONCERN__FRAMED_BY, Iso42010Package.ARCHITECTURE_VIEWPOINT__FRAMES);
+ }
+ return framedBy;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<ArchitectureView> getAddressedBy() {
+ if (addressedBy == null) {
+ addressedBy = new EObjectWithInverseResolvingEList.ManyInverse<ArchitectureView>(ArchitectureView.class, this, Iso42010Package.CONCERN__ADDRESSED_BY, Iso42010Package.ARCHITECTURE_VIEW__ADDRESSES);
+ }
+ return addressedBy;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Stakeholder> getStakeholders() {
+ if (stakeholders == null) {
+ stakeholders = new EObjectWithInverseResolvingEList.ManyInverse<Stakeholder>(Stakeholder.class, this, Iso42010Package.CONCERN__STAKEHOLDERS, Iso42010Package.STAKEHOLDER__CONCERNS);
+ }
+ return stakeholders;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<ArchitectureDecision> getRaisedBy() {
+ if (raisedBy == null) {
+ raisedBy = new EObjectWithInverseResolvingEList.ManyInverse<ArchitectureDecision>(ArchitectureDecision.class, this, Iso42010Package.CONCERN__RAISED_BY, Iso42010Package.ARCHITECTURE_DECISION__RAISES);
+ }
+ return raisedBy;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<ArchitectureDecision> getDecisions() {
+ if (decisions == null) {
+ decisions = new EObjectWithInverseResolvingEList.ManyInverse<ArchitectureDecision>(ArchitectureDecision.class, this, Iso42010Package.CONCERN__DECISIONS, Iso42010Package.ARCHITECTURE_DECISION__PERTAINS_TO);
+ }
+ return decisions;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case Iso42010Package.CONCERN__FRAMED_BY:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getFramedBy()).basicAdd(otherEnd, msgs);
+ case Iso42010Package.CONCERN__ADDRESSED_BY:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getAddressedBy()).basicAdd(otherEnd, msgs);
+ case Iso42010Package.CONCERN__STAKEHOLDERS:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getStakeholders()).basicAdd(otherEnd, msgs);
+ case Iso42010Package.CONCERN__RAISED_BY:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getRaisedBy()).basicAdd(otherEnd, msgs);
+ case Iso42010Package.CONCERN__DECISIONS:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getDecisions()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case Iso42010Package.CONCERN__FRAMED_BY:
+ return ((InternalEList<?>)getFramedBy()).basicRemove(otherEnd, msgs);
+ case Iso42010Package.CONCERN__ADDRESSED_BY:
+ return ((InternalEList<?>)getAddressedBy()).basicRemove(otherEnd, msgs);
+ case Iso42010Package.CONCERN__STAKEHOLDERS:
+ return ((InternalEList<?>)getStakeholders()).basicRemove(otherEnd, msgs);
+ case Iso42010Package.CONCERN__RAISED_BY:
+ return ((InternalEList<?>)getRaisedBy()).basicRemove(otherEnd, msgs);
+ case Iso42010Package.CONCERN__DECISIONS:
+ return ((InternalEList<?>)getDecisions()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Iso42010Package.CONCERN__FRAMED_BY:
+ return getFramedBy();
+ case Iso42010Package.CONCERN__ADDRESSED_BY:
+ return getAddressedBy();
+ case Iso42010Package.CONCERN__STAKEHOLDERS:
+ return getStakeholders();
+ case Iso42010Package.CONCERN__RAISED_BY:
+ return getRaisedBy();
+ case Iso42010Package.CONCERN__DECISIONS:
+ return getDecisions();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Iso42010Package.CONCERN__FRAMED_BY:
+ getFramedBy().clear();
+ getFramedBy().addAll((Collection<? extends ArchitectureViewpoint>)newValue);
+ return;
+ case Iso42010Package.CONCERN__ADDRESSED_BY:
+ getAddressedBy().clear();
+ getAddressedBy().addAll((Collection<? extends ArchitectureView>)newValue);
+ return;
+ case Iso42010Package.CONCERN__STAKEHOLDERS:
+ getStakeholders().clear();
+ getStakeholders().addAll((Collection<? extends Stakeholder>)newValue);
+ return;
+ case Iso42010Package.CONCERN__RAISED_BY:
+ getRaisedBy().clear();
+ getRaisedBy().addAll((Collection<? extends ArchitectureDecision>)newValue);
+ return;
+ case Iso42010Package.CONCERN__DECISIONS:
+ getDecisions().clear();
+ getDecisions().addAll((Collection<? extends ArchitectureDecision>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Iso42010Package.CONCERN__FRAMED_BY:
+ getFramedBy().clear();
+ return;
+ case Iso42010Package.CONCERN__ADDRESSED_BY:
+ getAddressedBy().clear();
+ return;
+ case Iso42010Package.CONCERN__STAKEHOLDERS:
+ getStakeholders().clear();
+ return;
+ case Iso42010Package.CONCERN__RAISED_BY:
+ getRaisedBy().clear();
+ return;
+ case Iso42010Package.CONCERN__DECISIONS:
+ getDecisions().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Iso42010Package.CONCERN__FRAMED_BY:
+ return framedBy != null && !framedBy.isEmpty();
+ case Iso42010Package.CONCERN__ADDRESSED_BY:
+ return addressedBy != null && !addressedBy.isEmpty();
+ case Iso42010Package.CONCERN__STAKEHOLDERS:
+ return stakeholders != null && !stakeholders.isEmpty();
+ case Iso42010Package.CONCERN__RAISED_BY:
+ return raisedBy != null && !raisedBy.isEmpty();
+ case Iso42010Package.CONCERN__DECISIONS:
+ return decisions != null && !decisions.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ConcernImpl
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/CorrespondenceImpl.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/CorrespondenceImpl.java
new file mode 100755
index 00000000000..a6ba74d90f6
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/CorrespondenceImpl.java
@@ -0,0 +1,214 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.iso42010.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ADElement;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Correspondence;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.CorrespondenceRule;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Correspondence</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.CorrespondenceImpl#getGovernedBy <em>Governed By</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.CorrespondenceImpl#getRelates <em>Relates</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CorrespondenceImpl extends MinimalEObjectImpl.Container implements Correspondence {
+ /**
+ * The cached value of the '{@link #getGovernedBy() <em>Governed By</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGovernedBy()
+ * @generated
+ * @ordered
+ */
+ protected EList<CorrespondenceRule> governedBy;
+
+ /**
+ * The cached value of the '{@link #getRelates() <em>Relates</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRelates()
+ * @generated
+ * @ordered
+ */
+ protected EList<ADElement> relates;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CorrespondenceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Iso42010Package.Literals.CORRESPONDENCE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<CorrespondenceRule> getGovernedBy() {
+ if (governedBy == null) {
+ governedBy = new EObjectWithInverseResolvingEList.ManyInverse<CorrespondenceRule>(CorrespondenceRule.class, this, Iso42010Package.CORRESPONDENCE__GOVERNED_BY, Iso42010Package.CORRESPONDENCE_RULE__GOVERNS);
+ }
+ return governedBy;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<ADElement> getRelates() {
+ if (relates == null) {
+ relates = new EObjectResolvingEList<ADElement>(ADElement.class, this, Iso42010Package.CORRESPONDENCE__RELATES);
+ }
+ return relates;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case Iso42010Package.CORRESPONDENCE__GOVERNED_BY:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getGovernedBy()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case Iso42010Package.CORRESPONDENCE__GOVERNED_BY:
+ return ((InternalEList<?>)getGovernedBy()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Iso42010Package.CORRESPONDENCE__GOVERNED_BY:
+ return getGovernedBy();
+ case Iso42010Package.CORRESPONDENCE__RELATES:
+ return getRelates();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Iso42010Package.CORRESPONDENCE__GOVERNED_BY:
+ getGovernedBy().clear();
+ getGovernedBy().addAll((Collection<? extends CorrespondenceRule>)newValue);
+ return;
+ case Iso42010Package.CORRESPONDENCE__RELATES:
+ getRelates().clear();
+ getRelates().addAll((Collection<? extends ADElement>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Iso42010Package.CORRESPONDENCE__GOVERNED_BY:
+ getGovernedBy().clear();
+ return;
+ case Iso42010Package.CORRESPONDENCE__RELATES:
+ getRelates().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Iso42010Package.CORRESPONDENCE__GOVERNED_BY:
+ return governedBy != null && !governedBy.isEmpty();
+ case Iso42010Package.CORRESPONDENCE__RELATES:
+ return relates != null && !relates.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //CorrespondenceImpl
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/CorrespondenceRuleImpl.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/CorrespondenceRuleImpl.java
new file mode 100755
index 00000000000..83fb9a77540
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/CorrespondenceRuleImpl.java
@@ -0,0 +1,178 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.iso42010.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Correspondence;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.CorrespondenceRule;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Correspondence Rule</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.CorrespondenceRuleImpl#getGoverns <em>Governs</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CorrespondenceRuleImpl extends MinimalEObjectImpl.Container implements CorrespondenceRule {
+ /**
+ * The cached value of the '{@link #getGoverns() <em>Governs</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGoverns()
+ * @generated
+ * @ordered
+ */
+ protected EList<Correspondence> governs;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CorrespondenceRuleImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Iso42010Package.Literals.CORRESPONDENCE_RULE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Correspondence> getGoverns() {
+ if (governs == null) {
+ governs = new EObjectWithInverseResolvingEList.ManyInverse<Correspondence>(Correspondence.class, this, Iso42010Package.CORRESPONDENCE_RULE__GOVERNS, Iso42010Package.CORRESPONDENCE__GOVERNED_BY);
+ }
+ return governs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case Iso42010Package.CORRESPONDENCE_RULE__GOVERNS:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getGoverns()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case Iso42010Package.CORRESPONDENCE_RULE__GOVERNS:
+ return ((InternalEList<?>)getGoverns()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Iso42010Package.CORRESPONDENCE_RULE__GOVERNS:
+ return getGoverns();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Iso42010Package.CORRESPONDENCE_RULE__GOVERNS:
+ getGoverns().clear();
+ getGoverns().addAll((Collection<? extends Correspondence>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Iso42010Package.CORRESPONDENCE_RULE__GOVERNS:
+ getGoverns().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Iso42010Package.CORRESPONDENCE_RULE__GOVERNS:
+ return governs != null && !governs.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //CorrespondenceRuleImpl
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/Iso42010FactoryImpl.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/Iso42010FactoryImpl.java
new file mode 100755
index 00000000000..66fc98e6021
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/Iso42010FactoryImpl.java
@@ -0,0 +1,263 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.iso42010.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Architecture;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDecision;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDescription;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureFramework;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureModel;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureRationale;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureView;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureViewpoint;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Concern;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Correspondence;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.CorrespondenceRule;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Factory;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ModelKind;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Stakeholder;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class Iso42010FactoryImpl extends EFactoryImpl implements Iso42010Factory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Iso42010Factory init() {
+ try {
+ Iso42010Factory theIso42010Factory = (Iso42010Factory)EPackage.Registry.INSTANCE.getEFactory(Iso42010Package.eNS_URI);
+ if (theIso42010Factory != null) {
+ return theIso42010Factory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new Iso42010FactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Iso42010FactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION: return createArchitectureDescription();
+ case Iso42010Package.STAKEHOLDER: return createStakeholder();
+ case Iso42010Package.ARCHITECTURE_VIEWPOINT: return createArchitectureViewpoint();
+ case Iso42010Package.MODEL_KIND: return createModelKind();
+ case Iso42010Package.ARCHITECTURE_MODEL: return createArchitectureModel();
+ case Iso42010Package.ARCHITECTURE_VIEW: return createArchitectureView();
+ case Iso42010Package.CONCERN: return createConcern();
+ case Iso42010Package.SYSTEM: return createSystem();
+ case Iso42010Package.ARCHITECTURE: return createArchitecture();
+ case Iso42010Package.ARCHITECTURE_RATIONALE: return createArchitectureRationale();
+ case Iso42010Package.CORRESPONDENCE: return createCorrespondence();
+ case Iso42010Package.CORRESPONDENCE_RULE: return createCorrespondenceRule();
+ case Iso42010Package.ARCHITECTURE_DECISION: return createArchitectureDecision();
+ case Iso42010Package.ARCHITECTURE_FRAMEWORK: return createArchitectureFramework();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ArchitectureDescription createArchitectureDescription() {
+ ArchitectureDescriptionImpl architectureDescription = new ArchitectureDescriptionImpl();
+ return architectureDescription;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Stakeholder createStakeholder() {
+ StakeholderImpl stakeholder = new StakeholderImpl();
+ return stakeholder;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ArchitectureViewpoint createArchitectureViewpoint() {
+ ArchitectureViewpointImpl architectureViewpoint = new ArchitectureViewpointImpl();
+ return architectureViewpoint;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ModelKind createModelKind() {
+ ModelKindImpl modelKind = new ModelKindImpl();
+ return modelKind;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ArchitectureModel createArchitectureModel() {
+ ArchitectureModelImpl architectureModel = new ArchitectureModelImpl();
+ return architectureModel;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ArchitectureView createArchitectureView() {
+ ArchitectureViewImpl architectureView = new ArchitectureViewImpl();
+ return architectureView;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Concern createConcern() {
+ ConcernImpl concern = new ConcernImpl();
+ return concern;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.papyrus.infra.viewpoints.iso42010.System createSystem() {
+ SystemImpl system = new SystemImpl();
+ return system;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Architecture createArchitecture() {
+ ArchitectureImpl architecture = new ArchitectureImpl();
+ return architecture;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ArchitectureRationale createArchitectureRationale() {
+ ArchitectureRationaleImpl architectureRationale = new ArchitectureRationaleImpl();
+ return architectureRationale;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Correspondence createCorrespondence() {
+ CorrespondenceImpl correspondence = new CorrespondenceImpl();
+ return correspondence;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CorrespondenceRule createCorrespondenceRule() {
+ CorrespondenceRuleImpl correspondenceRule = new CorrespondenceRuleImpl();
+ return correspondenceRule;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ArchitectureDecision createArchitectureDecision() {
+ ArchitectureDecisionImpl architectureDecision = new ArchitectureDecisionImpl();
+ return architectureDecision;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ArchitectureFramework createArchitectureFramework() {
+ ArchitectureFrameworkImpl architectureFramework = new ArchitectureFrameworkImpl();
+ return architectureFramework;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Iso42010Package getIso42010Package() {
+ return (Iso42010Package)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static Iso42010Package getPackage() {
+ return Iso42010Package.eINSTANCE;
+ }
+
+} //Iso42010FactoryImpl
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/Iso42010PackageImpl.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/Iso42010PackageImpl.java
new file mode 100755
index 00000000000..dcc0b479c99
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/Iso42010PackageImpl.java
@@ -0,0 +1,1007 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.iso42010.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ADElement;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Architecture;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDecision;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDescription;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureFramework;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureModel;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureRationale;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureView;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureViewpoint;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Concern;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Correspondence;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.CorrespondenceRule;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Factory;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ModelKind;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Stakeholder;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class Iso42010PackageImpl extends EPackageImpl implements Iso42010Package {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass adElementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass architectureDescriptionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass stakeholderEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass architectureViewpointEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass modelKindEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass architectureModelEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass architectureViewEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass concernEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass systemEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass architectureEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass architectureRationaleEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass correspondenceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass correspondenceRuleEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass architectureDecisionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass architectureFrameworkEClass = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private Iso42010PackageImpl() {
+ super(eNS_URI, Iso42010Factory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link Iso42010Package#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static Iso42010Package init() {
+ if (isInited) return (Iso42010Package)EPackage.Registry.INSTANCE.getEPackage(Iso42010Package.eNS_URI);
+
+ // Obtain or create and register package
+ Iso42010PackageImpl theIso42010Package = (Iso42010PackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof Iso42010PackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new Iso42010PackageImpl());
+
+ isInited = true;
+
+ // Create package meta-data objects
+ theIso42010Package.createPackageContents();
+
+ // Initialize created meta-data
+ theIso42010Package.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theIso42010Package.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(Iso42010Package.eNS_URI, theIso42010Package);
+ return theIso42010Package;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getADElement() {
+ return adElementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getADElement_Name() {
+ return (EAttribute)adElementEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getADElement_AffectedBy() {
+ return (EReference)adElementEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getArchitectureDescription() {
+ return architectureDescriptionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getArchitectureDescription_Stakeholders() {
+ return (EReference)architectureDescriptionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getArchitectureDescription_Concerns() {
+ return (EReference)architectureDescriptionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getArchitectureDescription_Viewpoints() {
+ return (EReference)architectureDescriptionEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getArchitectureDescription_Views() {
+ return (EReference)architectureDescriptionEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getArchitectureDescription_System() {
+ return (EReference)architectureDescriptionEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getArchitectureDescription_Expresses() {
+ return (EReference)architectureDescriptionEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getArchitectureDescription_Rationales() {
+ return (EReference)architectureDescriptionEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getArchitectureDescription_Correspondences() {
+ return (EReference)architectureDescriptionEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getArchitectureDescription_Rules() {
+ return (EReference)architectureDescriptionEClass.getEStructuralFeatures().get(8);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getArchitectureDescription_Decisions() {
+ return (EReference)architectureDescriptionEClass.getEStructuralFeatures().get(9);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getStakeholder() {
+ return stakeholderEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getStakeholder_Concerns() {
+ return (EReference)stakeholderEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getStakeholder_Viewpoints() {
+ return (EReference)stakeholderEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getStakeholder_HasInterestIn() {
+ return (EReference)stakeholderEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getArchitectureViewpoint() {
+ return architectureViewpointEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getArchitectureViewpoint_ModelKinds() {
+ return (EReference)architectureViewpointEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getArchitectureViewpoint_Governs() {
+ return (EReference)architectureViewpointEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getArchitectureViewpoint_Frames() {
+ return (EReference)architectureViewpointEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getModelKind() {
+ return modelKindEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getModelKind_Governs() {
+ return (EReference)modelKindEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getModelKind_Viewpoint() {
+ return (EReference)modelKindEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getArchitectureModel() {
+ return architectureModelEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getArchitectureModel_GovernedBy() {
+ return (EReference)architectureModelEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getArchitectureModel_View() {
+ return (EReference)architectureModelEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getArchitectureView() {
+ return architectureViewEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getArchitectureView_GovernedBy() {
+ return (EReference)architectureViewEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getArchitectureView_Models() {
+ return (EReference)architectureViewEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getArchitectureView_Addresses() {
+ return (EReference)architectureViewEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getConcern() {
+ return concernEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getConcern_FramedBy() {
+ return (EReference)concernEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getConcern_AddressedBy() {
+ return (EReference)concernEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getConcern_Stakeholders() {
+ return (EReference)concernEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getConcern_RaisedBy() {
+ return (EReference)concernEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getConcern_Decisions() {
+ return (EReference)concernEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSystem() {
+ return systemEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getSystem_Name() {
+ return (EAttribute)systemEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSystem_Stakeholders() {
+ return (EReference)systemEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSystem_Exhibits() {
+ return (EReference)systemEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getArchitecture() {
+ return architectureEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getArchitecture_ExhibitedIn() {
+ return (EReference)architectureEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getArchitectureRationale() {
+ return architectureRationaleEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getArchitectureRationale_Justifies() {
+ return (EReference)architectureRationaleEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCorrespondence() {
+ return correspondenceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCorrespondence_GovernedBy() {
+ return (EReference)correspondenceEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCorrespondence_Relates() {
+ return (EReference)correspondenceEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCorrespondenceRule() {
+ return correspondenceRuleEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCorrespondenceRule_Governs() {
+ return (EReference)correspondenceRuleEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getArchitectureDecision() {
+ return architectureDecisionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getArchitectureDecision_JustifiedBy() {
+ return (EReference)architectureDecisionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getArchitectureDecision_DependsUpon() {
+ return (EReference)architectureDecisionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getArchitectureDecision_Dependents() {
+ return (EReference)architectureDecisionEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getArchitectureDecision_Raises() {
+ return (EReference)architectureDecisionEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getArchitectureDecision_PertainsTo() {
+ return (EReference)architectureDecisionEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getArchitectureDecision_Affects() {
+ return (EReference)architectureDecisionEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getArchitectureFramework() {
+ return architectureFrameworkEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getArchitectureFramework_Stakeholders() {
+ return (EReference)architectureFrameworkEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getArchitectureFramework_Viewpoints() {
+ return (EReference)architectureFrameworkEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getArchitectureFramework_Rules() {
+ return (EReference)architectureFrameworkEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getArchitectureFramework_Concerns() {
+ return (EReference)architectureFrameworkEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Iso42010Factory getIso42010Factory() {
+ return (Iso42010Factory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ adElementEClass = createEClass(AD_ELEMENT);
+ createEAttribute(adElementEClass, AD_ELEMENT__NAME);
+ createEReference(adElementEClass, AD_ELEMENT__AFFECTED_BY);
+
+ architectureDescriptionEClass = createEClass(ARCHITECTURE_DESCRIPTION);
+ createEReference(architectureDescriptionEClass, ARCHITECTURE_DESCRIPTION__STAKEHOLDERS);
+ createEReference(architectureDescriptionEClass, ARCHITECTURE_DESCRIPTION__CONCERNS);
+ createEReference(architectureDescriptionEClass, ARCHITECTURE_DESCRIPTION__VIEWPOINTS);
+ createEReference(architectureDescriptionEClass, ARCHITECTURE_DESCRIPTION__VIEWS);
+ createEReference(architectureDescriptionEClass, ARCHITECTURE_DESCRIPTION__SYSTEM);
+ createEReference(architectureDescriptionEClass, ARCHITECTURE_DESCRIPTION__EXPRESSES);
+ createEReference(architectureDescriptionEClass, ARCHITECTURE_DESCRIPTION__RATIONALES);
+ createEReference(architectureDescriptionEClass, ARCHITECTURE_DESCRIPTION__CORRESPONDENCES);
+ createEReference(architectureDescriptionEClass, ARCHITECTURE_DESCRIPTION__RULES);
+ createEReference(architectureDescriptionEClass, ARCHITECTURE_DESCRIPTION__DECISIONS);
+
+ stakeholderEClass = createEClass(STAKEHOLDER);
+ createEReference(stakeholderEClass, STAKEHOLDER__CONCERNS);
+ createEReference(stakeholderEClass, STAKEHOLDER__VIEWPOINTS);
+ createEReference(stakeholderEClass, STAKEHOLDER__HAS_INTEREST_IN);
+
+ architectureViewpointEClass = createEClass(ARCHITECTURE_VIEWPOINT);
+ createEReference(architectureViewpointEClass, ARCHITECTURE_VIEWPOINT__MODEL_KINDS);
+ createEReference(architectureViewpointEClass, ARCHITECTURE_VIEWPOINT__GOVERNS);
+ createEReference(architectureViewpointEClass, ARCHITECTURE_VIEWPOINT__FRAMES);
+
+ modelKindEClass = createEClass(MODEL_KIND);
+ createEReference(modelKindEClass, MODEL_KIND__GOVERNS);
+ createEReference(modelKindEClass, MODEL_KIND__VIEWPOINT);
+
+ architectureModelEClass = createEClass(ARCHITECTURE_MODEL);
+ createEReference(architectureModelEClass, ARCHITECTURE_MODEL__GOVERNED_BY);
+ createEReference(architectureModelEClass, ARCHITECTURE_MODEL__VIEW);
+
+ architectureViewEClass = createEClass(ARCHITECTURE_VIEW);
+ createEReference(architectureViewEClass, ARCHITECTURE_VIEW__GOVERNED_BY);
+ createEReference(architectureViewEClass, ARCHITECTURE_VIEW__MODELS);
+ createEReference(architectureViewEClass, ARCHITECTURE_VIEW__ADDRESSES);
+
+ concernEClass = createEClass(CONCERN);
+ createEReference(concernEClass, CONCERN__FRAMED_BY);
+ createEReference(concernEClass, CONCERN__ADDRESSED_BY);
+ createEReference(concernEClass, CONCERN__STAKEHOLDERS);
+ createEReference(concernEClass, CONCERN__RAISED_BY);
+ createEReference(concernEClass, CONCERN__DECISIONS);
+
+ systemEClass = createEClass(SYSTEM);
+ createEAttribute(systemEClass, SYSTEM__NAME);
+ createEReference(systemEClass, SYSTEM__STAKEHOLDERS);
+ createEReference(systemEClass, SYSTEM__EXHIBITS);
+
+ architectureEClass = createEClass(ARCHITECTURE);
+ createEReference(architectureEClass, ARCHITECTURE__EXHIBITED_IN);
+
+ architectureRationaleEClass = createEClass(ARCHITECTURE_RATIONALE);
+ createEReference(architectureRationaleEClass, ARCHITECTURE_RATIONALE__JUSTIFIES);
+
+ correspondenceEClass = createEClass(CORRESPONDENCE);
+ createEReference(correspondenceEClass, CORRESPONDENCE__GOVERNED_BY);
+ createEReference(correspondenceEClass, CORRESPONDENCE__RELATES);
+
+ correspondenceRuleEClass = createEClass(CORRESPONDENCE_RULE);
+ createEReference(correspondenceRuleEClass, CORRESPONDENCE_RULE__GOVERNS);
+
+ architectureDecisionEClass = createEClass(ARCHITECTURE_DECISION);
+ createEReference(architectureDecisionEClass, ARCHITECTURE_DECISION__JUSTIFIED_BY);
+ createEReference(architectureDecisionEClass, ARCHITECTURE_DECISION__DEPENDS_UPON);
+ createEReference(architectureDecisionEClass, ARCHITECTURE_DECISION__DEPENDENTS);
+ createEReference(architectureDecisionEClass, ARCHITECTURE_DECISION__RAISES);
+ createEReference(architectureDecisionEClass, ARCHITECTURE_DECISION__PERTAINS_TO);
+ createEReference(architectureDecisionEClass, ARCHITECTURE_DECISION__AFFECTS);
+
+ architectureFrameworkEClass = createEClass(ARCHITECTURE_FRAMEWORK);
+ createEReference(architectureFrameworkEClass, ARCHITECTURE_FRAMEWORK__STAKEHOLDERS);
+ createEReference(architectureFrameworkEClass, ARCHITECTURE_FRAMEWORK__VIEWPOINTS);
+ createEReference(architectureFrameworkEClass, ARCHITECTURE_FRAMEWORK__RULES);
+ createEReference(architectureFrameworkEClass, ARCHITECTURE_FRAMEWORK__CONCERNS);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ stakeholderEClass.getESuperTypes().add(this.getADElement());
+ architectureViewpointEClass.getESuperTypes().add(this.getADElement());
+ modelKindEClass.getESuperTypes().add(this.getADElement());
+ architectureModelEClass.getESuperTypes().add(this.getADElement());
+ architectureViewEClass.getESuperTypes().add(this.getADElement());
+ concernEClass.getESuperTypes().add(this.getADElement());
+ architectureRationaleEClass.getESuperTypes().add(this.getADElement());
+ architectureDecisionEClass.getESuperTypes().add(this.getADElement());
+
+ // Initialize classes, features, and operations; add parameters
+ initEClass(adElementEClass, ADElement.class, "ADElement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getADElement_Name(), ecorePackage.getEString(), "name", null, 1, 1, ADElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getADElement_AffectedBy(), this.getArchitectureDecision(), this.getArchitectureDecision_Affects(), "affectedBy", null, 0, -1, ADElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(architectureDescriptionEClass, ArchitectureDescription.class, "ArchitectureDescription", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getArchitectureDescription_Stakeholders(), this.getStakeholder(), null, "stakeholders", null, 1, -1, ArchitectureDescription.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getArchitectureDescription_Concerns(), this.getConcern(), null, "concerns", null, 1, -1, ArchitectureDescription.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getArchitectureDescription_Viewpoints(), this.getArchitectureViewpoint(), null, "viewpoints", null, 1, -1, ArchitectureDescription.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getArchitectureDescription_Views(), this.getArchitectureView(), null, "views", null, 1, -1, ArchitectureDescription.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getArchitectureDescription_System(), this.getSystem(), null, "system", null, 1, 1, ArchitectureDescription.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getArchitectureDescription_Expresses(), this.getArchitecture(), null, "expresses", null, 1, 1, ArchitectureDescription.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getArchitectureDescription_Rationales(), this.getArchitectureRationale(), null, "rationales", null, 1, -1, ArchitectureDescription.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getArchitectureDescription_Correspondences(), this.getCorrespondence(), null, "correspondences", null, 0, -1, ArchitectureDescription.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getArchitectureDescription_Rules(), this.getCorrespondenceRule(), null, "rules", null, 0, -1, ArchitectureDescription.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getArchitectureDescription_Decisions(), this.getArchitectureDecision(), null, "decisions", null, 0, -1, ArchitectureDescription.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(stakeholderEClass, Stakeholder.class, "Stakeholder", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getStakeholder_Concerns(), this.getConcern(), this.getConcern_Stakeholders(), "concerns", null, 1, -1, Stakeholder.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getStakeholder_Viewpoints(), this.getArchitectureViewpoint(), null, "viewpoints", null, 1, -1, Stakeholder.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getStakeholder_HasInterestIn(), this.getSystem(), this.getSystem_Stakeholders(), "hasInterestIn", null, 1, 1, Stakeholder.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(architectureViewpointEClass, ArchitectureViewpoint.class, "ArchitectureViewpoint", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getArchitectureViewpoint_ModelKinds(), this.getModelKind(), this.getModelKind_Viewpoint(), "modelKinds", null, 1, -1, ArchitectureViewpoint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getArchitectureViewpoint_Governs(), this.getArchitectureView(), this.getArchitectureView_GovernedBy(), "governs", null, 1, 1, ArchitectureViewpoint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getArchitectureViewpoint_Frames(), this.getConcern(), this.getConcern_FramedBy(), "frames", null, 1, -1, ArchitectureViewpoint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(modelKindEClass, ModelKind.class, "ModelKind", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getModelKind_Governs(), this.getArchitectureModel(), this.getArchitectureModel_GovernedBy(), "governs", null, 1, -1, ModelKind.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getModelKind_Viewpoint(), this.getArchitectureViewpoint(), this.getArchitectureViewpoint_ModelKinds(), "viewpoint", null, 1, 1, ModelKind.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(architectureModelEClass, ArchitectureModel.class, "ArchitectureModel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getArchitectureModel_GovernedBy(), this.getModelKind(), this.getModelKind_Governs(), "governedBy", null, 1, 1, ArchitectureModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getArchitectureModel_View(), this.getArchitectureView(), this.getArchitectureView_Models(), "view", null, 1, 1, ArchitectureModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(architectureViewEClass, ArchitectureView.class, "ArchitectureView", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getArchitectureView_GovernedBy(), this.getArchitectureViewpoint(), this.getArchitectureViewpoint_Governs(), "governedBy", null, 1, 1, ArchitectureView.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getArchitectureView_Models(), this.getArchitectureModel(), this.getArchitectureModel_View(), "models", null, 1, -1, ArchitectureView.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getArchitectureView_Addresses(), this.getConcern(), this.getConcern_AddressedBy(), "addresses", null, 1, -1, ArchitectureView.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(concernEClass, Concern.class, "Concern", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getConcern_FramedBy(), this.getArchitectureViewpoint(), this.getArchitectureViewpoint_Frames(), "framedBy", null, 1, -1, Concern.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getConcern_AddressedBy(), this.getArchitectureView(), this.getArchitectureView_Addresses(), "addressedBy", null, 1, -1, Concern.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getConcern_Stakeholders(), this.getStakeholder(), this.getStakeholder_Concerns(), "stakeholders", null, 1, -1, Concern.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getConcern_RaisedBy(), this.getArchitectureDecision(), this.getArchitectureDecision_Raises(), "raisedBy", null, 0, -1, Concern.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getConcern_Decisions(), this.getArchitectureDecision(), this.getArchitectureDecision_PertainsTo(), "decisions", null, 0, -1, Concern.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(systemEClass, org.eclipse.papyrus.infra.viewpoints.iso42010.System.class, "System", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getSystem_Name(), ecorePackage.getEString(), "name", null, 1, 1, org.eclipse.papyrus.infra.viewpoints.iso42010.System.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getSystem_Stakeholders(), this.getStakeholder(), this.getStakeholder_HasInterestIn(), "stakeholders", null, 1, -1, org.eclipse.papyrus.infra.viewpoints.iso42010.System.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getSystem_Exhibits(), this.getArchitecture(), this.getArchitecture_ExhibitedIn(), "exhibits", null, 1, 1, org.eclipse.papyrus.infra.viewpoints.iso42010.System.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(architectureEClass, Architecture.class, "Architecture", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getArchitecture_ExhibitedIn(), this.getSystem(), this.getSystem_Exhibits(), "exhibitedIn", null, 1, 1, Architecture.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(architectureRationaleEClass, ArchitectureRationale.class, "ArchitectureRationale", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getArchitectureRationale_Justifies(), this.getArchitectureDecision(), this.getArchitectureDecision_JustifiedBy(), "justifies", null, 1, -1, ArchitectureRationale.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(correspondenceEClass, Correspondence.class, "Correspondence", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getCorrespondence_GovernedBy(), this.getCorrespondenceRule(), this.getCorrespondenceRule_Governs(), "governedBy", null, 0, -1, Correspondence.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getCorrespondence_Relates(), this.getADElement(), null, "relates", null, 2, -1, Correspondence.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(correspondenceRuleEClass, CorrespondenceRule.class, "CorrespondenceRule", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getCorrespondenceRule_Governs(), this.getCorrespondence(), this.getCorrespondence_GovernedBy(), "governs", null, 1, -1, CorrespondenceRule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(architectureDecisionEClass, ArchitectureDecision.class, "ArchitectureDecision", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getArchitectureDecision_JustifiedBy(), this.getArchitectureRationale(), this.getArchitectureRationale_Justifies(), "justifiedBy", null, 0, -1, ArchitectureDecision.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getArchitectureDecision_DependsUpon(), this.getArchitectureDecision(), this.getArchitectureDecision_Dependents(), "dependsUpon", null, 0, -1, ArchitectureDecision.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getArchitectureDecision_Dependents(), this.getArchitectureDecision(), this.getArchitectureDecision_DependsUpon(), "dependents", null, 0, -1, ArchitectureDecision.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getArchitectureDecision_Raises(), this.getConcern(), this.getConcern_RaisedBy(), "raises", null, 0, -1, ArchitectureDecision.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getArchitectureDecision_PertainsTo(), this.getConcern(), this.getConcern_Decisions(), "pertainsTo", null, 1, -1, ArchitectureDecision.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getArchitectureDecision_Affects(), this.getADElement(), this.getADElement_AffectedBy(), "affects", null, 1, -1, ArchitectureDecision.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(architectureFrameworkEClass, ArchitectureFramework.class, "ArchitectureFramework", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getArchitectureFramework_Stakeholders(), this.getStakeholder(), null, "stakeholders", null, 1, -1, ArchitectureFramework.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getArchitectureFramework_Viewpoints(), this.getArchitectureViewpoint(), null, "viewpoints", null, 1, -1, ArchitectureFramework.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getArchitectureFramework_Rules(), this.getCorrespondenceRule(), null, "rules", null, 0, -1, ArchitectureFramework.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getArchitectureFramework_Concerns(), this.getConcern(), null, "concerns", null, 1, -1, ArchitectureFramework.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Create resource
+ createResource(eNS_URI);
+ }
+
+} //Iso42010PackageImpl
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/ModelKindImpl.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/ModelKindImpl.java
new file mode 100755
index 00000000000..cbcf5aaf268
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/ModelKindImpl.java
@@ -0,0 +1,253 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.iso42010.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureModel;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureViewpoint;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ModelKind;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Model Kind</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ModelKindImpl#getGoverns <em>Governs</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.ModelKindImpl#getViewpoint <em>Viewpoint</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ModelKindImpl extends ADElementImpl implements ModelKind {
+ /**
+ * The cached value of the '{@link #getGoverns() <em>Governs</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGoverns()
+ * @generated
+ * @ordered
+ */
+ protected EList<ArchitectureModel> governs;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ModelKindImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Iso42010Package.Literals.MODEL_KIND;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<ArchitectureModel> getGoverns() {
+ if (governs == null) {
+ governs = new EObjectWithInverseResolvingEList<ArchitectureModel>(ArchitectureModel.class, this, Iso42010Package.MODEL_KIND__GOVERNS, Iso42010Package.ARCHITECTURE_MODEL__GOVERNED_BY);
+ }
+ return governs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ArchitectureViewpoint getViewpoint() {
+ if (eContainerFeatureID() != Iso42010Package.MODEL_KIND__VIEWPOINT) return null;
+ return (ArchitectureViewpoint)eInternalContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetViewpoint(ArchitectureViewpoint newViewpoint, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject)newViewpoint, Iso42010Package.MODEL_KIND__VIEWPOINT, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setViewpoint(ArchitectureViewpoint newViewpoint) {
+ if (newViewpoint != eInternalContainer() || (eContainerFeatureID() != Iso42010Package.MODEL_KIND__VIEWPOINT && newViewpoint != null)) {
+ if (EcoreUtil.isAncestor(this, newViewpoint))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newViewpoint != null)
+ msgs = ((InternalEObject)newViewpoint).eInverseAdd(this, Iso42010Package.ARCHITECTURE_VIEWPOINT__MODEL_KINDS, ArchitectureViewpoint.class, msgs);
+ msgs = basicSetViewpoint(newViewpoint, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Iso42010Package.MODEL_KIND__VIEWPOINT, newViewpoint, newViewpoint));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case Iso42010Package.MODEL_KIND__GOVERNS:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getGoverns()).basicAdd(otherEnd, msgs);
+ case Iso42010Package.MODEL_KIND__VIEWPOINT:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetViewpoint((ArchitectureViewpoint)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case Iso42010Package.MODEL_KIND__GOVERNS:
+ return ((InternalEList<?>)getGoverns()).basicRemove(otherEnd, msgs);
+ case Iso42010Package.MODEL_KIND__VIEWPOINT:
+ return basicSetViewpoint(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case Iso42010Package.MODEL_KIND__VIEWPOINT:
+ return eInternalContainer().eInverseRemove(this, Iso42010Package.ARCHITECTURE_VIEWPOINT__MODEL_KINDS, ArchitectureViewpoint.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Iso42010Package.MODEL_KIND__GOVERNS:
+ return getGoverns();
+ case Iso42010Package.MODEL_KIND__VIEWPOINT:
+ return getViewpoint();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Iso42010Package.MODEL_KIND__GOVERNS:
+ getGoverns().clear();
+ getGoverns().addAll((Collection<? extends ArchitectureModel>)newValue);
+ return;
+ case Iso42010Package.MODEL_KIND__VIEWPOINT:
+ setViewpoint((ArchitectureViewpoint)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Iso42010Package.MODEL_KIND__GOVERNS:
+ getGoverns().clear();
+ return;
+ case Iso42010Package.MODEL_KIND__VIEWPOINT:
+ setViewpoint((ArchitectureViewpoint)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Iso42010Package.MODEL_KIND__GOVERNS:
+ return governs != null && !governs.isEmpty();
+ case Iso42010Package.MODEL_KIND__VIEWPOINT:
+ return getViewpoint() != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ModelKindImpl
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/StakeholderImpl.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/StakeholderImpl.java
new file mode 100755
index 00000000000..88ca1838b96
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/StakeholderImpl.java
@@ -0,0 +1,303 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.iso42010.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureViewpoint;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Concern;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Stakeholder;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Stakeholder</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.StakeholderImpl#getConcerns <em>Concerns</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.StakeholderImpl#getViewpoints <em>Viewpoints</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.StakeholderImpl#getHasInterestIn <em>Has Interest In</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class StakeholderImpl extends ADElementImpl implements Stakeholder {
+ /**
+ * The cached value of the '{@link #getConcerns() <em>Concerns</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getConcerns()
+ * @generated
+ * @ordered
+ */
+ protected EList<Concern> concerns;
+
+ /**
+ * The cached value of the '{@link #getViewpoints() <em>Viewpoints</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getViewpoints()
+ * @generated
+ * @ordered
+ */
+ protected EList<ArchitectureViewpoint> viewpoints;
+
+ /**
+ * The cached value of the '{@link #getHasInterestIn() <em>Has Interest In</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getHasInterestIn()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.papyrus.infra.viewpoints.iso42010.System hasInterestIn;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected StakeholderImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Iso42010Package.Literals.STAKEHOLDER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Concern> getConcerns() {
+ if (concerns == null) {
+ concerns = new EObjectWithInverseResolvingEList.ManyInverse<Concern>(Concern.class, this, Iso42010Package.STAKEHOLDER__CONCERNS, Iso42010Package.CONCERN__STAKEHOLDERS);
+ }
+ return concerns;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<ArchitectureViewpoint> getViewpoints() {
+ if (viewpoints == null) {
+ viewpoints = new EObjectResolvingEList<ArchitectureViewpoint>(ArchitectureViewpoint.class, this, Iso42010Package.STAKEHOLDER__VIEWPOINTS);
+ }
+ return viewpoints;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.papyrus.infra.viewpoints.iso42010.System getHasInterestIn() {
+ if (hasInterestIn != null && hasInterestIn.eIsProxy()) {
+ InternalEObject oldHasInterestIn = (InternalEObject)hasInterestIn;
+ hasInterestIn = (org.eclipse.papyrus.infra.viewpoints.iso42010.System)eResolveProxy(oldHasInterestIn);
+ if (hasInterestIn != oldHasInterestIn) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, Iso42010Package.STAKEHOLDER__HAS_INTEREST_IN, oldHasInterestIn, hasInterestIn));
+ }
+ }
+ return hasInterestIn;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.papyrus.infra.viewpoints.iso42010.System basicGetHasInterestIn() {
+ return hasInterestIn;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetHasInterestIn(org.eclipse.papyrus.infra.viewpoints.iso42010.System newHasInterestIn, NotificationChain msgs) {
+ org.eclipse.papyrus.infra.viewpoints.iso42010.System oldHasInterestIn = hasInterestIn;
+ hasInterestIn = newHasInterestIn;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, Iso42010Package.STAKEHOLDER__HAS_INTEREST_IN, oldHasInterestIn, newHasInterestIn);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setHasInterestIn(org.eclipse.papyrus.infra.viewpoints.iso42010.System newHasInterestIn) {
+ if (newHasInterestIn != hasInterestIn) {
+ NotificationChain msgs = null;
+ if (hasInterestIn != null)
+ msgs = ((InternalEObject)hasInterestIn).eInverseRemove(this, Iso42010Package.SYSTEM__STAKEHOLDERS, org.eclipse.papyrus.infra.viewpoints.iso42010.System.class, msgs);
+ if (newHasInterestIn != null)
+ msgs = ((InternalEObject)newHasInterestIn).eInverseAdd(this, Iso42010Package.SYSTEM__STAKEHOLDERS, org.eclipse.papyrus.infra.viewpoints.iso42010.System.class, msgs);
+ msgs = basicSetHasInterestIn(newHasInterestIn, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Iso42010Package.STAKEHOLDER__HAS_INTEREST_IN, newHasInterestIn, newHasInterestIn));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case Iso42010Package.STAKEHOLDER__CONCERNS:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getConcerns()).basicAdd(otherEnd, msgs);
+ case Iso42010Package.STAKEHOLDER__HAS_INTEREST_IN:
+ if (hasInterestIn != null)
+ msgs = ((InternalEObject)hasInterestIn).eInverseRemove(this, Iso42010Package.SYSTEM__STAKEHOLDERS, org.eclipse.papyrus.infra.viewpoints.iso42010.System.class, msgs);
+ return basicSetHasInterestIn((org.eclipse.papyrus.infra.viewpoints.iso42010.System)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case Iso42010Package.STAKEHOLDER__CONCERNS:
+ return ((InternalEList<?>)getConcerns()).basicRemove(otherEnd, msgs);
+ case Iso42010Package.STAKEHOLDER__HAS_INTEREST_IN:
+ return basicSetHasInterestIn(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Iso42010Package.STAKEHOLDER__CONCERNS:
+ return getConcerns();
+ case Iso42010Package.STAKEHOLDER__VIEWPOINTS:
+ return getViewpoints();
+ case Iso42010Package.STAKEHOLDER__HAS_INTEREST_IN:
+ if (resolve) return getHasInterestIn();
+ return basicGetHasInterestIn();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Iso42010Package.STAKEHOLDER__CONCERNS:
+ getConcerns().clear();
+ getConcerns().addAll((Collection<? extends Concern>)newValue);
+ return;
+ case Iso42010Package.STAKEHOLDER__VIEWPOINTS:
+ getViewpoints().clear();
+ getViewpoints().addAll((Collection<? extends ArchitectureViewpoint>)newValue);
+ return;
+ case Iso42010Package.STAKEHOLDER__HAS_INTEREST_IN:
+ setHasInterestIn((org.eclipse.papyrus.infra.viewpoints.iso42010.System)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Iso42010Package.STAKEHOLDER__CONCERNS:
+ getConcerns().clear();
+ return;
+ case Iso42010Package.STAKEHOLDER__VIEWPOINTS:
+ getViewpoints().clear();
+ return;
+ case Iso42010Package.STAKEHOLDER__HAS_INTEREST_IN:
+ setHasInterestIn((org.eclipse.papyrus.infra.viewpoints.iso42010.System)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Iso42010Package.STAKEHOLDER__CONCERNS:
+ return concerns != null && !concerns.isEmpty();
+ case Iso42010Package.STAKEHOLDER__VIEWPOINTS:
+ return viewpoints != null && !viewpoints.isEmpty();
+ case Iso42010Package.STAKEHOLDER__HAS_INTEREST_IN:
+ return hasInterestIn != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //StakeholderImpl
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/SystemImpl.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/SystemImpl.java
new file mode 100755
index 00000000000..2c9f04c02ce
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/impl/SystemImpl.java
@@ -0,0 +1,336 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.iso42010.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Architecture;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Stakeholder;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>System</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.SystemImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.SystemImpl#getStakeholders <em>Stakeholders</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.iso42010.impl.SystemImpl#getExhibits <em>Exhibits</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SystemImpl extends MinimalEObjectImpl.Container implements org.eclipse.papyrus.infra.viewpoints.iso42010.System {
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getStakeholders() <em>Stakeholders</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStakeholders()
+ * @generated
+ * @ordered
+ */
+ protected EList<Stakeholder> stakeholders;
+
+ /**
+ * The cached value of the '{@link #getExhibits() <em>Exhibits</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExhibits()
+ * @generated
+ * @ordered
+ */
+ protected Architecture exhibits;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SystemImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Iso42010Package.Literals.SYSTEM;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName) {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Iso42010Package.SYSTEM__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Stakeholder> getStakeholders() {
+ if (stakeholders == null) {
+ stakeholders = new EObjectWithInverseResolvingEList<Stakeholder>(Stakeholder.class, this, Iso42010Package.SYSTEM__STAKEHOLDERS, Iso42010Package.STAKEHOLDER__HAS_INTEREST_IN);
+ }
+ return stakeholders;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Architecture getExhibits() {
+ if (exhibits != null && exhibits.eIsProxy()) {
+ InternalEObject oldExhibits = (InternalEObject)exhibits;
+ exhibits = (Architecture)eResolveProxy(oldExhibits);
+ if (exhibits != oldExhibits) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, Iso42010Package.SYSTEM__EXHIBITS, oldExhibits, exhibits));
+ }
+ }
+ return exhibits;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Architecture basicGetExhibits() {
+ return exhibits;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetExhibits(Architecture newExhibits, NotificationChain msgs) {
+ Architecture oldExhibits = exhibits;
+ exhibits = newExhibits;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, Iso42010Package.SYSTEM__EXHIBITS, oldExhibits, newExhibits);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setExhibits(Architecture newExhibits) {
+ if (newExhibits != exhibits) {
+ NotificationChain msgs = null;
+ if (exhibits != null)
+ msgs = ((InternalEObject)exhibits).eInverseRemove(this, Iso42010Package.ARCHITECTURE__EXHIBITED_IN, Architecture.class, msgs);
+ if (newExhibits != null)
+ msgs = ((InternalEObject)newExhibits).eInverseAdd(this, Iso42010Package.ARCHITECTURE__EXHIBITED_IN, Architecture.class, msgs);
+ msgs = basicSetExhibits(newExhibits, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Iso42010Package.SYSTEM__EXHIBITS, newExhibits, newExhibits));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case Iso42010Package.SYSTEM__STAKEHOLDERS:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getStakeholders()).basicAdd(otherEnd, msgs);
+ case Iso42010Package.SYSTEM__EXHIBITS:
+ if (exhibits != null)
+ msgs = ((InternalEObject)exhibits).eInverseRemove(this, Iso42010Package.ARCHITECTURE__EXHIBITED_IN, Architecture.class, msgs);
+ return basicSetExhibits((Architecture)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case Iso42010Package.SYSTEM__STAKEHOLDERS:
+ return ((InternalEList<?>)getStakeholders()).basicRemove(otherEnd, msgs);
+ case Iso42010Package.SYSTEM__EXHIBITS:
+ return basicSetExhibits(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Iso42010Package.SYSTEM__NAME:
+ return getName();
+ case Iso42010Package.SYSTEM__STAKEHOLDERS:
+ return getStakeholders();
+ case Iso42010Package.SYSTEM__EXHIBITS:
+ if (resolve) return getExhibits();
+ return basicGetExhibits();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Iso42010Package.SYSTEM__NAME:
+ setName((String)newValue);
+ return;
+ case Iso42010Package.SYSTEM__STAKEHOLDERS:
+ getStakeholders().clear();
+ getStakeholders().addAll((Collection<? extends Stakeholder>)newValue);
+ return;
+ case Iso42010Package.SYSTEM__EXHIBITS:
+ setExhibits((Architecture)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Iso42010Package.SYSTEM__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case Iso42010Package.SYSTEM__STAKEHOLDERS:
+ getStakeholders().clear();
+ return;
+ case Iso42010Package.SYSTEM__EXHIBITS:
+ setExhibits((Architecture)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Iso42010Package.SYSTEM__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case Iso42010Package.SYSTEM__STAKEHOLDERS:
+ return stakeholders != null && !stakeholders.isEmpty();
+ case Iso42010Package.SYSTEM__EXHIBITS:
+ return exhibits != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(')');
+ return result.toString();
+ }
+
+} //SystemImpl
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/util/Iso42010AdapterFactory.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/util/Iso42010AdapterFactory.java
new file mode 100755
index 00000000000..cbed837d81a
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/util/Iso42010AdapterFactory.java
@@ -0,0 +1,397 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.iso42010.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ADElement;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Architecture;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDecision;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDescription;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureFramework;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureModel;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureRationale;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureView;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureViewpoint;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Concern;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Correspondence;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.CorrespondenceRule;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ModelKind;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Stakeholder;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package
+ * @generated
+ */
+public class Iso42010AdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static Iso42010Package modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Iso42010AdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = Iso42010Package.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Iso42010Switch<Adapter> modelSwitch =
+ new Iso42010Switch<Adapter>() {
+ @Override
+ public Adapter caseADElement(ADElement object) {
+ return createADElementAdapter();
+ }
+ @Override
+ public Adapter caseArchitectureDescription(ArchitectureDescription object) {
+ return createArchitectureDescriptionAdapter();
+ }
+ @Override
+ public Adapter caseStakeholder(Stakeholder object) {
+ return createStakeholderAdapter();
+ }
+ @Override
+ public Adapter caseArchitectureViewpoint(ArchitectureViewpoint object) {
+ return createArchitectureViewpointAdapter();
+ }
+ @Override
+ public Adapter caseModelKind(ModelKind object) {
+ return createModelKindAdapter();
+ }
+ @Override
+ public Adapter caseArchitectureModel(ArchitectureModel object) {
+ return createArchitectureModelAdapter();
+ }
+ @Override
+ public Adapter caseArchitectureView(ArchitectureView object) {
+ return createArchitectureViewAdapter();
+ }
+ @Override
+ public Adapter caseConcern(Concern object) {
+ return createConcernAdapter();
+ }
+ @Override
+ public Adapter caseSystem(org.eclipse.papyrus.infra.viewpoints.iso42010.System object) {
+ return createSystemAdapter();
+ }
+ @Override
+ public Adapter caseArchitecture(Architecture object) {
+ return createArchitectureAdapter();
+ }
+ @Override
+ public Adapter caseArchitectureRationale(ArchitectureRationale object) {
+ return createArchitectureRationaleAdapter();
+ }
+ @Override
+ public Adapter caseCorrespondence(Correspondence object) {
+ return createCorrespondenceAdapter();
+ }
+ @Override
+ public Adapter caseCorrespondenceRule(CorrespondenceRule object) {
+ return createCorrespondenceRuleAdapter();
+ }
+ @Override
+ public Adapter caseArchitectureDecision(ArchitectureDecision object) {
+ return createArchitectureDecisionAdapter();
+ }
+ @Override
+ public Adapter caseArchitectureFramework(ArchitectureFramework object) {
+ return createArchitectureFrameworkAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ADElement <em>AD Element</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ADElement
+ * @generated
+ */
+ public Adapter createADElementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDescription <em>Architecture Description</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDescription
+ * @generated
+ */
+ public Adapter createArchitectureDescriptionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.Stakeholder <em>Stakeholder</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Stakeholder
+ * @generated
+ */
+ public Adapter createStakeholderAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureViewpoint <em>Architecture Viewpoint</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureViewpoint
+ * @generated
+ */
+ public Adapter createArchitectureViewpointAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ModelKind <em>Model Kind</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ModelKind
+ * @generated
+ */
+ public Adapter createModelKindAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureModel <em>Architecture Model</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureModel
+ * @generated
+ */
+ public Adapter createArchitectureModelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureView <em>Architecture View</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureView
+ * @generated
+ */
+ public Adapter createArchitectureViewAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.Concern <em>Concern</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Concern
+ * @generated
+ */
+ public Adapter createConcernAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.System <em>System</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.System
+ * @generated
+ */
+ public Adapter createSystemAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.Architecture <em>Architecture</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Architecture
+ * @generated
+ */
+ public Adapter createArchitectureAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureRationale <em>Architecture Rationale</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureRationale
+ * @generated
+ */
+ public Adapter createArchitectureRationaleAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.Correspondence <em>Correspondence</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Correspondence
+ * @generated
+ */
+ public Adapter createCorrespondenceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.CorrespondenceRule <em>Correspondence Rule</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.CorrespondenceRule
+ * @generated
+ */
+ public Adapter createCorrespondenceRuleAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDecision <em>Architecture Decision</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDecision
+ * @generated
+ */
+ public Adapter createArchitectureDecisionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureFramework <em>Architecture Framework</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureFramework
+ * @generated
+ */
+ public Adapter createArchitectureFrameworkAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //Iso42010AdapterFactory
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/util/Iso42010Switch.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/util/Iso42010Switch.java
new file mode 100755
index 00000000000..f3e6e493fbc
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.iso42010/src/org/eclipse/papyrus/infra/viewpoints/iso42010/util/Iso42010Switch.java
@@ -0,0 +1,437 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.iso42010.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ADElement;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Architecture;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDecision;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureDescription;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureFramework;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureModel;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureRationale;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureView;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureViewpoint;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Concern;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Correspondence;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.CorrespondenceRule;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ModelKind;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Stakeholder;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package
+ * @generated
+ */
+public class Iso42010Switch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static Iso42010Package modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Iso42010Switch() {
+ if (modelPackage == null) {
+ modelPackage = Iso42010Package.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @parameter ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case Iso42010Package.AD_ELEMENT: {
+ ADElement adElement = (ADElement)theEObject;
+ T result = caseADElement(adElement);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Iso42010Package.ARCHITECTURE_DESCRIPTION: {
+ ArchitectureDescription architectureDescription = (ArchitectureDescription)theEObject;
+ T result = caseArchitectureDescription(architectureDescription);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Iso42010Package.STAKEHOLDER: {
+ Stakeholder stakeholder = (Stakeholder)theEObject;
+ T result = caseStakeholder(stakeholder);
+ if (result == null) result = caseADElement(stakeholder);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Iso42010Package.ARCHITECTURE_VIEWPOINT: {
+ ArchitectureViewpoint architectureViewpoint = (ArchitectureViewpoint)theEObject;
+ T result = caseArchitectureViewpoint(architectureViewpoint);
+ if (result == null) result = caseADElement(architectureViewpoint);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Iso42010Package.MODEL_KIND: {
+ ModelKind modelKind = (ModelKind)theEObject;
+ T result = caseModelKind(modelKind);
+ if (result == null) result = caseADElement(modelKind);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Iso42010Package.ARCHITECTURE_MODEL: {
+ ArchitectureModel architectureModel = (ArchitectureModel)theEObject;
+ T result = caseArchitectureModel(architectureModel);
+ if (result == null) result = caseADElement(architectureModel);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Iso42010Package.ARCHITECTURE_VIEW: {
+ ArchitectureView architectureView = (ArchitectureView)theEObject;
+ T result = caseArchitectureView(architectureView);
+ if (result == null) result = caseADElement(architectureView);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Iso42010Package.CONCERN: {
+ Concern concern = (Concern)theEObject;
+ T result = caseConcern(concern);
+ if (result == null) result = caseADElement(concern);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Iso42010Package.SYSTEM: {
+ org.eclipse.papyrus.infra.viewpoints.iso42010.System system = (org.eclipse.papyrus.infra.viewpoints.iso42010.System)theEObject;
+ T result = caseSystem(system);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Iso42010Package.ARCHITECTURE: {
+ Architecture architecture = (Architecture)theEObject;
+ T result = caseArchitecture(architecture);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Iso42010Package.ARCHITECTURE_RATIONALE: {
+ ArchitectureRationale architectureRationale = (ArchitectureRationale)theEObject;
+ T result = caseArchitectureRationale(architectureRationale);
+ if (result == null) result = caseADElement(architectureRationale);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Iso42010Package.CORRESPONDENCE: {
+ Correspondence correspondence = (Correspondence)theEObject;
+ T result = caseCorrespondence(correspondence);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Iso42010Package.CORRESPONDENCE_RULE: {
+ CorrespondenceRule correspondenceRule = (CorrespondenceRule)theEObject;
+ T result = caseCorrespondenceRule(correspondenceRule);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Iso42010Package.ARCHITECTURE_DECISION: {
+ ArchitectureDecision architectureDecision = (ArchitectureDecision)theEObject;
+ T result = caseArchitectureDecision(architectureDecision);
+ if (result == null) result = caseADElement(architectureDecision);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Iso42010Package.ARCHITECTURE_FRAMEWORK: {
+ ArchitectureFramework architectureFramework = (ArchitectureFramework)theEObject;
+ T result = caseArchitectureFramework(architectureFramework);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>AD Element</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>AD Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseADElement(ADElement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Architecture Description</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Architecture Description</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseArchitectureDescription(ArchitectureDescription object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Stakeholder</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Stakeholder</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseStakeholder(Stakeholder object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Architecture Viewpoint</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Architecture Viewpoint</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseArchitectureViewpoint(ArchitectureViewpoint object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Model Kind</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Model Kind</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseModelKind(ModelKind object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Architecture Model</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Architecture Model</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseArchitectureModel(ArchitectureModel object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Architecture View</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Architecture View</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseArchitectureView(ArchitectureView object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Concern</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Concern</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseConcern(Concern object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>System</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>System</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSystem(org.eclipse.papyrus.infra.viewpoints.iso42010.System object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Architecture</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Architecture</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseArchitecture(Architecture object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Architecture Rationale</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Architecture Rationale</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseArchitectureRationale(ArchitectureRationale object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Correspondence</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Correspondence</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCorrespondence(Correspondence object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Correspondence Rule</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Correspondence Rule</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCorrespondenceRule(CorrespondenceRule object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Architecture Decision</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Architecture Decision</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseArchitectureDecision(ArchitectureDecision object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Architecture Framework</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Architecture Framework</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseArchitectureFramework(ArchitectureFramework object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //Iso42010Switch
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/.classpath b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/.classpath
new file mode 100755
index 00000000000..ed2585fb3f4
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="src-gen"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/.project b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/.project
new file mode 100755
index 00000000000..e895d4f56f5
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.infra.viewpoints.policy</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/.settings/org.eclipse.core.resources.prefs b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/.settings/org.eclipse.core.resources.prefs
new file mode 100755
index 00000000000..4101bc16c40
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding//model/style.ecore=UTF-8
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/.settings/org.eclipse.jdt.core.prefs b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/.settings/org.eclipse.jdt.core.prefs
new file mode 100755
index 00000000000..44217f8c068
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/META-INF/MANIFEST.MF b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/META-INF/MANIFEST.MF
new file mode 100755
index 00000000000..034e5ccd808
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/META-INF/MANIFEST.MF
@@ -0,0 +1,29 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.papyrus.infra.viewpoints.policy;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-ClassPath: .
+Bundle-Activator: org.eclipse.papyrus.infra.viewpoints.policy.Activator
+Export-Package: org.eclipse.papyrus.infra.viewpoints.policy,
+ org.eclipse.papyrus.infra.viewpoints.style,
+ org.eclipse.papyrus.infra.viewpoints.style.impl,
+ org.eclipse.papyrus.infra.viewpoints.style.util
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.expressions,
+ org.eclipse.core.runtime,
+ org.eclipse.emf.ecore;visibility:=reexport,
+ org.eclipse.gmf.runtime.notation;visibility:=reexport,
+ org.eclipse.gmf.runtime.emf.type.core,
+ org.eclipse.gmf.runtime.diagram.ui,
+ org.eclipse.gmf.runtime.diagram.ui.providers,
+ org.eclipse.gmf.runtime.notation.edit,
+ org.eclipse.papyrus.infra.core.log;bundle-version="1.0.0",
+ org.eclipse.papyrus.infra.core.pluginexplorer;bundle-version="1.0.0",
+ org.eclipse.papyrus.infra.emf;bundle-version="1.0.0",
+ org.eclipse.papyrus.infra.viewpoints.iso42010;bundle-version="1.0.0";visibility:=reexport,
+ org.eclipse.papyrus.infra.viewpoints.configuration;bundle-version="1.0.0";visibility:=reexport
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-ActivationPolicy: lazy
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/about.html b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/about.html
new file mode 100755
index 00000000000..dd02e0be168
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>December 2, 2009</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/build.properties b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/build.properties
new file mode 100755
index 00000000000..1aa2624ab66
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/build.properties
@@ -0,0 +1,14 @@
+source.. = src/,\
+ src-gen/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ about.html,\
+ plugin.properties,\
+ builtin/,\
+ messages.properties,\
+ icons/,\
+ schema/,\
+ model/
+src.includes = about.html
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/builtin/default.configuration b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/builtin/default.configuration
new file mode 100755
index 00000000000..743494f8b80
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/builtin/default.configuration
@@ -0,0 +1,195 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration:PapyrusConfiguration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:configuration="http://www.eclipse.org/papyrus/infra/viewpoints/configuration" defaultStakeholder="#//@stakeholders.0" metamodel="http://www.eclipse.org/uml2/5.0.0/UML#/">
+ <stakeholders name="Default Modeler" viewpoints="#//@viewpoints.0"/>
+ <viewpoints xsi:type="configuration:PapyrusViewpoint" name="Default Papyrus Viewpoint">
+ <modelKinds xsi:type="configuration:PapyrusDiagram" name="UML Inner Class Diagram" icon="platform:/plugin/org.eclipse.papyrus.uml.diagram.clazz/icons/obj16/Diagram_Class.gif" implementationID="PapyrusUMLClassDiagram" categories="#//@categories.0">
+ <modelRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ <owningRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ <owningRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ <childRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier" origin="http://www.eclipse.org/uml2/5.0.0/UML#//Class">
+ <insertionPath feature="http://www.eclipse.org/uml2/5.0.0/UML#//Class/nestedClassifier"/>
+ </childRules>
+ <childRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Comment" origin="http://www.eclipse.org/uml2/5.0.0/UML#//Class">
+ <insertionPath feature="http://www.eclipse.org/uml2/5.0.0/UML#//Element/ownedComment"/>
+ </childRules>
+ <paletteRules element="clazz.tool.class"/>
+ <paletteRules element="clazz.tool.comment"/>
+ <paletteRules element="clazz.tool.interface"/>
+ <paletteRules element="clazz.tool.abstraction"/>
+ <paletteRules element="clazz.tool.association"/>
+ <paletteRules element="clazz.tool.generalization"/>
+ <paletteRules element="clazz.tool.generalizationset"/>
+ <paletteRules permit="false" element="clazz.tool.*"/>
+ <paletteRules element=""/>
+ </modelKinds>
+ <modelKinds xsi:type="configuration:PapyrusDiagram" name="UML Package Diagram" icon="platform:/plugin/org.eclipse.papyrus.infra.viewpoints.policy/icons/Diagram_Package.gif" implementationID="PapyrusUMLClassDiagram" categories="#//@categories.0">
+ <modelRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ <owningRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ <childRules/>
+ <paletteRules element="clazz.tool.comment"/>
+ <paletteRules element="clazz.tool.constraint"/>
+ <paletteRules element="clazz.tool.model"/>
+ <paletteRules element="clazz.tool.package"/>
+ <paletteRules element="clazz.tool.abstraction"/>
+ <paletteRules element="clazz.tool.dependency"/>
+ <paletteRules element="clazz.tool.packageimport"/>
+ <paletteRules element="clazz.tool.link"/>
+ <paletteRules permit="false" element="clazz.tool.*"/>
+ <paletteRules element=""/>
+ </modelKinds>
+ <modelKinds xsi:type="configuration:PapyrusDiagram" implementationID="PapyrusUMLActivityDiagram" categories="#//@categories.0">
+ <modelRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Activity"/>
+ <owningRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ <owningRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Activity"/>
+ <childRules/>
+ </modelKinds>
+ <modelKinds xsi:type="configuration:PapyrusDiagram" implementationID="PapyrusUMLClassDiagram" categories="#//@categories.0">
+ <modelRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ <owningRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ <childRules/>
+ </modelKinds>
+ <modelKinds xsi:type="configuration:PapyrusDiagram" implementationID="PapyrusUMLCommunicationDiagram" categories="#//@categories.0">
+ <modelRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Interaction"/>
+ <owningRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ <owningRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Interaction"/>
+ <childRules/>
+ </modelKinds>
+ <modelKinds xsi:type="configuration:PapyrusDiagram" implementationID="PapyrusUMLComponentDiagram" categories="#//@categories.0">
+ <modelRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ <owningRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ <childRules/>
+ </modelKinds>
+ <modelKinds xsi:type="configuration:PapyrusDiagram" implementationID="PapyrusUMLComponentDiagram" categories="#//@categories.0">
+ <modelRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Component"/>
+ <owningRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ <owningRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Component"/>
+ <childRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier" origin="http://www.eclipse.org/uml2/5.0.0/UML#//Component">
+ <insertionPath feature="http://www.eclipse.org/uml2/5.0.0/UML#//Class/nestedClassifier"/>
+ </childRules>
+ <childRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Comment" origin="http://www.eclipse.org/uml2/5.0.0/UML#//Component">
+ <insertionPath feature="http://www.eclipse.org/uml2/5.0.0/UML#//Element/ownedComment"/>
+ </childRules>
+ <childRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Constraint" origin="http://www.eclipse.org/uml2/5.0.0/UML#//Component">
+ <insertionPath feature="http://www.eclipse.org/uml2/5.0.0/UML#//Namespace/ownedRule"/>
+ </childRules>
+ <childRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Port" origin="http://www.eclipse.org/uml2/5.0.0/UML#//Component">
+ <insertionPath feature="http://www.eclipse.org/uml2/5.0.0/UML#//EncapsulatedClassifier/ownedPort"/>
+ </childRules>
+ <paletteRules permit="false" element="component.tool.model"/>
+ <paletteRules permit="false" element="component.tool.package"/>
+ </modelKinds>
+ <modelKinds xsi:type="configuration:PapyrusDiagram" implementationID="CompositeStructure" categories="#//@categories.0">
+ <modelRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ <owningRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ <childRules/>
+ </modelKinds>
+ <modelKinds xsi:type="configuration:PapyrusDiagram" implementationID="CompositeStructure" categories="#//@categories.0">
+ <modelRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ <owningRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ <owningRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ <childRules/>
+ </modelKinds>
+ <modelKinds xsi:type="configuration:PapyrusDiagram" implementationID="CompositeStructure" categories="#//@categories.0">
+ <modelRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Collaboration"/>
+ <owningRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Collaboration"/>
+ <owningRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ <childRules/>
+ </modelKinds>
+ <modelKinds xsi:type="configuration:PapyrusDiagram" implementationID="PapyrusUMLDeploymentDiagram" categories="#//@categories.0">
+ <modelRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ <owningRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ <childRules/>
+ </modelKinds>
+ <modelKinds xsi:type="configuration:PapyrusDiagram" implementationID="PapyrusUMLProfileDiagram" categories="#//@categories.2">
+ <modelRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Profile"/>
+ <owningRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ <owningRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Profile"/>
+ <childRules/>
+ </modelKinds>
+ <modelKinds xsi:type="configuration:PapyrusDiagram" implementationID="PapyrusUMLSequenceDiagram" categories="#//@categories.0">
+ <modelRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Interaction"/>
+ <owningRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ <owningRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Interaction"/>
+ <childRules/>
+ </modelKinds>
+ <modelKinds xsi:type="configuration:PapyrusDiagram" implementationID="PapyrusUMLStateMachineDiagram" categories="#//@categories.0">
+ <modelRules element="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>
+ <owningRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ <owningRules element="http://www.eclipse.org/uml2/5.0.0/UML#//StateMachine"/>
+ <childRules/>
+ </modelKinds>
+ <modelKinds xsi:type="configuration:PapyrusDiagram" implementationID="PapyrusUMLTimingDiagram" categories="#//@categories.0">
+ <modelRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ <owningRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ <childRules/>
+ </modelKinds>
+ <modelKinds xsi:type="configuration:PapyrusDiagram" implementationID="UseCase" categories="#//@categories.0">
+ <modelRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ <owningRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ <childRules/>
+ </modelKinds>
+ <modelKinds xsi:type="configuration:PapyrusDiagram" implementationID="PapyrusUMLInteractionOverviewDiagram" categories="#//@categories.0">
+ <modelRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Activity"/>
+ <owningRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ <owningRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Activity"/>
+ <childRules/>
+ </modelKinds>
+ <modelKinds xsi:type="configuration:PapyrusDiagram" profiles="http://www.eclipse.org/papyrus/0.7.0/SysML#//blocks http://www.eclipse.org/papyrus/0.7.0/SysML#//portandflows" implementationID="BlockDefinition" categories="#//@categories.1">
+ <modelRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ <owningRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ <childRules/>
+ </modelKinds>
+ <modelKinds xsi:type="configuration:PapyrusDiagram" profiles="http://www.eclipse.org/papyrus/0.7.0/SysML#//blocks" implementationID="InternalBlock" categories="#//@categories.1">
+ <modelRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Class" stereotypes="http://www.eclipse.org/papyrus/0.7.0/SysML#//blocks/Block"/>
+ <owningRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ <owningRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Class" stereotypes="http://www.eclipse.org/papyrus/0.7.0/SysML#//blocks/Block"/>
+ <childRules/>
+ </modelKinds>
+ <modelKinds xsi:type="configuration:PapyrusDiagram" profiles="http://www.eclipse.org/papyrus/0.7.0/SysML#//blocks http://www.eclipse.org/papyrus/0.7.0/SysML#//portandflows" implementationID="Parametric" categories="#//@categories.1">
+ <modelRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ <owningRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ <childRules/>
+ </modelKinds>
+ <modelKinds xsi:type="configuration:PapyrusDiagram" profiles="http://www.eclipse.org/papyrus/0.7.0/SysML#//blocks http://www.eclipse.org/papyrus/0.7.0/SysML#//portandflows http://www.eclipse.org/papyrus/0.7.0/SysML#//constraints" implementationID="Parametric" categories="#//@categories.1">
+ <modelRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Class" stereotypes="http://www.eclipse.org/papyrus/0.7.0/SysML#//constraints/ConstraintBlock"/>
+ <owningRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ <owningRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Class" stereotypes="http://www.eclipse.org/papyrus/0.7.0/SysML#//constraints/ConstraintBlock"/>
+ <childRules/>
+ <paletteRules permit="false" element="parametric.tool.blockpropertycomposite"/>
+ <paletteRules permit="false" element="parametric.tool.reference"/>
+ <paletteRules permit="false" element="parametric.tool.value"/>
+ <paletteRules element=""/>
+ </modelKinds>
+ <modelKinds xsi:type="configuration:PapyrusDiagram" profiles="http://www.eclipse.org/papyrus/0.7.0/SysML#//blocks http://www.eclipse.org/papyrus/0.7.0/SysML#//portandflows" implementationID="Parametric" categories="#//@categories.1">
+ <modelRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Class" stereotypes="http://www.eclipse.org/papyrus/0.7.0/SysML#//blocks/Block"/>
+ <owningRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ <owningRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Class" stereotypes="http://www.eclipse.org/papyrus/0.7.0/SysML#//blocks/Block"/>
+ <childRules/>
+ </modelKinds>
+ <modelKinds xsi:type="configuration:PapyrusDiagram" profiles="http://www.eclipse.org/papyrus/0.7.0/SysML#//blocks http://www.eclipse.org/papyrus/0.7.0/SysML#//portandflows" implementationID="RequirementDiagram" categories="#//@categories.1">
+ <modelRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ <owningRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ <childRules/>
+ </modelKinds>
+ <modelKinds xsi:type="configuration:PapyrusSyncTable" name="View Table" icon="platform:/plugin/org.eclipse.papyrus.infra.nattable.views.config/icons/nattablepageeditor.png" implementationID="PapyrusViewsTable">
+ <modelRules element="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>
+ <owningRules element="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>
+ </modelKinds>
+ <modelKinds xsi:type="configuration:PapyrusSyncTable" name="Generic Table" icon="platform:/plugin/org.eclipse.papyrus.uml.nattable.generic.config/icons/uml_generic_table.png" implementationID="PapyrusGenericTable">
+ <modelRules element="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>
+ <owningRules element="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>
+ </modelKinds>
+ <modelKinds xsi:type="configuration:PapyrusSyncTable" name="Allocation Table" icon="platform:/plugin/org.eclipse.papyrus.sysml.nattable.allocation.config/icons/table_SysML_Allocation.png" profiles="http://www.eclipse.org/papyrus/0.7.0/SysML#//allocations" implementationID="PapyrusSysMLAllocationTable" categories="#//@categories.1">
+ <modelRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ <owningRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ </modelKinds>
+ <modelKinds xsi:type="configuration:PapyrusSyncTable" name="Requirement Table" icon="platform:/plugin/org.eclipse.papyrus.sysml.nattable.requirement.config/icons/table_SysML_Requirement.png" profiles="http://www.eclipse.org/papyrus/0.7.0/SysML#//requirements" implementationID="PapyrusSysMLRequirementTable" categories="#//@categories.1">
+ <modelRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ <modelRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Class" stereotypes="http://www.eclipse.org/papyrus/0.7.0/SysML#//requirements/Requirement"/>
+ <owningRules element="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ </modelKinds>
+ </viewpoints>
+ <categories name="uml"/>
+ <categories name="sysml"/>
+ <categories name="profile"/>
+</configuration:PapyrusConfiguration>
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/icons/Diagram_Package.gif b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/icons/Diagram_Package.gif
new file mode 100755
index 00000000000..be6068ee3d5
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/icons/Diagram_Package.gif
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/icons/NewDiagram.gif b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/icons/NewDiagram.gif
new file mode 100755
index 00000000000..bafa3e1c2c9
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/icons/NewDiagram.gif
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/icons/NewTable.gif b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/icons/NewTable.gif
new file mode 100755
index 00000000000..cccea64c44c
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/icons/NewTable.gif
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/icons/Table.gif b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/icons/Table.gif
new file mode 100755
index 00000000000..4aab89356c4
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/icons/Table.gif
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/icons/UnavailableDiagram.gif b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/icons/UnavailableDiagram.gif
new file mode 100755
index 00000000000..e33d676eaaf
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/icons/UnavailableDiagram.gif
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/icons/UnavailableTable.gif b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/icons/UnavailableTable.gif
new file mode 100755
index 00000000000..6572944aa9a
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/icons/UnavailableTable.gif
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/icons/UnavailableView.gif b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/icons/UnavailableView.gif
new file mode 100755
index 00000000000..67ddb9fef98
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/icons/UnavailableView.gif
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/icons/View.gif b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/icons/View.gif
new file mode 100755
index 00000000000..763a4d1836c
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/icons/View.gif
Binary files differ
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/messages.properties b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/messages.properties
new file mode 100755
index 00000000000..ddc4bafe96f
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/messages.properties
@@ -0,0 +1,13 @@
+#################################################################################
+# Copyright (c) 2008 CEA LIST.
+# 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:
+# Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+##################################################################################
+
+MsgPolicyDenyAdd=The current active viewpoint policy prevents the addition of this element to the view
+MsgPolicyDenyOwn=The current active viewpoint policy prevents this type of element to own this view \ No newline at end of file
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/model/style.ecore b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/model/style.ecore
new file mode 100755
index 00000000000..8c1d4d3616d
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/model/style.ecore
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage 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" name="style" nsURI="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style"
+ nsPrefix="style">
+ <eClassifiers xsi:type="ecore:EClass" name="PapyrusViewStyle" eSuperTypes="../../org.eclipse.gmf.runtime.notation/model/notation.ecore#//Style">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="owner" lowerBound="1" eType="ecore:EClass ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="configuration" lowerBound="1"
+ eType="ecore:EClass ../../org.eclipse.papyrus.infra.viewpoints.configuration/model/configuration.ecore#//PapyrusView"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/model/style.genmodel b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/model/style.genmodel
new file mode 100755
index 00000000000..b15e3a18421
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/model/style.genmodel
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText="Copyright (c) 2013 CEA LIST.&#xD;&#xA;&#xD;&#xA; All rights reserved. This program and the accompanying materials&#xD;&#xA; are made available under the terms of the Eclipse Public License v1.0&#xD;&#xA; which accompanies this distribution, and is available at&#xD;&#xA; http://www.eclipse.org/legal/epl-v10.html&#xD;&#xA; &#xD;&#xA; Contributors:&#xD;&#xA; Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation&#xD;&#xA; &#xD;&#xA;"
+ modelDirectory="/org.eclipse.papyrus.infra.viewpoints.policy/src-gen" modelPluginID="org.eclipse.papyrus.infra.viewpoints.policy"
+ modelName="Style" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
+ importerID="org.eclipse.emf.importer.ecore" complianceLevel="6.0" copyrightFields="false"
+ language="" usedGenPackages="../../org.eclipse.papyrus.infra.viewpoints.configuration/model/configuration.genmodel#//configuration platform:/plugin/org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore platform:/plugin/org.eclipse.papyrus.infra.viewpoints.iso42010/model/iso42010.genmodel#//iso42010 ../../org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation"
+ operationReflection="true" importOrganizing="true">
+ <foreignModel>style.ecore</foreignModel>
+ <genPackages prefix="Style" basePackage="org.eclipse.papyrus.infra.viewpoints" disposableProviderFactory="true"
+ ecorePackage="style.ecore#/">
+ <genClasses ecoreClass="style.ecore#//PapyrusViewStyle">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference style.ecore#//PapyrusViewStyle/owner"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference style.ecore#//PapyrusViewStyle/prototype"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/plugin.properties b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/plugin.properties
new file mode 100755
index 00000000000..5b5a8db1482
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/plugin.properties
@@ -0,0 +1,16 @@
+##########################################################################################
+# Copyright (c) 2013 CEA LIST.
+#
+#
+# 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:
+# Laurent Wouters (CEA LIST) laurent.wouters@cea.fr - Initial API and implementation
+#
+########################################################################################
+
+pluginName = Papyrus Viewpoints Policies (Incubation)
+providerName = Eclipse Modeling Project
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/plugin.xml b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/plugin.xml
new file mode 100755
index 00000000000..22372a66bb9
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/plugin.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension-point id="org.eclipse.papyrus.infra.viewpoints.policy.custom" name="Custom Viewpoints Policy" schema="schema/custom.exsd"/>
+ <extension-point id="org.eclipse.papyrus.infra.viewpoints.policy.profilehelper" name="Viewpoints Policy Profile Helper" schema="schema/profilehelper.exsd"/>
+ <extension-point id="org.eclipse.papyrus.infra.viewpoints.policy.viewType" name="View Type Definition" schema="schema/viewType.exsd"/>
+ <extension
+ point="org.eclipse.emf.ecore.generated_package">
+ <package
+ class="org.eclipse.papyrus.infra.viewpoints.style.StylePackage"
+ genModel="model/style.genmodel"
+ uri="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style">
+ </package>
+ </extension>
+ <extension
+ point="org.eclipse.core.runtime.preferences">
+ <initializer
+ class="org.eclipse.papyrus.infra.viewpoints.policy.PreferenceInitializer">
+ </initializer>
+ </extension>
+ <extension
+ point="org.eclipse.ui.commands">
+ <category
+ id="org.eclipse.papyrus.infra.viewpoints.policy.commands"
+ name="Dynamic Creation Commands">
+ </category>
+ </extension>
+ <extension
+ point="org.eclipse.ui.menus">
+ <menuContribution
+ allPopups="false"
+ locationURI="toolbar:org.eclipse.ui.main.toolbar">
+ <toolbar
+ id="org.eclipse.papyrus.infra.viewpoints.policy.toolbar"
+ label="Viewpoints Toolbar">
+ </toolbar>
+ </menuContribution>
+ </extension>
+ <extension
+ point="org.eclipse.ui.views">
+ <view
+ category="org.eclipse.papyrus.views.category"
+ class="org.eclipse.papyrus.infra.viewpoints.policy.ViewpointExplorer"
+ icon="platform:/plugin/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/obj16/PapyrusViewpoint.png"
+ id="org.eclipse.papyrus.infra.viewpoints.policy.ViewpointExplorer"
+ name="Viewpoint Explorer">
+ </view>
+ </extension>
+
+
+</plugin>
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/schema/custom.exsd b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/schema/custom.exsd
new file mode 100755
index 00000000000..e626d8e4a34
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/schema/custom.exsd
@@ -0,0 +1,113 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.papyrus.infra.viewpoints.policy" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appinfo>
+ <meta.schema plugin="org.eclipse.papyrus.infra.viewpoints.policy" id="org.eclipse.papyrus.infra.viewpoints.policy.custom" name="Custom Viewpoints Policy"/>
+ </appinfo>
+ <documentation>
+ Definition of Papyrus viewpoints configuration.
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <annotation>
+ <appinfo>
+ <meta.element />
+ </appinfo>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="configuration" minOccurs="0" maxOccurs="unbounded"/>
+ <element ref="contribution" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="configuration">
+ <annotation>
+ <documentation>
+ Represents the definition of a custom viewpoints configuration
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="file" type="string" use="required">
+ <annotation>
+ <documentation>
+ URI of a .configuration file containing the Papyrus viewpoints configuration to be applied
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="resource"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="priority" type="string" use="required">
+ <annotation>
+ <documentation>
+ Priority of the policy between 0 (least) and 100 (most)
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="contribution">
+ <annotation>
+ <documentation>
+ Represents the contribution to an existing configuration
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="original" type="string" use="required">
+ <annotation>
+ <documentation>
+ The original configuration that is contributed to
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="resource"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="file" type="string" use="required">
+ <annotation>
+ <documentation>
+ The configuration that is contributing
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="resource"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+
+
+
+
+
+</schema>
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/schema/profilehelper.exsd b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/schema/profilehelper.exsd
new file mode 100755
index 00000000000..6e0eee1380c
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/schema/profilehelper.exsd
@@ -0,0 +1,102 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.papyrus.infra.viewpoints.policy" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appinfo>
+ <meta.schema plugin="org.eclipse.papyrus.infra.viewpoints.policy" id="org.eclipse.papyrus.infra.viewpoints.policy.profilehelper" name="Viewpoints Policy Profile Helper"/>
+ </appinfo>
+ <documentation>
+ Definition of helpers for the handling of UML profiles by the Policy enforcement
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <annotation>
+ <appinfo>
+ <meta.element />
+ </appinfo>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="helper"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="helper">
+ <complexType>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+ The implementation class of the Profile Helper
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="java" basedOn=":org.eclipse.papyrus.infra.viewpoints.policy.IProfileHelper"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="since"/>
+ </appinfo>
+ <documentation>
+ [Enter the first release in which this extension point appears.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="examples"/>
+ </appinfo>
+ <documentation>
+ [Enter extension point usage example here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="apiinfo"/>
+ </appinfo>
+ <documentation>
+ [Enter API information here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="implementation"/>
+ </appinfo>
+ <documentation>
+ [Enter information about supplied implementation of this extension point.]
+ </documentation>
+ </annotation>
+
+
+</schema>
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/schema/viewType.exsd b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/schema/viewType.exsd
new file mode 100755
index 00000000000..ac27b1583da
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/schema/viewType.exsd
@@ -0,0 +1,102 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.papyrus.infra.viewpoints.policy" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appinfo>
+ <meta.schema plugin="org.eclipse.papyrus.infra.viewpoints.policy" id="org.eclipse.papyrus.infra.viewpoints.policy.viewType" name="View Type Definition"/>
+ </appinfo>
+ <documentation>
+ Definition of a type of view
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <annotation>
+ <appinfo>
+ <meta.element />
+ </appinfo>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="helper"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="helper">
+ <complexType>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="java" basedOn=":org.eclipse.papyrus.infra.viewpoints.policy.IViewTypeHelper"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="since"/>
+ </appinfo>
+ <documentation>
+ [Enter the first release in which this extension point appears.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="examples"/>
+ </appinfo>
+ <documentation>
+ [Enter extension point usage example here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="apiinfo"/>
+ </appinfo>
+ <documentation>
+ [Enter API information here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="implementation"/>
+ </appinfo>
+ <documentation>
+ [Enter information about supplied implementation of this extension point.]
+ </documentation>
+ </annotation>
+
+
+</schema>
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src-gen/org/eclipse/papyrus/infra/viewpoints/style/PapyrusViewStyle.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src-gen/org/eclipse/papyrus/infra/viewpoints/style/PapyrusViewStyle.java
new file mode 100755
index 00000000000..34478ed661e
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src-gen/org/eclipse/papyrus/infra/viewpoints/style/PapyrusViewStyle.java
@@ -0,0 +1,91 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.style;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.gmf.runtime.notation.Style;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusView;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Papyrus View Style</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.style.PapyrusViewStyle#getOwner <em>Owner</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.style.PapyrusViewStyle#getConfiguration <em>Configuration</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.infra.viewpoints.style.StylePackage#getPapyrusViewStyle()
+ * @model
+ * @generated
+ */
+public interface PapyrusViewStyle extends Style {
+ /**
+ * Returns the value of the '<em><b>Owner</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Owner</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Owner</em>' reference.
+ * @see #setOwner(EObject)
+ * @see org.eclipse.papyrus.infra.viewpoints.style.StylePackage#getPapyrusViewStyle_Owner()
+ * @model required="true"
+ * @generated
+ */
+ EObject getOwner();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.infra.viewpoints.style.PapyrusViewStyle#getOwner <em>Owner</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Owner</em>' reference.
+ * @see #getOwner()
+ * @generated
+ */
+ void setOwner(EObject value);
+
+ /**
+ * Returns the value of the '<em><b>Configuration</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Configuration</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Configuration</em>' reference.
+ * @see #setConfiguration(PapyrusView)
+ * @see org.eclipse.papyrus.infra.viewpoints.style.StylePackage#getPapyrusViewStyle_Configuration()
+ * @model required="true"
+ * @generated
+ */
+ PapyrusView getConfiguration();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.infra.viewpoints.style.PapyrusViewStyle#getConfiguration <em>Configuration</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Configuration</em>' reference.
+ * @see #getConfiguration()
+ * @generated
+ */
+ void setConfiguration(PapyrusView value);
+
+} // PapyrusViewStyle
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src-gen/org/eclipse/papyrus/infra/viewpoints/style/StyleFactory.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src-gen/org/eclipse/papyrus/infra/viewpoints/style/StyleFactory.java
new file mode 100755
index 00000000000..acfb0771aac
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src-gen/org/eclipse/papyrus/infra/viewpoints/style/StyleFactory.java
@@ -0,0 +1,53 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.style;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.style.StylePackage
+ * @generated
+ */
+public interface StyleFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ StyleFactory eINSTANCE = org.eclipse.papyrus.infra.viewpoints.style.impl.StyleFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Papyrus View Style</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Papyrus View Style</em>'.
+ * @generated
+ */
+ PapyrusViewStyle createPapyrusViewStyle();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ StylePackage getStylePackage();
+
+} //StyleFactory
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src-gen/org/eclipse/papyrus/infra/viewpoints/style/StylePackage.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src-gen/org/eclipse/papyrus/infra/viewpoints/style/StylePackage.java
new file mode 100755
index 00000000000..e3882c37de1
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src-gen/org/eclipse/papyrus/infra/viewpoints/style/StylePackage.java
@@ -0,0 +1,200 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.style;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.style.StyleFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface StylePackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "style";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/papyrus/infra/viewpoints/policy/style";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "style";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ StylePackage eINSTANCE = org.eclipse.papyrus.infra.viewpoints.style.impl.StylePackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.infra.viewpoints.style.impl.PapyrusViewStyleImpl <em>Papyrus View Style</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.style.impl.PapyrusViewStyleImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.style.impl.StylePackageImpl#getPapyrusViewStyle()
+ * @generated
+ */
+ int PAPYRUS_VIEW_STYLE = 0;
+
+ /**
+ * The feature id for the '<em><b>Owner</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_VIEW_STYLE__OWNER = NotationPackage.STYLE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Configuration</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_VIEW_STYLE__CONFIGURATION = NotationPackage.STYLE_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Papyrus View Style</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_VIEW_STYLE_FEATURE_COUNT = NotationPackage.STYLE_FEATURE_COUNT + 2;
+
+ /**
+ * The number of operations of the '<em>Papyrus View Style</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_VIEW_STYLE_OPERATION_COUNT = 0;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.infra.viewpoints.style.PapyrusViewStyle <em>Papyrus View Style</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Papyrus View Style</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.style.PapyrusViewStyle
+ * @generated
+ */
+ EClass getPapyrusViewStyle();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.infra.viewpoints.style.PapyrusViewStyle#getOwner <em>Owner</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Owner</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.style.PapyrusViewStyle#getOwner()
+ * @see #getPapyrusViewStyle()
+ * @generated
+ */
+ EReference getPapyrusViewStyle_Owner();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.infra.viewpoints.style.PapyrusViewStyle#getConfiguration <em>Configuration</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Configuration</em>'.
+ * @see org.eclipse.papyrus.infra.viewpoints.style.PapyrusViewStyle#getConfiguration()
+ * @see #getPapyrusViewStyle()
+ * @generated
+ */
+ EReference getPapyrusViewStyle_Configuration();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ StyleFactory getStyleFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.infra.viewpoints.style.impl.PapyrusViewStyleImpl <em>Papyrus View Style</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.style.impl.PapyrusViewStyleImpl
+ * @see org.eclipse.papyrus.infra.viewpoints.style.impl.StylePackageImpl#getPapyrusViewStyle()
+ * @generated
+ */
+ EClass PAPYRUS_VIEW_STYLE = eINSTANCE.getPapyrusViewStyle();
+
+ /**
+ * The meta object literal for the '<em><b>Owner</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PAPYRUS_VIEW_STYLE__OWNER = eINSTANCE.getPapyrusViewStyle_Owner();
+
+ /**
+ * The meta object literal for the '<em><b>Configuration</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PAPYRUS_VIEW_STYLE__CONFIGURATION = eINSTANCE.getPapyrusViewStyle_Configuration();
+
+ }
+
+} //StylePackage
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src-gen/org/eclipse/papyrus/infra/viewpoints/style/impl/PapyrusViewStyleImpl.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src-gen/org/eclipse/papyrus/infra/viewpoints/style/impl/PapyrusViewStyleImpl.java
new file mode 100755
index 00000000000..528d31bacc6
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src-gen/org/eclipse/papyrus/infra/viewpoints/style/impl/PapyrusViewStyleImpl.java
@@ -0,0 +1,229 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.style.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusView;
+import org.eclipse.papyrus.infra.viewpoints.style.PapyrusViewStyle;
+import org.eclipse.papyrus.infra.viewpoints.style.StylePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Papyrus View Style</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.style.impl.PapyrusViewStyleImpl#getOwner <em>Owner</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.viewpoints.style.impl.PapyrusViewStyleImpl#getConfiguration <em>Configuration</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PapyrusViewStyleImpl extends MinimalEObjectImpl.Container implements PapyrusViewStyle {
+ /**
+ * The cached value of the '{@link #getOwner() <em>Owner</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOwner()
+ * @generated
+ * @ordered
+ */
+ protected EObject owner;
+
+ /**
+ * The cached value of the '{@link #getConfiguration() <em>Configuration</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getConfiguration()
+ * @generated
+ * @ordered
+ */
+ protected PapyrusView configuration;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PapyrusViewStyleImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return StylePackage.Literals.PAPYRUS_VIEW_STYLE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EObject getOwner() {
+ if (owner != null && owner.eIsProxy()) {
+ InternalEObject oldOwner = (InternalEObject)owner;
+ owner = eResolveProxy(oldOwner);
+ if (owner != oldOwner) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, StylePackage.PAPYRUS_VIEW_STYLE__OWNER, oldOwner, owner));
+ }
+ }
+ return owner;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EObject basicGetOwner() {
+ return owner;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOwner(EObject newOwner) {
+ EObject oldOwner = owner;
+ owner = newOwner;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, StylePackage.PAPYRUS_VIEW_STYLE__OWNER, oldOwner, owner));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PapyrusView getConfiguration() {
+ if (configuration != null && configuration.eIsProxy()) {
+ InternalEObject oldConfiguration = (InternalEObject)configuration;
+ configuration = (PapyrusView)eResolveProxy(oldConfiguration);
+ if (configuration != oldConfiguration) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, StylePackage.PAPYRUS_VIEW_STYLE__CONFIGURATION, oldConfiguration, configuration));
+ }
+ }
+ return configuration;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PapyrusView basicGetConfiguration() {
+ return configuration;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setConfiguration(PapyrusView newConfiguration) {
+ PapyrusView oldConfiguration = configuration;
+ configuration = newConfiguration;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, StylePackage.PAPYRUS_VIEW_STYLE__CONFIGURATION, oldConfiguration, configuration));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case StylePackage.PAPYRUS_VIEW_STYLE__OWNER:
+ if (resolve) return getOwner();
+ return basicGetOwner();
+ case StylePackage.PAPYRUS_VIEW_STYLE__CONFIGURATION:
+ if (resolve) return getConfiguration();
+ return basicGetConfiguration();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case StylePackage.PAPYRUS_VIEW_STYLE__OWNER:
+ setOwner((EObject)newValue);
+ return;
+ case StylePackage.PAPYRUS_VIEW_STYLE__CONFIGURATION:
+ setConfiguration((PapyrusView)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case StylePackage.PAPYRUS_VIEW_STYLE__OWNER:
+ setOwner((EObject)null);
+ return;
+ case StylePackage.PAPYRUS_VIEW_STYLE__CONFIGURATION:
+ setConfiguration((PapyrusView)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case StylePackage.PAPYRUS_VIEW_STYLE__OWNER:
+ return owner != null;
+ case StylePackage.PAPYRUS_VIEW_STYLE__CONFIGURATION:
+ return configuration != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //PapyrusViewStyleImpl
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src-gen/org/eclipse/papyrus/infra/viewpoints/style/impl/StyleFactoryImpl.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src-gen/org/eclipse/papyrus/infra/viewpoints/style/impl/StyleFactoryImpl.java
new file mode 100755
index 00000000000..9d5b17843f8
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src-gen/org/eclipse/papyrus/infra/viewpoints/style/impl/StyleFactoryImpl.java
@@ -0,0 +1,106 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.style.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.eclipse.papyrus.infra.viewpoints.style.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class StyleFactoryImpl extends EFactoryImpl implements StyleFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static StyleFactory init() {
+ try {
+ StyleFactory theStyleFactory = (StyleFactory)EPackage.Registry.INSTANCE.getEFactory(StylePackage.eNS_URI);
+ if (theStyleFactory != null) {
+ return theStyleFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new StyleFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StyleFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case StylePackage.PAPYRUS_VIEW_STYLE: return createPapyrusViewStyle();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PapyrusViewStyle createPapyrusViewStyle() {
+ PapyrusViewStyleImpl papyrusViewStyle = new PapyrusViewStyleImpl();
+ return papyrusViewStyle;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StylePackage getStylePackage() {
+ return (StylePackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static StylePackage getPackage() {
+ return StylePackage.eINSTANCE;
+ }
+
+} //StyleFactoryImpl
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src-gen/org/eclipse/papyrus/infra/viewpoints/style/impl/StylePackageImpl.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src-gen/org/eclipse/papyrus/infra/viewpoints/style/impl/StylePackageImpl.java
new file mode 100755
index 00000000000..4b166c9a502
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src-gen/org/eclipse/papyrus/infra/viewpoints/style/impl/StylePackageImpl.java
@@ -0,0 +1,210 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.style.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ConfigurationPackage;
+import org.eclipse.papyrus.infra.viewpoints.style.PapyrusViewStyle;
+import org.eclipse.papyrus.infra.viewpoints.style.StyleFactory;
+import org.eclipse.papyrus.infra.viewpoints.style.StylePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class StylePackageImpl extends EPackageImpl implements StylePackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass papyrusViewStyleEClass = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.papyrus.infra.viewpoints.style.StylePackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private StylePackageImpl() {
+ super(eNS_URI, StyleFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link StylePackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static StylePackage init() {
+ if (isInited) return (StylePackage)EPackage.Registry.INSTANCE.getEPackage(StylePackage.eNS_URI);
+
+ // Obtain or create and register package
+ StylePackageImpl theStylePackage = (StylePackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof StylePackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new StylePackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ ConfigurationPackage.eINSTANCE.eClass();
+ NotationPackage.eINSTANCE.eClass();
+
+ // Create package meta-data objects
+ theStylePackage.createPackageContents();
+
+ // Initialize created meta-data
+ theStylePackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theStylePackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(StylePackage.eNS_URI, theStylePackage);
+ return theStylePackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPapyrusViewStyle() {
+ return papyrusViewStyleEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPapyrusViewStyle_Owner() {
+ return (EReference)papyrusViewStyleEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPapyrusViewStyle_Configuration() {
+ return (EReference)papyrusViewStyleEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StyleFactory getStyleFactory() {
+ return (StyleFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ papyrusViewStyleEClass = createEClass(PAPYRUS_VIEW_STYLE);
+ createEReference(papyrusViewStyleEClass, PAPYRUS_VIEW_STYLE__OWNER);
+ createEReference(papyrusViewStyleEClass, PAPYRUS_VIEW_STYLE__CONFIGURATION);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ NotationPackage theNotationPackage = (NotationPackage)EPackage.Registry.INSTANCE.getEPackage(NotationPackage.eNS_URI);
+ EcorePackage theEcorePackage = (EcorePackage)EPackage.Registry.INSTANCE.getEPackage(EcorePackage.eNS_URI);
+ ConfigurationPackage theConfigurationPackage = (ConfigurationPackage)EPackage.Registry.INSTANCE.getEPackage(ConfigurationPackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ papyrusViewStyleEClass.getESuperTypes().add(theNotationPackage.getStyle());
+
+ // Initialize classes, features, and operations; add parameters
+ initEClass(papyrusViewStyleEClass, PapyrusViewStyle.class, "PapyrusViewStyle", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getPapyrusViewStyle_Owner(), theEcorePackage.getEObject(), null, "owner", null, 1, 1, PapyrusViewStyle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getPapyrusViewStyle_Configuration(), theConfigurationPackage.getPapyrusView(), null, "configuration", null, 1, 1, PapyrusViewStyle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Create resource
+ createResource(eNS_URI);
+ }
+
+} //StylePackageImpl
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src-gen/org/eclipse/papyrus/infra/viewpoints/style/util/StyleAdapterFactory.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src-gen/org/eclipse/papyrus/infra/viewpoints/style/util/StyleAdapterFactory.java
new file mode 100755
index 00000000000..e5612e40605
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src-gen/org/eclipse/papyrus/infra/viewpoints/style/util/StyleAdapterFactory.java
@@ -0,0 +1,151 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.style.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.gmf.runtime.notation.Style;
+
+import org.eclipse.papyrus.infra.viewpoints.style.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.style.StylePackage
+ * @generated
+ */
+public class StyleAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static StylePackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StyleAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = StylePackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected StyleSwitch<Adapter> modelSwitch =
+ new StyleSwitch<Adapter>() {
+ @Override
+ public Adapter casePapyrusViewStyle(PapyrusViewStyle object) {
+ return createPapyrusViewStyleAdapter();
+ }
+ @Override
+ public Adapter caseStyle(Style object) {
+ return createStyleAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.viewpoints.style.PapyrusViewStyle <em>Papyrus View Style</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.viewpoints.style.PapyrusViewStyle
+ * @generated
+ */
+ public Adapter createPapyrusViewStyleAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.gmf.runtime.notation.Style <em>Style</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.gmf.runtime.notation.Style
+ * @generated
+ */
+ public Adapter createStyleAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //StyleAdapterFactory
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src-gen/org/eclipse/papyrus/infra/viewpoints/style/util/StyleSwitch.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src-gen/org/eclipse/papyrus/infra/viewpoints/style/util/StyleSwitch.java
new file mode 100755
index 00000000000..8dc58ae4491
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src-gen/org/eclipse/papyrus/infra/viewpoints/style/util/StyleSwitch.java
@@ -0,0 +1,139 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.viewpoints.style.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+import org.eclipse.gmf.runtime.notation.Style;
+
+import org.eclipse.papyrus.infra.viewpoints.style.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.viewpoints.style.StylePackage
+ * @generated
+ */
+public class StyleSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static StylePackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StyleSwitch() {
+ if (modelPackage == null) {
+ modelPackage = StylePackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @parameter ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case StylePackage.PAPYRUS_VIEW_STYLE: {
+ PapyrusViewStyle papyrusViewStyle = (PapyrusViewStyle)theEObject;
+ T result = casePapyrusViewStyle(papyrusViewStyle);
+ if (result == null) result = caseStyle(papyrusViewStyle);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Papyrus View Style</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Papyrus View Style</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePapyrusViewStyle(PapyrusViewStyle object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Style</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Style</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseStyle(Style object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //StyleSwitch
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/Activator.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/Activator.java
new file mode 100755
index 00000000000..f695b17a236
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/Activator.java
@@ -0,0 +1,79 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.policy;
+
+import org.eclipse.papyrus.infra.core.log.LogHelper;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.papyrus.infra.viewpoints.policy"; //$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+
+ // The log for this plugin
+ private LogHelper log;
+
+ /**
+ * Gets the Papyrus log associated with this plugin
+ *
+ * @return The Papyrus log for this plugin
+ */
+ public LogHelper getPapyrusLog() {
+ return log;
+ }
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ this.log = new LogHelper(this);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/DynamicCommandHandler.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/DynamicCommandHandler.java
new file mode 100755
index 00000000000..c50c7553249
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/DynamicCommandHandler.java
@@ -0,0 +1,68 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.policy;
+
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.commands.IHandler;
+import org.eclipse.core.commands.IHandlerListener;
+
+
+/**
+ * Represents the default handler for commands about the creation of dynamic views.
+ * This class is used to activate the UI elements that rely on the corresponding commands.
+ *
+ * @author Laurent Wouters
+ */
+public class DynamicCommandHandler implements IHandler {
+
+ /**
+ * @see org.eclipse.core.commands.IHandler#addHandlerListener(org.eclipse.core.commands.IHandlerListener)
+ */
+ public void addHandlerListener(IHandlerListener handlerListener) {
+ }
+
+ /**
+ * @see org.eclipse.core.commands.IHandler#dispose()
+ */
+ public void dispose() {
+ }
+
+ /**
+ * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+ */
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+ return null;
+ }
+
+ /**
+ * @see org.eclipse.core.commands.IHandler#isEnabled()
+ */
+ public boolean isEnabled() {
+ return true;
+ }
+
+ /**
+ * @see org.eclipse.core.commands.IHandler#isHandled()
+ */
+ public boolean isHandled() {
+ return true;
+ }
+
+ /**
+ * @see org.eclipse.core.commands.IHandler#removeHandlerListener(org.eclipse.core.commands.IHandlerListener)
+ */
+ public void removeHandlerListener(IHandlerListener handlerListener) {
+ }
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/DynamicContribution.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/DynamicContribution.java
new file mode 100755
index 00000000000..088fcadb681
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/DynamicContribution.java
@@ -0,0 +1,77 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.policy;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.papyrus.infra.emf.utils.EMFHelper;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.actions.CompoundContributionItem;
+
+/**
+ * Represent the dynamic contribution of a policy to some UI elements
+ *
+ * @author Laurent Wouters
+ */
+public abstract class DynamicContribution extends CompoundContributionItem {
+
+ /**
+ * Creation message prefix
+ */
+ protected static final String CREATE_MESSAGE = "Create a new ";
+
+ /**
+ * Constructor.
+ */
+ protected DynamicContribution() {
+ }
+
+ /**
+ * Constructor.
+ */
+ protected DynamicContribution(String id) {
+ }
+
+ /**
+ * @see org.eclipse.ui.actions.CompoundContributionItem#isDynamic()
+ */
+ @Override
+ public boolean isDynamic() {
+ return true;
+ }
+
+ /**
+ * Gets the current selection as an EObject
+ *
+ * @return The current selection, or <code>null</code> if it is not an EObject
+ */
+ protected EObject getSelection() {
+ IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
+ if (window == null)
+ return null;
+ ISelection selection = window.getSelectionService().getSelection();
+ if (selection == null)
+ return null;
+ if (selection.isEmpty())
+ return null;
+ if (selection instanceof IStructuredSelection) {
+ IStructuredSelection struct = (IStructuredSelection) selection;
+ Object obj = struct.getFirstElement();
+ return EMFHelper.getEObject(obj);
+ }
+ return null;
+ }
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/IProfileHelper.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/IProfileHelper.java
new file mode 100755
index 00000000000..cf96c652625
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/IProfileHelper.java
@@ -0,0 +1,47 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.viewpoints.policy;
+
+import java.util.Collection;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+/**
+ * Represents a helper for the Policy Checker that is able to check the application of UML profiles
+ *
+ * @author Laurent Wouters
+ */
+public interface IProfileHelper {
+
+ /**
+ * Gets a collection of the profiles (as EPackage-s) applied on the given model
+ *
+ * @param model
+ * The model to inspect
+ * @return A collection of profiles (as EPackage)
+ */
+ Collection<EPackage> getAppliedProfiles(EObject model);
+
+ /**
+ * Gets a collection of the stereotypes (as EClass-es) applied to the given object
+ *
+ * @param object
+ * The object to inspect
+ * @return A collection of stereotypes (as EClass)
+ */
+ Collection<EClass> getAppliedStereotypes(EObject object);
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/IViewTypeHelper.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/IViewTypeHelper.java
new file mode 100755
index 00000000000..1efe4f7bdf4
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/IViewTypeHelper.java
@@ -0,0 +1,60 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.policy;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusView;
+
+
+/**
+ * Represents a helper for the handling of view creation commands
+ *
+ * @author Laurent Wouters
+ */
+public interface IViewTypeHelper {
+ /**
+ * Determines whether the given type of view is supported by this helper
+ *
+ * @return <code>true</code> if the type of view is supported by this helper
+ */
+ boolean isSupported(EClass type);
+
+ /**
+ * Determines whether the given object represents a view that is supported by this helper
+ *
+ * @param view
+ * The object to enquire
+ * @return <code>true</code> if the object represents a view supported by this helper
+ */
+ boolean isSupported(EObject view);
+
+ /**
+ * Gets the prototype for the given configuration element
+ *
+ * @param configuration
+ * A view configuration element
+ * @return The associated prototype
+ */
+ ViewPrototype getPrototypeFor(PapyrusView configuration);
+
+ /**
+ * Gets the prototype of the given view
+ *
+ * @param view
+ * The view
+ * @return The prototype of the given view
+ */
+ ViewPrototype getPrototypeOf(EObject view);
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/ModelAddData.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/ModelAddData.java
new file mode 100755
index 00000000000..96255381264
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/ModelAddData.java
@@ -0,0 +1,195 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.policy;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PathElement;
+
+/**
+ * Represents the set of data related to the insertion of a new model element in a view
+ *
+ * @author Laurent Wouters
+ */
+public class ModelAddData {
+ private boolean permit;
+ private List<EReference> path;
+ private EObject undoOrigin;
+ private EReference undoReference;
+ private EObject undoValuePrevious;
+ private EObject undoValueNext;
+
+ /**
+ * Determines whether the insertion is permitted
+ *
+ * @return <code>true</code> if it is permitted
+ */
+ public boolean isPermitted() {
+ return permit;
+ }
+
+ /**
+ * Determines whether an insertion path for the new element has been defined
+ *
+ * @return <code>true</code> if an insertion path has been defined
+ */
+ public boolean isPathDefined() {
+ return (path != null);
+ }
+
+ /**
+ * Initializes this set of data without an insertion path
+ *
+ * @param permit
+ * Is the insertion permitted?
+ */
+ public ModelAddData(boolean permit) {
+ this.permit = permit;
+ }
+
+ /**
+ * Initializes this set of data
+ *
+ * @param permit
+ * Is the insertion permitted?
+ * @param insertionPath
+ * The insertion path
+ */
+ public ModelAddData(boolean permit, EList<PathElement> insertionPath) {
+ this.permit = permit;
+ if (insertionPath != null && !insertionPath.isEmpty()) {
+ this.path = new ArrayList<EReference>(insertionPath.size());
+ for (int i = 0; i != insertionPath.size(); i++)
+ path.add(insertionPath.get(i).getFeature());
+ }
+ }
+
+ /**
+ * Execute the insertion represented by this object on the given origin object
+ *
+ * @param origin
+ * The origin object
+ * @param target
+ * The object to insert
+ * @return <code>true</code> if the insertion was successful
+ */
+ public boolean execute(EObject origin, EObject target) {
+ EObject current = origin;
+ int index = 0;
+ while (index < path.size() - 1) {
+ current = buildPathStep(current, path.get(index));
+ if (current == null)
+ return false;
+ index++;
+ }
+ EReference feature = path.get(path.size() - 1);
+ if (feature.isMany()) {
+ EList list = (EList) current.eGet(feature);
+ list.add(target);
+ setUndo(current, feature, null, target);
+ } else {
+ setUndo(current, feature, (EObject) current.eGet(feature), target);
+ current.eSet(feature, target);
+ }
+ return true;
+ }
+
+ /**
+ * Undo the effect of a previous execute
+ */
+ public void undoExecute() {
+ if (undoReference.isMany()) {
+ ((EList) undoOrigin.eGet(undoReference)).remove(undoValueNext);
+ } else {
+ undoOrigin.eSet(undoReference, undoValuePrevious);
+ }
+ }
+
+ /**
+ * Re-execute the insertion represented by this object
+ */
+ public void redoExecute() {
+ if (undoReference.isMany()) {
+ ((EList) undoOrigin.eGet(undoReference)).add(undoValueNext);
+ } else {
+ undoOrigin.eSet(undoReference, undoValueNext);
+ }
+ }
+
+ /**
+ * Executes a step in the insertion path
+ *
+ * @param current
+ * The current object
+ * @param feature
+ * The feature to resolve on the object
+ * @return The resolved object at this step that is now contained in current.feature
+ */
+ private EObject buildPathStep(EObject current, EReference feature) {
+ Object value = current.eGet(feature);
+ if (value == null) {
+ // Try to create an instance of the type
+ EClass type = feature.getEReferenceType();
+ if (type.isAbstract())
+ return null; // Too bad, we can't fix this
+ EObject inst = EcoreUtil.create(type);
+ current.eSet(feature, inst);
+ setUndo(current, feature, null, inst);
+ return inst;
+ } else if (value instanceof EList) {
+ EList list = (EList) value;
+ // If we got at least one element, return the first one
+ if (!list.isEmpty()) {
+ return (EObject) list.get(0);
+ }
+ // We have to create one
+ EClass type = feature.getEReferenceType();
+ if (type.isAbstract())
+ return null; // Too bad, we can't fix this
+ EObject inst = EcoreUtil.create(type);
+ list.add(inst);
+ setUndo(current, feature, null, inst);
+ return inst;
+ } else {
+ return (EObject) value;
+ }
+ }
+
+ /**
+ * Sets up the undo data if necessary
+ *
+ * @param origin
+ * The modified object
+ * @param feature
+ * The modified feature
+ * @param previous
+ * The previous value
+ * @param next
+ * The target value
+ */
+ private void setUndo(EObject origin, EReference feature, EObject previous, EObject next) {
+ if (undoReference == null)
+ return;
+ undoOrigin = origin;
+ undoReference = feature;
+ undoValuePrevious = previous;
+ undoValueNext = next;
+ }
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/NotationUtils.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/NotationUtils.java
new file mode 100755
index 00000000000..06858ca5ebe
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/NotationUtils.java
@@ -0,0 +1,168 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.policy;
+
+import java.util.Iterator;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.ui.PlatformUI;
+
+
+/**
+ * Helper methods for the .notation related resources
+ *
+ * @author Laurent Wouters
+ */
+public class NotationUtils {
+
+ /**
+ * Gets the roots of the notations resources related to the given object
+ *
+ * @param element
+ * The object from which to retrieve the notation resources
+ * @return An iterator of notation resources' roots, or <code>null</code> if none cannot be resolved
+ */
+ public static Iterator<EObject> getNotationRoots(EObject element) {
+ Iterator<Resource> notations = getNotationResources(element);
+ if (notations == null)
+ return null;
+ return new RootsIterator(notations);
+ }
+
+ /**
+ * Represents an iterator on all the roots of the notations resources of a ResourceSet
+ *
+ * @author Laurent Wouters
+ */
+ private static class RootsIterator implements Iterator<EObject> {
+ private Iterator<Resource> notations;
+ private Iterator<EObject> inner;
+
+ public RootsIterator(Iterator<Resource> notations) {
+ this.notations = notations;
+ if (notations.hasNext())
+ inner = notations.next().getAllContents();
+ }
+
+ public boolean hasNext() {
+ if (inner == null)
+ return false;
+ if (inner.hasNext())
+ return true;
+ while (notations.hasNext()) {
+ inner = notations.next().getAllContents();
+ if (inner.hasNext())
+ return true;
+ }
+ inner = null;
+ return false;
+ }
+
+ public EObject next() {
+ if (inner == null)
+ return null;
+ if (inner.hasNext())
+ return inner.next();
+ while (notations.hasNext()) {
+ inner = notations.next().getAllContents();
+ if (inner.hasNext())
+ return inner.next();
+ }
+ inner = null;
+ return null;
+ }
+
+ public void remove() {
+ throw new UnsupportedOperationException();
+ }
+ }
+
+
+ /**
+ * Gets the notation resources related to the given object
+ *
+ * @param element
+ * The object from which to retrieve the notation resources
+ * @return An iterator of notation resources, or <code>null</code> if none cannot be resolved
+ */
+ public static Iterator<Resource> getNotationResources(EObject element) {
+ Iterator<Resource> result = tryGetNotationResources(element);
+ if (result != null)
+ return result;
+ IAdaptable input = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getInput();
+ if (input != null) {
+ EObject obj = (EObject) input.getAdapter(EObject.class);
+ return tryGetNotationResources(obj);
+ }
+ return null;
+ }
+
+ /**
+ * Tries to get the notation resources related to the given object
+ *
+ * @param element
+ * The object from which to retrieve the notation resources
+ * @return An iterator of notation resources, or <code>null</code> if none cannot be resolved
+ */
+ private static Iterator<Resource> tryGetNotationResources(EObject element) {
+ if (element == null)
+ return null;
+ if (element.eResource() == null)
+ return null;
+ return new NotationsIterator(element.eResource().getResourceSet());
+ }
+
+
+ /**
+ * Represents an iterator over the notation resources of a ResourceSet
+ *
+ * @author Laurent Wouters
+ */
+ private static class NotationsIterator implements Iterator<Resource> {
+ private Iterator<Resource> inner;
+ private Resource next;
+
+ public NotationsIterator(ResourceSet set) {
+ inner = set.getResources().iterator();
+ next = getNextNotation();
+ }
+
+ private Resource getNextNotation() {
+ while (inner.hasNext()) {
+ Resource resource = inner.next();
+ String uri = resource.getURI().toString();
+ if (uri.endsWith(".notation"))
+ return resource;
+ }
+ return null;
+ }
+
+ public boolean hasNext() {
+ return (next != null);
+ }
+
+ public Resource next() {
+ Resource result = next;
+ next = getNextNotation();
+ return result;
+ }
+
+ public void remove() {
+ throw new UnsupportedOperationException();
+ }
+ }
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/PolicyChecker.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/PolicyChecker.java
new file mode 100755
index 00000000000..81156d18a14
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/PolicyChecker.java
@@ -0,0 +1,978 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.policy;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtension;
+import org.eclipse.core.runtime.IExtensionPoint;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.Platform;
+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.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.papyrus.infra.core.pluginexplorer.Plugin;
+import org.eclipse.papyrus.infra.core.pluginexplorer.PluginEntry;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ChildRule;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ModelRule;
+import org.eclipse.papyrus.infra.viewpoints.configuration.OwningRule;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PaletteRule;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusConfiguration;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusDiagram;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusView;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusViewpoint;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ArchitectureViewpoint;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.ModelKind;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Stakeholder;
+
+/**
+ * The <code>PolicyChecker</code> enforces the viewpoints configuration as a policy in the user interface
+ *
+ * @author Laurent Wouters
+ */
+public class PolicyChecker {
+ /**
+ * ID of the extension point defining the configurations
+ */
+ private static final String EXTENSION_ID = "org.eclipse.papyrus.infra.viewpoints.policy.custom";
+ /**
+ * The cache of loaded configurations
+ */
+ private static final Map<String, PapyrusConfiguration> CONFIGURATIONS_CACHE = new HashMap<String, PapyrusConfiguration>();
+ /**
+ * The default built-in configuration
+ */
+ private static final PapyrusConfiguration CONFIG_BUILTIN_DEFAULT = loadDefaultConfiguration("builtin/default.configuration");
+ /**
+ * Default result when the current policy cannot determine whether an element can be added to a view
+ */
+ private static final boolean DEFAULT_POLICY_UNKNOWN_CHILD = false;
+ /**
+ * Default result when the current policy cannot determine whether a palette item should be exposed
+ */
+ private static final boolean DEFAULT_POLICY_UNKNWON_PALETTE = true;
+
+
+ /**
+ * Policy check result allowing an action
+ */
+ private static final int RESULT_PERMIT = 1;
+ /**
+ * Policy check result neither allowing not denying an action
+ */
+ private static final int RESULT_UNKNOWN = 0;
+ /**
+ * Policy check result denying an action
+ */
+ private static final int RESULT_DENY = -1;
+
+ /**
+ * Loads a built-in configuration
+ *
+ * @param name
+ * The name of the configuration
+ * @return The loaded configuration
+ */
+ private static PapyrusConfiguration loadDefaultConfiguration(String name) {
+ Plugin me = new Plugin(Activator.getDefault().getBundle());
+ PluginEntry entry = me.getEntry(name);
+ return loadConfigurationFrom(entry.getLogicalPath());
+ }
+
+ /**
+ * Loads a viewpoints configuration from the given location.
+ *
+ * @param location
+ * The location from where to load the configuration
+ * @return The loaded configuration, or <code>null</code> if the operation failed
+ */
+ public static PapyrusConfiguration loadConfigurationFrom(String location) {
+ try {
+ if (location == null)
+ return null;
+ if (location.isEmpty())
+ return null;
+ URI uri = null;
+ if (location.startsWith("platform:/")) {
+ uri = URI.createURI(location);
+ } else {
+ uri = URI.createFileURI(location);
+ }
+ location = uri.toString();
+ PapyrusConfiguration config = CONFIGURATIONS_CACHE.get(location);
+ if (config != null)
+ return config;
+ ResourceSet set = new ResourceSetImpl();
+ Resource res = set.getResource(uri, true);
+ config = (PapyrusConfiguration) res.getContents().get(0);
+ CONFIGURATIONS_CACHE.put(location, config);
+ return config;
+ } catch (NullPointerException e) {
+ }
+ return null;
+ }
+
+ /**
+ * Gets the default configuration
+ *
+ * @return The default configuration
+ */
+ public static PapyrusConfiguration getDefaultConfiguration() {
+ return CONFIG_BUILTIN_DEFAULT;
+ }
+
+
+ private static Map<String, Collection<String>> CONTRIBUTIONS_DEFINITON = null;
+ private static Map<PapyrusConfiguration, Collection<PapyrusConfiguration>> CONTRIBUTIONS_CACHE = null;
+
+ /**
+ * Gets the viewpoints contributing to the given viewpoint
+ *
+ * @param viewpoint
+ * A viewpoint
+ * @return A collection of the other viewpoints contributing to the given one
+ */
+ private static Collection<PapyrusViewpoint> getContributionsTo(PapyrusViewpoint viewpoint) {
+ Collection<PapyrusViewpoint> result = new ArrayList<PapyrusViewpoint>();
+ Collection<PapyrusConfiguration> contributions = getContributionsTo((PapyrusConfiguration) viewpoint.eContainer());
+ for (PapyrusConfiguration contrib : contributions) {
+ for (ArchitectureViewpoint vp : contrib.getViewpoints()) {
+ if (vp instanceof PapyrusViewpoint && vp.getName().equals(viewpoint.getName())) {
+ result.add((PapyrusViewpoint) vp);
+ }
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Gets the configurations contributing to the given configuration
+ *
+ * @param config
+ * A configuration
+ * @return A collection of the contributing configurations
+ */
+ private static Collection<PapyrusConfiguration> getContributionsTo(PapyrusConfiguration config) {
+ if (CONTRIBUTIONS_CACHE == null)
+ loadContributions();
+ Collection<PapyrusConfiguration> result = CONTRIBUTIONS_CACHE.get(config);
+ if (result != null)
+ return result;
+ result = new ArrayList<PapyrusConfiguration>();
+ CONTRIBUTIONS_CACHE.put(config, result);
+ for (Map.Entry<String, PapyrusConfiguration> entry : CONFIGURATIONS_CACHE.entrySet()) {
+ if (entry.getValue() == config) {
+ Collection<String> contribURIs = CONTRIBUTIONS_DEFINITON.get(entry.getKey());
+ if (contribURIs != null)
+ for (String uri : contribURIs)
+ result.add(loadConfigurationFrom(uri));
+ return result;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Loads the viewpoints contribution data from the extension points
+ */
+ private static void loadContributions() {
+ CONTRIBUTIONS_DEFINITON = new HashMap<String, Collection<String>>();
+ CONTRIBUTIONS_CACHE = new HashMap<PapyrusConfiguration, Collection<PapyrusConfiguration>>();
+
+ IExtensionRegistry registry = Platform.getExtensionRegistry();
+ IExtensionPoint point = registry.getExtensionPoint(EXTENSION_ID);
+ IExtension[] extensions = point.getExtensions();
+
+ for (int i = 0; i != extensions.length; i++) {
+ String plugin = extensions[i].getContributor().getName();
+ IConfigurationElement[] elements = extensions[i].getConfigurationElements();
+ for (int j = 0; j != elements.length; j++) {
+ if (elements[j].getName().equals("contribution")) {
+ String uriOriginal = getCanonicalURI(plugin, elements[j].getAttribute("original"));
+ String uriContrib = getCanonicalURI(plugin, elements[j].getAttribute("file"));
+ Collection<String> list = CONTRIBUTIONS_DEFINITON.get(uriOriginal);
+ if (list == null) {
+ list = new ArrayList<String>();
+ CONTRIBUTIONS_DEFINITON.put(uriOriginal, list);
+ }
+ list.add(uriContrib);
+ }
+ }
+ }
+ }
+
+ /**
+ * Gets the canonical (absolute) URI from a potentially plugin-relative URI
+ *
+ * @param plugin
+ * The container plugin
+ * @param uri
+ * The URI to canonicalize
+ * @return The canonical (absolute) URI
+ */
+ private static String getCanonicalURI(String plugin, String uri) {
+ if (uri.startsWith(PreferenceConstants.P_CONF_PATH_SCHEME_PLUGIN_VALUE))
+ return uri;
+ return PreferenceConstants.P_CONF_PATH_SCHEME_PLUGIN_VALUE + plugin + "/" + uri;
+ }
+
+
+ /**
+ * Gets the preference store for the viewpoints-related preferences
+ *
+ * @return The preference store for the viewpoints-related preferences
+ */
+ public static IPreferenceStore getPreferences() {
+ return Activator.getDefault().getPreferenceStore();
+ }
+
+
+ /**
+ * The current (global) instance
+ */
+ private static PolicyChecker currentPolicyChecker;
+
+ /**
+ * Gets the policy checker currently enforcing the viewpoints configuration
+ *
+ * @return The current policy checker
+ */
+ public static PolicyChecker getCurrent() {
+ if (currentPolicyChecker == null)
+ currentPolicyChecker = new PolicyChecker();
+ return currentPolicyChecker;
+ }
+
+ /**
+ * Sets the policy checker currently enforcing the viewpoints configuration
+ *
+ * @param pc
+ * The new policy checker
+ */
+ public static void setCurrent(PolicyChecker pc) {
+ currentPolicyChecker = pc;
+ }
+
+
+ /**
+ * The checker's configuration
+ */
+ private PapyrusConfiguration configuration;
+
+ /**
+ * Force only one type of view per model element
+ */
+ private boolean oneViewPerElem;
+
+ /**
+ * The current stakeholder
+ */
+ private Stakeholder selectedStakeholder;
+
+ /**
+ * The current viewpoint
+ */
+ private PapyrusViewpoint selectedViewpoint;
+
+ /**
+ * The cache of applicable viewpoints, with all contributing configurations taken into account
+ */
+ private Collection<PapyrusViewpoint> applicableViewpoints;
+
+ /**
+ * The current profile helper
+ */
+ private IProfileHelper profileHelper;
+
+ /**
+ * Gets the configuration enforced by this object
+ *
+ * @return The configuration
+ */
+ public PapyrusConfiguration getConfiguration() {
+ return configuration;
+ }
+
+ /**
+ * Gets the stakeholder represented by this object
+ *
+ * @return The stakeholder
+ */
+ public Stakeholder getStakeholder() {
+ return selectedStakeholder;
+ }
+
+ /**
+ * Gets the viewpoint enforced by this object
+ *
+ * @return The enforced viewpoint
+ */
+ public PapyrusViewpoint getViewpoint() {
+ return selectedViewpoint;
+ }
+
+ /**
+ * Initializes this instance from the current preferences
+ */
+ private PolicyChecker() {
+ IPreferenceStore store = getPreferences();
+ String prefType = store.getString(PreferenceConstants.P_CONF_TYPE);
+ String prefForce = store.getString(PreferenceConstants.P_FORCE_MULTIPLICITY);
+ String prefViewpoint = store.getString(PreferenceConstants.P_VIEWPOINT);
+
+ this.profileHelper = ProfileUtils.getProfileHelper();
+ this.oneViewPerElem = "true".equals(prefForce);
+ if (PreferenceConstants.P_CONF_TYPE_DEFAULT_VALUE.equals(prefType)) {
+ this.configuration = CONFIG_BUILTIN_DEFAULT;
+ } else if (PreferenceConstants.P_CONF_TYPE_EXTENSION_VALUE.equals(prefType)) {
+ WeightedConfiguration wc = WeightedConfiguration.getTopConfiguration();
+ this.configuration = (wc != null ? wc.getConfiguration() : null);
+ } else {
+ String scheme = store.getString(PreferenceConstants.P_CONF_PATH_SCHEME);
+ String path = store.getString(PreferenceConstants.P_CONF_PATH);
+ if (PreferenceConstants.P_CONF_PATH_SCHEME_WORKSPACE_VALUE.equals(scheme))
+ path = PreferenceConstants.P_CONF_PATH_SCHEME_WORKSPACE_VALUE + path;
+ this.configuration = loadConfigurationFrom(path);
+ }
+ if (this.configuration == null)
+ this.configuration = CONFIG_BUILTIN_DEFAULT;
+
+ if (prefViewpoint != null && !prefViewpoint.isEmpty()) {
+ for (Stakeholder stakeholder : this.configuration.getStakeholders()) {
+ for (ArchitectureViewpoint vp : stakeholder.getViewpoints()) {
+ if (prefViewpoint.equals(vp.getName())) {
+ this.selectedStakeholder = stakeholder;
+ this.selectedViewpoint = (PapyrusViewpoint) vp;
+ buildApplicableViewpoints();
+ return;
+ }
+ }
+ }
+ }
+ this.selectedStakeholder = this.configuration.getDefaultStakeholder();
+ this.selectedViewpoint = (PapyrusViewpoint) this.selectedStakeholder.getViewpoints().get(0);
+ buildApplicableViewpoints();
+ }
+
+ /**
+ * Initializes this policy checker with the default configuration and viewpoint
+ *
+ * @param oneViewPerElem
+ * Force only one type of view per model element
+ */
+ public PolicyChecker(boolean oneViewPerElem) {
+ this.configuration = CONFIG_BUILTIN_DEFAULT;
+ this.oneViewPerElem = oneViewPerElem;
+ this.selectedStakeholder = this.configuration.getDefaultStakeholder();
+ this.selectedViewpoint = (PapyrusViewpoint) this.selectedStakeholder.getViewpoints().get(0);
+ this.profileHelper = ProfileUtils.getProfileHelper();
+ buildApplicableViewpoints();
+ }
+
+ /**
+ * Initializes this policy checker with the given configuration and viewpoint
+ *
+ * @param config
+ * The configuration to enforce
+ * @param viewpoint
+ * The viewpoint to enforce
+ * @param oneViewPerElem
+ * Force only one type of view per model element
+ */
+ public PolicyChecker(PapyrusConfiguration config, PapyrusViewpoint viewpoint, boolean oneViewPerElem) {
+ this.configuration = config;
+ this.oneViewPerElem = oneViewPerElem;
+ this.selectedViewpoint = viewpoint;
+ this.profileHelper = ProfileUtils.getProfileHelper();
+ buildApplicableViewpoints();
+ for (Stakeholder stakeholder : configuration.getStakeholders()) {
+ if (stakeholder.getViewpoints().contains(viewpoint)) {
+ this.selectedStakeholder = stakeholder;
+ return;
+ }
+ }
+ }
+
+
+ /**
+ * Builds the <code>applicableViewpoints</code> member from the selected viewpoint and all its contribution
+ */
+ private void buildApplicableViewpoints() {
+ applicableViewpoints = new ArrayList<PapyrusViewpoint>();
+ buildApplicableViewpoints(selectedViewpoint);
+ for (PapyrusViewpoint vp : getContributionsTo(selectedViewpoint))
+ buildApplicableViewpoints(vp);
+ }
+
+ /**
+ * Builds the <code>applicableViewpoints</code> member from the given viewpoint by adding it, as well as its parent
+ *
+ * @param from
+ * The top viewpoint
+ */
+ private void buildApplicableViewpoints(PapyrusViewpoint from) {
+ PapyrusViewpoint vp = from;
+ while (vp != null) {
+ applicableViewpoints.add(vp);
+ vp = vp.getParent();
+ }
+ }
+
+
+ /**
+ * Determines whether the given element can own the given view
+ *
+ * @param element
+ * The possible owner
+ * @param prototype
+ * The view prototype
+ * @return <code>true</code> if the element can own the view
+ */
+ public boolean canOwnNewView(EObject element, ViewPrototype prototype) {
+ if (prototype == null)
+ return false;
+ if (!matchesProfiles(prototype.configuration, profileHelper.getAppliedProfiles(element)))
+ return false;
+ return (matchesOwnerMultiplicity(prototype.configuration, element.eClass(), profileHelper.getAppliedStereotypes(element), getOwnedViewCount(element, prototype)));
+ }
+
+ /**
+ * Determines whether the given element can be the root of a view owned by the given object
+ *
+ * @param element
+ * The possible root element
+ * @param owner
+ * The possible owner
+ * @param prototype
+ * The view prototype
+ * @return <code>true</code> if the element can be the root
+ */
+ public boolean canHaveNewView(EObject element, EObject owner, ViewPrototype prototype) {
+ if (prototype == null)
+ return false;
+ if (!matchesProfiles(prototype.configuration, profileHelper.getAppliedProfiles(owner)))
+ return false;
+ if (!matchesProfiles(prototype.configuration, profileHelper.getAppliedProfiles(element)))
+ return false;
+ if (!matchesOwnerMultiplicity(prototype.configuration, owner.eClass(), profileHelper.getAppliedStereotypes(owner), getOwnedViewCount(owner, prototype)))
+ return false;
+ if (!matchesRootMultiplicity(prototype.configuration, element.eClass(), profileHelper.getAppliedStereotypes(element), getViewCountOn(element, prototype)))
+ return false;
+ return true;
+ }
+
+ /**
+ * Gets the insertion data of the given element in the given diagram
+ *
+ * @param diagram
+ * The diagram
+ * @param parent
+ * The element to be edited
+ * @param child
+ * The element to be added through the diagram
+ * @return The insertion data
+ */
+ public ModelAddData getChildAddData(Diagram diagram, EObject parent, EObject child) {
+ ViewPrototype prototype = ViewPrototype.get(diagram);
+ if (prototype == null)
+ // This diagram is not in the current policy
+ return new ModelAddData(false);
+
+ PapyrusDiagram config = (PapyrusDiagram) prototype.configuration;
+ Collection<EClass> stereotypes = profileHelper.getAppliedStereotypes(child);
+ while (config != null) {
+ for (ChildRule rule : config.getChildRules()) {
+ int result = allows(rule, parent.eClass(), child.eClass(), stereotypes);
+ if (result != RESULT_UNKNOWN)
+ return new ModelAddData((result == RESULT_PERMIT), rule.getInsertionPath());
+ }
+ config = (PapyrusDiagram) config.getParent();
+ }
+ return new ModelAddData(DEFAULT_POLICY_UNKNOWN_CHILD);
+ }
+
+ /**
+ * Gets the insertion data of the given element in the given diagram
+ *
+ * @param diagram
+ * The diagram
+ * @param parentType
+ * The type of the element to be edited
+ * @param childType
+ * The type of element to be added through the diagram
+ * @return The insertion data
+ */
+ public ModelAddData getChildAddData(Diagram diagram, EClass parentType, EClass childType) {
+ ViewPrototype prototype = ViewPrototype.get(diagram);
+ if (prototype == null)
+ // This diagram is not in the current policy
+ return new ModelAddData(false);
+
+ PapyrusDiagram config = (PapyrusDiagram) prototype.configuration;
+ while (config != null) {
+ for (ChildRule rule : config.getChildRules()) {
+ int result = allows(rule, parentType, childType, new ArrayList<EClass>(0));
+ if (result != RESULT_UNKNOWN)
+ return new ModelAddData((result == RESULT_PERMIT), rule.getInsertionPath());
+ }
+ config = (PapyrusDiagram) config.getParent();
+ }
+ return new ModelAddData(DEFAULT_POLICY_UNKNOWN_CHILD);
+ }
+
+ /**
+ * Determines whether the given diagram can have the palette element with the given entry ID
+ *
+ * @param diagram
+ * The diagram
+ * @param entryID
+ * A palette element entry ID
+ * @return <code>true</code> if the palette element is allowed
+ */
+ public boolean isInPalette(Diagram diagram, String entryID) {
+ ViewPrototype prototype = ViewPrototype.get(diagram);
+ if (prototype == null)
+ // This diagram is not in the current policy
+ return false;
+
+ PapyrusDiagram config = (PapyrusDiagram) prototype.configuration;
+ while (config != null) {
+ for (PaletteRule rule : config.getPaletteRules()) {
+ int result = allows(rule, entryID);
+ if (result != RESULT_UNKNOWN)
+ return (result == RESULT_PERMIT);
+ }
+ config = (PapyrusDiagram) config.getParent();
+ }
+ return DEFAULT_POLICY_UNKNWON_PALETTE;
+ }
+
+ /**
+ * Determines whether the given view configuration element is part of the current viewpoint
+ *
+ * @param config
+ * A view configuration element
+ * @return <code>true</code> if the element is part of the current viewpoint
+ */
+ public boolean isInViewpoint(PapyrusView config) {
+ for (PapyrusViewpoint viewpoint : applicableViewpoints) {
+ for (ModelKind kind : viewpoint.getModelKinds()) {
+ PapyrusView view = (PapyrusView) kind;
+ if (EcoreUtil.equals(view, config))
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Gets a collection of all the view prototypes allowed by the active policy
+ *
+ * @return A collection of view prototypes
+ */
+ public Collection<ViewPrototype> getAllPrototypes() {
+ Collection<ViewPrototype> result = new ArrayList<ViewPrototype>();
+ for (PapyrusViewpoint viewpoint : applicableViewpoints) {
+ for (ModelKind kind : viewpoint.getModelKinds()) {
+ PapyrusView view = (PapyrusView) kind;
+ ViewPrototype proto = ViewPrototype.get(view);
+ if (proto != null)
+ result.add(proto);
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Gets a list of the prototypes that can be instantiated with the given element as owner according to the policy
+ *
+ * @param element
+ * The element to test
+ * @return A list of the prototypes that can be instantiated
+ */
+ public Collection<ViewPrototype> getPrototypesFor(EObject element) {
+ Collection<ViewPrototype> result = new ArrayList<ViewPrototype>();
+ Collection<EPackage> profiles = profileHelper.getAppliedProfiles(element);
+ Collection<EClass> stereotypes = profileHelper.getAppliedStereotypes(element);
+ for (PapyrusViewpoint viewpoint : applicableViewpoints) {
+ for (ModelKind kind : viewpoint.getModelKinds()) {
+ PapyrusView view = (PapyrusView) kind;
+ if (!matchesProfiles(view, profiles))
+ continue;
+ ViewPrototype proto = ViewPrototype.get(view);
+ if (proto == null)
+ continue;
+ int count = getOwnedViewCount(element, proto);
+ if (!matchesOwnerMultiplicity(view, element.eClass(), stereotypes, count))
+ continue;
+ result.add(proto);
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Gets the number of views of a given type owned by a given object
+ *
+ * @param element
+ * The object to count views for
+ * @param prototype
+ * The prototype of view to counts
+ * @return The number of owned views
+ */
+ private int getOwnedViewCount(EObject element, ViewPrototype prototype) {
+ int count = 0;
+ Iterator<EObject> roots = NotationUtils.getNotationRoots(element);
+ if (roots == null)
+ return count;
+ while (roots.hasNext()) {
+ EObject view = roots.next();
+ ViewPrototype proto = ViewPrototype.get(view);
+ if (prototype == proto) {
+ EObject owner = proto.getOwnerOf(view);
+ if (EcoreUtil.equals(owner, element))
+ count++;
+ }
+ }
+ return count;
+ }
+
+ /**
+ * Gets the number of views of a given type on a given object
+ *
+ * @param element
+ * The object to count views on
+ * @param prototype
+ * The prototype of view to counts
+ * @return The number of views on the object
+ */
+ private int getViewCountOn(EObject element, ViewPrototype prototype) {
+ int count = 0;
+ Iterator<EObject> roots = NotationUtils.getNotationRoots(element);
+ if (roots == null)
+ return count;
+ while (roots.hasNext()) {
+ EObject view = roots.next();
+ ViewPrototype proto = ViewPrototype.get(view);
+ if (prototype == proto) {
+ EObject root = proto.getRootOf(view);
+ if (EcoreUtil.equals(root, element))
+ count++;
+ }
+ }
+ return count;
+ }
+
+ /**
+ * Tries to match a view configuration from the given info
+ *
+ * @param implem
+ * The implementation ID
+ * @param owner
+ * The owner
+ * @param root
+ * The root element
+ * @return The matching view, or <code>null</code> if none was found
+ */
+ protected PapyrusView getViewFrom(String implem, EObject owner, EObject root) {
+ for (PapyrusViewpoint viewpoint : applicableViewpoints) {
+ for (ModelKind kind : viewpoint.getModelKinds()) {
+ PapyrusView view = (PapyrusView) kind;
+ if (matches(view, implem, owner, root))
+ return view;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Tries to match a view configuration with the given info
+ *
+ * @param view
+ * A view configuration
+ * @param implem
+ * The implementation ID
+ * @param owner
+ * The owner
+ * @param root
+ * The root element
+ * @return <code>true</code> if the configuration matches
+ */
+ private boolean matches(PapyrusView view, String implem, EObject owner, EObject root) {
+ if (!ViewPrototype.isNatural(view))
+ return false;
+ if (!view.getImplementationID().equals(implem))
+ return false;
+ if (owner != null) {
+ if (!matchesProfiles(view, profileHelper.getAppliedProfiles(owner)))
+ return false;
+ if (!matchesOwner(view, owner.eClass(), profileHelper.getAppliedStereotypes(owner)))
+ return false;
+ }
+ if (root != null) {
+ if (!matchesProfiles(view, profileHelper.getAppliedProfiles(root)))
+ return false;
+ if (!matchesRoot(view, root.eClass(), profileHelper.getAppliedStereotypes(root)))
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * Checks whether the given set of profiles matches the requirements of the given view
+ *
+ * @param view
+ * The view to check against
+ * @param profiles
+ * The applied profiles
+ * @return <code>true</code> if the prototype is matching
+ */
+ private boolean matchesProfiles(PapyrusView view, Collection<EPackage> profiles) {
+ PapyrusView current = view;
+ while (current != null) {
+ for (EPackage profile : view.getProfiles())
+ if (!profiles.contains(profile))
+ return false;
+ current = current.getParent();
+ }
+ return true;
+ }
+
+ /**
+ * Checks whether the given type of owning element with applied stereotypes is allowed for the given view
+ *
+ * @param view
+ * The view to check against
+ * @param type
+ * The owning element's type
+ * @param stereotypes
+ * The stereotypes applied on the owning element
+ * @return <code>true</code> if the prototype is matching
+ */
+ private boolean matchesOwner(PapyrusView view, EClass type, Collection<EClass> stereotypes) {
+ PapyrusView current = view;
+ while (current != null) {
+ for (OwningRule rule : current.getOwningRules()) {
+ int result = allows(rule, type, stereotypes);
+ if (result == RESULT_DENY)
+ return false;
+ if (result == RESULT_PERMIT)
+ return true;
+ }
+ current = current.getParent();
+ }
+ return false;
+ }
+
+ /**
+ * Checks whether the given view can be owned by an element of the given type, applied with the given stereotypes if the cardinality is already the given amount
+ *
+ * @param view
+ * The view to check against
+ * @param type
+ * The owning element's type
+ * @param stereotypes
+ * The stereotypes applied on the owning element
+ * @param count
+ * The current cardinality for the owning element
+ * @return <code>true</code> if the prototype is matching
+ */
+ private boolean matchesOwnerMultiplicity(PapyrusView view, EClass type, Collection<EClass> stereotypes, int count) {
+ PapyrusView current = view;
+ while (current != null) {
+ for (OwningRule rule : current.getOwningRules()) {
+ int allow = allows(rule, type, stereotypes);
+ if (allow == RESULT_DENY)
+ return false;
+ if (allow == RESULT_UNKNOWN)
+ continue;
+ int multiplicity = rule.getMultiplicity();
+ if (multiplicity == -1)
+ return true;
+ return (count < multiplicity);
+ }
+ current = current.getParent();
+ }
+ return false;
+ }
+
+ /**
+ * Checks whether the given type of root element with applied stereotypes is allowed for the given view
+ *
+ * @param view
+ * The view to check against
+ * @param type
+ * The root element's type
+ * @param stereotypes
+ * The stereotypes applied on the root element
+ * @return <code>true</code> if the prototype is matching
+ */
+ private boolean matchesRoot(PapyrusView view, EClass type, Collection<EClass> stereotypes) {
+ PapyrusView current = view;
+ while (current != null) {
+ for (ModelRule rule : current.getModelRules()) {
+ int result = allows(rule, type, stereotypes);
+ if (result == RESULT_DENY)
+ return false;
+ if (result == RESULT_PERMIT)
+ return true;
+ }
+ current = current.getParent();
+ }
+ return false;
+ }
+
+ /**
+ * Checks whether the given view can have the given root element of the given type, applied with the given stereotypes if the cardinality is already the given amount
+ *
+ * @param view
+ * The view to check against
+ * @param type
+ * The root element's type
+ * @param stereotypes
+ * The stereotypes applied on the root element
+ * @param count
+ * The current cardinality for the root element
+ * @return <code>true</code> if the prototype is matching
+ */
+ private boolean matchesRootMultiplicity(PapyrusView view, EClass type, Collection<EClass> stereotypes, int count) {
+ PapyrusView current = view;
+ while (current != null) {
+ for (ModelRule rule : current.getModelRules()) {
+ int allow = allows(rule, type, stereotypes);
+ if (allow == RESULT_DENY)
+ return false;
+ if (allow == RESULT_UNKNOWN)
+ continue;
+ int multiplicity = (oneViewPerElem ? 1 : rule.getMultiplicity());
+ if (multiplicity == -1)
+ return true;
+ return (count < multiplicity);
+ }
+ current = current.getParent();
+ }
+ return false;
+ }
+
+ /**
+ * Checks an owner's type against a rule
+ *
+ * @param rule
+ * The owning rule
+ * @param owner
+ * The owner's type
+ * @param stereotypes
+ * The stereotypes applied on <code>owner</code>
+ * @return The check result
+ */
+ private int allows(OwningRule rule, EClass owner, Collection<EClass> stereotypes) {
+ EClass c = rule.getElement();
+ if (c == null || c.isSuperTypeOf(owner)) {
+ // matching type => check the application of the required stereotypes
+ for (EClass stereotype : rule.getStereotypes())
+ if (!stereotypes.contains(stereotype))
+ return RESULT_UNKNOWN;
+ return rule.isPermit() ? RESULT_PERMIT : RESULT_DENY;
+ } else {
+ // type is not matching => unknown
+ return RESULT_UNKNOWN;
+ }
+ }
+
+ /**
+ * Checks a root element's type against a rule
+ *
+ * @param rule
+ * The modeling rule
+ * @param element
+ * The root element's type
+ * @param stereotypes
+ * The stereotypes applied on <code>element</code>
+ * @return The check result
+ */
+ private int allows(ModelRule rule, EClass element, Collection<EClass> stereotypes) {
+ EClass c = rule.getElement();
+ if (c == null || c.isSuperTypeOf(element)) {
+ // matching type => check the application of the required stereotypes
+ for (EClass stereotype : rule.getStereotypes())
+ if (!stereotypes.contains(stereotype))
+ return RESULT_UNKNOWN;
+ return rule.isPermit() ? RESULT_PERMIT : RESULT_DENY;
+ } else {
+ // type is not matching => unknown
+ return RESULT_UNKNOWN;
+ }
+ }
+
+ /**
+ * Checks a child insertion against a rule
+ *
+ * @param rule
+ * The insertion rule
+ * @param origin
+ * The root element's type
+ * @param element
+ * The child's type
+ * @param stereotypes
+ * The stereotypes applied on <code>element</code>
+ * @return The check result
+ */
+ private int allows(ChildRule rule, EClass origin, EClass element, Collection<EClass> stereotypes) {
+ EClass ce = rule.getElement();
+ EClass co = rule.getOrigin();
+ if ((ce == null || ce.isSuperTypeOf(element))
+ && (co == null || co.isSuperTypeOf(origin))) {
+ // matching type => check the application of the required stereotypes
+ for (EClass stereotype : rule.getStereotypes())
+ if (!stereotypes.contains(stereotype))
+ return RESULT_UNKNOWN;
+ return rule.isPermit() ? RESULT_PERMIT : RESULT_DENY;
+ } else {
+ // type is not matching => unknown
+ return RESULT_UNKNOWN;
+ }
+ }
+
+ /**
+ * Checks a palette element against a rule
+ *
+ * @param rule
+ * The palette rule
+ * @param toolID
+ * The palette element's ID
+ * @return The check result
+ */
+ private int allows(PaletteRule rule, String toolID) {
+ String elem = rule.getElement();
+ boolean applies = (elem == null);
+ applies = applies || (elem.length() == 0);
+ applies = applies || (elem != null && elem.equals(toolID));
+ applies = applies || (elem != null && elem.endsWith("*") && toolID.startsWith(elem.substring(0, elem.length() - 1)));
+ if (applies)
+ return rule.isPermit() ? RESULT_PERMIT : RESULT_DENY;
+ return RESULT_UNKNOWN;
+ }
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/PreferenceConstants.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/PreferenceConstants.java
new file mode 100755
index 00000000000..1e433ad793e
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/PreferenceConstants.java
@@ -0,0 +1,73 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.policy;
+
+/**
+ * Contains all the constants for the management of the viewpoints-related configuration preferences
+ *
+ * @author Laurent Wouters
+ */
+public class PreferenceConstants {
+
+ /**
+ * Preference for the type of configuration selection
+ */
+ public static final String P_CONF_TYPE = "papyrusViewpointsConfigurationType";
+
+ /**
+ * Preference for the scheme of the path to a custom configuration
+ */
+ public static final String P_CONF_PATH_SCHEME = "papyrusViewpointsUserDefinedScheme";
+
+ /**
+ * Preference for the path to a custom configuration
+ */
+ public static final String P_CONF_PATH = "papyrusViewpointsUserDefinedConfiguration";
+
+ /**
+ * Preference for the configuration's stakeholder
+ */
+ public static final String P_STAKEHOLDER = "papyrusViewpointsSelectedStakeholder";
+
+ /**
+ * Preference for the configuration's viewpoint
+ */
+ public static final String P_VIEWPOINT = "papyrusViewpointsSelectedViewpoint";
+
+ /**
+ * Preference for the forced multiplicity
+ */
+ public static final String P_FORCE_MULTIPLICITY = "papyrusViewpointsForceMultiplicity";
+
+
+ public static final String P_CONF_TYPE_DEFAULT_LABEL = "Default (Papyrus built-in configuration, allows all)";
+ public static final String P_CONF_TYPE_DEFAULT_VALUE = "default";
+
+ public static final String P_CONF_TYPE_EXTENSION_LABEL = "Deployed through the extension point";
+ public static final String P_CONF_TYPE_EXTENSION_VALUE = "extension";
+
+ public static final String P_CONF_TYPE_USER_DEFINED_LABEL = "Manual configuration selection";
+ public static final String P_CONF_TYPE_USER_DEFINED_VALUE = "custom";
+
+ public static final String P_CONF_PATH_SCHEME_FILE_LABEL = "Absolute path";
+ public static final String P_CONF_PATH_SCHEME_FILE_VALUE = "file";
+
+ public static final String P_CONF_PATH_SCHEME_WORKSPACE_LABEL = "Workspace file";
+ public static final String P_CONF_PATH_SCHEME_WORKSPACE_VALUE = "platform:/resource/";
+
+ public static final String P_CONF_PATH_SCHEME_PLUGIN_LABEL = "Embedded in a plugin";
+ public static final String P_CONF_PATH_SCHEME_PLUGIN_VALUE = "platform:/plugin/";
+
+ public static final String P_FORCE_MULTIPLICITY_LABEL = "Force at most one view of each type per model element";
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/PreferenceInitializer.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/PreferenceInitializer.java
new file mode 100755
index 00000000000..7d9613edc3f
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/PreferenceInitializer.java
@@ -0,0 +1,41 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.policy;
+
+import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
+import org.eclipse.jface.preference.IPreferenceStore;
+
+/**
+ * Initializes the default preferences for the viewpoints
+ *
+ * @author Laurent Wouters
+ */
+public class PreferenceInitializer extends AbstractPreferenceInitializer {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences()
+ */
+ public void initializeDefaultPreferences() {
+ IPreferenceStore store = Activator.getDefault().getPreferenceStore();
+ store.setDefault(PreferenceConstants.P_CONF_TYPE, PreferenceConstants.P_CONF_TYPE_EXTENSION_VALUE);
+ store.setDefault(PreferenceConstants.P_CONF_PATH_SCHEME, PreferenceConstants.P_CONF_PATH_SCHEME_FILE_VALUE);
+ store.setDefault(PreferenceConstants.P_CONF_PATH, "");
+ store.setDefault(PreferenceConstants.P_STAKEHOLDER, "");
+ store.setDefault(PreferenceConstants.P_VIEWPOINT, "");
+ store.setDefault(PreferenceConstants.P_FORCE_MULTIPLICITY, "false");
+ }
+
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/ProfileUtils.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/ProfileUtils.java
new file mode 100755
index 00000000000..de66e9d2aaf
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/ProfileUtils.java
@@ -0,0 +1,86 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.viewpoints.policy;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtension;
+import org.eclipse.core.runtime.IExtensionPoint;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+
+/**
+ * Helper class for the ProfileHelper extension point
+ *
+ * @author Laurent Wouters
+ */
+class ProfileUtils {
+ /**
+ * ID of the extension point
+ */
+ private static final String EXTENSION_ID = "org.eclipse.papyrus.infra.viewpoints.policy.profilehelper";
+
+ /**
+ * Gets a instance of the <code>IProfileHelper</code> interface
+ *
+ * @return an instance of <code>IProfileHelper</code>
+ */
+ public static IProfileHelper getProfileHelper() {
+ IExtensionRegistry registry = Platform.getExtensionRegistry();
+ IExtensionPoint point = registry.getExtensionPoint(EXTENSION_ID);
+ IExtension[] extensions = point.getExtensions();
+
+ for (int i = 0; i != extensions.length; i++) {
+ IConfigurationElement[] elements = extensions[i].getConfigurationElements();
+ for (int j = 0; j != elements.length; j++) {
+ try {
+ IProfileHelper instance = (IProfileHelper) elements[j].createExecutableExtension("class");
+ if (instance != null)
+ return instance;
+ } catch (CoreException e) {
+ }
+ }
+ }
+ return new DefaultProfileHelper();
+ }
+
+ /**
+ * Represents a default implementation of the profile helper
+ *
+ * @author Laurent Wouters
+ */
+ private static class DefaultProfileHelper implements IProfileHelper {
+ /**
+ * @see org.eclipse.papyrus.infra.viewpoints.policy.IProfileHelper#getAppliedProfiles(org.eclipse.emf.ecore.EObject)
+ */
+ public Collection<EPackage> getAppliedProfiles(EObject model) {
+ return new ArrayList<EPackage>(0);
+ }
+
+ /**
+ * @see org.eclipse.papyrus.infra.viewpoints.policy.IProfileHelper#getAppliedStereotypes(org.eclipse.emf.ecore.EObject)
+ */
+ public Collection<EClass> getAppliedStereotypes(EObject object) {
+ return new ArrayList<EClass>(0);
+ }
+ }
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/UnavailableViewPrototype.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/UnavailableViewPrototype.java
new file mode 100755
index 00000000000..80a2ac3fce5
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/UnavailableViewPrototype.java
@@ -0,0 +1,135 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.policy;
+
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.ecore.EObject;
+
+
+/**
+ * Represents a view prototype that is not available in the current viewpoints configuration
+ *
+ * @author Laurent Wouters
+ */
+public class UnavailableViewPrototype extends ViewPrototype {
+
+ private String name;
+
+ private String icon;
+
+ /**
+ * Constructor.
+ */
+ protected UnavailableViewPrototype(String name, String icon) {
+ super(null);
+ this.name = name;
+ this.icon = icon;
+ }
+
+ /**
+ * @see org.eclipse.papyrus.infra.viewpoints.policy.ViewPrototype#isNatural()
+ */
+ @Override
+ public boolean isNatural() {
+ return true;
+ }
+
+ /**
+ * @see org.eclipse.papyrus.infra.viewpoints.policy.ViewPrototype#getImplementation()
+ */
+ @Override
+ public String getImplementation() {
+ return "PapyrusUnavailableView";
+ }
+
+ /**
+ * @see org.eclipse.papyrus.infra.viewpoints.policy.ViewPrototype#getLabel()
+ */
+ @Override
+ public String getLabel() {
+ return "Unavailable " + name;
+ }
+
+ /**
+ * @see org.eclipse.papyrus.infra.viewpoints.policy.ViewPrototype#getQualifiedName()
+ */
+ @Override
+ public String getQualifiedName() {
+ return "Default Papyrus Viewpoint :: " + getLabel();
+ }
+
+ /**
+ * @see org.eclipse.papyrus.infra.viewpoints.policy.ViewPrototype#getIconURI()
+ */
+ @Override
+ public String getIconURI() {
+ return "platform:/plugin/org.eclipse.papyrus.infra.viewpoints.policy/icons/Unavailable" + icon + ".gif";
+ }
+
+ /**
+ * @see org.eclipse.papyrus.infra.viewpoints.policy.ViewPrototype#isOwnerReassignable()
+ */
+ @Override
+ public boolean isOwnerReassignable() {
+ return false;
+ }
+
+ /**
+ * @see org.eclipse.papyrus.infra.viewpoints.policy.ViewPrototype#instantiateOn(org.eclipse.emf.ecore.EObject)
+ */
+ @Override
+ public boolean instantiateOn(EObject owner) {
+ return false;
+ }
+
+ /**
+ * @see org.eclipse.papyrus.infra.viewpoints.policy.ViewPrototype#instantiateOn(org.eclipse.emf.ecore.EObject, java.lang.String)
+ */
+ @Override
+ public boolean instantiateOn(EObject owner, String name) {
+ return false;
+ }
+
+ /**
+ * @see org.eclipse.papyrus.infra.viewpoints.policy.ViewPrototype#getCommandChangeOwner(org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EObject)
+ */
+ @Override
+ public Command getCommandChangeOwner(EObject view, EObject target) {
+ return null;
+ }
+
+ /**
+ * @see org.eclipse.papyrus.infra.viewpoints.policy.ViewPrototype#getCommandChangeRoot(org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EObject)
+ */
+ @Override
+ public Command getCommandChangeRoot(EObject view, EObject target) {
+ return null;
+ }
+
+ /**
+ * @see org.eclipse.papyrus.infra.viewpoints.policy.ViewPrototype#getOwnerOf(org.eclipse.emf.ecore.EObject)
+ */
+ @Override
+ public EObject getOwnerOf(EObject view) {
+ return null;
+ }
+
+ /**
+ * @see org.eclipse.papyrus.infra.viewpoints.policy.ViewPrototype#getRootOf(org.eclipse.emf.ecore.EObject)
+ */
+ @Override
+ public EObject getRootOf(EObject view) {
+ return null;
+ }
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/ViewPrototype.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/ViewPrototype.java
new file mode 100755
index 00000000000..1d35e6fad90
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/ViewPrototype.java
@@ -0,0 +1,440 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.policy;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Comparator;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtension;
+import org.eclipse.core.runtime.IExtensionPoint;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.papyrus.infra.viewpoints.configuration.Category;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ModelRule;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusDiagram;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusSyncTable;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusTable;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusView;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusViewpoint;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PathElement;
+import org.eclipse.swt.graphics.Image;
+
+
+/**
+ * Represents a prototype of view in Papyrus
+ *
+ * @author Laurent Wouters
+ */
+public abstract class ViewPrototype {
+ /**
+ * Singleton for unavailable views
+ */
+ public static final ViewPrototype UNAVAILABLE_VIEW = new UnavailableViewPrototype("View", "View");
+ /**
+ * Singleton for unavailable views (diagrams)
+ */
+ public static final ViewPrototype UNAVAILABLE_DIAGRAM = new UnavailableViewPrototype("Diagram", "Diagram");
+
+ /**
+ * Singleton for unavailable views (tables)
+ */
+ public static final ViewPrototype UNAVAILABLE_TABLE = new UnavailableViewPrototype("Table", "Table");
+
+ /**
+ * ID of the extension point for Papyrus diagrams
+ */
+ protected static final String EXTENSION_ID = "org.eclipse.papyrus.infra.viewpoints.policy.viewType";
+
+ /**
+ * The collection of helpers
+ */
+ private static final Collection<IViewTypeHelper> HELPERS = getCommandHelpers();
+
+ /**
+ * Retrieves the helpers from the extensions
+ *
+ * @return The helpers
+ */
+ private static Collection<IViewTypeHelper> getCommandHelpers() {
+ IExtensionRegistry registry = Platform.getExtensionRegistry();
+ IExtensionPoint point = registry.getExtensionPoint(EXTENSION_ID);
+ IExtension[] extensions = point.getExtensions();
+
+ Collection<IViewTypeHelper> result = new ArrayList<IViewTypeHelper>();
+ for (int i = 0; i != extensions.length; i++) {
+ IConfigurationElement[] elements = extensions[i].getConfigurationElements();
+ for (int j = 0; j != elements.length; j++) {
+ try {
+ IViewTypeHelper instance = (IViewTypeHelper) elements[j].createExecutableExtension("class");
+ if (instance != null)
+ result.add(instance);
+ } catch (CoreException e) {
+ }
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Determines whether the given configuration element applies on a natural view
+ *
+ * @param config
+ * The configuration element
+ * @return <code>true</code> if the configuration applies on a natural view
+ */
+ public static boolean isNatural(PapyrusView config) {
+ return config.getName() == null && config.getIcon() == null;
+ }
+
+ /**
+ * Determines whether the given object is a supported view object
+ *
+ * @param object
+ * The object to inspect
+ * @return <code>true</code> if the object is a supported view
+ */
+ public static boolean isViewObject(EObject object) {
+ for (IViewTypeHelper helper : HELPERS)
+ if (helper.isSupported(object))
+ return true;
+ return false;
+ }
+
+ /**
+ * Gets the prototype for the given configuration element
+ *
+ * @param config
+ * The configuration element
+ * @return The prototype
+ */
+ public static ViewPrototype get(PapyrusView config) {
+ for (IViewTypeHelper helper : HELPERS) {
+ if (helper.isSupported(config.eClass())) {
+ ViewPrototype proto = helper.getPrototypeFor(config);
+ if (proto != null)
+ return proto;
+ }
+ }
+ if (config instanceof PapyrusDiagram)
+ return UNAVAILABLE_DIAGRAM;
+ else if (config instanceof PapyrusTable)
+ return UNAVAILABLE_TABLE;
+ else if (config instanceof PapyrusSyncTable)
+ return UNAVAILABLE_TABLE;
+ else
+ return UNAVAILABLE_VIEW;
+ }
+
+ /**
+ * Gets the prototype for the the given object representing a view
+ *
+ * @param view
+ * The view for which a prototype is expected
+ * @return The view's prototype
+ */
+ public static ViewPrototype get(EObject view) {
+ for (IViewTypeHelper helper : HELPERS) {
+ if (helper.isSupported(view)) {
+ ViewPrototype proto = helper.getPrototypeOf(view);
+ if (proto != null)
+ return proto;
+ }
+ }
+ return UNAVAILABLE_VIEW;
+ }
+
+ /**
+ * Gets the prototype for the given implementation identifier
+ *
+ * @param implem
+ * The implementation ID
+ * @param owner
+ * The owner
+ * @param root
+ * The root element
+ * @return The prototype
+ */
+ public static ViewPrototype get(String implem, EObject owner, EObject root) {
+ PapyrusView view = PolicyChecker.getCurrent().getViewFrom(implem, owner, root);
+ if (view == null)
+ // The given implementation has been inhibited by the current viewpoint configuration
+ return UNAVAILABLE_VIEW;
+ return get(view);
+ }
+
+
+ /**
+ * The configuration element of this view
+ */
+ protected final PapyrusView configuration;
+
+ /**
+ * Constructor.
+ *
+ * @param configuration
+ * The configuration element
+ */
+ protected ViewPrototype(PapyrusView configuration) {
+ this.configuration = configuration;
+ }
+
+ /**
+ * Gets the configuration element for this view prototype
+ *
+ * @return The configuration element
+ */
+ public PapyrusView getConfiguration() {
+ return configuration;
+ }
+
+ /**
+ * Gets whether the represented view is the raw implementation
+ *
+ * @return <code>true</code> if this is a natural view
+ */
+ public boolean isNatural() {
+ return isNatural(configuration);
+ }
+
+ /**
+ * Gets the ID of the implementation of this prototype
+ *
+ * @return The implementation ID
+ */
+ public String getImplementation() {
+ return configuration.getImplementationID();
+ }
+
+ /**
+ * Gets the label
+ *
+ * @return The label
+ */
+ public String getLabel() {
+ return configuration.getName();
+ }
+
+ /**
+ * Gets the full label that is qualified with its possible root elements
+ *
+ * @return The full label
+ */
+ public String getFullLabel() {
+ StringBuilder builder = new StringBuilder(getLabel());
+ builder.append(" for ");
+ boolean first = true;
+ for (ModelRule rule : configuration.getModelRules()) {
+ if (rule.getStereotypes() != null && rule.getStereotypes().size() > 0) {
+ for (EClass stereotype : rule.getStereotypes()) {
+ if (!first) {
+ builder.append(", ");
+ first = false;
+ }
+ builder.append(stereotype.getName());
+ }
+ } else if (rule.getElement() != null) {
+ if (!first) {
+ builder.append(", ");
+ first = false;
+ }
+ builder.append(rule.getElement().getName());
+ } else {
+ continue;
+ }
+ }
+ return builder.toString();
+ }
+
+ /**
+ * Gets the qualified name of this prototype
+ *
+ * @return The qualified name
+ */
+ public String getQualifiedName() {
+ PapyrusViewpoint vp = (PapyrusViewpoint) configuration.eContainer();
+ return vp.getName() + " :: " + getLabel();
+ }
+
+ /**
+ * Gets the URI of this prototype's icon
+ *
+ * @return The icon's URI
+ */
+ public String getIconURI() {
+ return configuration.getIcon();
+ }
+
+ /**
+ * Gets the image descriptor of this prototype's icon
+ *
+ * @return The icon's descriptor
+ */
+ public ImageDescriptor getIconDescriptor() {
+ URL url = null;
+ try {
+ url = new URL(getIconURI());
+ } catch (MalformedURLException e) {
+ Activator.getDefault().getPapyrusLog().error("Cannot load icon at URI " + getIconURI(), e);
+ }
+ return ImageDescriptor.createFromURL(url);
+ }
+
+ /**
+ * Gets the image of this prototype's icon
+ *
+ * @return The icon's image
+ */
+ public Image getIcon() {
+ return getIconDescriptor().createImage();
+ }
+
+ /**
+ * Gets the categories of this view prototype
+ *
+ * @return The prototype's categories
+ */
+ public Collection<Category> getCategories() {
+ return configuration.getCategories();
+ }
+
+ /**
+ * Gets the initial view's root from the owner
+ *
+ * @param owner
+ * The initial view's owner
+ * @return The initial root
+ */
+ public EObject getRootFor(EObject owner) {
+ for (ModelRule rule : configuration.getModelRules()) {
+ if (rule.getAutoSelectPath() != null && rule.getAutoSelectPath().size() > 0) {
+ EObject result = traverse(owner, rule.getAutoSelectPath());
+ if (result != null)
+ return result;
+ }
+ }
+ return owner;
+ }
+
+ private EObject traverse(EObject from, EList<PathElement> path) {
+ EObject current = from;
+ for (PathElement elem : path) {
+ EReference feature = elem.getFeature();
+ if (current.eIsSet(feature)) {
+ Object temp = current.eGet(feature);
+ if (temp instanceof EList) {
+ current = ((EList<? extends EObject>) temp).get(0);
+ } else if (temp instanceof EObject) {
+ current = (EObject) temp;
+ } else {
+ return null;
+ }
+ } else {
+ return null;
+ }
+ }
+ return current;
+ }
+
+ /**
+ * Determines whether the instances of this prototype can change owners
+ *
+ * @return <code>true</code> if the owner is reassignable
+ */
+ public abstract boolean isOwnerReassignable();
+
+ /**
+ * Create a new view from this prototype with the given owner
+ *
+ * @param owner
+ * The new view's owner
+ * @return <code>true</code> if the instantiation succeeded
+ */
+ public abstract boolean instantiateOn(EObject owner);
+
+ /**
+ * Create a new view from this prototype with the given owner and name
+ *
+ * @param owner
+ * The new view's owner
+ * @param name
+ * The new view's name
+ * @return <code>true</code> if the instantiation succeeded
+ */
+ public abstract boolean instantiateOn(EObject owner, String name);
+
+ /**
+ * Gets the command for moving the given view to a new owner (target)
+ *
+ * @param view
+ * The view to be moved
+ * @param target
+ * The target owner
+ * @return The command, or <code>null</code> if the change is not allowed
+ */
+ public abstract Command getCommandChangeOwner(EObject view, EObject target);
+
+ /**
+ * Gets the command for changing the root element of the given view to a new element (target)
+ *
+ * @param view
+ * The view to change root
+ * @param target
+ * The target element
+ * @return The command, or <code>null</code> if the change is not allowed
+ */
+ public abstract Command getCommandChangeRoot(EObject view, EObject target);
+
+ /**
+ * Gets the object owning the given view
+ *
+ * @param view
+ * The view
+ * @return The view's owner
+ */
+ public abstract EObject getOwnerOf(EObject view);
+
+ /**
+ * Gets the object which is the root element of the given view
+ *
+ * @param view
+ * The view
+ * @return The views's root element
+ */
+ public abstract EObject getRootOf(EObject view);
+
+ /**
+ * Represents a comparator of prototypes
+ *
+ * @author Laurent Wouters
+ */
+ public static class Comp implements Comparator<ViewPrototype> {
+ /**
+ * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
+ */
+ public int compare(ViewPrototype arg0, ViewPrototype arg1) {
+ return (arg0.getLabel().compareTo(arg1.getLabel()));
+ }
+ }
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/ViewPrototypeContentProvider.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/ViewPrototypeContentProvider.java
new file mode 100755
index 00000000000..a12c267315a
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/ViewPrototypeContentProvider.java
@@ -0,0 +1,255 @@
+/*****************************************************************************
+ * Copyright (c) 2014 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.policy;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.papyrus.infra.viewpoints.configuration.Category;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ModelRule;
+import org.eclipse.papyrus.infra.viewpoints.configuration.OwningRule;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusViewpoint;
+import org.eclipse.swt.graphics.Image;
+
+/**
+ * Content provider of ViewPrototypes
+ *
+ * @author Laurent Wouters
+ *
+ */
+public class ViewPrototypeContentProvider implements ITreeContentProvider {
+
+ private static Image loadImage(String uri) {
+ URL url = null;
+ try {
+ url = new URL(uri);
+ } catch (MalformedURLException e) {
+ }
+ return ImageDescriptor.createFromURL(url).createImage();
+ }
+
+ public static class LP extends LabelProvider {
+
+ private Image imageCategory = loadImage("platform:/plugin/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/obj16/PapyrusView.png");
+ private Image imageViewpoint = loadImage("platform:/plugin/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/obj16/PapyrusViewpoint.png");
+ private Image imageProfile = loadImage("platform:/plugin/org.eclipse.papyrus.uml.profile/resources/icons/Profile.gif");
+ private Image imageModel = loadImage("platform:/plugin/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/obj16/ModelRule.png");
+ private Image imageOwner = loadImage("platform:/plugin/org.eclipse.papyrus.infra.viewpoints.configuration.edit/icons/full/obj16/OwningRule.png");
+
+ @Override
+ public String getText(Object element) {
+ if (element instanceof Category)
+ return "Category " + ((Category) element).getName();
+ if (element instanceof ViewPrototype)
+ return ((ViewPrototype) element).getLabel();
+ if (element instanceof PapyrusViewpoint)
+ return "Available in viewpoint: " + ((PapyrusViewpoint) element).getName();
+ if (element instanceof EPackage)
+ return "Required profile: " + ((EPackage) element).getNsURI();
+ if (element instanceof ModelRule)
+ return getText((ModelRule) element);
+ if (element instanceof OwningRule)
+ return getText((OwningRule) element);
+ return element.toString();
+ }
+
+ private String getText(ModelRule rule) {
+ StringBuilder builder = new StringBuilder("Possible root: ");
+ boolean first = true;
+ for (EClass ste : rule.getStereotypes()) {
+ if (!first)
+ builder.append(", ");
+ builder.append("<<");
+ builder.append(ste.getEPackage().getNsPrefix());
+ builder.append("::");
+ builder.append(ste.getName());
+ builder.append(">>");
+ first = false;
+ }
+ if (rule.getElement() != null) {
+ if (!first)
+ builder.append(" ");
+ builder.append(rule.getElement().getEPackage().getNsPrefix());
+ builder.append("::");
+ builder.append(rule.getElement().getName());
+ }
+ return builder.toString();
+ }
+
+ private String getText(OwningRule rule) {
+ StringBuilder builder = new StringBuilder("Possible owner: ");
+ boolean first = true;
+ for (EClass ste : rule.getStereotypes()) {
+ if (!first)
+ builder.append(", ");
+ builder.append("<<");
+ builder.append(ste.getEPackage().getNsPrefix());
+ builder.append("::");
+ builder.append(ste.getName());
+ builder.append(">>");
+ first = false;
+ }
+ if (rule.getElement() != null) {
+ if (!first)
+ builder.append(" ");
+ builder.append(rule.getElement().getEPackage().getNsPrefix());
+ builder.append("::");
+ builder.append(rule.getElement().getName());
+ }
+ return builder.toString();
+ }
+
+ @Override
+ public Image getImage(Object element) {
+ if (element instanceof Category)
+ return imageCategory;
+ if (element instanceof ViewPrototype)
+ return ((ViewPrototype) element).getIcon();
+ if (element instanceof PapyrusViewpoint)
+ return imageViewpoint;
+ if (element instanceof EPackage)
+ return imageProfile;
+ if (element instanceof ModelRule)
+ return imageModel;
+ if (element instanceof OwningRule)
+ return imageOwner;
+ return null;
+ }
+ }
+
+ /**
+ * The root of all views
+ */
+ public static final Object treeRoot = new Object();
+
+ /**
+ * The views
+ */
+ private Map<Category, List<ViewPrototype>> views;
+
+ /**
+ * The categories
+ */
+ private List<Category> categories;
+
+ /**
+ * Creates the provider
+ *
+ * @param views
+ * The views to provide
+ */
+ public ViewPrototypeContentProvider() {
+ this.views = new HashMap<Category, List<ViewPrototype>>();
+ this.categories = new ArrayList<Category>();
+ for (ViewPrototype view : PolicyChecker.getCurrent().getAllPrototypes()) {
+ for (Category category : view.getCategories()) {
+ if (!categories.contains(category)) {
+ categories.add(category);
+ views.put(category, new ArrayList<ViewPrototype>());
+ }
+ views.get(category).add(view);
+ }
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.viewers.IContentProvider#dispose()
+ */
+ public void dispose() {
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
+ */
+ public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.viewers.ITreeContentProvider#getElements(java.lang.Object)
+ */
+ public Object[] getElements(Object inputElement) {
+ return categories.toArray();
+ }
+
+
+ private Object[] getChildren(ViewPrototype view) {
+ if (view.getConfiguration() == null)
+ return new String[0];
+ List<Object> data = new ArrayList<Object>();
+ data.add(view.getConfiguration().eContainer());
+ data.addAll(view.getConfiguration().getProfiles());
+ data.addAll(view.getConfiguration().getModelRules());
+ data.addAll(view.getConfiguration().getOwningRules());
+ return data.toArray();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
+ */
+ public Object[] getChildren(Object element) {
+ if (element == treeRoot)
+ return categories.toArray();
+ if (element instanceof Category)
+ return views.get((Category) element).toArray();
+ if (element instanceof ViewPrototype)
+ return getChildren((ViewPrototype) element);
+ return new Object[0];
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
+ */
+ public Object getParent(Object element) {
+ if (element == treeRoot)
+ return null;
+ if (element instanceof Category)
+ return treeRoot;
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
+ */
+ public boolean hasChildren(Object element) {
+ if (element == treeRoot)
+ return true;
+ if (element instanceof Category)
+ return true;
+ if (element instanceof ViewPrototype)
+ return true;
+ return false;
+ }
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/ViewpointExplorer.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/ViewpointExplorer.java
new file mode 100755
index 00000000000..0198e5d56fb
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/ViewpointExplorer.java
@@ -0,0 +1,90 @@
+/*****************************************************************************
+ * Copyright (c) 2014 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.policy;
+
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.ViewerSorter;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.part.ViewPart;
+
+/**
+ * Eclipse view for the user to explore the current viewpoint
+ *
+ * @author Laurent Wouters
+ *
+ */
+public class ViewpointExplorer extends ViewPart {
+
+ private TreeViewer tree;
+
+ public ViewpointExplorer() {
+
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
+ */
+ public void createPartControl(Composite parent) {
+ GridLayout gridLayout = new GridLayout();
+ gridLayout.numColumns = 1;
+ parent.setLayout(gridLayout);
+
+ Composite inner = new Composite(parent, SWT.NONE);
+ inner.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL | GridData.FILL_VERTICAL));
+ inner.setLayout(new FillLayout());
+
+ tree = new TreeViewer(inner, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
+ tree.setLabelProvider(new ViewPrototypeContentProvider.LP());
+ tree.setSorter(getViewerSorter());
+ tree.setContentProvider(new ViewPrototypeContentProvider());
+ tree.setInput(ViewPrototypeContentProvider.treeRoot);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
+ */
+ @Override
+ public void setFocus() {
+
+ }
+
+
+ /**
+ * Gets the viewer sorter for this dialog
+ *
+ * @return A viewer sorter
+ */
+ private ViewerSorter getViewerSorter() {
+ return new ViewerSorter() {
+ @Override
+ public int compare(Viewer viewer, Object e1, Object e2) {
+ if (e1 instanceof ViewPrototype) {
+ ViewPrototype b1 = (ViewPrototype) e1;
+ ViewPrototype b2 = (ViewPrototype) e2;
+ return b1.getFullLabel().compareTo(b2.getFullLabel());
+ }
+ return super.compare(viewer, e1, e2);
+ }
+ };
+ }
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/WeightedConfiguration.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/WeightedConfiguration.java
new file mode 100755
index 00000000000..97483b33144
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.policy/src/org/eclipse/papyrus/infra/viewpoints/policy/WeightedConfiguration.java
@@ -0,0 +1,123 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.policy;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtension;
+import org.eclipse.core.runtime.IExtensionPoint;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusConfiguration;
+
+
+/**
+ * Represents a Papyrus viewpoints configuration associated to a priority
+ *
+ * @author Laurent Wouters
+ */
+public class WeightedConfiguration {
+ /**
+ * ID of the extension point defining the configurations
+ */
+ private static final String EXTENSION_ID = "org.eclipse.papyrus.infra.viewpoints.policy.custom";
+
+ private String uri;
+ private int priority;
+ private PapyrusConfiguration config;
+
+ /**
+ * Gets the URI of the is configuration
+ *
+ * @return The configuration's URI
+ */
+ public String getURI() {
+ return uri;
+ }
+
+ /**
+ * Gets the Papyrus configuration represented by this object
+ *
+ * @return A Papyrus Configuration
+ */
+ public PapyrusConfiguration getConfiguration() {
+ if (this.config == null)
+ this.config = PolicyChecker.loadConfigurationFrom(uri);
+ return this.config;
+ }
+
+ /**
+ * Initializes the configuration from the given configuration element
+ *
+ * @param config
+ * The extension point configuration element
+ */
+ private WeightedConfiguration(String plugin, IConfigurationElement config) {
+ this.uri = config.getAttribute("file");
+ if (!this.uri.startsWith(PreferenceConstants.P_CONF_PATH_SCHEME_PLUGIN_VALUE))
+ this.uri = PreferenceConstants.P_CONF_PATH_SCHEME_PLUGIN_VALUE + plugin + "/" + this.uri;
+ try {
+ this.priority = Integer.parseInt(config.getAttribute("priority"));
+ } catch (NumberFormatException ex) {
+ }
+ }
+
+
+ /**
+ * Represents a comparator for weighted configurations
+ *
+ * @author Laurent Wouters
+ */
+ private static class Comparator implements java.util.Comparator<WeightedConfiguration>, Serializable {
+ /**
+ * Serial version
+ */
+ private static final long serialVersionUID = 9025582514350440832L;
+
+ /**
+ * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
+ */
+ public int compare(WeightedConfiguration o1, WeightedConfiguration o2) {
+ return (o2.priority - o1.priority);
+ }
+ }
+
+ /**
+ * Gets the configuration with the top priority
+ *
+ * @return The appropriate configuration, or <code>null</code> if none was found
+ */
+ public static WeightedConfiguration getTopConfiguration() {
+ IExtensionRegistry registry = Platform.getExtensionRegistry();
+ IExtensionPoint point = registry.getExtensionPoint(EXTENSION_ID);
+ IExtension[] extensions = point.getExtensions();
+
+ List<WeightedConfiguration> configs = new ArrayList<WeightedConfiguration>();
+ for (int i = 0; i != extensions.length; i++) {
+ String plugin = extensions[i].getContributor().getName();
+ IConfigurationElement[] elements = extensions[i].getConfigurationElements();
+ for (int j = 0; j != elements.length; j++)
+ if (elements[j].getName().equals("configuration"))
+ configs.add(new WeightedConfiguration(plugin, elements[j]));
+ }
+ Collections.sort(configs, new Comparator());
+ if (configs.size() == 0)
+ return null;
+ return configs.get(0);
+ }
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.preferences/.classpath b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.preferences/.classpath
new file mode 100755
index 00000000000..2d1a4302f04
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.preferences/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.preferences/.project b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.preferences/.project
new file mode 100755
index 00000000000..9c98c99a4f0
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.preferences/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.infra.viewpoints.preferences</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.preferences/.settings/org.eclipse.jdt.core.prefs b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.preferences/.settings/org.eclipse.jdt.core.prefs
new file mode 100755
index 00000000000..44217f8c068
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.preferences/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.preferences/META-INF/MANIFEST.MF b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.preferences/META-INF/MANIFEST.MF
new file mode 100755
index 00000000000..bbf815d90f9
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.preferences/META-INF/MANIFEST.MF
@@ -0,0 +1,18 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.papyrus.infra.viewpoints.preferences;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-Activator: org.eclipse.papyrus.infra.viewpoints.preferences.Activator
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.emf.common,
+ org.eclipse.emf.ecore,
+ org.eclipse.emf.facet.infra.common.core,
+ org.eclipse.papyrus.infra.core.pluginexplorer;bundle-version="1.0.0",
+ org.eclipse.papyrus.infra.viewpoints.iso42010;bundle-version="1.0.0",
+ org.eclipse.papyrus.infra.viewpoints.configuration;bundle-version="1.0.0",
+ org.eclipse.papyrus.infra.viewpoints.policy;bundle-version="1.0.0"
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-ActivationPolicy: lazy
+Bundle-Vendor: %providerName
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.preferences/about.html b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.preferences/about.html
new file mode 100755
index 00000000000..dd02e0be168
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.preferences/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>December 2, 2009</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.preferences/build.properties b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.preferences/build.properties
new file mode 100755
index 00000000000..30e2cedf44d
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.preferences/build.properties
@@ -0,0 +1,8 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ plugin.properties,\
+ about.html
+src.includes = about.html
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.preferences/plugin.properties b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.preferences/plugin.properties
new file mode 100755
index 00000000000..2ba2af13e92
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.preferences/plugin.properties
@@ -0,0 +1,16 @@
+##########################################################################################
+# Copyright (c) 2013 CEA LIST.
+#
+#
+# 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:
+# Laurent Wouters (CEA LIST) laurent.wouters@cea.fr - Initial API and implementation
+#
+########################################################################################
+
+pluginName = Papyrus Viewpoints Preferences (Incubation)
+providerName = Eclipse Modeling Project
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.preferences/plugin.xml b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.preferences/plugin.xml
new file mode 100755
index 00000000000..1ea8425cb0e
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.preferences/plugin.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+ point="org.eclipse.ui.preferencePages">
+ <page
+ category="org.eclipse.papyrus.infra.core.sasheditor.preferences.generalcategory"
+ class="org.eclipse.papyrus.infra.viewpoints.preferences.ViewpointsPreferencePage"
+ id="org.eclipse.papyrus.infra.viewpoints.preferences.ViewpointsPreferencePage"
+ name="Viewpoints Configuration">
+ </page>
+ </extension>
+ <extension
+ point="org.eclipse.core.runtime.preferences">
+ <initializer
+ class="org.eclipse.papyrus.infra.viewpoints.preferences.PreferenceInitializer">
+ </initializer>
+ </extension>
+
+</plugin>
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.preferences/src/org/eclipse/papyrus/infra/viewpoints/preferences/Activator.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.preferences/src/org/eclipse/papyrus/infra/viewpoints/preferences/Activator.java
new file mode 100755
index 00000000000..1157df96e8c
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.preferences/src/org/eclipse/papyrus/infra/viewpoints/preferences/Activator.java
@@ -0,0 +1,63 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.preferences;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.papyrus.infra.viewpoints.preferences"; //$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.preferences/src/org/eclipse/papyrus/infra/viewpoints/preferences/ResourceFieldEditor.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.preferences/src/org/eclipse/papyrus/infra/viewpoints/preferences/ResourceFieldEditor.java
new file mode 100755
index 00000000000..ccdfd070ce5
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.preferences/src/org/eclipse/papyrus/infra/viewpoints/preferences/ResourceFieldEditor.java
@@ -0,0 +1,158 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.preferences;
+
+import java.io.File;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.preference.StringButtonFieldEditor;
+import org.eclipse.jface.resource.JFaceResources;
+import org.eclipse.jface.window.Window;
+import org.eclipse.papyrus.infra.core.pluginexplorer.Plugin;
+import org.eclipse.papyrus.infra.core.pluginexplorer.PluginEntry;
+import org.eclipse.papyrus.infra.core.pluginexplorer.PluginsContentDialog;
+import org.eclipse.papyrus.infra.core.pluginexplorer.PluginsContentSelectionValidator;
+import org.eclipse.papyrus.infra.viewpoints.policy.PreferenceConstants;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.ui.dialogs.ElementTreeSelectionDialog;
+import org.eclipse.ui.dialogs.ISelectionStatusValidator;
+import org.eclipse.ui.model.BaseWorkbenchContentProvider;
+import org.eclipse.ui.model.WorkbenchLabelProvider;
+
+/**
+ * Represents the preference field for the custom configuration selection
+ * @author Laurent Wouters
+ */
+public class ResourceFieldEditor extends StringButtonFieldEditor {
+
+ /**
+ * Absolute path selection mode
+ */
+ public static final int MODE_FILE = 0;
+ /**
+ * Workspace resource selection mode
+ */
+ public static final int MODE_WORKSPACE = 1;
+ /**
+ * Plugin's resource selection mode
+ */
+ public static final int MODE_PLUGIN = 2;
+
+ protected String[] extensions;
+ protected int mode;
+
+ /**
+ * Initializes this field
+ * @param name The field's name
+ * @param labelText The displayed label
+ * @param parent The parent component
+ */
+ public ResourceFieldEditor(String name, String labelText, Composite parent) {
+ init(name, labelText);
+ this.extensions = new String[] { "*.configuration" };
+ this.mode = 0;
+ setErrorMessage(JFaceResources.getString("FileFieldEditor.errorMessage"));//$NON-NLS-1$
+ setChangeButtonText(JFaceResources.getString("openBrowse"));//$NON-NLS-1$
+ createControl(parent);
+ }
+
+ /**
+ * Changes the field mode
+ * @param mode The new mode
+ */
+ public void setMode(int mode) {
+ this.mode = mode;
+ }
+
+ /* (non-Javadoc)
+ * Method declared on StringButtonFieldEditor.
+ * Opens the file chooser dialog and returns the selected file.
+ */
+ protected String changePressed() {
+ switch (mode) {
+ case MODE_FILE:
+ return selectFile();
+ case MODE_WORKSPACE:
+ return selectInWorkspace();
+ case MODE_PLUGIN:
+ return selectInPlugin();
+ default:
+ return selectFile();
+ }
+ }
+
+ private String selectFile() {
+ FileDialog dialog = new FileDialog(getShell(), SWT.OPEN | SWT.SHEET);
+ dialog.setFilterExtensions(extensions);
+ String value = getTextControl().getText();
+ if (value != null && !value.isEmpty())
+ dialog.setFileName(value);
+ value = dialog.open();
+ if (value != null) {
+ value = value.trim();
+ if (value.length() > 0) {
+ File f = new File(value);
+ return f.getAbsolutePath();
+ }
+ }
+ return null;
+ }
+
+ private String selectInWorkspace() {
+ ElementTreeSelectionDialog dialog = new ElementTreeSelectionDialog(getShell(), new WorkbenchLabelProvider(), new BaseWorkbenchContentProvider());
+ dialog.setTitle("Configuration Selection");
+ dialog.setMessage("Select the custom configuration resource:");
+ dialog.setInput(ResourcesPlugin.getWorkspace().getRoot());
+ dialog.setValidator(new ISelectionStatusValidator() {
+ public IStatus validate(Object[] selection) {
+ if (selection == null || selection.length == 0)
+ return new Status(IStatus.ERROR, Activator.PLUGIN_ID, "No selected item!");
+ if (selection.length > 1)
+ return new Status(IStatus.ERROR, Activator.PLUGIN_ID, "Only one item should be selected!");
+ if (!(selection[0] instanceof IFile))
+ return new Status(IStatus.ERROR, Activator.PLUGIN_ID, "The selected item is not a configuration file!");
+ IFile file = (IFile)selection[0];
+ if (!file.getName().endsWith(".configuration"))
+ return new Status(IStatus.ERROR, Activator.PLUGIN_ID, "The selected item is not a configuration file!");
+ return new Status(IStatus.OK, Activator.PLUGIN_ID, "");
+ }
+ });
+ int value = dialog.open();
+ if (value != ElementTreeSelectionDialog.OK)
+ return null;
+ IFile file = (IFile)dialog.getFirstResult();
+ return PreferenceConstants.P_CONF_PATH_SCHEME_WORKSPACE_VALUE + file.getProject().getName() + "/" + file.getProjectRelativePath().toString();
+ }
+
+ private String selectInPlugin() {
+ PluginsContentDialog dialog = new PluginsContentDialog(getShell(), new PluginsContentSelectionValidator() {
+ public boolean isValid(Plugin plugin) { return false; }
+ public boolean isValid(PluginEntry entry) {
+ return entry.getName().endsWith(".configuration");
+ }
+ }, "Viewpoints configuration selection", "Select a configuration resource (*.configuration):");
+ int result = dialog.open();
+ if (result != Window.OK)
+ return null;
+ PluginEntry entry = (PluginEntry)dialog.getSelection();
+ if (entry == null)
+ return null;
+ return entry.getLogicalPath();
+ }
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.preferences/src/org/eclipse/papyrus/infra/viewpoints/preferences/UpdatableComboBoxFieldEditor.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.preferences/src/org/eclipse/papyrus/infra/viewpoints/preferences/UpdatableComboBoxFieldEditor.java
new file mode 100755
index 00000000000..bae2b26b952
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.preferences/src/org/eclipse/papyrus/infra/viewpoints/preferences/UpdatableComboBoxFieldEditor.java
@@ -0,0 +1,232 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.preferences;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.jface.preference.FieldEditor;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+
+/**
+ * Represents a preference combo field, which content can be updated
+ * @author Laurent Wouters
+ */
+public class UpdatableComboBoxFieldEditor extends FieldEditor {
+
+ private Control label;
+ private Combo widget;
+ private EObject prefValue;
+ private List<EObject> data;
+ private EAttribute attribute;
+
+ /**
+ * Initializes the field
+ * @param preference The target preference
+ * @param label The displayed label
+ * @param parent The parent component
+ */
+ public UpdatableComboBoxFieldEditor(String preference, String label, Composite parent) {
+ init(preference, label);
+ this.data = new ArrayList<EObject>();
+ this.label = getLabelControl(parent);
+ this.widget = new Combo(parent, SWT.READ_ONLY);
+ this.widget.setFont(parent.getFont());
+ this.widget.addSelectionListener(new SelectionAdapter() {
+ public void widgetSelected(SelectionEvent evt) {
+ EObject oldValue = prefValue;
+ prefValue = null;
+ String name = widget.getText();
+ if (name != null) {
+ for (EObject obj : data) {
+ if (name.equals(getLabelFor(obj))) {
+ prefValue = obj;
+ break;
+ }
+ }
+ }
+ setPresentsDefaultValue(false);
+ fireValueChanged(VALUE, oldValue, prefValue);
+ }
+ });
+ createControl(parent);
+ }
+
+ /**
+ * Gets the selected value
+ * @return The selection
+ */
+ public EObject getSelection() { return prefValue; }
+
+ /**
+ * Sets the selected value
+ * @param obj The selection as an EObject
+ */
+ public void setSelection(EObject obj) {
+ prefValue = obj;
+ widget.setText(getLabelFor(prefValue));
+ }
+
+ /**
+ * Sets the selected value
+ * @param value The selection as its display value
+ */
+ public void setSelection(String value) {
+ load(value);
+ }
+
+
+ /**
+ * Changes the content of the combo
+ * @param data The new data
+ * @param attribute The attribute used to get readable text from the data
+ */
+ public void setContent(List<? extends EObject> data, EAttribute attribute) {
+ this.data = new ArrayList<EObject>(data);
+ this.attribute = attribute;
+ widget.removeAll();
+ for (EObject obj : this.data)
+ widget.add(getLabelFor(obj));
+ prefValue = this.data.get(0);
+ widget.setText(getLabelFor(prefValue));
+ }
+
+ /**
+ * Removes all content
+ */
+ public void clearContent() {
+ data = new ArrayList<EObject>();
+ prefValue = null;
+ widget.removeAll();
+ }
+
+ /**
+ * Gets the string representation of the given object
+ * @param object An object
+ * @return Its string representation
+ */
+ private String getValueFor(EObject object) {
+ Object value = object.eGet(attribute);
+ return (value == null ? null : value.toString());
+ }
+
+ /**
+ * Gets the display string of the given object
+ * @param object An object
+ * @return The display string
+ */
+ private String getLabelFor(EObject object) {
+ Object value = object.eGet(attribute);
+ return (value == null ? null : value.toString());
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.preference.FieldEditor#adjustForNumColumns(int)
+ */
+ protected void adjustForNumColumns(int numColumns) {
+ return;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.preference.FieldEditor#doFillIntoGrid(org.eclipse.swt.widgets.Composite, int)
+ */
+ protected void doFillIntoGrid(Composite parent, int numColumns) {
+ int comboC = 1;
+ if (numColumns > 1) {
+ comboC = numColumns - 1;
+ }
+ GridData gd = new GridData();
+ gd.horizontalSpan = 1;
+ label.setLayoutData(gd);
+
+ gd = new GridData();
+ gd.horizontalSpan = comboC;
+ gd.horizontalAlignment = GridData.FILL;
+ widget.setLayoutData(gd);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.preference.FieldEditor#doLoad()
+ */
+ protected void doLoad() {
+ load(getPreferenceStore().getString(getPreferenceName()));
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.preference.FieldEditor#doLoadDefault()
+ */
+ protected void doLoadDefault() {
+ load(getPreferenceStore().getDefaultString(getPreferenceName()));
+ }
+
+ /**
+ * Loads the display data from the given value for selection
+ * @param value
+ */
+ private void load(String value) {
+ prefValue = null;
+ if (value != null) {
+ for (EObject obj : data) {
+ if (value.equals(getValueFor(obj))) {
+ prefValue = obj;
+ widget.setText(getLabelFor(obj));
+ return;
+ }
+ }
+ }
+ if (data.size() > 0) {
+ prefValue = data.get(0);
+ widget.setText(getLabelFor(prefValue));
+ } else {
+ widget.setText(null);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.preference.FieldEditor#doStore()
+ */
+ protected void doStore() {
+ if (prefValue == null) {
+ getPreferenceStore().setToDefault(getPreferenceName());
+ return;
+ }
+ getPreferenceStore().setValue(getPreferenceName(), getValueFor(prefValue));
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.preference.FieldEditor#getNumberOfControls()
+ */
+ public int getNumberOfControls() {
+ return 2;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.preference.FieldEditor#setEnabled(boolean,
+ * org.eclipse.swt.widgets.Composite)
+ */
+ public void setEnabled(boolean enabled, Composite parent) {
+ super.setEnabled(enabled, parent);
+ widget.setEnabled(enabled);
+ }
+}
diff --git a/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.preferences/src/org/eclipse/papyrus/infra/viewpoints/preferences/ViewpointsPreferencePage.java b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.preferences/src/org/eclipse/papyrus/infra/viewpoints/preferences/ViewpointsPreferencePage.java
new file mode 100755
index 00000000000..8383de38e26
--- /dev/null
+++ b/plugins/infra/viewpoints/org.eclipse.papyrus.infra.viewpoints.preferences/src/org/eclipse/papyrus/infra/viewpoints/preferences/ViewpointsPreferencePage.java
@@ -0,0 +1,295 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.viewpoints.preferences;
+
+import java.util.List;
+
+import org.eclipse.jface.preference.BooleanFieldEditor;
+import org.eclipse.jface.preference.ComboFieldEditor;
+import org.eclipse.jface.preference.FieldEditorPreferencePage;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.jface.preference.RadioGroupFieldEditor;
+import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusConfiguration;
+import org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusViewpoint;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Iso42010Package;
+import org.eclipse.papyrus.infra.viewpoints.iso42010.Stakeholder;
+import org.eclipse.papyrus.infra.viewpoints.policy.PolicyChecker;
+import org.eclipse.papyrus.infra.viewpoints.policy.PreferenceConstants;
+import org.eclipse.papyrus.infra.viewpoints.policy.WeightedConfiguration;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+
+/**
+ * Represents the preference page for the viewpoints configuration
+ * @author Laurent Wouters
+ */
+public class ViewpointsPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
+
+ private PapyrusConfiguration currentConfig;
+ private boolean customConfig;
+ private String scheme;
+
+ private RadioGroupFieldEditor fieldType;
+ private ComboFieldEditor fieldScheme;
+ private ResourceFieldEditor fieldPath;
+ private BooleanFieldEditor fieldForceMultiplicity;
+ private UpdatableComboBoxFieldEditor fieldStakeholder;
+ private UpdatableComboBoxFieldEditor fieldViewpoint;
+ private Label labelConfig;
+ private Group groupCustom;
+ private Group groupVP;
+
+ public ViewpointsPreferencePage() {
+ super(GRID);
+ setPreferenceStore(PolicyChecker.getPreferences());
+ setDescription("Preference page for the configuration of Papyrus viewpoints");
+ }
+
+ /**
+ * Creates the field editors. Field editors are abstractions of
+ * the common GUI blocks needed to manipulate various types
+ * of preferences. Each field editor knows how to save and
+ * restore itself.
+ */
+ public void createFieldEditors() {
+ IPreferenceStore store = getPreferenceStore();
+ currentConfig = PolicyChecker.getCurrent().getConfiguration();
+ String valueType = store.getString(PreferenceConstants.P_CONF_TYPE);
+ scheme = store.getString(PreferenceConstants.P_CONF_PATH_SCHEME);
+ if (scheme == null || scheme.isEmpty())
+ scheme = PreferenceConstants.P_CONF_PATH_SCHEME_FILE_VALUE;
+
+ fieldType = new RadioGroupFieldEditor(PreferenceConstants.P_CONF_TYPE, "Configuration selection:", 1, new String[][]{
+ { PreferenceConstants.P_CONF_TYPE_DEFAULT_LABEL, PreferenceConstants.P_CONF_TYPE_DEFAULT_VALUE },
+ { PreferenceConstants.P_CONF_TYPE_EXTENSION_LABEL, PreferenceConstants.P_CONF_TYPE_EXTENSION_VALUE },
+ { PreferenceConstants.P_CONF_TYPE_USER_DEFINED_LABEL, PreferenceConstants.P_CONF_TYPE_USER_DEFINED_VALUE}
+ }, getFieldEditorParent(), true);
+
+ GridData gd = new GridData();
+ gd.horizontalSpan = 3;
+ gd.horizontalAlignment = GridData.FILL;
+ Composite rest = new Composite(getFieldEditorParent(), SWT.SHADOW_NONE);
+ rest.setLayout(new FillLayout(SWT.VERTICAL));
+ rest.setLayoutData(gd);
+
+ groupCustom = new Group(rest, SWT.SHADOW_ETCHED_IN);
+ groupCustom.setText(PreferenceConstants.P_CONF_TYPE_USER_DEFINED_LABEL + ":");
+
+ fieldScheme = new ComboFieldEditor(PreferenceConstants.P_CONF_PATH_SCHEME, "Access scheme:", new String[][]{
+ { PreferenceConstants.P_CONF_PATH_SCHEME_FILE_LABEL, PreferenceConstants.P_CONF_PATH_SCHEME_FILE_VALUE },
+ { PreferenceConstants.P_CONF_PATH_SCHEME_WORKSPACE_LABEL, PreferenceConstants.P_CONF_PATH_SCHEME_WORKSPACE_VALUE },
+ { PreferenceConstants.P_CONF_PATH_SCHEME_PLUGIN_LABEL, PreferenceConstants.P_CONF_PATH_SCHEME_PLUGIN_VALUE }
+ }, groupCustom);
+ fieldScheme.setEnabled(PreferenceConstants.P_CONF_TYPE_USER_DEFINED_VALUE.equals(valueType), groupCustom);
+
+ fieldPath = new ResourceFieldEditor(PreferenceConstants.P_CONF_PATH, "&Path:", groupCustom);
+ fieldPath.setMode(0);
+ fieldPath.setEnabled(PreferenceConstants.P_CONF_TYPE_USER_DEFINED_VALUE.equals(valueType), groupCustom);
+ if (PreferenceConstants.P_CONF_PATH_SCHEME_FILE_VALUE.equals(scheme)) {
+ fieldPath.setMode(ResourceFieldEditor.MODE_FILE);
+ } else if (PreferenceConstants.P_CONF_PATH_SCHEME_WORKSPACE_VALUE.equals(scheme)) {
+ fieldPath.setMode(ResourceFieldEditor.MODE_WORKSPACE);
+ } else if (PreferenceConstants.P_CONF_PATH_SCHEME_PLUGIN_VALUE.equals(scheme)) {
+ fieldPath.setMode(ResourceFieldEditor.MODE_PLUGIN);
+ }
+
+ groupVP = new Group(rest, SWT.SHADOW_ETCHED_IN);
+ groupVP.setText("Viewpoint selection:");
+
+ gd = new GridData();
+ gd.horizontalSpan = 1;
+ Label titleConf = new Label(groupVP, SWT.LEFT);
+ titleConf.setText("Configuration:");
+ titleConf.setLayoutData(gd);
+
+ gd = new GridData();
+ gd.horizontalSpan = 1;
+ gd.horizontalAlignment = GridData.FILL;
+ labelConfig = new Label(groupVP, SWT.LEFT);
+ if (PreferenceConstants.P_CONF_TYPE_DEFAULT_VALUE.equals(valueType))
+ labelConfig.setText("Builtin");
+ else if (PreferenceConstants.P_CONF_TYPE_EXTENSION_VALUE.equals(valueType)) {
+ WeightedConfiguration config = WeightedConfiguration.getTopConfiguration();
+ labelConfig.setText((config == null) ? "No suitable configuration" : config.getURI());
+ } else if (PreferenceConstants.P_CONF_TYPE_USER_DEFINED_VALUE.equals(valueType))
+ labelConfig.setText(store.getString(PreferenceConstants.P_CONF_PATH));
+ labelConfig.setLayoutData(gd);
+
+ gd = new GridData();
+ gd.horizontalSpan = 1;
+ Label labelMulti = new Label(groupVP, SWT.LEFT);
+ labelMulti.setText("Multiplicity:");
+ labelMulti.setLayoutData(gd);
+ fieldForceMultiplicity = new BooleanFieldEditor(PreferenceConstants.P_FORCE_MULTIPLICITY, PreferenceConstants.P_FORCE_MULTIPLICITY_LABEL, groupVP);
+
+
+ fieldStakeholder = new UpdatableComboBoxFieldEditor(PreferenceConstants.P_STAKEHOLDER, "&Stakeholder:", groupVP);
+ fieldStakeholder.setContent(currentConfig.getStakeholders(), Iso42010Package.Literals.AD_ELEMENT__NAME);
+
+ fieldViewpoint = new UpdatableComboBoxFieldEditor(PreferenceConstants.P_VIEWPOINT, "&Viewpoint:", groupVP);
+ fieldViewpoint.setContent(PolicyChecker.getCurrent().getStakeholder().getViewpoints(), Iso42010Package.Literals.AD_ELEMENT__NAME);
+
+ addField(fieldType);
+ addField(fieldScheme);
+ addField(fieldPath);
+ addField(fieldStakeholder);
+ addField(fieldViewpoint);
+
+ }
+
+ @Override
+ protected void checkState() {
+ super.checkState();
+ if (currentConfig == null || fieldViewpoint.getSelection() == null || fieldStakeholder.getSelection() == null) {
+ this.setMessage("The currently selected configuration does not provide adequate viewpoints", ERROR);
+ setValid(false);
+ } else {
+ this.setMessage(null, NONE);
+ setValid(true);
+ }
+ }
+
+ @Override
+ protected void performDefaults() {
+ super.performDefaults();
+ customConfig = false;
+ WeightedConfiguration config = WeightedConfiguration.getTopConfiguration();
+ currentConfig = (config != null ? config.getConfiguration() : PolicyChecker.getDefaultConfiguration());
+ fieldPath.setStringValue("");
+ labelConfig.setText((config == null) ? "Builtin default" : config.getURI());
+ fieldPath.setEnabled(false, groupCustom);
+ fieldScheme.setEnabled(false, groupCustom);
+ if (currentConfig != null) {
+ List<Stakeholder> list = currentConfig.getStakeholders();
+ fieldStakeholder.setContent(list, Iso42010Package.Literals.AD_ELEMENT__NAME);
+ fieldViewpoint.setContent(list.get(0).getViewpoints(), Iso42010Package.Literals.AD_ELEMENT__NAME);
+ } else {
+ fieldStakeholder.clearContent();
+ fieldViewpoint.clearContent();
+ }
+ }
+
+ @Override
+ public boolean performOk() {
+ boolean result = super.performOk();
+ if (!result)
+ return false;
+ if (currentConfig == null || fieldViewpoint.getSelection() == null || fieldStakeholder.getSelection() == null)
+ return false;
+ PolicyChecker newPolicy = new PolicyChecker(currentConfig, (PapyrusViewpoint)fieldViewpoint.getSelection(), fieldForceMultiplicity.getBooleanValue());
+ PolicyChecker.setCurrent(newPolicy);
+ return true;
+ }
+
+ public void propertyChange(PropertyChangeEvent event) {
+ super.propertyChange(event);
+ if (event.getSource() == fieldType) {
+ onChangeType(event);
+ } else if (event.getSource() == fieldScheme) {
+ onChangeScheme(event);
+ } else if (event.getSource() == fieldPath) {
+ onChangePath(event);
+ } else if (event.getSource() == fieldStakeholder) {
+ onChangeStakeholder(event);
+ }
+ checkState();
+ }
+
+ private void onChangeType(PropertyChangeEvent event) {
+ currentConfig = null;
+ if (PreferenceConstants.P_CONF_TYPE_DEFAULT_VALUE.equals(event.getNewValue())) {
+ customConfig = false;
+ currentConfig = PolicyChecker.getDefaultConfiguration();
+ fieldPath.setStringValue("");
+ labelConfig.setText("Builtin default");
+ } else if (PreferenceConstants.P_CONF_TYPE_EXTENSION_VALUE.equals(event.getNewValue())) {
+ customConfig = false;
+ WeightedConfiguration config = WeightedConfiguration.getTopConfiguration();
+ currentConfig = (config != null ? config.getConfiguration() : PolicyChecker.getDefaultConfiguration());
+ fieldPath.setStringValue("");
+ labelConfig.setText((config == null) ? "Builtin default" : config.getURI());
+ } else if (PreferenceConstants.P_CONF_TYPE_USER_DEFINED_VALUE.equals(event.getNewValue())) {
+ customConfig = true;
+ labelConfig.setText("...");
+ }
+ fieldPath.setEnabled(customConfig, groupCustom);
+ fieldScheme.setEnabled(customConfig, groupCustom);
+ if (currentConfig != null) {
+ List<Stakeholder> list = currentConfig.getStakeholders();
+ fieldStakeholder.setContent(list, Iso42010Package.Literals.AD_ELEMENT__NAME);
+ fieldViewpoint.setContent(list.get(0).getViewpoints(), Iso42010Package.Literals.AD_ELEMENT__NAME);
+ } else {
+ fieldStakeholder.clearContent();
+ fieldViewpoint.clearContent();
+ }
+ }
+
+ private void onChangeScheme(PropertyChangeEvent event) {
+ scheme = event.getNewValue().toString();
+ fieldPath.setStringValue("");
+ if (PreferenceConstants.P_CONF_PATH_SCHEME_FILE_VALUE.equals(scheme)) {
+ fieldPath.setMode(ResourceFieldEditor.MODE_FILE);
+ } else if (PreferenceConstants.P_CONF_PATH_SCHEME_WORKSPACE_VALUE.equals(scheme)) {
+ fieldPath.setMode(ResourceFieldEditor.MODE_WORKSPACE);
+ } else if (PreferenceConstants.P_CONF_PATH_SCHEME_PLUGIN_VALUE.equals(scheme)) {
+ fieldPath.setMode(ResourceFieldEditor.MODE_PLUGIN);
+ }
+ }
+
+ private void onChangePath(PropertyChangeEvent event) {
+ if (!customConfig)
+ return;
+ String path = event.getNewValue().toString();
+ currentConfig = null;
+ if (path != null && !path.isEmpty()) {
+ if (PreferenceConstants.P_CONF_PATH_SCHEME_FILE_VALUE.equals(scheme)) {
+ currentConfig = PolicyChecker.loadConfigurationFrom(path);
+ } else if (PreferenceConstants.P_CONF_PATH_SCHEME_WORKSPACE_VALUE.equals(scheme)) {
+ currentConfig = PolicyChecker.loadConfigurationFrom(path);
+ } else if (PreferenceConstants.P_CONF_PATH_SCHEME_PLUGIN_VALUE.equals(scheme)) {
+ currentConfig = PolicyChecker.loadConfigurationFrom(path);
+ }
+ labelConfig.setText(path);
+ }
+ if (currentConfig != null) {
+ List<Stakeholder> list = currentConfig.getStakeholders();
+ fieldStakeholder.setContent(list, Iso42010Package.Literals.AD_ELEMENT__NAME);
+ fieldViewpoint.setContent(list.get(0).getViewpoints(), Iso42010Package.Literals.AD_ELEMENT__NAME);
+ } else {
+ fieldStakeholder.clearContent();
+ fieldViewpoint.clearContent();
+ }
+ }
+
+ private void onChangeStakeholder(PropertyChangeEvent event) {
+ Object value = event.getNewValue();
+ if (value != null) {
+ Stakeholder stakeholder = (Stakeholder)value;
+ fieldViewpoint.setContent(stakeholder.getViewpoints(), Iso42010Package.Literals.AD_ELEMENT__NAME);
+ }
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
+ */
+ public void init(IWorkbench workbench) { }
+} \ No newline at end of file

Back to the top