Package org.chiba.xml.xforms

Examples of org.chiba.xml.xforms.ChibaBean


        }
        key += "/" + getId() + "/" + ((InstanceDataModel)getValue()).getId();
        if (chibaBeansCache.containsKey(key)) {
            return (ChibaBean)chibaBeansCache.get(key);
        }
        ChibaBean chiba = setupChibaBean();
       
        chibaBeansCache.put(key, chiba);
        if (sessionObject instanceof PortletSession) {
            ((PortletSession)sessionObject).setAttribute
                (CHIBA_BEANS_ATTR_PREFIX + getId(),
View Full Code Here


                logger.debug(e.getMessage(), e);
            } catch (TransformerException e) {
                logger.debug(e.getMessage(), e);
            }
        }
        ChibaBean chiba = new ChibaBean ();
        try {
            chiba.setXMLContainer (form);
            chiba.init();
        } catch (XFormsException e) {
            throw new FacesException(e.getMessage(), e);
        }
        return chiba;
    }
View Full Code Here

        /* (non-Javadoc)
         * @see javax.servlet.http.HttpSessionBindingListener#valueUnbound
         */
        public void valueUnbound(HttpSessionBindingEvent arg0) {
            ChibaBean chiba = (ChibaBean)chibaBeansCache.remove(key);
            try {
                chiba.shutdown();
            } catch (XFormsException e) {
                logger.debug(e.getMessage(), e);
            }
        }
