1 25 26 package org.jrobin.inspector; 27 28 import org.jrobin.core.*; 29 30 import javax.swing.table.AbstractTableModel ; 31 import java.io.File ; 32 import java.io.IOException ; 33 import java.util.Date ; 34 35 class ArchiveTableModel extends AbstractTableModel { 36 private static final Object [] DESCRIPTIONS = { 37 "consolidation", "xff", "steps", "rows", "accum. value", "NaN steps", "start", "end" 38 }; 39 private static final String [] COLUMN_NAMES = {"description", "value"}; 40 41 private File file; 42 private Object [] values; 43 private int dsIndex = -1, arcIndex = -1; 44 45 public int getRowCount() { 46 return DESCRIPTIONS.length; 47 } 48 49 public int getColumnCount() { 50 return COLUMN_NAMES.length; 51 } 52 53 public Object getValueAt(int rowIndex, int columnIndex) { 54 if (columnIndex == 0) { 55 return DESCRIPTIONS[rowIndex]; 56 } 57 else if (columnIndex == 1) { 58 if (values != null) { 59 return values[rowIndex]; 60 } 61 else { 62 return "--"; 63 } 64 } 65 return null; 66 } 67 68 public String getColumnName(int column) { 69 return COLUMN_NAMES[column]; 70 } 71 72 void setFile(File newFile) { 73 file = newFile; 74 setIndex(-1, -1); 75 } 76 77 void setIndex(int newDsIndex, int newArcIndex) { 78 if (dsIndex != newDsIndex || arcIndex != newArcIndex) { 79 dsIndex = newDsIndex; 80 arcIndex = newArcIndex; 81 values = null; 82 if(dsIndex >= 0 && arcIndex >= 0) { 83 try { 84 RrdDb rrd = new RrdDb(file.getAbsolutePath()); 85 Archive arc = rrd.getArchive(arcIndex); 86 ArcState state = arc.getArcState(dsIndex); 87 values = new Object []{ 88 arc.getConsolFun(), 89 "" + arc.getXff(), 90 "" + arc.getSteps(), 91 "" + arc.getRows(), 92 InspectorModel.formatDouble(state.getAccumValue()), 93 "" + state.getNanSteps(), 94 "" + arc.getStartTime() + " [" + new Date (arc.getStartTime() * 1000L) + "]", 95 "" + arc.getEndTime() + " [" + new Date (arc.getEndTime() * 1000L) + "]" 96 }; 97 rrd.close(); 98 } 99 catch (IOException e) { 100 e.printStackTrace(); 101 } 102 catch (RrdException e) { 103 e.printStackTrace(); 104 } 105 } 106 fireTableDataChanged(); 107 } 108 } 109 } 110 | Popular Tags |