blob: 53bf91ed797a596fd94663bcda33081fe83e25ec [file] [log] [blame]
// $codepro.audit.disable com.instantiations.assist.eclipse.analysis.audit.rule.effectivejava.alwaysOverridetoString.alwaysOverrideToString, com.instantiations.assist.eclipse.analysis.deserializeabilitySecurity, com.instantiations.assist.eclipse.analysis.disallowReturnMutable, com.instantiations.assist.eclipse.analysis.enforceCloneableUsageSecurity, com.instantiations.assist.eclipse.analysis.instanceFieldSecurity, com.instantiations.assist.eclipse.analysis.mutabilityOfArrays
/*******************************************************************************
* Copyright (c) 2010, 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 implements the Review Group element of the UI model
*
* Contributors:
* Sebastien Dubois - Created for Mylyn Review R4E project
* Jacques Bouthillier - Add method to read the group path file for Report
*
******************************************************************************/
package org.eclipse.mylyn.reviews.r4e.ui.internal.model;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.common.util.URI;
import org.eclipse.jface.dialogs.ErrorDialog;
import org.eclipse.jface.window.Window;
import org.eclipse.mylyn.reviews.frame.core.model.Review;
import org.eclipse.mylyn.reviews.frame.core.model.ReviewComponent;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EDecision;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EReview;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EReviewComponent;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EReviewDecision;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EReviewGroup;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EReviewPhase;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EReviewState;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EReviewType;
import org.eclipse.mylyn.reviews.r4e.core.model.RModelFactory;
import org.eclipse.mylyn.reviews.r4e.core.model.serial.Persistence.RModelFactoryExt;
import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.CompatibilityException;
import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.OutOfSyncException;
import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.ResourceHandlingException;
import org.eclipse.mylyn.reviews.r4e.ui.R4EUIPlugin;
import org.eclipse.mylyn.reviews.r4e.ui.internal.dialogs.IReviewInputDialog;
import org.eclipse.mylyn.reviews.r4e.ui.internal.dialogs.R4EUIDialogFactory;
import org.eclipse.mylyn.reviews.r4e.ui.internal.preferences.PreferenceConstants;
import org.eclipse.mylyn.reviews.r4e.ui.internal.properties.general.ReviewGroupProperties;
import org.eclipse.mylyn.reviews.r4e.ui.internal.utils.R4EUIConstants;
import org.eclipse.mylyn.reviews.r4e.ui.internal.utils.UIUtils;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.views.properties.IPropertySource;
/**
* @author Sebastien Dubois
* @version $Revision: 1.0 $
*/
public class R4EUIReviewGroup extends R4EUIModelElement {
// ------------------------------------------------------------------------
// Constants
// ------------------------------------------------------------------------
/**
* Field REVIEW_GROUP_ICON_FILE. (value is ""icons/obj16/revgrp_obj.gif"")
*/
public static final String REVIEW_GROUP_ICON_FILE = "icons/obj16/revgrp_obj.gif";
/**
* Field REVIEW_GROUP_CLOSED_ICON_FILE. (value is ""icons/obj16/revgrpclsd_obj.gif"")
*/
public static final String REVIEW_GROUP_CLOSED_ICON_FILE = "icons/obj16/revgrpclsd_obj.gif";
/**
* Field NEW_CHILD_ELEMENT_COMMAND_NAME. (value is ""New Review..."")
*/
private static final String NEW_CHILD_ELEMENT_COMMAND_NAME = "New Review...";
/**
* Field NEW_CHILD_ELEMENT_COMMAND_TOOLTIP. (value is ""Add a new review to the current review group"")
*/
private static final String NEW_CHILD_ELEMENT_COMMAND_TOOLTIP = "Add a New Review to the Current Review Group";
/**
* Field OPEN_ELEMENT_COMMAND_NAME. (value is ""Open Review Group"")
*/
private static final String OPEN_ELEMENT_COMMAND_NAME = "Open Review Group";
/**
* Field OPEN_ELEMENT_COMMAND_TOOLTIP. (value is ""Open and Load Data for this Review Group"")
*/
private static final String OPEN_ELEMENT_COMMAND_TOOLTIP = "Open and Load Data for this Review Group";
/**
* Field CLOSE_ELEMENT_COMMAND_NAME. (value is ""Close Review Group"")
*/
private static final String CLOSE_ELEMENT_COMMAND_NAME = "Close Review Group";
/**
* Field CLOSE_ELEMENT_COMMAND_TOOLTIP. (value is ""Close and Unload Data for this Review Group"")
*/
private static final String CLOSE_ELEMENT_COMMAND_TOOLTIP = "Close and Unload Data for this Review Group";
/**
* Field REMOVE_ELEMENT_ACTION_NAME. (value is ""Disable Review Group"")
*/
private static final String REMOVE_ELEMENT_COMMAND_NAME = "Disable Review Group";
/**
* Field REMOVE_ELEMENT_ACTION_TOOLTIP. (value is ""Disable this Review Group"")
*/
private static final String REMOVE_ELEMENT_COMMAND_TOOLTIP = "Disable this Review Group";
/**
* Field RESTORE_ELEMENT_COMMAND_NAME. (value is ""Restore Review Group"")
*/
private static final String RESTORE_ELEMENT_COMMAND_NAME = "Restore Review Group";
/**
* Field RESTORE_ELEMENT_ACTION_TOOLTIP. (value is ""Restore this disabled Review Group"")
*/
private static final String RESTORE_ELEMENT_COMMAND_TOOLTIP = "Restore this disabled Review Group";
// ------------------------------------------------------------------------
// Member variables
// ------------------------------------------------------------------------
/**
* Field fGroup.
*/
protected R4EReviewGroup fGroup;
/**
* Field fGroupFileURI.
*/
private final URI fGroupFileURI;
/**
* Field fReviews.
*/
private final List<R4EUIReviewBasic> fReviews;
/**
* Field fRuleSets.
*/
private final List<R4EUIRuleSet> fRuleSets;
// ------------------------------------------------------------------------
// Constructors
// ------------------------------------------------------------------------
/**
* Constructor for R4EUIReviewGroup.
*
* @param aParent
* IR4EUIModelElement
* @param aGroup
* R4EReviewGroup
* @param aOpen
* boolean
*/
public R4EUIReviewGroup(IR4EUIModelElement aParent, R4EReviewGroup aGroup, boolean aOpen) {
super(aParent, aGroup.getName());
fReadOnly = false;
fGroup = aGroup;
fGroupFileURI = aGroup.eResource().getURI();
fReviews = new ArrayList<R4EUIReviewBasic>();
fRuleSets = new ArrayList<R4EUIRuleSet>();
fOpen = aOpen;
}
// ------------------------------------------------------------------------
// Methods
// ------------------------------------------------------------------------
/**
* Method getImageLocation.
*
* @return String
* @see org.eclipse.mylyn.reviews.r4e.ui.internal.model.IR4EUIModelElement#getImageLocation()
*/
public String getImageLocation() {
if (isOpen()) {
return REVIEW_GROUP_ICON_FILE;
}
return REVIEW_GROUP_CLOSED_ICON_FILE;
}
/**
* Method getToolTip.
*
* @return String
* @see org.eclipse.mylyn.reviews.r4e.ui.internal.model.IR4EUIModelElement#getToolTip()
*/
@Override
public String getToolTip() {
return R4EUIConstants.FILE_LOCATION_LABEL + URI.decode(fGroupFileURI.devicePath());
}
/**
* Method getAdapter.
*
* @param adapter
* Class
* @return Object
* @see org.eclipse.core.runtime.IAdaptable#getAdapter(Class)
*/
@Override
public Object getAdapter(@SuppressWarnings("rawtypes")
Class adapter) {
if (IR4EUIModelElement.class.equals(adapter)) {
return this;
}
if (IPropertySource.class.equals(adapter)) {
return new ReviewGroupProperties(this);
}
return null;
}
//Attributes
/**
* Method getReviewGroup.
*
* @return R4EReviewGroup
*/
public R4EReviewGroup getReviewGroup() {
return fGroup;
}
/**
* Method getGroupFile.
*
* @return R4EReviewGroup
*/
public String getGroupFile() {
return URI.decode(fGroupFileURI.devicePath());
}
/**
* Method getRuleSets.
*
* @return List<R4EUIRuleSet>
*/
public List<R4EUIRuleSet> getRuleSets() {
return fRuleSets;
}
/**
* Set serialization model data by copying it from the passed-in object
*
* @param aModelComponent
* - a serialization model element to copy information from
* @throws ResourceHandlingException
* @throws OutOfSyncException
* @see org.eclipse.mylyn.reviews.r4e.ui.internal.model.IR4EUIModelElement#setModelData(R4EReviewComponent)
*/
@Override
public void setModelData(ReviewComponent aModelComponent) throws ResourceHandlingException, OutOfSyncException {
//Set data in model element
final Long bookNum = R4EUIModelController.FResourceUpdater.checkOut(fGroup, R4EUIModelController.getReviewer());
fGroup.setDescription(((R4EReviewGroup) aModelComponent).getDescription());
fGroup.getAvailableProjects().addAll(((R4EReviewGroup) aModelComponent).getAvailableProjects());
fGroup.getAvailableComponents().addAll(((R4EReviewGroup) aModelComponent).getAvailableComponents());
fGroup.setDefaultEntryCriteria(((R4EReviewGroup) aModelComponent).getDefaultEntryCriteria());
fGroup.getDesignRuleLocations().addAll(((R4EReviewGroup) aModelComponent).getDesignRuleLocations());
R4EUIModelController.FResourceUpdater.checkIn(bookNum);
}
/**
* Create a serialization model element object
*
* @return the new serialization element object
* @see org.eclipse.mylyn.reviews.r4e.ui.internal.model.IR4EUIModelElement#createChildModelDataElement()
*/
@Override
public List<ReviewComponent> createChildModelDataElement() {
//Get comment from user and set it in model data
final List<ReviewComponent> tempReviews = new ArrayList<ReviewComponent>();
final IReviewInputDialog dialog = R4EUIDialogFactory.getInstance().getReviewInputDialog(this);
dialog.create();
final int result = dialog.open();
if (result == Window.OK) {
R4EReview tempReview;
//All reviews
final R4EReviewType type = dialog.getReviewTypeValue();
if (type.equals(R4EReviewType.R4E_REVIEW_TYPE_FORMAL)) {
tempReview = RModelFactory.eINSTANCE.createR4EFormalReview();
} else {
tempReview = RModelFactory.eINSTANCE.createR4EReview();
}
tempReview.setType(type);
tempReview.setName(dialog.getReviewNameValue());
tempReview.setExtraNotes(dialog.getReviewDescriptionValue());
tempReview.setDueDate(dialog.getDueDate());
tempReview.setProject(dialog.getProjectValue());
for (String component : dialog.getComponentsValues()) {
tempReview.getComponents().add(component);
}
tempReview.setEntryCriteria(dialog.getEntryCriteriaValue());
tempReview.setObjectives(dialog.getObjectivesValue());
tempReview.setReferenceMaterial(dialog.getReferenceMaterialValue());
//Set default exit decision for INFORMAL review
final R4EReviewDecision reviewDecision = RModelFactoryExt.eINSTANCE.createR4EReviewDecision();
if (type.equals(R4EReviewType.R4E_REVIEW_TYPE_INFORMAL)) {
reviewDecision.setValue(R4EDecision.R4E_REVIEW_DECISION_ACCEPTED);
} else {
reviewDecision.setValue(R4EDecision.R4E_REVIEW_DECISION_NONE);
}
tempReview.setDecision(reviewDecision);
tempReviews.add(tempReview);
}
return tempReviews;
}
/**
* Close the model element (i.e. disable it)
*
* @see org.eclipse.mylyn.reviews.r4e.ui.internal.model.IR4EUIModelElement#close()
*/
@Override
public void close() {
//Remove all children references
R4EUIReviewBasic review = null;
final int reviewsSize = fReviews.size();
for (int i = 0; i < reviewsSize; i++) {
review = fReviews.get(i);
if (!review.isOpen()) {
continue; //skip reviews that are already closed
}
review.close();
}
fReviews.clear();
fRuleSets.clear();
fOpen = false;
fReadOnly = false;
R4EUIModelController.FModelExt.closeR4EReviewGroup(fGroup); //Notify model
fImage = UIUtils.loadIcon(REVIEW_GROUP_CLOSED_ICON_FILE);
}
/**
* Open the model element (i.e. enable it)
*
* @throws ResourceHandlingException
* @throws CompatibilityException
* @see org.eclipse.mylyn.reviews.r4e.ui.internal.model.IR4EUIModelElement#open()
*/
@Override
public void open() throws ResourceHandlingException, CompatibilityException {
//Load model information
fGroup = R4EUIModelController.FModelExt.openR4EReviewGroup(fGroupFileURI);
if (checkCompatibility()) {
final EList<Review> reviews = fGroup.getReviews();
if (null != reviews) {
final int reviewsSize = reviews.size();
R4EReview review = null;
R4EUIReviewBasic uiReview = null;
for (int i = 0; i < reviewsSize; i++) {
review = (R4EReview) reviews.get(i);
if (review.isEnabled()
|| R4EUIPlugin.getDefault()
.getPreferenceStore()
.getBoolean(PreferenceConstants.P_SHOW_DISABLED)) {
uiReview = null;
if (review.getType().equals(R4EReviewType.R4E_REVIEW_TYPE_FORMAL)) {
uiReview = new R4EUIReviewExtended(this, review, review.getType(), false);
((R4EUIReviewExtended) uiReview).setName(((R4EUIReviewExtended) uiReview).getPhaseString(((R4EReviewState) review.getState()).getState())
+ ": " + uiReview.getName());
} else {
uiReview = new R4EUIReviewBasic(this, review, review.getType(), false);
}
addChildren(uiReview);
}
}
}
//Close and Reopen the RulesSet to make sure we have the latest information
final List<String> ruleSetlocations = fGroup.getDesignRuleLocations();
for (String ruleSetlocation : ruleSetlocations) {
for (R4EUIRuleSet ruleSet : ((R4EUIRootElement) getParent()).getRuleSets()) {
if (ruleSet.getRuleSet().getName().equals(ruleSetlocation)) {
fRuleSets.add(ruleSet);
break;
}
}
}
fOpen = true;
fImage = UIUtils.loadIcon(REVIEW_GROUP_ICON_FILE);
} else {
R4EUIModelController.FModelExt.closeR4EReviewGroup(fGroup); //Notify model
}
}
/**
* Check version compatibility between the element(s) to load and the current R4E application
*
* @return boolean
*/
private boolean checkCompatibility() {
final int checkResult = fGroup.getCompatibility();
switch (checkResult) {
case R4EUIConstants.VERSION_APPLICATION_OLDER:
UIUtils.displayCompatibilityErrorDialog();
return false;
case R4EUIConstants.VERSION_APPLICATION_NEWER:
final int result = UIUtils.displayCompatibilityWarningDialog(fGroup.getFragmentVersion(),
fGroup.getApplicationVersion());
switch (result) {
case R4EUIConstants.OPEN_NORMAL:
//Upgrade version immediately
try {
final Long bookNum = R4EUIModelController.FResourceUpdater.checkOut(fGroup,
R4EUIModelController.getReviewer());
fGroup.setFragmentVersion(fGroup.getApplicationVersion());
R4EUIModelController.FResourceUpdater.checkIn(bookNum);
} catch (ResourceHandlingException e) {
UIUtils.displayResourceErrorDialog(e);
return false;
} catch (OutOfSyncException e) {
UIUtils.displaySyncErrorDialog(e);
return false;
}
fReadOnly = false;
return true;
case R4EUIConstants.OPEN_READONLY:
fReadOnly = true;
return true;
default:
//Assume Cancel
return false;
}
default:
//Normal case, do nothing
fReadOnly = false;
return true;
}
}
/**
* Method setEnabled.
*
* @param aEnabled
* boolean
* @throws ResourceHandlingException
* @throws OutOfSyncException
* @throws CompatibilityException
* @see org.eclipse.mylyn.reviews.r4e.ui.internal.model.IR4EUIModelElement#setEnabled(boolean)
*/
@Override
public void setEnabled(boolean aEnabled) throws ResourceHandlingException, OutOfSyncException,
CompatibilityException {
//NOTE we need to open the model element temporarly to be able to set the enabled state
fGroup = R4EUIModelController.FModelExt.openR4EReviewGroup(fGroupFileURI);
final Long bookNum = R4EUIModelController.FResourceUpdater.checkOut(fGroup, R4EUIModelController.getReviewer());
fGroup.setEnabled(aEnabled);
R4EUIModelController.FResourceUpdater.checkIn(bookNum);
R4EUIModelController.FModelExt.closeR4EReviewGroup(fGroup);
}
/**
* Method isEnabled.
*
* @return boolean
* @see org.eclipse.mylyn.reviews.r4e.ui.internal.model.IR4EUIModelElement#isEnabled()
*/
@Override
public boolean isEnabled() {
return fGroup.isEnabled();
}
//Hierarchy
/**
* Method getChildren.
*
* @return IR4EUIModelElement[]
* @see org.eclipse.mylyn.reviews.r4e.ui.internal.model.IR4EUIModelElement#getChildren()
*/
@Override
public IR4EUIModelElement[] getChildren() {
return fReviews.toArray(new R4EUIReviewBasic[fReviews.size()]);
}
/**
* Method hasChildren
*
* @return boolean
* @see org.eclipse.mylyn.reviews.r4e.ui.internal.model.IR4EUIModelElement#hasChildren()
*/
@Override
public boolean hasChildren() {
if (isOpen()) {
if (fReviews.size() > 0) {
return true;
}
}
return false;
}
/**
* Method createChildren.
*
* @param aModelComponent
* - the serialization model component object
* @return IR4EUIModelElement
* @throws ResourceHandlingException
* @throws OutOfSyncException
* @see org.eclipse.mylyn.reviews.r4e.ui.internal.model.IR4EUIModelElement#createChildren(R4EReviewComponent)
*/
@Override
public IR4EUIModelElement createChildren(ReviewComponent aModelComponent) throws ResourceHandlingException,
OutOfSyncException {
final String reviewName = ((R4EReview) aModelComponent).getName();
final R4EReviewType type = ((R4EReview) aModelComponent).getType();
//Check if review already exists. If so it cannot be recreated
for (R4EUIReviewBasic review : fReviews) {
if (review.getReview().getName().equals(reviewName)) {
final ErrorDialog dialog = new ErrorDialog(null, R4EUIConstants.DIALOG_TITLE_ERROR,
"Error while creating new review ", new Status(IStatus.ERROR, R4EUIPlugin.PLUGIN_ID, 0,
"Review " + reviewName + " already exists", null), IStatus.ERROR);
Display.getDefault().syncExec(new Runnable() {
public void run() {
dialog.open();
}
});
return null;
}
}
final R4EUIReviewBasic addedChild;
if (type.equals(R4EReviewType.R4E_REVIEW_TYPE_FORMAL)) {
addedChild = new R4EUIReviewExtended(this, R4EUIModelController.FModelExt.createR4EFormalReview(
getReviewGroup(), reviewName, R4EUIModelController.getReviewer()), type, true);
((R4EUIReviewExtended) addedChild).updatePhase(R4EReviewPhase.R4E_REVIEW_PHASE_STARTED);
} else {
addedChild = new R4EUIReviewBasic(this, R4EUIModelController.FModelExt.createR4EReview(getReviewGroup(),
reviewName, R4EUIModelController.getReviewer()), type, true);
addedChild.updatePhase(R4EReviewPhase.R4E_REVIEW_PHASE_STARTED);
}
addedChild.setModelData(aModelComponent);
addChildren(addedChild);
return addedChild;
}
/**
* Method addChildren.
*
* @param aChildToAdd
* IR4EUIModelElement
* @see org.eclipse.mylyn.reviews.r4e.ui.internal.model.IR4EUIModelElement#addChildren(IR4EUIModelElement)
*/
@Override
public void addChildren(IR4EUIModelElement aChildToAdd) {
fReviews.add((R4EUIReviewBasic) aChildToAdd);
}
/**
* Method removeChildren.
*
* @param aChildToRemove
* IR4EUIModelElement
* @param aFileRemove
* - also remove from file (hard remove)
* @throws OutOfSyncException
* @throws ResourceHandlingException
* @throws CompatibilityException
* @see org.eclipse.mylyn.reviews.r4e.ui.internal.model.IR4EUIModelElement#removeChildren(IR4EUIModelElement)
*/
@Override
public void removeChildren(IR4EUIModelElement aChildToRemove, boolean aFileRemove)
throws ResourceHandlingException, OutOfSyncException, CompatibilityException {
//This was the current review, so tell the controller that no review is now active
if (((R4EUIReviewBasic) aChildToRemove).isOpen()) {
R4EUIModelController.setActiveReview(null);
}
final R4EUIReviewBasic removedElement = fReviews.get(fReviews.indexOf(aChildToRemove));
//Also recursively remove all children
removedElement.removeAllChildren(aFileRemove);
/* TODO uncomment when core model supports hard-removing of elements
if (aFileRemove) removedElement.getReview().remove());
else */
removedElement.setEnabled(false);
//Remove element from UI if the show disabled element option is off
if (!(R4EUIPlugin.getDefault().getPreferenceStore().getBoolean(PreferenceConstants.P_SHOW_DISABLED))) {
fReviews.remove(removedElement);
}
}
/**
* Method removeAllChildren.
*
* @param aFileRemove
* boolean
* @throws OutOfSyncException
* @throws ResourceHandlingException
* @throws CompatibilityException
* @see org.eclipse.mylyn.reviews.r4e.ui.internal.model.IR4EUIModelElement#removeAllChildren(boolean)
*/
@Override
public void removeAllChildren(boolean aFileRemove) throws ResourceHandlingException, OutOfSyncException,
CompatibilityException {
//Recursively remove all children
for (R4EUIReviewBasic review : fReviews) {
removeChildren(review, aFileRemove);
}
}
//Listeners
/* *//**
* Method addListener.
*
* @param aProvider
* ReviewNavigatorContentProvider
* @see org.eclipse.mylyn.reviews.r4e.ui.internal.model.IR4EUIModelElement#addListener(ReviewNavigatorContentProvider)
*/
/*
@Override
public void addListener(ReviewNavigatorContentProvider aProvider) {
super.addListener(aProvider);
if (null != fReviews) {
R4EUIReviewBasic element = null;
for (final Iterator<R4EUIReviewBasic> iterator = fReviews.iterator(); iterator.hasNext();) {
element = iterator.next();
element.addListener(aProvider);
}
}
}
*//**
* Method removeListener.
*
* @param aProvider
* ReviewNavigatorContentProvider
* @see org.eclipse.mylyn.reviews.r4e.ui.internal.model.IR4EUIModelElement#removeListener()
*/
/*
@Override
public void removeListener(ReviewNavigatorContentProvider aProvider) {
super.removeListener(aProvider);
if (null != fReviews) {
R4EUIReviewBasic element = null;
for (final Iterator<R4EUIReviewBasic> iterator = fReviews.iterator(); iterator.hasNext();) {
element = iterator.next();
element.removeListener(aProvider);
}
}
}*/
//Commands
/**
* Method isOpenElementCmd.
*
* @return boolean
* @see org.eclipse.mylyn.reviews.r4e.ui.internal.model.IR4EUIModelElement#isOpenElementCmd()
*/
@Override
public boolean isOpenElementCmd() {
if (!isEnabled() || isOpen()) {
return false;
}
return true;
}
/**
* Method getOpenElementCmdName.
*
* @return String
* @see org.eclipse.mylyn.reviews.r4e.ui.internal.model.IR4EUIModelElement#getOpenElementCmdName()
*/
@Override
public String getOpenElementCmdName() {
return OPEN_ELEMENT_COMMAND_NAME;
}
/**
* Method getOpenElementCmdTooltip.
*
* @return String
* @see org.eclipse.mylyn.reviews.r4e.ui.internal.model.IR4EUIModelElement#getOpenElementCmdTooltip()
*/
@Override
public String getOpenElementCmdTooltip() {
return OPEN_ELEMENT_COMMAND_TOOLTIP;
}
/**
* Method isCloseElementCmd.
*
* @return boolean
* @see org.eclipse.mylyn.reviews.r4e.ui.internal.model.IR4EUIModelElement#isCloseElementCmd()
*/
@Override
public boolean isCloseElementCmd() {
if (isEnabled() && isOpen()) {
return true;
}
return false;
}
/**
* Method getCloseElementCmdName.
*
* @return String
* @see org.eclipse.mylyn.reviews.r4e.ui.internal.model.IR4EUIModelElement#getCloseElementCmdName()
*/
@Override
public String getCloseElementCmdName() {
return CLOSE_ELEMENT_COMMAND_NAME;
}
/**
* Method getCloseElementCmdTooltip.
*
* @return String
* @see org.eclipse.mylyn.reviews.r4e.ui.internal.model.IR4EUIModelElement#getCloseElementCmdTooltip()
*/
@Override
public String getCloseElementCmdTooltip() {
return CLOSE_ELEMENT_COMMAND_TOOLTIP;
}
/**
* Method isAddChildElementCmd.
*
* @return boolean
* @see org.eclipse.mylyn.reviews.r4e.ui.internal.model.IR4EUIModelElement#isNewChildElementCmd()
*/
@Override
public boolean isNewChildElementCmd() {
if (isEnabled() && isOpen() && !isReadOnly()) {
return true;
}
return false;
}
/**
* Method getAddChildElementCmdName.
*
* @return String
* @see org.eclipse.mylyn.reviews.r4e.ui.internal.model.IR4EUIModelElement#getNewChildElementCmdName()
*/
@Override
public String getNewChildElementCmdName() {
return NEW_CHILD_ELEMENT_COMMAND_NAME;
}
/**
* Method getAddChildElementCmdTooltip.
*
* @return String
* @see org.eclipse.mylyn.reviews.r4e.ui.internal.model.IR4EUIModelElement#getNewChildElementCmdTooltip()
*/
@Override
public String getNewChildElementCmdTooltip() {
return NEW_CHILD_ELEMENT_COMMAND_TOOLTIP;
}
/**
* Method isRemoveElementCmd.
*
* @return boolean
* @see org.eclipse.mylyn.reviews.r4e.ui.internal.model.IR4EUIModelElement#isRemoveElementCmd()
*/
@Override
public boolean isRemoveElementCmd() {
if (!isOpen() && isEnabled() && !isReadOnly()) {
return true;
}
return false;
}
/**
* Method getRemoveElementCmdName.
*
* @return String
* @see org.eclipse.mylyn.reviews.r4e.ui.internal.model.IR4EUIModelElement#getRemoveElementCmdName()
*/
@Override
public String getRemoveElementCmdName() {
return REMOVE_ELEMENT_COMMAND_NAME;
}
/**
* Method getRemoveElementCmdTooltip.
*
* @return String
* @see org.eclipse.mylyn.reviews.r4e.ui.internal.model.IR4EUIModelElement#getRemoveElementCmdTooltip()
*/
@Override
public String getRemoveElementCmdTooltip() {
return REMOVE_ELEMENT_COMMAND_TOOLTIP;
}
/**
* Method isRestoreElementCmd.
*
* @return boolean
* @see org.eclipse.mylyn.reviews.r4e.ui.internal.model.IR4EUIModelElement#iisRestoreElementCmd()
*/
@Override
public boolean isRestoreElementCmd() {
if (isOpen() || isEnabled() || isReadOnly()) {
return false;
}
return true;
}
/**
* Method getRestoreElementCmdName.
*
* @return String
* @see org.eclipse.mylyn.reviews.r4e.ui.internal.model.IR4EUIModelElement#getRestoreElementCmdName()
*/
@Override
public String getRestoreElementCmdName() {
return RESTORE_ELEMENT_COMMAND_NAME;
}
/**
* Method getRestoreElementCmdTooltip.
*
* @return String
* @see org.eclipse.mylyn.reviews.r4e.ui.internal.model.IR4EUIModelElement#getRestoreElementCmdTooltip()
*/
@Override
public String getRestoreElementCmdTooltip() {
return RESTORE_ELEMENT_COMMAND_TOOLTIP;
}
}