package jeql.workbench; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.Frame; import java.awt.event.ActionEvent; import javax.swing.*; import jeql.util.SwingUtil; public class SettingsDialog extends JDialog { JCheckBox chkShowBlanks; public SettingsDialog() { this(null, "Settings", true); } public SettingsDialog(Frame frame, String title, boolean modal) { super(frame, title, modal); try { initUI(); pack(); SwingUtil.centerOnScreen(this); } catch (Exception ex) { ex.printStackTrace(); } } void initUI() throws Exception { JPanel controlPanel = new JPanel(); controlPanel.setLayout(new BoxLayout(controlPanel, BoxLayout.Y_AXIS)); chkShowBlanks = new JCheckBox("Show non-printable characters in table data", false); controlPanel.add(chkShowBlanks); JButton btnOk = new JButton("Ok"); btnOk.setToolTipText("Ok"); btnOk.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { btnOk_actionPerformed(e); } }); JButton btnCancel = new JButton("Cancel"); btnCancel.setToolTipText("Cancel"); btnCancel.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { btnCancel_actionPerformed(e); } }); JPanel btnPanel = new JPanel(); btnPanel.add(btnOk, null); btnPanel.add(btnCancel, null); JPanel mainPanel = new JPanel(); mainPanel.setLayout(new BorderLayout()); mainPanel.add(controlPanel, BorderLayout.CENTER); mainPanel.add(btnPanel, BorderLayout.SOUTH); getContentPane().add(mainPanel); setPreferredSize(new Dimension(300, 300)); } private void btnOk_actionPerformed(ActionEvent e) { setVisible(false); pullValues(); Workbench.controller().applySettings(); } private void btnCancel_actionPerformed(ActionEvent e) { setVisible(false); } void pushValues() { chkShowBlanks.setSelected(Workbench.model().getSettings().showSpaces); } void pullValues() { Workbench.model().getSettings().showSpaces = chkShowBlanks.isSelected(); } }