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/GUIMap.java |  484 ++++++++++++++++++++++++++---------------------------
 1 files changed, 240 insertions(+), 244 deletions(-)

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