package rtt.ui.content.logging; import java.util.Calendar; import javax.xml.bind.DatatypeConverter; import rtt.core.archive.logging.Detail; import rtt.core.archive.logging.Entry; import rtt.core.archive.logging.EntryType; import rtt.ui.content.IContent; import rtt.ui.content.main.ContentIcon; public class LogEntryContent extends AbstractLogContent { private Entry entry; protected Calendar calendar; public LogEntryContent(IContent parent, Entry entry) { super(parent); this.entry = entry; calendar = DatatypeConverter.parseDate(entry.getDate().toXMLFormat()); if (entry.getDetail() != null && !entry.getDetail().isEmpty()) { for (Detail detail : entry.getDetail()) { childs.add(new LogDetailContent(this, detail)); } } } private ContentIcon getContentIcon(Entry entry) { switch (entry.getType()) { case INFO: return ContentIcon.INFO; case GENERATION: return ContentIcon.GENERATION; case TESTRUN: return ContentIcon.TESTRUN; case ARCHIVE: return ContentIcon.ARCHIVE; default: return ContentIcon.PLACEHOLDER; } } public EntryType getType() { return entry.getType(); } @Override public ContentIcon getIcon() { return getContentIcon(entry); } @Override public String getText(int columnIndex) { if (columnIndex == 2) { return getFormatedDate(); } return super.getText(columnIndex); } public Calendar getCalendar() { return calendar; } public String getFormatedDate() { return String.format("%1$te.%1$tm.%1$tY %1$tH:%1$tM:%1$tS", calendar); } @Override public String getTitle() { return entry.getType().toString(); } @Override public String getMessage() { return entry.getMsg() + " " + entry.getSuffix(); } @Override public int compareTo(AbstractLogContent o) { if (o instanceof LogEntryContent) { LogEntryContent entry = (LogEntryContent) o; return -(this.getCalendar().compareTo(entry.getCalendar())); } return 0; } }