Example #1
0
  private TimelimitTaskTableModel newTimelimitTaskTableModel() {
    final TimelimitTaskTableModel result = new TimelimitTaskTableModel();

    // add columns:
    final List<String> lstFieldNames =
        new LinkedList<String>(CollectableTimelimitTask.clcte.getFieldNames());

    // sort using the order stored in the preferences:
    List<String> lstFieldNameOrderTemp;
    try {
      lstFieldNameOrderTemp = PreferencesUtils.getStringList(this.prefs, PREFS_NODE_SELECTEDFIELDS);
    } catch (PreferencesException ex) {
      LOG.error(
          "Failed to retrieve list of selected fields from the preferences. They will be empty.");
      lstFieldNameOrderTemp = new ArrayList<String>();
    }
    final List<String> lstFieldNameOrder = lstFieldNameOrderTemp;

    Collections.sort(
        lstFieldNames,
        new Comparator<String>() {
          private int getOrder(Object o) {
            int result = lstFieldNameOrder.indexOf(o);
            if (result == -1) {
              // new fields are shown at the end:
              result = lstFieldNameOrder.size();
            }
            return result;
          }

          @Override
          public int compare(String o1, String o2) {
            int iDiff = getOrder(o1) - getOrder(o2);
            return (iDiff == 0) ? 0 : (iDiff / Math.abs(iDiff));
          }
        });

    int iColumn = 0;
    final List<String> lstNamesOfFieldsToDisplay =
        CollectableTimelimitTask.clcte.getNamesOfFieldsToDisplay();
    for (Iterator<String> iter = lstFieldNames.iterator(); iter.hasNext(); ) {
      final String sFieldName = iter.next();
      final CollectableEntityField clctef =
          CollectableTimelimitTask.clcte.getEntityField(sFieldName);
      if (lstNamesOfFieldsToDisplay.contains(sFieldName)) {
        result.addColumn(iColumn++, clctef);
      }
    }

    if (result.getColumnCount() > 0) {
      result.setSortKeys(Collections.singletonList(new SortKey(0, SortOrder.ASCENDING)), false);
    }

    return result;
  }
Example #2
0
 private void setupTableModelSorting() {
   final TimelimitTaskTableModel tblmdl = this.timelimittaskview.getTimelimitTaskTableModel();
   if (tblmdl.getColumnCount() > 0) {
     List<SortKey> sortKeys = readColumnOrderFromPreferences();
     if (sortKeys.isEmpty()) {
       sortKeys =
           Collections.singletonList(
               new SortKey(
                   tblmdl.findColumnByFieldName(CollectableTask.FIELDNAME_SCHEDULED),
                   SortOrder.ASCENDING));
     }
     try {
       tblmdl.setSortKeys(sortKeys, false);
     } catch (Exception e) {
     }
   }
 }