Package org.erlide.debug.ui.tracing

Source Code of org.erlide.debug.ui.tracing.DebugTraceDebugModelPresentation

package org.erlide.debug.ui.tracing;

import org.eclipse.core.resources.IFile;
import org.eclipse.debug.core.DebugException;
import org.eclipse.debug.core.model.ILineBreakpoint;
import org.eclipse.debug.core.model.IValue;
import org.eclipse.debug.ui.IDebugModelPresentation;
import org.eclipse.debug.ui.IValueDetailListener;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.part.FileEditorInput;
import org.erlide.backend.debug.model.ErlangStackFrame;
import org.erlide.ui.editors.erl.ErlangEditor;

public class DebugTraceDebugModelPresentation extends LabelProvider implements
        IDebugModelPresentation {

    public static final String ID = "org.erlide.debug.trace.model";

    @Override
    public void computeDetail(final IValue value, final IValueDetailListener listener) {
        String detail = "";
        try {
            detail = value.getValueString();
        } catch (final DebugException e) {
        }
        listener.detailComputed(value, detail);
    }

    @Override
    public void setAttribute(final String attribute, final Object value) {
    }

    @Override
    public String getEditorId(final IEditorInput input, final Object element) {
        if (element instanceof IFile || element instanceof ILineBreakpoint) {
            return ErlangEditor.ERLANG_EDITOR_ID;
        }
        return null;
    }

    @Override
    public IEditorInput getEditorInput(final Object element) {

        if (element instanceof IFile) {
            return new FileEditorInput((IFile) element);
        }
        if (element instanceof ILineBreakpoint) {
            return new FileEditorInput((IFile) ((ILineBreakpoint) element).getMarker()
                    .getResource());
        }
        return null;
    }

    @Override
    public String getText(final Object element) {
        if (element instanceof DebugTraceTarget) {
            return getTargetText((DebugTraceTarget) element);
        } else if (element instanceof DebugTraceProcess) {
            return getDebugTraceProcessText((DebugTraceProcess) element);
        } else if (element instanceof ErlangStackFrame) {
            return getErlangStackFrameText((ErlangStackFrame) element);
        }
        return null;
    }

    private String getErlangStackFrameText(final ErlangStackFrame element) {
        return element.toString();
    }

    private String getDebugTraceProcessText(final DebugTraceProcess element) {
        return element.toString();
    }

    private String getTargetText(final DebugTraceTarget element) {
        return element.toString();
    }

}
TOP

Related Classes of org.erlide.debug.ui.tracing.DebugTraceDebugModelPresentation

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.