package org.gsonformat.intellij.ui;
import org.gsonformat.intellij.config.Config;
import org.gsonformat.intellij.config.Constant;
import javax.swing.*;
import java.awt.event.*;
public class EditDialog extends JFrame {
private JPanel contentPane;
private JButton okButton;
private JButton cancelButton;
private JTextPane editTP;
private JButton resetButton;
private JLabel titleLB;
private String titleName;
private String editStr;
private Type type;
public EditDialog(Type type) {
this.type = type;
setContentPane(contentPane);
// setModal(true);
this.setAlwaysOnTop(true);
getRootPane().setDefaultButton(okButton);
okButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
onOK();
}
});
cancelButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
onCancel();
}
});
setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
onCancel();
}
});
contentPane.registerKeyboardAction(new ActionListener() {
public void actionPerformed(ActionEvent e) {
onCancel();
}
}, KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
setTitle("Convert method");
switch (type) {
case OBJECT_FROM_DATA:
titleName = "objectFromData(Object data)";
editStr = Config.getInstant().getObjectFromDataStr();
break;
case OBJECT_FROM_DATA1:
titleName = "objectFromData(Object data,String key)";
editStr = Config.getInstant().getObjectFromDataStr1();
break;
case ARRAY_FROM_DATA:
titleName = "arrayFromData(Object data)";
editStr = Config.getInstant().getArrayFromDataStr();
break;
case ARRAY_FROM_DATA1:
titleName = "arrayFromData(Object data,String key)";
editStr = Config.getInstant().getArrayFromData1Str();
break;
}
titleLB.setText(titleName);
editTP.setText(editStr);
resetButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent actionEvent) {
resetAction();
}
});
}
private void resetAction() {
switch (type) {
case OBJECT_FROM_DATA:
editTP.setText(Constant.objectFromObject);
break;
case OBJECT_FROM_DATA1:
System.out.println(Constant.objectFromObject1);
editTP.setText(Constant.objectFromObject1);
break;
case ARRAY_FROM_DATA:
editTP.setText(Constant.arrayFromData);
break;
case ARRAY_FROM_DATA1:
editTP.setText(Constant.arrayFromData1);
break;
}
}
private void onOK() {
switch (type) {
case OBJECT_FROM_DATA:
Config.getInstant().saveObjectFromDataStr(editTP.getText());
break;
case OBJECT_FROM_DATA1:
Config.getInstant().saveObjectFromDataStr1(editTP.getText());
break;
case ARRAY_FROM_DATA:
Config.getInstant().saveArrayFromDataStr(editTP.getText());
break;
case ARRAY_FROM_DATA1:
Config.getInstant().saveArrayFromData1Str(editTP.getText());
break;
}
dispose();
}
private void onCancel() {
dispose();
}
public enum Type {
OBJECT_FROM_DATA, OBJECT_FROM_DATA1, ARRAY_FROM_DATA, ARRAY_FROM_DATA1;
}
}