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);
+ }
+}