View Full Code Here

     */
    public void encodeEnd(FacesContext context, UIComponent component)
        throws IOException {
        super.encodeEnd(context, component);
        XForm comp = (XForm)component;
        ChibaBean chiba = comp.chiba();
        if (logger.isDebugEnabled()) {
            try {
                logger.debug ("Chiba document:\n" + XMLUtil.w3cDomToString
                              (chiba.getXMLContainer().getDocumentElement()));
            } catch (XFormsException e) {
                logger.debug (e.getMessage());
            }
        }
        Object response = context.getExternalContext().getResponse();
        if (response instanceof RenderResponse) {
            try {
                Element form = chiba.getXMLContainer().getDocumentElement();
                NodeList titles
                    = form.getElementsByTagNameNS(XMLUtil.XMLNS_XHTML, "title");
                if (titles.getLength() > 0) {
                    String title = XMLUtil
                        .getFirstLevelTextContent((Element)titles.item(0));
                    ((RenderResponse)response).setTitle(title);
                }
            } catch (XFormsException e) {
                logger.debug (e.getMessage());
            }
        }

        // Ensure availability of JS
        JSLoading.ensureInclusion(context, JSLoading.UTIL);
        JSLoading.ensureInclusion(context, JSLoading.ANCHOR_POSITION);
        JSLoading.ensureInclusion(context, JSLoading.DATE);
        JSLoading.ensureInclusion(context, JSLoading.POPUP_WINDOW);
        JSLoading.ensureInclusion(context, JSLoading.CALENDAR_POPUP);
        AddResource addResource = AddResourceFactory.getInstance(context);
        if (!context.getExternalContext().getRequestMap()
            .containsKey(XFormRenderer.class.getName() + "_SCRIPTS")) {
            addResource.addJavaScriptAtPosition
                (context, AddResource.HEADER_BEGIN,
                 new MyFacesResourceHandler(XFormRenderer.class, "helpers.js"));
            addResource.addJavaScriptAtPosition
                (context, AddResource.HEADER_BEGIN,
                 new MyFacesResourceHandler
                 (XFormRenderer.class, "xforms2html.js"));
            context.getExternalContext().getRequestMap()
                .put(XFormRenderer.class.getName() + "_SCRIPTS", Boolean.TRUE);
        }
        // Add styles
        addResource.addStyleSheet
            (context, AddResource.HEADER_BEGIN,
             new MyFacesResourceHandler(XFormRenderer.class, "xforms.css"));

        // Write individual JS
        ResponseWriter writer = context.getResponseWriter();
        writer.startElement(HTML.SCRIPT_ELEM, null);
        writer.writeAttribute
            (HTML.SCRIPT_TYPE_ATTR, HTML.SCRIPT_TYPE_TEXT_JAVASCRIPT, null);

        String jsPrefix = JavascriptUtils
            .getValidJavascriptName(comp.getClientId(context),false);
        writer.write("window." + jsPrefix + "baseData={\n");
        writer.write("jsPrefix: \"" + jsPrefix + "\",\n");
        writer.write("elementIdPrefix: \""
                     + comp.getClientId(context)
                     + NamingContainer.SEPARATOR_CHAR + "\",\n");
        String urlPrefix = addResource.getResourceUri
            (context, new MyFacesResourceHandler(JSLoading.class, ""));
        writer.write("resourcePrefix: \"" + urlPrefix + "\",\n");
        writer.write("dataPrefix: \"" + DATA_PREFIX + "\",\n");
        writer.write("triggerPrefix: \"" + TRIGGER_PREFIX + "\",\n");
        writer.write("removeUploadPrefix: \"" + REMOVE_UPLOAD_PREFIX + "\",\n");
        Locale locale = context.getViewRoot().getLocale();
        ResourceBundle l10n = ResourceBundle.getBundle
            ("de.danet.an.util.jsf.xftaglib.L10n",
             locale, XFormRenderer.class.getClassLoader());
        writer.write("dateFormat: \"" + l10n.getString("dateFormat") + "\",\n");
        writer.write
            ("dateTimeFormat: \"" + l10n.getString("dateTimeFormat") + "\",\n");
        writer.write("monthsNames: new Array("
                     + join(monthsNames(locale), "\"", ",") + "),\n");
        writer.write("abbrevMonthsNames: new Array("
                + join(abbrevMonthsNames(locale), "\"", ",") + "),\n");
        writer.write("todayLabel: \"" + l10n.getString("todayLabel") + "\",\n");
       
        String path
            = MyFacesAjaxServlet.getAjaxActionUrl(context, component);
        if (path.indexOf("?") < 0) {
            path = path + "?";
        } else {
            path = path + "&";
        }
        writer.write("ajaxBaseUrl: \"" + path + "\"\n");
        writer.write("};\n");
       
        String guiData = null;
        try {
            Transformer t;
            t = defTemplates().newTransformer();
            StringWriter sw = new StringWriter();
            t.transform(new DOMSource(chiba.getXMLContainer()),
                        new StreamResult(sw));
            guiData = sw.toString();
        } catch (TransformerConfigurationException e) {
            logger.error (e.getMessage(), e);
        } catch (TransformerFactoryConfigurationError e) {
View Full Code Here

     * @see javax.faces.render.Renderer#decode
     */
    public void decode(FacesContext context, UIComponent component) {
        super.decode(context, component);
        String clientId = component.getClientId(context);
        ChibaBean chiba = ((XForm)component).chiba();
        Map paramMap = context.getExternalContext().getRequestParameterMap();
        String ajaxCallTo
            = (String)paramMap.get(MyFacesAjaxServlet.AJAX_CALL_TO);
        if (ajaxCallTo != null && ajaxCallTo.equals(clientId)) {
            handleAjaxRequest (context, component, paramMap);
            return;
        }
        String clientBaseId = clientId + NamingContainer.SEPARATOR_CHAR;
        String trigger = null;
        Map paramValuesMap = context
            .getExternalContext().getRequestParameterValuesMap();
        try {
            for (Iterator i = paramValuesMap.entrySet().iterator();
                 i.hasNext();) {
                Map.Entry entry = (Map.Entry)i.next();
                String key = (String)entry.getKey();
                if (!key.startsWith(clientBaseId)) {
                    continue;
                }
                String controlId = key.substring(clientBaseId.length());
                if (controlId.startsWith(DATA_PREFIX)) {
                    String[] values = (String[])entry.getValue();
                    String value = values[0];
                    for (int j = 1; j < values.length; j++) {
                        value += " " + values[j];
                    }
                    chiba.updateControlValue
                        (controlId.substring(DATA_PREFIX.length()), value);
                    continue;
                }
                if (controlId.startsWith(TRIGGER_PREFIX)) {
                    trigger = controlId.substring(TRIGGER_PREFIX.length());
View Full Code Here

        }
    }
   
    private void handleAjaxRequest
        (FacesContext context, UIComponent component, Map paramMap) {
        ChibaBean chiba = ((XForm)component).chiba();
        String controlId = (String)paramMap.get("controlId");
        String value = (String)paramMap.get("value");
        final List events = new ArrayList ();
        EventListener listener = new EventListener () {
            public void handleEvent(Event evt) {
                if (logger.isDebugEnabled()) {
                    logger.debug
                        ("Event of type \"" + evt.getType()
                         + "\" targeted at:\n"
                         + XMLUtil.w3cDomToString((Element)evt.getTarget()));
                }
                events.add(evt);
            }
        };
        EventTarget doc = null;
        try {
            doc = (EventTarget)
                chiba.getXMLContainer().getDocumentElement();
            doc.addEventListener
                (ChibaEventNames.STATE_CHANGED, listener, true);
            doc.addEventListener
                (ChibaEventNames.PROTOTYPE_CLONED, listener, true);
            doc.addEventListener
                (ChibaEventNames.ID_GENERATED, listener, true);
            doc.addEventListener
                (ChibaEventNames.ITEM_INSERTED, listener, true);
            doc.addEventListener
                (ChibaEventNames.ITEM_DELETED, listener, true);
            doc.addEventListener
                (ChibaEventNames.INDEX_CHANGED, listener, true);
            doc.addEventListener
                (ChibaEventNames.SWITCH_TOGGLED, listener, true);
           
            chiba.updateControlValue (controlId, value);
        } catch (XFormsException e) {
            logger.warn(e.getMessage(), e);
        } finally {
            if (doc != null) {
                doc.removeEventListener
View Full Code Here

TOP

Related Classes of org.chiba.xml.xforms.ChibaBean

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.