Package org.richfaces.component

Examples of org.richfaces.component.UIScrollableDataTable


 
  @Override
  public void encodeBegin(FacesContext context, UIComponent component) throws IOException {
   
    if(component instanceof UIScrollableDataTable){
      UIScrollableDataTable grid = (UIScrollableDataTable)component;
      setUpState(context, grid);
    }
   
    if(!onlyPartialUpdateNeeded(component)){
      super.encodeBegin(context, component);
View Full Code Here


 
  @Override
  public void encodeEnd(FacesContext context, UIComponent component) throws IOException {
   
    if(component instanceof UIScrollableDataTable){
      UIScrollableDataTable table = (UIScrollableDataTable)component;
      if(!onlyPartialUpdateNeeded(table)){
        Object rowKey = table.getRowKey();
        table.setRowKey(context, null);
        super.encodeEnd(context, table);
        table.setRowKey(context, rowKey);
     
     
      component.getAttributes().remove(PARTIAL_UPDATE);
      component.getAttributes().remove(UPDATE_HEADER);
    }
View Full Code Here

    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);
         
View Full Code Here

   
  }
 
  public void renderAjaxChildren(FacesContext context, UIComponent component)throws IOException{
   
    UIScrollableDataTable grid = (UIScrollableDataTable)component;
   
   
   
    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);
View Full Code Here

  }

  public void decode(FacesContext context, UIComponent component,
      CompositeRenderer compositeRenderer) {
   
    final UIScrollableDataTable grid = (UIScrollableDataTable) component;
   
    if (grid.isSelectionEnabled()) {
      ExternalContext externalContext = context.getExternalContext();
      Map<String, String> requestParamMap = externalContext
          .getRequestParameterMap();
      Application application = context.getApplication();
      String id = getSelectionInputName(context, grid);
      String value = (String) requestParamMap.get(id);
      Converter converter = application
          .createConverter(ClientSelection.class);
      ClientSelection _oldClientSelection = (ClientSelection) grid
          .getAttributes().get(CLIENT_SELECTION);
      final ClientSelection oldClientSelection = _oldClientSelection == null ? new ClientSelection()
          : _oldClientSelection;
      final ClientSelection clientSelection = (ClientSelection) converter
          .getAsObject(context, grid, value);
      final ScrollableDataTableRendererState state = ScrollableDataTableRendererState
          .createState(context, grid);
      state.setRowIndex(ScrollableDataTableUtils.getClientRowIndex(grid));
      final SimpleSelection simpleSelection = grid.getSelection() == null ? new SimpleSelection()
          : (SimpleSelection) grid.getSelection();
      if (clientSelection.isReset() || clientSelection.isSelectAll()) {
        simpleSelection.clear();
        simpleSelection.setSelectAll(clientSelection.isSelectAll());
      }
      try {
        grid.walk(context, new DataVisitor() {
          public void process(FacesContext context, Object rowKey,
              Object argument) throws IOException {

            int i = state.getRowIndex();

            if (shouldAddToSelection(i, oldClientSelection,
                clientSelection)) {

              simpleSelection.addKey(rowKey);

            } else if (shouldRemoveFromSelection(i,
                oldClientSelection, clientSelection)) {

              simpleSelection.removeKey(rowKey);

            }

            if (i == clientSelection.getActiveRowIndex()) {
              grid.setActiveRowKey(rowKey);
            }
            state.nextRow();

          }
        }, state);
      } catch (IOException e) {
        throw new FacesException(e);
      }
      grid.setSelection(simpleSelection);
      ValueExpression selectionBinding = grid
          .getValueExpression("selection");
      if (selectionBinding != null) {
        selectionBinding.setValue(context.getELContext(),
            simpleSelection);
      }
View Full Code Here

    return null;
  }

  public ScriptOptions buildOptions(FacesContext context,
      UIComponent component) {
    UIScrollableDataTable table = (UIScrollableDataTable) component;
    ScriptOptions scriptOptions = new ScriptOptions(component);
    if (table.isSelectionEnabled()) {
      scriptOptions.addOption("selectionInput", getSelectionInputName(
          context, table));
      Map<String, Object> attributes = component.getAttributes();
      Object attribut = attributes.get("selectedClass");
      if (attribut == null) {
        attribut = "";
      }
      scriptOptions.addOption("selectedClass", attribut);
      attribut = attributes.get("activeClass");
      if (attribut == null) {
        attribut = "";
      }
      scriptOptions.addOption("activeClass", attribut);
      scriptOptions.addOption("selectionMode", table.getSelectionMode());
    }
    return scriptOptions;
  }
View Full Code Here

 
 
  public void encode(FacesContext context, UIComponent component)
      throws IOException {
   
    UIScrollableDataTable grid = (UIScrollableDataTable) component;
   
    if (grid.isSelectionEnabled()) {
      encodeSelection(context, grid);
      writeSelection(context, grid);
    }
  }
View Full Code Here

  }

  public void decode(FacesContext context, UIComponent component,
      CompositeRenderer compositeRenderer) {
   
    final UIScrollableDataTable grid = (UIScrollableDataTable) component;
   
    ExternalContext externalContext = context.getExternalContext();
    Map<String, String> requestParamMap = externalContext.getRequestParameterMap();
    Application application = context.getApplication();
   
    String id = getSelectionInputName(context, grid);
   
    String value = (String) requestParamMap.get(id);
   
    Converter converter = application.createConverter(ClientSelection.class);
   
    ClientSelection _oldClientSelection =
      (ClientSelection) grid.getAttributes().get(CLIENT_SELECTION);
   
    final ClientSelection oldClientSelection =
      _oldClientSelection == null ?
          new ClientSelection() :
            _oldClientSelection;
   
    final ClientSelection clientSelection =
      (ClientSelection) converter.getAsObject(context, grid, value);

   
   
   
    final ScrollableDataTableRendererState state =
      ScrollableDataTableRendererState.createState(context, grid);
   
    state.setRowIndex(ScrollableDataTableUtils.getClientRowIndex(grid));
   
    final SimpleSelection simpleSelection = grid.getSelection() == null ? new SimpleSelection()
        : (SimpleSelection) grid.getSelection();

   
   
    if (clientSelection.isReset() || clientSelection.isSelectAll()) {
      simpleSelection.clear();
      simpleSelection.setSelectAll(clientSelection.isSelectAll());
    }
   
    try {
      grid.walk(context,
          new DataVisitor() {
            public void process(FacesContext context, Object rowKey,
                Object argument) throws IOException {
           
              int i = state.getRowIndex();
             
              if (shouldAddToSelection(i, oldClientSelection, clientSelection)) {
               
                simpleSelection.addKey(rowKey);
             
              } else if (shouldRemoveFromSelection(i, oldClientSelection, clientSelection)){
               
                simpleSelection.removeKey(rowKey);
             
              }
             
              if(i == clientSelection.getActiveRowIndex()) {
                grid.setActiveRowKey(rowKey);
              }
              state.nextRow();
             
            }
          },
        state);
    } catch(IOException e) {
      throw new FacesException(e);
    }
   
    grid.setSelection(simpleSelection);
   
    ValueExpression selectionBinding = grid.getValueExpression("selection");
    if (selectionBinding != null) {
      selectionBinding.setValue(context.getELContext(), simpleSelection);
    }
   
    ScrollableDataTableRendererState.restoreState(context);
View Full Code Here

 
 
  public void encode(FacesContext context, UIComponent component)
      throws IOException {
   
    UIScrollableDataTable grid = (UIScrollableDataTable) component;
   
    encodeSelection(context, grid);
    writeSelection(context, grid);
  }
View Full Code Here

    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();
      if(parameters.containsKey(s_id)){
        String options = (String)parameters.get(s_id);
        grid.setScrollPos(options);
        if(options.length() > 0){
          String[] si = options.split(",");
          grid.setFirst(Integer.parseInt(si[1]));
          component.getAttributes().put(ScrollableDataTableUtils.CLIENT_ROW_KEY, Integer.parseInt(si[3]));     
        }
      }
         
      composite.decode(context, component);
     
      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);
         
View Full Code Here

TOP

Related Classes of org.richfaces.component.UIScrollableDataTable

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.