package org.insightech.er.editor.view.dialog.outline.trigger;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
import org.insightech.er.Resources;
import org.insightech.er.common.dialog.AbstractDialog;
import org.insightech.er.common.exception.InputException;
import org.insightech.er.common.widgets.CompositeFactory;
import org.insightech.er.editor.model.diagram_contents.not_element.trigger.Trigger;
import org.insightech.er.util.Check;
import org.insightech.er.util.Format;
public class TriggerDialog extends AbstractDialog {
private Text nameText;
private Text schemaText;
private Text sqlText;
private Text descriptionText;
private Trigger trigger;
private Trigger result;
public TriggerDialog(Shell parentShell, Trigger trigger) {
super(parentShell, 2);
this.setShellStyle(this.getShellStyle() | SWT.RESIZE);
this.trigger = trigger;
}
@Override
protected void initialize(Composite composite) {
this.nameText = CompositeFactory.createText(this, composite,
"label.trigger.name", false);
this.schemaText = CompositeFactory.createText(this, composite,
"label.schema", false);
this.sqlText = CompositeFactory.createTextArea(this, composite,
"label.sql", Resources.DESCRIPTION_WIDTH, 300, 1, false);
this.descriptionText = CompositeFactory.createTextArea(this, composite,
"label.description", -1, 100, 1, true);
}
@Override
protected String getErrorMessage() {
String text = nameText.getText().trim();
if (text.equals("")) {
return "error.trigger.name.empty";
}
if (!Check.isAlphabet(text)) {
return "error.trigger.name.not.alphabet";
}
text = schemaText.getText();
if (!Check.isAlphabet(text)) {
return "error.schema.not.alphabet";
}
text = sqlText.getText();
if (text.equals("")) {
return "error.trigger.sql.empty";
}
return null;
}
@Override
protected String getTitle() {
return "dialog.title.trigger";
}
@Override
protected void perfomeOK() throws InputException {
this.result = new Trigger();
this.result.setName(this.nameText.getText().trim());
this.result.setSchema(this.schemaText.getText().trim());
this.result.setSql(this.sqlText.getText().trim());
this.result.setDescription(this.descriptionText.getText().trim());
}
@Override
protected void setData() {
if (this.trigger != null) {
this.nameText.setText(Format.toString(this.trigger.getName()));
this.schemaText.setText(Format.toString(this.trigger.getSchema()));
this.sqlText.setText(Format.toString(this.trigger.getSql()));
this.descriptionText.setText(Format.toString(this.trigger
.getDescription()));
}
}
public Trigger getResult() {
return result;
}
}