use of org.eclipse.ui.console.IConsole in project titan.EclipsePlug-ins by eclipse.
the class ConsoleWriter method findConsole.
/**
* Try to get a console with a given name. If a Console is not found
* a new console will be created
* @param name of the given console
* @return The Console
*/
private MessageConsole findConsole(final String name) {
ConsolePlugin plugin = ConsolePlugin.getDefault();
// Protection, Activator.stop exception...
if (plugin == null) {
return null;
}
IConsoleManager conMan = plugin.getConsoleManager();
IConsole[] existing = conMan.getConsoles();
for (IConsole anExisting : existing) {
if (name.equals(anExisting.getName())) {
return (MessageConsole) anExisting;
}
}
// no console found, so create a new one
MessageConsole myConsole = new MessageConsole(name, null);
conMan.addConsoles(new IConsole[] { myConsole });
return myConsole;
}
use of org.eclipse.ui.console.IConsole in project titan.EclipsePlug-ins by eclipse.
the class ExecutorMonitorView method createPartControl.
@Override
public void createPartControl(final Composite parent) {
viewer = new TreeViewer(parent, SWT.H_SCROLL | SWT.V_SCROLL);
contentProvider = new ExecutorMonitorContentProvider();
viewer.setContentProvider(contentProvider);
labelProvider = new ExecutorMonitorLabelProvider();
viewer.setLabelProvider(labelProvider);
createActions();
manager = new MenuManager("menuManager");
createEmptyContextMenu();
createToolBar();
Activator.setMainView(this);
viewer.setInput(getInitialInput());
viewer.expandToLevel(2);
updateActions();
getSite().setSelectionProvider(viewer);
launchListener = new LaunchesListener(this);
DebugPlugin.getDefault().getLaunchManager().addLaunchListener(launchListener);
selectionChangedListener = new ISelectionChangedListener() {
@Override
public void selectionChanged(final SelectionChangedEvent event) {
IStructuredSelection selection = (IStructuredSelection) event.getSelection();
ITreeLeaf element = (ITreeLeaf) selection.getFirstElement();
updateActions();
if (null == element) {
return;
}
if (element instanceof LaunchElement) {
createLauncherContextMenu();
} else if (element instanceof MainControllerElement) {
createExecutorContextMenu((MainControllerElement) element);
BaseExecutor executor = ((MainControllerElement) element).executor();
IProcess process = executor.getProcess();
if (null == process) {
return;
}
IConsole console = DebugUITools.getConsole(process);
if (null == console) {
return;
}
IConsole[] consoles = ConsolePlugin.getDefault().getConsoleManager().getConsoles();
boolean exists = false;
for (IConsole console2 : consoles) {
if (console2.equals(console)) {
exists = true;
}
}
if (!exists) {
ConsolePlugin.getDefault().getConsoleManager().addConsoles(new IConsole[] { console });
}
ConsolePlugin.getDefault().getConsoleManager().showConsoleView(console);
ConsolePlugin.getDefault().getConsoleManager().refresh(console);
} else {
createEmptyContextMenu();
}
}
};
viewer.addSelectionChangedListener(selectionChangedListener);
}
use of org.eclipse.ui.console.IConsole in project titan.EclipsePlug-ins by eclipse.
the class AstWalkerRunnerJava method findConsole.
private static MessageConsole findConsole(String name) {
ConsolePlugin plugin = ConsolePlugin.getDefault();
IConsoleManager conMan = plugin.getConsoleManager();
IConsole[] existing = conMan.getConsoles();
for (int i = 0; i < existing.length; i++) if (name.equals(existing[i].getName()))
return (MessageConsole) existing[i];
// no console found, so create a new one
MessageConsole myConsole = new MessageConsole(name, null);
conMan.addConsoles(new IConsole[] { myConsole });
return myConsole;
}
use of org.eclipse.ui.console.IConsole in project ow by vtst.
the class SoyCompilerLaunchConfigurationDelegate method addProcessListeners.
@Override
protected void addProcessListeners(final ILaunchConfiguration config, final Fixture fixture, IProcessListenerAcceptor acceptor) {
acceptor.acceptTerminationListener(new IProcessTerminationListener() {
public void terminated(IProcess process, int exitValue) {
IConsole console = DebugUITools.getConsole(process);
if (console instanceof IOConsole) {
IOConsole ioConsole = (IOConsole) console;
IOConsoleOutputStream stream = ioConsole.newOutputStream();
if (exitValue == 0) {
try {
stream.write(messages.getString("soy_compiler_success"));
stream.write("\n");
stream.flush();
for (IFile file : configHelper.getOutputFiles(config)) {
try {
file.refreshLocal(0, null);
} catch (CoreException e) {
}
}
} catch (IOException e) {
e.printStackTrace();
}
} else {
try {
stream.write(messages.getString("soy_compiler_error"));
stream.write("\n");
stream.flush();
} catch (IOException e) {
e.printStackTrace();
}
}
}
// try { fixture.outputFile.refreshLocal(0, null); } catch (CoreException e) {}
}
});
acceptor.acceptPatternMatchListener(new EasyPatternMatchListener() {
private Pattern pattern = Pattern.compile("Exception [^:]*com.google.template.soy.base.SoySyntaxException: " + "(In file ([^:]*)(:([0-9]+))?(, template [^:]*)?: )?(.*)");
@Override
public void connect(TextConsole console) {
super.connect(console);
try {
for (IMarker marker : fixture.inputFile.findMarkers(MARKER_TYPE, true, IResource.DEPTH_ZERO)) {
if (MARKER_SOURCE_ID.equals(marker.getAttribute(IMarker.SOURCE_ID))) {
marker.delete();
}
}
} catch (CoreException e) {
}
}
private void processLine(int offset, int length) throws BadLocationException {
String line = document.get(offset, length);
Matcher matcher = pattern.matcher(line);
if (matcher.matches()) {
String lineNumberAsString = matcher.group(4);
int lineNumber = (lineNumberAsString == null ? 1 : Integer.parseInt(lineNumberAsString));
String errorMessage = matcher.group(6);
IMarker marker;
try {
marker = fixture.inputFile.createMarker(MARKER_TYPE);
marker.setAttribute(IMarker.LINE_NUMBER, lineNumber);
marker.setAttribute(IMarker.MESSAGE, errorMessage);
marker.setAttribute(IMarker.PRIORITY, IMarker.PRIORITY_NORMAL);
marker.setAttribute(IMarker.SEVERITY, IMarker.SEVERITY_ERROR);
marker.setAttribute(IMarker.SOURCE_ID, MARKER_SOURCE_ID);
} catch (CoreException e) {
e.printStackTrace();
}
}
}
@Override
public void matchFound(PatternMatchEvent matchEvent) {
try {
processLine(matchEvent.getOffset(), matchEvent.getLength());
} catch (BadLocationException e) {
// This should never arise if the code is correct
}
}
@Override
public String getPattern() {
return ".+";
}
});
}
use of org.eclipse.ui.console.IConsole in project ow by vtst.
the class LessCompilerLaunchConfigurationDelegate method addProcessListeners.
protected void addProcessListeners(ILaunchConfiguration config, final Fixture fixture, IProcessListenerAcceptor acceptor) {
acceptor.acceptTerminationListener(new IProcessTerminationListener() {
public void terminated(IProcess process, int exitValue) {
IConsole console = DebugUITools.getConsole(process);
if (console instanceof IOConsole) {
IOConsole ioConsole = (IOConsole) console;
IOConsoleOutputStream stream = ioConsole.newOutputStream();
if (exitValue == 0) {
try {
stream.write(messages.getString("less_compiler_success"));
stream.write("\n");
stream.flush();
} catch (IOException e) {
e.printStackTrace();
}
/*
FileLink link = new FileLink(destinationFile, null, -1, -1, -1);
console.defaultStream.hyperlink(link, messages.getString("less_link_to_output"));
console.defaultStream.println();
*/
} else {
try {
stream.write(messages.getString("less_compiler_error"));
stream.write("\n");
stream.flush();
} catch (IOException e) {
e.printStackTrace();
}
}
}
try {
fixture.outputFile.refreshLocal(0, null);
} catch (CoreException e) {
}
}
});
acceptor.acceptPatternMatchListener(new EasyPatternMatchListener() {
private Pattern pattern = Pattern.compile("([0-9]+)( .*)");
private int numberOfLines = 0;
private int errorLineNumber = 0;
private String errorMessage = null;
@Override
public void connect(TextConsole console) {
super.connect(console);
try {
for (IMarker marker : fixture.inputFile.findMarkers(MARKER_TYPE, true, IResource.DEPTH_ZERO)) {
if (MARKER_SOURCE_ID.equals(marker.getAttribute(IMarker.SOURCE_ID))) {
marker.delete();
}
}
} catch (CoreException e) {
}
}
@Override
public void disconnect() {
if (errorLineNumber != 0 && errorMessage != null) {
try {
IMarker marker = fixture.inputFile.createMarker(MARKER_TYPE);
marker.setAttribute(IMarker.LINE_NUMBER, this.errorLineNumber);
marker.setAttribute(IMarker.MESSAGE, this.errorMessage);
marker.setAttribute(IMarker.PRIORITY, IMarker.PRIORITY_NORMAL);
marker.setAttribute(IMarker.SEVERITY, IMarker.SEVERITY_ERROR);
marker.setAttribute(IMarker.SOURCE_ID, MARKER_SOURCE_ID);
} catch (CoreException e) {
e.printStackTrace();
}
}
}
private void processLine(int offset, int length) throws BadLocationException {
String line = document.get(offset, length);
Matcher matcher = pattern.matcher(line);
if (matcher.matches()) {
this.numberOfLines++;
int lineNumber = Integer.parseInt(matcher.group(1));
if (this.numberOfLines <= 2)
errorLineNumber = lineNumber;
FileLink link = new FileLink(fixture.inputFile, null, -1, -1, lineNumber);
console.addHyperlink(link, offset, matcher.group(1).length());
} else {
if (this.numberOfLines == 0)
errorMessage = line;
}
}
@Override
public void matchFound(PatternMatchEvent matchEvent) {
try {
processLine(matchEvent.getOffset(), matchEvent.getLength());
} catch (BadLocationException e) {
// This should never arise if the code is correct
}
}
@Override
public String getPattern() {
return ".+";
}
});
}
Aggregations