package org.objectstyle.wolips.wodclipse.core.refactoring;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Combo;
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;
public class AddActionDialog extends Dialog {
private Text _nameField;
private Combo _typeCombo;
private AddActionInfo _addActionInfo;
/**
* Create the dialog
*
* @param parentShell
*/
public AddActionDialog(AddActionInfo addActionInfo, Shell parentShell) {
super(parentShell);
_addActionInfo = addActionInfo;
}
/**
* Create contents of the dialog
*
* @param parent
*/
@Override
protected Control createDialogArea(Composite parent) {
Composite container = (Composite) super.createDialogArea(parent);
final GridLayout gridLayout = new GridLayout();
gridLayout.marginBottom = 10;
gridLayout.marginTop = 10;
gridLayout.marginRight = 10;
gridLayout.marginLeft = 10;
gridLayout.numColumns = 3;
container.setLayout(gridLayout);
final Label _nameLabel = new Label(container, SWT.NONE);
final GridData gd_nameLabel = new GridData(SWT.RIGHT, SWT.CENTER, false, false);
_nameLabel.setLayoutData(gd_nameLabel);
_nameLabel.setText("Name:");
new Label(container, SWT.NONE);
_nameField = new Text(container, SWT.BORDER);
final GridData gd_nameButton = new GridData(SWT.FILL, SWT.CENTER, true, false);
_nameField.setLayoutData(gd_nameButton);
final Label _typeLabel = new Label(container, SWT.NONE);
final GridData gd_typeLabel = new GridData(SWT.RIGHT, SWT.CENTER, false, false);
gd_typeLabel.verticalIndent = 5;
_typeLabel.setLayoutData(gd_typeLabel);
_typeLabel.setText("Type:");
new Label(container, SWT.NONE);
_typeCombo = new Combo(container, SWT.BORDER);
_typeCombo.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
//
_nameField.setText(_addActionInfo.getName());
if (_addActionInfo.getTypeName() != null) {
_typeCombo.setText(_addActionInfo.getTypeName());
}
//_typeCombo.setItems(_addActionInfo.getEntityNames());
return container;
}
/**
* Create contents of the button bar
*
* @param parent
*/
@Override
protected void createButtonsForButtonBar(Composite parent) {
createButton(parent, IDialogConstants.OK_ID, "Add", true);
createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false);
}
/**
* Return the initial size of the dialog
*/
@Override
protected Point getInitialSize() {
return new Point(345, 150);
}
@Override
protected void buttonPressed(int buttonId) {
_addActionInfo.setName(_nameField.getText());
_addActionInfo.setTypeName(_typeCombo.getText());
super.buttonPressed(buttonId);
}
@Override
protected void configureShell(Shell newShell) {
super.configureShell(newShell);
newShell.setText("Add Action");
}
public static void open(AddActionInfo info, Shell shell) throws CoreException {
AddActionDialog dialog = new AddActionDialog(info, shell);
if (dialog.open() == IDialogConstants.OK_ID) {
AddActionOperation.addAction(info);
}
}
}