package org.eclipse.blockchain.ui.console; | |
import org.eclipse.blockchain.core.log.EthereumLogService; | |
import org.eclipse.blockchain.core.log.EthereumLogger; | |
import org.eclipse.ui.console.ConsolePlugin; | |
import org.eclipse.ui.console.IConsole; | |
import org.eclipse.ui.console.IConsoleFactory; | |
import org.eclipse.ui.console.IConsoleManager; | |
import org.eclipse.ui.console.MessageConsole; | |
/** | |
* @author PKI8COB | |
*/ | |
public class EtherConsoleFactory implements IConsoleFactory { | |
/** | |
* The only instance of this class | |
*/ | |
private static EtherConsoleFactory instance; | |
public final IConsoleManager consoleManager = ConsolePlugin.getDefault().getConsoleManager(); | |
private MessageConsole fConsole = null; | |
/** | |
* @return the only instance of this class. | |
*/ | |
public static synchronized EtherConsoleFactory getInstance() { | |
if (null == instance) { | |
instance = new EtherConsoleFactory(); | |
} | |
return instance; | |
} | |
@Override | |
public void openConsole() { | |
MessageConsole console = getConsole(); | |
boolean exists = false; | |
for (IConsole existingConsole : this.consoleManager.getConsoles()) { | |
if (console == existingConsole) { | |
exists = true; | |
} | |
} | |
if (!exists) { | |
this.consoleManager.addConsoles(new IConsole[] { console }); | |
} | |
EthereumLogService.INSTANCE.addIEthereumLogger(new EthereumLogger(getConsole())); | |
} | |
public MessageConsole getConsole() { | |
if (this.fConsole == null) { | |
this.fConsole = new MessageConsole("Eth Console", "ethConsole", null, true); | |
} | |
return this.fConsole; | |
} | |
} |