Search in sources :

Example 6 with IOConsole

use of org.eclipse.ui.console.IOConsole in project netxms by netxms.

the class ScriptingConsole method createPartControl.

/* (non-Javadoc)
	 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
	 */
@Override
public void createPartControl(Composite parent) {
    console = new IOConsole("Console", Activator.getImageDescriptor("icons/console.png"));
    viewer = new TextConsoleViewer(parent, console);
    viewer.setEditable(true);
    viewer.addSelectionChangedListener(new ISelectionChangedListener() {

        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            actionCopy.setEnabled(viewer.canDoOperation(TextConsoleViewer.COPY));
        }
    });
    createActions();
    contributeToActionBars();
    createPopupMenu();
    activateContext();
    createInterpreter();
    runInterpreter();
}
Also used : TextConsoleViewer(org.eclipse.ui.console.TextConsoleViewer) ISelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener) SelectionChangedEvent(org.eclipse.jface.viewers.SelectionChangedEvent) IOConsole(org.eclipse.ui.console.IOConsole)

Example 7 with IOConsole

use of org.eclipse.ui.console.IOConsole in project sts4 by spring-projects.

the class ConsoleUtil method add.

private void add(IOConsole console) {
    IOConsole toClose = null;
    synchronized (history) {
        history.addLast(console);
        if (history.size() > MAX_SIZE) {
            toClose = history.removeFirst();
        }
    }
    if (toClose != null) {
        close(toClose);
    }
    console.activate();
    ConsolePlugin.getDefault().getConsoleManager().addConsoles(new IConsole[] { console });
}
Also used : IOConsole(org.eclipse.ui.console.IOConsole)

Example 8 with IOConsole

use of org.eclipse.ui.console.IOConsole in project linuxtools by eclipse.

the class PerfLaunchConfigDelegate method launch.

