package mj.ocraptor.events;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import org.apache.log4j.Logger;
import mj.ocraptor.database.DBFileStatus;
import mj.ocraptor.database.search.LuceneResult;
import mj.ocraptor.javafx.GUIController;
public class EventManager extends EventAbstr {
private static EventManager instance;
private List<EventAbstr> eventHandlers;
private Logger parentLogger;
// ------------------------------------------------ //
// --
// ------------------------------------------------ //
/**
*
*/
private EventManager() {
this.eventHandlers = new ArrayList<EventAbstr>();
this.eventHandlers.add(new EventConsole());
}
/**
*
*
*/
public void addGUIHandler() {
if (instance == null) {
throw new NullPointerException();
}
if (GUIController.instance() != null) {
this.eventHandlers.add(new EventGUI());
}
}
/**
*
*
* @return
*/
public static EventManager instance() {
if (instance == null) {
instance = new EventManager();
}
return instance;
}
/**
* @return the eventHandlers
*/
public List<EventAbstr> getEventHandlers() {
return eventHandlers;
}
/**
*
*
*/
public void initLoggerAppender() {
if (this.parentLogger == null) {
throw new NullPointerException();
}
for (EventAbstr handler : this.eventHandlers)
handler.initLoggerAppender(this.parentLogger);
}
/**
*
*
*/
public void printFolderFinished() {
for (EventAbstr handler : this.eventHandlers)
handler.printProcess(null, 0L, 0L, true, null);
}
// ------------------------------------------------ //
// --
// ------------------------------------------------ //
@Override
public void configFileNotFound(File invalidFile) {
for (EventAbstr handler : this.eventHandlers)
handler.configFileNotFound(invalidFile);
}
@Override
public void startCountingFiles() {
for (EventAbstr handler : this.eventHandlers)
handler.startCountingFiles();
}
@Override
public void countingFiles(Long currentCount, boolean finalCount) {
for (EventAbstr handler : this.eventHandlers) {
handler.countingFiles(currentCount, finalCount);
}
}
@Override
public void configFileNameInvalid() {
for (EventAbstr handler : this.eventHandlers)
handler.configFileNameInvalid();
}
@Override
public void propertiesFileAlreadyExists() {
for (EventAbstr handler : this.eventHandlers)
handler.propertiesFileAlreadyExists();
}
@Override
public void printProcess(File file, Long filesCount, Long processedCount, boolean finalCount,
DBFileStatus status) {
for (EventAbstr handler : this.eventHandlers)
handler.printProcess(file, filesCount, processedCount, finalCount, status);
}
@Override
public void cancelingIndexing() {
for (EventAbstr handler : this.eventHandlers)
handler.cancelingIndexing();
}
@Override
public void printResult(LuceneResult results, String contentSearch, Integer idToShow,
int maxSnippetLength) {
for (EventAbstr handler : this.eventHandlers)
handler.printResult(results, contentSearch, idToShow, maxSnippetLength);
}
/**
*
*
* @param value
*/
public void searchProgressIndicator(double value) {
this.searchProgressIndicator(value, null);
}
@Override
public void searchProgressIndicator(double value, String text) {
for (EventAbstr handler : this.eventHandlers)
handler.searchProgressIndicator(value, text);
}
@Override
public void initLoggerAppender(Logger logger) {
this.parentLogger = logger;
this.initLoggerAppender();
}
@Override
public void failedToProcessFile(String error, String filePath) {
for (EventAbstr handler : this.eventHandlers)
handler.failedToProcessFile(error, filePath);
}
@Override
public void removingMissingFiles(Integer filesDeleted, Integer filesToLookAt) {
for (EventAbstr handler : this.eventHandlers)
handler.removingMissingFiles(filesDeleted, filesToLookAt);
}
@Override
public void databaseConnectError(Exception e, String dataPath) {
for (EventAbstr handler : this.eventHandlers)
handler.databaseConnectError(e, dataPath);
}
@Override
public void ocrEngineDeployError(Exception e) {
for (EventAbstr handler : this.eventHandlers)
handler.ocrEngineDeployError(e);
}
@Override
public void serverStarted() {
for (EventAbstr handler : this.eventHandlers)
handler.serverStarted();
}
@Override
public void serverProblem(final Exception e) {
for (EventAbstr handler : this.eventHandlers)
handler.serverProblem(e);
}
@Override
public void cantConnectToClients() {
for (EventAbstr handler : this.eventHandlers)
handler.cantConnectToClients();
}
}