blob: 4775f11fdb5bc178728494bc368df6e02cfab014 [file] [log] [blame]
//------------------------------------------------------------------------------
// Copyright (c) 2005, 2006 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 implementation
//------------------------------------------------------------------------------
package org.eclipse.epf.authoring.ui.forms;
import org.eclipse.epf.authoring.ui.AuthoringUIResources;
import org.eclipse.epf.authoring.ui.editors.MethodElementEditor;
import org.eclipse.epf.authoring.ui.richtext.IMethodRichText;
import org.eclipse.epf.library.edit.command.IActionManager;
import org.eclipse.epf.uma.DeliveryProcess;
import org.eclipse.epf.uma.UmaPackage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IEditorSite;
import org.eclipse.ui.forms.editor.FormEditor;
import org.eclipse.ui.forms.widgets.FormToolkit;
/**
* Description page for delivery process
*
* @author Shilpa Toraskar
* @author Kelvin Low
* @since 1.0
*/
public class DeliveryProcessDescription extends ProcessDescription {
private IMethodRichText ctrl_scale, ctrl_project_characteristics;
private IMethodRichText ctrl_risk_level, ctrl_estimating_techniques;
private IMethodRichText ctrl_project_member_expertise,
ctrl_type_of_contract;
private DeliveryProcess deliveryProcess;
/**
* Creates an instance
* @param editor
*/
public DeliveryProcessDescription(FormEditor editor) {
super(editor);
}
/**
* @see org.eclipse.epf.authoring.ui.forms.ProcessFormPage#init(org.eclipse.ui.IEditorSite, org.eclipse.ui.IEditorInput)
*/
public void init(IEditorSite site, IEditorInput input) {
super.init(site, input);
deliveryProcess = (DeliveryProcess) process;
}
/**
* @see org.eclipse.epf.authoring.ui.forms.ProcessDescription#createDetailSection()
*/
protected void createDetailSection(FormToolkit toolkit) {
super.createDetailSection(toolkit);
// scale
ctrl_scale = createRichTextEditWithLinkForSection(toolkit,
detailComposite, AuthoringUIResources.Process_Scale, 40, 400, DETAIL_SECTION_ID);
// project characteristics
ctrl_project_characteristics = createRichTextEditWithLinkForSection(
toolkit,
detailComposite,
AuthoringUIResources.Process_ProjectCharacteristics, 40, 400, DETAIL_SECTION_ID);
// risk level
ctrl_risk_level = createRichTextEditWithLinkForSection(
toolkit,
detailComposite,
AuthoringUIResources.Process_RiskLevel, 40, 400, DETAIL_SECTION_ID);
// Estimating technique
ctrl_estimating_techniques = createRichTextEditWithLinkForSection(
toolkit,
detailComposite,
AuthoringUIResources.Process_EstimatingTechnique, 40, 400, DETAIL_SECTION_ID);
// Project Member expertise
ctrl_project_member_expertise = createRichTextEditWithLinkForSection(
toolkit,
detailComposite,
AuthoringUIResources.Process_ProjectMemberExpertise, 40, 400, DETAIL_SECTION_ID);
// Type of contract
ctrl_type_of_contract = createRichTextEditWithLinkForSection(
toolkit,
detailComposite,
AuthoringUIResources.Process_TypeOfContract, 40, 400, DETAIL_SECTION_ID);
toolkit.paintBordersFor(detailComposite);
}
/**
* Loads initial data from model
*
* @see org.eclipse.epf.authoring.ui.forms.ProcessDescription#loadData()
*/
public void loadData() {
super.loadData();
org.eclipse.epf.uma.DeliveryProcessDescription content = (org.eclipse.epf.uma.DeliveryProcessDescription) deliveryProcess
.getPresentation();
String scale = content.getScale();
String projectChar = content.getProjectCharacteristics();
String estimatingTechnique = content.getEstimatingTechnique();
String riskLevel = content.getRiskLevel();
String projectMemberExpertiese = content.getProjectMemberExpertise();
String typeOfContract = content.getTypeOfContract();
ctrl_scale.setText(scale == null ? "" : scale); //$NON-NLS-1$
ctrl_project_characteristics
.setText(projectChar == null ? "" : projectChar); //$NON-NLS-1$
ctrl_estimating_techniques
.setText(estimatingTechnique == null ? "" : estimatingTechnique); //$NON-NLS-1$
ctrl_risk_level.setText(riskLevel == null ? "" : riskLevel); //$NON-NLS-1$
ctrl_project_member_expertise
.setText(projectMemberExpertiese == null ? "" : projectMemberExpertiese); //$NON-NLS-1$
ctrl_type_of_contract
.setText(typeOfContract == null ? "" : typeOfContract); //$NON-NLS-1$
}
/**
* Add listeners
*
* @see org.eclipse.epf.authoring.ui.forms.ProcessDescription#addListeners()
*/
protected void addListeners() {
super.addListeners();
MethodElementEditor editor = ((MethodElementEditor) getEditor());
final IActionManager actionMgr = editor.getActionManager();
final org.eclipse.epf.uma.DeliveryProcessDescription content = (org.eclipse.epf.uma.DeliveryProcessDescription) deliveryProcess
.getPresentation();
ctrl_scale.setModalObject(deliveryProcess.getPresentation());
ctrl_scale.setModalObjectFeature(UmaPackage.eINSTANCE
.getDeliveryProcessDescription_Scale());
ctrl_scale.addModifyListener(contentModifyListener);
ctrl_scale.addListener(SWT.Deactivate, new Listener() {
public void handleEvent(Event e) {
IMethodRichText control = descExpandFlag ? ctrl_expanded
: ctrl_scale;
if (!control.getModified()) {
return;
}
String oldContent = content.getScale();
if (((MethodElementEditor) getEditor()).mustRestoreValue(
control, oldContent)) {
return;
}
String newContent = control.getText();
if (!newContent.equals(oldContent)) {
actionMgr.doAction(IActionManager.SET, deliveryProcess
.getPresentation(), UmaPackage.eINSTANCE
.getDeliveryProcessDescription_Scale(), newContent,
-1);
}
}
});
ctrl_project_characteristics.setModalObject(deliveryProcess
.getPresentation());
ctrl_project_characteristics.setModalObjectFeature(UmaPackage.eINSTANCE
.getDeliveryProcessDescription_ProjectCharacteristics());
ctrl_project_characteristics.addModifyListener(contentModifyListener);
ctrl_project_characteristics.addListener(SWT.Deactivate,
new Listener() {
public void handleEvent(Event e) {
IMethodRichText control = descExpandFlag ? ctrl_expanded
: ctrl_project_characteristics;
if (!control.getModified()) {
return;
}
String oldContent = content.getProjectCharacteristics();
if (((MethodElementEditor) getEditor())
.mustRestoreValue(control, oldContent)) {
return;
}
String newContent = control.getText();
if (!newContent.equals(oldContent)) {
actionMgr
.doAction(
IActionManager.SET,
deliveryProcess.getPresentation(),
UmaPackage.eINSTANCE
.getDeliveryProcessDescription_ProjectCharacteristics(),
newContent, -1);
}
}
});
ctrl_risk_level.setModalObject(deliveryProcess.getPresentation());
ctrl_risk_level.setModalObjectFeature(UmaPackage.eINSTANCE
.getDeliveryProcessDescription_RiskLevel());
ctrl_risk_level.addModifyListener(contentModifyListener);
ctrl_risk_level.addListener(SWT.Deactivate, new Listener() {
public void handleEvent(Event e) {
IMethodRichText control = descExpandFlag ? ctrl_expanded
: ctrl_risk_level;
if (!control.getModified()) {
return;
}
String oldContent = content.getRiskLevel();
if (((MethodElementEditor) getEditor()).mustRestoreValue(
control, oldContent)) {
return;
}
String newContent = control.getText();
if (!newContent.equals(oldContent)) {
actionMgr.doAction(IActionManager.SET, deliveryProcess
.getPresentation(), UmaPackage.eINSTANCE
.getDeliveryProcessDescription_RiskLevel(),
newContent, -1);
}
}
});
ctrl_estimating_techniques.setModalObject(deliveryProcess
.getPresentation());
ctrl_estimating_techniques.setModalObjectFeature(UmaPackage.eINSTANCE
.getDeliveryProcessDescription_EstimatingTechnique());
ctrl_estimating_techniques.addModifyListener(contentModifyListener);
ctrl_estimating_techniques.addListener(SWT.Deactivate, new Listener() {
public void handleEvent(Event e) {
IMethodRichText control = descExpandFlag ? ctrl_expanded
: ctrl_estimating_techniques;
if (!control.getModified()) {
return;
}
String oldContent = content.getEstimatingTechnique();
if (((MethodElementEditor) getEditor()).mustRestoreValue(
control, oldContent)) {
return;
}
String newContent = control.getText();
if (!newContent.equals(oldContent)) {
actionMgr
.doAction(
IActionManager.SET,
deliveryProcess.getPresentation(),
UmaPackage.eINSTANCE
.getDeliveryProcessDescription_EstimatingTechnique(),
newContent, -1);
}
}
});
ctrl_project_member_expertise.setModalObject(deliveryProcess
.getPresentation());
ctrl_project_member_expertise
.setModalObjectFeature(UmaPackage.eINSTANCE
.getDeliveryProcessDescription_ProjectMemberExpertise());
ctrl_project_member_expertise.addModifyListener(contentModifyListener);
ctrl_project_member_expertise.addListener(SWT.Deactivate,
new Listener() {
public void handleEvent(Event e) {
IMethodRichText control = descExpandFlag ? ctrl_expanded
: ctrl_project_member_expertise;
if (!control.getModified()) {
return;
}
String oldContent = content.getProjectMemberExpertise();
if (((MethodElementEditor) getEditor())
.mustRestoreValue(control, oldContent)) {
return;
}
String newContent = control.getText();
if (!newContent.equals(oldContent)) {
actionMgr
.doAction(
IActionManager.SET,
deliveryProcess.getPresentation(),
UmaPackage.eINSTANCE
.getDeliveryProcessDescription_ProjectMemberExpertise(),
newContent, -1);
}
}
});
ctrl_type_of_contract.setModalObject(deliveryProcess.getPresentation());
ctrl_type_of_contract.setModalObjectFeature(UmaPackage.eINSTANCE
.getDeliveryProcessDescription_TypeOfContract());
ctrl_type_of_contract.addModifyListener(contentModifyListener);
ctrl_type_of_contract.addListener(SWT.Deactivate, new Listener() {
public void handleEvent(Event e) {
IMethodRichText control = descExpandFlag ? ctrl_expanded
: ctrl_type_of_contract;
if (!control.getModified()) {
return;
}
String oldContent = content.getTypeOfContract();
if (((MethodElementEditor) getEditor()).mustRestoreValue(
control, oldContent)) {
return;
}
String newContent = control.getText();
if (!newContent.equals(oldContent)) {
actionMgr.doAction(IActionManager.SET, deliveryProcess
.getPresentation(), UmaPackage.eINSTANCE
.getDeliveryProcessDescription_TypeOfContract(),
newContent, -1);
}
}
});
}
/**
* @see org.eclipse.epf.authoring.ui.forms.ProcessDescription#refresh(boolean)
*/
protected void refresh(boolean editable) {
super.refresh(editable);
ctrl_estimating_techniques.setEditable(editable);
ctrl_project_characteristics.setEditable(editable);
ctrl_project_member_expertise.setEditable(editable);
ctrl_risk_level.setEditable(editable);
ctrl_scale.setEditable(editable);
ctrl_type_of_contract.setEditable(editable);
}
}