@Override
    public void decode(FacesContext ctx, UIComponent component) {
        HtmlForm form = construct(component);
        System.out.println("@@@ postback: " + ctx.isPostback());
        
        
        Map requestParameterMap =
            ctx.getExternalContext().getRequestParameterMap();
        String requestId = (String)(requestParameterMap.get(
                Constants.PARTIAL_SOURCE_PARAM)); 
        UIComponent root = form;
        if(root != null) {
            UIComponent componentFound = FacesUtil.findComponent(root, "button1");
            if(componentFound != null) {
                System.out.println("%%% buttonId: " + componentFound.getId());
                System.out.println("%%% buttonClientId: " + componentFound.getClientId());
                System.out.println("%%% request: " + requestId);
                if(requestId.equals(componentFound.getClientId())) {
                    if(componentFound != null) {
                        System.out.println("%%% Found button: " + componentFound.getId());
                        //componentFound.decode(ctx);
                        ((CommandButton)componentFound).decode(ctx);
                    }
                }
            } else {
                System.out.println("%%% panel is null");
            }
        } else {
            System.out.println("%%% root is null");
        }        
    }