
org.yaoqiang.dialog.BaseDialog Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of yaoqiang-bpmn-editor Show documentation
Show all versions of yaoqiang-bpmn-editor Show documentation
an Open Source BPMN 2.0 Modeler
package org.yaoqiang.dialog;
import java.awt.Container;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import javax.swing.AbstractAction;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.KeyStroke;
import javax.swing.WindowConstants;
import com.mxgraph.util.mxResources;
/**
* BaseDialog
*
* @author Shi Yaoqiang([email protected])
*/
public class BaseDialog extends JDialog {
private static final long serialVersionUID = 1L;
protected PanelContainer panelContainer;
protected Panel parentPanel;
protected JButton buttonOpt;
protected boolean save = true;
public BaseDialog() {
super((Frame) null, true);
init();
}
protected void init() {
this.panelContainer = new PanelContainer(this);
}
public BaseDialog initDialog() {
return initDialog(true, null, null);
}
public BaseDialog initDialog(String optButton) {
return initDialog(save, null, optButton);
}
public BaseDialog initDialog(boolean save) {
return initDialog(save, null, null);
}
public BaseDialog initDialog(boolean save, String okButton) {
return initDialog(save, okButton, null);
}
public BaseDialog initDialog(boolean save, String okButton, String optButton) {
this.save = save;
buildDialog(okButton, optButton);
return this;
}
public Panel getParentPanel() {
return parentPanel;
}
public JButton getOptionButton() {
return buttonOpt;
}
public void editObject(Object el, String type) {
editObject(null, el, type);
}
public void editObject(Panel parentPanel, Object el, String type) {
this.parentPanel = parentPanel;
panelContainer.setActiveObject(el, type);
setTitle(mxResources.get(type));
setDialogVisible();
}
protected void setDialogVisible() {
setSize(panelContainer.getDisplay().getSize());
pack();
if (!isVisible()) {
setLocationRelativeTo(this.getParent());
setVisible(true);
}
}
protected void buildDialog(String okButton, String optButton) {
JPanel buttonPanel = new JPanel();
buttonPanel.setLayout(new BoxLayout(buttonPanel, BoxLayout.X_AXIS));
JButton buttonOK = new JButton(mxResources.get(okButton == null ? "ok" : okButton));
JButton buttonCancel = new JButton(mxResources.get("cancel"));
if (optButton != null) {
buttonOpt = new JButton(mxResources.get(optButton));
buttonPanel.add(Box.createHorizontalStrut(4));
buttonPanel.add(buttonOpt);
}
buttonPanel.add(Box.createHorizontalGlue());
buttonPanel.add(buttonOK);
buttonPanel.add(Box.createHorizontalStrut(4));
buttonPanel.add(buttonCancel);
buttonPanel.add(Box.createHorizontalStrut(4));
Container cp = getContentPane();
cp.removeAll();
cp.setLayout(new BoxLayout(cp, BoxLayout.Y_AXIS));
cp.add(panelContainer);
cp.add(Box.createVerticalStrut(5));
cp.add(buttonPanel);
// action listener for confirming
buttonOK.addActionListener(okl);
// action listener for cancel
buttonCancel.addActionListener(al);
addWindowListener(wl);
getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0, false), "Cancel");
getRootPane().getActionMap().put("Cancel", new AbstractAction() {
private static final long serialVersionUID = 1L;
public void actionPerformed(ActionEvent e) {
al.actionPerformed(e);
}
});
setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
setResizable(true);
buttonOK.setDefaultCapable(true);
getRootPane().setDefaultButton(buttonOK);
}
public PanelContainer getPanelContainer() {
return panelContainer;
}
public void save() {
}
public void close() {
}
protected WindowListener wl = new WindowAdapter() {
public void windowClosing(WindowEvent e) {
close();
}
};
protected ActionListener al = new ActionListener() {
public void actionPerformed(ActionEvent ae) {
close();
}
};
protected ActionListener okl = new ActionListener() {
public void actionPerformed(ActionEvent ae) {
save();
}
};
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy