[Mongobrowser-commit] SF.net SVN: mongobrowser:[38] trunk/mongobrowser/src/com/mebigfatguy/ mongobr
Status: Pre-Alpha
Brought to you by:
dbrosius
From: <dbr...@us...> - 2009-12-27 05:07:41
|
Revision: 38 http://mongobrowser.svn.sourceforge.net/mongobrowser/?rev=38&view=rev Author: dbrosius Date: 2009-12-27 05:07:35 +0000 (Sun, 27 Dec 2009) Log Message: ----------- add keyvalue menu/button, and fix enabling of buttons Modified Paths: -------------- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/MongoContext.java trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoActions.java trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoBrowserFrame.java trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoControlPanel.java trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoDataPanel.java Modified: trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/MongoContext.java =================================================================== --- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/MongoContext.java 2009-12-27 04:40:15 UTC (rev 37) +++ trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/MongoContext.java 2009-12-27 05:07:35 UTC (rev 38) @@ -20,6 +20,7 @@ import javax.swing.JTree; +import com.mebigfatguy.mongobrowser.dialogs.MongoTreeNode; import com.mongodb.DB; import com.mongodb.Mongo; @@ -28,6 +29,9 @@ void setTree(JTree tree); JTree getTree(); + void setSelectedNode(MongoTreeNode node); + MongoTreeNode getSelectedNode(); + void setServer(Mongo server); Mongo getServer(); Modified: trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoActions.java =================================================================== --- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoActions.java 2009-12-27 04:40:15 UTC (rev 37) +++ trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoActions.java 2009-12-27 05:07:35 UTC (rev 38) @@ -67,4 +67,7 @@ objectNode.add(slug); model.nodeStructureChanged((MongoTreeNode)model.getRoot()); } + + public void createNewKeyValue() { + } } Modified: trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoBrowserFrame.java =================================================================== --- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoBrowserFrame.java 2009-12-27 04:40:15 UTC (rev 37) +++ trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoBrowserFrame.java 2009-12-27 05:07:35 UTC (rev 38) @@ -87,6 +87,7 @@ class Mediator implements MongoContext { private JTree activeTree; + private MongoTreeNode activeNode; private Mongo activeServer; private DB activeDatabase; @@ -100,6 +101,17 @@ public void setTree(JTree tree) { activeTree = tree; } + + @Override + public MongoTreeNode getSelectedNode() { + return activeNode; + } + + @Override + public void setSelectedNode(MongoTreeNode node) { + activeNode = node; + ctrlPanel.adjustEnabled(node); + } @Override public Mongo getServer() { Modified: trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoControlPanel.java =================================================================== --- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoControlPanel.java 2009-12-27 04:40:15 UTC (rev 37) +++ trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoControlPanel.java 2009-12-27 05:07:35 UTC (rev 38) @@ -49,6 +49,7 @@ private JComboBox dbComboBox; private JButton dbNewCollectionButton; private JButton dbNewObjectButton; + private JButton dbNewKeyValueButton; public MongoControlPanel(MongoContext ctxt) { context = ctxt; @@ -72,8 +73,7 @@ } }); dbComboBox.setEnabled(true); - dbNewCollectionButton.setEnabled(true); - dbNewObjectButton.setEnabled(true); + context.setSelectedNode(null); } }); @@ -86,15 +86,43 @@ DefaultComboBoxModel model = (DefaultComboBoxModel)dbComboBox.getModel(); model.removeAllElements(); dbComboBox.setEnabled(false); - dbNewCollectionButton.setEnabled(false); - dbNewObjectButton.setEnabled(false); + context.setSelectedNode(null); } }); } + + public void adjustEnabled(MongoTreeNode selectedNode) { + if (selectedNode == null) { + dbNewCollectionButton.setEnabled(true); + dbNewObjectButton.setEnabled(false); + dbNewKeyValueButton.setEnabled(false); + } else { + switch (selectedNode.getType()) { + case Collection: + dbNewCollectionButton.setEnabled(true); + dbNewObjectButton.setEnabled(true); + dbNewKeyValueButton.setEnabled(false); + break; + + case Object: + dbNewCollectionButton.setEnabled(true); + dbNewObjectButton.setEnabled(false); + dbNewKeyValueButton.setEnabled(true); + break; + + case KeyValue: + dbNewCollectionButton.setEnabled(true); + dbNewObjectButton.setEnabled(false); + dbNewKeyValueButton.setEnabled(false); + break; + } + } + } + private void initComponents() { setBorder(BorderFactory.createLineBorder(Color.BLACK)); - setLayout(new FormLayout("3dlu, pref, 1dlu, 150px, 3dlu, pref, 3dlu, pref", "pref")); + setLayout(new FormLayout("3dlu, pref, 1dlu, 150px, 3dlu, pref, 3dlu, pref, 3dlu, pref", "pref")); CellConstraints cc = new CellConstraints(); JLabel dbLabel = new JLabel(MongoBundle.getString(MongoBundle.Key.Database)); @@ -117,6 +145,13 @@ dbNewObjectButton.setToolTipText(MongoBundle.getString(MongoBundle.Key.NewObject)); add(dbNewObjectButton, cc.xy(8, 1)); dbNewObjectButton.setEnabled(false); + + icon = new ImageIcon(MongoControlPanel.class.getResource("/com/mebigfatguy/mongobrowser/resources/newkeyvalue.png")); + dbNewKeyValueButton = new JButton(icon); + dbNewKeyValueButton.setPreferredSize(new Dimension(icon.getIconWidth(), icon.getIconHeight())); + dbNewKeyValueButton.setToolTipText(MongoBundle.getString(MongoBundle.Key.NewKeyValue)); + add(dbNewKeyValueButton, cc.xy(10, 1)); + dbNewKeyValueButton.setEnabled(false); } private void initListeners() { Modified: trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoDataPanel.java =================================================================== --- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoDataPanel.java 2009-12-27 04:40:15 UTC (rev 37) +++ trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoDataPanel.java 2009-12-27 05:07:35 UTC (rev 38) @@ -31,6 +31,8 @@ import javax.swing.JScrollPane; import javax.swing.JTree; import javax.swing.event.TreeExpansionEvent; +import javax.swing.event.TreeSelectionEvent; +import javax.swing.event.TreeSelectionListener; import javax.swing.event.TreeWillExpandListener; import javax.swing.tree.DefaultTreeModel; import javax.swing.tree.ExpandVetoException; @@ -77,6 +79,7 @@ root.removeAllChildren(); } model.nodeStructureChanged(root); + context.setSelectedNode(null); } @Override @@ -85,6 +88,7 @@ MongoTreeNode root = (MongoTreeNode)model.getRoot(); root.removeAllChildren(); model.nodeStructureChanged(root); + context.setSelectedNode(null); } private void initComponents() { @@ -130,9 +134,13 @@ menu.show(tree, x, y); } else { MongoTreeNode node = (MongoTreeNode)path.getLastPathComponent(); + context.setSelectedNode(node); if (node.getType() == MongoTreeNode.Type.Collection) { menu.add(newObjectItem); menu.show(tree, x, y); + } else if (node.getType() == MongoTreeNode.Type.Object){ + menu.add(newKeyValueItem); + menu.show(tree, x, y); } } } @@ -187,6 +195,19 @@ }); + tree.addTreeSelectionListener(new TreeSelectionListener() { + @Override + public void valueChanged(TreeSelectionEvent tse) { + TreePath path = tse.getNewLeadSelectionPath(); + if (path != null) { + MongoTreeNode node = (MongoTreeNode)path.getLastPathComponent(); + context.setSelectedNode(node); + } else { + context.setSelectedNode(null); + } + } + }); + newCollectionItem.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent ae) { @@ -202,5 +223,13 @@ actions.createNewObject(); } }); + + newKeyValueItem.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent ae) { + MongoActions actions = new MongoActions(context); + actions.createNewKeyValue(); + } + }); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |