Examples of AjaxContext


Examples of org.ajax4jsf.context.AjaxContext

  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<String> ids = ajaxContext.getAjaxAreasToRender();
    Set<String> renderedAreas = ajaxContext.getAjaxRenderedAreas();
    if (((AjaxContainer) component).isRenderRegionOnly()) {
      root = component;
    } else {
      root = context.getViewRoot();
    }
View Full Code Here

Examples of org.ajax4jsf.context.AjaxContext

    // TODO - make compatible with JSF RI/MyFaces ? use submittedValue ( if
    // any ) for UIInput, converted value for ValueHolder.
    controlName = clientId;
    controlValue = clientId;
    parameters.put(controlName, controlValue);
    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<UIComponent> it = uiComponent.getChildren().iterator(); it.hasNext();) {
      UIComponent child = it.next();
      if (child instanceof UIParameter) {
        String name = ((UIParameter) child).getName();
View Full Code Here

Examples of org.ajax4jsf.context.AjaxContext

   * @param component
   * @throws IOException
   */
  public static void encodeAreas(FacesContext context,
      UIComponent component) throws IOException {
    AjaxContext ajaxContext = AjaxContext.getCurrentInstance(context);
    ExternalContext externalContext = context.getExternalContext();
    Map<String, Object> requestMap = externalContext.getRequestMap();
    Set<String> 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<String> 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<String, Object> responseDataMap = ajaxContext.getResponseDataMap();
    // Get data serializer instance
    AJAXDataSerializer serializer = (AJAXDataSerializer) ServicesUtils
        .getServiceInstance(AJAXDataSerializer.SERVICE);
    // Put data to JavaScript handlers, inside <span> elements.
    for (Iterator<String> 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

Examples of org.ajax4jsf.context.AjaxContext

    processPhaseListeners(context, phase, true);
    // Process phase. Run callback method by invokeOnComponent for a
    // submitted region.
    if (!(null == callback || context.getRenderResponse() || context
        .getResponseComplete())) {
      AjaxContext ajaxContext = AjaxContext.getCurrentInstance(context);
      String submittedRegionClientId = ajaxContext
          .getSubmittedRegionClientId();
      // !submittedRegionClientId.equals(JS_NULL) - fix for myfaces 1.2.4 
      if (ajaxContext.isAjaxRequest() && submittedRegionClientId != null &&
              !submittedRegionClientId.equals(JS_NULL)
              && !submittedRegionClientId.equals(getClientId(context))) {
        invokeOnComponent(context, submittedRegionClientId, new InvokerCallbackWrapper(callback));
      } else {
        // For a root region, call invokeRoot method, then process all
        // facets and children by invoke method.
        try {
          callback.invokeRoot(context);
        } catch (RuntimeException e) {
          context.renderResponse();
          throw e;
        }
        String ajaxSingleClientId = ajaxContext.getAjaxSingleClientId();
        if (null == ajaxSingleClientId) {
          for (Iterator<UIComponent> iter = getFacetsAndChildren(); iter
              .hasNext();) {
            callback.invokeContextCallback(context, iter.next());
          }
        } else {
              InvokerCallback invokerCallback = new InvokerCallbackWrapper(callback);
          invokeOnComponent(context, ajaxSingleClientId, invokerCallback);
          Set<String> areasToProcess = ajaxContext.getAjaxAreasToProcess();
          if(null != areasToProcess){
            for (String areaId : areasToProcess) {
              invokeOnComponent(context, areaId, invokerCallback);
            }
          }
View Full Code Here

Examples of org.ajax4jsf.context.AjaxContext

   * (non-Javadoc)
   *
   * @see javax.faces.component.UIComponentBase#encodeChildren(javax.faces.context.FacesContext)
   */
  public void encodeChildren(FacesContext context) throws IOException {
    AjaxContext ajaxContext = AjaxContext.getCurrentInstance(context);
    if (ajaxContext.isAjaxRequest()) {
      String submittedRegionClientId = ajaxContext
          .getSubmittedRegionClientId();
      boolean invoked = false;
      if (submittedRegionClientId != null && !submittedRegionClientId.equals(JS_NULL) && !submittedRegionClientId.equals(getClientId(context))) {
        invoked = invokeOnComponent(context, submittedRegionClientId, _ajaxInvoker);
      }
View Full Code Here

Examples of org.ajax4jsf.context.AjaxContext

   *
   * @param context
   * @return
   */
  protected String getLogicalViewId(FacesContext context) {
    AjaxContext ajaxContext = AjaxContext.getCurrentInstance(context);
    ExternalContext externalContext = context.getExternalContext();
    Object id=null;
    Map<String, Object> requestMap = externalContext.getRequestMap();
    id = requestMap.get(ajaxContext.isAjaxRequest()?AJAX_VIEW_SEQUENCE:VIEW_SEQUENCE);
    if (null != id) {
      return id.toString();
    }
    // Store sequence in session, to avoyd claster configuration problem
    // see https://javaserverfaces.dev.java.net/issues/show_bug.cgi?id=662
View Full Code Here

Examples of org.ajax4jsf.context.AjaxContext

writer.endElement("div");
  {
    //Auto-generated block.
    //Add to ajax context list of element ids passed as *areas* param
    String [] _areas = (convertToString(variables.getVariable("client_id")) + ":hcb_" + convertToString(variables.getVariable("cell_index"))).split(",\" ");
    AjaxContext _ajaxContext = AjaxContext.getCurrentInstance(context);
    if (_ajaxContext.isAjaxRequest()) {
      for (int _i = 0; _i < _areas.length; _i++) {
        _ajaxContext.addRenderedArea(_areas[_i]);
      }
    }
  }


View Full Code Here

Examples of org.ajax4jsf.context.AjaxContext

  protected void doDecode(FacesContext context, UIComponent component) {
   
    super.doDecode(context, component);
   

    AjaxContext ajaxContext = AjaxContext.getCurrentInstance(context);
   
    if(component instanceof UIScrollableDataTable){
   
      UIScrollableDataTable grid = (UIScrollableDataTable)component;
      ExternalContext externalContext = context.getExternalContext();
      String clientId = grid.getClientId(context);
      boolean sorted = false
      Map<String, String> parameters = externalContext.getRequestParameterMap();
     
      String s_id = clientId + ":si";
      grid.resetReqRowsCount();
      String firstString = null;
      if(parameters.containsKey(s_id)){
        String options = (String)parameters.get(s_id);
        grid.setScrollPos(options);
        if(options.length() > 0){
          String[] si = options.split(",");
          firstString = si[1];
          if (si.length >= 5) {
            grid.setFirst(Integer.parseInt(si[4]));
          } else {
            grid.setFirst(Integer.parseInt(firstString));
          }
          component.getAttributes().put(ScrollableDataTableUtils.CLIENT_ROW_KEY, Integer.parseInt(si[3]));     
        }
      }
         
      composite.decode(context, component);
     
      if (firstString != null) {
        grid.setFirst(Integer.parseInt(firstString));
      }
     
      if(parameters.containsKey(clientId + ":sortColumn") &&
         parameters.containsKey(clientId + ":sortStartRow") &&
         parameters.containsKey(clientId + ":sortIndex")){
       
        String sortColumn = (String)parameters.get(clientId + ":sortColumn");
        int sortDataIndex = Integer.parseInt((String)parameters.get(clientId + ":sortIndex"));
        Integer sortStartRow = Integer.valueOf((String)parameters.get(clientId + ":sortStartRow"));
       
        String sortOrderString =
          (String) parameters.get(clientId + ":sortOrder");
       
        Boolean so = null;
       
        if (sortOrderString != null && sortOrderString.length() > 0 ) {
          sortOrderString = sortOrderString.toLowerCase();
         
          if (sortOrderString.startsWith("a")) {
            so = Boolean.TRUE;
          } else if (sortOrderString.startsWith("d")){
            so = Boolean.FALSE;
          }
        }
       
       
        UIComponent column = grid.findComponent(sortColumn);
       
        if(ColumnUtil.isSortable(column)){
     
          sorted = true;
          SortEvent sortEvent = new SortEvent(grid,sortColumn, grid.getRows(), sortDataIndex);
         
          sortEvent.setProposedOrder(so);
         
          sortEvent.setAttribute(ScrollableDataTableUtils.CLIENT_ROW_KEY,sortStartRow);
         
          if (ajaxContext.isAjaxRequest()) {
            sortEvent.setAttribute(PARTIAL_UPDATE, Boolean.TRUE);
            sortEvent.setAttribute(UPDATE_HEADER, Boolean.TRUE);
          }
         
         
          sortEvent.queue();
       
      }
     
     
      if(parameters.containsKey(clientId + ":scroll") && !sorted){
         
        String submitedState = (String)parameters.get(clientId + "_state_input");
        if (submitedState != null) {
          boolean isEmpty = true;
         
         
          String [] values = submitedState.split(",");
          for (int i = 0; i < values.length; i++) {
            isEmpty = isEmpty && values[i].equals("");
          }
         
          int rows = 0;
          int first = 0;
         
          if(!isEmpty){
            rows = Integer.parseInt(values[0]);
            first = Integer.parseInt(values[1]);
            ScrollEvent scrollEvent = new ScrollEvent(grid,rows,first);

            scrollEvent.setAttribute(ScrollableDataTableUtils.CLIENT_ROW_KEY,Integer.valueOf(values[2]));           
           
            if (ajaxContext.isAjaxRequest()) {
              scrollEvent.setAttribute(PARTIAL_UPDATE, Boolean.TRUE);
            }

            scrollEvent.queue();
           
View Full Code Here

Examples of org.ajax4jsf.context.AjaxContext

   
   
   
    ScrollableDataTableRendererState state = ScrollableDataTableRendererState.createState(context, grid);
       
    AjaxContext ajaxContext = AjaxContext.getCurrentInstance(context);
    String client_id = grid.getClientId(context);
   
    state.setClientId(client_id);
    state.setAjaxContext(ajaxContext);
    state.setRowIndex(ScrollableDataTableUtils.getClientRowIndex(grid));
   
    if (log.isDebugEnabled()) {
      log.debug("ScrollableDataTableBaseRenderer.renderAjaxChildren()");
    }
   
    grid.getResponseData().clear();
   
    ResponseWriter writer = context.getResponseWriter();
    writer.startElement("table", grid);
    writer.startElement("tbody", grid);
   
    grid.walk(context, ajaxRowsRenderer, state);
    int fakeRowsCount = grid.getRows() - grid.getRowCount();
    ScrollableDataTableRendererState.restoreState(context);
    grid.setRowKey(null);
    state.setFake(true);
    for (int i = 0; i < fakeRowsCount; i++) {
      ajaxRowsRenderer.process(context, null, state)
    }
   
    state.setFake(false);
   
    writer.endElement("tbody");
    writer.endElement("table");
    String id = client_id+"_rows_input";
    writer.startElement(HTML.INPUT_ELEM, grid);
    writer.writeAttribute(HTML.TYPE_ATTR, "hidden", null);
    writer.writeAttribute(HTML.id_ATTRIBUTE, id, null);
    writer.writeAttribute(HTML.NAME_ATTRIBUTE, id, null);
    writer.writeAttribute(HTML.value_ATTRIBUTE, grid.getRowCount(), null);
    writer.endElement(HTML.INPUT_ELEM);
    ajaxContext.addRenderedArea(id);

    renderHiddenScrollInput(context, grid);
    ajaxContext.addRenderedArea(client_id+":si");
   
    ajaxContext.setResponseData(grid.getResponseData());
   
    ajaxContext.getAjaxRenderedAreas().remove(grid.getClientId(context));
    ScrollableDataTableScrollData options = createOptions(grid);
    ajaxContext.getResponseDataMap().put("options", options);
   
    //Then call contributors to write additional HTML content
    contributorsEncodeHere(context, grid);
 
    if (shouldUpdateHeader(component)) {
View Full Code Here

Examples of org.ajax4jsf.context.AjaxContext

     */
    public void encodeChildren(final FacesContext context,
                               final UIComponent component)
            throws IOException {
        UISuggestionBox suggestionBox = (UISuggestionBox) component;
        AjaxContext ajaxContext = AjaxContext.getCurrentInstance(context);
        Set<String> ajaxRenderedAreas = ajaxContext.getAjaxRenderedAreas();
        String clientId = component.getClientId(context);
       
        if (suggestionBox.isSubmitted()) {
            body.encode(getTemplateContext(context, suggestionBox));
            // Replace rendered area ID from component to suggestion table
            suggestionBox.setRowIndex(-1);
            ajaxContext.removeRenderedArea(clientId);
            ajaxContext.addRenderedArea(getContentId(context, component));
        }
        else if (ajaxContext.isAjaxRequest() && ajaxRenderedAreas.contains(clientId))
        {
          ajaxRenderedAreas.add(clientId + "_script");
        }
    }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.