Det riktigt nya sättet är att använda en ren e4 RCP som använder den nya applikationsmodellen med kommandon och hanterare! (men e4 stöder inte mycket av befintlig kod). I e4 definieras menyer och verktygsfält i applikationsmodellen. Kommandon och hanterare används på ett liknande sätt som traditionell kod (men hanterare implementeras annorlunda).
För Eclipse 3-stil som du har upptäckt finns det ett virrvarr eller sätt att göra saker på. Eclipse 4.3 fasar ut några av de äldsta (och detta är nu flaggat i plugin.xml
).
Om du skriver en RCP som använder sin egen ActionBarAdvisor
sedan kan du definiera dina verktygsfältsobjekt där. Eller så kan du definiera dem i plugin.xml
för enskilda plugins. Båda metoderna är bra. Eclipse själv definierar kärnåtgärder i rådgivaren med tilläggsplugin som definierar mer i deras plugin.xmls.
Åtgärder som Spara som behöver hanteras av flera delar (som redigerare) ska skapas i rådgivaren och använda RetargetAction
. Detta gör att varje enskild del kan koppla ihop sin egen handling med den globalt definierade handlingen. Detta kan också göras med commands
och flera handlers
som är närmare e4-stilen.
org.eclipse.ui.menus
är nu den huvudsakliga förlängningspunkten för att bidra till menyer och verktygsfält (ignorerar alla föråldrade delar). Detta tvingar dig ganska mycket att använda commands
och handlers
.
Eclipse-åtgärdsfältets rådgivare är org.eclipse.ui.internal.ide.WorkbenchActionBuilder
vilket kan hjälpa även om det är stort.
Jag tror att coolbaren i Kepler är konstruerad med den nya e4-applikationsmodellen med styling med hjälp av lite knepig CSS.