]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/console/SCLScriptConsoleView.java
Made SCL Console font configurable through preferences
[simantics/platform.git] / bundles / org.simantics.scl.ui / src / org / simantics / scl / ui / console / SCLScriptConsoleView.java
1 package org.simantics.scl.ui.console;
2
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.widgets.Composite;
7 import org.eclipse.ui.part.ViewPart;
8 import org.simantics.scl.compiler.commands.SCLConsoleListener;
9 import org.simantics.scl.runtime.reporting.SCLReportingHandler;
10
11 /**
12  * @author Tuukka Lehtonen
13  * @since 1.31.0
14  */
15 public class SCLScriptConsoleView extends ViewPart {
16
17     private SCLConsole console;
18
19     @Override
20     public void createPartControl(Composite parent) {
21         this.console = new SCLConsole(parent, SWT.NONE,
22                 AbstractCommandConsole.HIDE_INPUT | SCLConsole.EXCLUDE_CONTRIBUTED_LISTENERS);
23
24         IToolBarManager toolBarManager = getViewSite().getActionBars().getToolBarManager();
25         Action interruptAction = ConsoleActions.createInterruptAction(console);
26         Action clearAction = ConsoleActions.createClearAction(console);
27         toolBarManager.add(interruptAction);
28         toolBarManager.add(clearAction);
29
30         console.addListener(new SCLConsoleListener() {
31             @Override
32             public void startedExecution() {
33                 interruptAction.setEnabled(true);
34             }
35             @Override
36             public void finishedExecution() {
37                 interruptAction.setEnabled(false);
38             }
39             @Override
40             public void consoleIsNotEmptyAnymore() {
41                 clearAction.setEnabled(true);
42             }
43         });
44
45         toolBarManager.update(true);
46     }
47
48     @Override
49     public void setFocus() {
50         console.setFocus();
51     }
52
53     @Override
54     public void dispose() {
55         super.dispose();
56         console.dispose();
57     }
58
59     @SuppressWarnings("unchecked")
60     @Override
61     public <T> T getAdapter(Class<T> adapter) {
62         if (adapter == SCLReportingHandler.class)
63             return (T) console.getHandler();
64         return super.getAdapter(adapter);
65     }
66
67 }