| Creating a console view in the RCP Application [message #660096] |
Wed, 16 March 2011 15:11  |
Prithviraj Patil Messages: 10 Registered: February 2011 |
Junior Member |
|
|
Hi.
I am new to RCP and am trying to add a console view, similar to the one in Eclipse in my RCP Application. I am unable to add the console itself. I want to display the log contents generated by log4j in it.
Currently I have tried 2 methods to add a console view, however to no avail.
1. I added the following to my Perspective.java class
MessageConsole myConsole = new MessageConsole("Console", Activator
.getImageDescriptor("icons/book.png"));
ConsolePlugin.getDefault().getConsoleManager()
.addConsoles(new IConsole[] { myConsole });
final MessageConsoleStream stream = myConsole.newMessageStream();
final PrintStream myS = new PrintStream(stream);
System.setOut(myS);
System.setErr(myS);
2. This is a piece of code I came across on one forum. the displayConsoleView is returning 'false'.
error received : Could not create view: org.eclipse.ui.console.ConsoleView
Do I have to create a view in the extensions of my application first? or should this be created at runtime?
package org.taf.ui;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.text.IDocument;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.console.ConsolePlugin;
import org.eclipse.ui.console.IConsole;
import org.eclipse.ui.console.IConsoleConstants;
import org.eclipse.ui.console.MessageConsole;
import org.eclipse.ui.console.MessageConsoleStream;
/**
* Create an instance of this class in any of your plugin classes.
*
* Use it as follows ...
*
* ConsoleDisplayMgr.getDefault().println("Some error msg",
* ConsoleDisplayMgr.MSG_ERROR); ... ... ConsoleDisplayMgr.getDefault().clear();
* ...
*/
public class ConsoleDisplayMgr {
private static ConsoleDisplayMgr fDefault = null;
private String fTitle = null;
private MessageConsole fMessageConsole = null;
public static final int MSG_INFORMATION = 1;
public static final int MSG_ERROR = 2;
public static final int MSG_WARNING = 3;
public ConsoleDisplayMgr(String messageTitle) {
fDefault = this;
fTitle = messageTitle;
}
public static ConsoleDisplayMgr getDefault() {
return fDefault;
}
public void println(String msg, int msgKind) {
if (msg == null)
return;
if (!displayConsoleView()) {
MessageDialog.openError(PlatformUI.getWorkbench()
.getActiveWorkbenchWindow().getShell(), "Error", msg);
return;
}
getNewMessageConsoleStream(msgKind).println(msg);
}
public void clear() {
IDocument document = getMessageConsole().getDocument();
if (document != null) {
document.set("");
}
}
public boolean displayConsoleView() {
try {
IWorkbenchWindow activeWorkbenchWindow = PlatformUI.getWorkbench()
.getActiveWorkbenchWindow();
if (activeWorkbenchWindow != null) {
IWorkbenchPage activePage = activeWorkbenchWindow
.getActivePage();
PlatformUI
.getWorkbench()
.getActiveWorkbenchWindow()
.getActivePage()
.showView(IConsoleConstants.ID_CONSOLE_VIEW, null,
IWorkbenchPage.VIEW_VISIBLE);
if (activePage != null)
activePage.showView(IConsoleConstants.ID_CONSOLE_VIEW,
null, IWorkbenchPage.VIEW_VISIBLE);
}
} catch (PartInitException partEx) {
return false;
}
return true;
}
private MessageConsoleStream getNewMessageConsoleStream(int msgKind) {
int swtColorId = SWT.COLOR_DARK_GREEN;
switch (msgKind) {
case MSG_INFORMATION:
swtColorId = SWT.COLOR_DARK_GREEN;
break;
case MSG_ERROR:
swtColorId = SWT.COLOR_DARK_MAGENTA;
break;
case MSG_WARNING:
swtColorId = SWT.COLOR_DARK_BLUE;
break;
default:
}
MessageConsoleStream msgConsoleStream = getMessageConsole()
.newMessageStream();
msgConsoleStream.setColor(Display.getCurrent().getSystemColo r(
swtColorId));
return msgConsoleStream;
}
private MessageConsole getMessageConsole() {
if (fMessageConsole == null)
createMessageConsoleStream(fTitle);
return fMessageConsole;
}
private void createMessageConsoleStream(String title) {
fMessageConsole = new MessageConsole(title, null);
ConsolePlugin.getDefault().getConsoleManager()
.addConsoles(new IConsole[] { fMessageConsole });
}
}
|
|
|