Package javax.faces.component

Examples of javax.faces.component.UIColumn


     */
    protected boolean hasFacet(boolean header, UIComponent uiComponent)
    {
        if (uiComponent instanceof UIColumn)
        {
            UIColumn uiColumn = (UIColumn) uiComponent;
            return header ? uiColumn.getHeader() != null : uiColumn.getFooter() != null;
        }
        return false;
    }
View Full Code Here


            {
                //This code corrects MYFACES-1790, because HtmlColumnTag
                //has as component type javax.faces.Column, so as side
                //effect it not create HtmlColumn, it create UIColumn
                //classes.
                UIColumn column = (UIColumn) uiComponent;               
                if (isHeader)
                {
                    String headerClass = (String) column.getAttributes().get("headerClass");
                    if (headerClass != null)
                    {
                        styleClass = (String) headerClass;
                    }
                }
                else
                {
                    String footerClass = (String) column.getAttributes().get("footerClass");
                    if (footerClass != null)
                    {
                        styleClass = (String) footerClass;
                    }
                }
View Full Code Here

  public void perform(SortActionEvent sortEvent) {
    if (LOG.isDebugEnabled()) {
      LOG.debug("sorterId = {}", sortEvent.getComponent().getId());
    }
    UIColumn column = sortEvent.getColumn();
    AbstractUISheet data = (AbstractUISheet) sortEvent.getComponent();

    Object value = data.getValue();
    if (value instanceof DataModel) {
      value = ((DataModel) value).getWrappedData();
    }
    FacesContext facesContext = FacesContext.getCurrentInstance();
    SheetState sheetState = data.getSheetState(facesContext);

    Comparator actualComparator = null;

    if (value instanceof List || value instanceof Object[]) {
      String sortProperty;

      try {

        UIComponent child = getFirstSortableChild(column.getChildren());
        if (child != null) {

          String attributeName = child instanceof AbstractUICommand ? Attributes.LABEL:Attributes.VALUE;
          if (FacesUtils.hasValueBindingOrValueExpression(child, attributeName)) {
            String var = data.getVar();
View Full Code Here

        for (Iterator iter = getChildren().iterator(); iter.hasNext();)
        {
            UIComponent component = (UIComponent) iter.next();
            if (component instanceof UIColumn)
            {
                UIColumn aColumn = (UIColumn) component;
                UIComponent headerFacet = aColumn.getHeader();

                boolean replaceHeaderFacets = isSortable(); //if the table is sortable, all
                //header facets can be changed if needed
                String columnName = null;
                String propertyName = null;
                boolean defaultSorted = false;

                if (aColumn instanceof HtmlSimpleColumn)
                {
                    HtmlSimpleColumn asColumn = (HtmlSimpleColumn) aColumn;
                    propertyName = asColumn.getSortPropertyName();
                    defaultSorted = asColumn.isDefaultSorted();

                    if (asColumn.isSortable())
                        replaceHeaderFacets = true;
                }

                //replace header facet with a sortable header component if needed
                if (replaceHeaderFacets && isSortHeaderNeeded(aColumn, headerFacet))
                {
                    propertyName = propertyName != null ? propertyName : getSortPropertyFromEL(aColumn);
                    if (propertyName == null)
                        log.warn("Couldn't determine sort property for column [" + aColumn.getId() + "].");

                    if (headerFacet instanceof UIPanel)
                    {
                        // In jsf 2.0, facets allow more than one component. That causes a side effect on
                        // facelets mode when auto wrapping is used, because the algorithm is not aware
                        // we wrap everything inside a HtmlCommandSortHeader. We have to check
                        // here that condition and if so, fix it and threat it correctly.
                        HtmlCommandSortHeader sortHeader = null;
                        for (UIComponent childHeaderFacet : headerFacet.getChildren())
                        {
                            if (childHeaderFacet instanceof HtmlCommandSortHeader)
                            {
                                sortHeader = (HtmlCommandSortHeader) childHeaderFacet;
                                break;
                            }
                        }
                        if (sortHeader != null)
                        {
                            aColumn.getFacets().remove("header");
                            aColumn.setHeader(sortHeader);
                            headerFacet = sortHeader;
                           
                            //command sort headers are already in place, just store the column name and sort property name
                            columnName = sortHeader.getColumnName();
                            propertyName = sortHeader.getPropertyName();

                            //if the command sort header component doesn't specify a sort property, determine it
                            if (propertyName == null)
                            {
                                propertyName = getSortPropertyFromEL(aColumn);
                                sortHeader.setPropertyName(propertyName);
                            }

                            if (propertyName == null)
                                log.warn("Couldn't determine sort property for column [" + aColumn.getId() + "].");                           
                        }
                    }
                    if (headerFacet != null && isSortHeaderNeeded(aColumn, headerFacet))
                    {
                        // We need to force PreRemoveFromViewEvent on the wrapped facet, so we remove it manually here.
                        // Otherwise the component is just moved on the view and no event is triggered.
                        aColumn.getFacets().remove("header");
                       
                        HtmlCommandSortHeader sortHeader = createSortHeaderComponent(context, aColumn, headerFacet, propertyName);
                        columnName = sortHeader.getColumnName();

                        aColumn.setHeader(sortHeader);
                        //setParent is called internally!
                        //sortHeader.setParent(aColumn);
                    }
                }
                else if (headerFacet instanceof HtmlCommandSortHeader)
                {
                    //command sort headers are already in place, just store the column name and sort property name
                    HtmlCommandSortHeader sortHeader = (HtmlCommandSortHeader) headerFacet;
                    columnName = sortHeader.getColumnName();
                    propertyName = sortHeader.getPropertyName();

                    //if the command sort header component doesn't specify a sort property, determine it
                    if (propertyName == null)
                    {
                        propertyName = getSortPropertyFromEL(aColumn);
                        sortHeader.setPropertyName(propertyName);
                    }

                    if (propertyName == null)
                        log.warn("Couldn't determine sort property for column [" + aColumn.getId() + "].");
                }

                //make the column marked as default sorted be the current sorted column
                //When getSortColumn() eval to a ValueExpression and it is a String, it could return
                //null but here it is coerced to "", so we need to assume "" as null.
View Full Code Here

    this.first = first;
  }

  public void updateSortState(SortActionEvent sortEvent) {

    UIColumn actualColumn = sortEvent.getColumn();

    if (actualColumn.getId().equals(sortedColumnId)) {
      ascending = !ascending;
    } else {
      ascending = true;
      sortedColumnId = actualColumn.getId();
    }
  }
View Full Code Here

  }

  private static void addColumnHeaders(HSSFSheet sheet, List<UIColumn> columns, FacesContext context) {
    HSSFRow rowHeader = sheet.createRow(0);
    for (int i = 0; i < columns.size(); i++) {
      UIColumn column = columns.get(i);
      addColumnValue(rowHeader, column, i, context);
    }
  }
View Full Code Here

  }

  private static void addRow(HSSFSheet sheet, int index, List<UIColumn> columns, FacesContext context) {
    HSSFRow row = sheet.createRow(1 + index);
    for (int j = 0; j < columns.size(); j++) {
      UIColumn column = columns.get(j);
      addColumnValue(row, (UIComponent) column.getChildren().get(0), j, context);
    }
  }
View Full Code Here

      LayoutTokens tokens = getColumnLayout();
      List<UIColumn> allColumns = getAllColumns();
      LayoutTokens newTokens = new LayoutTokens();
      if (allColumns.size() > 0) {
        for (int i = 0; i < allColumns.size(); i++) {
          UIColumn column = allColumns.get(i);
          if (column.isRendered()) {
            if (tokens == null) {
              if (column instanceof org.apache.myfaces.tobago.component.UIColumn) {
                newTokens.addToken(
                    LayoutTokens.parseToken(((org.apache.myfaces.tobago.component.UIColumn) column).getWidth()));
              } else {
View Full Code Here

      LayoutToken token = tokens.get(i);
      if (token instanceof FixedLayoutToken) {
        int width = 0;
        if (!rendereredColumns.isEmpty()) {
          if (i < rendereredColumns.size()) {
            UIColumn column = rendereredColumns.get(i);
            if (column instanceof UIColumnSelector) {
              LayoutInformationProvider renderer
                  = ComponentUtil.getRenderer(facesContext, column);
              if (renderer == null) {
                LOG.warn("can't find renderer for " + column.getClass().getName());
                renderer = ComponentUtil.getRenderer(facesContext, UIPanel.COMPONENT_FAMILY, RENDERER_TYPE_OUT);
              }
              width = renderer.getFixedWidth(facesContext, column);

            } else {
              for (UIComponent component : (List<UIComponent>) column.getChildren()) {
                LayoutInformationProvider renderer
                    = ComponentUtil.getRenderer(facesContext, component);
                width += renderer.getFixedWidth(facesContext, component);
              }
            }
View Full Code Here

    this.first = first;
  }

  public void updateSortState(SortActionEvent sortEvent) {

    UIColumn actualColumn = sortEvent.getColumn();

    if (actualColumn.getId().equals(sortedColumnId)) {
      ascending = !ascending;
    } else {
      ascending = true;
      sortedColumnId = actualColumn.getId();
    }
  }
View Full Code Here

TOP

Related Classes of javax.faces.component.UIColumn

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.