org.yaoqiang.bpmn.editor.dialog.JSONDialog Maven / Gradle / Ivy
package org.yaoqiang.bpmn.editor.dialog;
import javax.swing.JOptionPane;
import org.yaoqiang.bpmn.editor.BPMNEditor;
import org.yaoqiang.bpmn.editor.swing.BaseEditor;
import org.yaoqiang.dialog.BaseDialog;
import org.yaoqiang.dialog.Panel;
import org.yaoqiang.util.Resources;
import com.mxgraph.util.mxEvent;
import com.mxgraph.util.mxEventObject;
import com.mxgraph.util.mxUndoableEdit;
/**
* JSONDialog
*
* @author Shi Yaoqiang([email protected])
*/
public class JSONDialog extends BaseDialog {
private static final long serialVersionUID = -3312463408713700418L;
protected BaseEditor editor;
public JSONDialog(BPMNEditor editor) {
this.editor = editor;
}
public JSONDialog initDialog() {
return (JSONDialog) super.initDialog();
}
public JSONDialog initDialog(String optButton) {
return (JSONDialog) super.initDialog(optButton);
}
public JSONDialog initDialog(boolean save) {
return (JSONDialog) super.initDialog(save);
}
public JSONDialog initDialog(boolean save, String okButton) {
return (JSONDialog) super.initDialog(save, okButton);
}
public JSONPanel getParentPanel() {
return (JSONPanel) parentPanel;
}
public BPMNEditor getEditor() {
return (BPMNEditor) editor;
}
public void editObject(Object obj) {
editObject(null, obj, "");
}
public void editObject(Object obj, String type) {
editObject(null, obj, type);
}
public void editObject(Panel parentPanel, Object obj, String type) {
this.parentPanel = parentPanel;
panelContainer.setActiveObject(obj, type);
setTitle(Resources.get(type));
setDialogVisible();
}
protected void init() {
panelContainer = new JSONPanelContainer(this);
}
public void save() {
panelContainer.apply();
if (save) {
editor.getGraphComponent().getGraph().getModel().fireEvent(new mxEventObject(mxEvent.CHANGE, "edit", new mxUndoableEdit(null)));
}
dispose();
}
public void close() {
if (panelContainer.isModified() && save) {
int sw = panelContainer.showModifiedWarning();
if (sw == JOptionPane.CANCEL_OPTION) {
return;
} else if (sw == JOptionPane.YES_OPTION) {
editor.getGraphComponent().getGraph().getModel().fireEvent(new mxEventObject(mxEvent.CHANGE, "edit", new mxUndoableEdit(null)));
}
}
setVisible(false);
dispose();
}
}