Il modo davvero nuovo è utilizzare un RCP e4 puro che utilizza il nuovo modello di applicazione con comandi e gestori! (ma e4 non supporta molto codice esistente). In e4 i menu e le barre degli strumenti sono definiti nel modello dell'applicazione. I comandi e i gestori vengono utilizzati in modo simile al codice tradizionale (ma i gestori sono implementati in modo diverso).
Per lo stile Eclipse 3, come hai scoperto, c'è un miscuglio o modi di fare le cose. Eclipse 4.3 depreca alcuni dei più vecchi (e questo è ora contrassegnato nel plugin.xml
).
Se stai scrivendo un RCP che utilizza il proprio ActionBarAdvisor
quindi puoi definire gli elementi della barra degli strumenti lì. Oppure puoi definirli nel plugin.xml
per i singoli plugin. Entrambi i metodi vanno bene. Eclipse stessa definisce le azioni principali nell'advisor con plug-in aggiuntivi che definiscono di più nel loro plugin.xmls.
Azioni come Salva che devono essere gestiti da più parti (come gli editor) devono essere creati nell'advisor e utilizzare RetargetAction
. Ciò consente a ogni singola parte di collegare la propria azione con l'azione definita globalmente. Questo può essere fatto anche con commands
e più handlers
che sono più vicini allo stile e4.
org.eclipse.ui.menus
è ora il punto di estensione principale per contribuire a menu e barre degli strumenti (ignorando tutte le parti deprecate). Questo ti obbliga praticamente a usare commands
e handlers
.
L'advisor della barra delle azioni di Eclipse è org.eclipse.ui.internal.ide.WorkbenchActionBuilder
che può aiutare anche se è grande.
Penso che la coolbar in Kepler sia costruita utilizzando il nuovo modello di applicazione e4 con uno stile che utilizza alcuni CSS complicati.