Package com.jbidwatcher.ui.table

Source Code of com.jbidwatcher.ui.table.SearchTableModel

package com.jbidwatcher.ui.table;
/*
* Copyright (c) 2000-2007, CyberFOX Software, Inc. All Rights Reserved.
*
* Developed by mrs (Morgan Schweers)
*/

import com.jbidwatcher.search.SearchManager;
import com.jbidwatcher.search.Searcher;
import com.jbidwatcher.util.*;
import com.jbidwatcher.util.Currency;
import com.jbidwatcher.util.config.JConfig;

import javax.swing.table.AbstractTableModel;
import java.util.*;
import java.text.SimpleDateFormat;

public class SearchTableModel extends AbstractTableModel
{
  String[] column_names = {
    "Name", "Type", "Search Value", "Site", "Repeat Time", "Next Run"
  };

  public int getRowCount() { return SearchManager.getInstance().getSearchCount(); }
  public int getColumnCount() { return column_names.length; }
  public String getColumnName(int index) { return column_names[index]; }

  public int getColumnNumber(String colName) {
    int i;

    for(i=0; i<column_names.length; i++) {
      if(colName.equals(column_names[i])) return i;
    }
    return -1;
  }

  public Class getColumnClass(int i) { return String.class; }

  public Class getSortByColumnClass(int i) {
    if(i==5) return Long.class; else
    if(i==4) return Integer.class; else
    return getColumnClass(i);
  }

  public Object getSortByValueAt(int i, int j) {
    Searcher s = SearchManager.getInstance().getSearchByIndex(i);

    switch(j) {
      case -1: return s;

      case 0: return s.getName();
      case 1: return s.getTypeName();
      case 2: return s.getSearch();
      case 3: return s.getServer();
      case 4: return s.getPeriod();
      case 5: return s.getLastRun() + (s.getPeriod() * Constants.ONE_HOUR);
    }

    return null;
  }

  public Object getValueAt(int i, int j) {
    Searcher s = SearchManager.getInstance().getSearchByIndex(i);

    switch(j) {
      case -1:
      case 0:
      case 1:
      case 2:
      case 3: return getSortByValueAt(i, j);
      case 4:
        return formattedPeriod(s);
      case 5: return dateFormat(s);
      default:
        return null;
    }
  }

  private Object formattedPeriod(Searcher s) {
    String result;
    int period;

    period = s.getPeriod();
    if(period == -1) return "None";
    if(period < 24) {
      return period + " hour" + ((period != 1)?"s":"");
    }
    if( (period % 24) == 0) {
      return (period / 24) + " day" + ((period != 24)?"s":"");
    }
    result = (period / 24) + " day" + ((period > 48)?"s":"");
    result += ", " + (period % 24) + " hour" + (((period % 24)!=1)?"s":"");
    return result;
  }

  public String dateFormat(Searcher s) {
    if(s.getPeriod() == -1) return "Never";
    if(!s.isEnabled()) return "Disabled";

    SimpleDateFormat sdf = new SimpleDateFormat("MM.dd/yyyy @ hh:mm");
    long base = s.getLastRun();
    if(base == 0) base = System.currentTimeMillis();
    base += s.getPeriod() * Constants.ONE_HOUR;
    return sdf.format(new Date(base));
  }

  public SearchTableModel() {
    super();
  }

  public boolean isCellEditable(int row, int column) {
    return false;
  }

  public void delete(int row) {
    SearchManager.getInstance().deleteSearch(SearchManager.getInstance().getSearchByIndex(row));
  }

  public int insert(Object newObj) {
    SearchManager.getInstance().addSearch((Searcher)newObj);
    return getRowCount()-1;
  }
}
TOP

Related Classes of com.jbidwatcher.ui.table.SearchTableModel

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.