package de.memtext.db; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.sql.SQLException; import javax.swing.JButton; import javax.swing.JPanel; import de.memtext.observ.DocumentListenerObserver; import de.memtext.widgets.InfoMessage; import de.memtext.widgets.LabeledPasswordField; import de.memtext.widgets.LabeledTextField; import de.memtext.widgets.MultilineEditPanel; import de.memtext.widgets.WarningMessage; public class DataSourceEditPanel extends MultilineEditPanel { private DataSource ds; private LabeledTextField hostField = new LabeledTextField("Host", 10); private LabeledTextField serverField = new LabeledTextField("Server", 10); private LabeledTextField serviceField = new LabeledTextField("Service", 10); private LabeledTextField odbcSourceField = new LabeledTextField("Odbc-DSN", 10); private LabeledTextField usernameField = new LabeledTextField("Kennung", 10); private LabeledTextField passwordField = new LabeledPasswordField("Password", 10); private JPanel pButtons = new JPanel(); public DataSourceEditPanel() { this.setBackground(null); odbcSourceField.setValue("sospos"); odbcSourceField.setBackground(null); usernameField.setValue("admin"); this.add(hostField); this.add(serverField); this.add(serviceField); this.add(odbcSourceField); this.add(usernameField); this.add(passwordField); //this.addGlue(); JButton btnTesten = new JButton("testen"); btnTesten.setBackground(null); pButtons.setBackground(null); btnTesten.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent ae) { test(); } }); pButtons.add(btnTesten); //this.addGlue(); this.add(pButtons); } public void setDataSource(DataSource ds) { this.ds = ds; setMode(ds.getDb()); } public void addButton(JButton btn) { pButtons.add(btn); } private void setMode(DB db) { if (db.equals(DB.ACCESS)) { odbcSourceField.setVisible(true); hostField.setVisible(false); serverField.setVisible(false); serviceField.setVisible(false); } if (db.equals(DB.INFORMIX)) { odbcSourceField.setVisible(false); hostField.setVisible(true); serverField.setVisible(true); serviceField.setVisible(true); } } protected void test() { updateDataSource(); try { ds.testConnection(); InfoMessage.show(this, "Verbindung erfolgreich aufgebaut", "Erfolg"); } catch (SQLException e) { if (ds.getDb().equals(DB.ACCESS)) { WarningMessage.show(this, "Verbindung zur ODBC-Quelle " + odbcSourceField.getValue() + " konnte nicht aufgebaut werden.\n" + e, "Achtung"); } } catch (ClassNotFoundException e) { WarningMessage.show(this, "Benötigte Treiber-Klase nicht gefunden ", "Achtung"); } } public void updateDataSource() { if (ds.getDb() == DB.ACCESS) { ds.setUrl("jdbc:odbc:" + odbcSourceField.getValue()); } ds.setUsername(usernameField.getValue().toString()); ds.setPassword(""); } public void addDocumentListener(DocumentListenerObserver listener) { hostField.addDocumentListener(listener); serverField.addDocumentListener(listener); serviceField.addDocumentListener(listener); odbcSourceField.addDocumentListener(listener); usernameField.addDocumentListener(listener); passwordField.addDocumentListener(listener); } } //Created on 17.04.2004 at 16:37:44