Class FilteredTasksTableModel

java.lang.Object
javax.swing.table.AbstractTableModel
org.cesilko.rachota.gui.FilteredTasksTableModel
All Implemented Interfaces:
Serializable, TableModel

public class FilteredTasksTableModel extends AbstractTableModel
Table model for filtered tasks.
See Also:
  • Field Details

    • DESCRIPTION

      public static final int DESCRIPTION
      Identification of filter name column.
      See Also:
    • DURATION_TIME

      public static final int DURATION_TIME
      Identification of filter content rule column.
      See Also:
    • DURATION_DAYS

      public static final int DURATION_DAYS
      Identification of filter content column.
      See Also:
    • groupSameTasks

      private boolean groupSameTasks
      Whether to group tasks with same description.
    • tasks

      private Vector tasks
      Vector of tasks to be displayed by this table model.
    • sortedColumn

      private int sortedColumn
      Currently selected sorting column.
    • sortingOrder

      private boolean sortingOrder
      Currently selected sorting order.
    • ASCENDING

      private static final boolean ASCENDING
      Ascending sorting order.
      See Also:
    • DESCENDING

      private static final boolean DESCENDING
      Descending sorting order.
      See Also:
  • Constructor Details

    • FilteredTasksTableModel

      public FilteredTasksTableModel()
      Creates a new instance of FilteredTasksTableModel
  • Method Details

    • setGroupSameTasks

      public void setGroupSameTasks(boolean groupSameTasks)
      Sets whether to group tasks with same description or not.
      Parameters:
      groupSameTasks - If true, tasks with same description will occupy one row.
    • setTasks

      public void setTasks(Vector tasks)
      Sets filtered tasks with new vector and refreshes the table.
      Parameters:
      tasks - Vector of filtered tasks to be displayed in the table.
    • getValueAt

      public Object getValueAt(int row, int column)
      Returns value of cell located in given row and column.
      Parameters:
      row - Number of row.
      column - Number of column.
      Returns:
      Value of cell at specified location.
    • getSimilarTask

      public Task getSimilarTask(int row)
      Returns similar task to the one at given row.
      Parameters:
      row - Row of task to be found.
      Returns:
      Either same task or new task with same description.
    • getRowCount

      public int getRowCount()
      Returns number of rows in the table i.e. filtered tasks. The number depends on the groupSameTasks setting.
      Returns:
      Number of rows in the table i.e. number of filtered tasks either unique or same depending on whether they should be grouped.
    • getColumnCount

      public int getColumnCount()
      Returns number of columns in the table i.e. 3.
      Returns:
      Always 3 since table has three columns.
    • getColumnName

      public String getColumnName(int column)
      Returns name of column by given column number.
      Specified by:
      getColumnName in interface TableModel
      Overrides:
      getColumnName in class AbstractTableModel
      Parameters:
      column - Number of column.
      Returns:
      Name of column by given column number.
    • getUniqueTaskDescriptions

      private Vector getUniqueTaskDescriptions()
      Returns vector of all unique task descriptions.
      Returns:
      Vector of all unique task descriptions.
    • getTotalTime

      public double getTotalTime()
      Returns total time spent on all displayed tasks.
      Returns:
      Total time spent on all displayed tasks in miliseconds.
    • getRow

      private Vector getRow(int row)
      Returns vector of three objects that should be displayed at given row when tasks with same description are displayed.
      Parameters:
      row - Number of row whose data will be returned.
      Returns:
      Vector consisting of task description, total duration for all tasks with the description and number of days the tasks were planned for.
    • getSortedColumn

      public int getSortedColumn()
      Returns column that is currently sorted.
      Returns:
      Column that is being sorted.
    • getSortedOrder

      public String getSortedOrder()
      Returns sorting order that is currently used.
      Returns:
      Returns + char in case of ascending order or - char in case of descending order.
    • sortTable

      public void sortTable(int column, boolean changeOrder)
      Sorts table according to given column and known order.
      Parameters:
      column - Column that will be used for sorting.
      changeOrder - Should the sorting order be changed ?