blob: ccf6a2f918e0a032d983d3cdbfccdd1b33cda65d [file] [log] [blame]
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;
}
}