--- /dev/null
+package tim.prune.function.cache;
+
+import javax.swing.table.AbstractTableModel;
+
+import tim.prune.I18nManager;
+
+/**
+ * Class to act as a table model for the list of tile sets
+ */
+public final class TileSetTableModel extends AbstractTableModel
+{
+ /** Model from which values are drawn */
+ private TileCacheModel _model = null;
+
+
+ /**
+ * Constructor
+ * @param inModel model to use
+ */
+ public TileSetTableModel(TileCacheModel inModel) {
+ _model = inModel;
+ }
+
+ /** @return the column count (always constant) */
+ public int getColumnCount() {
+ return 5;
+ }
+
+ /** @return name of specified column */
+ public String getColumnName(int inColumnIndex)
+ {
+ switch (inColumnIndex)
+ {
+ case 0: return I18nManager.getText("dialog.diskcache.table.path");
+ case 1: return I18nManager.getText("dialog.diskcache.table.usedby");
+ case 2: return I18nManager.getText("dialog.diskcache.table.zoom");
+ case 3: return I18nManager.getText("dialog.diskcache.table.tiles");
+ case 4: return I18nManager.getText("dialog.diskcache.table.megabytes");
+ }
+ return "";
+ }
+
+ /**
+ * @return number of rows in the table
+ */
+ public int getRowCount()
+ {
+ if (_model == null)
+ return 0;
+ return _model.getNumTileSets();
+ }
+
+ /**
+ * @param inRowIndex row index
+ * @param inColumnIndex column index
+ * @return the value of the specified cell
+ */
+ public Object getValueAt(int inRowIndex, int inColumnIndex)
+ {
+ if (_model != null && inColumnIndex >= 0 && inColumnIndex < getColumnCount())
+ {
+ TileSet set = _model.getTileSet(inRowIndex);
+ if (set != null)
+ {
+ switch (inColumnIndex)
+ {
+ case 0: return set.getPath();
+ case 1: return set.getUsedBy();
+ case 2: return set.getRowInfo().getZoomRange();
+ case 3: return "" + set.getRowInfo().getNumTiles();
+ case 4: return "" + (set.getRowInfo().getTotalSize() / 1024 / 1024) + " MB";
+ }
+ }
+ }
+ return null;
+ }
+}