Ich habe ein Annotation Interface ToolbarbuttonConfig:
package net.empego.zk.annotation;
import java.lang.annotation.Retention;
import static java.lang.annotation.RetentionPolicy.*;
@Retention(RUNTIME)
public @interface ToolbarbuttonConfig {
int ordernr();
String label();
String key() default "";
String tooltiptext();
String imageurl();
boolean visible();
}
das ich so einsetze:
/**
* Delete Entity and close editors
*/
@ToolbarbuttonConfig(imageurl = "Delete.png",
label = "Delete",
ordernr = 7,
tooltiptext = "Delete",
visible = true)
public void onDelete() {
if(_entity.getId()!=0){
// reattach _entity to hibernate session
Session hs = HibUtil.currentActiveSession();
hs.delete(_entity);
}
((ApplicationContainerIF)this.getDesktop()
.getAttribute("APPLICATION_CONTAINER"))
.removeApplication(this);
this.setParent(null);
}
Diese Konfiguation legt z.B. fest welcher Toolbarbutton mit welchem Icon mit welcher Beschriftung an welcher Stelle in der zu generierenden Toolbar erscheinen soll und installiert auch den onClick EventHandler für den Button.
In der GUI Klasse braucht lediglich die Toolbar instanziert und als Bedienelement plaziert werden:
EditorToolbar toolbar = new EditorToolbar(this);
toolbar.setId("ExplorerToolbar");
toolAndStatusBar.appendChild(toolbar);