SuperX-Kernmodul
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

121 lines
3.8 KiB

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