/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.core.gui.log.internal; import java.text.SimpleDateFormat; import org.eclipse.jface.viewers.ITableLabelProvider; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.swt.graphics.Image; import org.osgi.service.log.LogService; import de.rcenvironment.core.gui.resources.api.ImageManager; import de.rcenvironment.core.gui.resources.api.StandardImages; import de.rcenvironment.core.log.SerializableLogEntry; /** * Provides the concrete label texts to display and images if required. * * @author Arne Bachmann */ public class LogLabelProvider extends LabelProvider implements ITableLabelProvider { private Image infoImage; private Image warningImage; private Image errorImage; public LogLabelProvider() { super(); infoImage = ImageManager.getInstance().getSharedImage(StandardImages.INFORMATION_16); warningImage = ImageManager.getInstance().getSharedImage(StandardImages.WARNING_16); errorImage = ImageManager.getInstance().getSharedImage(StandardImages.ERROR_16); } @Override public Image getColumnImage(Object element, int columnIndex) { Image image = null; if (element instanceof SerializableLogEntry) { SerializableLogEntry logEntry = (SerializableLogEntry) element; if (0 == columnIndex) { // level column if (LogService.LOG_INFO == logEntry.getLevel()) { // error level image = infoImage; } else if (LogService.LOG_WARNING == logEntry.getLevel()) { // warn level image = warningImage; } else if (LogService.LOG_ERROR == logEntry.getLevel()) { // error level image = errorImage; } } } return image; } @Override public String getColumnText(Object element, int columnIndex) { String returnValue = ""; //$NON-NLS-1$ if (element instanceof SerializableLogEntry) { SerializableLogEntry logEntry = (SerializableLogEntry) element; switch (columnIndex) { // level case 0: int level = logEntry.getLevel(); switch (level) { case LogService.LOG_ERROR: returnValue = "ERROR"; //$NON-NLS-1$ break; case LogService.LOG_INFO: returnValue = "INFO"; //$NON-NLS-1$ break; case LogService.LOG_WARNING: returnValue = "WARN"; //$NON-NLS-1$ break; default: returnValue = "UNKNOWN"; //$NON-NLS-1$ break; } break; // message case 1: returnValue = logEntry.getMessage().replaceAll(SerializableLogEntry.RCE_SEPARATOR, " "); break; // bundle name case 2: returnValue = logEntry.getBundleName(); break; // platform name case 3: returnValue = logEntry.getPlatformIdentifer().getAssociatedDisplayName(); break; // date and time case 4: SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss,SSS"); //$NON-NLS-1$ returnValue = df.format(logEntry.getTime()); break; default: // shouldn't happen break; } } return returnValue; } }