You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by ds...@apache.org on 2015/07/06 23:47:29 UTC

[04/18] incubator-geode git commit: GEODE-80: Imported databrowser from geode-1.0.0-SNAPSHOT-2.src.tar

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/e2ccf3da/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/actions/NewCQWindow.java
----------------------------------------------------------------------
diff --git a/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/actions/NewCQWindow.java b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/actions/NewCQWindow.java
new file mode 100644
index 0000000..9e62723
--- /dev/null
+++ b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/actions/NewCQWindow.java
@@ -0,0 +1,135 @@
+/**
+ *
+ */
+package com.gemstone.gemfire.mgmt.DataBrowser.ui.actions;
+
+import java.util.ArrayList;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.MessageBox;
+
+import com.gemstone.gemfire.mgmt.DataBrowser.app.DataBrowserApp;
+import com.gemstone.gemfire.mgmt.DataBrowser.model.member.GemFireMember;
+import com.gemstone.gemfire.mgmt.DataBrowser.ui.CustomUIMessages;
+
+/**
+ * @author mghosh
+ *
+ */
+public class NewCQWindow extends AbstractDataBrowserAction {
+
+  private static final String iconEnabled = null;
+  private static final String iconDisabled = null;
+
+  // SelectionListener lstnrSel_ = new ExitSelectionHandler( this );
+
+
+  /**
+	 *
+	 */
+  public NewCQWindow() {
+    super();
+  }
+
+  // *****************************************************************
+  //
+  // IAction stuff
+  //
+  // *****************************************************************
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see
+   * com.gemstone.gemfire.mgmt.DataBrowser.ui.actions.AbstractDataBrowserAction
+   * #getText()
+   */
+  @Override
+  public String getText() {
+    return "New Continuous Query";
+  }
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see org.eclipse.jface.action.Action#getDescription()
+   */
+  @Override
+  public String getDescription() {
+    return "Creates a new Continuous Query on the selected GemFire member";
+  }
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see org.eclipse.jface.action.Action#getToolTipText()
+   */
+  @Override
+  public String getToolTipText() {
+    return "Create a new Continuous Query";
+  }
+
+  /* (non-Javadoc)
+   * @see com.gemstone.gemfire.mgmt.DataBrowser.ui.actions.AbstractDataBrowserAction#getDisabledIcon()
+   */
+  @Override
+  public String getDisabledIcon() {
+    return iconDisabled;
+  }
+
+  /* (non-Javadoc)
+   * @see com.gemstone.gemfire.mgmt.DataBrowser.ui.actions.AbstractDataBrowserAction#getEnabledIcon()
+   */
+  @Override
+  public String getEnabledIcon() {
+    return iconEnabled;
+  }
+
+
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see
+   * com.gemstone.gemfire.mgmt.DataBrowser.ui.actions.AbstractDataBrowserAction
+   * #runWithEvent(org.eclipse.swt.widgets.Event)
+   */
+  @Override
+  public void runWithEvent(Event arg0) {
+    DataBrowserApp instance = DataBrowserApp.getInstance();
+
+    ArrayList p = new ArrayList<Object>();
+    ArrayList r = new ArrayList<Object>();
+
+    p.add(Boolean.FALSE);
+
+    instance.getMainWindow().sendCustomMessage(
+        CustomUIMessages.QRY_MEMBER_SELECTED_FOR_QUERY_EXEC, p, r);
+
+    GemFireMember member = null;
+    if (1 == r.size()) {
+      Object rv = r.get(0);
+      if (rv instanceof GemFireMember) {
+        member = (GemFireMember)rv;
+      }
+    }
+    if (member == null) {
+      MessageBox mb = new MessageBox(instance.getMainWindow().getShell(), SWT.OK);
+      mb.setText("GF DataBrowser: Query Error");
+      mb.setMessage("A GemFire member must be selected to execute a Continuous Query. Please select a member from the list.");
+      mb.open();
+      return;
+    }
+
+    if (!member.isNotifyBySubscriptionEnabled()) {
+      MessageBox mb = new MessageBox(instance.getMainWindow().getShell(), SWT.OK);
+      mb.setText("GF DataBrowser: Query Error");
+      mb.setMessage("The GemFire member selected to execute a Continuous Query does not support 'Notify by Subscription'. For more information check out the client/server configuration in the GemFire User's Guide.");
+      mb.open();
+      return;
+    }
+
+    instance.openNewCqWindow(member);
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/e2ccf3da/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/actions/NewQueryWindow.java
----------------------------------------------------------------------
diff --git a/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/actions/NewQueryWindow.java b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/actions/NewQueryWindow.java
new file mode 100644
index 0000000..9876a32
--- /dev/null
+++ b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/actions/NewQueryWindow.java
@@ -0,0 +1,139 @@
+/**
+ *
+ */
+package com.gemstone.gemfire.mgmt.DataBrowser.ui.actions;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.swt.widgets.Event;
+
+/**
+ * @author mghosh
+ *
+ */
+public class NewQueryWindow extends AbstractDataBrowserAction implements
+    IRunnableWithProgress {
+
+  private static final String iconEnabled = null;
+  private static final String iconDisabled = null;
+
+  /**
+   *
+   */
+  public NewQueryWindow() {
+    super();
+  }
+
+  // **********************************************************
+  //
+  // IRunnableWithProgress
+  //
+  // **********************************************************
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see
+   * org.eclipse.jface.operation.IRunnableWithProgress#run(org.eclipse.core.
+   * runtime.IProgressMonitor)
+   */
+  public void run(IProgressMonitor monitor) throws InvocationTargetException,
+      InterruptedException {
+  }
+
+  // **********************************************************
+  //
+  // AbstractDataBrowserAction stuff
+  //
+  // **********************************************************
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see
+   * com.gemstone.gemfire.mgmt.DataBrowser.ui.actions.AbstractDataBrowserAction
+   * #getText()
+   */
+  @Override
+  public String getText() {
+    return "New Query Window";
+  }
+
+  /* (non-Javadoc)
+   * @see com.gemstone.gemfire.mgmt.DataBrowser.ui.actions.AbstractDataBrowserAction#getDisabledIcon()
+   */
+  @Override
+  public String getDisabledIcon() {
+    return iconDisabled;
+  }
+
+  /* (non-Javadoc)
+   * @see com.gemstone.gemfire.mgmt.DataBrowser.ui.actions.AbstractDataBrowserAction#getEnabledIcon()
+   */
+  @Override
+  public String getEnabledIcon() {
+    return iconEnabled;
+  }
+
+
+  // **********************************************************
+  //
+  // IAction stuff
+  //
+  // **********************************************************
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see org.eclipse.jface.action.Action#getDescription()
+   */
+  @Override
+  public String getDescription() {
+    return "Creates a new Query Window";
+  }
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see org.eclipse.jface.action.Action#getToolTipText()
+   */
+  @Override
+  public String getToolTipText() {
+    return "Create a new Query Window";
+  }
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see org.eclipse.jface.action.Action#isEnabled()
+   */
+  @Override
+  public boolean isEnabled() {
+    // TODO Auto-generated method stub
+    return super.isEnabled();
+  }
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see org.eclipse.jface.action.Action#run()
+   */
+  @Override
+  public void run() {
+    super.run();
+  }
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see
+   * org.eclipse.jface.action.Action#runWithEvent(org.eclipse.swt.widgets.Event)
+   */
+  @Override
+  public void runWithEvent(Event event) {
+    super.runWithEvent(event);
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/e2ccf3da/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/actions/ParseQuery.java
----------------------------------------------------------------------
diff --git a/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/actions/ParseQuery.java b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/actions/ParseQuery.java
new file mode 100644
index 0000000..7c6b98a
--- /dev/null
+++ b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/actions/ParseQuery.java
@@ -0,0 +1,58 @@
+/**
+ * 
+ */
+package com.gemstone.gemfire.mgmt.DataBrowser.ui.actions;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jface.operation.IRunnableWithProgress;
+
+/**
+ * @author mghosh
+ * 
+ */
+public class ParseQuery extends AbstractDataBrowserAction implements
+    IRunnableWithProgress {
+
+  private static final String iconEnabled = null;
+  private static final String iconDisabled = null;
+
+  /**
+   * 
+   */
+  public ParseQuery() {
+    super();
+  }
+
+  /* (non-Javadoc)
+   * @see com.gemstone.gemfire.mgmt.DataBrowser.ui.actions.AbstractDataBrowserAction#getDisabledIcon()
+   */
+  @Override
+  public String getDisabledIcon() {
+    return iconDisabled;
+  }
+
+  /* (non-Javadoc)
+   * @see com.gemstone.gemfire.mgmt.DataBrowser.ui.actions.AbstractDataBrowserAction#getEnabledIcon()
+   */
+  @Override
+  public String getEnabledIcon() {
+    return iconEnabled;
+  }
+
+  
+  /*
+   * (non-Javadoc)
+   * 
+   * @see
+   * org.eclipse.jface.operation.IRunnableWithProgress#run(org.eclipse.core.
+   * runtime.IProgressMonitor)
+   */
+  public void run(IProgressMonitor monitor) throws InvocationTargetException,
+      InterruptedException {
+    // TODO Auto-generated method stub
+
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/e2ccf3da/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/actions/Paste.java
----------------------------------------------------------------------
diff --git a/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/actions/Paste.java b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/actions/Paste.java
new file mode 100644
index 0000000..9a56abf
--- /dev/null
+++ b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/actions/Paste.java
@@ -0,0 +1,138 @@
+/**
+ *
+ */
+package com.gemstone.gemfire.mgmt.DataBrowser.ui.actions;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.swt.widgets.Event;
+
+/**
+ * @author mghosh
+ *
+ */
+public class Paste extends AbstractDataBrowserAction implements
+    IRunnableWithProgress {
+
+  private static final String iconEnabled = null;
+  private static final String iconDisabled = null;
+
+  /**
+   *
+   */
+  public Paste() {
+    // TODO Auto-generated constructor stub
+  }
+
+  // **********************************************************
+  //
+  // IRunnableWithProgress
+  //
+  // **********************************************************
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see
+   * org.eclipse.jface.operation.IRunnableWithProgress#run(org.eclipse.core.
+   * runtime.IProgressMonitor)
+   */
+  public void run(IProgressMonitor monitor) throws InvocationTargetException,
+      InterruptedException {
+  }
+
+  // **********************************************************
+  //
+  // AbstractDataBrowserAction stuff
+  //
+  // **********************************************************
+
+  /* (non-Javadoc)
+   * @see com.gemstone.gemfire.mgmt.DataBrowser.ui.actions.AbstractDataBrowserAction#getDisabledIcon()
+   */
+  @Override
+  public String getDisabledIcon() {
+    return iconDisabled;
+  }
+
+  /* (non-Javadoc)
+   * @see com.gemstone.gemfire.mgmt.DataBrowser.ui.actions.AbstractDataBrowserAction#getEnabledIcon()
+   */
+  @Override
+  public String getEnabledIcon() {
+    return iconEnabled;
+  }
+
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see
+   * com.gemstone.gemfire.mgmt.DataBrowser.ui.actions.AbstractDataBrowserAction
+   * #getText()
+   */
+  @Override
+  public String getText() {
+    return "Paste";
+  }
+
+  // **********************************************************
+  //
+  // IAction stuff
+  //
+  // **********************************************************
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see org.eclipse.jface.action.Action#getDescription()
+   */
+  @Override
+  public String getDescription() {
+    return "Inserts the Current Contents of the Clipboard";
+  }
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see org.eclipse.jface.action.Action#getToolTipText()
+   */
+  @Override
+  public String getToolTipText() {
+    return "Insert Contents from Clipboard";
+  }
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see org.eclipse.jface.action.Action#isEnabled()
+   */
+  @Override
+  public boolean isEnabled() {
+    // TODO Auto-generated method stub
+    return super.isEnabled();
+  }
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see org.eclipse.jface.action.Action#run()
+   */
+  @Override
+  public void run() {
+    super.run();
+  }
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see
+   * org.eclipse.jface.action.Action#runWithEvent(org.eclipse.swt.widgets.Event)
+   */
+  @Override
+  public void runWithEvent(Event event) {
+    super.runWithEvent(event);
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/e2ccf3da/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/actions/Preferences.java
----------------------------------------------------------------------
diff --git a/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/actions/Preferences.java b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/actions/Preferences.java
new file mode 100644
index 0000000..772e9e0
--- /dev/null
+++ b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/actions/Preferences.java
@@ -0,0 +1,160 @@
+/**
+ *
+ */
+package com.gemstone.gemfire.mgmt.DataBrowser.ui.actions;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Widget;
+
+import com.gemstone.gemfire.mgmt.DataBrowser.ui.PreferencesDlg;
+import com.gemstone.gemfire.mgmt.DataBrowser.ui.internal.PrefsMgr;
+
+/**
+ * @author mghosh
+ *
+ */
+public class Preferences extends AbstractDataBrowserAction implements
+    IRunnableWithProgress {
+
+  private static final String iconEnabled = null;
+  private static final String iconDisabled = null;
+
+  private static PrefsMgr prefMgr_ = new PrefsMgr();
+  /**
+   *
+   */
+  public Preferences() {
+    // TODO Auto-generated constructor stub
+  }
+
+  // **********************************************************
+  //
+  // IRunnableWithProgress
+  //
+  // **********************************************************
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see
+   * org.eclipse.jface.operation.IRunnableWithProgress#run(org.eclipse.core.
+   * runtime.IProgressMonitor)
+   */
+  public void run(IProgressMonitor monitor) throws InvocationTargetException,
+      InterruptedException {
+  }
+
+  // **********************************************************
+  //
+  // AbstractDataBrowserAction stuff
+  //
+  // **********************************************************
+
+  /* (non-Javadoc)
+   * @see com.gemstone.gemfire.mgmt.DataBrowser.ui.actions.AbstractDataBrowserAction#getDisabledIcon()
+   */
+  @Override
+  public String getDisabledIcon() {
+    return iconDisabled;
+  }
+
+  /* (non-Javadoc)
+   * @see com.gemstone.gemfire.mgmt.DataBrowser.ui.actions.AbstractDataBrowserAction#getEnabledIcon()
+   */
+  @Override
+  public String getEnabledIcon() {
+    return iconEnabled;
+  }
+
+
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see
+   * com.gemstone.gemfire.mgmt.DataBrowser.ui.actions.AbstractDataBrowserAction
+   * #getText()
+   */
+  @Override
+  public String getText() {
+    return "Preferences...";
+  }
+
+  // **********************************************************
+  //
+  // IAction stuff
+  //
+  // **********************************************************
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see org.eclipse.jface.action.Action#getDescription()
+   */
+  @Override
+  public String getDescription() {
+    return "Displays the Preferences window";
+  }
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see org.eclipse.jface.action.Action#getToolTipText()
+   */
+  @Override
+  public String getToolTipText() {
+    return "Show the Preferences window";
+  }
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see org.eclipse.jface.action.Action#isEnabled()
+   */
+  @Override
+  public boolean isEnabled() {
+    // TODO Auto-generated method stub
+    return super.isEnabled();
+  }
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see org.eclipse.jface.action.Action#run()
+   */
+  @Override
+  public void run() {
+    super.run();
+  }
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see
+   * org.eclipse.jface.action.Action#runWithEvent(org.eclipse.swt.widgets.Event)
+   */
+  @Override
+  public void runWithEvent(Event event) {
+    Shell shl = null;
+    Display dsply = event.display;
+    if( null != dsply ) {
+      shl = dsply.getActiveShell();
+    }
+
+    if( null == shl ) {
+      Widget w = event.widget;
+      if( null != w ) {
+        shl = w.getDisplay().getActiveShell();
+      }
+    }
+
+    PreferencesDlg dlg = new PreferencesDlg(shl, Preferences.prefMgr_);
+    dlg.open();
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/e2ccf3da/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/actions/Redo.java
----------------------------------------------------------------------
diff --git a/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/actions/Redo.java b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/actions/Redo.java
new file mode 100644
index 0000000..fc4c091
--- /dev/null
+++ b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/actions/Redo.java
@@ -0,0 +1,139 @@
+/**
+ *
+ */
+package com.gemstone.gemfire.mgmt.DataBrowser.ui.actions;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.swt.widgets.Event;
+
+/**
+ * @author mghosh
+ *
+ */
+public class Redo extends AbstractDataBrowserAction implements
+    IRunnableWithProgress {
+
+  private static final String iconEnabled = null;
+  private static final String iconDisabled = null;
+
+
+  /**
+   *
+   */
+  public Redo() {
+    // TODO Auto-generated constructor stub
+  }
+
+  // **********************************************************
+  //
+  // IRunnableWithProgress
+  //
+  // **********************************************************
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see
+   * org.eclipse.jface.operation.IRunnableWithProgress#run(org.eclipse.core.
+   * runtime.IProgressMonitor)
+   */
+  public void run(IProgressMonitor monitor) throws InvocationTargetException,
+      InterruptedException {
+  }
+
+  // **********************************************************
+  //
+  // AbstractDataBrowserAction stuff
+  //
+  // **********************************************************
+
+  /* (non-Javadoc)
+   * @see com.gemstone.gemfire.mgmt.DataBrowser.ui.actions.AbstractDataBrowserAction#getDisabledIcon()
+   */
+  @Override
+  public String getDisabledIcon() {
+    return iconDisabled;
+  }
+
+  /* (non-Javadoc)
+   * @see com.gemstone.gemfire.mgmt.DataBrowser.ui.actions.AbstractDataBrowserAction#getEnabledIcon()
+   */
+  @Override
+  public String getEnabledIcon() {
+    return iconEnabled;
+  }
+
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see
+   * com.gemstone.gemfire.mgmt.DataBrowser.ui.actions.AbstractDataBrowserAction
+   * #getText()
+   */
+  @Override
+  public String getText() {
+    return "Redo";
+  }
+
+  // **********************************************************
+  //
+  // IAction stuff
+  //
+  // **********************************************************
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see org.eclipse.jface.action.Action#getDescription()
+   */
+  @Override
+  public String getDescription() {
+    return "Redo the previously undone action";
+  }
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see org.eclipse.jface.action.Action#getToolTipText()
+   */
+  @Override
+  public String getToolTipText() {
+    return "Redo the previously undone action";
+  }
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see org.eclipse.jface.action.Action#isEnabled()
+   */
+  @Override
+  public boolean isEnabled() {
+    // TODO Auto-generated method stub
+    return super.isEnabled();
+  }
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see org.eclipse.jface.action.Action#run()
+   */
+  @Override
+  public void run() {
+    super.run();
+  }
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see
+   * org.eclipse.jface.action.Action#runWithEvent(org.eclipse.swt.widgets.Event)
+   */
+  @Override
+  public void runWithEvent(Event event) {
+    super.runWithEvent(event);
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/e2ccf3da/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/actions/SelectAll.java
----------------------------------------------------------------------
diff --git a/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/actions/SelectAll.java b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/actions/SelectAll.java
new file mode 100644
index 0000000..5d1dd00
--- /dev/null
+++ b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/actions/SelectAll.java
@@ -0,0 +1,137 @@
+/**
+ * 
+ */
+package com.gemstone.gemfire.mgmt.DataBrowser.ui.actions;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.swt.widgets.Event;
+
+/**
+ * @author mghosh
+ * 
+ */
+public class SelectAll extends AbstractDataBrowserAction implements
+    IRunnableWithProgress {
+
+  private static final String iconEnabled = null;
+  private static final String iconDisabled = null;
+
+  /**
+   * 
+   */
+  public SelectAll() {
+    // TODO Auto-generated constructor stub
+  }
+
+  // **********************************************************
+  //
+  // IRunnableWithProgress
+  //
+  // **********************************************************
+
+  /*
+   * (non-Javadoc)
+   * 
+   * @see
+   * org.eclipse.jface.operation.IRunnableWithProgress#run(org.eclipse.core.
+   * runtime.IProgressMonitor)
+   */
+  public void run(IProgressMonitor monitor) throws InvocationTargetException,
+      InterruptedException {
+  }
+
+  // **********************************************************
+  //
+  // AbstractDataBrowserAction stuff
+  //
+  // **********************************************************
+
+  /* (non-Javadoc)
+   * @see com.gemstone.gemfire.mgmt.DataBrowser.ui.actions.AbstractDataBrowserAction#getDisabledIcon()
+   */
+  @Override
+  public String getDisabledIcon() {
+    return iconDisabled;
+  }
+
+  /* (non-Javadoc)
+   * @see com.gemstone.gemfire.mgmt.DataBrowser.ui.actions.AbstractDataBrowserAction#getEnabledIcon()
+   */
+  @Override
+  public String getEnabledIcon() {
+    return iconEnabled;
+  }
+
+  
+  /*
+   * (non-Javadoc)
+   * 
+   * @see
+   * com.gemstone.gemfire.mgmt.DataBrowser.ui.actions.AbstractDataBrowserAction
+   * #getText()
+   */
+  @Override
+  public String getText() {
+    return "Select All";
+  }
+
+  // **********************************************************
+  //
+  // IAction stuff
+  //
+  // **********************************************************
+
+  /*
+   * (non-Javadoc)
+   * 
+   * @see org.eclipse.jface.action.Action#getDescription()
+   */
+  @Override
+  public String getDescription() {
+    return "Selects All";
+  }
+
+  /*
+   * (non-Javadoc)
+   * 
+   * @see org.eclipse.jface.action.Action#getToolTipText()
+   */
+  @Override
+  public String getToolTipText() {
+    return "Select All";
+  }
+
+  /*
+   * (non-Javadoc)
+   * 
+   * @see org.eclipse.jface.action.Action#isEnabled()
+   */
+  @Override
+  public boolean isEnabled() {
+    return super.isEnabled();
+  }
+
+  /*
+   * (non-Javadoc)
+   * 
+   * @see org.eclipse.jface.action.Action#run()
+   */
+  @Override
+  public void run() {
+    super.run();
+  }
+
+  /*
+   * (non-Javadoc)
+   * 
+   * @see
+   * org.eclipse.jface.action.Action#runWithEvent(org.eclipse.swt.widgets.Event)
+   */
+  @Override
+  public void runWithEvent(Event event) {
+    super.runWithEvent(event);
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/e2ccf3da/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/actions/ShowMessagesTab.java
----------------------------------------------------------------------
diff --git a/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/actions/ShowMessagesTab.java b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/actions/ShowMessagesTab.java
new file mode 100644
index 0000000..ebdab45
--- /dev/null
+++ b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/actions/ShowMessagesTab.java
@@ -0,0 +1,136 @@
+/**
+ *
+ */
+package com.gemstone.gemfire.mgmt.DataBrowser.ui.actions;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.swt.widgets.Event;
+
+/**
+ * @author mghosh
+ *
+ */
+public final class ShowMessagesTab extends AbstractDataBrowserAction implements
+    IRunnableWithProgress {
+
+  private static final String iconEnabled = null;
+  private static final String iconDisabled = null;
+
+  // -- TODO MGH
+  // -- we should remember the checked state from the prior run and
+  // -- set this accordingly. Defaults to true
+  private boolean fShow_ = true;
+
+  /**
+   *
+   */
+  public ShowMessagesTab() {
+    super();
+    setChecked( fShow_ );
+  }
+
+  // **********************************************************
+  //
+  // IRunnableWithProgress
+  //
+  // **********************************************************
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see
+   * org.eclipse.jface.operation.IRunnableWithProgress#run(org.eclipse.core.
+   * runtime.IProgressMonitor)
+   */
+  public void run(IProgressMonitor monitor) throws InvocationTargetException,
+      InterruptedException {
+  }
+
+  // **********************************************************
+  //
+  // AbstractDataBrowserAction stuff
+  //
+  // **********************************************************
+
+  /* (non-Javadoc)
+   * @see com.gemstone.gemfire.mgmt.DataBrowser.ui.actions.AbstractDataBrowserAction#getDisabledIcon()
+   */
+  @Override
+  public String getDisabledIcon() {
+    return iconDisabled;
+  }
+
+  /* (non-Javadoc)
+   * @see com.gemstone.gemfire.mgmt.DataBrowser.ui.actions.AbstractDataBrowserAction#getEnabledIcon()
+   */
+  @Override
+  public String getEnabledIcon() {
+    return iconEnabled;
+  }
+
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see
+   * com.gemstone.gemfire.mgmt.DataBrowser.ui.actions.AbstractDataBrowserAction
+   * #getText()
+   */
+  @Override
+  public String getText() {
+    return "Show Messages Tab";
+  }
+
+  // **********************************************************
+  //
+  // IAction stuff
+  //
+  // **********************************************************
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see org.eclipse.jface.action.Action#getDescription()
+   */
+  @Override
+  public String getDescription() {
+    return "Displays the Messages Tab in the Current Query Pane";
+  }
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see org.eclipse.jface.action.Action#getToolTipText()
+   */
+  @Override
+  public String getToolTipText() {
+    return "Show the Messages Tab in the Current Query Pane";
+  }
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see org.eclipse.jface.action.Action#isEnabled()
+   */
+  @Override
+  public boolean isEnabled() {
+    // TODO Auto-generated method stub
+    return super.isEnabled();
+  }
+
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see
+   * org.eclipse.jface.action.Action#runWithEvent(org.eclipse.swt.widgets.Event)
+   */
+  @Override
+  public void runWithEvent(Event event) {
+    fShow_ = !fShow_;
+    setChecked( fShow_ );
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/e2ccf3da/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/actions/ShowStatisticsTab.java
----------------------------------------------------------------------
diff --git a/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/actions/ShowStatisticsTab.java b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/actions/ShowStatisticsTab.java
new file mode 100644
index 0000000..6afba58
--- /dev/null
+++ b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/actions/ShowStatisticsTab.java
@@ -0,0 +1,152 @@
+/**
+ *
+ */
+package com.gemstone.gemfire.mgmt.DataBrowser.ui.actions;
+
+import java.lang.reflect.InvocationTargetException;
+import java.util.ArrayList;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.swt.widgets.Event;
+
+import com.gemstone.gemfire.mgmt.DataBrowser.app.DataBrowserApp;
+import com.gemstone.gemfire.mgmt.DataBrowser.ui.CustomUIMessages;
+
+/**
+ * @author mghosh
+ *
+ */
+public final class ShowStatisticsTab extends AbstractDataBrowserAction implements
+    IRunnableWithProgress {
+
+  private static final String iconEnabled = null;
+  private static final String iconDisabled = null;
+
+  // -- TODO MGH
+  // -- we should remember the checked state from the prior run and
+  // -- set this accordingly. Defaults to true
+  private boolean fShow_ = true;
+
+  /**
+   *
+   */
+  public ShowStatisticsTab() {
+    super();
+    setChecked( fShow_ );
+  }
+
+  // **********************************************************
+  //
+  // IRunnableWithProgress
+  //
+  // **********************************************************
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see
+   * org.eclipse.jface.operation.IRunnableWithProgress#run(org.eclipse.core.
+   * runtime.IProgressMonitor)
+   */
+  public void run(IProgressMonitor monitor) throws InvocationTargetException,
+      InterruptedException {
+  }
+
+  // **********************************************************
+  //
+  // AbstractDataBrowserAction stuff
+  //
+  // **********************************************************
+
+  /* (non-Javadoc)
+   * @see com.gemstone.gemfire.mgmt.DataBrowser.ui.actions.AbstractDataBrowserAction#getDisabledIcon()
+   */
+  @Override
+  public String getDisabledIcon() {
+    return iconDisabled;
+  }
+
+  /* (non-Javadoc)
+   * @see com.gemstone.gemfire.mgmt.DataBrowser.ui.actions.AbstractDataBrowserAction#getEnabledIcon()
+   */
+  @Override
+  public String getEnabledIcon() {
+    return iconEnabled;
+  }
+
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see
+   * com.gemstone.gemfire.mgmt.DataBrowser.ui.actions.AbstractDataBrowserAction
+   * #getText()
+   */
+  @Override
+  public String getText() {
+    return "Show Statistics Tab";
+  }
+
+  // **********************************************************
+  //
+  // IAction stuff
+  //
+  // **********************************************************
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see org.eclipse.jface.action.Action#getDescription()
+   */
+  @Override
+  public String getDescription() {
+    return "Displays the Statistics Tab in the Current Query Pane";
+  }
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see org.eclipse.jface.action.Action#getToolTipText()
+   */
+  @Override
+  public String getToolTipText() {
+    return "Show the Statistics Tab in the Current Query Pane";
+  }
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see org.eclipse.jface.action.Action#isEnabled()
+   */
+  @Override
+  public boolean isEnabled() {
+    return super.isEnabled();
+  }
+
+
+  /* (non-Javadoc)
+   * @see org.eclipse.jface.action.Action#isChecked()
+   */
+  @Override
+  public boolean isChecked() {
+    return super.isChecked();
+  }
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see
+   * org.eclipse.jface.action.Action#runWithEvent(org.eclipse.swt.widgets.Event)
+   */
+  @Override
+  public void runWithEvent(Event event) {
+    fShow_ = !fShow_;
+    setChecked( fShow_ );
+
+    ArrayList< Object > p = new ArrayList< Object >();
+    p.add( Boolean.valueOf( fShow_ ));
+    ArrayList< Object > r = new ArrayList< Object >();
+    DataBrowserApp.getInstance().getMainWindow().sendCustomMessage( CustomUIMessages.QRY_MSG_SHOW_QUERY_STATISTICS_PANE, p, r );
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/e2ccf3da/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/actions/ShowTraceTab.java
----------------------------------------------------------------------
diff --git a/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/actions/ShowTraceTab.java b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/actions/ShowTraceTab.java
new file mode 100644
index 0000000..d4a90f4
--- /dev/null
+++ b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/actions/ShowTraceTab.java
@@ -0,0 +1,146 @@
+/**
+ *
+ */
+package com.gemstone.gemfire.mgmt.DataBrowser.ui.actions;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.swt.widgets.Event;
+
+/**
+ * @author mghosh
+ *
+ */
+public final class ShowTraceTab extends AbstractDataBrowserAction implements
+    IRunnableWithProgress {
+
+  private static final String iconEnabled = null;
+  private static final String iconDisabled = null;
+
+  // -- TODO MGH
+  // -- we should remember the checked state from the prior run and
+  // -- set this accordingly. Defaults to true
+  private boolean fShow_ = true;
+
+  /**
+   *
+   */
+  public ShowTraceTab() {
+    super();
+    setChecked( fShow_ );
+  }
+
+  // **********************************************************
+  //
+  // IRunnableWithProgress
+  //
+  // **********************************************************
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see
+   * org.eclipse.jface.operation.IRunnableWithProgress#run(org.eclipse.core.
+   * runtime.IProgressMonitor)
+   */
+  public void run(IProgressMonitor monitor) throws InvocationTargetException,
+      InterruptedException {
+  }
+
+  // **********************************************************
+  //
+  // AbstractDataBrowserAction stuff
+  //
+  // **********************************************************
+
+  /* (non-Javadoc)
+   * @see com.gemstone.gemfire.mgmt.DataBrowser.ui.actions.AbstractDataBrowserAction#getDisabledIcon()
+   */
+  @Override
+  public String getDisabledIcon() {
+    return iconDisabled;
+  }
+
+  /* (non-Javadoc)
+   * @see com.gemstone.gemfire.mgmt.DataBrowser.ui.actions.AbstractDataBrowserAction#getEnabledIcon()
+   */
+  @Override
+  public String getEnabledIcon() {
+    return iconEnabled;
+  }
+
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see
+   * com.gemstone.gemfire.mgmt.DataBrowser.ui.actions.AbstractDataBrowserAction
+   * #getText()
+   */
+  @Override
+  public String getText() {
+    return "Show Trace Tab";
+  }
+
+
+  // **********************************************************
+  //
+  // IAction stuff
+  //
+  // **********************************************************
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see org.eclipse.jface.action.Action#getDescription()
+   */
+  @Override
+  public String getDescription() {
+    return "Displays the Trace Tab in the Current Query Pane";
+  }
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see org.eclipse.jface.action.Action#getToolTipText()
+   */
+  @Override
+  public String getToolTipText() {
+    return "Show the Trace Tab in the Current Query Pane";
+  }
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see org.eclipse.jface.action.Action#isEnabled()
+   */
+  @Override
+  public boolean isEnabled() {
+    // TODO Auto-generated method stub
+    return super.isEnabled();
+  }
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see org.eclipse.jface.action.Action#run()
+   */
+  @Override
+  public void run() {
+    super.run();
+  }
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see
+   * org.eclipse.jface.action.Action#runWithEvent(org.eclipse.swt.widgets.Event)
+   */
+  @Override
+  public void runWithEvent(Event event) {
+    fShow_ = !fShow_;
+    setChecked( fShow_ );
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/e2ccf3da/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/actions/SpecifySecurity.java
----------------------------------------------------------------------
diff --git a/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/actions/SpecifySecurity.java b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/actions/SpecifySecurity.java
new file mode 100644
index 0000000..60be7df
--- /dev/null
+++ b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/actions/SpecifySecurity.java
@@ -0,0 +1,222 @@
+/**
+ * 
+ */
+package com.gemstone.gemfire.mgmt.DataBrowser.ui.actions;
+
+import java.lang.reflect.InvocationTargetException;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.MessageBox;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Widget;
+
+import com.gemstone.gemfire.mgmt.DataBrowser.app.DataBrowserApp;
+import com.gemstone.gemfire.mgmt.DataBrowser.connection.SecurityAttributes;
+import com.gemstone.gemfire.mgmt.DataBrowser.controller.DataBrowserController;
+import com.gemstone.gemfire.mgmt.DataBrowser.ui.SecurityPropComposite;
+import com.gemstone.gemfire.mgmt.DataBrowser.ui.SpecifySecuritiesDlg;
+import com.gemstone.gemfire.mgmt.DataBrowser.ui.SecurityPropComposite.SecurityProp;
+import com.gemstone.gemfire.mgmt.DataBrowser.utils.LogUtil;
+
+/**
+ * @author mjha
+ * 
+ */
+public final class SpecifySecurity extends AbstractDataBrowserAction implements
+    IRunnableWithProgress {
+
+  private static final String iconEnabled = null;
+  private static final String iconDisabled = null;
+
+  /**
+	 * 
+	 */
+  public SpecifySecurity() {
+    super();
+  }
+
+  // **********************************************************
+  //
+  // IRunnableWithProgress
+  //
+  // **********************************************************
+
+  /*
+   * (non-Javadoc)
+   * 
+   * @see
+   * org.eclipse.jface.operation.IRunnableWithProgress#run(org.eclipse.core.
+   * runtime.IProgressMonitor)
+   */
+  public void run(IProgressMonitor arg0) throws InvocationTargetException,
+      InterruptedException {
+
+  }
+
+  // **********************************************************
+  //
+  // AbstractDataBrowserAction stuff
+  //
+  // **********************************************************
+
+  /* (non-Javadoc)
+   * @see com.gemstone.gemfire.mgmt.DataBrowser.ui.actions.AbstractDataBrowserAction#getDisabledIcon()
+   */
+  @Override
+  public String getDisabledIcon() {
+    return iconDisabled;
+  }
+
+  /* (non-Javadoc)
+   * @see com.gemstone.gemfire.mgmt.DataBrowser.ui.actions.AbstractDataBrowserAction#getEnabledIcon()
+   */
+  @Override
+  public String getEnabledIcon() {
+    return iconEnabled;
+  }
+
+  
+  /*
+   * (non-Javadoc)
+   * 
+   * @see
+   * com.gemstone.gemfire.mgmt.DataBrowser.ui.actions.AbstractDataBrowserAction
+   * #getText()
+   */
+  @Override
+  public String getText() {
+    return "Security...";
+  }
+
+  // **********************************************************
+  //
+  // IAction stuff
+  //
+  // **********************************************************
+
+  /*
+   * (non-Javadoc)
+   * 
+   * @see org.eclipse.jface.action.Action#getDescription()
+   */
+  @Override
+  public String getDescription() {
+    return "Specify the security properties and plugin for the GemFire distributed system";
+  }
+
+  /*
+   * (non-Javadoc)
+   * 
+   * @see org.eclipse.jface.action.Action#getToolTipText()
+   */
+  @Override
+  public String getToolTipText() {
+    return "Security property of DataBrowser to provide credentials at the time of query";
+  }
+
+  /*
+   * (non-Javadoc)
+   * 
+   * @see org.eclipse.jface.action.Action#isEnabled()
+   */
+  @Override
+  public boolean isEnabled() {
+     DataBrowserApp app = DataBrowserApp.getInstance();
+     boolean fRet = true;
+     if( null != app ) {
+     DataBrowserController ctrlr = app.getController();
+     if( null != ctrlr ){
+     fRet = ctrlr.hasConnection();
+     }
+     }
+        
+     return fRet;
+  }
+
+  /*
+   * (non-Javadoc)
+   * 
+   * @see
+   * org.eclipse.jface.action.Action#runWithEvent(org.eclipse.swt.widgets.Event)
+   */
+  @Override
+  public void runWithEvent(Event event) {
+    Shell shl = null;
+    Display dsply = event.display;
+    if (null != dsply) {
+      shl = dsply.getActiveShell();
+    }
+
+    if (null == shl) {
+      Widget w = event.widget;
+      if (null != w) {
+        shl = w.getDisplay().getActiveShell();
+      }
+    }
+
+    SpecifySecuritiesDlg dlg = new SpecifySecuritiesDlg(shl);
+    SecurityPropComposite.Data data = null;
+
+    String errMsg = null;
+    boolean fPromptForRetry = false;
+    boolean fRetry = false;
+    do {
+      fRetry = false;
+      fPromptForRetry=false;
+      dlg.setSecurityData(data);
+      int iRetCode = dlg.open();
+      if (Window.OK == iRetCode) {
+        DataBrowserController cntrlr = DataBrowserApp.getInstance()
+            .getController();
+        SecurityAttributes sAttrs = new SecurityAttributes();
+
+        data = dlg.getData();
+        
+        String pluginJarFQN = data.getSecurityPlugin();
+        List<SecurityProp> secProperties = data.getSecurityProperties();
+        
+        if((pluginJarFQN.trim().length() == 0)){
+          fPromptForRetry = true;
+          errMsg = "No Security plugin provided, \n would you like to specify again ?";
+        }
+        
+        if (true == fPromptForRetry) {
+          if (null != errMsg) {
+            LogUtil.error(errMsg);
+          }
+          MessageBox mb = new MessageBox(shl, SWT.YES | SWT.NO);
+          mb.setText("Warning");
+          if (null == errMsg) {
+            errMsg = "No Security plugin provided, \n would you like to specify again ?";
+          }
+
+          mb.setMessage(errMsg);
+          int iRetry = mb.open();
+          fRetry = (SWT.YES == iRetry) ? true : false;
+        }
+        else {
+          Map<String, String> props = new HashMap<String, String>();
+          for (int i = 0; i < secProperties.size(); i++) {
+            SecurityProp securityProp = secProperties.get(i);
+            String key = securityProp.getKey();
+            String value = securityProp.getValue();
+            props.put(key, value);
+          }
+          sAttrs.setSecurityPluginPath(pluginJarFQN);
+          sAttrs.setSecurityProperties(props);
+
+          cntrlr.setSecurityAttributes(sAttrs);
+        }
+
+      } 
+    } while (true == fRetry);
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/e2ccf3da/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/actions/TileQueryWindows.java
----------------------------------------------------------------------
diff --git a/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/actions/TileQueryWindows.java b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/actions/TileQueryWindows.java
new file mode 100644
index 0000000..407714a
--- /dev/null
+++ b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/actions/TileQueryWindows.java
@@ -0,0 +1,139 @@
+/**
+ *
+ */
+package com.gemstone.gemfire.mgmt.DataBrowser.ui.actions;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.swt.widgets.Event;
+
+/**
+ * @author mghosh
+ *
+ */
+public class TileQueryWindows extends AbstractDataBrowserAction implements
+    IRunnableWithProgress {
+
+  private static final String iconEnabled = null;
+  private static final String iconDisabled = null;
+
+  /**
+   *
+   */
+  public TileQueryWindows() {
+    super();
+  }
+
+  // **********************************************************
+  //
+  // IRunnableWithProgress
+  //
+  // **********************************************************
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see
+   * org.eclipse.jface.operation.IRunnableWithProgress#run(org.eclipse.core.
+   * runtime.IProgressMonitor)
+   */
+  public void run(IProgressMonitor monitor) throws InvocationTargetException,
+      InterruptedException {
+  }
+
+  // **********************************************************
+  //
+  // AbstractDataBrowserAction stuff
+  //
+  // **********************************************************
+
+  /* (non-Javadoc)
+   * @see com.gemstone.gemfire.mgmt.DataBrowser.ui.actions.AbstractDataBrowserAction#getDisabledIcon()
+   */
+  @Override
+  public String getDisabledIcon() {
+    return iconDisabled;
+  }
+
+  /* (non-Javadoc)
+   * @see com.gemstone.gemfire.mgmt.DataBrowser.ui.actions.AbstractDataBrowserAction#getEnabledIcon()
+   */
+  @Override
+  public String getEnabledIcon() {
+    return iconEnabled;
+  }
+
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see
+   * com.gemstone.gemfire.mgmt.DataBrowser.ui.actions.AbstractDataBrowserAction
+   * #getText()
+   */
+  @Override
+  public String getText() {
+    return "Tile";
+  }
+
+  // **********************************************************
+  //
+  // IAction stuff
+  //
+  // **********************************************************
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see org.eclipse.jface.action.Action#getDescription()
+   */
+  @Override
+  public String getDescription() {
+    return "Arranged the Query Windows in tiled layout.";
+  }
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see org.eclipse.jface.action.Action#getToolTipText()
+   */
+  @Override
+  public String getToolTipText() {
+    return "Tiles the Query Windows";
+  }
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see org.eclipse.jface.action.Action#isEnabled()
+   */
+  @Override
+  public boolean isEnabled() {
+    // TODO Auto-generated method stub
+    return super.isEnabled();
+  }
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see org.eclipse.jface.action.Action#run()
+   */
+  @Override
+  public void run() {
+    super.run();
+  }
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see
+   * org.eclipse.jface.action.Action#runWithEvent(org.eclipse.swt.widgets.Event)
+   */
+  @Override
+  public void runWithEvent(Event event) {
+    super.runWithEvent(event);
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/e2ccf3da/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/actions/Undo.java
----------------------------------------------------------------------
diff --git a/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/actions/Undo.java b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/actions/Undo.java
new file mode 100644
index 0000000..d5f0259
--- /dev/null
+++ b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/actions/Undo.java
@@ -0,0 +1,139 @@
+/**
+ *
+ */
+package com.gemstone.gemfire.mgmt.DataBrowser.ui.actions;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.swt.widgets.Event;
+
+/**
+ * @author mghosh
+ *
+ */
+public class Undo extends AbstractDataBrowserAction implements
+    IRunnableWithProgress {
+
+  private static final String iconEnabled = null;
+  private static final String iconDisabled = null;
+
+  /**
+   *
+   */
+  public Undo() {
+    // TODO Auto-generated constructor stub
+  }
+
+  // **********************************************************
+  //
+  // IRunnableWithProgress
+  //
+  // **********************************************************
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see
+   * org.eclipse.jface.operation.IRunnableWithProgress#run(org.eclipse.core.
+   * runtime.IProgressMonitor)
+   */
+  public void run(IProgressMonitor monitor) throws InvocationTargetException,
+      InterruptedException {
+  }
+
+  // **********************************************************
+  //
+  // AbstractDataBrowserAction stuff
+  //
+  // **********************************************************
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see
+   * com.gemstone.gemfire.mgmt.DataBrowser.ui.actions.AbstractDataBrowserAction
+   * #getText()
+   */
+  @Override
+  public String getText() {
+    return "Undo";
+  }
+
+  /* (non-Javadoc)
+   * @see com.gemstone.gemfire.mgmt.DataBrowser.ui.actions.AbstractDataBrowserAction#getDisabledIcon()
+   */
+  @Override
+  public String getDisabledIcon() {
+    return iconDisabled;
+  }
+
+  /* (non-Javadoc)
+   * @see com.gemstone.gemfire.mgmt.DataBrowser.ui.actions.AbstractDataBrowserAction#getEnabledIcon()
+   */
+  @Override
+  public String getEnabledIcon() {
+    return iconEnabled;
+  }
+
+
+  // **********************************************************
+  //
+  // IAction stuff
+  //
+  // **********************************************************
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see org.eclipse.jface.action.Action#getDescription()
+   */
+  @Override
+  public String getDescription() {
+    return "Undo the last action";
+  }
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see org.eclipse.jface.action.Action#getToolTipText()
+   */
+  @Override
+  public String getToolTipText() {
+    return "Undo the Last Action";
+  }
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see org.eclipse.jface.action.Action#isEnabled()
+   */
+  @Override
+  public boolean isEnabled() {
+    // TODO Auto-generated method stub
+    return super.isEnabled();
+  }
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see org.eclipse.jface.action.Action#run()
+   */
+  @Override
+  public void run() {
+    // TODO Auto-generated method stub
+    super.run();
+  }
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see
+   * org.eclipse.jface.action.Action#runWithEvent(org.eclipse.swt.widgets.Event)
+   */
+  @Override
+  public void runWithEvent(Event event) {
+    super.runWithEvent(event);
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/e2ccf3da/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/actions/messages.properties
----------------------------------------------------------------------
diff --git a/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/actions/messages.properties b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/actions/messages.properties
new file mode 100644
index 0000000..e69de29

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/e2ccf3da/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/internal/PrefsMgr.java
----------------------------------------------------------------------
diff --git a/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/internal/PrefsMgr.java b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/internal/PrefsMgr.java
new file mode 100644
index 0000000..ce0ddae
--- /dev/null
+++ b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/internal/PrefsMgr.java
@@ -0,0 +1,130 @@
+/**
+ * 
+ */
+package com.gemstone.gemfire.mgmt.DataBrowser.ui.internal;
+
+import org.eclipse.jface.preference.IPreferenceNode;
+import org.eclipse.jface.preference.PreferenceManager;
+import org.eclipse.jface.preference.PreferenceNode;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.swt.graphics.Image;
+
+import com.gemstone.gemfire.mgmt.DataBrowser.ui.IDataBrowserPrefsPage;
+import com.gemstone.gemfire.mgmt.DataBrowser.utils.LogUtil;
+
+/**
+ * @author mghosh
+ * 
+ */
+public class PrefsMgr extends PreferenceManager {
+
+  private NodeData[] ndData_;
+  IPreferenceNode[]  nodes_;
+
+  /**
+   * 
+   */
+  public PrefsMgr() {
+    init();
+  }
+
+  /**
+   * @param separatorChar
+   */
+  public PrefsMgr(char separatorChar) {
+    super(separatorChar);
+    init();
+  }
+
+  /**
+   * @param separatorChar
+   * @param rootNode
+   */
+  public PrefsMgr(char separatorChar, PreferenceNode rootNode) {
+    super(separatorChar, rootNode);
+    init();
+  }
+
+  /**
+   * @param none
+   * 
+   *          Add the nodes in the tree of the preference dialog TODO Change
+   *          this to get label, id, image descriptor from each of the
+   *          preferences pages This is quick / dirty method.
+   */
+  private void init() {
+    updateNodeData();
+    
+    nodes_ = new IPreferenceNode[4];
+    int iNumNodes = ndData_.length;
+    for (int i = 0; i < iNumNodes; i++) {
+      nodes_[i] = new PreferenceNode(ndData_[i].id_, ndData_[i].label_, ndData_[i].imgDesc_, ndData_[i].clsNameImplementor_ );
+      this.getRoot().add(nodes_[i]);
+    }
+  }
+
+  private void updateNodeData() {
+    // TODO MGH - Perhaps these could be written from config?
+    String[] pageClsNms = {
+        "com.gemstone.gemfire.mgmt.DataBrowser.ui.ConnectionPrefsPage",
+        "com.gemstone.gemfire.mgmt.DataBrowser.ui.QueryPrefsPage",
+        "com.gemstone.gemfire.mgmt.DataBrowser.ui.SecurityPrefsPage",
+        "com.gemstone.gemfire.mgmt.DataBrowser.ui.MiscellaneousPrefsPage" };
+
+    Class<?> kls = null;
+    ndData_ = new NodeData[pageClsNms.length];
+    int idxNodeData = 0;
+    for (int idxClsNms = 0; idxClsNms < pageClsNms.length; idxClsNms++) {
+      try {
+        kls = Class.forName(pageClsNms[idxClsNms]);
+        IDataBrowserPrefsPage pg = (IDataBrowserPrefsPage) kls.newInstance();
+
+        ndData_[idxNodeData] = new NodeData();
+        
+        ndData_[idxNodeData].clsNameImplementor_ = pageClsNms[idxClsNms];
+        ndData_[idxNodeData].id_ = pg.getID();
+        ndData_[idxNodeData].label_ = pg.getLabel();
+        ndData_[idxNodeData].imgDesc_ = pg.getImageDescriptor();
+        ++idxNodeData;
+      } catch (ClassNotFoundException xptn) {
+
+      } catch (InstantiationException e) {
+        LogUtil.warning( "InstantiationException in PrefsMgr.updateNodeData(..)\n", e );
+      } catch (IllegalAccessException e) {
+        LogUtil.warning( "IllegalAccessException in PrefsMgr.updateNodeData(..)\n", e );
+      } finally {
+        /*
+         * ndData_[idxNodeData].clsNameImplementor_ = null;
+         * ndData_[idxNodeData].id_ = null; ndData_[idxNodeData].label_ = null;
+         * ndData_[idxNodeData].imgDesc_ = null;
+         */
+      }
+    } // for(...)
+
+  }
+
+  private static class NodeData {
+    ImageDescriptor imgDesc_;
+    String          label_;
+    String          id_;
+    String          clsNameImplementor_;
+
+    NodeData() {
+      imgDesc_ = null;
+      label_ = null;
+      id_ = null;
+      clsNameImplementor_ = null;
+    }
+  } // NodeData
+
+  /**
+   * @param args
+   * 
+   *          Testing hook
+   */
+  static void main(String[] args) {
+    // TODO Auto-generated method stub
+
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/e2ccf3da/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/messages.properties
----------------------------------------------------------------------
diff --git a/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/messages.properties b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/messages.properties
new file mode 100644
index 0000000..e69de29

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/e2ccf3da/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/model/CQueryResultsInput.java
----------------------------------------------------------------------
diff --git a/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/model/CQueryResultsInput.java b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/model/CQueryResultsInput.java
new file mode 100644
index 0000000..20d4183
--- /dev/null
+++ b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/model/CQueryResultsInput.java
@@ -0,0 +1,142 @@
+package com.gemstone.gemfire.mgmt.DataBrowser.ui.model;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.TableViewer;
+
+import com.gemstone.gemfire.mgmt.DataBrowser.query.ColumnNotFoundException;
+import com.gemstone.gemfire.mgmt.DataBrowser.query.ColumnValueNotAvailableException;
+import com.gemstone.gemfire.mgmt.DataBrowser.query.IntrospectionResult;
+import com.gemstone.gemfire.mgmt.DataBrowser.query.cq.CQResult;
+import com.gemstone.gemfire.mgmt.DataBrowser.query.cq.EventData;
+import com.gemstone.gemfire.mgmt.DataBrowser.query.cq.event.ErrorEvent;
+import com.gemstone.gemfire.mgmt.DataBrowser.query.cq.event.ICQEvent;
+import com.gemstone.gemfire.mgmt.DataBrowser.query.cq.event.RowDeleted;
+
+/**
+ * 
+ * @author mjha
+ *
+ */
+public class CQueryResultsInput implements ResultsInput {
+  
+  public static final int NO_PRIMARY_COL_SELECTED = -1;
+  private CQResult queryResults;
+  private IntrospectionResult metaData;
+  private TableViewer viewer;  
+  private Map< Object, Object > prim_col_to_key_map;  
+  private int colIndex;
+
+  public CQueryResultsInput(TableViewer vwr, CQResult qryRslt, IntrospectionResult mtdata, int index) {
+    viewer= vwr;
+    queryResults = qryRslt;
+    metaData = mtdata;
+    colIndex = index;
+    this.prim_col_to_key_map = Collections.synchronizedMap(new HashMap< Object, Object >());
+  }
+  
+  public IntrospectionResult getMetaData() {
+    return metaData;
+  }
+  
+  public int getPrimaryColIndex(){
+    return colIndex;
+  }
+
+  public Object getColumnValue(Object element, int colIdx)
+      throws ColumnNotFoundException, ColumnValueNotAvailableException {
+    Object columnValue = metaData.getColumnValue(element, colIdx);
+    return columnValue;
+  }
+
+ 
+  public Object getSelectedObject() {
+    Object selectedObject = null;
+    StructuredSelection selection= (StructuredSelection)viewer.getSelection(); 
+    if(selection != null){
+      EventData firstElement = (EventData)selection.getFirstElement();
+      if(firstElement != null){
+        selectedObject = firstElement.getValue();
+      }
+    }
+    return selectedObject;
+  }
+  
+  public void processEvent(ICQEvent cqEvent) {
+    if (!(cqEvent instanceof ErrorEvent)) {
+      EventData data = cqEvent.getEventData();
+      
+      if((data == null) || (!data.getIntrospectionResult().equals(metaData))) {
+       return; 
+      }
+      
+      if (cqEvent instanceof RowDeleted) {
+        viewer.remove(cqEvent.getEventData());
+
+      }
+      else if (colIndex == NO_PRIMARY_COL_SELECTED) {
+        if (prim_col_to_key_map.containsKey(data.getKey())) {
+          viewer.update(data, null);
+        }
+        else {
+          prim_col_to_key_map.put(data.getKey(), data.getKey());
+          viewer.add(data);
+        }
+
+      }
+      else {
+        Object event_key = data.getKey();
+        IntrospectionResult result = data.getIntrospectionResult();
+        if (metaData.equals(result)) {
+          Object value = data.getValue();
+          if (value != null) {
+            try {
+              Object prim_col_value = metaData.getColumnValue(value, colIndex);
+              Object key = prim_col_to_key_map.get(prim_col_value);
+              EventData oldData = queryResults.getValueForKey(key);
+
+              // Previous entry is available.
+              if (key != null) {
+                // If keys are not same, delete the old entry and add new entry.
+                if (!key.equals(event_key)) {
+                  //Ensure that we are not updating the row with the stale data.
+                  if((oldData == null) || (oldData.compareTo(data) < 0)) {
+                    //Remove the old data.
+                    if(oldData != null)
+                     viewer.remove(oldData);
+                    // Add the new value...
+                    prim_col_to_key_map.put(prim_col_value, event_key);
+                    viewer.add(data);                    
+                  } 
+                }
+                else {
+                  // Since keys are same...just update the values.
+                  viewer.update(data, null);
+                }
+
+              }
+              else {
+                // Previous entry not available. Add a new entry...
+                prim_col_to_key_map.put(prim_col_value, event_key);
+                viewer.add(data);
+              }
+            }
+            catch (Exception e) {
+              e.printStackTrace();
+            }
+          }
+        }
+      }
+    }
+
+  }
+  
+  public void dispose() {
+    queryResults = null;
+    metaData = null;
+    viewer = null;
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/e2ccf3da/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/model/QueryResultsInput.java
----------------------------------------------------------------------
diff --git a/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/model/QueryResultsInput.java b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/model/QueryResultsInput.java
new file mode 100644
index 0000000..ddc1159
--- /dev/null
+++ b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/model/QueryResultsInput.java
@@ -0,0 +1,56 @@
+package com.gemstone.gemfire.mgmt.DataBrowser.ui.model;
+
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.TableViewer;
+
+import com.gemstone.gemfire.mgmt.DataBrowser.query.ColumnNotFoundException;
+import com.gemstone.gemfire.mgmt.DataBrowser.query.ColumnValueNotAvailableException;
+import com.gemstone.gemfire.mgmt.DataBrowser.query.IntrospectionResult;
+import com.gemstone.gemfire.mgmt.DataBrowser.query.QueryResult;
+
+public class QueryResultsInput implements ResultsInput {
+
+  private QueryResult queryResults_;
+
+  private IntrospectionResult metaData_;
+
+  private Object[] elements_;
+
+  private TableViewer viewer_;
+
+  public QueryResultsInput(TableViewer vwr, QueryResult qryRslt, IntrospectionResult mtdata) {
+    viewer_ = vwr;
+    queryResults_ = qryRslt;
+    metaData_ = mtdata;
+    elements_ = queryResults_.getQueryResult(metaData_).toArray();
+  }
+
+  public Object getElement(int index) {
+    return elements_[index];
+  }
+
+  public IntrospectionResult getMetaData() {
+    return metaData_;
+  }
+
+  public int getSize() {
+    return elements_.length;
+  }
+
+  public Object getColumnValue(Object element, int colIndex)
+      throws ColumnNotFoundException, ColumnValueNotAvailableException {
+    Object columnValue = metaData_.getColumnValue(element, colIndex);
+    return columnValue;
+  }
+
+
+  public Object getSelectedObject() {
+    Object selectedObject = null;
+    StructuredSelection selection= (StructuredSelection)viewer_.getSelection(); 
+    if(selection != null){
+      Object firstElement = selection.getFirstElement();
+      selectedObject = firstElement;
+    }
+    return selectedObject;
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/e2ccf3da/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/model/ResultsInput.java
----------------------------------------------------------------------
diff --git a/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/model/ResultsInput.java b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/model/ResultsInput.java
new file mode 100644
index 0000000..a6e8f71
--- /dev/null
+++ b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/model/ResultsInput.java
@@ -0,0 +1,10 @@
+package com.gemstone.gemfire.mgmt.DataBrowser.ui.model;
+
+import com.gemstone.gemfire.mgmt.DataBrowser.query.IntrospectionResult;
+
+public interface ResultsInput {
+
+  public IntrospectionResult getMetaData() ;
+  
+  public Object getSelectedObject();
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/e2ccf3da/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/tree/ExploreAction.java
----------------------------------------------------------------------
diff --git a/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/tree/ExploreAction.java b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/tree/ExploreAction.java
new file mode 100644
index 0000000..2411825
--- /dev/null
+++ b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/tree/ExploreAction.java
@@ -0,0 +1,53 @@
+package com.gemstone.gemfire.mgmt.DataBrowser.ui.tree;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.viewers.DoubleClickEvent;
+import org.eclipse.jface.viewers.IDoubleClickListener;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.widgets.Shell;
+
+import com.gemstone.gemfire.mgmt.DataBrowser.query.IntrospectionResult;
+import com.gemstone.gemfire.mgmt.DataBrowser.query.export.QueryResultExporter;
+import com.gemstone.gemfire.mgmt.DataBrowser.ui.model.ResultsInput;
+import com.gemstone.gemfire.mgmt.DataBrowser.utils.LogUtil;
+
+public class ExploreAction extends Action implements IDoubleClickListener {
+  Shell parent;
+  TableViewer tableViewer;
+
+  public ExploreAction(Shell prnt, TableViewer tblVwr) {
+    setText("Explore...");
+    parent = prnt;
+    tableViewer = tblVwr;
+  }
+
+  @Override
+  public void run() {
+    ResultsInput input = (ResultsInput)tableViewer.getInput();
+    IntrospectionResult metaInfo = input.getMetaData();
+    Object obj = input.getSelectedObject();
+    if(obj != null){
+      ObjectTreeModelImpl impl = new ObjectTreeModelImpl();
+      QueryResultExporter exporter = new QueryResultExporter(impl, -1);
+
+      try {
+        exporter.exportObject("Result", metaInfo, obj);
+
+        ObjectImage root = (ObjectImage)impl.getResultDocument();
+
+        ObjectExplorer explorer = new ObjectExplorer(parent);
+        explorer.updateModel(root);
+        explorer.open();
+      }
+      catch (Exception e) {
+        // TODO: Proper error handling.
+        // TODO MGH - remove this and use logging or some other mechanism
+        LogUtil.error("Error while exploring table row", e);
+      }
+    }
+  }
+
+  public void doubleClick(DoubleClickEvent event) {
+    run();
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/e2ccf3da/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/tree/Messages.java
----------------------------------------------------------------------
diff --git a/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/tree/Messages.java b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/tree/Messages.java
new file mode 100644
index 0000000..26bc0e3
--- /dev/null
+++ b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/tree/Messages.java
@@ -0,0 +1,22 @@
+package com.gemstone.gemfire.mgmt.DataBrowser.ui.tree;
+
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+public class Messages {
+  private static final String         BUNDLE_NAME     = "com.gemstone.gemfire.mgmt.DataBrowser.ui.tree.messages";
+
+  private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle
+                                                          .getBundle(BUNDLE_NAME);
+
+  private Messages() {
+  }
+
+  public static String getString(String key) {
+    try {
+      return RESOURCE_BUNDLE.getString(key);
+    } catch (MissingResourceException e) {
+      return '!' + key + '!';
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/e2ccf3da/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/tree/ObjectContentProvider.java
----------------------------------------------------------------------
diff --git a/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/tree/ObjectContentProvider.java b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/tree/ObjectContentProvider.java
new file mode 100644
index 0000000..431c3f8
--- /dev/null
+++ b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/tree/ObjectContentProvider.java
@@ -0,0 +1,58 @@
+package com.gemstone.gemfire.mgmt.DataBrowser.ui.tree;
+
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+
+public class ObjectContentProvider implements ITreeContentProvider {
+
+  private static Object[] EMPTY_ARRAY = new Object[0];
+  protected ObjectImage root;
+  protected TreeViewer viewer;
+ 
+  public Object[] getChildren(Object parentElement) {
+    if(parentElement instanceof ObjectImage) {
+     ObjectImage image = (ObjectImage)parentElement;
+     return image.getChildren().toArray();
+    }
+    
+    return EMPTY_ARRAY;
+  }
+
+  public Object getParent(Object element) {
+    if(element instanceof ObjectImage) {
+      ObjectImage image = (ObjectImage)element;
+      return image.getParent();
+      
+    }
+    return null;
+  }
+
+  public boolean hasChildren(Object element) {
+    if(element instanceof ObjectImage) {
+      ObjectImage image = (ObjectImage)element;
+      return !image.getChildren().isEmpty();      
+    }  
+    
+    return false;
+  }
+
+  public Object[] getElements(Object inputElement) {
+    ObjectImage[] result = new ObjectImage[1];
+    result[0] = root;       
+    return result;
+  }
+  
+  public void setRoot(ObjectImage rt) {
+    this.root = rt;
+  }
+
+  public void dispose() {
+    
+  }
+
+  public void inputChanged(Viewer vwr, Object oldInput, Object newInput) {
+    
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/e2ccf3da/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/tree/ObjectExplorer.java
----------------------------------------------------------------------
diff --git a/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/tree/ObjectExplorer.java b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/tree/ObjectExplorer.java
new file mode 100644
index 0000000..9b358dd
--- /dev/null
+++ b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/tree/ObjectExplorer.java
@@ -0,0 +1,83 @@
+package com.gemstone.gemfire.mgmt.DataBrowser.ui.tree;
+
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.TreeViewerColumn;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+
+import com.gemstone.gemfire.mgmt.DataBrowser.ui.tree.Messages;
+
+public class ObjectExplorer {
+  private ObjectContentProvider cp;
+  private Shell exp_window;
+  private TreeViewer tree_viewer;
+
+  public ObjectExplorer(Shell parent) {
+    exp_window = new Shell(parent, SWT.TITLE | SWT.CLOSE | SWT.RESIZE);
+    tree_viewer = new TreeViewer(exp_window, SWT.SINGLE | SWT.FULL_SELECTION);
+    cp = new ObjectContentProvider();
+    tree_viewer.setContentProvider(cp);
+    configure();
+  }
+
+  private void configure() {
+    exp_window.setText("Object Explorer");
+    exp_window.setLayout(new GridLayout(1, false));
+
+
+    tree_viewer.getTree().setHeaderVisible(true);
+    tree_viewer.getTree().setLinesVisible(true);
+    tree_viewer.getTree().setLayoutData(new GridData(GridData.FILL_BOTH));
+
+    {
+      TreeViewerColumn col1 = new TreeViewerColumn(tree_viewer, SWT.LEFT,0);
+      col1.getColumn().setText("Field");
+      col1.getColumn().setWidth(150);
+      col1.setLabelProvider(new ObjectLabelProvider(0));
+    }
+
+    {
+      TreeViewerColumn col1 = new TreeViewerColumn(tree_viewer, SWT.LEFT,1);
+      col1.getColumn().setText("Value");
+      col1.getColumn().setWidth(300);
+      col1.setLabelProvider(new ObjectLabelProvider(1));
+    }
+
+    {
+      TreeViewerColumn col1 = new TreeViewerColumn(tree_viewer, SWT.LEFT,2);
+      col1.getColumn().setText("Type");
+      col1.getColumn().setWidth(150);
+      col1.setLabelProvider(new ObjectLabelProvider(2));
+    }
+
+
+
+    exp_window.setSize(700, 400);
+  }
+
+
+  public void open() {
+    this.exp_window.open();
+  }
+
+  public void updateModel(ObjectImage root) {
+    cp.setRoot(root);
+    tree_viewer.setInput("root");
+    tree_viewer.expandAll();
+  }
+
+  public void waitForClose() {
+    Display display = exp_window.getDisplay();
+    // Set up the event loop.
+    while (!exp_window.isDisposed()) {
+      if (!display.readAndDispatch()) {
+        // If no more entries in event queue
+        display.sleep();
+      }
+    }
+    display.dispose();
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/e2ccf3da/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/tree/ObjectImage.java
----------------------------------------------------------------------
diff --git a/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/tree/ObjectImage.java b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/tree/ObjectImage.java
new file mode 100644
index 0000000..4814705
--- /dev/null
+++ b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/tree/ObjectImage.java
@@ -0,0 +1,57 @@
+package com.gemstone.gemfire.mgmt.DataBrowser.ui.tree;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class ObjectImage {
+  private String name;
+  private Object value;
+  private int type;
+  private String typeName;
+  private ObjectImage parent;
+  private List<ObjectImage> children;
+  
+  public ObjectImage(String n, int t, Object v) {
+    super();
+    name = n;
+    type = t;
+    value = v;
+    children = new ArrayList<ObjectImage>();
+  }
+  
+  public void setTypeName(String typeNm) {
+    typeName = typeNm;
+  }
+  
+  public String getTypeName() {
+    return typeName;
+  }
+  
+  public void addChild(ObjectImage child) {
+   children.add(child); 
+  }
+  
+  public List<ObjectImage> getChildren() {
+    return children;
+  }
+  
+  public void setParent(ObjectImage prnt) {
+    parent = prnt;
+  }
+  
+  public ObjectImage getParent() {
+    return parent;
+  }
+  
+  public int getType() {
+    return type;
+  }
+  
+  public Object getValue() {
+    return value;
+  }
+  
+  public String getName() {
+    return name;
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/e2ccf3da/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/tree/ObjectLabelProvider.java
----------------------------------------------------------------------
diff --git a/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/tree/ObjectLabelProvider.java b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/tree/ObjectLabelProvider.java
new file mode 100644
index 0000000..bf8ed51
--- /dev/null
+++ b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/tree/ObjectLabelProvider.java
@@ -0,0 +1,61 @@
+package com.gemstone.gemfire.mgmt.DataBrowser.ui.tree;
+
+import org.eclipse.jface.viewers.ColumnLabelProvider;
+import org.eclipse.swt.graphics.Image;
+
+import com.gemstone.gemfire.mgmt.DataBrowser.query.IntrospectionResult;
+
+public class ObjectLabelProvider extends ColumnLabelProvider {
+
+  private int index;
+
+  public ObjectLabelProvider(int idx) {
+    index = idx;
+  }
+
+  @Override
+  public Image getImage(Object element) {
+    return null;
+  }
+
+  @Override
+  public String getText(Object element) {
+    String sRet = "Unknown type";
+    
+    if(element instanceof ObjectImage) {
+      ObjectImage temp = (ObjectImage)element;
+
+      switch(index) {
+        case 0: { 
+          sRet = temp.getName();
+          break;
+        }
+  
+        case 2: {
+          sRet = temp.getTypeName();
+          break;
+        }
+        
+        // TODO : MGH - check the logic for return value ("null" vs empty string)
+        case 1: { 
+          if(temp.getType() == IntrospectionResult.PRIMITIVE_TYPE_RESULT)
+            sRet = (temp.getValue() != null) ? temp.getValue().toString() : "null";
+          else
+            sRet = "";
+          break;
+        }
+          
+        default: {
+          sRet = "Unknown type";
+          break;
+        }
+      }
+    }   
+
+    return sRet;
+  }
+
+  @Override
+  public void dispose() {
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/e2ccf3da/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/tree/ObjectTreeModelImpl.java
----------------------------------------------------------------------
diff --git a/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/tree/ObjectTreeModelImpl.java b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/tree/ObjectTreeModelImpl.java
new file mode 100644
index 0000000..17fb0b8
--- /dev/null
+++ b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/tree/ObjectTreeModelImpl.java
@@ -0,0 +1,128 @@
+/*=========================================================================
+ * (c)Copyright 2002-2011, GemStone Systems, Inc. All Rights Reserved.
+ * 1260 NW Waterhouse Ave., Suite 200, Beaverton, OR 97006
+ * All Rights Reserved.
+ * =======================================================================*/
+package com.gemstone.gemfire.mgmt.DataBrowser.ui.tree;
+
+import com.gemstone.gemfire.mgmt.DataBrowser.query.IntrospectionResult;
+import com.gemstone.gemfire.mgmt.DataBrowser.query.export.QueryDataExportHandler;
+
+
+public class ObjectTreeModelImpl implements QueryDataExportHandler {
+
+  private ObjectImage root;
+  private ObjectImage current;
+
+  public Object getResultDocument() {
+    return root;
+  }
+  
+  public void handleStartDocument() {
+  }
+  
+  public void handleEndDocument() {
+  }
+ 
+  public void handleStartCollectionElement(String name, IntrospectionResult metaInfo, Object element) {
+  }
+
+  public void handleEndCollectionElement(String name) {
+  }
+
+
+  public void handlePrimitiveType(String name, Class type, Object value) {
+    ObjectImage temp = new ObjectImage(name, IntrospectionResult.PRIMITIVE_TYPE_RESULT, value);
+    temp.setTypeName(type.getCanonicalName());
+    
+    if(root == null) {
+      current = root = temp;      
+    } else {
+      current.addChild(temp);
+      temp.setParent(current);
+    }    
+  }
+
+  public void handleStartCollectionType(String name, String typeName, Object value) {
+    ObjectImage temp = new ObjectImage(name, IntrospectionResult.COLLECTION_TYPE_RESULT, value);
+    temp.setTypeName(typeName);
+    
+    if(root == null) {
+     root = temp;
+    
+    } else {
+      current.addChild(temp);
+      temp.setParent(current);
+    }
+    
+    current = temp;
+  }
+
+  public void handleEndCollectionType(String name, String typeName, Object value) {
+    if(current != root) {
+      current = current.getParent();      
+    }  
+  }
+  
+  public void handleStartCompositeType(String name, IntrospectionResult metaInfo, Object value) {
+    ObjectImage temp = new ObjectImage(name, metaInfo.getResultType(), value);
+    temp.setTypeName(metaInfo.getJavaType().getCanonicalName());
+
+    if(root == null) {
+      root = temp;
+    } else {
+      current.addChild(temp);
+      temp.setParent(current);    
+    }
+    
+    current = temp;
+  }
+  
+  public void handleEndCompositeType(String name, IntrospectionResult metaInfo, Object value) {
+    if(current != root) {
+      current = current.getParent();  
+    }    
+  }
+
+  public void handleStartStructType(String name, IntrospectionResult metaInfo, Object val)  {
+    ObjectImage temp = new ObjectImage(name, metaInfo.getResultType(), val);
+    temp.setTypeName(metaInfo.getJavaType().getCanonicalName());
+    
+    if(root == null) {
+      root = temp;
+    } else {
+      current.addChild(temp);
+      temp.setParent(current);    
+    }
+ 
+    current = temp;
+  }
+  
+  public void handleEndStructType(String name, IntrospectionResult metaInfo, Object val) {
+    if(current != root) {
+      current = current.getParent();  
+    }  
+  }
+
+  public void handleStartPdxType(String name, IntrospectionResult metaInfo,
+      Object value) {
+    ObjectImage temp = new ObjectImage(name, metaInfo.getResultType(), value);
+    temp.setTypeName(metaInfo.getJavaTypeName());
+
+    if(root == null) {
+      root = temp;
+    } else {
+      current.addChild(temp);
+      temp.setParent(current);    
+    }
+    
+    current = temp;
+  }
+
+  public void handleEndPdxType(String name, IntrospectionResult metaInfo,
+      Object value) {
+    if(current != root) {
+      current = current.getParent();  
+    }    
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/e2ccf3da/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/tree/messages.properties
----------------------------------------------------------------------
diff --git a/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/tree/messages.properties b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/tree/messages.properties
new file mode 100644
index 0000000..fce3342
--- /dev/null
+++ b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/ui/tree/messages.properties
@@ -0,0 +1,5 @@
+ExploreAction.0=Explore...
+ObjectExplorer.0=Object Explorer
+ObjectExplorer.1=Field
+ObjectExplorer.2=Value
+ObjectExplorer.3=Type

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/e2ccf3da/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/utils/DataValidator.java
----------------------------------------------------------------------
diff --git a/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/utils/DataValidator.java b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/utils/DataValidator.java
new file mode 100644
index 0000000..fd96fcb
--- /dev/null
+++ b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/utils/DataValidator.java
@@ -0,0 +1,44 @@
+/**
+ * 
+ */
+package com.gemstone.gemfire.mgmt.DataBrowser.utils;
+
+/**
+ * @author mghosh
+ *
+ */
+public class DataValidator {
+
+  /**
+   * 
+   */
+  private DataValidator() {
+    // TODO Auto-generated constructor stub
+  }
+
+  public static boolean isValidTCPPort( String sP ) {
+    boolean fRet = false;
+    try {
+      int iP = Integer.valueOf( sP ).intValue();
+      fRet = DataValidator.isValidTCPPort( iP );
+    }
+    catch( NumberFormatException xptn ) {
+      fRet = false;
+    }
+    
+    return fRet;
+  }
+  
+  public static boolean isValidTCPPort( int iP ) {
+    return (( 0 <= iP ) && ( iP <= 65535));
+  }
+  
+  /**
+   * @param args
+   */
+  public static void main(String[] args) {
+    // TODO Auto-generated method stub
+
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/e2ccf3da/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/utils/JVMArch.java
----------------------------------------------------------------------
diff --git a/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/utils/JVMArch.java b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/utils/JVMArch.java
new file mode 100755
index 0000000..b70ae01
--- /dev/null
+++ b/databrowser/src/com/gemstone/gemfire/mgmt/DataBrowser/utils/JVMArch.java
@@ -0,0 +1,32 @@
+/*
+ *  =========================================================================
+ *  Copyright (c) 2002-2012 VMware, Inc. All Rights Reserved.
+ *  This product is protected by U.S. and international copyright
+ *  and intellectual property laws. VMware products are covered by
+ *  more patents listed at http://www.vmware.com/go/patents.
+ *  All Rights Reserved.
+ *  ========================================================================
+ */
+package com.gemstone.gemfire.mgmt.DataBrowser.utils;
+
+/**
+ * Reads Java System Property 'os.arch' & prints it on console.
+ *   
+ * @author abhishek
+ */
+public class JVMArch {  
+  public static void main(String[] args) {
+    String osArch       = "x86";
+    String osArchActual = System.getProperty("os.arch");
+//    System.out.println(osArchActual); // only for testing
+    
+    // The idea to detect the JVM Architecture/Data Model is taken from 
+    // org.eclipse.equinox.launcher.Main.getArch()
+    if (osArchActual.equalsIgnoreCase("i386")) {
+      osArch = "x86";
+    } else if (osArchActual.equalsIgnoreCase("amd64")) {
+      osArch = "x86_64";
+    }
+    System.out.println(osArch);
+  }
+}