Community
Participate
Working Groups
The Activity Explorer which originated in Capella and was contributed to Amalgam last year provides a nice way for complex modelling workbenches to guide their users and avoid the "blank slate" syndrome when starting with the tool. The objective here is to allow specifiers to configure the Activity Explorer directly from the VSM (with all the nice properties this implies, like high-configurability with expression, dynamic behaviour etc.), and to integrate the resulting explorer/editor nicely in the Sirius usage workflow.
Some pointers: * the source code for the Activity Explorer is available in the Amalgam repo, at https://git.eclipse.org/c/amalgam/org.eclipse.amalgam.git/tree/plugins/org.eclipse.amalgam.explorer.activity.ui * some documentation is available at https://wiki.eclipse.org/File:Activity_Explorer-1.0.0.pdf and https://wiki.eclipse.org/ModelingAmalgam/ActivityExplorer. * UML Designer's usage is implemeted in https://github.com/ObeoNetwork/UML-Designer/tree/master/plugins/org.obeonetwork.dsl.uml2.dashboard. * Capella's own usage can be found at http://git.polarsys.org/c/capella/capella.git/tree/core/plugins/org.polarsys.capella.core.explorer.activity.ui.
FWIW, a quick grep on the current source code of KitAlpha and Capella shows the following classes imported: org.eclipse.amalgam.explorer.activity.ui.ActivityExplorerActivator org.eclipse.amalgam.explorer.activity.ui.IImageKeys org.eclipse.amalgam.explorer.activity.ui.api.editor.ActivityExplorerEditor org.eclipse.amalgam.explorer.activity.ui.api.editor.input.ActivityExplorerEditorInput org.eclipse.amalgam.explorer.activity.ui.api.editor.pages.BasicSessionActivityExplorerPage org.eclipse.amalgam.explorer.activity.ui.api.editor.pages.CommonActivityExplorerPage org.eclipse.amalgam.explorer.activity.ui.api.editor.pages.OverviewActivityExplorerPage org.eclipse.amalgam.explorer.activity.ui.api.editor.pages.helper.SelectionHelper org.eclipse.amalgam.explorer.activity.ui.api.editor.pages.viewers.AbstractActivityExplorerViewer org.eclipse.amalgam.explorer.activity.ui.api.editor.pages.viewers.DiagramViewer org.eclipse.amalgam.explorer.activity.ui.api.editor.predicates.IPredicate org.eclipse.amalgam.explorer.activity.ui.api.hyperlinkadapter.AbstractHyperlinkAdapter org.eclipse.amalgam.explorer.activity.ui.api.hyperlinkadapter.AbstractNewDiagramHyperlinkAdapter org.eclipse.amalgam.explorer.activity.ui.api.hyperlinkadapter.PopupMenuLinkAdapter org.eclipse.amalgam.explorer.activity.ui.api.manager.ActivityExplorerManager org.eclipse.amalgam.explorer.activity.ui.api.preferences.PreferenceConstants This is juste grepping for "import org.eclipse.amalgam.explorer.activity.ui", so there might be others which are referenced indirectly. Anyway, this gives a first very rough idea of the "API surface" that KitAlpha and Capella explictly depend on right now.
Continuing the high-level review of code dependencies, here are all the Java classes which seem to depend on static configuration information defined in the plugin.xml files: % git grep -E 'import org.eclipse.core.runtime.(IConfigurationElement|IContributor|IExecutableExtension|IExtension|IExtensionPoint)' -- '**/*.java' | sort src/org/eclipse/amalgam/explorer/activity/ui/api/editor/activities/ExplorerActivity.java:import org.eclipse.core.runtime.IConfigurationElement; src/org/eclipse/amalgam/explorer/activity/ui/api/editor/pages/ActivityExplorerPage.java:import org.eclipse.core.runtime.IConfigurationElement; src/org/eclipse/amalgam/explorer/activity/ui/api/editor/pages/BasicSessionActivityExplorerPage.java:import org.eclipse.core.runtime.IConfigurationElement; src/org/eclipse/amalgam/explorer/activity/ui/api/editor/pages/CommonActivityExplorerPage.java:import org.eclipse.core.runtime.IConfigurationElement; src/org/eclipse/amalgam/explorer/activity/ui/api/editor/pages/CommonActivityExplorerPage.java:import org.eclipse.core.runtime.IExecutableExtension; src/org/eclipse/amalgam/explorer/activity/ui/api/editor/sections/ActivityExplorerSection.java:import org.eclipse.core.runtime.IConfigurationElement; src/org/eclipse/amalgam/explorer/activity/ui/internal/extension/point/manager/ActivityExplorerExtensionManager.java:import org.eclipse.core.runtime.IConfigurationElement; src/org/eclipse/amalgam/explorer/activity/ui/internal/extension/point/manager/ActivityExplorerExtensionManager.java:import org.eclipse.core.runtime.IContributor; src/org/eclipse/amalgam/explorer/activity/ui/internal/extension/point/manager/ActivityExplorerExtensionManager.java:import org.eclipse.core.runtime.IExecutableExtension; src/org/eclipse/amalgam/explorer/activity/ui/internal/extension/point/manager/ActivityExplorerExtensionManager.java:import org.eclipse.core.runtime.IExtension; src/org/eclipse/amalgam/explorer/activity/ui/internal/extension/point/manager/ActivityExplorerExtensionManager.java:import org.eclipse.core.runtime.IExtensionPoint; src/org/eclipse/amalgam/explorer/activity/ui/internal/preferences/ActivityExplorerManagementPreferencePage.java:import org.eclipse.core.runtime.IConfigurationElement; src/org/eclipse/amalgam/explorer/activity/ui/internal/preferences/ActivityExplorerSelectionBlock.java:import org.eclipse.core.runtime.IConfigurationElement; src/org/eclipse/amalgam/explorer/activity/ui/internal/preferences/ActivityExplorerSelectionBlock.java:import org.eclipse.core.runtime.IExtension; src/org/eclipse/amalgam/explorer/activity/ui/internal/preferences/ActivityExplorerSelectionBlock.java:import org.eclipse.core.runtime.IExtensionPoint; src/org/eclipse/amalgam/explorer/activity/ui/internal/preferences/DefaultPreferenceInitializer.java:import org.eclipse.core.runtime.IConfigurationElement; Most of these dependencies should probably be removed, or more precisely isolated in a single place as an implementation detail. Given its name, ActivityExplorerExtensionManager sounds like a good candidate. The information it provides should be exposed using an abstract API that can then be implemented in a different way. Note that this change will technically break APIs, as all the page implementation classes actually "implement IExecutableExtension" and read their configuration by a call to IExecutableExtension#setInitializationData(IConfigurationElement, String, Object). A different mechanism will be required to provide pages their configuration data which does not assume that information comes from plugin.xml configuration elements. This only covers (part of) the code dependencies that can be detected easily by grepping the code, but does not cover the fact the the current page implementations probably assume this configuration data, wherever it comes from, can be considered static. If we want the Sirius integration to feel "Sirius-native", page configuration will almost certainly contain dynamic information (e.g. interpreted expressions), and itself be dynamic (e.g. appearing/disappearing when viewpoints are enables/disabled, or in development mode when a VSM is modified by the specifier and then reloaded).
New Gerrit change created: https://git.eclipse.org/r/93901
New Gerrit change created: https://git.eclipse.org/r/93900
New Gerrit change created: https://git.eclipse.org/r/93905
New Gerrit change created: https://git.eclipse.org/r/93904
New Gerrit change created: https://git.eclipse.org/r/93902
New Gerrit change created: https://git.eclipse.org/r/93903
New Gerrit change created: https://git.eclipse.org/r/93910
New Gerrit change created: https://git.eclipse.org/r/93908
New Gerrit change created: https://git.eclipse.org/r/93906
New Gerrit change created: https://git.eclipse.org/r/93907
New Gerrit change created: https://git.eclipse.org/r/93909
Gerrit change https://git.eclipse.org/r/93900 was merged to [master]. Commit: http://git.eclipse.org/c/amalgam/org.eclipse.amalgam.git/commit/?id=6812d85e0f0e472c01003e521e204eb3ce896936
Gerrit change https://git.eclipse.org/r/93901 was merged to [master]. Commit: http://git.eclipse.org/c/amalgam/org.eclipse.amalgam.git/commit/?id=6cd1635ee435dc4081a4da599dc906a9dbb481a6
Gerrit change https://git.eclipse.org/r/93902 was merged to [master]. Commit: http://git.eclipse.org/c/amalgam/org.eclipse.amalgam.git/commit/?id=78943fcfaf24b5ee7514cdaadbf0f88578c320c9
Gerrit change https://git.eclipse.org/r/93903 was merged to [master]. Commit: http://git.eclipse.org/c/amalgam/org.eclipse.amalgam.git/commit/?id=c1868beffc32d6b36098cf35c74cee5ed954323b
Gerrit change https://git.eclipse.org/r/93905 was merged to [master]. Commit: http://git.eclipse.org/c/amalgam/org.eclipse.amalgam.git/commit/?id=d01f7023be370fe022c00464ef20eb913bf6bfae
Gerrit change https://git.eclipse.org/r/93906 was merged to [master]. Commit: http://git.eclipse.org/c/amalgam/org.eclipse.amalgam.git/commit/?id=b4052069c5622f976cf70dc0ffc754d32fb22a64
Gerrit change https://git.eclipse.org/r/93907 was merged to [master]. Commit: http://git.eclipse.org/c/amalgam/org.eclipse.amalgam.git/commit/?id=423cc487a7b805a6125681379095789121e0f5c6
New Gerrit change created: https://git.eclipse.org/r/102321
Gerrit change https://git.eclipse.org/r/93908 was merged to [master]. Commit: http://git.eclipse.org/c/amalgam/org.eclipse.amalgam.git/commit/?id=a434a1609dc9cba43003d99aac1ab6dbace62759
Gerrit change https://git.eclipse.org/r/93909 was merged to [master]. Commit: http://git.eclipse.org/c/amalgam/org.eclipse.amalgam.git/commit/?id=4fe0e20fcc7f0cfc5b6f62e4979e40c93999edc6
Gerrit change https://git.eclipse.org/r/102321 was merged to [master]. Commit: http://git.eclipse.org/c/amalgam/org.eclipse.amalgam.git/commit/?id=0090a9a4b4ce19d6a60282eadc9c520eb45404ca
New Gerrit change created: https://git.eclipse.org/r/102703
New Gerrit change created: https://git.eclipse.org/r/102701
New Gerrit change created: https://git.eclipse.org/r/103228
New Gerrit change created: https://git.eclipse.org/r/103227
New Gerrit change created: https://git.eclipse.org/r/103601
New Gerrit change created: https://git.eclipse.org/r/103600
Gerrit change https://git.eclipse.org/r/102701 was merged to [master]. Commit: http://git.eclipse.org/c/amalgam/org.eclipse.amalgam.git/commit/?id=7f0cfdc126a0d9e5289913a51ab65ea27b1eb199
Gerrit change https://git.eclipse.org/r/102703 was merged to [master]. Commit: http://git.eclipse.org/c/amalgam/org.eclipse.amalgam.git/commit/?id=b314dac1423b93fcd7060c64c41e787fda320491
Gerrit change https://git.eclipse.org/r/93910 was merged to [master]. Commit: http://git.eclipse.org/c/amalgam/org.eclipse.amalgam.git/commit/?id=81fa98edefcc5f2441b4c342cf0a60a13fe22137
Gerrit change https://git.eclipse.org/r/103227 was merged to [master]. Commit: http://git.eclipse.org/c/amalgam/org.eclipse.amalgam.git/commit/?id=c5d0c7dac0b9233666d74511861d1c73f0a4bde2
Gerrit change https://git.eclipse.org/r/103228 was merged to [master]. Commit: http://git.eclipse.org/c/amalgam/org.eclipse.amalgam.git/commit/?id=87ea675af5108bf0ed8db6edfa2fe946847288ef
Gerrit change https://git.eclipse.org/r/103600 was merged to [master]. Commit: http://git.eclipse.org/c/amalgam/org.eclipse.amalgam.git/commit/?id=8eaad9253d1b8020fd9389232d43a95359e33c41
New Gerrit change created: https://git.eclipse.org/r/104959
New Gerrit change created: https://git.eclipse.org/r/104958
New Gerrit change created: https://git.eclipse.org/r/104963
Gerrit change https://git.eclipse.org/r/104958 was merged to [master]. Commit: http://git.eclipse.org/c/amalgam/org.eclipse.amalgam.git/commit/?id=3bfe39f2db35235c67077d4282de86c8df7a8231
Gerrit change https://git.eclipse.org/r/104959 was merged to [master]. Commit: http://git.eclipse.org/c/amalgam/org.eclipse.amalgam.git/commit/?id=a333578f65f15228334b5a7500c851b04608b124
Gerrit change https://git.eclipse.org/r/104963 was merged to [master]. Commit: http://git.eclipse.org/c/amalgam/org.eclipse.amalgam.git/commit/?id=49e04be599afc297f1e399f802ede599433507ae
Changing the title to reflect the updated scope. Instead of trying to modify the existing Activity Explorer runtime (which is more complex and risky than initially thought), we will create a new implementation with similar concepts but maybe more oriented towards workflow definition, with: * a way for specifiers to define and organize global "actions" that apply to a session/project, which may depend on the current state. This is similar in scope to the pages/sections/activities supported by the Activity Explorer, but maybe a little more dynamic (at least that's the idea); * at runtime, the presentation of these actions inside the aird editor (as a new page). Instead of reusing the Activity Explorer runtime (which is not a good match), we'll use an embedded browser widget with dynamically rendered HTML/CSS/JS.
New Gerrit change created: https://git.eclipse.org/r/118505
New Gerrit change created: https://git.eclipse.org/r/118506
Gerrit change https://git.eclipse.org/r/118505 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=ae43d6371b2a53599d4bddf8c845d26d55b319c8
Gerrit change https://git.eclipse.org/r/118506 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=511ed44bc94cf9eefb53c456255351a6838fc611
New Gerrit change created: https://git.eclipse.org/r/118631
New Gerrit change created: https://git.eclipse.org/r/118692
New Gerrit change created: https://git.eclipse.org/r/119016
Gerrit change https://git.eclipse.org/r/118692 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=fc2386caf5c8954a146b6cc0917be2ac08c78621
New Gerrit change created: https://git.eclipse.org/r/121391
Gerrit change https://git.eclipse.org/r/119016 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=aa052272035c2d439cb4499a1f51f770858c8ed6
New Gerrit change created: https://git.eclipse.org/r/121777
Gerrit change https://git.eclipse.org/r/121777 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=ac159571b706654a93b79a74821dc5c25249e5bc
Gerrit change https://git.eclipse.org/r/121391 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=3d6de26c22af876d9061e0152cabab89cc4f1914
New Gerrit change created: https://git.eclipse.org/r/122163
New Gerrit change created: https://git.eclipse.org/r/122694
New Gerrit change created: https://git.eclipse.org/r/122693
Gerrit change https://git.eclipse.org/r/122693 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=bc76ec0b5b386e791afcac15ee5ea5aca665b2c7
Gerrit change https://git.eclipse.org/r/122694 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=634ca0d8c3ad0f1e8087ec27b2ec8646b5299b8f
New Gerrit change created: https://git.eclipse.org/r/122768
Gerrit change https://git.eclipse.org/r/122768 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=52a7f361286bc8e5e918313b84576ef1e417343a
New Gerrit change created: https://git.eclipse.org/r/123065
New Gerrit change created: https://git.eclipse.org/r/123073
Gerrit change https://git.eclipse.org/r/123073 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=d7651f3dc1246623c252e0f342bb7f94ae1df9b0
New Gerrit change created: https://git.eclipse.org/r/123225
New Gerrit change created: https://git.eclipse.org/r/123226
New Gerrit change created: https://git.eclipse.org/r/123227
Gerrit change https://git.eclipse.org/r/123065 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=26c8fe0dacb847cf7ab64be71c834f6aa2f2aced
Gerrit change https://git.eclipse.org/r/123226 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=ceb11f758365ceb98b4b8fb816bdbfc8bd7bed48
Gerrit change https://git.eclipse.org/r/123227 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=a9de3742c427de4cc28e434ea9f7a0852cacd8ee
Gerrit change https://git.eclipse.org/r/123225 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=b82fdf585de90f18fa2c8b4599d778889d3d71c9
New Gerrit change created: https://git.eclipse.org/r/123607
New Gerrit change created: https://git.eclipse.org/r/124003
Closing for the first version for 6.0.0, which should be considered experimental. We'll try to fix the most glaring bugs for 6.0.1 and provide a more stable a functional version for 6.1.0.
Available in Sirius 6.0.0, see https://wiki.eclipse.org/Sirius/6.0.0 for details
Gerrit change https://git.eclipse.org/r/123607 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=8a9d068ae67d693435f677bf033799a169888b68
Gerrit change https://git.eclipse.org/r/124003 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=dfc57bc57addc6ece0b99fed0c173c908654d803