Package org.araneaframework.uilib.list.structure

Source Code of org.araneaframework.uilib.list.structure.BaseListStructure$ViewModel

/**
* Copyright 2006 Webmedia Group Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*  http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
**/

package org.araneaframework.uilib.list.structure;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import org.apache.log4j.Logger;
import org.araneaframework.uilib.list.structure.order.MultiColumnOrder;

public class BaseListStructure implements Serializable {

  private static final long serialVersionUID = 1L;

  private static final Logger log = Logger.getLogger(BaseListStructure.class);

  /**
   * Map of ($link ListColumn)s where the column Ids are the keys and columns
   * are the values.
   */
  protected Map columns = new HashMap();

  /**
   * List of ($link ListColumn)s.
   */
  protected List columnList = new ArrayList();

  /**
   * (@link ListOrder) information.
   */
  protected ListOrder order;

  /**
   * (@link ListFilter) information.
   */
  protected ListFilter filter;

  /**
   * Returns {@link ListColumn}s.
   *
   * @return {@link ListColumn}s.
   */
  public Map getColumns() {
    return this.columns;
  }

  /**
   * Returns {@link ListColumn}s.
   *
   * @return {@link ListColumn}s.
   */
  public List getColumnsList() {
    return this.columnList;
  }

  /**
   * Returns {@link ListColumn}.
   *
   * @param id
   *            {@link ListColumn}identifier.
   * @return {@link ListColumn}.
   */
  public ListColumn getColumn(String id) {
    return (ListColumn) this.columns.get(id);
  }

  /**
   * Adds a {@link ListColumnInterface}.
   *
   * @param column
   *            {@link ListColumnInterface}.
   */
  public void addColumn(ListColumn column) {
    this.columns.put(column.getId(), column);
    this.columnList.add(column);
  }

  /**
   * Clears the {@link ListColumnInterface}s
   */
  public void clearColumns() {
    this.columns = new HashMap();
    this.columnList = new ArrayList();
  }
 
  /**
   * Returns the (@link ListOrder).
   *
   * @return the (@link ListOrder).
   */
  public ListOrder getListOrder() {
    return this.order;
  }

  /**
   * Saves the (@link ListOrder).
   *
   * @param filter
   *            the (@link ListOrder).
   */
  public void setListOrder(ListOrder order) {
    this.order = order;
  }

  /**
   * Returns the (@link ListFilter).
   *
   * @return the (@link ListFilter).
   */
  public ListFilter getListFilter() {
    return this.filter;
  }

  /**
   * Saves the (@link ListFilter).
   *
   * @param filter
   *            the (@link ListFilter).
   */
  public void setListFilter(ListFilter filter) {
    this.filter = filter;
  }

  /**
   * Returns view model.
   *
   * @return view model.
   */
  public ViewModel getViewModel() {
    log.debug("Getting ListStructure.ViewModel");
    return new ViewModel();
  }

  /**
   * View Model.
   *
   * @author <a href="mailto:ekabanov@webmedia.ee">Jevgeni Kabanov</a>
   */
  public class ViewModel implements Serializable {

    private static final long serialVersionUID = 1L;

    protected Map columns = new HashMap();
    protected List columnList = new ArrayList();
    protected Map columnOrders = new HashMap();

    /**
     * Takes a snapshot of outer class state.
     */
    protected ViewModel() {
      log.debug("Constructing ListStructure.ViewModel");
      MultiColumnOrder multiOrder = getListOrder() instanceof MultiColumnOrder ? (MultiColumnOrder) getListOrder()
          : null;
      if (multiOrder == null) {
        log.debug("MultiColumnOrder not found");
      }

      for (Iterator i = BaseListStructure.this.columnList.iterator(); i
          .hasNext();) {
        ListColumn.ViewModel currentColumn = ((ListColumn) i
            .next()).getViewModel();
        boolean isOrdered = multiOrder != null
            && multiOrder.isColumnOrdered(currentColumn.getId());

        this.columnList.add(currentColumn);
        this.columns.put(currentColumn.getId(), currentColumn);
        this.columnOrders.put(currentColumn.getId(), new Boolean(
            isOrdered));
      }
    }

    /**
     * @return Returns the columnList.
     */
    public List getColumnList() {
      return this.columnList;
    }

    /**
     * @return Returns the columns.
     */
    public Map getColumns() {
      return this.columns;
    }

    /**
     * Returns <code>true</code> if the column can be ordered.
     *
     * @param column
     *            the column name.
     * @return Returns <code>true</code> if the column can be ordered.
     */
    public boolean isColumnOrdered(String column) {
      return ((Boolean) this.columnOrders.get(column)).booleanValue();
    }
  }
}
TOP

Related Classes of org.araneaframework.uilib.list.structure.BaseListStructure$ViewModel

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.