2009年6月27日

Eclipse create console view

EclipseZone - How to create console view IOConsole

New Plug-in Project
Template -> Hello RCP

Open plugin.xml
Add org.eclipse.ui.console Dependency

// -- Edit Activator.java import package --
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.util.Timer;
import java.util.TimerTask;

import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.console.ConsolePlugin;
import org.eclipse.ui.console.IConsole;
import org.eclipse.ui.console.IConsoleManager;
import org.eclipse.ui.console.IOConsole;
import org.eclipse.ui.console.IOConsoleInputStream;
import org.eclipse.ui.console.IOConsoleOutputStream;
import org.eclipse.ui.console.MessageConsole;
import org.eclipse.ui.console.MessageConsoleStream;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.osgi.framework.BundleContext;

// -- Edit Activator.java start method --
public void start(BundleContext context) throws Exception {
super.start(context);
plugin = this;

ConsolePlugin consolePlugin = ConsolePlugin.getDefault();
final IConsoleManager consoleManager = consolePlugin.getConsoleManager();

// Run MessageConsole
TimerTask timerTask = new TimerTask() {

public void run() {
MessageConsole msgConsole = new MessageConsole("MessageConsole", null);
IConsole[] consoles = new IConsole[]{msgConsole};
consoleManager.addConsoles(consoles);
consoleManager.showConsoleView(msgConsole);

MessageConsoleStream ms = msgConsole.newMessageStream();
ms.println("Hello World");
ms.println("MessageConsole");
}

};
Timer timer = new Timer();
timer.schedule(timerTask, 1000);

// Run IOConsole
Job job = new Job("Run IOConsole") {

protected IStatus run(IProgressMonitor monitor) {
IOConsole console = new IOConsole("IOConsole", null);
IConsole[] consoles = new IConsole[]{console};
consoleManager.addConsoles(consoles);
consoleManager.showConsoleView(console);

Display display = getWorkbench().getDisplay();

IOConsoleOutputStream os = console.newOutputStream();
os.setColor(new Color(display, 0, 200, 0));

IOConsoleInputStream is = console.getInputStream();
is.setColor(new Color(display, 0, 0, 255));

PrintStream ps = new PrintStream(os);
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line = null;
try {
ps.println("Input Text:");
while((line = br.readLine()) != null) {
ps.println(line);
}
} catch (IOException e) {
ps.close();
}
return Status.OK_STATUS;
}

};
job.setSystem(true);
job.schedule(5000);
}

// -- Run Eclipse Application --

沒有留言:

網誌存檔