Author: dlanglais Date: 2010-03-25 17:58:18 +0100 (Thu, 25 Mar 2010) New Revision: 284 Log: Avancement sur la possibilit?\195?\169 d'ajouter des Tables via MSM. Modified: trunk/msm-bighashmap/src/main/java/org/nuiton/mapstoragemanager/plugins/bighashmap/BigHashMap.java trunk/msm-bighashmapV2/src/main/java/org/nuiton/mapstoragemanager/plugins/bighashmapv2/BigHashMapV2.java trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/engine/ApplicationEngine.java trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/engine/ColumnModel.java trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/engine/MSMNavigationListener.java trunk/msm/src/test/resources/ Modified: trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/engine/ApplicationEngine.java =================================================================== --- trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/engine/ApplicationEngine.java 2010-03-25 16:23:54 UTC (rev 283) +++ trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/engine/ApplicationEngine.java 2010-03-25 16:58:18 UTC (rev 284) @@ -316,7 +316,7 @@ * @param tree the navigationTree. * @param nameBase the name of the base. */ - private void uptableNavigationTree(JTree tree, String nameBase) { + public void uptableNavigationTree(JTree tree, String nameBase) { tree.setModel(new MSMModel(nameBase)); tree.addMouseListener(new MSMNavigationListener()); Modified: trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/engine/ColumnModel.java =================================================================== --- trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/engine/ColumnModel.java 2010-03-25 16:23:54 UTC (rev 283) +++ trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/engine/ColumnModel.java 2010-03-25 16:58:18 UTC (rev 284) @@ -49,19 +49,21 @@ columnNames[1] = _("table.values"); Set<String> tableKeys = bigTable.getKeys(tableName); - - //content - data = new HashMap<Integer, List<String>>(); - data.put(0, new ArrayList<String>()); - data.put(1, new ArrayList<String>()); - int j = 0; - for (String key : tableKeys) { - String value = bigTable.get(tableName, columnName, key); - if (value != null) { - data.get(0).add(j, key); - data.get(1).add(j, value); - j++; + if(tableKeys != null) { + //content + data = new HashMap<Integer, List<String>>(); + data.put(0, new ArrayList<String>()); + data.put(1, new ArrayList<String>()); + + int j = 0; + for (String key : tableKeys) { + String value = bigTable.get(tableName, columnName, key); + if (value != null) { + data.get(0).add(j, key); + data.get(1).add(j, value); + j++; + } } } } Modified: trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/engine/MSMNavigationListener.java =================================================================== --- trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/engine/MSMNavigationListener.java 2010-03-25 16:23:54 UTC (rev 283) +++ trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/engine/MSMNavigationListener.java 2010-03-25 16:58:18 UTC (rev 284) @@ -1,15 +1,20 @@ package org.nuiton.mapstoragemanager.ui.engine; import java.awt.BorderLayout; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import javax.swing.JLabel; import javax.swing.JMenuItem; +import javax.swing.JOptionPane; import javax.swing.JPopupMenu; import javax.swing.JScrollPane; import javax.swing.JTable; +import javax.swing.JTree; import javax.swing.SwingUtilities; import javax.swing.tree.DefaultMutableTreeNode; +import org.nuiton.mapstoragemanager.plugins.BigTable; import org.nuiton.mapstoragemanager.ui.MainUI; import static org.nuiton.i18n.I18n._; @@ -21,21 +26,20 @@ */ public class MSMNavigationListener implements MouseListener { - @Override public void mouseClicked(MouseEvent e) { - if(SwingUtilities.isLeftMouseButton(e)){ - leftButton(e); - } else if(SwingUtilities.isRightMouseButton(e)){ - rightButton(e); - } + if (SwingUtilities.isLeftMouseButton(e)) { + leftButton(e); + } else if (SwingUtilities.isRightMouseButton(e)) { + rightButton(e); + } } - - /** + + /** * LEFT Button action. * @param e event */ - private void leftButton(MouseEvent e){ + private void leftButton(MouseEvent e) { MainUI ui = MainUI.getInstance(); DefaultMutableTreeNode node; @@ -44,7 +48,7 @@ ui.getTableContent().removeAll(); ui.getTableName().removeAll(); - JTable jTable = null; + JTable jTable = null; /* if nothing is selected */ if (node == null || node.isRoot()) { return; @@ -79,7 +83,7 @@ * RIGHT Button action. * @param e event */ - private void rightButton(MouseEvent e){ + private void rightButton(MouseEvent e) { JPopupMenu menu = new JPopupMenu(); JMenuItem anItem; @@ -88,14 +92,17 @@ node = (DefaultMutableTreeNode) ui.getNavigation(). getLastSelectedPathComponent(); - if (node == null || node.isRoot()) { - anItem = new JMenuItem (_("add.table")); - //anItem.addActionListener(new AddtableListener()); + System.out.println(node.toString()); + + if (node == null || node.isRoot()) { + anItem = new JMenuItem(_("add.table")); + anItem.addActionListener(new AddTableListener()); } else if (node.isLeaf()) { return; } else { - anItem = new JMenuItem (_("add.column")); - //anItem.addActionListener(new AddcolumnListener()); + anItem = new JMenuItem(_("add.column")); +// anItem.addActionListener(new AddColumnListener( +// e.getComponent().getName())); } menu.add(anItem); @@ -112,13 +119,91 @@ @Override public void mouseEntered(MouseEvent e) { - } @Override public void mouseExited(MouseEvent e) { - } +} +class AddTableListener implements ActionListener { + /** + * Default Construction. + */ + public AddTableListener() { + } + + /** + * Open a JOptionPane to ask the wanted table name and create it. + */ + @Override + public void actionPerformed(ActionEvent e) { + + /** Get MainUI et ApplicationEngine instances. */ + final MainUI ui = MainUI.getInstance(); + final ApplicationEngine engine = ApplicationEngine.getInstance(); + final JTree navigation = ui.getNavigation(); + final BigTable bigTable = engine.getBigTable(); + + /** Ask wanted table name. */ + final String tableName = (String) JOptionPane.showInputDialog( + ui, + _("AddTableListener.question"), + _("AddTableListener.title"), + JOptionPane.PLAIN_MESSAGE, + null, + null, + _("AddTableListener.default")); + + /** Create the Table in the BigTable */ + bigTable.createTable(tableName); + + /** upatate Navigation Tree. */ + engine.uptableNavigationTree(navigation, bigTable.getPluginName()); + } } + +class AddColumnListener implements ActionListener { + + /** + * Current TableName. + */ + private String tableName; + + /** + * Default Constructor. + */ + public AddColumnListener(String tableName) { + this.tableName = tableName; + } + + /** + * Open a JOptionPane to ask the wanted table name and create it. + */ + @Override + public void actionPerformed(ActionEvent e) { + + /** Get MainUI et ApplicationEngine instances. */ + final MainUI ui = MainUI.getInstance(); + final ApplicationEngine engine = ApplicationEngine.getInstance(); + final JTree navigation = ui.getNavigation(); + final BigTable bigTable = engine.getBigTable(); + + /** Ask wanted table name. */ + final String columnName = (String) JOptionPane.showInputDialog( + ui, + _("AddTableListener.question"), + _("AddTableListener.title"), + JOptionPane.PLAIN_MESSAGE, + null, + null, + _("AddTableListener.default")); + + /** Create the Table in the BigTable */ + bigTable.createColumn(tableName, columnName); + + /** upatate Navigation Tree. */ + engine.uptableNavigationTree(navigation, bigTable.getPluginName()); + } +} Property changes on: trunk/msm/src/test/resources ___________________________________________________________________ Added: svn:ignore + .properties Modified: trunk/msm-bighashmap/src/main/java/org/nuiton/mapstoragemanager/plugins/bighashmap/BigHashMap.java =================================================================== --- trunk/msm-bighashmap/src/main/java/org/nuiton/mapstoragemanager/plugins/bighashmap/BigHashMap.java 2010-03-25 16:23:54 UTC (rev 283) +++ trunk/msm-bighashmap/src/main/java/org/nuiton/mapstoragemanager/plugins/bighashmap/BigHashMap.java 2010-03-25 16:58:18 UTC (rev 284) @@ -3,6 +3,7 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.HashMap; +import java.util.HashSet; import java.util.Map; import java.util.NoSuchElementException; import java.util.Properties; @@ -169,7 +170,12 @@ */ @Override public final Set<String> getKeys(final String table) { - return this.tables.get(table).getKeys(); + Set<String> keys = new HashSet<String>(); + Table selectedTable = this.tables.get(table); + if(selectedTable != null) { + keys = selectedTable.getKeys(); + } + return keys; } /** Modified: trunk/msm-bighashmapV2/src/main/java/org/nuiton/mapstoragemanager/plugins/bighashmapv2/BigHashMapV2.java =================================================================== --- trunk/msm-bighashmapV2/src/main/java/org/nuiton/mapstoragemanager/plugins/bighashmapv2/BigHashMapV2.java 2010-03-25 16:23:54 UTC (rev 283) +++ trunk/msm-bighashmapV2/src/main/java/org/nuiton/mapstoragemanager/plugins/bighashmapv2/BigHashMapV2.java 2010-03-25 16:58:18 UTC (rev 284) @@ -3,6 +3,7 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.HashMap; +import java.util.HashSet; import java.util.Map; import java.util.NoSuchElementException; import java.util.Properties; @@ -18,7 +19,6 @@ * * @author Copyright CodeLutin * @since 0.1-SNAPSHOT - * */ public class BigHashMapV2 implements BigTable { @@ -171,7 +171,12 @@ */ @Override public final Set<String> getKeys(final String table) { - return this.tables.get(table).getKeys(); + Set<String> keys = new HashSet<String>(); + Table selectedTable = this.tables.get(table); + if(selectedTable != null) { + keys = selectedTable.getKeys(); + } + return keys; } /**