## i2p.susi.util
Class Folder

    java.lang.Object
      i2p.susi.util.Folder

    public class Folder

extends Object

Folder object manages a array Object[] to support paging and sorting. You create a folder object, set the contents with setElements(), add Comparators with addSorter(), choose one with sortBy() and and then fetch the content of the current page with currentPageIterator().

Author:
  susi

Field Summary
`(package private) Comparator` `currentSorter`
`static int` `DEFAULT_PAGESIZE`
`static boolean` `DOWN`
`static String` `PAGESIZE`
`static boolean` `UP`

Constructor Summary
`Folder()`

Method Summary
`void` `addSorter(String id, Comparator sorter)` Adds a new sorter to the folder.
`Iterator` `currentPageIterator()` Returns an iterator containing the elements on the current page.
`void` `firstPage()` Sets folder to display first page.
`int` `getCurrentPage()` Returns the current page.
`Object` `getElementAtPosXonCurrentPage(int x)` Returns the element on the current page on the given position.
`Object` `getFirstElement()` Returns the first element of the sorted folder.
`Object` `getLastElement()` Returns the last element of the sorted folder.
`Object` `getNextElement(Object element)` Retrieves the next element in the sorted array.
`int` `getPages()` Returns the number of pages in the folder.
`int` `getPageSize()` Returns page size.
`Object` `getPreviousElement(Object element)` Retrieves the previous element in the sorted array.
`int` `getSize()` Returns the size of the folder.
`boolean` `isFirstElement(Object element)` Returns true, if elements.equals( firstElementOfTheSortedArray ).
`boolean` `isFirstPage()` Returns true, if folder shows points to the first page.
`boolean` `isLastElement(Object element)` Returns true, if elements.equals( lastElementOfTheSortedArray ).
`boolean` `isLastPage()` Returns true, if folder shows points to the last page.
`void` `lastPage()` Sets folder to display last page.
`void` `nextPage()` Turns folder to next page.
`void` `previousPage()` Turns folder to previous page.
`void` `setCurrentPage(int currentPage)` Sets the current page to the given parameter.
`void` `setElements(Object[] elements)` Set the array of objects the folder should manage.
`void` `setPageSize(int pageSize)` Set page size.
`void` `setSortingDirection(boolean direction)` Sets the sorting direction of the folder.
`void` `sortBy(String id)` Activates sorting by the choosen Comparator.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### PAGESIZE

    public static final String PAGESIZE

See Also:
  Constant Field Values

### DEFAULT_PAGESIZE

    public static final int DEFAULT_PAGESIZE

See Also:
  Constant Field Values

### DOWN

    public static final boolean DOWN

See Also:
  Constant Field Values

### UP

    public static final boolean UP

See Also:
  Constant Field Values

### currentSorter

    Comparator currentSorter

Constructor Detail

### Folder

    public Folder()

Method Detail

### getCurrentPage

    public int getCurrentPage()

  Returns the current page.

  Returns:
    Returns the current page.

### setCurrentPage

    public void setCurrentPage(int currentPage)

  Sets the current page to the given parameter.

  Parameters:
    `currentPage` - The current page to set.

### getSize

    public int getSize()

  Returns the size of the folder.

  Returns:
    Returns the size of the folder.

### getPages

    public int getPages()

  Returns the number of pages in the folder.

  Returns:
    Returns the number of pages.

### getPageSize

    public int getPageSize()

  Returns page size. If no page size has been set, it returns property @link PAGESIZE. If no property is set @link DEFAULT_PAGESIZE is returned.

  Returns:
    Returns the pageSize.

### setPageSize

    public void setPageSize(int pageSize)

  Set page size.

  Parameters:
    `pageSize` - The page size to set.

### setElements

    public void setElements(Object[] elements)

  Set the array of objects the folder should manage.

  Parameters:
    `elements` - Array of Objects.

### currentPageIterator

    public Iterator currentPageIterator()

  Returns an iterator containing the elements on the current page.

  Returns:
    Iterator containing the elements on the current page.

### nextPage

    public void nextPage()

  Turns folder to next page.

### previousPage

    public void previousPage()

  Turns folder to previous page.

### firstPage

    public void firstPage()

  Sets folder to display first page.

### lastPage

    public void lastPage()

  Sets folder to display last page.

### addSorter

    public void addSorter(String id,
                          Comparator sorter)

  Adds a new sorter to the folder. You can sort the folder by calling sortBy() and choose the given id there.

  Parameters:
    `id` - ID to identify the Comparator with @link sortBy()
    `sorter` - a Comparator to sort the Array given by @link setElements()

### sortBy

    public void sortBy(String id)

  Activates sorting by the choosen Comparator. The id must match the one, which the Comparator has been stored in the folder with @link addSorter().

  Parameters:
    `id` - ID to identify the Comparator stored with @link addSorter()

### getElementAtPosXonCurrentPage

    public Object getElementAtPosXonCurrentPage(int x)

  Returns the element on the current page on the given position.

  Parameters:
    `x` - Position of the element on the current page.
  Returns:
    Element on the current page on the given position.

### setSortingDirection

    public void setSortingDirection(boolean direction)

  Sets the sorting direction of the folder.

  Parameters:
    `direction` - @link UP or @link DOWN

### getFirstElement

    public Object getFirstElement()

  Returns the first element of the sorted folder.

  Returns:
    First element.

### getLastElement

    public Object getLastElement()

  Returns the last element of the sorted folder.

  Returns:
    Last element.

### getNextElement

    public Object getNextElement(Object element)

  Retrieves the next element in the sorted array. Sorting direction is taken into account.

  Parameters:
    `element` -
  Returns:
    The next element

### getPreviousElement

    public Object getPreviousElement(Object element)

  Retrieves the previous element in the sorted array. Sorting direction is taken into account.

  Parameters:
    `element` -
  Returns:
    The previous element

### isLastPage

    public boolean isLastPage()

  Returns true, if folder shows points to the last page.

### isFirstPage

    public boolean isFirstPage()

  Returns true, if folder shows points to the first page.

### isLastElement

    public boolean isLastElement(Object element)

  Returns true, if elements.equals( lastElementOfTheSortedArray ). The sorting direction influences which element is taken for comparison.

  Parameters:
    `element` -

### isFirstElement

    public boolean isFirstElement(Object element)

  Returns true, if elements.equals( firstElementOfTheSortedArray ). The sorting direction influences which element is taken for comparison.

  Parameters:
    `element` -