Author: dlanglais Date: 2010-03-25 18:37:30 +0100 (Thu, 25 Mar 2010) New Revision: 286 Log: Ajout et Suppression de Tables et Colonnes Totalement Fonctionnel. Modified: trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/engine/MSMNavigationListener.java 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 17:21:38 UTC (rev 285) +++ trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/engine/MSMNavigationListener.java 2010-03-25 17:37:30 UTC (rev 286) @@ -91,20 +91,38 @@ final DefaultMutableTreeNode node = (DefaultMutableTreeNode) navigation. getLastSelectedPathComponent(); final String tableName = node.toString(); - + if (node != null && node.getLevel() == 0) { - JMenuItem anItem = new JMenuItem(_("add.table")); - anItem.addActionListener(new AddTableListener()); + /** Database + * -> Create Table */ + JMenuItem addTableItem = new JMenuItem(_("add.table")); + addTableItem.addActionListener(new AddTableListener()); - menu.add(anItem); + menu.add(addTableItem); +// menu.add(delTableItem); menu.show(e.getComponent(), e.getX(), e.getY()); } else if (node.getLevel() == 1) { - JMenuItem anItem = new JMenuItem(_("add.column")); - anItem.addActionListener(new AddColumnListener(tableName)); + /** Table + * -> Create Column + * -> Delete Table */ + JMenuItem addColumnItem = new JMenuItem(_("add.column")); + addColumnItem.addActionListener(new AddColumnListener(tableName)); + JMenuItem delTableItem = new JMenuItem(_("del.table")); + delTableItem.addActionListener(new DeleteTableListener()); - menu.add(anItem); + menu.add(addColumnItem); + menu.add(delTableItem); menu.show(e.getComponent(), e.getX(), e.getY()); + + } else if (node.getLevel() == 2) { + /** Column + * -> Delete Column */ + JMenuItem delColumnItem = new JMenuItem(_("del.column")); + delColumnItem.addActionListener(new DeleteColumnListener(tableName)); + + menu.add(delColumnItem); + menu.show(e.getComponent(), e.getX(), e.getY()); } } @@ -126,6 +144,9 @@ } } +/** + * Listener to add a new Table in the BigTable base. + */ class AddTableListener implements ActionListener { /** @@ -164,6 +185,9 @@ } } +/** + * Listener to add a new Column in the selected Table. + */ class AddColumnListener implements ActionListener { /** @@ -207,3 +231,91 @@ engine.uptableNavigationTree(navigation, bigTable.getPluginName()); } } + +/** + * Listener to delete a new Table from the BigTable base. + */ +class DeleteTableListener implements ActionListener { + + /** + * Default Construction. + */ + public DeleteTableListener() { + } + + /** + * 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.deleteTable(tableName); + + /** upatate Navigation Tree. */ + engine.uptableNavigationTree(navigation, bigTable.getPluginName()); + } +} + +/** + * Listener to delete a column from the selected Table. + */ +class DeleteColumnListener implements ActionListener { + + /** + * Current TableName. + */ + private String tableName; + + /** + * Default Constructor. + */ + public DeleteColumnListener(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.deleteColumn(tableName, columnName); + + /** upatate Navigation Tree. */ + engine.uptableNavigationTree(navigation, bigTable.getPluginName()); + } +}
participants (1)
-
dlanglais@users.nuiton.org