mongobrowser-commit Mailing List for mongobrowser (Page 2)
Status: Pre-Alpha
Brought to you by:
dbrosius
You can subscribe to this list here.
2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(60) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2010 |
Jan
(61) |
Feb
|
Mar
|
Apr
|
May
|
Jun
(2) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2011 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(9) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <dbr...@us...> - 2010-01-03 03:19:00
|
Revision: 109 http://mongobrowser.svn.sourceforge.net/mongobrowser/?rev=109&view=rev Author: dbrosius Date: 2010-01-03 03:18:50 +0000 (Sun, 03 Jan 2010) Log Message: ----------- javadoc Modified Paths: -------------- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/IntegerDocument.java Modified: trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/IntegerDocument.java =================================================================== --- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/IntegerDocument.java 2010-01-03 03:18:06 UTC (rev 108) +++ trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/IntegerDocument.java 2010-01-03 03:18:50 UTC (rev 109) @@ -24,6 +24,9 @@ import javax.swing.text.BadLocationException; import javax.swing.text.PlainDocument; +/** + * a JTextComponent model class that only allows Integer values + */ public class IntegerDocument extends PlainDocument { private static final long serialVersionUID = -6755728406523769124L; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dbr...@us...> - 2010-01-03 03:18:17
|
Revision: 108 http://mongobrowser.svn.sourceforge.net/mongobrowser/?rev=108&view=rev Author: dbrosius Date: 2010-01-03 03:18:06 +0000 (Sun, 03 Jan 2010) Log Message: ----------- javadoc Modified Paths: -------------- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoPanel.java Modified: trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoPanel.java =================================================================== --- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoPanel.java 2010-01-03 03:13:16 UTC (rev 107) +++ trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoPanel.java 2010-01-03 03:18:06 UTC (rev 108) @@ -18,6 +18,10 @@ */ package com.mebigfatguy.mongobrowser.dialogs; +/** + * a common interface for panels to be informed when a database + * is connected to or disconnected from + */ public interface MongoPanel { void init(); void term(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dbr...@us...> - 2010-01-03 03:13:22
|
Revision: 107 http://mongobrowser.svn.sourceforge.net/mongobrowser/?rev=107&view=rev Author: dbrosius Date: 2010-01-03 03:13:16 +0000 (Sun, 03 Jan 2010) Log Message: ----------- javadoc Modified Paths: -------------- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoTreeNode.java Modified: trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoTreeNode.java =================================================================== --- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoTreeNode.java 2010-01-03 03:08:22 UTC (rev 106) +++ trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoTreeNode.java 2010-01-03 03:13:16 UTC (rev 107) @@ -28,8 +28,14 @@ public enum Type {Root, Collection, Object, KeyValue, ExpansionSlug}; + /** + * a dummy object used as a constructor differentiator for the root of the tree + */ public static class Root {} + /** + * holds the key value of a mongo object property + */ public static class KV { private String key; private Object value; @@ -56,44 +62,84 @@ Type nodeType; boolean readOnly; + /** + * constructs a tree node representing an expansion slug + */ public MongoTreeNode() { super(null); nodeType = Type.ExpansionSlug; readOnly = false; } + /** + * constructs a tree node representing the root of the tree + * + * @param root a unused tag to differentiate constructors + */ public MongoTreeNode(Root root) { super(null); nodeType = Type.Root; readOnly = false; } + /** + * constructs a tree node representing a mongo collection + * + * @param dbCollection the mongo collection to represent + * @param rdOnly is this collection read only + */ public MongoTreeNode(DBCollection dbCollection, boolean rdOnly) { super(dbCollection); nodeType = Type.Collection; readOnly = rdOnly; } + /** + * constructs a tree node representing a mongo object + * + * @param dbObject the mongo object to represent + * @param rdOnly is this object read only + */ public MongoTreeNode(DBObject dbObject, boolean rdOnly) { super(dbObject); nodeType = Type.Object; readOnly = rdOnly; } + /** + * constructs a tree node representing a mongo key/value + * + * @param dbKV the key value object to represent + * @param rdOnly is this key value read only + */ public MongoTreeNode(KV dbKV, boolean rdOnly) { super(dbKV); nodeType = Type.KeyValue; readOnly = rdOnly; } + /** + * retrieves the type of this node + * + * @return the nodes type + */ public Type getType() { return nodeType; } + /** + * retrieves whether this node is readonly + * @return if this tree node is readonly + */ public boolean isReadOnly() { return readOnly; } + /** + * returns a user viewable string + * + * @return a string representing this node + */ @Override public String toString() { switch (nodeType) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dbr...@us...> - 2010-01-03 03:08:33
|
Revision: 106 http://mongobrowser.svn.sourceforge.net/mongobrowser/?rev=106&view=rev Author: dbrosius Date: 2010-01-03 03:08:22 +0000 (Sun, 03 Jan 2010) Log Message: ----------- add a FloatValueType Modified Paths: -------------- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/MongoBundle.java trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/KeyValueDialog.java trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/resources/resource.properties Modified: trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/MongoBundle.java =================================================================== --- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/MongoBundle.java 2010-01-03 03:04:48 UTC (rev 105) +++ trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/MongoBundle.java 2010-01-03 03:08:22 UTC (rev 106) @@ -47,6 +47,7 @@ Value("mongo.value"), Integer("mongo.integer"), Double("mongo.double"), + Float("mongo.float"), String("mongo.string"), Object("mongo.object"), Delete("mongo.delete"); Modified: trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/KeyValueDialog.java =================================================================== --- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/KeyValueDialog.java 2010-01-03 03:04:48 UTC (rev 105) +++ trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/KeyValueDialog.java 2010-01-03 03:08:22 UTC (rev 106) @@ -87,6 +87,7 @@ DefaultComboBoxModel model = (DefaultComboBoxModel)valueTypeBox.getModel(); model.addElement(new IntegerValueType()); model.addElement(new DoubleValueType()); + model.addElement(new FloatValueType()); model.addElement(new StringValueType()); model.addElement(new ObjectValueType()); valueTypeBox.setSelectedIndex(2); @@ -283,6 +284,51 @@ } /** + * a value type representing an Float object + */ + static class FloatValueType implements ValueType { + + /** + * installs an FloatDocument as the field's model + * + * @param field the text edit field to install the model + */ + @Override + public void installDocument(JTextField field) { + try { + String val = field.getText(); + field.setText(""); + field.setDocument(new FloatDocument()); + field.getDocument().insertString(0, val, null); + field.setEnabled(true); + } catch (BadLocationException ble) { + } + } + + /** + * get the field's values as an Float + * + * @param field the component that holds the float value + * @return an Float that is the value of the text field + */ + @Override + public Object getValue(JTextField field) { + return Float.valueOf(field.getText()); + } + + /** + * returns the display value shown in the combo box + * + * @return the string 'Float' + */ + @Override + public String toString() { + return MongoBundle.getString(MongoBundle.Key.Float); + } + } + + + /** * a value type representing an String object */ static class StringValueType implements ValueType { Modified: trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/resources/resource.properties =================================================================== --- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/resources/resource.properties 2010-01-03 03:04:48 UTC (rev 105) +++ trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/resources/resource.properties 2010-01-03 03:08:22 UTC (rev 106) @@ -35,6 +35,7 @@ mongo.value = Value mongo.integer = Integer mongo.double = Double +mongo.float = Float mongo.string = String mongo.object = Object mongo.delete = Delete This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dbr...@us...> - 2010-01-03 03:04:54
|
Revision: 105 http://mongobrowser.svn.sourceforge.net/mongobrowser/?rev=105&view=rev Author: dbrosius Date: 2010-01-03 03:04:48 +0000 (Sun, 03 Jan 2010) Log Message: ----------- a JTextField model object that only allows Float values Added Paths: ----------- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/FloatDocument.java Added: trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/FloatDocument.java =================================================================== --- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/FloatDocument.java (rev 0) +++ trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/FloatDocument.java 2010-01-03 03:04:48 UTC (rev 105) @@ -0,0 +1,53 @@ +/* + * mongobrowser - a webstart gui application for viewing, + * editing and administering a Mongo Database + * Copyright 2009-2010 MeBigFatGuy.com + * Copyright 2009-2010 Dave Brosius + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and limitations + * under the License. + */ +package com.mebigfatguy.mongobrowser.dialogs; + +import java.awt.Toolkit; + +import javax.swing.text.AttributeSet; +import javax.swing.text.BadLocationException; +import javax.swing.text.PlainDocument; +/** + * a JTextComponent model object that only allows float value input + */ +public class FloatDocument extends PlainDocument { + + private static final long serialVersionUID = 569269763667696934L; + + /** + * intercepts string insertions to make sure that the values to be put into + * a text component is only an float value + * + * @param pos where the text is being inserted + * @param insertStr the new text that was typed + * @param atts the attributes for the text (unused) + */ + @Override + public void insertString(int pos, String insertStr, AttributeSet atts) throws BadLocationException { + StringBuilder text = new StringBuilder(getText(0, getLength())); + try { + text.insert(pos, insertStr); + Float.parseFloat(text.toString()); + super.insertString(pos, insertStr, atts); + } catch (Exception e) { + Toolkit.getDefaultToolkit().beep(); + } + } + +} Property changes on: trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/FloatDocument.java ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dbr...@us...> - 2010-01-03 03:01:00
|
Revision: 104 http://mongobrowser.svn.sourceforge.net/mongobrowser/?rev=104&view=rev Author: dbrosius Date: 2010-01-03 03:00:51 +0000 (Sun, 03 Jan 2010) Log Message: ----------- javadoc Modified Paths: -------------- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/TreeUtils.java Modified: trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/TreeUtils.java =================================================================== --- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/TreeUtils.java 2010-01-03 02:59:26 UTC (rev 103) +++ trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/TreeUtils.java 2010-01-03 03:00:51 UTC (rev 104) @@ -20,11 +20,20 @@ import com.mebigfatguy.mongobrowser.dialogs.MongoTreeNode; +/** + * a collection of utility methods used in a static context + */ public class TreeUtils { private TreeUtils() { } + /** + * retrieves the collection node that owns the requested node + * + * @param fromNode the node to find the collection for + * @return the collection node that owns this node + */ public static MongoTreeNode findCollectionNode(MongoTreeNode fromNode) { while (fromNode.getType() != MongoTreeNode.Type.Collection) { fromNode = (MongoTreeNode)fromNode.getParent(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dbr...@us...> - 2010-01-03 02:59:32
|
Revision: 103 http://mongobrowser.svn.sourceforge.net/mongobrowser/?rev=103&view=rev Author: dbrosius Date: 2010-01-03 02:59:26 +0000 (Sun, 03 Jan 2010) Log Message: ----------- javadoc Modified Paths: -------------- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/MongoContext.java Modified: trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/MongoContext.java =================================================================== --- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/MongoContext.java 2010-01-03 02:54:47 UTC (rev 102) +++ trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/MongoContext.java 2010-01-03 02:59:26 UTC (rev 103) @@ -24,6 +24,9 @@ import com.mongodb.DB; import com.mongodb.Mongo; +/** + * a mediator interface for getting all the key items used in the application + */ public interface MongoContext { void setTree(JTree tree); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dbr...@us...> - 2010-01-03 02:54:54
|
Revision: 102 http://mongobrowser.svn.sourceforge.net/mongobrowser/?rev=102&view=rev Author: dbrosius Date: 2010-01-03 02:54:47 +0000 (Sun, 03 Jan 2010) Log Message: ----------- javadoc Modified Paths: -------------- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/KeyValueDialog.java Modified: trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/KeyValueDialog.java =================================================================== --- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/KeyValueDialog.java 2010-01-03 02:48:30 UTC (rev 101) +++ trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/KeyValueDialog.java 2010-01-03 02:54:47 UTC (rev 102) @@ -25,6 +25,9 @@ import com.mebigfatguy.mongobrowser.MongoBundle; import com.mongodb.BasicDBObject; +/** + * a dialog for collecting key/value pairs for a mongo object property + */ public class KeyValueDialog extends JDialog { private static final long serialVersionUID = 4909101478144542212L; @@ -36,6 +39,9 @@ private JButton cancelButton; private boolean ok = false; + /** + * constructs a dialog to collect a key value for a mongo object's property + */ public KeyValueDialog() { setTitle(MongoBundle.getString(MongoBundle.Key.NewKeyValue)); initComponents(); @@ -43,6 +49,9 @@ pack(); } + /** + * adds and lays out the components in the dialog + */ private void initComponents() { Container cp = getContentPane(); cp.setLayout(new BorderLayout(4, 4)); @@ -50,6 +59,11 @@ cp.add(createCtrlPanel(), BorderLayout.SOUTH); } + /** + * creates the panel for collecting the key and value + * + * @return a panel holding the input fields + */ private JPanel createFormPanel() { JPanel p = new JPanel(); p.setLayout(new FormLayout("6dlu, pref, 5dlu, 200px, 5dlu, pref, 6dlu", "6dlu, pref, 2dlu, pref, 6dlu")); @@ -83,6 +97,11 @@ return p; } + /** + * creates a panel holding the ok and cancel buttons + * + * @return the ok/cancel button panel + */ private JPanel createCtrlPanel() { JPanel p = new JPanel(); p.setBorder(BorderFactory.createEmptyBorder(0, 0, 10, 0)); @@ -100,6 +119,9 @@ return p; } + /** + * installs the listeners + */ private void initListeners() { okButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) { @@ -126,25 +148,62 @@ }); } + /** + * did the user click ok + * + * @return if the user clicked ok + */ public boolean isOK() { return ok; } + /** + * gets the key value from the form + * + * @return the key value + */ public String getKey() { return keyField.getText(); } + /** + * gets the typed value from the dialog + * + * @return the typed value + */ public Object getValue() { return ((ValueType)valueTypeBox.getSelectedItem()).getValue(valueField); } + /** + * interface for items that are put into the Value type combobox + */ interface ValueType { + /** + * switch the JTextField's model based on the type of value + * + * @param field the component who's document should be modified + */ void installDocument(JTextField field); + /** + * get the value object of the field, based on the type of this value + * + * @param field the component to get the value from + * @return a value object + */ Object getValue(JTextField field); } + /** + * a value type representing an Integer object + */ static class IntegerValueType implements ValueType { + /** + * installs an IntegerDocument as the field's model + * + * @param field the text edit field to install the model + */ @Override public void installDocument(JTextField field) { try { @@ -157,19 +216,38 @@ } } + /** + * get the field's values as an Integer + * + * @param field the component that holds the integer value + * @return an Integer that is the value of the text field + */ @Override public Object getValue(JTextField field) { return Integer.valueOf(field.getText()); } + /** + * returns the display value shown in the combo box + * + * @return the string 'Integer' + */ @Override public String toString() { return MongoBundle.getString(MongoBundle.Key.Integer); } } + /** + * a value type representing an Double object + */ static class DoubleValueType implements ValueType { + /** + * installs an DoubleDocument as the field's model + * + * @param field the text edit field to install the model + */ @Override public void installDocument(JTextField field) { try { @@ -182,18 +260,38 @@ } } + /** + * get the field's values as an Double + * + * @param field the component that holds the double value + * @return an Double that is the value of the text field + */ @Override public Object getValue(JTextField field) { return Double.valueOf(field.getText()); } + + /** + * returns the display value shown in the combo box + * + * @return the string 'Double' + */ @Override public String toString() { return MongoBundle.getString(MongoBundle.Key.Double); } } + /** + * a value type representing an String object + */ static class StringValueType implements ValueType { + /** + * installs an PlainDocument as the field's model + * + * @param field the text edit field to install the model + */ @Override public void installDocument(JTextField field) { try { @@ -206,19 +304,39 @@ } } + /** + * get the field's values as an String + * + * @param field the component that holds the string value + * @return an String that is the value of the text field + */ @Override public Object getValue(JTextField field) { return field.getText(); } + /** + * returns the display value shown in the combo box + * + * @return the string 'String' + */ @Override public String toString() { return MongoBundle.getString(MongoBundle.Key.String); } } + /** + * a value type representing an BasicDBObject object + */ static class ObjectValueType implements ValueType { + /** + * installs an PlainDocument as the field's model + * and disables the field + * + * @param field the text edit field to install the model + */ @Override public void installDocument(JTextField field) { field.setText(""); @@ -226,11 +344,22 @@ field.setEnabled(false); } + /** + * get the field's values as an BasicDBObject + * + * @param field the component that holds the string value + * @return an String that is the value of the text field + */ @Override public Object getValue(JTextField field) { return new BasicDBObject(); } + /** + * returns the display value shown in the combo box + * + * @return the string 'Object' + */ @Override public String toString() { return MongoBundle.getString(MongoBundle.Key.Object); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dbr...@us...> - 2010-01-03 02:48:41
|
Revision: 101 http://mongobrowser.svn.sourceforge.net/mongobrowser/?rev=101&view=rev Author: dbrosius Date: 2010-01-03 02:48:30 +0000 (Sun, 03 Jan 2010) Log Message: ----------- javadoc Modified Paths: -------------- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/MongoBrowser.java Modified: trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/MongoBrowser.java =================================================================== --- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/MongoBrowser.java 2010-01-03 02:13:30 UTC (rev 100) +++ trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/MongoBrowser.java 2010-01-03 02:48:30 UTC (rev 101) @@ -20,8 +20,15 @@ import com.mebigfatguy.mongobrowser.dialogs.MongoBrowserFrame; +/** + * main application class + */ public class MongoBrowser { + /** + * + * @param args the command line arguments (unused) + */ public static void main(String[] args) { MongoBrowserFrame frame = new MongoBrowserFrame(); frame.setLocationRelativeTo(null); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dbr...@us...> - 2010-01-03 02:13:36
|
Revision: 100 http://mongobrowser.svn.sourceforge.net/mongobrowser/?rev=100&view=rev Author: dbrosius Date: 2010-01-03 02:13:30 +0000 (Sun, 03 Jan 2010) Log Message: ----------- allow adding kvs under a kv object Modified Paths: -------------- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoDataPanel.java Modified: trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoDataPanel.java =================================================================== --- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoDataPanel.java 2010-01-03 02:10:49 UTC (rev 99) +++ trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoDataPanel.java 2010-01-03 02:13:30 UTC (rev 100) @@ -154,7 +154,17 @@ } else if (node.getType() == MongoTreeNode.Type.KeyValue) { if (!node.isReadOnly()) { MongoTreeNode.KV kv = (MongoTreeNode.KV)node.getUserObject(); + Object value = kv.getValue(); + boolean needsSeparator = false; + if (value instanceof DBObject) { + menu.add(newKeyValueItem); + needsSeparator = true; + } + if (!kv.getKey().startsWith("_")) { + if (needsSeparator) { + menu.addSeparator(); + } menu.add(deleteItem); menu.show(tree, x, y); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dbr...@us...> - 2010-01-03 02:10:55
|
Revision: 99 http://mongobrowser.svn.sourceforge.net/mongobrowser/?rev=99&view=rev Author: dbrosius Date: 2010-01-03 02:10:49 +0000 (Sun, 03 Jan 2010) Log Message: ----------- enable newkey value button/menu if on a keyvalue that is a dbobject Modified Paths: -------------- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoControlPanel.java Modified: trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoControlPanel.java =================================================================== --- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoControlPanel.java 2010-01-03 02:08:15 UTC (rev 98) +++ trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoControlPanel.java 2010-01-03 02:10:49 UTC (rev 99) @@ -42,6 +42,7 @@ import com.mebigfatguy.mongobrowser.actions.NewCollectionAction; import com.mebigfatguy.mongobrowser.actions.NewKeyValueAction; import com.mebigfatguy.mongobrowser.actions.NewObjectAction; +import com.mongodb.DBObject; import com.mongodb.Mongo; public class MongoControlPanel extends JPanel implements MongoPanel { @@ -131,12 +132,14 @@ case KeyValue: dbNewCollectionButton.setEnabled(true); dbNewObjectButton.setEnabled(false); - dbNewKeyValueButton.setEnabled(false); if (selectedNode.isReadOnly()) { + dbNewKeyValueButton.setEnabled(false); dbDeleteButton.setEnabled(false); } else { MongoTreeNode.KV kv = (MongoTreeNode.KV)selectedNode.getUserObject(); + Object value = kv.getValue(); + dbNewKeyValueButton.setEnabled(value instanceof DBObject); dbDeleteButton.setEnabled(!kv.getKey().startsWith("_")); } break; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dbr...@us...> - 2010-01-03 02:08:26
|
Revision: 98 http://mongobrowser.svn.sourceforge.net/mongobrowser/?rev=98&view=rev Author: dbrosius Date: 2010-01-03 02:08:15 +0000 (Sun, 03 Jan 2010) Log Message: ----------- allow adding k/vs to both objects and the value of a k/v Modified Paths: -------------- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/actions/NewKeyValueAction.java Modified: trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/actions/NewKeyValueAction.java =================================================================== --- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/actions/NewKeyValueAction.java 2010-01-03 02:00:38 UTC (rev 97) +++ trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/actions/NewKeyValueAction.java 2010-01-03 02:08:15 UTC (rev 98) @@ -54,16 +54,23 @@ String key = dialog.getKey(); Object value = dialog.getValue(); TreePath path = tree.getSelectionPath(); - MongoTreeNode objectNode = (MongoTreeNode)path.getLastPathComponent(); - DBObject object = (DBObject) objectNode.getUserObject(); + MongoTreeNode selectedNode = (MongoTreeNode)path.getLastPathComponent(); + DBObject object; + + if (selectedNode.getType() == MongoTreeNode.Type.KeyValue) { + object = (DBObject) ((MongoTreeNode.KV)selectedNode.getUserObject()).getValue(); + } else { + object = (DBObject) selectedNode.getUserObject(); + } + object.put(key, value); MongoTreeNode kv = new MongoTreeNode(new MongoTreeNode.KV(key, object.get(key)), false); - objectNode.add(kv); + selectedNode.add(kv); if (value instanceof DBObject) { MongoTreeNode slug = new MongoTreeNode(); kv.add(slug); } - MongoTreeNode collectionNode = TreeUtils.findCollectionNode(objectNode); + MongoTreeNode collectionNode = TreeUtils.findCollectionNode(selectedNode); DBCollection collection = (DBCollection)collectionNode.getUserObject(); collection.save(object); DefaultTreeModel model = (DefaultTreeModel)tree.getModel(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dbr...@us...> - 2010-01-03 02:00:53
|
Revision: 97 http://mongobrowser.svn.sourceforge.net/mongobrowser/?rev=97&view=rev Author: dbrosius Date: 2010-01-03 02:00:38 +0000 (Sun, 03 Jan 2010) Log Message: ----------- on expand of a DBObject from a key/value, fetch child key/value pairs Modified Paths: -------------- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoDataPanel.java Modified: trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoDataPanel.java =================================================================== --- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoDataPanel.java 2010-01-03 01:57:33 UTC (rev 96) +++ trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoDataPanel.java 2010-01-03 02:00:38 UTC (rev 97) @@ -199,6 +199,21 @@ } } break; + + case KeyValue: { + MongoTreeNode.KV topKV = (MongoTreeNode.KV)node.getUserObject(); + DBObject object = (DBObject)topKV.getValue(); + for (String key : object.keySet()) { + Object value = object.get(key); + MongoTreeNode kv = new MongoTreeNode(new MongoTreeNode.KV(key, value), node.isReadOnly()); + node.add(kv); + if (value instanceof DBObject) { + slug = new MongoTreeNode(); + kv.add(slug); + } + } + } + break; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dbr...@us...> - 2010-01-03 01:57:43
|
Revision: 96 http://mongobrowser.svn.sourceforge.net/mongobrowser/?rev=96&view=rev Author: dbrosius Date: 2010-01-03 01:57:33 +0000 (Sun, 03 Jan 2010) Log Message: ----------- add getValue() Modified Paths: -------------- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoTreeNode.java Modified: trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoTreeNode.java =================================================================== --- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoTreeNode.java 2010-01-03 01:54:30 UTC (rev 95) +++ trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoTreeNode.java 2010-01-03 01:57:33 UTC (rev 96) @@ -43,6 +43,10 @@ return key; } + public Object getValue() { + return value; + } + @Override public String toString() { return key + " : " + value; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dbr...@us...> - 2010-01-03 01:54:41
|
Revision: 95 http://mongobrowser.svn.sourceforge.net/mongobrowser/?rev=95&view=rev Author: dbrosius Date: 2010-01-03 01:54:30 +0000 (Sun, 03 Jan 2010) Log Message: ----------- if a key/value's value is a DBObject, add a slug Modified Paths: -------------- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/actions/NewKeyValueAction.java trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoDataPanel.java Modified: trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/actions/NewKeyValueAction.java =================================================================== --- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/actions/NewKeyValueAction.java 2010-01-03 01:32:47 UTC (rev 94) +++ trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/actions/NewKeyValueAction.java 2010-01-03 01:54:30 UTC (rev 95) @@ -59,6 +59,10 @@ object.put(key, value); MongoTreeNode kv = new MongoTreeNode(new MongoTreeNode.KV(key, object.get(key)), false); objectNode.add(kv); + if (value instanceof DBObject) { + MongoTreeNode slug = new MongoTreeNode(); + kv.add(slug); + } MongoTreeNode collectionNode = TreeUtils.findCollectionNode(objectNode); DBCollection collection = (DBCollection)collectionNode.getUserObject(); collection.save(object); Modified: trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoDataPanel.java =================================================================== --- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoDataPanel.java 2010-01-03 01:32:47 UTC (rev 94) +++ trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoDataPanel.java 2010-01-03 01:54:30 UTC (rev 95) @@ -189,8 +189,13 @@ case Object: { DBObject object = (DBObject)node.getUserObject(); for (String key : object.keySet()) { - MongoTreeNode kv = new MongoTreeNode(new MongoTreeNode.KV(key, object.get(key)), node.isReadOnly()); + Object value = object.get(key); + MongoTreeNode kv = new MongoTreeNode(new MongoTreeNode.KV(key, value), node.isReadOnly()); node.add(kv); + if (value instanceof DBObject) { + slug = new MongoTreeNode(); + kv.add(slug); + } } } break; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
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. |
From: <dbr...@us...> - 2010-01-03 01:07:55
|
Revision: 93 http://mongobrowser.svn.sourceforge.net/mongobrowser/?rev=93&view=rev Author: dbrosius Date: 2010-01-03 01:07:45 +0000 (Sun, 03 Jan 2010) Log Message: ----------- don't allow deleting of important stuff Modified Paths: -------------- 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/dialogs/MongoControlPanel.java =================================================================== --- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoControlPanel.java 2010-01-03 00:52:47 UTC (rev 92) +++ trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoControlPanel.java 2010-01-03 01:07:45 UTC (rev 93) @@ -42,6 +42,7 @@ 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 { @@ -107,7 +108,11 @@ dbNewCollectionButton.setEnabled(true); dbNewObjectButton.setEnabled(true); dbNewKeyValueButton.setEnabled(false); - dbDeleteButton.setEnabled(true); + DBCollection collection = (DBCollection)selectedNode.getUserObject(); + String collectionName = collection.getName(); + if (!(collectionName.startsWith("system.") || collectionName.startsWith("local."))) { + dbDeleteButton.setEnabled(true); + } break; case Object: Modified: trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoDataPanel.java =================================================================== --- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoDataPanel.java 2010-01-03 00:52:47 UTC (rev 92) +++ trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoDataPanel.java 2010-01-03 01:07:45 UTC (rev 93) @@ -140,8 +140,12 @@ context.setSelectedNode(node); if (node.getType() == MongoTreeNode.Type.Collection) { menu.add(newObjectItem); - menu.addSeparator(); - menu.add(deleteItem); + DBCollection collection = (DBCollection)node.getUserObject(); + String collectionName = collection.getName(); + if (!(collectionName.startsWith("system.") || collectionName.startsWith("local."))) { + menu.addSeparator(); + menu.add(deleteItem); + } menu.show(tree, x, y); } else if (node.getType() == MongoTreeNode.Type.Object){ menu.add(newKeyValueItem); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dbr...@us...> - 2010-01-03 00:52:53
|
Revision: 92 http://mongobrowser.svn.sourceforge.net/mongobrowser/?rev=92&view=rev Author: dbrosius Date: 2010-01-03 00:52:47 +0000 (Sun, 03 Jan 2010) Log Message: ----------- don't allow deletion of internal keys Modified Paths: -------------- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoControlPanel.java Modified: trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoControlPanel.java =================================================================== --- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoControlPanel.java 2010-01-03 00:51:36 UTC (rev 91) +++ trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoControlPanel.java 2010-01-03 00:52:47 UTC (rev 92) @@ -121,7 +121,10 @@ dbNewCollectionButton.setEnabled(true); dbNewObjectButton.setEnabled(false); dbNewKeyValueButton.setEnabled(false); - dbDeleteButton.setEnabled(true); + MongoTreeNode.KV kv = (MongoTreeNode.KV)selectedNode.getUserObject(); + if (!kv.getKey().startsWith("_")) { + dbDeleteButton.setEnabled(true); + } break; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dbr...@us...> - 2010-01-03 00:51:43
|
Revision: 91 http://mongobrowser.svn.sourceforge.net/mongobrowser/?rev=91&view=rev Author: dbrosius Date: 2010-01-03 00:51:36 +0000 (Sun, 03 Jan 2010) Log Message: ----------- don't allow deletion of internal keys Modified Paths: -------------- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoDataPanel.java Modified: trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoDataPanel.java =================================================================== --- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoDataPanel.java 2010-01-03 00:50:02 UTC (rev 90) +++ trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoDataPanel.java 2010-01-03 00:51:36 UTC (rev 91) @@ -149,8 +149,11 @@ menu.add(deleteItem); menu.show(tree, x, y); } else if (node.getType() == MongoTreeNode.Type.KeyValue) { - menu.add(deleteItem); - menu.show(tree, x, y); + MongoTreeNode.KV kv = (MongoTreeNode.KV)node.getUserObject(); + if (!kv.getKey().startsWith("_")) { + menu.add(deleteItem); + menu.show(tree, x, y); + } } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
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. |
From: <dbr...@us...> - 2010-01-03 00:28:12
|
Revision: 89 http://mongobrowser.svn.sourceforge.net/mongobrowser/?rev=89&view=rev Author: dbrosius Date: 2010-01-03 00:28:05 +0000 (Sun, 03 Jan 2010) Log Message: ----------- add a Delete button Modified Paths: -------------- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoControlPanel.java Modified: trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoControlPanel.java =================================================================== --- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoControlPanel.java 2010-01-03 00:26:32 UTC (rev 88) +++ trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/dialogs/MongoControlPanel.java 2010-01-03 00:28:05 UTC (rev 89) @@ -38,6 +38,7 @@ import com.jgoodies.forms.layout.FormLayout; import com.mebigfatguy.mongobrowser.MongoBundle; 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; @@ -51,6 +52,7 @@ private JButton dbNewCollectionButton; private JButton dbNewObjectButton; private JButton dbNewKeyValueButton; + private JButton dbDeleteButton; public MongoControlPanel(MongoContext ctxt) { context = ctxt; @@ -97,25 +99,29 @@ if (selectedNode == null) { dbNewCollectionButton.setEnabled(true); dbNewObjectButton.setEnabled(false); - dbNewKeyValueButton.setEnabled(false); + dbNewKeyValueButton.setEnabled(false); + dbDeleteButton.setEnabled(false); } else { switch (selectedNode.getType()) { case Collection: dbNewCollectionButton.setEnabled(true); dbNewObjectButton.setEnabled(true); dbNewKeyValueButton.setEnabled(false); + dbDeleteButton.setEnabled(true); break; case Object: dbNewCollectionButton.setEnabled(true); dbNewObjectButton.setEnabled(false); dbNewKeyValueButton.setEnabled(true); + dbDeleteButton.setEnabled(true); break; case KeyValue: dbNewCollectionButton.setEnabled(true); dbNewObjectButton.setEnabled(false); dbNewKeyValueButton.setEnabled(false); + dbDeleteButton.setEnabled(true); break; } } @@ -123,7 +129,7 @@ private void initComponents() { setBorder(BorderFactory.createLineBorder(Color.BLACK)); - setLayout(new FormLayout("3dlu, pref, 1dlu, 150px, 3dlu, pref, 3dlu, pref, 3dlu, pref", "pref")); + setLayout(new FormLayout("3dlu, pref, 1dlu, 150px, 3dlu, pref, 3dlu, pref, 3dlu, pref, 3dlu, pref", "pref")); CellConstraints cc = new CellConstraints(); JLabel dbLabel = new JLabel(MongoBundle.getString(MongoBundle.Key.Database)); @@ -159,6 +165,15 @@ dbNewKeyValueButton.setToolTipText(MongoBundle.getString(MongoBundle.Key.NewKeyValue)); add(dbNewKeyValueButton, cc.xy(10, 1)); dbNewKeyValueButton.setEnabled(false); + + dbDeleteButton = new JButton(new DeleteAction(context)); + icon = new ImageIcon(MongoControlPanel.class.getResource("/com/mebigfatguy/mongobrowser/resources/delete.png")); + dbDeleteButton.setIcon(icon); + dbDeleteButton.setText(null); + dbDeleteButton.setPreferredSize(new Dimension(icon.getIconWidth(), icon.getIconHeight())); + dbDeleteButton.setToolTipText(MongoBundle.getString(MongoBundle.Key.Delete)); + add(dbDeleteButton, cc.xy(12, 1)); + dbDeleteButton.setEnabled(false); } private void initListeners() { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dbr...@us...> - 2010-01-03 00:28:00
|
Revision: 84 http://mongobrowser.svn.sourceforge.net/mongobrowser/?rev=84&view=rev Author: dbrosius Date: 2010-01-03 00:17:56 +0000 (Sun, 03 Jan 2010) Log Message: ----------- push findCollectionNode out to TreeUtils Modified Paths: -------------- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/actions/NewKeyValueAction.java Modified: trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/actions/NewKeyValueAction.java =================================================================== --- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/actions/NewKeyValueAction.java 2010-01-03 00:17:14 UTC (rev 83) +++ trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/actions/NewKeyValueAction.java 2010-01-03 00:17:56 UTC (rev 84) @@ -27,6 +27,7 @@ import com.mebigfatguy.mongobrowser.MongoBundle; import com.mebigfatguy.mongobrowser.MongoContext; +import com.mebigfatguy.mongobrowser.TreeUtils; import com.mebigfatguy.mongobrowser.dialogs.KeyValueDialog; import com.mebigfatguy.mongobrowser.dialogs.MongoTreeNode; import com.mongodb.DBCollection; @@ -58,7 +59,7 @@ object.put(key, value); MongoTreeNode kv = new MongoTreeNode(MongoTreeNode.Type.KeyValue, key + " : " + object.get(key)); objectNode.add(kv); - MongoTreeNode collectionNode = findCollectionNode(objectNode); + MongoTreeNode collectionNode = TreeUtils.findCollectionNode(objectNode); DBCollection collection = (DBCollection)collectionNode.getUserObject(); collection.save(object); DefaultTreeModel model = (DefaultTreeModel)tree.getModel(); @@ -68,13 +69,4 @@ tree.setSelectionPath(selection); } } - - private MongoTreeNode findCollectionNode(MongoTreeNode fromNode) { - while (fromNode.getType() != MongoTreeNode.Type.Collection) { - fromNode = (MongoTreeNode)fromNode.getParent(); - } - - return fromNode; - } - } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dbr...@us...> - 2010-01-03 00:27:54
|
Revision: 85 http://mongobrowser.svn.sourceforge.net/mongobrowser/?rev=85&view=rev Author: dbrosius Date: 2010-01-03 00:18:22 +0000 (Sun, 03 Jan 2010) Log Message: ----------- add Delete string Modified Paths: -------------- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/resources/resource.properties Modified: trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/resources/resource.properties =================================================================== --- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/resources/resource.properties 2010-01-03 00:17:56 UTC (rev 84) +++ trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/resources/resource.properties 2010-01-03 00:18:22 UTC (rev 85) @@ -37,3 +37,4 @@ mongo.double = Double mongo.string = String mongo.object = Object +mongo.delete = Delete This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dbr...@us...> - 2010-01-03 00:27:48
|
Revision: 82 http://mongobrowser.svn.sourceforge.net/mongobrowser/?rev=82&view=rev Author: dbrosius Date: 2010-01-03 00:16:28 +0000 (Sun, 03 Jan 2010) Log Message: ----------- pull out common tree utilities Added Paths: ----------- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/TreeUtils.java Added: trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/TreeUtils.java =================================================================== --- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/TreeUtils.java (rev 0) +++ trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/TreeUtils.java 2010-01-03 00:16:28 UTC (rev 82) @@ -0,0 +1,32 @@ +/* + * mongobrowser - a webstart gui application for viewing, + * editing and administering a Mongo Database + * Copyright 2009-2010 MeBigFatGuy.com + * Copyright 2009-2010 Dave Brosius + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and limitations + * under the License. + */ +package com.mebigfatguy.mongobrowser; + +import com.mebigfatguy.mongobrowser.dialogs.MongoTreeNode; + +public class TreeUtils { + + public MongoTreeNode findCollectionNode(MongoTreeNode fromNode) { + while (fromNode.getType() != MongoTreeNode.Type.Collection) { + fromNode = (MongoTreeNode)fromNode.getParent(); + } + + return fromNode; + } +} Property changes on: trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/TreeUtils.java ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dbr...@us...> - 2010-01-03 00:27:42
|
Revision: 83 http://mongobrowser.svn.sourceforge.net/mongobrowser/?rev=83&view=rev Author: dbrosius Date: 2010-01-03 00:17:14 +0000 (Sun, 03 Jan 2010) Log Message: ----------- TreeUtils is a static access class Modified Paths: -------------- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/TreeUtils.java Modified: trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/TreeUtils.java =================================================================== --- trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/TreeUtils.java 2010-01-03 00:16:28 UTC (rev 82) +++ trunk/mongobrowser/src/com/mebigfatguy/mongobrowser/TreeUtils.java 2010-01-03 00:17:14 UTC (rev 83) @@ -22,7 +22,10 @@ public class TreeUtils { - public MongoTreeNode findCollectionNode(MongoTreeNode fromNode) { + private TreeUtils() { + } + + public static MongoTreeNode findCollectionNode(MongoTreeNode fromNode) { while (fromNode.getType() != MongoTreeNode.Type.Collection) { fromNode = (MongoTreeNode)fromNode.getParent(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |