예제 #1
0
  @Override
  public View getView(int position, View convertView, ViewGroup parent) {
    View row = convertView;
    RowHolder holder = null;

    if (row == null) {
      LayoutInflater inflater = ((Activity) activity).getLayoutInflater();
      row = inflater.inflate(layoutResourceId, parent, false);

      holder = new RowHolder();
      holder.imgIcon = (ImageView) row.findViewById(R.id.imgIcon);
      holder.txtTitle = (TextView) row.findViewById(R.id.txtTitle);
      holder.imgIcon.setOnClickListener(
          new BookmarkListener(row, data, position, activity, this.listfragment));

      row.setTag(holder);
    } else {
      holder = (RowHolder) row.getTag();
    }

    ParsedRow rowItem = data.get(position);
    holder.txtTitle.setText(rowItem.getTitle());
    holder.imgIcon.setImageResource(rowItem.getIcon());

    return row;
  }
  public void encodeRow(ResponseWriter writer, FacesContext facesContext, RowHolderBase holder)
      throws IOException {
    RowHolder rowHolder = (RowHolder) holder;
    Row row = rowHolder.getRow();
    putRowStylesIntoContext(facesContext, rowHolder);
    rowHolder.setRowStart(true);
    Iterator<UIComponent> components = row.columns();
    if (rowHolder.isUpdatePartial()) {
      partialStart(
          facesContext,
          ((AbstractCollapsibleSubTable) row).getRelativeClientId(facesContext) + ":b");
    }

    int columnNumber = 0;
    while (components.hasNext()) {
      UIComponent component = components.next();
      if (component.isRendered()) {
        if (component instanceof UIColumn) {
          component.getAttributes().put(COLUMN_CLASS, getColumnClass(rowHolder, columnNumber));
          encodeColumn(facesContext, writer, (UIColumn) component, rowHolder);
          columnNumber++;
        } else if (component instanceof AbstractCollapsibleSubTable) {
          if (component.isRendered()) {
            encodeRowEnd(writer);
          }

          component.encodeAll(facesContext);
          rowHolder.setRowStart(true);
        }
      }
    }

    encodeRowEnd(writer);

    if (rowHolder.isUpdatePartial()) {
      partialEnd(facesContext);
    }
  }