package com.dubture.composer.ui.dialogs;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.window.IShellProvider;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
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;
import com.dubture.composer.ui.ComposerUIPluginConstants;
import com.dubture.composer.ui.ComposerUIPluginImages;
import com.dubture.getcomposer.core.objects.Scripts;
public class ScriptDialog extends Dialog {
private Combo eventControl;
private Text handlerControl;
private String event;
private String handler;
private boolean handlerEnabled = true;
private boolean eventEnabled = true;
/**
* @wbp.parser.constructor
*/
public ScriptDialog(Shell parentShell) {
super(parentShell);
}
public ScriptDialog(IShellProvider parentShell) {
super(parentShell);
}
@Override
protected Control createDialogArea(Composite parent) {
getShell().setText("Edit Script");
getShell().setImage(ComposerUIPluginImages.EVENT.createImage());
Composite contents = new Composite(parent, SWT.NONE);
contents.setLayout(new GridLayout(2, false));
Label lblEvent = new Label(contents, SWT.NONE);
GridData gd_lblEvent = new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1);
gd_lblEvent.widthHint = ComposerUIPluginConstants.DIALOG_LABEL_WIDTH;
lblEvent.setLayoutData(gd_lblEvent);
lblEvent.setText("Event");
eventControl = new Combo(contents, SWT.READ_ONLY);
eventControl.setEnabled(eventEnabled);
GridData gd_eventControl = new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1);
gd_eventControl.widthHint = ComposerUIPluginConstants.DIALOG_CONTROL_WIDTH;
eventControl.setLayoutData(gd_eventControl);
eventControl.setItems(Scripts.getEvents());
eventControl.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
event = eventControl.getText();
}
});
if (event != null) {
eventControl.setText(event);
}
Label lblHandler = new Label(contents, SWT.NONE);
lblHandler.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1));
lblHandler.setText("Handler");
handlerControl = new Text(contents, SWT.BORDER);
handlerControl.setEnabled(handlerEnabled);
handlerControl.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
handlerControl.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent e) {
handler = handlerControl.getText();
}
});
if (handler != null) {
handlerControl.setText(handler);
}
return contents;
}
public void setHandlerEnabled(boolean enabled) {
handlerEnabled = enabled;
if (handlerControl != null) {
handlerControl.setEnabled(handlerEnabled);
}
}
public void setEventEnabled(boolean enabled) {
eventEnabled = enabled;
if (eventControl != null) {
eventControl.setEnabled(eventEnabled);
}
}
public void setEvent(String event) {
this.event = event;
if (eventControl != null) {
eventControl.setText(event);
}
}
public void setHandler(String handler) {
this.handler = handler;
if (handlerControl != null) {
handlerControl.setText(handler);
}
}
public String getEvent() {
return event;
}
public String getHandler() {
return handler;
}
}