Exemple #1
0
  public QueryResult sort(SortierKriterium[] sortierKriterien, Object selectedId)
      throws EJBExceptionLP {

    getQuery().setSortKrit(sortierKriterien);

    QueryResult result = null;
    int rowNumber = 0;

    if (selectedId != null) {
      SessionFactory factory = FLRSessionFactory.getFactory();
      Session session = null;

      try {
        session = factory.openSession();
        session = setFilter(session);
        String queryString = getFromClause() + buildWhereClause() + buildOrderByClause();

        Query query = session.createQuery(queryString);
        ScrollableResults scrollableResult = query.scroll();
        if (scrollableResult != null) {
          scrollableResult.beforeFirst();
          while (scrollableResult.next()) {
            FLRArtikelgruppe artikelgruppe = (FLRArtikelgruppe) scrollableResult.get(0);
            Integer iId = artikelgruppe.getI_id();
            if (selectedId.equals(iId)) {
              rowNumber = scrollableResult.getRowNumber();
              break;
            }
          }
        }
      } catch (Exception e) {
        throw new EJBExceptionLP(EJBExceptionLP.FEHLER_FLR, e);
      } finally {
        try {
          session.close();
        } catch (HibernateException he) {
          throw new EJBExceptionLP(EJBExceptionLP.FEHLER_FLR, he);
        }
      }
    }

    if (rowNumber < 0 || rowNumber >= this.getRowCount()) {
      rowNumber = 0;
    }

    result = this.getPageAt(new Integer(rowNumber));
    result.setIndexOfSelectedRow(rowNumber);

    return result;
  }
Exemple #2
0
  public QueryResult getPageAt(Integer rowIndex) throws EJBExceptionLP {

    QueryResult result = null;
    SessionFactory factory = FLRSessionFactory.getFactory();
    Session session = null;
    try {
      int colCount = getTableInfo().getColumnClasses().length;
      int pageSize = ArtikelgruHandler.PAGE_SIZE;
      int startIndex = Math.max(rowIndex.intValue() - (pageSize / 2), 0);
      int endIndex = startIndex + pageSize - 1;

      session = factory.openSession();
      String queryString =
          this.getFromClause() + this.buildWhereClause() + this.buildOrderByClause();

      Query query = session.createQuery(queryString);
      session = setFilter(session);

      query.setFirstResult(startIndex);
      query.setMaxResults(pageSize);
      List<?> resultList = query.list();
      Iterator<?> resultListIterator = resultList.iterator();

      Object[][] rows = new Object[resultList.size()][colCount];
      int row = 0;
      int col = 0;

      String sLocUI = Helper.locale2String(theClientDto.getLocUi());

      while (resultListIterator.hasNext()) {
        Object o[] = (Object[]) resultListIterator.next();
        FLRArtikelgruppe artikelgruppe = (FLRArtikelgruppe) o[0];
        Iterator<?> sprsetIterator = artikelgruppe.getArtikelgruppesprset().iterator();

        rows[row][col++] = artikelgruppe.getI_id();
        rows[row][col++] = artikelgruppe.getC_nr();
        rows[row][col++] = findSpr(sLocUI, sprsetIterator);

        rows[row][col++] =
            artikelgruppe.getFlrartikelgruppe() == null
                ? null
                : artikelgruppe.getFlrartikelgruppe().getC_nr();

        if (artikelgruppe.getFlrartikelgruppe() != null) {
          Iterator<?> sprsetIteratorV =
              artikelgruppe.getFlrartikelgruppe().getArtikelgruppesprset().iterator();

          rows[row][col++] = findSpr(sLocUI, sprsetIteratorV);
        } else {
          rows[row][col++] = null;
        }

        rows[row][col++] =
            artikelgruppe.getFlrkonto() == null ? null : artikelgruppe.getFlrkonto().getC_nr();

        row++;
        col = 0;
      }
      result = new QueryResult(rows, this.getRowCount(), startIndex, endIndex, 0);
    } catch (HibernateException e) {
      throw new EJBExceptionLP(EJBExceptionLP.FEHLER_FLR, e);
    } finally {
      try {
        session.close();
      } catch (HibernateException he) {
        throw new EJBExceptionLP(EJBExceptionLP.FEHLER_HIBERNATE, he);
      }
    }
    return result;
  }