UserParametersCollection.java :  » Report » jmagallanes-1.0 » com » calipso » reportgenerator » userinterface » Java Open Source

Java Open Source » Report » jmagallanes 1.0 
jmagallanes 1.0 » com » calipso » reportgenerator » userinterface » UserParametersCollection.java
package com.calipso.reportgenerator.userinterface;

import com.calipso.reportgenerator.reportdefinitions.types.FilterDefinitionFilterTypeType;
import com.calipso.reportgenerator.common.LanguageTraslator;
import com.calipso.reportgenerator.common.ReportSpec;
import com.calipso.reportgenerator.common.ReportFilterSpec;

import java.util.*;

/**
 * Representa la coleccion de elementos editables
 */

public class UserParametersCollection {

  private static final int FROM_TO = 0;
  private static final int FROM_QUANTITY = 1;
  private static final int VALUE = 2;

  private ReportSpec reportSpec;
  private Vector userParametersCollection;

  /**
   * Inicializa una instancia de UserParametersCollection
   * @param reportSpec Es necesario para la creacion de la coleccion
   */
  public UserParametersCollection(ReportSpec reportSpec){
    this.reportSpec = reportSpec;
  }

  /**
   * Llena un vector segun los parametros editables, que contiene objetos de tipo
   * UserPameterElement
   */
  private void fillVisibleFilterDefinitionsVector(){
    Collection filterCol = reportSpec.getEditFilterSpecs();
    for(Iterator filterColIterator = filterCol.iterator() ; filterColIterator.hasNext() ; ){
      ReportFilterSpec filterDefinition = (ReportFilterSpec) filterColIterator.next();
      if(filterDefinition.getVisual()){
        switch(filterDefinition.getFilterType().getType()){
          case FilterDefinitionFilterTypeType.RANGE_TYPE:
            userParametersCollection.add(initializeElement(FROM_TO, filterDefinition));
            break;
          case FilterDefinitionFilterTypeType.EQUALTO_TYPE:
            userParametersCollection.add(initializeElement(VALUE, filterDefinition));
            break;
          case FilterDefinitionFilterTypeType.GREATERTHAN_TYPE:
            userParametersCollection.add(initializeElement(VALUE, filterDefinition));
            break;
          case FilterDefinitionFilterTypeType.LESSTHAN_TYPE:
            userParametersCollection.add(initializeElement(VALUE, filterDefinition));
            break;
          case FilterDefinitionFilterTypeType.BEGINWITH_TYPE:
            userParametersCollection.add(initializeElement(VALUE, filterDefinition));
            break;
          case FilterDefinitionFilterTypeType.ENDWITH_TYPE:
            userParametersCollection.add(initializeElement(VALUE, filterDefinition));
            break;
          case FilterDefinitionFilterTypeType.RANKING_TYPE:
            userParametersCollection.add(initializeElement(VALUE, filterDefinition));
            break; //TODO este sector nunca es utilizado
        }
      }
    }
  }

  /**
   * Genera y devuelve un UserParameterElement dependiendo del tipo
   * @param type indica si es Range, Top, o value
   * @param filterDefinition FilterDefinition necesario para generar el UserParameterElement
   * @return UserParameterElement recientemente creado
   */
  private UserParameterElement initializeElement(int type, ReportFilterSpec filterDefinition){
    Hashtable values = new Hashtable();
    Vector keysOrder = new Vector();
    UserParameterElement userParameterElement = null;
    String description = reportSpec.getDimensionFromName(filterDefinition.getDimensionName()).getCaption();
    String filterDefinitionName = filterDefinition.getName();
    switch(type){
      case FROM_TO:
        keysOrder.add(LanguageTraslator.traslate("146"));
        keysOrder.add(LanguageTraslator.traslate("147"));
        values.put(LanguageTraslator.traslate("146"), reportSpec.getParamValues(false).get(filterDefinition.getName()+"FROM").toString());
        values.put(LanguageTraslator.traslate("147"), reportSpec.getParamValues(false).get(filterDefinition.getName()+"TO").toString());
        userParameterElement = new UserParameterElement(description, values, keysOrder, filterDefinitionName, filterDefinition.getDimensionName(), reportSpec);
        break;
      case FROM_QUANTITY:
        keysOrder.add(LanguageTraslator.traslate("146"));
        keysOrder.add(LanguageTraslator.traslate("149"));
        values.put(LanguageTraslator.traslate("146"), reportSpec.getParamValues(false).get(filterDefinition.getName()+"FROM").toString());
        values.put(LanguageTraslator.traslate("149"), reportSpec.getParamValues(false).get(filterDefinition.getName()+"QUANTITY").toString());
        userParameterElement = new UserParameterElement(description, values, keysOrder, filterDefinitionName, filterDefinition.getDimensionName(), reportSpec);
        break;
      case VALUE:
        keysOrder.add(LanguageTraslator.traslate("150"));
        values.put(LanguageTraslator.traslate("150"), reportSpec.getParamValues(false).get(filterDefinition.getName()+"VALUE").toString());
        userParameterElement = new UserParameterElement(description, values, keysOrder, filterDefinitionName, filterDefinition.getDimensionName(), reportSpec);
        break;
    }
    return userParameterElement;
  }

  /**
   * Crea un Vector y lo inicializa con los UserParameterElement determinados
   * @return
   */
  public Vector getUserParametersCollection(){
    if(userParametersCollection == null){
      userParametersCollection = new Vector();
      fillVisibleFilterDefinitionsVector();
    }
    return userParametersCollection;
  }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.