@Override
public void launch(ILaunchConfiguration config, String mode, ILaunch launch, IProgressMonitor monitor) throws CoreException {
    try {
        ConfigUtils configUtils = new ConfigUtils(config);
        project = configUtils.getProject();
        // Set the current project that will be profiled
        PerfPlugin.getDefault().setProfiledProject(project);
        // check if Perf exists in $PATH
        if (!PerfCore.checkPerfInPath(project)) {
            // $NON-NLS-1$
            IStatus status = new Status(IStatus.ERROR, PerfPlugin.PLUGIN_ID, "Error: Perf was not found on PATH");
            throw new CoreException(status);
        }
        URI workingDirURI = new URI(config.getAttribute(RemoteProxyCMainTab.ATTR_REMOTE_WORKING_DIRECTORY_NAME, EMPTY_STRING));
        // Local project
        if (workingDirURI.toString().equals(EMPTY_STRING)) {
            workingDirURI = getWorkingDirectory(config).toURI();
            workingDirPath = Path.fromPortableString(workingDirURI.getPath());
            binPath = CDebugUtils.verifyProgramPath(config);
        } else {
            workingDirPath = Path.fromPortableString(workingDirURI.getPath() + IPath.SEPARATOR);
            URI binURI = new URI(configUtils.getExecutablePath());
            binPath = Path.fromPortableString(binURI.getPath().toString());
        }
        PerfPlugin.getDefault().setWorkingDir(workingDirPath);
        if (config.getAttribute(PerfPlugin.ATTR_ShowStat, PerfPlugin.ATTR_ShowStat_default)) {
            showStat(config, launch);
        } else {
            String perfPathString = RuntimeProcessFactory.getFactory().whichCommand(PerfPlugin.PERF_COMMAND, project);
            IFileStore workingDir;
            RemoteConnection workingDirRC = new RemoteConnection(workingDirURI);
            IRemoteFileProxy workingDirRFP = workingDirRC.getRmtFileProxy();
            workingDir = workingDirRFP.getResource(workingDirURI.getPath());
            // Build the commandline string to run perf recording the given project
            // Program args from launch config.
            String[] arguments = getProgramArgumentsArray(config);
            ArrayList<String> command = new ArrayList<>(4 + arguments.length);
            // Get the base commandline string (with flags/options based on config)
            command.addAll(Arrays.asList(PerfCore.getRecordString(config)));
            // Add the path to the executable
            command.add(binPath.toPortableString());
            command.set(0, perfPathString);
            command.add(2, OUTPUT_STR + PerfPlugin.PERF_DEFAULT_DATA);
            // Compile string
            command.addAll(Arrays.asList(arguments));
            // Spawn the process
            String[] commandArray = command.toArray(new String[command.size()]);
            Process pProxy = RuntimeProcessFactory.getFactory().exec(commandArray, getEnvironment(config), workingDir, project);
            // $NON-NLS-1$
            MessageConsole console = new MessageConsole("Perf Console", null);
            console.activate();
            ConsolePlugin.getDefault().getConsoleManager().addConsoles(new IConsole[] { console });
            MessageConsoleStream stream = console.newMessageStream();
            if (pProxy != null) {
                try (BufferedReader error = new BufferedReader(new InputStreamReader(pProxy.getErrorStream()))) {
                    String err = error.readLine();
                    while (err != null) {
                        stream.println(err);
                        err = error.readLine();
                    }
                }
            }
            /* This commented part is the basic method to run perf record without integrating into eclipse.
                        String binCall = exePath.toOSString();
                        for(String arg : arguments) {
                            binCall.concat(" " + arg);
                        }
                        PerfCore.Run(binCall);*/
            pProxy.destroy();
            PrintStream print = null;
            if (config.getAttribute(IDebugUIConstants.ATTR_CAPTURE_IN_CONSOLE, true)) {
                // Get the console to output to.
                // This may not be the best way to accomplish this but it shall do for now.
                ConsolePlugin plugin = ConsolePlugin.getDefault();
                IConsoleManager conMan = plugin.getConsoleManager();
                IConsole[] existing = conMan.getConsoles();
                IOConsole binaryOutCons = null;
                // Find the console
                for (IConsole x : existing) {
                    if (x.getName().contains(renderProcessLabel(commandArray[0]))) {
                        binaryOutCons = (IOConsole) x;
                    }
                }
                if ((binaryOutCons == null) && (existing.length != 0)) {
                    // if can't be found get the most recent opened, this should probably never happen.
                    if (existing[existing.length - 1] instanceof IOConsole)
                        binaryOutCons = (IOConsole) existing[existing.length - 1];
                }
                // Get the printstream via the outputstream.
                // Get ouput stream
                OutputStream outputTo;
                if (binaryOutCons != null) {
                    outputTo = binaryOutCons.newOutputStream();
                    // Get the printstream for that console
                    print = new PrintStream(outputTo);
                }
                for (int i = 0; i < command.size(); i++) {
                    // $NON-NLS-1$
                    print.print(command.get(i) + " ");
                }
                // Print Message
                print.println();
                // $NON-NLS-1$
                print.println("Analysing recorded perf.data, please wait...");
            // Possibly should pass this (the console reference) on to PerfCore.Report if theres anything we ever want to spit out to user.
            }
            PerfCore.report(config, workingDirPath, monitor, null, print);
            URI perfDataURI = null;
            IRemoteFileProxy proxy = null;
            perfDataURI = new URI(workingDirURI.toString() + IPath.SEPARATOR + PerfPlugin.PERF_DEFAULT_DATA);
            proxy = RemoteProxyManager.getInstance().getFileProxy(perfDataURI);
            IFileStore perfDataFileStore = proxy.getResource(perfDataURI.getPath());
            IFileInfo info = perfDataFileStore.fetchInfo();
            info.setAttribute(EFS.ATTRIBUTE_READ_ONLY, true);
            perfDataFileStore.putInfo(info, EFS.SET_ATTRIBUTES, null);
            PerfCore.refreshView(renderProcessLabel(binPath.toPortableString()));
            if (config.getAttribute(PerfPlugin.ATTR_ShowSourceDisassembly, PerfPlugin.ATTR_ShowSourceDisassembly_default)) {
                showSourceDisassembly(Path.fromPortableString(workingDirURI.toString() + IPath.SEPARATOR));
            }
        }
    } catch (IOException e) {
        e.printStackTrace();
        abort(e.getLocalizedMessage(), null, ICDTLaunchConfigurationConstants.ERR_INTERNAL_ERROR);
    } catch (RemoteConnectionException e) {
        e.printStackTrace();
        abort(e.getLocalizedMessage(), null, ICDTLaunchConfigurationConstants.ERR_INTERNAL_ERROR);
    } catch (URISyntaxException e) {
        e.printStackTrace();
        abort(e.getLocalizedMessage(), null, ICDTLaunchConfigurationConstants.ERR_INTERNAL_ERROR);
    }
}
Also used : IStatus(org.eclipse.core.runtime.IStatus) OutputStream(java.io.OutputStream) ConfigUtils(org.eclipse.linuxtools.profiling.launch.ConfigUtils) ArrayList(java.util.ArrayList) MessageConsoleStream(org.eclipse.ui.console.MessageConsoleStream) ConsolePlugin(org.eclipse.ui.console.ConsolePlugin) URISyntaxException(java.net.URISyntaxException) URI(java.net.URI) IRemoteFileProxy(org.eclipse.linuxtools.profiling.launch.IRemoteFileProxy) IStatus(org.eclipse.core.runtime.IStatus) Status(org.eclipse.core.runtime.Status) PrintStream(java.io.PrintStream) MessageConsole(org.eclipse.ui.console.MessageConsole) RemoteConnectionException(org.eclipse.linuxtools.profiling.launch.RemoteConnectionException) InputStreamReader(java.io.InputStreamReader) IConsole(org.eclipse.ui.console.IConsole) IOException(java.io.IOException) IConsoleManager(org.eclipse.ui.console.IConsoleManager) IFileInfo(org.eclipse.core.filesystem.IFileInfo) CoreException(org.eclipse.core.runtime.CoreException) BufferedReader(java.io.BufferedReader) IFileStore(org.eclipse.core.filesystem.IFileStore) RemoteConnection(org.eclipse.linuxtools.profiling.launch.RemoteConnection) IOConsole(org.eclipse.ui.console.IOConsole)

