package org.fanhongtao.middleman.ui; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import org.eclipse.jface.viewers.ILabelProviderListener; import org.eclipse.jface.viewers.ITableLabelProvider; import org.eclipse.swt.graphics.Image; import org.fanhongtao.net.frame.MsgInfo; /** * * @author Dharma * @created 2008-12-1 */ public class MsgLableProvider implements ITableLabelProvider { // Holds the listeners ArrayList<ILabelProviderListener> listeners = new ArrayList<ILabelProviderListener>(); private long startTime = 0; private static SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S"); public void setStartTime(long startTime) { this.startTime = startTime; } @Override public Image getColumnImage(Object element, int columnIndex) { return null; } @Override public String getColumnText(Object element, int columnIndex) { MsgInfo msgInfo = (MsgInfo) element; switch (columnIndex) { case 0: return Integer.toString(msgInfo.getSerial()); case 1: // return Long.toString(msgInfo.getTime()); return formatter.format(new Date(startTime + msgInfo.getTime())); case 2: return msgInfo.getSrcIP(); case 3: return Integer.toString(msgInfo.getSrcPort()); case 4: return msgInfo.getDestIP(); case 5: return Integer.toString(msgInfo.getDestPort()); case 6: return Integer.toString(msgInfo.getMsg().length); case 7: if (msgInfo.getMsg().length > 100) { return new String(msgInfo.getMsg(), 0, 100) + "..."; } else { return new String(msgInfo.getMsg(), 0, msgInfo.getMsg().length); } default: return null; } } @Override public void addListener(ILabelProviderListener listener) { listeners.add(listener); } @Override public void dispose() { } @Override public boolean isLabelProperty(Object element, String property) { return false; } @Override public void removeListener(ILabelProviderListener listener) { listeners.remove(listener); } }