package net.sourceforge.squirrel_sql.client.session.mainpanel; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Collections; import net.sourceforge.squirrel_sql.fw.util.StringManager; import net.sourceforge.squirrel_sql.fw.util.StringManagerFactory; public class SQLHistoryItemWrapper { /** Internationalized strings for this class. */ private static final StringManager s_stringMgr = StringManagerFactory.getStringManager(SQLHistoryItemWrapper.class); private static final String[] COLUMNS = new String[] { // i18n[SQLHistoryItemWrapper.index=Index] s_stringMgr.getString("SQLHistoryItemWrapper.index"), // i18n[SQLHistoryItemWrapper.lastUsed=Last used] s_stringMgr.getString("SQLHistoryItemWrapper.lastUsed"), // i18n[SQLHistoryItemWrapper.sql=SQL] s_stringMgr.getString("SQLHistoryItemWrapper.sql"), }; private static final SimpleDateFormat LAST_USAGE_DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS"); public static ArrayList<SQLHistoryItemWrapper> wrap(ArrayList<SQLHistoryItem> items) { ArrayList<SQLHistoryItemWrapper> ret = new ArrayList<SQLHistoryItemWrapper>(items.size()); int i=0; for (SQLHistoryItem item : items) { ret.add(new SQLHistoryItemWrapper(item, ++i)); } Collections.reverse(ret); return ret; } public static String[] getColumns() { return COLUMNS; } public static int getSQLColIx() { return 2; } private SQLHistoryItem _item; private int _index; private String _upperCaseSQL; private String _lastUsageTimeString; public SQLHistoryItemWrapper(SQLHistoryItem item, int index) { _item = item; _index = index; _upperCaseSQL = item.getSQL().toUpperCase(); if(null != _item.getLastUsageTime()) { _lastUsageTimeString = LAST_USAGE_DATE_FORMAT.format(_item.getLastUsageTime()); } } public Object getColum(int column) { // corresponding to COLUMNS switch(column) { case 0: return _index; case 1: return _lastUsageTimeString; case 2: return _item.getSQL(); default: throw new IllegalArgumentException("Unknown colum index " + column); } } public String getUpperCaseSQL() { return _upperCaseSQL; } }