Sorry, JavaScript must be enabled.
Change your browser options, then try again.

. .
 | !Login | Kontakt | Impressum

Editor Toolbar

Bedienelemente, wie Toolbarbuttons rufen z.B.  EventHandler von Formularen auf. Je nach Formular müssen verschiedene EventHandler bedient werden. Statt nun immer wieder die onClick Handler an die Buttons zu heften, annotiere ich die EventHandler der GUI Klasse mit einer Button Konfiguration und lasse den EditorToolbar Konstruktor die Klasse untersuchen und die Konfiguration auslesen.

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);