/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.core.gui.log.internal; import java.util.ArrayList; import java.util.List; import java.util.SortedSet; import org.eclipse.jface.viewers.IStructuredContentProvider; import org.eclipse.jface.viewers.Viewer; import org.osgi.service.log.LogService; import de.rcenvironment.core.log.SerializableLogEntry; /** * Take the whole content to structured pieces. * * @author Enrico Tappert */ public class LogContentProvider implements IStructuredContentProvider { /** * {@inheritDoc} * * Splits the whole content into structured logging elements object array. * * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object) */ @Override public Object[] getElements(final Object inputElement) { if (!(inputElement instanceof LogModel)) { throw new IllegalArgumentException(); } List<SerializableLogEntry> removeObjectsList = new ArrayList<SerializableLogEntry>(); final LogModel logModel = (LogModel) inputElement; final SortedSet<SerializableLogEntry> logEntries = logModel.getLogEntries(); for (SerializableLogEntry entry : logEntries) { if (entry.getLevel() == LogService.LOG_DEBUG) { removeObjectsList.add(entry); } } logEntries.removeAll(removeObjectsList); return logEntries.toArray(); } @Override public void dispose() { // do nothing } @Override public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { // do nothing } }