1 package net.sourceforge.phpdt.sql.view;
3 import org.eclipse.jface.action.Action;
4 import org.eclipse.jface.action.IToolBarManager;
5 import org.eclipse.swt.SWT;
6 import org.eclipse.swt.custom.StyleRange;
7 import org.eclipse.swt.custom.StyledText;
8 import org.eclipse.swt.custom.StyledTextContent;
9 import org.eclipse.swt.events.DisposeEvent;
10 import org.eclipse.swt.events.DisposeListener;
11 import org.eclipse.swt.graphics.Color;
12 import org.eclipse.swt.widgets.Composite;
13 import org.eclipse.ui.IActionBars;
14 import org.eclipse.ui.IWorkbenchActionConstants;
15 import org.eclipse.ui.part.ViewPart;
17 import net.sourceforge.phpdt.sql.Messages;
18 import net.sourceforge.phpdt.sql.PHPEclipseSQLPlugin;
20 public class SQLLogView extends ViewPart implements LogConstants {
21 private Color QUERY_COLOR;
22 private Color WARNING_COLOR;
23 private Color DEFAULT_COLOR;
24 private Color ERROR_COLOR;
25 private Color RESULTS_COLOR;
26 private StyledText widget;
27 private static SQLLogView instance = null;
28 private static final String newLine = "\n"; //$NON-NLS-1$
29 public static SQLLogView getInstance() {
33 public void createPartControl(Composite parent) {
35 QUERY_COLOR = new Color(parent.getShell().getDisplay(), 0, 255, 0);
36 ERROR_COLOR = new Color(parent.getShell().getDisplay(), 255, 0, 0);
37 RESULTS_COLOR = new Color(parent.getShell().getDisplay(), 0, 0, 255);
38 DEFAULT_COLOR = new Color(parent.getShell().getDisplay(), 0, 0, 0);
39 WARNING_COLOR = new Color(parent.getShell().getDisplay(), 255, 127, 0);
40 widget = new StyledText(parent, SWT.H_SCROLL | SWT.V_SCROLL);
41 IActionBars bars = this.getViewSite().getActionBars();
42 bars.setGlobalActionHandler(IWorkbenchActionConstants.COPY, copyAction);
43 bars.setGlobalActionHandler(IWorkbenchActionConstants.SELECT_ALL, selectAllAction);
45 IToolBarManager toolBar = getViewSite().getActionBars().getToolBarManager();
46 clearAction.setImageDescriptor(PHPEclipseSQLPlugin.getImageDescriptor("clear.gif")); //$NON-NLS-1$
47 clearAction.setToolTipText(Messages.getString("SQLLogView.ClearLog")); //$NON-NLS-1$
48 toolBar.add(clearAction);
50 widget.setEditable(false);
52 widget.addDisposeListener(new DisposeListener() {
53 public void widgetDisposed(DisposeEvent e) {
59 public void addText(int style, String text) {
60 text = text + newLine;
61 int start = widget.getText().length();
62 StyleRange styleRange = new StyleRange();
63 styleRange.start = start;
64 styleRange.length = text.length();
66 styleRange.foreground = QUERY_COLOR;
67 } else if (style == ERROR) {
68 styleRange.foreground = ERROR_COLOR;
69 } else if (style == RESULTS) {
70 styleRange.foreground = RESULTS_COLOR;
71 } else if (style == WARNING) {
72 styleRange.foreground = WARNING_COLOR;
74 styleRange.foreground = DEFAULT_COLOR;
77 widget.setStyleRange(styleRange);
78 revealEndOfDocument();
81 protected void revealEndOfDocument() {
82 StyledTextContent doc= widget.getContent();
83 int docLength= doc.getCharCount();
85 widget.setCaretOffset(docLength);
86 widget.showSelection();
90 public void setFocus() {
94 private Action copyAction = new Action() {
99 private Action selectAllAction = new Action() {
104 private Action clearAction = new Action() {
106 widget.setText(""); //$NON-NLS-1$