blob: 2411825e98fc9913bc2139b5f2ca26e09f68f170 [file] [log] [blame]
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();
}
}