blob: e517d28654539c795f78f49b3bbb04f1cf422fd5 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2000, 2018 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.test.internal.performance.results.model;
import java.util.Vector;
import org.eclipse.test.internal.performance.data.Dim;
import org.eclipse.test.internal.performance.results.db.AbstractResults;
import org.eclipse.test.internal.performance.results.db.BuildResults;
import org.eclipse.ui.views.properties.IPropertyDescriptor;
import org.eclipse.ui.views.properties.PropertyDescriptor;
import org.eclipse.ui.views.properties.TextPropertyDescriptor;
public class DimResultsElement extends ResultsElement {
Dim dim;
// Property descriptors
static final String P_ID_DIMENSION = "DimResultsElement.dim"; //$NON-NLS-1$
static final String P_ID_COUNT = "DimResultsElement.count"; //$NON-NLS-1$
static final String P_ID_AVERAGE = "DimResultsElement.average"; //$NON-NLS-1$
static final String P_ID_STDDEV = "DimResultsElement.stddev"; //$NON-NLS-1$
static final String P_ID_ERROR= "DimResultsElement.error"; //$NON-NLS-1$
static final String P_ID_HAD_VALUES = "DimResultsElement.hadvalues"; //$NON-NLS-1$
static final String P_STR_DIMENSION = "dimension"; //$NON-NLS-1$
static final String P_STR_COUNT= "count"; //$NON-NLS-1$
static final String P_STR_AVERAGE = "average"; //$NON-NLS-1$
static final String P_STR_STDDEV = "std dev"; //$NON-NLS-1$
static final String P_STR_ERROR = "error"; //$NON-NLS-1$
static final String P_STR_HAD_VALUES = "had values"; //$NON-NLS-1$
private static final TextPropertyDescriptor DIMENSION_DESCRIPTOR = new TextPropertyDescriptor(P_ID_DIMENSION, P_STR_DIMENSION);
private static final PropertyDescriptor DIM_COUNT_DESCRIPTOR = new PropertyDescriptor(P_ID_COUNT, P_STR_COUNT);
private static final PropertyDescriptor DIM_AVERAGE_DESCRIPTOR = new PropertyDescriptor(P_ID_AVERAGE, P_STR_AVERAGE);
private static final PropertyDescriptor DIM_STDDEV_DESCRIPTOR = new PropertyDescriptor(P_ID_STDDEV, P_STR_STDDEV);
private static final PropertyDescriptor DIM_ERROR_DESCRIPTOR = new PropertyDescriptor(P_ID_ERROR, P_STR_ERROR);
private static final PropertyDescriptor DIM_HAD_VALUES_DESCRIPTOR = new PropertyDescriptor(P_ID_HAD_VALUES, P_STR_HAD_VALUES);
private static Vector<IPropertyDescriptor> DESCRIPTORS;
static Vector<IPropertyDescriptor> initDescriptors(int status) {
DESCRIPTORS = new Vector<>();
// Status category
DESCRIPTORS.add(getInfosDescriptor(status));
DESCRIPTORS.add(getWarningsDescriptor(status));
DESCRIPTORS.add(ERROR_DESCRIPTOR);
ERROR_DESCRIPTOR.setCategory("Status");
// Results category
DESCRIPTORS.addElement(DIMENSION_DESCRIPTOR);
DIMENSION_DESCRIPTOR.setCategory("Results");
DESCRIPTORS.addElement(DIM_COUNT_DESCRIPTOR);
DIM_COUNT_DESCRIPTOR.setCategory("Results");
DESCRIPTORS.addElement(DIM_AVERAGE_DESCRIPTOR);
DIM_AVERAGE_DESCRIPTOR.setCategory("Results");
DESCRIPTORS.addElement(DIM_STDDEV_DESCRIPTOR);
DIM_STDDEV_DESCRIPTOR.setCategory("Results");
DESCRIPTORS.addElement(DIM_ERROR_DESCRIPTOR);
DIM_ERROR_DESCRIPTOR.setCategory("Results");
DESCRIPTORS.addElement(DIM_HAD_VALUES_DESCRIPTOR);
DIM_HAD_VALUES_DESCRIPTOR.setCategory("Results");
// Survey category
DESCRIPTORS.add(COMMENT_DESCRIPTOR);
COMMENT_DESCRIPTOR.setCategory("Survey");
return DESCRIPTORS;
}
static Vector<IPropertyDescriptor> getDescriptors() {
return DESCRIPTORS;
}
public DimResultsElement(AbstractResults results, ResultsElement parent, Dim d) {
super(results, parent);
this.dim = d;
}
@Override
ResultsElement createChild(AbstractResults testResults) {
return null;
}
private BuildResults getBuildResults() {
return (BuildResults) this.results;
}
@Override
public String getLabel(Object o) {
return this.dim.getName();
}
@Override
public IPropertyDescriptor[] getPropertyDescriptors() {
Vector<IPropertyDescriptor> descriptors = getDescriptors();
if (descriptors == null) {
descriptors = initDescriptors(getStatus());
}
int size = descriptors.size();
IPropertyDescriptor[] descriptorsArray = new IPropertyDescriptor[size];
descriptorsArray[0] = getInfosDescriptor(getStatus());
descriptorsArray[1] = getWarningsDescriptor(getStatus());
for (int i=2; i<size; i++) {
descriptorsArray[i] = descriptors.get(i);
}
return descriptorsArray;
}
@Override
public Object getPropertyValue(Object propKey) {
BuildResults buildResults = getBuildResults();
if (propKey.equals(P_ID_DIMENSION)) {
return this.dim.getDescription();
}
if (propKey.equals(P_ID_COUNT)) {
long count = buildResults.getCount(this.dim.getId());
return Double.valueOf(count);
}
if (propKey.equals(P_ID_AVERAGE))
return Double.valueOf(buildResults.getValue(this.dim.getId()));
if (propKey.equals(P_ID_STDDEV))
return Double.valueOf(buildResults.getDeviation(this.dim.getId()));
if (propKey.equals(P_ID_ERROR))
return Double.valueOf(buildResults.getError(this.dim.getId()));
if (propKey.equals(P_ID_HAD_VALUES))
return Boolean.valueOf(buildResults.hadValues());
return super.getPropertyValue(propKey);
}
}