package net.sourceforge.phpdt.sql.view; import org.eclipse.jface.viewers.DoubleClickEvent; import org.eclipse.jface.viewers.IDoubleClickListener; import org.eclipse.jface.viewers.ISelectionChangedListener; import org.eclipse.jface.viewers.SelectionChangedEvent; import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.swt.widgets.Composite; import org.eclipse.ui.part.ViewPart; import net.sourceforge.phpdt.sql.view.bookmark.Root; import net.sourceforge.phpdt.sql.view.query.QueryContentProvider; import net.sourceforge.phpdt.sql.view.query.QueryNode; public class QueryHistoryView extends ViewPart { private static QueryHistoryView instance; private QueryContentProvider provider = new QueryContentProvider(); private TreeViewer treeViewer; public static QueryHistoryView getInstance() { return instance; } public Object getCurrent() { StructuredSelection selection = (StructuredSelection) treeViewer.getSelection(); if (selection != null) { return selection.getFirstElement(); } return null; } public void createPartControl(Composite parent) { instance = this; treeViewer = new TreeViewer(parent); treeViewer.setContentProvider(provider); treeViewer.setLabelProvider(new BookmarkLabelProvider()); treeViewer.setInput(Root.ROOT); treeViewer.addDoubleClickListener(new IDoubleClickListener() { public void doubleClick(DoubleClickEvent event) { Object sel = getCurrent(); if (sel instanceof QueryNode) { QueryNode node = (QueryNode) sel; SQLQueryView.getInstance().setQuery(node.getQuery()); } } }); treeViewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { Object sel = getCurrent(); if (sel != null) { // preview goes here } } } ); } public void addQuery(String query) { provider.addQuery(query); treeViewer.refresh(); } public void setFocus() { } }