Example 9 with IOConsole

use of org.eclipse.ui.console.IOConsole in project whole by wholeplatform.

the class WholeOperationLaunchConfigurationDelegate method launch.

public void launch(ILaunchConfiguration configuration, String mode, ILaunch launch, IProgressMonitor monitor) throws CoreException {
    if (!"run".equals(mode))
        throw new CoreException(new Status(Status.CANCEL, PLUGIN_ID, 1, "Only 'run' mode supported by this launcher", null));
    String operationId = configuration.getAttribute(OPERATION_ID, (String) null);
    if (operationId == null)
        throw new CoreException(new Status(Status.CANCEL, PLUGIN_ID, 1, "No operation selected", null));
    String targetModelPath = configuration.getAttribute(TARGET_MODEL_PATH, (String) null);
    if (targetModelPath == null)
        throw new CoreException(new Status(Status.CANCEL, PLUGIN_ID, 1, "No target model selected", null));
    String targetModelPersistence = configuration.getAttribute(TARGET_MODEL_PERSISTENCE, (String) null);
    if (targetModelPersistence == null)
        throw new CoreException(new Status(Status.CANCEL, PLUGIN_ID, 1, "No persistence selected", null));
    try {
        monitor.beginTask("Executing " + operationId + " operation...", 100);
        if (monitor.isCanceled())
            return;
        IOperationProgressMonitor operationProgressMonitor = new OperationProgressMonitorAdapter(monitor);
        IFile targetModelFile = ResourcesPlugin.getWorkspace().getRoot().getFile(Path.fromPortableString(targetModelPath));
        IBindingManager bindings = BindingManagerFactory.instance.createBindingManager();
        ResourceUtils.defineResourceBindings(bindings, targetModelFile);
        IBindingScope scope = LaunchConfigurationUtils.loadBindingScope(configuration);
        bindings.wEnterScope(scope, true);
        IPersistenceKit persistenceKit = ReflectionFactory.getPersistenceKit(targetModelPersistence);
        IEntity model = persistenceKit.readModel(new IFilePersistenceProvider(targetModelFile));
        IOperationLauncher operationLauncher = OperationLauncherRegistry.instance.getOperationLauncher(operationId);
        InputStream is = System.in;
        OutputStream os = System.out;
        if (configuration.getAttribute(CONSOLE_VIEW, false)) {
            IOConsole ioConsole = WholeConsoleFactory.getIOConsole();
            is = ioConsole.getInputStream();
            os = ioConsole.newOutputStream();
        }
        operationLauncher.launch(model, bindings, is, os, operationProgressMonitor);
        if (configuration.getAttribute(PERSIST_CHANGES, false))
            persistenceKit.writeModel(model, new IFilePersistenceProvider(targetModelFile));
    } catch (Throwable t) {
        WholePlugin.log(t);
    } finally {
        monitor.done();
    }
}
Also used : Status(org.eclipse.core.runtime.Status) IFile(org.eclipse.core.resources.IFile) IEntity(org.whole.lang.model.IEntity) InputStream(java.io.InputStream) OutputStream(java.io.OutputStream) IOperationProgressMonitor(org.whole.lang.operations.IOperationProgressMonitor) CoreException(org.eclipse.core.runtime.CoreException) IBindingScope(org.whole.lang.bindings.IBindingScope) IBindingManager(org.whole.lang.bindings.IBindingManager) IFilePersistenceProvider(org.whole.lang.codebase.IFilePersistenceProvider) OperationProgressMonitorAdapter(org.whole.lang.operations.OperationProgressMonitorAdapter) IPersistenceKit(org.whole.lang.codebase.IPersistenceKit) IOConsole(org.eclipse.ui.console.IOConsole)

Example 10 with IOConsole

use of org.eclipse.ui.console.IOConsole in project whole by wholeplatform.

the class WholeConsoleFactory method getIOConsole.

public static IOConsole getIOConsole() {
    if (ioConsole == null) {
        ioConsole = new IOConsole(title, WHOLE_CONSOLE_TYPE, null);
        ConsolePlugin.getDefault().getConsoleManager().addConsoles(new IConsole[] { ioConsole });
    }
    return ioConsole;
}
Also used : IOConsole(org.eclipse.ui.console.IOConsole)

Aggregations

IOConsole (org.eclipse.ui.console.IOConsole)13 IConsole (org.eclipse.ui.console.IConsole)7 IOException (java.io.IOException)4 CoreException (org.eclipse.core.runtime.CoreException)4 IConsoleManager (org.eclipse.ui.console.IConsoleManager)4 IOConsoleOutputStream (org.eclipse.ui.console.IOConsoleOutputStream)4 ConsolePlugin (org.eclipse.ui.console.ConsolePlugin)3 OutputStream (java.io.OutputStream)2 Matcher (java.util.regex.Matcher)2 Pattern (java.util.regex.Pattern)2 IProcessTerminationListener (net.vtst.eclipse.easyxtext.ui.launching.EasyLaunchConfigurationDelegateUtils.IProcessTerminationListener)2 EasyPatternMatchListener (net.vtst.eclipse.easyxtext.ui.launching.EasyPatternMatchListener)2 IFile (org.eclipse.core.resources.IFile)2 IMarker (org.eclipse.core.resources.IMarker)2 Status (org.eclipse.core.runtime.Status)2 IProcess (org.eclipse.debug.core.model.IProcess)2 BadLocationException (org.eclipse.jface.text.BadLocationException)2 PatternMatchEvent (org.eclipse.ui.console.PatternMatchEvent)2 TextConsole (org.eclipse.ui.console.TextConsole)2 BufferedReader (java.io.BufferedReader)1