[Mongobrowser-commit] SF.net SVN: mongobrowser:[94] trunk/mongobrowser/src/com/mebigfatguy/ mongobr
Status: Pre-Alpha
Brought to you by:
dbrosius
From: <dbr...@us...> - 2010-01-03 01:32:54
|
Revision: 94 http://mongobrowser.svn.sourceforge.net/mongobrowser/?rev=94&view=rev Author: dbrosius Date: 2010-01-03 01:32:47 +0000 (Sun, 03 Jan 2010) Log Message: ----------- treat system nodes as readonly, and only enable action items for non readonly nodes Modified Paths: -------------- 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/MongoControlPanel.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/NewCollectionAction.java =================================================================== --- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/actions/NewCollectionAction.java 2010-01-03 01:07:45 UTC (rev 93) +++ trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/actions/NewCollectionAction.java 2010-01-03 01:32:47 UTC (rev 94) @@ -52,7 +52,7 @@ DBCollection dbCollection = db.getCollection(collectionName); DefaultTreeModel model = (DefaultTreeModel)tree.getModel(); MongoTreeNode root = (MongoTreeNode)model.getRoot(); - MongoTreeNode collectionNode = new MongoTreeNode(dbCollection); + MongoTreeNode collectionNode = new MongoTreeNode(dbCollection, false); root.add(collectionNode); MongoTreeNode slug = new MongoTreeNode(); collectionNode.add(slug); Modified: trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/actions/NewKeyValueAction.java =================================================================== --- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/actions/NewKeyValueAction.java 2010-01-03 01:07:45 UTC (rev 93) +++ trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/actions/NewKeyValueAction.java 2010-01-03 01:32:47 UTC (rev 94) @@ -57,7 +57,7 @@ MongoTreeNode objectNode = (MongoTreeNode)path.getLastPathComponent(); DBObject object = (DBObject) objectNode.getUserObject(); object.put(key, value); - MongoTreeNode kv = new MongoTreeNode(new MongoTreeNode.KV(key, object.get(key))); + MongoTreeNode kv = new MongoTreeNode(new MongoTreeNode.KV(key, object.get(key)), false); 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 01:07:45 UTC (rev 93) +++ trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/actions/NewObjectAction.java 2010-01-03 01:32:47 UTC (rev 94) @@ -50,7 +50,7 @@ BasicDBObject dbObj = new BasicDBObject(); dbCollection.insert(dbObj); DefaultTreeModel model = (DefaultTreeModel)tree.getModel(); - MongoTreeNode objectNode = new MongoTreeNode(dbObj); + MongoTreeNode objectNode = new MongoTreeNode(dbObj, false); collectionNode.add(objectNode); MongoTreeNode slug = new MongoTreeNode(); objectNode.add(slug); Modified: trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoControlPanel.java =================================================================== --- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoControlPanel.java 2010-01-03 01:07:45 UTC (rev 93) +++ trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoControlPanel.java 2010-01-03 01:32:47 UTC (rev 94) @@ -42,7 +42,6 @@ import com.mebigfatguy.mongobrowser.actions.NewCollectionAction; import com.mebigfatguy.mongobrowser.actions.NewKeyValueAction; import com.mebigfatguy.mongobrowser.actions.NewObjectAction; -import com.mongodb.DBCollection; import com.mongodb.Mongo; public class MongoControlPanel extends JPanel implements MongoPanel { @@ -106,29 +105,39 @@ switch (selectedNode.getType()) { case Collection: dbNewCollectionButton.setEnabled(true); - dbNewObjectButton.setEnabled(true); dbNewKeyValueButton.setEnabled(false); - DBCollection collection = (DBCollection)selectedNode.getUserObject(); - String collectionName = collection.getName(); - if (!(collectionName.startsWith("system.") || collectionName.startsWith("local."))) { + if (selectedNode.isReadOnly()) { + dbNewObjectButton.setEnabled(false); + dbDeleteButton.setEnabled(false); + } else { + dbNewObjectButton.setEnabled(true); dbDeleteButton.setEnabled(true); } + break; case Object: dbNewCollectionButton.setEnabled(true); dbNewObjectButton.setEnabled(false); - dbNewKeyValueButton.setEnabled(true); - dbDeleteButton.setEnabled(true); + if (selectedNode.isReadOnly()) { + dbNewKeyValueButton.setEnabled(false); + dbDeleteButton.setEnabled(false); + } else { + dbNewKeyValueButton.setEnabled(true); + dbDeleteButton.setEnabled(true); + } break; case KeyValue: dbNewCollectionButton.setEnabled(true); dbNewObjectButton.setEnabled(false); dbNewKeyValueButton.setEnabled(false); - MongoTreeNode.KV kv = (MongoTreeNode.KV)selectedNode.getUserObject(); - if (!kv.getKey().startsWith("_")) { - dbDeleteButton.setEnabled(true); + + if (selectedNode.isReadOnly()) { + dbDeleteButton.setEnabled(false); + } else { + MongoTreeNode.KV kv = (MongoTreeNode.KV)selectedNode.getUserObject(); + dbDeleteButton.setEnabled(!kv.getKey().startsWith("_")); } break; } Modified: trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoDataPanel.java =================================================================== --- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoDataPanel.java 2010-01-03 01:07:45 UTC (rev 93) +++ trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoDataPanel.java 2010-01-03 01:32:47 UTC (rev 94) @@ -72,7 +72,8 @@ Set<String> collectionNames = db.getCollectionNames(); for (String collectionName : collectionNames) { DBCollection collection = db.getCollection(collectionName); - MongoTreeNode col = new MongoTreeNode(collection); + boolean readOnly = collectionName.startsWith("system."); + MongoTreeNode col = new MongoTreeNode(collection, readOnly); root.add(col); MongoTreeNode slug = new MongoTreeNode(); col.add(slug); @@ -139,24 +140,24 @@ MongoTreeNode node = (MongoTreeNode)path.getLastPathComponent(); context.setSelectedNode(node); if (node.getType() == MongoTreeNode.Type.Collection) { - menu.add(newObjectItem); - DBCollection collection = (DBCollection)node.getUserObject(); - String collectionName = collection.getName(); - if (!(collectionName.startsWith("system.") || collectionName.startsWith("local."))) { + if (!node.isReadOnly()) { + menu.add(newObjectItem); + menu.show(tree, x, y); + } + } else if (node.getType() == MongoTreeNode.Type.Object) { + if (!node.isReadOnly()) { + menu.add(newKeyValueItem); menu.addSeparator(); menu.add(deleteItem); + menu.show(tree, x, y); } - 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) { - MongoTreeNode.KV kv = (MongoTreeNode.KV)node.getUserObject(); - if (!kv.getKey().startsWith("_")) { - menu.add(deleteItem); - menu.show(tree, x, y); + if (!node.isReadOnly()) { + MongoTreeNode.KV kv = (MongoTreeNode.KV)node.getUserObject(); + if (!kv.getKey().startsWith("_")) { + menu.add(deleteItem); + menu.show(tree, x, y); + } } } } @@ -177,7 +178,7 @@ DBCursor cursor = collection.find(); while (cursor.hasNext()) { DBObject obj = cursor.next(); - MongoTreeNode objNode = new MongoTreeNode(obj); + MongoTreeNode objNode = new MongoTreeNode(obj, node.isReadOnly()); node.add(objNode); slug = new MongoTreeNode(); objNode.add(slug); @@ -188,7 +189,7 @@ case Object: { DBObject object = (DBObject)node.getUserObject(); for (String key : object.keySet()) { - MongoTreeNode kv = new MongoTreeNode(new MongoTreeNode.KV(key, object.get(key))); + MongoTreeNode kv = new MongoTreeNode(new MongoTreeNode.KV(key, object.get(key)), node.isReadOnly()); node.add(kv); } } Modified: trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoTreeNode.java =================================================================== --- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoTreeNode.java 2010-01-03 01:07:45 UTC (rev 93) +++ trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoTreeNode.java 2010-01-03 01:32:47 UTC (rev 94) @@ -50,36 +50,46 @@ } Type nodeType; + boolean readOnly; public MongoTreeNode() { super(null); nodeType = Type.ExpansionSlug; + readOnly = false; } public MongoTreeNode(Root root) { super(null); nodeType = Type.Root; + readOnly = false; } - public MongoTreeNode(DBCollection dbCollection) { + public MongoTreeNode(DBCollection dbCollection, boolean rdOnly) { super(dbCollection); nodeType = Type.Collection; + readOnly = rdOnly; } - public MongoTreeNode(DBObject dbObject) { + public MongoTreeNode(DBObject dbObject, boolean rdOnly) { super(dbObject); nodeType = Type.Object; + readOnly = rdOnly; } - public MongoTreeNode(KV dbKV) { + public MongoTreeNode(KV dbKV, boolean rdOnly) { super(dbKV); nodeType = Type.KeyValue; + readOnly = rdOnly; } public Type getType() { return nodeType; } + public boolean isReadOnly() { + return readOnly; + } + @Override public String toString() { switch (nodeType) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |