org.eclipse.jubula.client.ui.controllers.propertysources.MonitoringValuePropertySource.java Source code

Java tutorial

Introduction

Here is the source code for org.eclipse.jubula.client.ui.controllers.propertysources.MonitoringValuePropertySource.java

Source

/*******************************************************************************
 * Copyright (c) 2004, 2010 BREDEX GmbH.
 * 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:
 *     BREDEX GmbH - initial API and implementation and/or initial documentation
 *******************************************************************************/
package org.eclipse.jubula.client.ui.controllers.propertysources;

import java.text.DecimalFormat;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;

import org.apache.commons.lang.StringUtils;
import org.eclipse.jubula.client.core.model.ITestResultSummaryPO;
import org.eclipse.jubula.client.core.persistence.MonitoringValuePM;
import org.eclipse.jubula.tools.constants.MonitoringConstants;
import org.eclipse.jubula.tools.objects.IMonitoringValue;
import org.eclipse.jubula.tools.objects.MonitoringValue;
import org.eclipse.ui.views.properties.IPropertyDescriptor;
import org.eclipse.ui.views.properties.IPropertySource;
import org.eclipse.ui.views.properties.PropertyDescriptor;

/**
 * This class loads the monitoring values that will be shown by the
 * PropertiesView
 * 
 * @author BREDEX GmbH
 * @created 05.12.2010
 */
public class MonitoringValuePropertySource implements IPropertySource {

    /** the cached property descriptors */
    private IPropertyDescriptor[] m_descriptors = null;

    /** found MonitoringValues */
    private Map<String, IMonitoringValue> m_monitoringValueMap = null;

    /**
     * @param summary
     *            the Summary which was selected
     */
    public MonitoringValuePropertySource(ITestResultSummaryPO summary) {
        Long id = summary.getId();
        m_monitoringValueMap = MonitoringValuePM.loadMonitoringValues(id);
    }

    /**
     * {@inheritDoc}
     */
    public Object getEditableValue() {
        return "editableValue"; //$NON-NLS-1$
    }

    /**
     * @return Each {@link PropertyDescriptor} will be renderd as an entry of
     *         PropertiesView
     */
    public IPropertyDescriptor[] getPropertyDescriptors() {

        List<IPropertyDescriptor> tmpList = new LinkedList<IPropertyDescriptor>();
        Iterator it = m_monitoringValueMap.entrySet().iterator();
        while (it.hasNext()) {
            Map.Entry pairs = (Map.Entry) it.next();
            MonitoringValue tmp = (MonitoringValue) pairs.getValue();
            PropertyDescriptor p = new PropertyDescriptor(pairs.getKey(), (String) pairs.getKey());
            if (!tmp.getCategory().equals(MonitoringConstants.NO_CATEGORY)) {
                p.setCategory(tmp.getCategory());
            }
            tmpList.add(p);

        }
        m_descriptors = tmpList.toArray(new IPropertyDescriptor[tmpList.size()]);
        return m_descriptors;
    }

    /**
     * @return displays the value of the given object id, default is "empty"
     * @param id
     *            the id
     */
    public Object getPropertyValue(Object id) {

        IMonitoringValue m = m_monitoringValueMap.get(id);
        if (m.getType().equals(MonitoringConstants.PERCENT_VALUE)) {
            DecimalFormat n = new DecimalFormat("0.0#%"); //$NON-NLS-1$
            Double doubleValue = Double.valueOf(m.getValue());
            return StringUtils.defaultString(n.format(doubleValue.doubleValue()));
        }
        return m.getValue();

    }

    /**
     * {@inheritDoc}
     */
    public boolean isPropertySet(Object arg0) {
        // Do nothing
        return false;
    }

    /**
     * {@inheritDoc}
     */
    public void resetPropertyValue(Object arg0) {

        // Do nothing
    }

    /**
     * {@inheritDoc}
     */
    public void setPropertyValue(Object arg0, Object arg1) {
        // Do nothing

    }
}