package com.cxy.redisclient.presentation.component;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
public abstract class NewDataDialog extends RedisClientDialog {
private String title;
private int width;
private int height;
private Text inputKey;
private Button btnOk;
private String key;
protected NewDataContent dataContent;
protected OKCancel okCancel = new OKCancel();
protected final class ModifyKey implements ModifyListener {
public void modifyText(ModifyEvent e) {
String newKey = inputKey.getText() == null ? "" : inputKey.getText();
if (newKey.equals(key))
btnOk.setEnabled(false);
else
btnOk.setEnabled(true);
}
}
public NewDataDialog(Shell parent, Image image, int id, String server, int db, String key, int width, int height, String title, String dataTitle) {
super(parent, image);
this.width = width;
this.height = height;
this.key = key;
this.title = title;
this.dataContent = getDataContent(id, server, db, key, dataTitle);
}
protected void createContents() {
shell.setText(title);
shell.setLayout(new GridLayout(1, false));
dataContent.setShell(shell);
okCancel.setShell(shell);
shell.setSize(width, height);
dataContent.initContents();
okCancel.initContents();
inputKey = dataContent.getInputKey();
btnOk = okCancel.getOkButton();
minWidth = 600;
minHeight = 500;
super.createContents();
}
protected abstract NewDataContent getDataContent(int id, String server, int db, String key, String dataTitle);
public void setResult(Object result){
this.result = result;
}
}