// $codepro.audit.disable com.instantiations.assist.eclipse.analysis.audit.rule.effectivejava.alwaysOverridetoString.alwaysOverrideToString, staticFieldSecurity, com.instantiations.assist.eclipse.analysis.deserializeabilitySecurity, com.instantiations.assist.eclipse.analysis.enforceCloneableUsageSecurity | |
/******************************************************************************* | |
* Copyright (c) 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 | |
* | |
* Contributors: | |
* Ericsson AB - initial API and implementation | |
*******************************************************************************/ | |
package org.eclipse.mylyn.reviews.r4e.ui.internal.properties.tabbed; | |
import org.eclipse.core.resources.IResource; | |
import org.eclipse.emf.common.util.EList; | |
import org.eclipse.mylyn.reviews.r4e.core.model.R4EFileContext; | |
import org.eclipse.mylyn.reviews.r4e.core.model.R4EFileVersion; | |
import org.eclipse.mylyn.reviews.r4e.core.model.R4EReviewPhase; | |
import org.eclipse.mylyn.reviews.r4e.core.model.R4EReviewState; | |
import org.eclipse.mylyn.reviews.r4e.ui.internal.model.R4EUIFileContext; | |
import org.eclipse.mylyn.reviews.r4e.ui.internal.model.R4EUIModelController; | |
import org.eclipse.mylyn.reviews.r4e.ui.internal.model.R4EUIPostponedFile; | |
import org.eclipse.mylyn.reviews.r4e.ui.internal.utils.CommandUtils; | |
import org.eclipse.mylyn.reviews.r4e.ui.internal.utils.R4EUIConstants; | |
import org.eclipse.mylyn.reviews.r4e.ui.internal.utils.UIUtils; | |
import org.eclipse.swt.SWT; | |
import org.eclipse.swt.custom.CLabel; | |
import org.eclipse.swt.custom.ScrolledComposite; | |
import org.eclipse.swt.layout.FormAttachment; | |
import org.eclipse.swt.layout.FormData; | |
import org.eclipse.swt.layout.FormLayout; | |
import org.eclipse.swt.layout.GridData; | |
import org.eclipse.swt.layout.GridLayout; | |
import org.eclipse.swt.widgets.Button; | |
import org.eclipse.swt.widgets.Composite; | |
import org.eclipse.swt.widgets.Event; | |
import org.eclipse.swt.widgets.Group; | |
import org.eclipse.swt.widgets.Listener; | |
import org.eclipse.swt.widgets.Text; | |
import org.eclipse.ui.forms.events.ExpansionAdapter; | |
import org.eclipse.ui.forms.events.ExpansionEvent; | |
import org.eclipse.ui.forms.widgets.ExpandableComposite; | |
import org.eclipse.ui.views.properties.tabbed.ITabbedPropertyConstants; | |
import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage; | |
import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory; | |
/** | |
* This class implements the tabbed property section for the File Context model element | |
* | |
* @author Sebastien Dubois | |
* @version $Revision: 1.0 $ | |
*/ | |
public class FileContextTabPropertySection extends ModelElementTabPropertySection { | |
// ------------------------------------------------------------------------ | |
// Member variables | |
// ------------------------------------------------------------------------ | |
/** | |
* Field fBaseFileNameText. | |
*/ | |
protected Text fBaseFileNameText = null; | |
/** | |
* Field fBaseFilePathAbsoluteText. | |
*/ | |
protected Text fBaseFilePathAbsoluteText = null; | |
/** | |
* Field fBaseFilePathProjectText. | |
*/ | |
protected Text fBaseFilePathProjectText = null; | |
/** | |
* Field fBaseFilePathRepositoryText. | |
*/ | |
protected Text fBaseFilePathRepositoryText = null; | |
/** | |
* Field fBaseFileVersionText. | |
*/ | |
protected Text fBaseFileVersionText = null; | |
/** | |
* Field fTargetFileNameText. | |
*/ | |
protected Text fTargetFileNameText = null; | |
/** | |
* Field fTargetFilePathAbsoluteText. | |
*/ | |
protected Text fTargetFilePathAbsoluteText = null; | |
/** | |
* Field fTargetFilePathProjectText. | |
*/ | |
protected Text fTargetFilePathProjectText = null; | |
/** | |
* Field fTargetFilePathRepositoryText. | |
*/ | |
protected Text fTargetFilePathRepositoryText = null; | |
/** | |
* Field fTargetFileVersionText. | |
*/ | |
protected Text fTargetFileVersionText = null; | |
/** | |
* Field fAssignedToComposite. | |
*/ | |
private Composite fAssignedToComposite; | |
/** | |
* Field fAssignedToText. | |
*/ | |
private Text fAssignedToText; | |
/** | |
* Field fAssignedToButton. | |
*/ | |
private Button fAssignedToButton; | |
/** | |
* Field fUnassignedFromButton. | |
*/ | |
private Button fUnassignedFromButton; | |
// ------------------------------------------------------------------------ | |
// Methods | |
// ------------------------------------------------------------------------ | |
/** | |
* Method createControls. | |
* | |
* @param aParent | |
* Composite | |
* @param aTabbedPropertySheetPage | |
* TabbedPropertySheetPage | |
* @see org.eclipse.ui.views.properties.tabbed.ISection#createControls(Composite, TabbedPropertySheetPage) | |
*/ | |
@Override | |
public void createControls(Composite aParent, TabbedPropertySheetPage aTabbedPropertySheetPage) { | |
super.createControls(aParent, aTabbedPropertySheetPage); | |
//Tell element to build its own detailed tab layout | |
final TabbedPropertySheetWidgetFactory widgetFactory = aTabbedPropertySheetPage.getWidgetFactory(); | |
final Composite composite = widgetFactory.createFlatFormComposite(aParent); | |
FormData data = null; | |
//Target File Version composite (read-only) | |
widgetFactory.setBorderStyle(SWT.NULL); | |
final Composite targetFileComposite = widgetFactory.createGroup(composite, "Target File"); | |
final FormLayout targetFileLayout = new FormLayout(); | |
targetFileComposite.setLayout(targetFileLayout); | |
createTargetFileVersionComposite(targetFileComposite, widgetFactory); | |
data = new FormData(); | |
data.left = new FormAttachment(0, 0); | |
data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals | |
data.top = new FormAttachment(0, ITabbedPropertyConstants.VSPACE); | |
targetFileComposite.setLayoutData(data); | |
//Base File Version composite (read-only) | |
final Group baseFileComposite = widgetFactory.createGroup(composite, "Base File"); | |
final FormLayout baseFileLayout = new FormLayout(); | |
baseFileComposite.setLayout(baseFileLayout); | |
createBaseFileVersionComposite(baseFileComposite, widgetFactory); | |
data = new FormData(); | |
data.left = new FormAttachment(0, 0); | |
data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals | |
data.top = new FormAttachment(targetFileComposite, ITabbedPropertyConstants.VSPACE); | |
baseFileComposite.setLayoutData(data); | |
//Assigned To | |
fAssignedToComposite = widgetFactory.createComposite(composite); | |
data = new FormData(); | |
data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH); | |
data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals | |
data.top = new FormAttachment(baseFileComposite, ITabbedPropertyConstants.VSPACE); | |
fAssignedToComposite.setToolTipText(R4EUIConstants.ASSIGNED_TO_TOOLTIP); | |
fAssignedToComposite.setLayoutData(data); | |
fAssignedToComposite.setLayout(new GridLayout(3, false)); | |
widgetFactory.setBorderStyle(SWT.BORDER); | |
fAssignedToText = widgetFactory.createText(fAssignedToComposite, ""); | |
fAssignedToText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); | |
fAssignedToText.setEditable(false); | |
fAssignedToButton = widgetFactory.createButton(fAssignedToComposite, R4EUIConstants.ADD_LABEL, SWT.NONE); | |
fAssignedToButton.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false)); | |
fAssignedToButton.addListener(SWT.Selection, new Listener() { | |
public void handleEvent(Event aEvent) { | |
((R4EUIFileContext) fProperties.getElement()).addAssignees(UIUtils.getAssignParticipants()); | |
refresh(); | |
R4EUIModelController.getNavigatorView().getTreeViewer().refresh(); | |
} | |
}); | |
fUnassignedFromButton = widgetFactory.createButton(fAssignedToComposite, R4EUIConstants.REMOVE_LABEL, SWT.NONE); | |
fUnassignedFromButton.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false)); | |
fUnassignedFromButton.addListener(SWT.Selection, new Listener() { | |
public void handleEvent(Event aEvent) { | |
((R4EUIFileContext) fProperties.getElement()).removeAssignees(UIUtils.getUnassignParticipants(fProperties.getElement())); | |
refresh(); | |
R4EUIModelController.getNavigatorView().getTreeViewer().refresh(); | |
} | |
}); | |
final CLabel assignedToLabel = widgetFactory.createCLabel(composite, R4EUIConstants.ASSIGNED_TO_LABEL); | |
data = new FormData(); | |
data.left = new FormAttachment(0, 0); | |
data.right = new FormAttachment(fAssignedToComposite, -ITabbedPropertyConstants.HSPACE); | |
data.top = new FormAttachment(fAssignedToComposite, 0, SWT.CENTER); | |
assignedToLabel.setToolTipText(R4EUIConstants.ASSIGNED_TO_TOOLTIP); | |
assignedToLabel.setLayoutData(data); | |
} | |
/** | |
* Method createBaseFileVersionComposite. | |
* | |
* @param aParent | |
* Composite | |
* @param aWidgetFactory | |
* TabbedPropertySheetWidgetFactory | |
*/ | |
private void createBaseFileVersionComposite(final Composite aParent, TabbedPropertySheetWidgetFactory aWidgetFactory) { | |
//File Name (read-only) | |
fBaseFileNameText = aWidgetFactory.createText(aParent, "", SWT.NULL); | |
FormData data = new FormData(); | |
data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH); | |
data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals | |
data.top = new FormAttachment(aParent, ITabbedPropertyConstants.VSPACE); | |
fBaseFileNameText.setEditable(false); | |
fBaseFileNameText.setToolTipText(R4EUIConstants.FILECONTEXT_BASE_FILE_NAME_TOOLTIP); | |
fBaseFileNameText.setLayoutData(data); | |
final CLabel fileNameLabel = aWidgetFactory.createCLabel(aParent, R4EUIConstants.NAME_LABEL); | |
data = new FormData(); | |
data.left = new FormAttachment(0, 0); | |
data.right = new FormAttachment(fBaseFileNameText, -ITabbedPropertyConstants.HSPACE); | |
data.top = new FormAttachment(fBaseFileNameText, 0, SWT.CENTER); | |
fileNameLabel.setToolTipText(R4EUIConstants.FILECONTEXT_BASE_FILE_NAME_TOOLTIP); | |
fileNameLabel.setLayoutData(data); | |
//File Version (read-only) | |
fBaseFileVersionText = aWidgetFactory.createText(aParent, "", SWT.NULL); | |
data = new FormData(); | |
data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH); | |
data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals | |
data.top = new FormAttachment(fBaseFileNameText, ITabbedPropertyConstants.VSPACE); | |
fBaseFileVersionText.setEditable(false); | |
fBaseFileVersionText.setToolTipText(R4EUIConstants.FILECONTEXT_BASE_FILE_VERSION_TOOLTIP); | |
fBaseFileVersionText.setLayoutData(data); | |
final CLabel fileVersionLabel = aWidgetFactory.createCLabel(aParent, R4EUIConstants.VERSION_LABEL); | |
data = new FormData(); | |
data.left = new FormAttachment(0, 0); | |
data.right = new FormAttachment(fBaseFileVersionText, -ITabbedPropertyConstants.HSPACE); | |
data.top = new FormAttachment(fBaseFileVersionText, 0, SWT.CENTER); | |
fileVersionLabel.setToolTipText(R4EUIConstants.FILECONTEXT_BASE_FILE_VERSION_TOOLTIP); | |
fileVersionLabel.setLayoutData(data); | |
//Path information section | |
final ExpandableComposite pathSection = aWidgetFactory.createExpandableComposite(aParent, | |
ExpandableComposite.TWISTIE); | |
data = new FormData(); | |
data.left = new FormAttachment(0, 0); | |
data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals | |
data.top = new FormAttachment(fBaseFileVersionText, ITabbedPropertyConstants.VSPACE); | |
pathSection.setLayoutData(data); | |
pathSection.setText(R4EUIConstants.PATH_INFORMATION_LABEL); | |
pathSection.addExpansionListener(new ExpansionAdapter() { | |
@Override | |
public void expansionStateChanged(ExpansionEvent aEvent) { | |
final ScrolledComposite scrolledParent = (ScrolledComposite) aParent.getParent() | |
.getParent() | |
.getParent() | |
.getParent() | |
.getParent() | |
.getParent(); | |
scrolledParent.setMinSize(aParent.computeSize(SWT.DEFAULT, SWT.DEFAULT)); | |
scrolledParent.layout(true, true); | |
} | |
}); | |
pathSection.setLayout(new GridLayout(1, false)); | |
final Composite pathSectionClient = aWidgetFactory.createComposite(pathSection); | |
pathSectionClient.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); | |
pathSectionClient.setLayout(new GridLayout(4, false)); | |
pathSection.setClient(pathSectionClient); | |
//Repository File Path (read-only) | |
final CLabel filePathRepositoryLabel = aWidgetFactory.createCLabel(pathSectionClient, | |
R4EUIConstants.PATH_REPOSITORY_LABEL); | |
GridData gridData = new GridData(SWT.FILL, SWT.CENTER, false, false); | |
gridData.horizontalSpan = 1; | |
filePathRepositoryLabel.setToolTipText(R4EUIConstants.FILECONTEXT_BASE_FILE_PATH_REPOSITORY_TOOLTIP); | |
filePathRepositoryLabel.setLayoutData(gridData); | |
fBaseFilePathRepositoryText = aWidgetFactory.createText(pathSectionClient, "", SWT.NULL); | |
gridData = new GridData(SWT.FILL, SWT.CENTER, true, false); | |
gridData.horizontalSpan = 3; | |
fBaseFilePathRepositoryText.setEditable(false); | |
fBaseFilePathRepositoryText.setToolTipText(R4EUIConstants.FILECONTEXT_BASE_FILE_PATH_REPOSITORY_TOOLTIP); | |
fBaseFilePathRepositoryText.setLayoutData(gridData); | |
//Absolute File Path (read-only) | |
final CLabel filePathAbsoluteLabel = aWidgetFactory.createCLabel(pathSectionClient, | |
R4EUIConstants.PATH_ABSOLUTE_LABEL); | |
gridData = new GridData(SWT.FILL, SWT.CENTER, false, false); | |
gridData.horizontalSpan = 1; | |
filePathAbsoluteLabel.setToolTipText(R4EUIConstants.FILECONTEXT_BASE_FILE_PATH_ABSOLUTE_TOOLTIP); | |
filePathAbsoluteLabel.setLayoutData(gridData); | |
fBaseFilePathAbsoluteText = aWidgetFactory.createText(pathSectionClient, "", SWT.NULL); | |
gridData = new GridData(SWT.FILL, SWT.CENTER, true, false); | |
gridData.horizontalSpan = 3; | |
fBaseFilePathAbsoluteText.setEditable(false); | |
fBaseFilePathAbsoluteText.setToolTipText(R4EUIConstants.FILECONTEXT_BASE_FILE_PATH_ABSOLUTE_TOOLTIP); | |
fBaseFilePathAbsoluteText.setLayoutData(gridData); | |
//Project Relative File Path (read-only) | |
final CLabel filePathProjectLabel = aWidgetFactory.createCLabel(pathSectionClient, | |
R4EUIConstants.PATH_PROJECT_LABEL); | |
gridData = new GridData(SWT.FILL, SWT.CENTER, false, false); | |
gridData.horizontalSpan = 1; | |
filePathProjectLabel.setToolTipText(R4EUIConstants.FILECONTEXT_BASE_FILE_PATH_PROJECT_TOOLTIP); | |
filePathProjectLabel.setLayoutData(gridData); | |
fBaseFilePathProjectText = aWidgetFactory.createText(pathSectionClient, "", SWT.NULL); | |
gridData = new GridData(SWT.FILL, SWT.CENTER, true, false); | |
gridData.horizontalSpan = 3; | |
fBaseFilePathProjectText.setEditable(false); | |
fBaseFilePathProjectText.setToolTipText(R4EUIConstants.FILECONTEXT_BASE_FILE_PATH_PROJECT_TOOLTIP); | |
fBaseFilePathProjectText.setLayoutData(gridData); | |
} | |
/** | |
* Method createTargetFileVersionComposite. | |
* | |
* @param aParent | |
* Composite | |
* @param aWidgetFactory | |
* TabbedPropertySheetWidgetFactory | |
*/ | |
private void createTargetFileVersionComposite(final Composite aParent, | |
TabbedPropertySheetWidgetFactory aWidgetFactory) { | |
FormData data = null; | |
//File Name (read-only) | |
fTargetFileNameText = aWidgetFactory.createText(aParent, "", SWT.NULL); | |
data = new FormData(); | |
data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH); | |
data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals | |
data.top = new FormAttachment(aParent, ITabbedPropertyConstants.VSPACE); | |
fTargetFileNameText.setEditable(false); | |
fTargetFileNameText.setToolTipText(R4EUIConstants.FILECONTEXT_TARGET_FILE_NAME_TOOLTIP); | |
fTargetFileNameText.setLayoutData(data); | |
final CLabel fileNameLabel = aWidgetFactory.createCLabel(aParent, R4EUIConstants.NAME_LABEL); | |
data = new FormData(); | |
data.left = new FormAttachment(0, 0); | |
data.right = new FormAttachment(fTargetFileNameText, -ITabbedPropertyConstants.HSPACE); | |
data.top = new FormAttachment(fTargetFileNameText, 0, SWT.CENTER); | |
fileNameLabel.setToolTipText(R4EUIConstants.FILECONTEXT_TARGET_FILE_NAME_TOOLTIP); | |
fileNameLabel.setLayoutData(data); | |
//File Version (read-only) | |
fTargetFileVersionText = aWidgetFactory.createText(aParent, "", SWT.NULL); | |
data = new FormData(); | |
data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH); | |
data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals | |
data.top = new FormAttachment(fTargetFileNameText, ITabbedPropertyConstants.VSPACE); | |
fTargetFileVersionText.setEditable(false); | |
fTargetFileVersionText.setToolTipText(R4EUIConstants.FILECONTEXT_TARGET_FILE_VERSION_TOOLTIP); | |
fTargetFileVersionText.setLayoutData(data); | |
final CLabel fileVersionLabel = aWidgetFactory.createCLabel(aParent, R4EUIConstants.VERSION_LABEL); | |
data = new FormData(); | |
data.left = new FormAttachment(0, 0); | |
data.right = new FormAttachment(fTargetFileVersionText, -ITabbedPropertyConstants.HSPACE); | |
data.top = new FormAttachment(fTargetFileVersionText, 0, SWT.CENTER); | |
fileVersionLabel.setToolTipText(R4EUIConstants.FILECONTEXT_TARGET_FILE_VERSION_TOOLTIP); | |
fileVersionLabel.setLayoutData(data); | |
//Path information section | |
final ExpandableComposite pathSection = aWidgetFactory.createExpandableComposite(aParent, | |
ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED); | |
data = new FormData(); | |
data.left = new FormAttachment(0, 0); | |
data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals | |
data.top = new FormAttachment(fTargetFileVersionText, ITabbedPropertyConstants.VSPACE); | |
pathSection.setLayoutData(data); | |
pathSection.setText(R4EUIConstants.PATH_INFORMATION_LABEL); | |
pathSection.addExpansionListener(new ExpansionAdapter() { | |
@Override | |
public void expansionStateChanged(ExpansionEvent aEvent) { | |
final ScrolledComposite scrolledParent = (ScrolledComposite) aParent.getParent() | |
.getParent() | |
.getParent() | |
.getParent() | |
.getParent() | |
.getParent(); | |
scrolledParent.setMinSize(aParent.computeSize(SWT.DEFAULT, SWT.DEFAULT)); | |
scrolledParent.layout(true, true); | |
} | |
}); | |
pathSection.setLayout(new GridLayout(1, false)); | |
final Composite pathSectionClient = aWidgetFactory.createComposite(pathSection); | |
pathSectionClient.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); | |
pathSectionClient.setLayout(new GridLayout(4, false)); | |
pathSection.setClient(pathSectionClient); | |
//Repository File Path (read-only) | |
final CLabel filePathRepositoryLabel = aWidgetFactory.createCLabel(pathSectionClient, | |
R4EUIConstants.PATH_REPOSITORY_LABEL); | |
GridData gridData = new GridData(SWT.FILL, SWT.CENTER, false, false); | |
gridData.horizontalSpan = 1; | |
filePathRepositoryLabel.setToolTipText(R4EUIConstants.FILECONTEXT_BASE_FILE_PATH_REPOSITORY_TOOLTIP); | |
filePathRepositoryLabel.setLayoutData(gridData); | |
fTargetFilePathRepositoryText = aWidgetFactory.createText(pathSectionClient, "", SWT.NULL); | |
gridData = new GridData(SWT.FILL, SWT.CENTER, true, false); | |
gridData.horizontalSpan = 3; | |
fTargetFilePathRepositoryText.setEditable(false); | |
fTargetFilePathRepositoryText.setToolTipText(R4EUIConstants.FILECONTEXT_BASE_FILE_PATH_REPOSITORY_TOOLTIP); | |
fTargetFilePathRepositoryText.setLayoutData(gridData); | |
//Absolute File Path (read-only) | |
final CLabel filePathAbsoluteLabel = aWidgetFactory.createCLabel(pathSectionClient, | |
R4EUIConstants.PATH_ABSOLUTE_LABEL); | |
gridData = new GridData(SWT.FILL, SWT.CENTER, false, false); | |
gridData.horizontalSpan = 1; | |
filePathAbsoluteLabel.setToolTipText(R4EUIConstants.FILECONTEXT_BASE_FILE_PATH_ABSOLUTE_TOOLTIP); | |
filePathAbsoluteLabel.setLayoutData(gridData); | |
fTargetFilePathAbsoluteText = aWidgetFactory.createText(pathSectionClient, "", SWT.NULL); | |
gridData = new GridData(SWT.FILL, SWT.CENTER, true, false); | |
gridData.horizontalSpan = 3; | |
fTargetFilePathAbsoluteText.setEditable(false); | |
fTargetFilePathAbsoluteText.setToolTipText(R4EUIConstants.FILECONTEXT_BASE_FILE_PATH_ABSOLUTE_TOOLTIP); | |
fTargetFilePathAbsoluteText.setLayoutData(gridData); | |
//Project Relative File Path (read-only) | |
final CLabel filePathProjectLabel = aWidgetFactory.createCLabel(pathSectionClient, | |
R4EUIConstants.PATH_PROJECT_LABEL); | |
gridData = new GridData(SWT.FILL, SWT.CENTER, false, false); | |
gridData.horizontalSpan = 1; | |
filePathProjectLabel.setToolTipText(R4EUIConstants.FILECONTEXT_BASE_FILE_PATH_PROJECT_TOOLTIP); | |
filePathProjectLabel.setLayoutData(gridData); | |
fTargetFilePathProjectText = aWidgetFactory.createText(pathSectionClient, "", SWT.NULL); | |
gridData = new GridData(SWT.FILL, SWT.CENTER, true, false); | |
gridData.horizontalSpan = 3; | |
fTargetFilePathProjectText.setEditable(false); | |
fTargetFilePathProjectText.setToolTipText(R4EUIConstants.FILECONTEXT_BASE_FILE_PATH_PROJECT_TOOLTIP); | |
fTargetFilePathProjectText.setLayoutData(gridData); | |
} | |
/** | |
* Method refresh. | |
* | |
* @see org.eclipse.ui.views.properties.tabbed.ISection#refresh() | |
*/ | |
@Override | |
public void refresh() { | |
fRefreshInProgress = true; | |
final R4EFileContext modelFile = ((R4EUIFileContext) fProperties.getElement()).getFileContext(); | |
final R4EFileVersion baseVersion = modelFile.getBase(); | |
if (null != modelFile.getBase()) { | |
//The properties shows the absolute, project relative and repository path | |
fBaseFileNameText.setText(baseVersion.getName()); | |
fBaseFilePathRepositoryText.setText(baseVersion.getRepositoryPath()); | |
fBaseFilePathProjectText.setText(UIUtils.getProjectPath(baseVersion)); | |
final IResource baseResource = baseVersion.getResource(); | |
if (null != baseResource) { | |
if (CommandUtils.useWorkspaceResource(baseVersion)) { | |
fBaseFilePathAbsoluteText.setText(baseResource.getLocation().toPortableString()); | |
} else { | |
fBaseFilePathAbsoluteText.setText(R4EUIConstants.NO_VERSION_PROPERTY_MESSAGE); | |
} | |
} else { | |
fBaseFilePathAbsoluteText.setText(R4EUIConstants.NO_VERSION_PROPERTY_MESSAGE); | |
} | |
fBaseFileVersionText.setText(baseVersion.getVersionID()); | |
} else { | |
fBaseFileNameText.setText(R4EUIConstants.NO_VERSION_PROPERTY_MESSAGE); | |
fBaseFilePathRepositoryText.setText(""); | |
fBaseFilePathAbsoluteText.setText(""); | |
fBaseFilePathProjectText.setText(""); | |
fBaseFileVersionText.setText(""); | |
} | |
final R4EFileVersion targetVersion = modelFile.getTarget(); | |
if (null != targetVersion) { | |
//The properties shows the absolute, project relative and repository path | |
fTargetFileNameText.setText(targetVersion.getName()); | |
fTargetFilePathRepositoryText.setText(targetVersion.getRepositoryPath()); | |
fTargetFilePathProjectText.setText(UIUtils.getProjectPath(targetVersion)); | |
final IResource targetResource = targetVersion.getResource(); | |
if (null != targetResource) { | |
if (CommandUtils.useWorkspaceResource(targetVersion)) { | |
fTargetFilePathAbsoluteText.setText(targetResource.getLocation().toPortableString()); | |
} else { | |
fTargetFilePathAbsoluteText.setText(R4EUIConstants.NO_VERSION_PROPERTY_MESSAGE); | |
} | |
} else { | |
fTargetFilePathAbsoluteText.setText(R4EUIConstants.NO_VERSION_PROPERTY_MESSAGE); | |
} | |
fTargetFileVersionText.setText(targetVersion.getVersionID()); | |
} else { | |
fTargetFileNameText.setText(R4EUIConstants.NO_VERSION_PROPERTY_MESSAGE); | |
fTargetFilePathRepositoryText.setText(""); | |
fTargetFilePathAbsoluteText.setText(""); | |
fTargetFilePathProjectText.setText(""); | |
fTargetFileVersionText.setText(""); | |
} | |
final EList<String> assignedParticipants = modelFile.getAssignedTo(); | |
fAssignedToText.setText(UIUtils.formatAssignedParticipants(assignedParticipants)); | |
setEnabledFields(); | |
fRefreshInProgress = false; | |
} | |
/** | |
* Method setEnabledFields. | |
*/ | |
@Override | |
protected void setEnabledFields() { | |
//Since it is a subclass of this class we need this here. This should be improved later | |
//Do not show FileContext elements for the Postponed file. | |
if (fProperties.getElement() instanceof R4EUIPostponedFile) { | |
fBaseFileNameText.getParent().getParent().setVisible(false); | |
return; | |
} | |
if (R4EUIModelController.isJobInProgress() | |
|| fProperties.getElement().isReadOnly() | |
|| ((R4EReviewState) R4EUIModelController.getActiveReview().getReview().getState()).getState().equals( | |
R4EReviewPhase.R4E_REVIEW_PHASE_COMPLETED) || !fProperties.getElement().isEnabled()) { | |
fBaseFileNameText.setForeground(UIUtils.DISABLED_FONT_COLOR); | |
fBaseFilePathRepositoryText.setForeground(UIUtils.DISABLED_FONT_COLOR); | |
fBaseFilePathAbsoluteText.setForeground(UIUtils.DISABLED_FONT_COLOR); | |
fBaseFilePathProjectText.setForeground(UIUtils.DISABLED_FONT_COLOR); | |
fBaseFileVersionText.setForeground(UIUtils.DISABLED_FONT_COLOR); | |
fTargetFileNameText.setForeground(UIUtils.DISABLED_FONT_COLOR); | |
fTargetFilePathRepositoryText.setForeground(UIUtils.DISABLED_FONT_COLOR); | |
fTargetFilePathAbsoluteText.setForeground(UIUtils.DISABLED_FONT_COLOR); | |
fTargetFilePathProjectText.setForeground(UIUtils.DISABLED_FONT_COLOR); | |
fTargetFileVersionText.setForeground(UIUtils.DISABLED_FONT_COLOR); | |
fAssignedToText.setForeground(UIUtils.DISABLED_FONT_COLOR); | |
fAssignedToButton.setEnabled(false); | |
fUnassignedFromButton.setEnabled(false); | |
} else { | |
fBaseFileNameText.setForeground(UIUtils.ENABLED_FONT_COLOR); | |
fBaseFilePathRepositoryText.setForeground(UIUtils.ENABLED_FONT_COLOR); | |
fBaseFilePathAbsoluteText.setForeground(UIUtils.ENABLED_FONT_COLOR); | |
fBaseFilePathProjectText.setForeground(UIUtils.ENABLED_FONT_COLOR); | |
fBaseFileVersionText.setForeground(UIUtils.ENABLED_FONT_COLOR); | |
fTargetFileNameText.setForeground(UIUtils.ENABLED_FONT_COLOR); | |
fTargetFilePathRepositoryText.setForeground(UIUtils.ENABLED_FONT_COLOR); | |
fTargetFilePathAbsoluteText.setForeground(UIUtils.ENABLED_FONT_COLOR); | |
fTargetFilePathProjectText.setForeground(UIUtils.ENABLED_FONT_COLOR); | |
fTargetFileVersionText.setForeground(UIUtils.ENABLED_FONT_COLOR); | |
fAssignedToText.setForeground(UIUtils.ENABLED_FONT_COLOR); | |
fAssignedToButton.setEnabled(true); | |
if (fAssignedToText.getText().length() > 0) { | |
fUnassignedFromButton.setEnabled(true); | |
} else { | |
fUnassignedFromButton.setEnabled(false); | |
} | |
} | |
} | |
} |