/** Initialize the page. Set up listeners and perform other initialization activities. */
  public void initialize() throws Exception {
    super.initialize();

    _buscarBUT = new HtmlSubmitButton("buscarBUT", "Buscar", this);
    _buscarBUT.setAccessKey("b");
    _buscarBUT.addSubmitListener(this);
    _searchformdisplaybox1.addButton(_buscarBUT);

    _limpiarBUT = new HtmlSubmitButton("limpiarBUT", "Limpiar", this);
    _limpiarBUT.setAccessKey("b");
    _limpiarBUT.addSubmitListener(this);
    _searchformdisplaybox1.addButton(_limpiarBUT);

    // Obtiene operadores
    _operador.addOption(String.valueOf(BusquedaPorAtributo.OPERATOR_AND), "And");
    _operador.addOption(String.valueOf(BusquedaPorAtributo.OPERATOR_OR), "Or");

    // Test the import process
    _replicaFromTangoBUT =
        new HtmlSubmitButton("replicaFromTangoBUT", "Replicar desde Tango", this);
    _replicaFromTangoBUT.addSubmitListener(this);
    _searchformdisplaybox1.addButton(_replicaFromTangoBUT);

    _replicaProveedores = new HtmlSubmitButton("_replicaProveedores", "Importar proveedores", this);
    _replicaProveedores.addSubmitListener(this);
    _searchformdisplaybox1.addButton(_replicaProveedores);

    // do not retrieve disallowed items
    _dsQBE.addCriteria("anulado", QBEBuilder.CRITERIA_TYPE_NOT_EQUALS, "articulos.anulado");
    _dsQBE.setString("anulado", "V");
  }
  /**
   * Initialize the page. Set up listeners and perform other initialization activities.
   *
   * @throws Exception
   */
  public void initialize() throws Exception {
    super.initialize();

    // genera botones custom
    _grabarParteBUT3 = new HtmlSubmitButton("grabarParteBUT3", "Grabar", this);
    _grabarParteBUT3.setAccessKey("G");
    _listFormDisplayBox1.addButton(_grabarParteBUT3);

    _nuevoParteCopiarBUT1 = new HtmlSubmitButton("nuevoParteCopiarBUT1", "Copiar Parte", this);
    _nuevoParteCopiarBUT1.setAccessKey("G");
    _listFormDisplayBox1.addButton(_nuevoParteCopiarBUT1);
    _nuevoParteNuevoBUT2 = new HtmlSubmitButton("nuevoParteNuevoBUT2", "Nuevo Parte", this);
    _nuevoParteNuevoBUT2.setAccessKey("N");
    _listFormDisplayBox1.addButton(_nuevoParteNuevoBUT2);

    _eliminaParteBUT4 = new HtmlSubmitButton("eliminaParteBUT4", "Eliminar", this);
    _eliminaParteBUT4.setAccessKey("E");
    _listFormDisplayBox1.addButton(_eliminaParteBUT4);

    _refrescarBUT5 = new HtmlSubmitButton("refrescarBUT5", "Recargar", this);
    _refrescarBUT5.setAccessKey("R");
    _listFormDisplayBox1.addButton(_refrescarBUT5);

    // Agrega columna de seleccion al datasource de informes
    _dsPartes.addBucket(SELECCION_PARTE_FLAG, DataStore.DATATYPE_INT);
    _seleccionParte.setColumn(_dsPartes, SELECCION_PARTE_FLAG);
    _seleccionParte.setFalseValue(null);

    addPageListener(this);
    _nuevoBUT92.addSubmitListener(this);
    _nuevoBUT91.addSubmitListener(this);
    _menuBUT.addSubmitListener(this);
    _grabarParteBUT3.addSubmitListener(this);
    _nuevoParteCopiarBUT1.addSubmitListener(this);
    _nuevoParteNuevoBUT2.addSubmitListener(this);
    _eliminaParteBUT4.addSubmitListener(this);
    _refrescarBUT5.addSubmitListener(this);

    // Listener para validar fecha antes de ser enviada al DataStore
    _fechaTE3.addValueChangedListener(this);

    _dsPartes.setAutoValidate(true);

    // refresca la pantalla de partes
    refrescaPartes();

    // completa la poplist de categorías
    try {
      completaCategorias();
    } catch (DataStoreException e) {
      displayErrorMessage("Error cargando categorias: " + e.getMessage());
    }
  }
  @Override
  public void pageRequested(PageEvent p) throws Exception {
    int v_parte_id = -1;
    String v_grp_parte_id = null;

    // si la página es requerida por si misma no hago nada
    if (!isReferredByCurrentPage()) {

      // verifico si tiene parametro
      v_parte_id = getIntParameter("p_parte_id");
      v_grp_parte_id = getParameter("p_grp_parte_id");

      // Viene seteado el parte. lo recupero sino no se hace nada
      if (v_parte_id > 0) {
        // resetea todos los datasource
        _dsPartes.reset();

        // recupera toda la informacion del parte
        _dsPartes.retrieve("partes_mo.parte_id = " + Integer.toString(v_parte_id));
        _dsPartes.gotoFirst();
        _fechaTE3.setFocus(true);
      }
      // Varios partes
      else if (v_grp_parte_id != null) {
        if (v_grp_parte_id.trim().length() > 0) {
          // resetea todos los datasource
          _dsPartes.reset();

          // recupera toda la informacion del parte
          _dsPartes.retrieve("partes_mo.parte_id IN (" + v_grp_parte_id + ")");
          _dsPartes.gotoFirst();
          _fechaTE3.setFocus(true);
        }
      } else {
        refrescaPartes();
      }
    }

    super.pageRequested(p);
  }