package net.combase.desktopcrm.swing; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JPasswordField; import javax.swing.JSpinner; import javax.swing.JTextField; import javax.swing.border.EmptyBorder; import net.combase.desktopcrm.data.AsteriskManager; import net.combase.desktopcrm.data.CrmManager; import net.combase.desktopcrm.data.DataStoreManager; import net.combase.desktopcrm.domain.Settings; public class CrmSettings extends JFrame { /** * */ private static final long serialVersionUID = 6410315947750123167L; private JPanel contentPane; private JTextField sugarUrl; private JTextField login; private JPasswordField password; private JSpinner spinner; private JTextField asteriskManagerField; private JTextField asteriskPasswordField; private JTextField asteriskHostField; private JTextField extensionField; private JTextField dialUrlField; /** * Create the frame. */ public CrmSettings() { setTitle("CRM Settings"); setBounds(100, 100, 449, 420); setResizable(false); setIconImage(CrmIcons.SETTINGS.getImage()); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(null); JLabel lblC = new JLabel("Sugar URL"); lblC.setBounds(15, 6, 130, 31); contentPane.add(lblC); sugarUrl = new JTextField(); sugarUrl.setBounds(139, 12, 279, 25); contentPane.add(sugarUrl); sugarUrl.setColumns(10); JLabel lblLogin = new JLabel("Login"); lblLogin.setBounds(15, 49, 70, 15); contentPane.add(lblLogin); login = new JTextField(); login.setBounds(139, 49, 279, 25); contentPane.add(login); login.setColumns(10); JLabel lblPassword = new JLabel("Password"); lblPassword.setBounds(15, 86, 70, 15); contentPane.add(lblPassword); password = new JPasswordField(); password.setText("sdfsdf"); password.setBounds(139, 84, 279, 25); contentPane.add(password); JButton btnSave = new JButton("save"); btnSave.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { onSave(); } }); btnSave.setBounds(308, 347, 117, 25); contentPane.add(btnSave); Settings settings = DataStoreManager.getSettings(); sugarUrl.setText(settings.getCrmUrl()); login.setText(settings.getUser()); password.setText(settings.getPassword()); JLabel lblGmtOffset = new JLabel("GMT Offset"); lblGmtOffset.setBounds(15, 118, 104, 15); contentPane.add(lblGmtOffset); spinner = new JSpinner(); spinner.setBounds(139, 116, 279, 25); spinner.setValue(settings.getGmtOffset()); contentPane.add(spinner); asteriskManagerField = new JTextField(); asteriskManagerField.setBounds(139, 153, 279, 25); contentPane.add(asteriskManagerField); asteriskManagerField.setColumns(10); asteriskManagerField.setText(settings.getAsteriskUser()); asteriskPasswordField = new JTextField(); asteriskPasswordField.setBounds(139, 190, 279, 25); contentPane.add(asteriskPasswordField); asteriskPasswordField.setColumns(10); asteriskPasswordField.setText(settings.getAsteriskPassword()); asteriskHostField = new JTextField(); asteriskHostField.setBounds(139, 227, 279, 25); contentPane.add(asteriskHostField); asteriskHostField.setColumns(10); asteriskHostField.setText(settings.getAsteriskHost()); JLabel lblAsteriskManager = new JLabel("Asterisk Manager"); lblAsteriskManager.setBounds(15, 153, 130, 15); contentPane.add(lblAsteriskManager); JLabel lblPassword_1 = new JLabel("Password"); lblPassword_1.setBounds(15, 190, 70, 15); contentPane.add(lblPassword_1); JLabel lblHost = new JLabel("Host"); lblHost.setBounds(15, 227, 70, 15); contentPane.add(lblHost); extensionField = new JTextField(); extensionField.setBounds(139, 264, 279, 25); contentPane.add(extensionField); extensionField.setColumns(10); extensionField.setText(settings.getAsteriskExtension()); dialUrlField = new JTextField(); dialUrlField.setBounds(139, 301, 279, 25); contentPane.add(dialUrlField); dialUrlField.setText(settings.getDialUrl()); JLabel lblExtension = new JLabel("Extension"); lblExtension.setBounds(15, 264, 70, 15); contentPane.add(lblExtension); JLabel dialUrl = new JLabel("Dial URL"); dialUrl.setBounds(15, 301, 70, 15); contentPane.add(dialUrl); } protected void onSave() { String url = sugarUrl.getText(); String user = login.getText(); String pwd = String.valueOf(password.getPassword()); int offset = (int)spinner.getValue(); String asteriskHost = asteriskHostField.getText(); String asteriskUser = asteriskManagerField.getText(); String asteriskPassword = asteriskPasswordField.getText(); String asteriskExtension = extensionField.getText(); String dialUrl = dialUrlField.getText(); Settings settings = DataStoreManager.getSettings(); settings.setCrmUrl(url); settings.setUser(user); settings.setPassword(pwd); settings.setGmtOffset(offset); settings.setAsteriskHost(asteriskHost); settings.setAsteriskExtension(asteriskExtension); settings.setAsteriskHost(asteriskHost); settings.setAsteriskPassword(asteriskPassword); settings.setAsteriskUser(asteriskUser); settings.setDialUrl(dialUrl); DataStoreManager.writeSettings(settings); if (asteriskHost != null && !asteriskHost.trim().isEmpty()) { if (!AsteriskManager.setup()) { JOptionPane.showMessageDialog(this, "The Asterisk connection failed!"); return; } } if (!CrmManager.setup()) JOptionPane.showMessageDialog(this, "The CRM connection failed!"); else setVisible(false); } }