X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.scl.ui%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fui%2Fconsole%2FSCLScriptConsoleView.java;fp=bundles%2Forg.simantics.scl.ui%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fui%2Fconsole%2FSCLScriptConsoleView.java;h=8df0caa36a4a70da262e12c22d15131394fdad60;hb=d1c23bec0b9900d92fc522429ef5476757a2af93;hp=0000000000000000000000000000000000000000;hpb=4bb82aede02d798846196cc4f51e09d9f9161fef;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/console/SCLScriptConsoleView.java b/bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/console/SCLScriptConsoleView.java new file mode 100644 index 000000000..8df0caa36 --- /dev/null +++ b/bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/console/SCLScriptConsoleView.java @@ -0,0 +1,76 @@ +package org.simantics.scl.ui.console; + +import org.eclipse.jface.action.Action; +import org.eclipse.jface.action.IToolBarManager; +import org.eclipse.swt.SWT; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.ui.part.ViewPart; +import org.simantics.scl.compiler.commands.SCLConsoleListener; +import org.simantics.scl.runtime.reporting.SCLReportingHandler; + +/** + * @author Tuukka Lehtonen + * @since 1.31.0 + */ +public class SCLScriptConsoleView extends ViewPart { + + static class SCLOutputConsole extends SCLConsole { + public SCLOutputConsole(Composite parent, int style) { + super(parent, style, AbstractCommandConsole.HIDE_INPUT); + } + + @Override + protected void addContributedListeners() { + } + } + + SCLOutputConsole console; + + @Override + public void createPartControl(Composite parent) { + this.console = new SCLOutputConsole(parent, SWT.NONE); + + IToolBarManager toolBarManager = getViewSite().getActionBars().getToolBarManager(); + Action interruptAction = ConsoleActions.createInterruptAction(console); + Action clearAction = ConsoleActions.createClearAction(console); + toolBarManager.add(interruptAction); + toolBarManager.add(clearAction); + + console.addListener(new SCLConsoleListener() { + @Override + public void startedExecution() { + interruptAction.setEnabled(true); + } + @Override + public void finishedExecution() { + interruptAction.setEnabled(false); + } + @Override + public void consoleIsNotEmptyAnymore() { + clearAction.setEnabled(true); + } + }); + + toolBarManager.update(true); + } + + @Override + public void setFocus() { + console.setFocus(); + } + + @Override + public void dispose() { + super.dispose(); + console.dispose(); + } + + @SuppressWarnings("unchecked") + @Override + public T getAdapter(Class adapter) { + if (adapter == SCLReportingHandler.class) + return (T) console.getHandler(); + return super.getAdapter(adapter); + } + +}