SQL Plugin copied from Quantum plugin and refactored for PHPEclipse
[phpeclipse.git] / archive / net.sourceforge.phpeclipse.sql / src / net / sourceforge / phpdt / sql / view / QueryHistoryView.java
1 package net.sourceforge.phpdt.sql.view;
2
3 import org.eclipse.jface.viewers.DoubleClickEvent;
4 import org.eclipse.jface.viewers.IDoubleClickListener;
5 import org.eclipse.jface.viewers.ISelectionChangedListener;
6 import org.eclipse.jface.viewers.SelectionChangedEvent;
7 import org.eclipse.jface.viewers.StructuredSelection;
8 import org.eclipse.jface.viewers.TreeViewer;
9 import org.eclipse.swt.widgets.Composite;
10 import org.eclipse.ui.part.ViewPart;
11
12 import net.sourceforge.phpdt.sql.view.bookmark.Root;
13 import net.sourceforge.phpdt.sql.view.query.QueryContentProvider;
14 import net.sourceforge.phpdt.sql.view.query.QueryNode;
15
16 public class QueryHistoryView extends ViewPart {
17         private static QueryHistoryView instance;
18         private QueryContentProvider provider = new QueryContentProvider();
19         private TreeViewer treeViewer;
20         
21         public static QueryHistoryView getInstance() {
22                 return instance;
23         }
24         public Object getCurrent() {
25                 StructuredSelection selection = (StructuredSelection) treeViewer.getSelection();
26                 if (selection != null) {
27                         return selection.getFirstElement();
28                 }
29                 return null;
30         }
31         public void createPartControl(Composite parent) {
32                 instance = this;
33                 treeViewer = new TreeViewer(parent);
34                 treeViewer.setContentProvider(provider);
35                 treeViewer.setLabelProvider(new BookmarkLabelProvider());
36                 treeViewer.setInput(Root.ROOT);
37                 treeViewer.addDoubleClickListener(new IDoubleClickListener() {
38                         public void doubleClick(DoubleClickEvent event) {
39                                 Object sel = getCurrent();
40                                 if (sel instanceof QueryNode) {
41                                         QueryNode node = (QueryNode) sel;
42                                         SQLQueryView.getInstance().setQuery(node.getQuery());
43                                 }
44                         }
45                 });
46                 treeViewer.addSelectionChangedListener(new ISelectionChangedListener() {
47                         public void selectionChanged(SelectionChangedEvent event) {
48                                 Object sel = getCurrent();
49                                 if (sel != null) {
50                                         // preview goes here
51                                 }
52                         }
53                 }
54                 );
55         }
56         
57         public void addQuery(String query) {
58                 provider.addQuery(query);
59                 treeViewer.refresh();
60         }
61         
62         public void setFocus() {
63         }
64 }
65