eclipse plugin: prevent opening multiple console for the same thing.
instead return the already created one
This commit is contained in:
parent
c2d7bfe22d
commit
a40747f5e0
2 changed files with 33 additions and 4 deletions
|
@ -8,9 +8,15 @@
|
|||
*******************************************************************************/
|
||||
package wesnoth_eclipse_plugin.handlers;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
|
||||
import org.eclipse.core.commands.AbstractHandler;
|
||||
import org.eclipse.core.commands.ExecutionEvent;
|
||||
import org.eclipse.core.commands.ExecutionException;
|
||||
import org.eclipse.ui.console.MessageConsole;
|
||||
|
||||
import wesnoth_eclipse_plugin.utils.GUIUtils;
|
||||
|
||||
/**
|
||||
* Here it goes testing stuff in the plugin ( For DEBUG ONLY!)
|
||||
|
@ -21,6 +27,16 @@ public class TestHandler extends AbstractHandler
|
|||
@Override
|
||||
public Object execute(ExecutionEvent event) throws ExecutionException
|
||||
{
|
||||
try
|
||||
{
|
||||
MessageConsole con = GUIUtils.createConsole("BB", null, true);
|
||||
OutputStream s = con.newMessageStream();
|
||||
s.write("AAAAAAAAAAAAAA".getBytes());
|
||||
}
|
||||
catch (IOException e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
}
|
||||
// try
|
||||
// {
|
||||
// IProject proj = WorkspaceUtils.getSelectedProject();
|
||||
|
|
|
@ -14,6 +14,7 @@ import org.eclipse.swt.widgets.MessageBox;
|
|||
import org.eclipse.ui.IWorkbenchWindow;
|
||||
import org.eclipse.ui.console.ConsolePlugin;
|
||||
import org.eclipse.ui.console.IConsole;
|
||||
import org.eclipse.ui.console.IConsoleManager;
|
||||
import org.eclipse.ui.console.MessageConsole;
|
||||
|
||||
import wesnoth_eclipse_plugin.Logger;
|
||||
|
@ -116,12 +117,24 @@ public class GUIUtils
|
|||
public static MessageConsole createConsole(String consoleTitle,
|
||||
ImageDescriptor imageDescriptor, boolean activate)
|
||||
{
|
||||
MessageConsole console = new MessageConsole(consoleTitle, imageDescriptor);
|
||||
MessageConsole console = null;
|
||||
IConsoleManager conMan = ConsolePlugin.getDefault().getConsoleManager();
|
||||
IConsole[] existing = conMan.getConsoles();
|
||||
for (int i = 0; i < existing.length; i++)
|
||||
if (consoleTitle.equals(existing[i].getName()))
|
||||
{
|
||||
console = (MessageConsole) existing[i];
|
||||
console.clearConsole();
|
||||
break;
|
||||
}
|
||||
|
||||
if (console == null) // console not found
|
||||
{
|
||||
console = new MessageConsole(consoleTitle, imageDescriptor);
|
||||
conMan.addConsoles(new IConsole[] { console });
|
||||
}
|
||||
if (activate)
|
||||
console.activate();
|
||||
ConsolePlugin.getDefault().getConsoleManager().addConsoles(new IConsole[] { console });
|
||||
//TODO: create a single console and add pages instead?
|
||||
//MessageConsoleStream stream = console.newMessageStream();
|
||||
return console;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue