Package org.ajax4jsf.context

Examples of org.ajax4jsf.context.AjaxContext


    // TODO Auto-generated method stub
    return null;
  }

  private ViewIdHolder setupNavigation(FacesContext context) {
    AjaxContext ajaxContext = AjaxContext.getCurrentInstance(context);
    ViewIdHolder viewIdHolder = ajaxContext.getViewIdHolder();
    ajaxContext.setViewIdHolder(this);
    return viewIdHolder;
  }
View Full Code Here


    ajaxContext.setViewIdHolder(this);
    return viewIdHolder;
  }

  private void restoreNavigation(FacesContext context, ViewIdHolder viewIdHolder) {
    AjaxContext ajaxContext = AjaxContext.getCurrentInstance(context);
    ajaxContext.setViewIdHolder(viewIdHolder);
//    if (wasNavigation) {
//      // Clear children to avoid have different components with same id
//      getChildren().clear();
//    }
  }
View Full Code Here

          }
        }

      }
     
      AjaxContext ajaxContext = AjaxContext.getCurrentInstance();
      ajaxContext.addRegionsFromComponent(component);
      ajaxContext.addComponentToAjaxRender(component);
      ajaxContext.addRegionsFromComponent(component);
     
      ajaxContext.addRenderedArea(clientId + ":tb");
     
      // FIXME: check for correct client id.
      // Now path & client id mixed here, it is possible that
      // they will be different un case of dataTable in dataTable.
     
      // Due to we are re render whole data table, Ajax runtime didn't add to reRender  
      // ids of those childs that specified in reRender data table attribute
      // so let's add them to ajax render areas here by hand
      Set<String> ajaxRenderedAreas = ajaxContext.getAjaxRenderedAreas();
      Set<String> areasToRender = ajaxContext.getAjaxAreasToRender();
      for (String area : areasToRender) {
          // process only child components, all other should be added to render
          // automatically by ajax
          if (area.startsWith(NamingContainer.SEPARATOR_CHAR + clientId)) {
        area = area.substring(1); // remove unnecessary start separator symbol
        if (!area.equals(clientId) && !ajaxRenderedAreas.contains(area)) {
            ajaxContext.addRenderedArea(area);
        }
          }
      }
    }
  }
View Full Code Here

  @Override
  public void encodeEnd(FacesContext context, UIComponent component)
      throws IOException {
    super.encodeEnd(context, component);
    if (component instanceof UIDataTable) {
      AjaxContext ajaxContext = AjaxContext.getCurrentInstance();
      Set<String> ajaxRenderedAreas = ajaxContext.getAjaxRenderedAreas();
      String clientId = ((UIDataTable) component).getBaseClientId(context);
      if(ajaxRenderedAreas.contains(clientId+ ":tb")) {
        ajaxRenderedAreas.remove(clientId);
      }
    }
View Full Code Here

    writer.writeAttribute(HTML.id_ATTRIBUTE, id, null);
    writer.writeAttribute(HTML.NAME_ATTRIBUTE, id, null);
    writer.writeAttribute(HTML.value_ATTRIBUTE, string, null);
    writer.endElement(HTML.INPUT_ELEM);
   
    AjaxContext ajaxContext = AjaxContext.getCurrentInstance(context);
   
    if (ajaxContext.isAjaxRequest()) {
      ajaxContext.addRenderedArea(id);
    }
   
  }
View Full Code Here

      // generate new node id
      Object id = getNewId(destTree.getTreeNode(dropNodeKey));
      destTree.addNode(dropNodeKey, draggedNode, id, state);
  }

  AjaxContext ac = AjaxContext.getCurrentInstance();
  // Add destination tree to reRender
  try {
      ac.addComponentToAjaxRender(destTree);
  } catch (Exception e) {
      System.err.print(e.getMessage());
  }

    }
View Full Code Here

      // complete re-Render fields. AjaxEvent deliver before render
      // response.
      setupReRender(context);
      // Put data for send in response
      Object data = getData();
      AjaxContext ajaxContext = AjaxContext.getCurrentInstance(context);
      if (null != data) {
        ajaxContext.setResponseData(data);
      }
      String focus = getFocus();
      if (null != focus) {
        // search for component in tree.
        // TODO - use more pourful search, as in h:outputLabel
        // component.
        UIComponent focusComponent = findComponent(focus);
        if (null != focusComponent) {
          focus = focusComponent.getClientId(context);
        }
        ajaxContext.getResponseDataMap().put(FOCUS_DATA_ID, focus);
      }
      ajaxContext.setOncomplete(getOncomplete());
    }
  }
View Full Code Here

  public void encodeAjax(FacesContext context, UIComponent component)
      throws IOException {
    UIComponent root ;
    // Iterate over all childrens, render it if nessesary...
    log.debug(Messages.getMessage(Messages.RENDER_CHILDREN_AJAX_INFO));
    AjaxContext ajaxContext = AjaxContext.getCurrentInstance(context);
    Set ids = ajaxContext.getAjaxAreasToRender();
    Set renderedAreas = ajaxContext.getAjaxRenderedAreas();
    if (((AjaxContainer) component).isRenderRegionOnly()) {
      root = component;
    } else {
      root = context.getViewRoot();     
    }
View Full Code Here

    parameters.put(controlName, controlValue);
    // Move processing of a 'single' attribute to a server-side.
//    if (ajaxSingle) {
//      options.put("single", JSReference.TRUE);
//    }
    AjaxContext ajaxContext = AjaxContext.getCurrentInstance(facesContext);
    // Setup action URL. For portlet environment, it will be different from
    // page.
    options.put("actionUrl", ajaxContext.getAjaxActionURL(facesContext));
    // Add application-wide Ajax parameters
    parameters.putAll(ajaxContext.getCommonAjaxParameters());
    // add child parameters
    for (Iterator it = uiComponent.getChildren().iterator(); it.hasNext();) {
      UIComponent child = (UIComponent) it.next();
      if (child instanceof UIParameter) {
        String name = ((UIParameter) child).getName();
View Full Code Here

   * @param component
   * @throws IOException
   */
  public static void encodeAreas(FacesContext context,
      UIComponent component) throws IOException {
    AjaxContext ajaxContext = AjaxContext.getCurrentInstance(context);
    ExternalContext externalContext = context.getExternalContext();
    Map requestMap = externalContext.getRequestMap();
    Set rendered = ajaxContext.getAjaxRenderedAreas();
    StringBuffer senderString = new StringBuffer();
    // write special area for list of rendered elements. Client-side
    // Java
    // Script
    // read this structure for update areas of DOM tree.
    ResponseWriter out = context.getResponseWriter();
    // Create <span> element to keep list rendered aread ( in title
    // attribute )
    // More right will create special namespace for such
    // information,
    // but I want to keep simple html ( xhtml ) document - on case
    // I have troubles with microsoft XMLHTTP validations.
    out
        .startElement(AjaxContainerRenderer.AJAX_RESULT_GROUP_TAG,
            component);
    out.writeAttribute(HTML.NAME_ATTRIBUTE,
        AjaxContainerRenderer.AJAX_UPDATE_HEADER, null);
    for (Iterator it = rendered.iterator(); it.hasNext();) {
      String id = (String) it.next();
      // out.startElement(AJAX_RESULT_TAG, component);
      // out.writeText(id,null);
      // out.endElement(AJAX_RESULT_TAG);
      senderString.append(id);
      if (it.hasNext()) {
        senderString.append(',');
      }
    }
    out.writeAttribute(AjaxContainerRenderer.AJAX_RESULT_GROUP_ATTR,
        senderString, null);
    out.endElement(AjaxContainerRenderer.AJAX_RESULT_GROUP_TAG);
    // For sequences and client-saved states.

    out.startElement(AjaxContainerRenderer.AJAX_VIEW_STATE_TAG, component);
    out.writeAttribute(HTML.id_ATTRIBUTE,
        AjaxContainerRenderer.AJAX_VIEW_STATE_ID, null);
    writeState(context);
    out.endElement(AjaxContainerRenderer.AJAX_VIEW_STATE_TAG);
    // Write rendered flag to html <meta>
    out
        .startElement(AjaxContainerRenderer.AJAX_RESULT_GROUP_TAG,
            component);
    out.writeAttribute(HTML.id_ATTRIBUTE,
        AjaxContainerRenderer.AJAX_FLAG_HEADER, null);
    out.writeAttribute(HTML.NAME_ATTRIBUTE,
        AjaxContainerRenderer.AJAX_FLAG_HEADER, null);
    out.writeAttribute(AjaxContainerRenderer.AJAX_RESULT_GROUP_ATTR,
        "true", null);
    out.endElement(AjaxContainerRenderer.AJAX_RESULT_GROUP_TAG);
    // set response header with list of rendered ID's
    Object response = externalContext.getResponse();
    // Use reflection for send responce headers - we can get
    // different responces classes
    // for different environment ( portal, cocoon etc )
    if (response instanceof HttpServletResponse) {
      HttpServletResponse httpResponse = (HttpServletResponse) response;
//      httpResponse.setHeader(AjaxContainerRenderer.AJAX_UPDATE_HEADER,
//          senderString.toString());
      httpResponse.setHeader(AjaxContainerRenderer.AJAX_FLAG_HEADER,
          "true");
    } else {
      try {
        Method setHeadergMethod = response.getClass()
            .getMethod("setHeader",
                new Class[] { String.class, String.class });
//        setHeadergMethod.invoke(response, new Object[] {
//            AjaxContainerRenderer.AJAX_UPDATE_HEADER,
//            senderString.toString() });
        setHeadergMethod.invoke(response, new Object[] {
            AjaxContainerRenderer.AJAX_FLAG_HEADER, "true" });
      } catch (Exception e) {
        log
            .error(Messages
                .getMessage(Messages.DETECTING_ENCODING_DISABLED_ERROR));
        log.error(Messages.getMessage(
            Messages.OBTAIN_RESPONSE_SET_HEADER_ERROR, e));
      }
    }
    Map responseDataMap = ajaxContext.getResponseDataMap();
    // Get data serializer instance
    AJAXDataSerializer serializer = (AJAXDataSerializer) ServicesUtils
        .getServiceInstance(AJAXDataSerializer.SERVICE);
    // Put data to JavaScript handlers, inside <span> elements.
    for (Iterator dataIterator = responseDataMap.keySet().iterator(); dataIterator
        .hasNext();) {
      Object dataKey = dataIterator.next();
      out.startElement(HTML.SPAN_ELEM, component);
      out.writeAttribute(HTML.id_ATTRIBUTE, dataKey, null);
      String dataString = serializer.asString(responseDataMap
          .get(dataKey));
      out.write(dataString);
      out.endElement(HTML.SPAN_ELEM);
    }
    // Include active 'oncomplete' function content :
    Object oncomplete = ajaxContext.getOncomplete();
    if(null != oncomplete){
      out.startElement(HTML.SPAN_ELEM, component);
      out.writeAttribute(HTML.id_ATTRIBUTE, ONCOMPLETE_CONTENT_ID, null);
      out.writeText(oncomplete,null);
      out.endElement(HTML.SPAN_ELEM);     
View Full Code Here

TOP

Related Classes of org.ajax4jsf.context.AjaxContext

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.