From 34a14fab9a9ee17bb87b841306a3eef715d727d8 Mon Sep 17 00:00:00 2001
From: Jochen Raymaekers <jochen.raymaekers@is4u.be>
Date: Mon, 15 Apr 2013 08:54:17 +0000
Subject: [PATCH] Cleaned up code and updated interface
---
opendj3/opendj-virtual/src/test/java/org/forgerock/opendj/virtual/GUI.java | 128 ++++++-----
opendj3/opendj-virtual/src/test/java/org/forgerock/opendj/virtual/GUIMap.java | 484 +++++++++++++++++++++----------------------
2 files changed, 313 insertions(+), 299 deletions(-)
diff --git a/opendj3/opendj-virtual/src/test/java/org/forgerock/opendj/virtual/GUI.java b/opendj3/opendj-virtual/src/test/java/org/forgerock/opendj/virtual/GUI.java
index 9bd88ab..210720d 100644
--- a/opendj3/opendj-virtual/src/test/java/org/forgerock/opendj/virtual/GUI.java
+++ b/opendj3/opendj-virtual/src/test/java/org/forgerock/opendj/virtual/GUI.java
@@ -27,11 +27,14 @@
package org.forgerock.opendj.virtual;
+import java.awt.Font;
import java.awt.event.*;
import java.sql.SQLException;
import javax.swing.*;
import javax.swing.UIManager.LookAndFeelInfo;
+import javax.swing.border.Border;
+import javax.swing.border.EtchedBorder;
import org.forgerock.opendj.ldap.Connection;
import org.forgerock.opendj.ldap.ErrorResultException;
@@ -44,9 +47,10 @@
static JFrame frame = new JFrame("Login Screen");
private JPanel totalGUI;
- private JLabel label, label_1, label_2, label_3, label_4,label_5, label_6, lblBasedn, label_8, label_9;
+ private JLabel label, label_1, label_2, label_3, label_4, label_5, label_6, lblBasedn, label_8, label_9, lblDirectory, lblDatabase;
private JPanel buttonPane;
private JButton btnLogin, btnCancel;
+ private Border loweredetched;
//login pane Normal
private JPanel loginPane;
@@ -61,129 +65,140 @@
public JPanel createContentPane (){
totalGUI = new JPanel();
totalGUI.setLayout(null);
-
+
+ loweredetched = BorderFactory.createEtchedBorder(EtchedBorder.LOWERED);
+
buttonPane = new JPanel();
buttonPane.setLayout(null);
- buttonPane.setBounds(143, 143, 291, 30);
+ buttonPane.setBounds(295, 221, 284, 30);
totalGUI.add(buttonPane);
btnLogin = new JButton("Login");
- btnLogin.setBounds(0, 0, 145, 30);
+ btnLogin.setBounds(14, 0, 120, 30);
btnLogin.addActionListener(this);
buttonPane.add(btnLogin);
btnCancel = new JButton("Cancel");
- btnCancel.setBounds(145, 1, 147, 29);
+ btnCancel.setBounds(148, 0, 120, 30);
btnCancel.addActionListener(this);
buttonPane.add(btnCancel);
loginPane = new JPanel();
loginPane.setLayout(null);
- loginPane.setBounds(6, 6, 274, 125);
+ loginPane.setBounds(6, 6, 285, 203);
+ loginPane.setBorder(loweredetched);
totalGUI.add(loginPane);
label = new JLabel("Host");
- label.setHorizontalAlignment(SwingConstants.TRAILING);
- label.setBounds(0, 2, 112, 23);
+ label.setBounds(11, 43, 99, 30);
loginPane.add(label);
txtHost = new JTextField();
txtHost.setColumns(10);
- txtHost.setBounds(124, 2, 146, 23);
+ txtHost.setBounds(114, 43, 165, 30);
loginPane.add(txtHost);
label_1 = new JLabel("Port");
- label_1.setHorizontalAlignment(SwingConstants.TRAILING);
- label_1.setBounds(0, 25, 112, 23);
+ label_1.setBounds(11, 74, 99, 30);
loginPane.add(label_1);
txtPort = new JTextField();
txtPort.setColumns(10);
- txtPort.setBounds(124, 25, 146, 23);
+ txtPort.setBounds(114, 73, 165, 30);
loginPane.add(txtPort);
label_2 = new JLabel("DatabaseName");
- label_2.setHorizontalAlignment(SwingConstants.TRAILING);
- label_2.setBounds(0, 48, 112, 23);
+ label_2.setBounds(11, 104, 99, 30);
loginPane.add(label_2);
txtDatabaseName = new JTextField();
txtDatabaseName.setColumns(10);
- txtDatabaseName.setBounds(124, 48, 146, 23);
+ txtDatabaseName.setBounds(114, 103, 165, 30);
loginPane.add(txtDatabaseName);
label_3 = new JLabel("Username");
- label_3.setHorizontalAlignment(SwingConstants.TRAILING);
- label_3.setBounds(0, 71, 112, 23);
+ label_3.setBounds(11, 135, 99, 30);
loginPane.add(label_3);
txtUsername = new JTextField();
txtUsername.setColumns(10);
- txtUsername.setBounds(124, 71, 146, 23);
+ txtUsername.setBounds(114, 133, 165, 30);
loginPane.add(txtUsername);
label_4 = new JLabel("Password");
- label_4.setHorizontalAlignment(SwingConstants.TRAILING);
- label_4.setBounds(0, 94, 112, 23);
+ label_4.setBounds(11, 166, 99, 30);
loginPane.add(label_4);
txtPassword = new JPasswordField();
- txtPassword.setBounds(124, 94, 146, 23);
+ txtPassword.setBounds(114, 163, 165, 30);
loginPane.add(txtPassword);
loginPaneLdap = new JPanel();
loginPaneLdap.setLayout(null);
- loginPaneLdap.setBounds(292, 6, 274, 125);
+ loginPaneLdap.setBounds(295, 6, 285, 203);
+ loginPaneLdap.setBorder(loweredetched);
totalGUI.add(loginPaneLdap);
label_5 = new JLabel("Host");
- label_5.setHorizontalAlignment(SwingConstants.TRAILING);
- label_5.setBounds(0, 2, 112, 23);
+ label_5.setHorizontalAlignment(SwingConstants.LEFT);
+ label_5.setBounds(11, 43, 90, 30);
loginPaneLdap.add(label_5);
txtHostLdap = new JTextField();
txtHostLdap.setColumns(10);
- txtHostLdap.setBounds(124, 2, 146, 23);
+ txtHostLdap.setBounds(114, 43, 165, 30);
loginPaneLdap.add(txtHostLdap);
label_6 = new JLabel("Port");
- label_6.setHorizontalAlignment(SwingConstants.TRAILING);
- label_6.setBounds(0, 25, 112, 23);
+ label_6.setHorizontalAlignment(SwingConstants.LEFT);
+ label_6.setBounds(11, 74, 90, 30);
loginPaneLdap.add(label_6);
txtPortLdap = new JTextField();
txtPortLdap.setColumns(10);
- txtPortLdap.setBounds(124, 25, 146, 23);
+ txtPortLdap.setBounds(114, 73, 165, 30);
loginPaneLdap.add(txtPortLdap);
lblBasedn = new JLabel("BaseDN");
- lblBasedn.setHorizontalAlignment(SwingConstants.TRAILING);
- lblBasedn.setBounds(0, 48, 112, 23);
+ lblBasedn.setHorizontalAlignment(SwingConstants.LEFT);
+ lblBasedn.setBounds(11, 104, 90, 30);
loginPaneLdap.add(lblBasedn);
txtBaseDN = new JTextField();
txtBaseDN.setColumns(10);
- txtBaseDN.setBounds(124, 48, 146, 23);
+ txtBaseDN.setBounds(114, 103, 165, 30);
loginPaneLdap.add(txtBaseDN);
label_8 = new JLabel("Username");
- label_8.setHorizontalAlignment(SwingConstants.TRAILING);
- label_8.setBounds(0, 71, 112, 23);
+ label_8.setHorizontalAlignment(SwingConstants.LEFT);
+ label_8.setBounds(11, 135, 90, 30);
loginPaneLdap.add(label_8);
txtUsernameLdap = new JTextField();
txtUsernameLdap.setColumns(10);
- txtUsernameLdap.setBounds(124, 71, 146, 23);
+ txtUsernameLdap.setBounds(114, 133, 165, 30);
loginPaneLdap.add(txtUsernameLdap);
label_9 = new JLabel("Password");
- label_9.setHorizontalAlignment(SwingConstants.TRAILING);
- label_9.setBounds(0, 94, 112, 23);
+ label_9.setHorizontalAlignment(SwingConstants.LEFT);
+ label_9.setBounds(11, 166, 90, 30);
loginPaneLdap.add(label_9);
txtPasswordLdap = new JPasswordField();
- txtPasswordLdap.setBounds(124, 94, 146, 23);
+ txtPasswordLdap.setBounds(114, 163, 165, 30);
loginPaneLdap.add(txtPasswordLdap);
+
+ lblDatabase = new JLabel("Database");
+ lblDatabase.setHorizontalAlignment(SwingConstants.CENTER);
+ lblDatabase.setFont(lblDatabase.getFont().deriveFont(lblDatabase.getFont().getStyle() | Font.BOLD, lblDatabase.getFont().getSize() + 2f));
+ lblDatabase.setBounds(1, 6, 270, 16);
+ loginPane.add(lblDatabase);
+
+ lblDirectory = new JLabel("Directory");
+ lblDirectory.setHorizontalAlignment(SwingConstants.CENTER);
+ lblDirectory.setFont(lblDirectory.getFont().deriveFont(lblDirectory.getFont().getStyle() | Font.BOLD, lblDirectory.getFont().getSize() + 2f));
+ lblDirectory.setBounds(1, 6, 270, 16);
+ loginPaneLdap.add(lblDirectory);
txtHost.setText("localhost");
txtPort.setText("3306");
@@ -239,26 +254,26 @@
JDBC = new JDBCConnectionFactory(aHost, intaPort, aDatabase);
final Connection jdbcconnection = JDBC.getConnection();
- jdbcconnection.bind(aUsername, txtPassword.getPassword());
-
- LDAP = new LDAPConnectionFactory(lHost, intlPort);
- final Connection ldapconnection = LDAP.getConnection();
- ldapconnection.bind(lUsername, txtPasswordLdap.getPassword());
-
+ jdbcconnection.bind(aUsername, txtPassword.getPassword());
+
+ LDAP = new LDAPConnectionFactory(lHost, intlPort);
+ final Connection ldapconnection = LDAP.getConnection();
+ ldapconnection.bind(lUsername, txtPasswordLdap.getPassword());
+
//TODO aanpassen connection failed
frame.dispose();
new GUIMap(JDBC, LDAP);
} catch (NumberFormatException ex){
JOptionPane.showMessageDialog(frame, ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
} catch (ErrorResultException e1) {
- e1.printStackTrace();
- } catch (ErrorResultIOException e1) {
- e1.printStackTrace();
- } catch (SearchResultReferenceIOException e1) {
- e1.printStackTrace();
- } catch (SQLException e1) {
- e1.printStackTrace();
- }
+ e1.printStackTrace();
+ } catch (ErrorResultIOException e1) {
+ e1.printStackTrace();
+ } catch (SearchResultReferenceIOException e1) {
+ e1.printStackTrace();
+ } catch (SQLException e1) {
+ e1.printStackTrace();
+ }
}
}
catch (IllegalArgumentException x) { // catch the error
@@ -278,21 +293,24 @@
//System.out.println(info.getName());
if ("Nimbus".equals(info.getName())) {
UIManager.setLookAndFeel(info.getClassName());
+ //System.out.println("Used = " + info.getName());
break;
- }
+ } else {
+ UIManager.setLookAndFeel(info.getClassName());
+ }
}
} catch (Exception e) {
- // If Nimbus is not available, you can set the GUI to another look and feel.
+ //System.out.println(e.toString());
}
//Create and set up the content pane.
GUI gui = new GUI();
frame.setContentPane(gui.createContentPane());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- frame.setSize(600, 225);
+ frame.setSize(585, 281);
+ frame.setLocationRelativeTo(null);
frame.setVisible(true);
frame.setResizable(false);
frame.setEnabled(true);
- frame.setLocationRelativeTo(null);
}
public static void main(String[] args) {
//Schedule a job for the event-dispatching thread:
diff --git a/opendj3/opendj-virtual/src/test/java/org/forgerock/opendj/virtual/GUIMap.java b/opendj3/opendj-virtual/src/test/java/org/forgerock/opendj/virtual/GUIMap.java
index cd7da6e..47cf9e8 100644
--- a/opendj3/opendj-virtual/src/test/java/org/forgerock/opendj/virtual/GUIMap.java
+++ b/opendj3/opendj-virtual/src/test/java/org/forgerock/opendj/virtual/GUIMap.java
@@ -25,8 +25,6 @@
* Portions copyright 2011 ForgeRock AS
*/
-
-
package org.forgerock.opendj.virtual;
import java.awt.event.*;
@@ -34,6 +32,8 @@
import javax.swing.*;
import javax.swing.UIManager.LookAndFeelInfo;
+import javax.swing.border.Border;
+import javax.swing.border.EtchedBorder;
import javax.swing.table.*;
import org.forgerock.opendj.ldap.ErrorResultException;
@@ -48,40 +48,40 @@
@SuppressWarnings("serial")
class MyTable extends AbstractTableModel {
-
- public MyTable(){}
-
- private String[] columnNames = {"Columns",
- "Attributes"
- };
- public Object[][] data = {};
-
- public int getColumnCount() {
- return columnNames.length;
- }
- public int getRowCount() {
- return data.length;
- }
- public String getColumnName(int col) {
- return columnNames[col];
- }
- public Object getValueAt(int row, int col) {
- return data[row][col];
- }
-
- public boolean isCellEditable(int row, int col) {
- if (col == 1) {
- return true;
- } else {
- return false;
- }
- }
-
- public void setValueAt(Object value, int row, int col) {
- data[row][col] = value;
- fireTableCellUpdated(row, col);
- }
+ public MyTable(){}
+
+ private String[] columnNames = {"Columns",
+ "Attributes"
+ };
+
+ public Object[][] data = {};
+
+ public int getColumnCount() {
+ return columnNames.length;
+ }
+ public int getRowCount() {
+ return data.length;
+ }
+ public String getColumnName(int col) {
+ return columnNames[col];
+ }
+ public Object getValueAt(int row, int col) {
+ return data[row][col];
+ }
+
+ public boolean isCellEditable(int row, int col) {
+ if (col == 1) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ public void setValueAt(Object value, int row, int col) {
+ data[row][col] = value;
+ fireTableCellUpdated(row, col);
+ }
}
@SuppressWarnings("serial")
@@ -91,7 +91,7 @@
private JPanel totalGUI, inputPane, dataPane,btnPane;
private JComboBox<Object> tableList, directoryOUList;
private JButton btnSetMap, btnResetMap, btnSave, btnQuitConnection;
- private JLabel lblDatabaseTables, lblSelectOu;
+ private JLabel lblDatabaseTables, lblSelectOu, lblEditDataSource;
private JDBCMapper JDBCM;
private JTable table;
private JScrollPane scrollPane;
@@ -99,232 +99,228 @@
static DefaultTableModel model;
static String[] tableNameList;
static String[] OUNameList;
-
+ private Border loweredetched;
+
public GUIMap(JDBCConnectionFactory jdbc, LDAPConnectionFactory ldap) throws ErrorResultException, ErrorResultIOException, SearchResultReferenceIOException, SQLException
{
- JDBCM = new JDBCMapper(jdbc.getConnection(), ldap.getConnection());
- JDBCM.fillMaps();
- List<String> tableStringList = JDBCM.getTables();
- List<String> OUStringList = JDBCM.getOrganizationalUnits();
- tableNameList = new String[tableStringList.size()];
- OUNameList = new String[OUStringList.size()];
- mcm = new MappingConfigurationManager(JDBCM);
- JDBCM.loadMappingConfig(mcm.loadMapping());
-
- for (int i = 0; i < tableStringList.size(); i++){
- tableNameList[i] = tableStringList.get(i);
- }
-
- for (int i = 0; i < OUStringList.size(); i++){
- OUNameList[i] = OUStringList.get(i);
- }
-
- try{
- //JFrame.setDefaultLookAndFeelDecorated(true);
- for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
- //System.out.println(info.getName());
- if ("Nimbus".equals(info.getName())) {
- UIManager.setLookAndFeel(info.getClassName());
- break;
- }
- }
- } catch (Exception e) {
- // If Nimbus is not available, you can set the GUI to another look and feel.
+ JDBCM = new JDBCMapper(jdbc.getConnection(), ldap.getConnection());
+ JDBCM.fillMaps();
+ List<String> tableStringList = JDBCM.getTables();
+ List<String> OUStringList = JDBCM.getOrganizationalUnits();
+ tableNameList = new String[tableStringList.size()];
+ OUNameList = new String[OUStringList.size()];
+ mcm = new MappingConfigurationManager(JDBCM);
+ JDBCM.loadMappingConfig(mcm.loadMapping());
+
+ for (int i = 0; i < tableStringList.size(); i++){
+ tableNameList[i] = tableStringList.get(i);
}
+
+ for (int i = 0; i < OUStringList.size(); i++){
+ OUNameList[i] = OUStringList.get(i);
+ }
+
frame.setResizable(false);
frame.setContentPane(createContentPane());
frame.setEnabled(true);
- frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
- frame.setSize(523, 487);
+ frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+ frame.setSize(524, 513);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
-}
-
+ }
+
/**
* @return
- * @throws SQLException
+ * @throws SQLException
*/
- public JPanel createContentPane () throws SQLException{
- totalGUI = new JPanel();
- totalGUI.setLayout(null);
+ public JPanel createContentPane () throws SQLException{
+ totalGUI = new JPanel();
+ totalGUI.setLayout(null);
+ loweredetched = BorderFactory.createEtchedBorder(EtchedBorder.LOWERED);
- inputPane = new JPanel();
- inputPane.setBounds(6, 5, 507, 61);
- totalGUI.add(inputPane);
- inputPane.setLayout(null);
+ lblEditDataSource = new JLabel("Edit data source");
+ lblEditDataSource.setFont(lblEditDataSource.getFont().deriveFont(lblEditDataSource.getFont().getStyle() | Font.BOLD, lblEditDataSource.getFont().getSize() + 2f));
+ lblEditDataSource.setBounds(16, 6, 134, 16);
+ totalGUI.add(lblEditDataSource);
- tableList = new JComboBox<Object>(tableNameList);
- tableList.setToolTipText("Click to change table");
- tableList.setMaximumRowCount(4);
- tableList.setBounds(6,35,230,27);
- tableList.addActionListener(this);
- inputPane.add(tableList);
+ inputPane = new JPanel();
+ inputPane.setBounds(6, 26, 507, 61);
+ inputPane.setBorder(loweredetched);
+ totalGUI.add(inputPane);
+ inputPane.setLayout(null);
- directoryOUList = new JComboBox<Object>(OUNameList);
- directoryOUList.setToolTipText("Click to change OU");
- directoryOUList.setMaximumRowCount(4);
- directoryOUList.setBounds(271, 35, 230, 27);
- inputPane.add(directoryOUList);
+ tableList = new JComboBox<Object>(tableNameList);
+ tableList.setToolTipText("Click to change table");
+ tableList.setMaximumRowCount(4);
+ tableList.setBounds(6,29,230,27);
+ tableList.addActionListener(this);
+ inputPane.add(tableList);
- lblDatabaseTables = new JLabel("Select table");
- lblDatabaseTables.setBounds(75, 15, 128, 16);
- inputPane.add(lblDatabaseTables);
+ directoryOUList = new JComboBox<Object>(OUNameList);
+ directoryOUList.setToolTipText("Click to change OU");
+ directoryOUList.setMaximumRowCount(4);
+ directoryOUList.setBounds(271, 29, 230, 27);
+ inputPane.add(directoryOUList);
- lblSelectOu = new JLabel("Select OU\n");
- lblSelectOu.setBounds(350, 15, 128, 16);
- inputPane.add(lblSelectOu);
- directoryOUList.addActionListener(this);
+ lblDatabaseTables = new JLabel("Select table");
+ lblDatabaseTables.setBounds(11, 6, 128, 16);
+ inputPane.add(lblDatabaseTables);
- dataPane = new JPanel();
- dataPane.setBounds(6, 75, 511, 308);
- totalGUI.add(dataPane);
- dataPane.setLayout(new GridLayout(0, 1, 0, 0));
-
- //Create the scroll pane and add the table to it.
- scrollPane = new JScrollPane();
- fillTable();
- UpdateTable();
- dataPane.add(scrollPane);
+ lblSelectOu = new JLabel("Select OU\n");
+ lblSelectOu.setBounds(276, 6, 128, 16);
+ inputPane.add(lblSelectOu);
+ directoryOUList.addActionListener(this);
- table.setPreferredScrollableViewportSize(new Dimension(500, 70));
- table.setFillsViewportHeight(true);
- table.getTableHeader().setReorderingAllowed(false);
- table.getTableHeader().setResizingAllowed(false);
-
- btnPane = new JPanel();
- btnPane.setLayout(null);
- btnPane.setBounds(100, 390, 500, 60);
- totalGUI.add(btnPane);
+ dataPane = new JPanel();
+ dataPane.setBounds(6, 99, 511, 308);
+ totalGUI.add(dataPane);
+ dataPane.setLayout(new GridLayout(0, 1, 0, 0));
- btnSetMap = new JButton("Save current mapping");
- btnSetMap.setBounds(0, 0, 175, 30);
- btnSetMap.addActionListener(this);
- btnPane.add(btnSetMap);
-
- btnResetMap = new JButton("Reset current mapping");
- btnResetMap.setBounds(180, 0, 175, 30);
- btnResetMap.addActionListener(this);
- btnPane.add(btnResetMap);
-
- btnSave = new JButton("Save to file");
- btnSave.setBounds(30, 30, 145, 30);
- btnSave.addActionListener(this);
- btnPane.add(btnSave);
+ //Create the scroll pane and add the table to it.
+ scrollPane = new JScrollPane();
+ fillTable();
+ UpdateTable();
+ dataPane.add(scrollPane);
- btnQuitConnection = new JButton("Close");
- btnQuitConnection.setBounds(180, 30, 145, 30);
- btnQuitConnection.addActionListener(this);
- btnPane.add(btnQuitConnection);
+ table.setPreferredScrollableViewportSize(new Dimension(500, 70));
+ table.setFillsViewportHeight(true);
+ table.getTableHeader().setReorderingAllowed(false);
+ table.getTableHeader().setResizingAllowed(false);
- return totalGUI;
- }
-
- private void fillTable() throws SQLException {
- String tableName = tableList.getSelectedItem().toString();
- ArrayList<String> columnsList = JDBCM.getTableColumns(tableName);
- Object[][] rowData = new Object[columnsList.size()][2];
-
- for(int i = 0; i < columnsList.size(); i++){
- String columnName = columnsList.get(i);
-
- if(!JDBCM.getTableColumnNullable(tableName, columnName)){
- columnName = columnName.concat("(*)");
- }
- rowData[i][0] = columnName;
- rowData[i][1] = "----";
- }
-
- MyTable myTable = new MyTable();
- myTable.data = rowData;
- table = new JTable(myTable);
- scrollPane.setViewportView(table);
-
- createTableComboBoxList();
-}
- private void createTableComboBoxList(){
- JComboBox<String> comboBox = new JComboBox<String>();
- ArrayList<String> attributesList = JDBCM.getOrganizationalUnitAttributes(directoryOUList.getSelectedItem().toString());
-
- for(int i = 0; i < attributesList.size(); i++){
- comboBox.addItem(attributesList.get(i));
- }
- TableColumn directoryColumn = table.getColumnModel().getColumn(1);
- directoryColumn.setCellEditor(new DefaultCellEditor(comboBox));
- DefaultTableCellRenderer renderer = new DefaultTableCellRenderer();
- directoryColumn.setCellRenderer(renderer);
- }
-
- public void UpdateTable(){
- String tableName = tableList.getSelectedItem().toString();
- Map<String, String> currentMap = JDBCM.loadCurrentMapFromMapping(tableName);
-
- if(!currentMap.isEmpty()){
- String mappingKey, mappingValue;
- MyTable mt = (MyTable) table.getModel();
-
- for(int i = 0; i < mt.data.length; i++){
- mappingKey = tableName + ":" + mt.data[i][0].toString();
- mappingKey = mappingKey.replace("(*)", "");
- mappingValue = currentMap.get(mappingKey);
- String[] stringSplitter = mappingValue.split((":"));
- mt.data[i][1] = stringSplitter[1];
- }
- }
- }
-
- public void actionPerformed(ActionEvent e) {
- Object source = e.getSource();
- if((source == tableList) || (source == directoryOUList))
- {
- try {
- fillTable();
- createTableComboBoxList();
- if(source == tableList){
- UpdateTable();
- }
- } catch (SQLException e1) {
- e1.printStackTrace();
- }
- }
- else if(source == btnSetMap){
- MyTable mt = (MyTable) table.getModel();
- String tableName = tableList.getSelectedItem().toString();
- String OUName = directoryOUList.getSelectedItem().toString();
- String [] columnStrings = new String[mt.data.length], attributeStrings = new String[mt.data.length];
- boolean success = true;
- String columnName, attributeName;
-
- for(int i = 0; i < mt.data.length; i++){
- columnName = mt.data[i][0].toString();
- attributeName = mt.data[i][1].toString();
-
- if(columnName.contains("(*)") && attributeName.equals("----")){
- success = false;
- JOptionPane.showMessageDialog(frame, "Map all the required fields!", "Error", JOptionPane.ERROR_MESSAGE);
- break;
- }
- columnStrings[i] = columnName.replace("(*)", "");
- attributeStrings[i] = attributeName;
- }
- if(success) JDBCM.addCurrentMapToMapping(tableName, columnStrings, OUName, attributeStrings);
- }
- else if(source == btnSave){
- mcm.saveMapping(JDBCM.getMapping());
- }
- else if(source == btnResetMap){
- try {
- fillTable();
- } catch (SQLException e1) {
- e1.printStackTrace();
- }
- }
- else if(source == btnQuitConnection){
- try {
- JDBCM.closeConnections();
- } catch (SQLException e1) {
- e1.printStackTrace();
- }
- System.exit(0);
- }
- }
-}
+ btnPane = new JPanel();
+ btnPane.setLayout(null);
+ btnPane.setBounds(6, 420, 507, 61);
+ totalGUI.add(btnPane);
+
+ btnSetMap = new JButton("Save current mapping");
+ btnSetMap.setBounds(87, 3, 175, 30);
+ btnSetMap.addActionListener(this);
+ btnPane.add(btnSetMap);
+
+ btnResetMap = new JButton("Reset current mapping");
+ btnResetMap.setBounds(254, 3, 175, 30);
+ btnResetMap.addActionListener(this);
+ btnPane.add(btnResetMap);
+
+ btnSave = new JButton("Save to file");
+ btnSave.setBounds(117, 28, 145, 30);
+ btnSave.addActionListener(this);
+ btnPane.add(btnSave);
+
+ btnQuitConnection = new JButton("Close");
+ btnQuitConnection.setBounds(254, 28, 145, 30);
+ btnQuitConnection.addActionListener(this);
+ btnPane.add(btnQuitConnection);
+
+ return totalGUI;
+ }
+
+ private void fillTable() throws SQLException {
+ String tableName = tableList.getSelectedItem().toString();
+ ArrayList<String> columnsList = JDBCM.getTableColumns(tableName);
+ Object[][] rowData = new Object[columnsList.size()][2];
+
+ for(int i = 0; i < columnsList.size(); i++){
+ String columnName = columnsList.get(i);
+
+ if(!JDBCM.getTableColumnNullable(tableName, columnName)){
+ columnName = columnName.concat("(*)");
+ }
+ rowData[i][0] = columnName;
+ rowData[i][1] = "----";
+ }
+
+ MyTable myTable = new MyTable();
+ myTable.data = rowData;
+ table = new JTable(myTable);
+ scrollPane.setViewportView(table);
+
+ createTableComboBoxList();
+ }
+ private void createTableComboBoxList(){
+ JComboBox<String> comboBox = new JComboBox<String>();
+ ArrayList<String> attributesList = JDBCM.getOrganizationalUnitAttributes(directoryOUList.getSelectedItem().toString());
+
+ for(int i = 0; i < attributesList.size(); i++){
+ comboBox.addItem(attributesList.get(i));
+ }
+ TableColumn directoryColumn = table.getColumnModel().getColumn(1);
+ directoryColumn.setCellEditor(new DefaultCellEditor(comboBox));
+ DefaultTableCellRenderer renderer = new DefaultTableCellRenderer();
+ directoryColumn.setCellRenderer(renderer);
+ }
+
+ public void UpdateTable(){
+ String tableName = tableList.getSelectedItem().toString();
+ Map<String, String> currentMap = JDBCM.loadCurrentMapFromMapping(tableName);
+
+ if(!currentMap.isEmpty()){
+ String mappingKey, mappingValue;
+ MyTable mt = (MyTable) table.getModel();
+
+ for(int i = 0; i < mt.data.length; i++){
+ mappingKey = tableName + ":" + mt.data[i][0].toString();
+ mappingKey = mappingKey.replace("(*)", "");
+ mappingValue = currentMap.get(mappingKey);
+ String[] stringSplitter = mappingValue.split((":"));
+ mt.data[i][1] = stringSplitter[1];
+ }
+ }
+ }
+
+ public void actionPerformed(ActionEvent e) {
+ Object source = e.getSource();
+ if((source == tableList) || (source == directoryOUList))
+ {
+ try {
+ fillTable();
+ createTableComboBoxList();
+ if(source == tableList){
+ UpdateTable();
+ }
+ } catch (SQLException e1) {
+ e1.printStackTrace();
+ }
+ }
+ else if(source == btnSetMap){
+ MyTable mt = (MyTable) table.getModel();
+ String tableName = tableList.getSelectedItem().toString();
+ String OUName = directoryOUList.getSelectedItem().toString();
+ String [] columnStrings = new String[mt.data.length], attributeStrings = new String[mt.data.length];
+ boolean success = true;
+ String columnName, attributeName;
+
+ for(int i = 0; i < mt.data.length; i++){
+ columnName = mt.data[i][0].toString();
+ attributeName = mt.data[i][1].toString();
+
+ if(columnName.contains("(*)") && attributeName.equals("----")){
+ success = false;
+ JOptionPane.showMessageDialog(frame, "Map all the required fields!", "Error", JOptionPane.ERROR_MESSAGE);
+ break;
+ }
+ columnStrings[i] = columnName.replace("(*)", "");
+ attributeStrings[i] = attributeName;
+ }
+ if(success) JDBCM.addCurrentMapToMapping(tableName, columnStrings, OUName, attributeStrings);
+ }
+ else if(source == btnSave){
+ mcm.saveMapping(JDBCM.getMapping());
+ }
+ else if(source == btnResetMap){
+ try {
+ fillTable();
+ } catch (SQLException e1) {
+ e1.printStackTrace();
+ }
+ }
+ else if(source == btnQuitConnection){
+ try {
+ JDBCM.closeConnections();
+ } catch (SQLException e1) {
+ e1.printStackTrace();
+ }
+ System.exit(0);
+ }
+ }
+}
\ No newline at end of file
--
Gitblit v1.10.0