/* Copyright (C) 2009 Mobile Sorcery AB This program is free software; you can redistribute it and/or modify it under the terms of the Eclipse Public License v1.0. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the Eclipse Public License v1.0 for more details. You should have received a copy of the Eclipse Public License v1.0 along with this program. It is also available at http://www.eclipse.org/legal/epl-v10.html */ package com.mobilesorcery.sdk.testing.internal.ui; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import org.eclipse.jface.viewers.ITreeContentProvider; import org.eclipse.jface.viewers.Viewer; import com.mobilesorcery.sdk.testing.ITest; import com.mobilesorcery.sdk.testing.ITestSession; import com.mobilesorcery.sdk.testing.ITestSuite; public class TestSessionContentProvider implements ITreeContentProvider { public Object[] getChildren(Object parentElement) { if (parentElement instanceof ITestSession) { ITestSession session = (ITestSession) parentElement; List<Object> testExecutionFailures = session.getTestResult().getFailures(session); ArrayList result = new ArrayList(); if (testExecutionFailures != null) { result.addAll(testExecutionFailures); } result.addAll(Arrays.asList(((ITestSession) parentElement).getTests())); return result.toArray(); } else if (parentElement instanceof ITestSuite) { return ((ITestSuite) parentElement).getTests(); } return new Object[0]; } public Object getParent(Object element) { if (element instanceof ITest) { return ((ITest) element).getParentSuite(); } return null; } public boolean hasChildren(Object element) { return getChildren(element).length > 0; } public Object[] getElements(Object inputElement) { return getChildren(inputElement); } public void dispose() { } public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } }