Package org.erlide.ui.console

Source Code of org.erlide.ui.console.ErlangConsole

/*******************************************************************************
* Copyright (c) 2009 Vlad Dumitrescu and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available
* at http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
*     Vlad Dumitrescu
*******************************************************************************/
package org.erlide.ui.console;

import org.eclipse.core.runtime.ListenerList;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.ui.console.IConsoleDocumentPartitioner;
import org.eclipse.ui.console.IConsoleView;
import org.eclipse.ui.console.TextConsole;
import org.eclipse.ui.part.IPageBookViewPage;
import org.erlide.backend.api.IBackend;
import org.erlide.runtime.shell.IBackendShell;
import org.erlide.ui.internal.ErlideUIPlugin;

public class ErlangConsole extends TextConsole implements IErlangConsole {
    private final IBackendShell shell;
    protected ListenerList consoleListeners;
    protected ErlangConsolePartitioner partitioner;
    private boolean stopped = false;
    private final IBackend backend;

    public ErlangConsole(final IBackend backend) {
        super(backend.getName(), null, null, true);
        this.backend = backend;

        shell = backend.getShell("main");
        consoleListeners = new ListenerList(ListenerList.IDENTITY);

        partitioner = new ErlangConsolePartitioner();
        getDocument().setDocumentPartitioner(partitioner);
        partitioner.connect(getDocument());
    }

    @Override
    public IPageBookViewPage createPage(final IConsoleView view) {
        final ErlangConsolePage erlangConsolePage = new ErlangConsolePage(view, this,
                backend);
        ErlideUIPlugin.getDefault().getErlConsoleManager()
                .addPage(this, erlangConsolePage);
        return erlangConsolePage;
    }

    @Override
    public IBackend getBackend() {
        return backend;
    }

    @Override
    public IBackendShell getShell() {
        return shell;
    }

    @Override
    public ImageDescriptor getImageDescriptor() {
        return null;
    }

    @Override
    public String getName() {
        String name = "Erlang: " + backend.getName();
        if (backend.isDebugging()) {
            name = name + " (debug)";
        }
        return name;
    }

    @Override
    public String getType() {
        return null;
    }

    @Override
    public void addPropertyChangeListener(final IPropertyChangeListener listener) {
    }

    @Override
    public void removePropertyChangeListener(final IPropertyChangeListener listener) {
    }

    // public void show() {
    // final IWorkbenchPage page = PlatformUI.getWorkbench()
    // .getActiveWorkbenchWindow().getActivePage();
    // final String id = IConsoleConstants.ID_CONSOLE_VIEW;
    // IConsoleView view;
    // try {
    // view = (IConsoleView) page.showView(id);
    // view.display(this);
    // } catch (final PartInitException e) {
    // ErlLogger.error(e);
    // }
    // }

    @Override
    protected IConsoleDocumentPartitioner getPartitioner() {
        return partitioner;
    }

    public void stop() {
        stopped = true;
    }

    public boolean isStopped() {
        return stopped;
    }

}
TOP

Related Classes of org.erlide.ui.console.ErlangConsole

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.