blob: 5b5d9203c61b1d79c056e42f3347c0b7cbcf0ca3 [file] [log] [blame]
/*******************************************************************************
* Licensed Materials - Property of IBM
* (c) Copyright IBM Corporation 2007,2009. All Rights Reserved.
*
* Note to U.S. Government Users Restricted Rights:
* Use, duplication or disclosure restricted by GSA ADP Schedule
* Contract with IBM Corp.
*******************************************************************************/
package org.eclipse.epf.authoring.ui.dialogs;
import org.eclipse.epf.authoring.ui.AuthoringUIResources;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.events.VerifyEvent;
import org.eclipse.swt.events.VerifyListener;
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.Control;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
/**
*
* @author achen
* @since 7.5.1
*
*/
public class StateEditDialog extends Dialog {
private Text name, des;
private boolean create;
private String stateName, stateDes;
public StateEditDialog(Shell shell, boolean create, String stateName, String stateDes) {
super(shell);
this.create = create;
this.stateName = stateName;
this.stateDes = stateDes;
}
protected void configureShell(Shell shell) {
super.configureShell(shell);
shell.setText(AuthoringUIResources.StateEditDialog_title);
}
protected Control createDialogArea(Composite parent) {
Composite composite = (Composite) super.createDialogArea(parent);
GridLayout layout = (GridLayout) composite.getLayout();
layout.numColumns = 2;
Label nameLabel = new Label(composite, SWT.NULL);
nameLabel.setText(AuthoringUIResources.StateEditDialog_label_name);
name = new Text(composite, SWT.BORDER | SWT.SINGLE);
name.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
Label desLabel = new Label(composite, SWT.NULL);
desLabel.setText(AuthoringUIResources.StateEditDialog_label_des);
desLabel.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING));
des = new Text(composite, SWT.MULTI | SWT.WRAP | SWT.BORDER | SWT.V_SCROLL);
{
GridData gd = new GridData(GridData.FILL_BOTH);
gd.widthHint = 200;
gd.heightHint = 100;
des.setLayoutData(gd);
}
loadData();
addListeners();
return composite;
}
protected Control createContents(Composite parent) {
Control con = super.createContents(parent);
updateControls();
return con;
}
protected void okPressed() {
stateName = name.getText();
stateDes = des.getText();
super.okPressed();
}
private void loadData() {
if (!create) {
name.setText(stateName);
des.setText(stateDes);
}
}
private void updateControls() {
String nameValue = name.getText();
Button okBtn = getButton(IDialogConstants.OK_ID);
if (okBtn != null) {
if ((nameValue == null) || (nameValue.length() == 0)) {
okBtn.setEnabled(false);
} else {
okBtn.setEnabled(true);
}
}
}
private void addListeners() {
name.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent e) {
updateControls();
}
});
//Won't allow comma in state name
name.addVerifyListener(new VerifyListener() {
public void verifyText(VerifyEvent e) {
if (e.character == ',') {
e.doit = false;
}
}
});
}
public String getStateName() {
return stateName;
}
public String getStateDes() {
return stateDes;
}
}