La toute nouvelle façon consiste à utiliser un RCP e4 pur qui utilise le nouveau modèle d'application avec des commandes et des gestionnaires ! (mais e4 ne prend pas en charge beaucoup de code existant). Dans e4, les menus et les barres d'outils sont définis dans le modèle d'application. Les commandes et les gestionnaires sont utilisés de la même manière que le code traditionnel (mais les gestionnaires sont implémentés différemment).
Pour le style Eclipse 3 comme vous l'avez constaté, il y a un pêle-mêle ou des façons de faire les choses. Eclipse 4.3 déprécie certains des plus anciens (et cela est maintenant signalé dans le plugin.xml
).
Si vous écrivez un RCP qui utilise son propre ActionBarAdvisor
vous pouvez alors y définir les éléments de votre barre d'outils. Ou vous pouvez les définir dans le plugin.xml
pour les plugins individuels. Les deux méthodes sont bonnes. Eclipse lui-même définit les actions de base dans le conseiller avec des plugins supplémentaires définissant plus dans leur plugin.xmls.
Actions telles que Enregistrer qui doivent être gérés par plusieurs parties (telles que les éditeurs) doivent être créés dans le conseiller et utiliser RetargetAction
. Cela permet à chaque partie individuelle d'associer sa propre action à l'action définie globalement. Cela peut également être fait avec des commands
et plusieurs handlers
qui sont plus proches du style e4.
org.eclipse.ui.menus
est maintenant le principal point d'extension pour contribuer aux menus et aux barres d'outils (en ignorant toutes les parties obsolètes). Cela vous oblige à utiliser des commands
et handlers
.
Le conseiller de la barre d'actions Eclipse est org.eclipse.ui.internal.ide.WorkbenchActionBuilder
ce qui peut aider bien qu'il soit grand.
Je pense que la coolbar de Kepler est construite à l'aide du nouveau modèle d'application e4 avec un style utilisant des CSS délicats.