Package org.ajax4jsf.context

Examples of org.ajax4jsf.context.AjaxContext


  public void broadcast(FacesEvent event) throws AbortProcessingException {
    // TODO Auto-generated method stub
    if (event instanceof AjaxEvent) {
      FacesContext facesContext = FacesContext.getCurrentInstance();
      AjaxContext ajaxContext = AjaxContext
          .getCurrentInstance(facesContext);
      ajaxContext.addRegionsFromComponent(this);
      if (getPreload() != null) {
        ajaxContext.setResponseData(getPreload());
      }
    } else {
      if (event instanceof CurrentDateChangeEvent) {
        FacesContext facesContext = getFacesContext();
        CurrentDateChangeEvent dateChangeEvent = (CurrentDateChangeEvent) event;
View Full Code Here


   
  }
   
    public void reRenderScript(FacesContext context, UIComponent component) throws IOException {
     
      AjaxContext ajaxContext = AjaxContext.getCurrentInstance(context);
 
      Set <String> areas = ajaxContext.getAjaxRenderedAreas();
      String clientId = component.getClientId(context);
 
      if (ajaxContext.isAjaxRequest() && areas.contains(clientId)){
        areas.add(clientId + "script");
      }
     
    }
View Full Code Here

   * @param fileUpload
   */
  private void onUploadComplete(FacesContext context, List<UploadItem> fileList,
      UIFileUpload fileUpload, boolean formUpload) {
    storeData(context, fileUpload, fileList);
    AjaxContext ajaxContext = AjaxContext.getCurrentInstance(context);
    if ((Boolean)fileUpload.getAttributes().get(AjaxRendererUtils.AJAX_SINGLE_ATTR)) {
      ajaxContext.setAjaxSingleClientId(fileUpload.getClientId(context));
    }

    ajaxContext.setAjaxRequest(!formUpload);
  }
View Full Code Here

        UIParameter p = (UIParameter)child;
        parameters.put(p.getName(), p.getValue());
      }
    }
   
    AjaxContext ajaxContext = AjaxContext.getCurrentInstance(context);
    Map<String, Object> commonAjaxParameters = ajaxContext.getCommonAjaxParameters();
    if (commonAjaxParameters != null) {
      parameters.putAll(commonAjaxParameters);
    }
   
    return ((parameters.size() > 0) ? ScriptUtils.toScript(parameters) : JSReference.NULL);
View Full Code Here

    } else if (e instanceof UploadAjaxActionEvent) {
      UploadAjaxActionEvent uploadActionEvent = (UploadAjaxActionEvent) e;
      FacesContext facesContext = FacesContext.getCurrentInstance();
      ExternalContext externalContext = facesContext.getExternalContext();
     
      AjaxContext ajaxContext = AjaxContextImpl.getCurrentInstance(facesContext);
      String uid = uploadActionEvent.getUploadId();
      String actionString = uploadActionEvent.getAction();
     
      if ("progress".equals(actionString)) {
        setupProgressBarValueExpression(facesContext, uid);
        Map<String, Object> sessionMap = externalContext.getSessionMap();
        Map<String, Integer> requestsSizeMap = (Map<String, Integer>) sessionMap.get(FileUploadConstants.REQUEST_SIZE_BEAN_NAME);

        if (requestsSizeMap != null) {
          ajaxContext.setResponseData(requestsSizeMap.get(uid));
        } else {
          ajaxContext.setResponseData(null);
        }
      } else if (FileUploadConstants.FILE_UPLOAD_ACTION_STOP.equals(actionString)) {
        MultipartRequest multipartRequest = MultipartRequest.lookupRequest(facesContext, uid);
        if (multipartRequest != null) {
          multipartRequest.stop();
View Full Code Here

    // 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

   * @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

        // return function;
    }

    public void encodeTableMenu(FacesContext context, UIExtendedDataTable table)
            throws IOException {
        AjaxContext ajaxContext = AjaxContext.getCurrentInstance();
        Object key = table.getRowKey();
        table.setRowKey(null);
        TableMenuRenderer menuRenderer = new RichTableMenuRenderer();
        menuRenderer.setSortFunction(getSortFunction(context, table));
        menuRenderer.setGroupFunction(getGroupFunction(context, table));
        menuRenderer
                .setChangeColumnVisibilityFunction(getChangeColumnVisibilityFunction(
                        context, table));
        menuRenderer.setPrepareFunction(getPreSendAjaxRequestFunction(context,
                table));
        for (Iterator<UIColumn> colums = table.getSortedColumns(); colums
                .hasNext();) {
            UIColumn col = colums.next();
            if (col.isRendered()) {
        String menuId = menuRenderer.renderMenu(context, table, col);
        ajaxContext.addRenderedArea(menuId);
      }
        }// for
        table.setRowKey(key);
    }
View Full Code Here

  }

  public void addPopupToAjaxRendered(FacesContext context,
      UICalendar component) {

    AjaxContext ajaxContext = AjaxContext.getCurrentInstance(context);
    Set<String> ajaxRenderedAreas = ajaxContext.getAjaxRenderedAreas();
    String clientId = component.getClientId(context);

    if (ajaxContext.isAjaxRequest() && ajaxRenderedAreas.contains(clientId)) {
      ajaxRenderedAreas.add(clientId + "Popup");

      ajaxRenderedAreas.add(clientId + "IFrame");

      ajaxRenderedAreas.add(clientId + "Script");
View Full Code Here

    if (requestParameterMap.get(clientId + CURRENT_DATE_PRELOAD) != null) {
      // TODO nick - nick - queue this event when ValueChangeEvent is
      // queued?
      new AjaxEvent(component).queue();

      AjaxContext ajaxContext = AjaxContext.getCurrentInstance(context);
      if (ajaxContext.isAjaxRequest(context)) {
        ajaxContext.addAreasToProcessFromComponent(context, component);
      }
    }
   
    String selectedDateString = (String) requestParameterMap.get(clientId
        + "InputDate");
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.