[Mongobrowser-commit] SF.net SVN: mongobrowser:[90] trunk/mongobrowser/src/com/mebigfatguy/ mongobr
Status: Pre-Alpha
Brought to you by:
dbrosius
From: <dbr...@us...> - 2010-01-03 00:50:11
|
Revision: 90 http://mongobrowser.svn.sourceforge.net/mongobrowser/?rev=90&view=rev Author: dbrosius Date: 2010-01-03 00:50:02 +0000 (Sun, 03 Jan 2010) Log Message: ----------- rework mongotreenode to have multiple ctors that pick types from parm types. add Delete menu items Modified Paths: -------------- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/actions/DeleteAction.java trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/actions/NewCollectionAction.java trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/actions/NewKeyValueAction.java trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/actions/NewObjectAction.java trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoDataPanel.java trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoTreeNode.java Modified: trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/actions/DeleteAction.java =================================================================== --- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/actions/DeleteAction.java 2010-01-03 00:28:05 UTC (rev 89) +++ trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/actions/DeleteAction.java 2010-01-03 00:50:02 UTC (rev 90) @@ -66,15 +66,19 @@ break; case KeyValue: { - String key = (String)node.getUserObject(); - MongoTreeNode objectNode = (MongoTreeNode)node.getParent(); - DBObject object = (DBObject)objectNode.getUserObject(); - object.removeField(key); - MongoTreeNode collectionNode = TreeUtils.findCollectionNode(objectNode); - DBCollection collection = (DBCollection)collectionNode.getUserObject(); - collection.save(object); - DefaultTreeModel model = (DefaultTreeModel)context.getTree().getModel(); - model.nodeStructureChanged(objectNode); + MongoTreeNode.KV kv = (MongoTreeNode.KV)node.getUserObject(); + String key = kv.getKey(); + if (!key.startsWith("_")) { + MongoTreeNode objectNode = (MongoTreeNode)node.getParent(); + DBObject object = (DBObject)objectNode.getUserObject(); + object.removeField(key); + MongoTreeNode collectionNode = TreeUtils.findCollectionNode(objectNode); + DBCollection collection = (DBCollection)collectionNode.getUserObject(); + collection.save(object); + objectNode.remove(node); + DefaultTreeModel model = (DefaultTreeModel)context.getTree().getModel(); + model.nodeStructureChanged(objectNode); + } } break; } Modified: trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/actions/NewCollectionAction.java =================================================================== --- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/actions/NewCollectionAction.java 2010-01-03 00:28:05 UTC (rev 89) +++ trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/actions/NewCollectionAction.java 2010-01-03 00:50:02 UTC (rev 90) @@ -52,9 +52,9 @@ DBCollection dbCollection = db.getCollection(collectionName); DefaultTreeModel model = (DefaultTreeModel)tree.getModel(); MongoTreeNode root = (MongoTreeNode)model.getRoot(); - MongoTreeNode collectionNode = new MongoTreeNode(MongoTreeNode.Type.Collection, dbCollection); + MongoTreeNode collectionNode = new MongoTreeNode(dbCollection); root.add(collectionNode); - MongoTreeNode slug = new MongoTreeNode(MongoTreeNode.Type.ExpansionSlug, null); + MongoTreeNode slug = new MongoTreeNode(); collectionNode.add(slug); model.nodeStructureChanged(root); TreePath selection = new TreePath(collectionNode.getPath()); Modified: trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/actions/NewKeyValueAction.java =================================================================== --- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/actions/NewKeyValueAction.java 2010-01-03 00:28:05 UTC (rev 89) +++ trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/actions/NewKeyValueAction.java 2010-01-03 00:50:02 UTC (rev 90) @@ -57,7 +57,7 @@ MongoTreeNode objectNode = (MongoTreeNode)path.getLastPathComponent(); DBObject object = (DBObject) objectNode.getUserObject(); object.put(key, value); - MongoTreeNode kv = new MongoTreeNode(MongoTreeNode.Type.KeyValue, key + " : " + object.get(key)); + MongoTreeNode kv = new MongoTreeNode(new MongoTreeNode.KV(key, object.get(key))); objectNode.add(kv); MongoTreeNode collectionNode = TreeUtils.findCollectionNode(objectNode); DBCollection collection = (DBCollection)collectionNode.getUserObject(); Modified: trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/actions/NewObjectAction.java =================================================================== --- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/actions/NewObjectAction.java 2010-01-03 00:28:05 UTC (rev 89) +++ trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/actions/NewObjectAction.java 2010-01-03 00:50:02 UTC (rev 90) @@ -50,9 +50,9 @@ BasicDBObject dbObj = new BasicDBObject(); dbCollection.insert(dbObj); DefaultTreeModel model = (DefaultTreeModel)tree.getModel(); - MongoTreeNode objectNode = new MongoTreeNode(MongoTreeNode.Type.Object, dbObj); + MongoTreeNode objectNode = new MongoTreeNode(dbObj); collectionNode.add(objectNode); - MongoTreeNode slug = new MongoTreeNode(MongoTreeNode.Type.ExpansionSlug, null); + MongoTreeNode slug = new MongoTreeNode(); objectNode.add(slug); model.nodeStructureChanged((MongoTreeNode)model.getRoot()); TreePath selection = new TreePath(objectNode.getPath()); Modified: trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoDataPanel.java =================================================================== --- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoDataPanel.java 2010-01-03 00:28:05 UTC (rev 89) +++ trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoDataPanel.java 2010-01-03 00:50:02 UTC (rev 90) @@ -37,6 +37,7 @@ import javax.swing.tree.TreePath; import com.mebigfatguy.mongobrowser.MongoContext; +import com.mebigfatguy.mongobrowser.actions.DeleteAction; import com.mebigfatguy.mongobrowser.actions.NewCollectionAction; import com.mebigfatguy.mongobrowser.actions.NewKeyValueAction; import com.mebigfatguy.mongobrowser.actions.NewObjectAction; @@ -53,6 +54,7 @@ private JMenuItem newCollectionItem; private JMenuItem newObjectItem; private JMenuItem newKeyValueItem; + private JMenuItem deleteItem; public MongoDataPanel(MongoContext ctxt) { context = ctxt; @@ -70,9 +72,9 @@ Set<String> collectionNames = db.getCollectionNames(); for (String collectionName : collectionNames) { DBCollection collection = db.getCollection(collectionName); - MongoTreeNode col = new MongoTreeNode(MongoTreeNode.Type.Collection, collection); + MongoTreeNode col = new MongoTreeNode(collection); root.add(col); - MongoTreeNode slug = new MongoTreeNode(MongoTreeNode.Type.ExpansionSlug, null); + MongoTreeNode slug = new MongoTreeNode(); col.add(slug); } } else { @@ -94,7 +96,7 @@ private void initComponents() { setLayout(new BorderLayout(4, 4)); - MongoTreeNode root = new MongoTreeNode(MongoTreeNode.Type.Root, null); + MongoTreeNode root = new MongoTreeNode(new MongoTreeNode.Root()); tree = new JTree(root); tree.setRootVisible(false); tree.setShowsRootHandles(true); @@ -104,6 +106,7 @@ newCollectionItem = new JMenuItem(new NewCollectionAction(context)); newObjectItem = new JMenuItem(new NewObjectAction(context)); newKeyValueItem = new JMenuItem(new NewKeyValueAction(context)); + deleteItem = new JMenuItem(new DeleteAction(context)); } private void initListeners() { @@ -137,10 +140,17 @@ context.setSelectedNode(node); if (node.getType() == MongoTreeNode.Type.Collection) { menu.add(newObjectItem); + menu.addSeparator(); + menu.add(deleteItem); menu.show(tree, x, y); } else if (node.getType() == MongoTreeNode.Type.Object){ menu.add(newKeyValueItem); + menu.addSeparator(); + menu.add(deleteItem); menu.show(tree, x, y); + } else if (node.getType() == MongoTreeNode.Type.KeyValue) { + menu.add(deleteItem); + menu.show(tree, x, y); } } } @@ -160,9 +170,9 @@ DBCursor cursor = collection.find(); while (cursor.hasNext()) { DBObject obj = cursor.next(); - MongoTreeNode objNode = new MongoTreeNode(MongoTreeNode.Type.Object, obj); + MongoTreeNode objNode = new MongoTreeNode(obj); node.add(objNode); - slug = new MongoTreeNode(MongoTreeNode.Type.ExpansionSlug, ""); + slug = new MongoTreeNode(); objNode.add(slug); } } @@ -171,7 +181,7 @@ case Object: { DBObject object = (DBObject)node.getUserObject(); for (String key : object.keySet()) { - MongoTreeNode kv = new MongoTreeNode(MongoTreeNode.Type.KeyValue, key + " : " + object.get(key)); + MongoTreeNode kv = new MongoTreeNode(new MongoTreeNode.KV(key, object.get(key))); node.add(kv); } } @@ -187,7 +197,7 @@ public void treeWillCollapse(TreeExpansionEvent event) throws ExpandVetoException { MongoTreeNode node = (MongoTreeNode)event.getPath().getLastPathComponent(); node.removeAllChildren(); - MongoTreeNode slug = new MongoTreeNode(MongoTreeNode.Type.ExpansionSlug, null); + MongoTreeNode slug = new MongoTreeNode(); node.add(slug); DefaultTreeModel model = (DefaultTreeModel)tree.getModel(); model.nodeStructureChanged(node); Modified: trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoTreeNode.java =================================================================== --- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoTreeNode.java 2010-01-03 00:28:05 UTC (rev 89) +++ trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoTreeNode.java 2010-01-03 00:50:02 UTC (rev 90) @@ -28,11 +28,52 @@ public enum Type {Root, Collection, Object, KeyValue, ExpansionSlug}; + public static class Root {} + + public static class KV { + private String key; + private Object value; + + public KV(String k, Object v) { + key = k; + value = v; + } + + public String getKey() { + return key; + } + + @Override + public String toString() { + return key + " : " + value; + } + } + Type nodeType; - public MongoTreeNode(Type type, Object dbObject) { + public MongoTreeNode() { + super(null); + nodeType = Type.ExpansionSlug; + } + + public MongoTreeNode(Root root) { + super(null); + nodeType = Type.Root; + } + + public MongoTreeNode(DBCollection dbCollection) { + super(dbCollection); + nodeType = Type.Collection; + } + + public MongoTreeNode(DBObject dbObject) { super(dbObject); - nodeType = type; + nodeType = Type.Object; + } + + public MongoTreeNode(KV dbKV) { + super(dbKV); + nodeType = Type.KeyValue; } public Type getType() { @@ -43,14 +84,9 @@ public String toString() { switch (nodeType) { case Collection: - return ((DBCollection)getUserObject()).getName(); - - case Object: { - return ((DBObject)getUserObject()).toString(); - } - + case Object: case KeyValue: - return (String)getUserObject(); + return getUserObject().toString(); case Root: case ExpansionSlug: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |