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
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
|