| 
						 
						For displaying the UserId the table uses a special column, a drilldown column.
						This triggers a hyperlink which, in our application, results in a branch to the detail view.
						The data should not be processed in this view. The Edit button is used for this.
						 
						
						To react suitably to this event, we include a corresponding Callback method in our
						UserBrowseAction. Since we do not wish to implement the business logic here, we
						forward the event to another action - UserDisplayAction. This can then load the
						detailed information and call the corresponding JSP page for display.
						 
						
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.SimpleListControl; 
 
import com.cc.sampleapp.common.Forwards; 
import com.cc.sampleapp.common.Messages; 
import com.cc.sampleapp.dbaccess.DBUser; 
import com.cc.sampleapp.presentation.dsp.UserDisplayList; 
 
public class UserBrowseAction extends FWAction { 
 
    /** 
     * @see com.cc.framework.adapter.struts.FWAction#doExecute(ActionContext) 
     */ 
    public void doExecute(ActionContext ctx) 
        throws IOException, ServletException { 
 
    try { 
            UserDisplayList dspData = DBUser.fetch(); 
            SimpleListControl userList = new SimpleListControl(); 
            userList.setDataModel(dspData); 
            ctx.session().setAttribute("users", userList); 
        } 
        catch (Throwable t) { 
            ctx.addGlobalError(Messages.ERROR, t); 
        } 
 
        // Display the Page with the UserList 
        ctx.forwardToInput(); 
    } 
 
    /** 
     * This Method is called when the Drilldown-Column is clicked 
     * In our Example we switch to the DetailView, which shows 
     * more Information about the User. It's a readonly View. 
     * @param   ctx ControlActionContext 
     * @param   key     UniqueKey, as it was defined in the UserDisplayList 
     *          to identify the Row. In this Example the UserId. 
     */ 
    public void users_onDrilldown(ControlActionContext ctx, String key) { 
        ctx.forwardByName(Forwards.DRILLDOWN, key); 
    } 
} 
						 
						
						The name of the CallBack is composed of the Property name of the TreeControl -the name of the Bean-	and the event
						that has occurred. Since the ListControl was saved in the Session under the name "users" the name of the CallBack method is users_onDrilldown.
						 
                   
                    back   |  
                    Layouts   
								 |