Products
About Guided Tour Online Demo Download Trial Version Requirements
Resources
Dokumente Konfigurationsbeispiele TagLib-Referenz Useful Links
Customer Support
Updates Foren Contact Services
Sales
Licensing Sales FAQ Buy Online
 
 
 
buy online   |   about us   |   english version  

» Exkurs: Implementierung einer Callback-Methode

Das TreeControl generiert bei einem Klick auf ein Label automatisch ein onDrilldown-Event auf das der Programmierer innerhalb der Action-Klasse reagieren kann.

Um in unserem Beispiel auf dieses Ereignis zu reagieren, nehmen wir eine entsprechende Callback-Methode in der ProductTreeBrowseAction auf. Da wir die BusinessLogik nicht an dieser Stelle implementieren möchten, leiten wir das Ereignis an eine andere Action - ProductDisplayAction - weiter.

import java.io.IOException;
import javax.servlet.ServletException;

import com.cc.framework.adapter.struts.ActionContext;
import com.cc.framework.adapter.struts.FWAction;
import com.cc.framework.ui.control.ControlActionContext;
import com.cc.framework.ui.control.TreeControl;

import com.cc.sampleapp.common.Forwards;

public class ProductTreeBrowseAction extends FWAction {

    /**
     * @see com.cc.framework.adapter.struts.FWAction#doExecute(ActionContext)
     */
    public void doExecute(ActionContext ctx)
        throws IOException, ServletException {

        try {
            ProductGroupDsp data = DBProduct.fetch();
            TreeControl products = new TreeControl();
            products.setDataModel(data);
            ctx.session().setAttribute("products", products);
        }

        catch (Throwable t) {
            ctx.addGlobalError("Error: ", t);
        }

        // Display the Page with the Tree
        ctx.forwardToInput();
    }

    // ------------------------------------------------
    //          Tree-Control Event Handler
    // ------------------------------------------------


    /**
     * This Method is called when the TreeLabel is clicked
     * In our Example we switch to the DetailView, which shows
     * more Information about the node.
     * @param   ctx ControlActionContext
     * @param   key     UniqueKey, as created in the Datamodel
     */
    public void  products_onDrilldown(ControlActionContext ctx, String key) {
        ctx.forwardByName(Forwards.DRILLDOWN, key);
    }

}

Der Name der CallBack-Methode setzt sich dabei aus dem Property-Namen des TreeControls - dem Namen der Bean - und dem eingetretenen Event zusammen. Da das TreeControl unter dem Namen "products" in der Session abgelegt wurde, lautet der Name der CallBack-Methode products_onDrilldown.

zurück   |   weiter

Impressum | This product includes software developed by the Java Apache Project
Tours
ListControl TreeControl TreeListControl TabSetControl Formelemente MenuControl Druckversion Live Demo Konfiguration