blob: b10692f7e21b4c348ab036233dc28e936c9bba6b [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2011, 2012 Ericsson AB 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
*
* Description:
*
* This class encapsulates the properties for the AnomalyExtended UI model element
*
* Contributors:
* Sebastien Dubois - Created for Mylyn Review R4E project
*
******************************************************************************/
package org.eclipse.mylyn.reviews.r4e.ui.internal.properties.general;
import org.eclipse.mylyn.reviews.r4e.ui.internal.model.R4EUIAnomalyExtended;
import org.eclipse.mylyn.reviews.r4e.ui.internal.model.R4EUIModelElement;
import org.eclipse.mylyn.reviews.r4e.ui.internal.utils.R4EUIConstants;
import org.eclipse.ui.views.properties.IPropertyDescriptor;
import org.eclipse.ui.views.properties.PropertyDescriptor;
/**
* @author Sebastien Dubois
* @version $Revision: 1.0 $
*/
public class AnomalyExtraProperties extends AnomalyBasicProperties {
// ------------------------------------------------------------------------
// Constants
// ------------------------------------------------------------------------
/**
* Field ANOMALY_STATE_ID. (value is ""anomalyElement.state"")
*/
private static final String ANOMALY_STATE_ID = "anomalyElement.state";
/**
* Field ANOMALY_STATE_PROPERTY_DESCRIPTOR.
*/
protected static final PropertyDescriptor ANOMALY_STATE_PROPERTY_DESCRIPTOR = new PropertyDescriptor(
ANOMALY_STATE_ID, R4EUIConstants.STATE_LABEL);
/**
* Field ANOMALY_NOT_ACCEPTED_REASON_ID. (value is ""anomalyElement.notAcceptedReason"")
*/
private static final String ANOMALY_NOT_ACCEPTED_REASON_ID = "anomalyElement.notAcceptedReason";
/**
* Field ANOMALY_NOT_ACCEPTED_REASON_PROPERTY_DESCRIPTOR.
*/
protected static final PropertyDescriptor ANOMALY_NOT_ACCEPTED_REASON_PROPERTY_DESCRIPTOR = new PropertyDescriptor(
ANOMALY_NOT_ACCEPTED_REASON_ID, R4EUIConstants.NOT_ACCEPTED_REASON_LABEL);
/**
* Field ANOMALY_DECIDED_BY_ID. (value is ""anomalyElement.decidedBy"")
*/
private static final String ANOMALY_DECIDED_BY_ID = "anomalyElement.decidedBy";
/**
* Field ANOMALY_DECIDED_BY_PROPERTY_DESCRIPTOR.
*/
protected static final PropertyDescriptor ANOMALY_DECIDED_BY_PROPERTY_DESCRIPTOR = new PropertyDescriptor(
ANOMALY_DECIDED_BY_ID, R4EUIConstants.DECIDED_BY_LABEL);
/**
* Field ANOMALY_FIXED_BY_ID. (value is ""anomalyElement.fixedBy"")
*/
private static final String ANOMALY_FIXED_BY_ID = "anomalyElement.fixedBy";
/**
* Field ANOMALY_FIXED_BY_PROPERTY_DESCRIPTOR.
*/
protected static final PropertyDescriptor ANOMALY_FIXED_BY_PROPERTY_DESCRIPTOR = new PropertyDescriptor(
ANOMALY_FIXED_BY_ID, R4EUIConstants.FIXED_BY_LABEL);
/**
* Field ANOMALY_FOLLOWUP_BY_ID. (value is ""anomalyElement.followupBy"")
*/
private static final String ANOMALY_FOLLOWUP_BY_ID = "anomalyElement.followupBy";
/**
* Field ANOMALY_FOLLOWUP_BY_PROPERTY_DESCRIPTOR.
*/
protected static final PropertyDescriptor ANOMALY_FOLLOWUP_BY_PROPERTY_DESCRIPTOR = new PropertyDescriptor(
ANOMALY_FOLLOWUP_BY_ID, R4EUIConstants.FOLLOWUP_BY_LABEL);
/**
* Field DESCRIPTORS.
*/
private static final IPropertyDescriptor[] DESCRIPTORS = { ANOMALY_TITLE_PROPERTY_DESCRIPTOR,
ANOMALY_POSITION_PROPERTY_DESCRIPTOR, ANOMALY_AUTHOR_PROPERTY_DESCRIPTOR,
ANOMALY_CREATION_DATE_PROPERTY_DESCRIPTOR, ANOMALY_DESCRIPTION_PROPERTY_DESCRIPTOR,
ANOMALY_STATE_PROPERTY_DESCRIPTOR, ANOMALY_DUE_DATE_PROPERTY_DESCRIPTOR, ANOMALY_CLASS_PROPERTY_DESCRIPTOR,
ANOMALY_RANK_PROPERTY_DESCRIPTOR, ANOMALY_RULE_ID_PROPERTY_DESCRIPTOR,
ANOMALY_NOT_ACCEPTED_REASON_PROPERTY_DESCRIPTOR, ANOMALY_DECIDED_BY_PROPERTY_DESCRIPTOR,
ANOMALY_FIXED_BY_PROPERTY_DESCRIPTOR, ANOMALY_FOLLOWUP_BY_PROPERTY_DESCRIPTOR };
// ------------------------------------------------------------------------
// Constructors
// ------------------------------------------------------------------------
/**
* Constructor for AnomalyProperties.
*
* @param aElement
* R4EUIModelElement
*/
public AnomalyExtraProperties(R4EUIModelElement aElement) {
super(aElement);
}
// ------------------------------------------------------------------------
// Methods
// ------------------------------------------------------------------------
/**
* Method getPropertyDescriptors.
*
* @return IPropertyDescriptor[]
* @see org.eclipse.ui.views.properties.IPropertySource#getPropertyDescriptors()
*/
@Override
public IPropertyDescriptor[] getPropertyDescriptors() {
return DESCRIPTORS;
}
/**
* Method getPropertyValue.
*
* @param aId
* Object
* @return Object
* @see org.eclipse.ui.views.properties.IPropertySource#getPropertyValue(Object)
*/
@Override
public Object getPropertyValue(Object aId) {
final Object result = super.getPropertyValue(aId);
if (null != result) {
return result;
}
if (ANOMALY_STATE_ID.equals(aId)) {
return R4EUIAnomalyExtended.getStates()[Integer.valueOf(
((R4EUIAnomalyExtended) getElement()).getAnomaly().getState().getValue()).intValue()];
} else if (ANOMALY_NOT_ACCEPTED_REASON_ID.equals(aId)) {
if (null != ((R4EUIAnomalyExtended) getElement()).getAnomaly().getNotAcceptedReason()) {
return ((R4EUIAnomalyExtended) getElement()).getAnomaly().getNotAcceptedReason();
}
return "";
} else if (ANOMALY_DECIDED_BY_ID.equals(aId)) {
if (null != ((R4EUIAnomalyExtended) getElement()).getAnomaly().getDecidedByID()) {
return ((R4EUIAnomalyExtended) getElement()).getAnomaly().getDecidedByID();
}
return "";
} else if (ANOMALY_FIXED_BY_ID.equals(aId)) {
if (null != ((R4EUIAnomalyExtended) getElement()).getAnomaly().getFixedByID()) {
return ((R4EUIAnomalyExtended) getElement()).getAnomaly().getFixedByID();
}
return "";
} else if (ANOMALY_FOLLOWUP_BY_ID.equals(aId)) {
if (null != ((R4EUIAnomalyExtended) getElement()).getAnomaly().getFollowUpByID()) {
return ((R4EUIAnomalyExtended) getElement()).getAnomaly().getFollowUpByID();
}
return "";
}
return null;
}
//NOTE: Since state management for anomalies is complex, the value are only editable using the tabbed properties view
}