package jav.gui.events;
import jav.gui.events.cancel.CancelEvent;
import jav.gui.events.cancel.CancelEventGenerator;
import jav.gui.events.cancel.CancelEventSlot;
import jav.gui.events.concordance.ConcordanceEvent;
import jav.gui.events.concordance.ConcordanceEventGenerator;
import jav.gui.events.concordance.ConcordanceEventSlot;
import jav.gui.events.documentChanged.DocumentChangedEvent;
import jav.gui.events.documentChanged.DocumentChangedEventGenerator;
import jav.gui.events.documentChanged.DocumentChangedEventSlot;
import jav.gui.events.pageChanged.PageChangedEvent;
import jav.gui.events.pageChanged.PageChangedEventGenerator;
import jav.gui.events.pageChanged.PageChangedEventSlot;
import jav.gui.events.saved.SavedEvent;
import jav.gui.events.saved.SavedEventGenerator;
import jav.gui.events.saved.SavedEventSlot;
import jav.gui.events.tokenDeselection.TokenDeselectionEvent;
import jav.gui.events.tokenDeselection.TokenDeselectionEventGenerator;
import jav.gui.events.tokenDeselection.TokenDeselectionEventSlot;
import jav.gui.events.tokenMultiDeselection.TokenMultiDeselectionEvent;
import jav.gui.events.tokenMultiDeselection.TokenMultiDeselectionEventGenerator;
import jav.gui.events.tokenMultiDeselection.TokenMultiDeselectionEventSlot;
import jav.gui.events.tokenMultiSelection.TokenMultiSelectionEvent;
import jav.gui.events.tokenMultiSelection.TokenMultiSelectionEventGenerator;
import jav.gui.events.tokenMultiSelection.TokenMultiSelectionEventSlot;
import jav.gui.events.tokenNavigation.TokenNavigationEvent;
import jav.gui.events.tokenNavigation.TokenNavigationEventGenerator;
import jav.gui.events.tokenNavigation.TokenNavigationEventSlot;
import jav.gui.events.tokenSelection.TokenSelectionEvent;
import jav.gui.events.tokenSelection.TokenSelectionEventGenerator;
import jav.gui.events.tokenSelection.TokenSelectionEventSlot;
import jav.gui.events.tokenStatus.TokenStatusEvent;
import jav.gui.events.tokenStatus.TokenStatusEventGenerator;
import jav.gui.events.tokenStatus.TokenStatusEventSlot;
/**
*Copyright (c) 2012, IMPACT working group at the Centrum für Informations- und Sprachverarbeitung, University of Munich.
*All rights reserved.
*Redistribution and use in source and binary forms, with or without
*modification, are permitted provided that the following conditions are met:
*Redistributions of source code must retain the above copyright
*notice, this list of conditions and the following disclaimer.
*Redistributions in binary form must reproduce the above copyright
*notice, this list of conditions and the following disclaimer in the
*documentation and/or other materials provided with the distribution.
*THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
*IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
*TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
*PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
*HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
*SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
*LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
*DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
*THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
*(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
*OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* This file is part of the ocr-postcorrection tool developed
* by the IMPACT working group at the Centrum für Informations- und Sprachverarbeitung, University of Munich.
* For further information and contacts visit http://ocr.cis.uni-muenchen.de/
*
* @author thorsten (thorsten.vobl@googlemail.com)
*/
public class MessageCenter {
private static MessageCenter instance;
private DocumentChangedEventGenerator documentChangedEventGenerator;
private TokenSelectionEventGenerator tokenSelectionEventGenerator;
private PageChangedEventGenerator pageChangedEventGenerator;
private TokenStatusEventGenerator tokenStatusEventGenerator;
private TokenDeselectionEventGenerator tokenDeselectionEventGenerator;
private SavedEventGenerator savedEventGenerator;
private ConcordanceEventGenerator concordanceEventGenerator;
private TokenNavigationEventGenerator tokenNavigationEventGenerator;
private TokenMultiSelectionEventGenerator tokenMultiSelectionEventGenerator;
private TokenMultiDeselectionEventGenerator tokenMultiDeselectionEventGenerator;
private CancelEventGenerator cancelEventGenerator;
private MessageCenter() {
documentChangedEventGenerator = new DocumentChangedEventGenerator();
tokenSelectionEventGenerator = new TokenSelectionEventGenerator();
pageChangedEventGenerator = new PageChangedEventGenerator();
tokenStatusEventGenerator = new TokenStatusEventGenerator();
tokenDeselectionEventGenerator = new TokenDeselectionEventGenerator();
savedEventGenerator = new SavedEventGenerator();
concordanceEventGenerator = new ConcordanceEventGenerator();
tokenNavigationEventGenerator = new TokenNavigationEventGenerator();
tokenMultiSelectionEventGenerator = new TokenMultiSelectionEventGenerator();
tokenMultiDeselectionEventGenerator = new TokenMultiDeselectionEventGenerator();
cancelEventGenerator = new CancelEventGenerator();
}
public static MessageCenter getInstance() {
if (instance == null) {
instance = new MessageCenter();
}
return instance;
}
public void addDocumentChangedEventListener(final DocumentChangedEventSlot listener) {
Thread t = new Thread(new Runnable() {
@Override
public void run() {
documentChangedEventGenerator.addListener(listener);
}
});
t.start();
}
public void removeDocumentChangedEventListener(final DocumentChangedEventSlot listener) {
Thread t = new Thread(new Runnable() {
@Override
public void run() {
documentChangedEventGenerator.removeListener(listener);
}
});
t.start();
}
public void fireDocumentChangedEvent(DocumentChangedEvent e) {
documentChangedEventGenerator.fireEvent(e);
}
public void addPageChangedEventListener(final PageChangedEventSlot listener) {
Thread t = new Thread(new Runnable() {
@Override
public void run() {
pageChangedEventGenerator.addListener(listener);
}
});
t.start();
}
public void removePageChangedEventListener(final PageChangedEventSlot listener) {
Thread t = new Thread(new Runnable() {
@Override
public void run() {
pageChangedEventGenerator.removeListener(listener);
}
});
t.start();
}
public void firePageChangedEvent(PageChangedEvent e) {
pageChangedEventGenerator.fireEvent(e);
}
public void addTokenSelectionEventListener(final TokenSelectionEventSlot listener) {
Thread t = new Thread(new Runnable() {
@Override
public void run() {
tokenSelectionEventGenerator.addListener(listener);
}
});
t.start();
}
public void removeTokenSelectionEventListener(final TokenSelectionEventSlot listener) {
Thread t = new Thread(new Runnable() {
@Override
public void run() {
tokenSelectionEventGenerator.removeListener(listener);
}
});
t.start();
}
public void fireTokenSelectionEvent(TokenSelectionEvent e) {
tokenSelectionEventGenerator.fireEvent(e);
}
public void addTokenDeselectionEventListener(final TokenDeselectionEventSlot listener) {
Thread t = new Thread(new Runnable() {
@Override
public void run() {
tokenDeselectionEventGenerator.addListener(listener);
}
});
t.start();
}
public void removeTokenDeselectionEventListener(final TokenDeselectionEventSlot listener) {
Thread t = new Thread(new Runnable() {
@Override
public void run() {
tokenDeselectionEventGenerator.removeListener(listener);
}
});
t.start();
}
public void fireTokenDeselectionEvent(TokenDeselectionEvent e) {
tokenDeselectionEventGenerator.fireEvent(e);
}
public void addTokenStatusEventListener(final TokenStatusEventSlot listener) {
Thread t = new Thread(new Runnable() {
@Override
public void run() {
tokenStatusEventGenerator.addListener(listener);
}
});
t.start();
}
public void removeTokenStatusEventListener(final TokenStatusEventSlot listener) {
Thread t = new Thread(new Runnable() {
@Override
public void run() {
tokenStatusEventGenerator.removeListener(listener);
}
});
t.start();
}
public void fireTokenStatusEvent(TokenStatusEvent e) {
tokenStatusEventGenerator.fireEvent(e);
}
public void addSavedEventListener(final SavedEventSlot listener) {
Thread t = new Thread(new Runnable() {
@Override
public void run() {
savedEventGenerator.addListener(listener);
}
});
t.start();
}
public void removeSavedEventListener(final SavedEventSlot listener) {
Thread t = new Thread(new Runnable() {
@Override
public void run() {
savedEventGenerator.removeListener(listener);
}
});
t.start();
}
public void fireSavedEvent(SavedEvent e) {
savedEventGenerator.fireEvent(e);
}
public void addConcordanceEventListener(final ConcordanceEventSlot listener) {
Thread t = new Thread(new Runnable() {
@Override
public void run() {
concordanceEventGenerator.addListener(listener);
}
});
t.start();
}
public void removeConcordanceEventListener(final ConcordanceEventSlot listener) {
Thread t = new Thread(new Runnable() {
@Override
public void run() {
concordanceEventGenerator.removeListener(listener);
}
});
t.start();
}
public void fireConcordanceEvent(ConcordanceEvent e) {
concordanceEventGenerator.fireEvent(e);
}
public void addTokenNavigationEventListener(final TokenNavigationEventSlot listener) {
Thread t = new Thread(new Runnable() {
@Override
public void run() {
tokenNavigationEventGenerator.addListener(listener);
}
});
t.start();
}
public void removeTokenNavigationEventListener(final TokenNavigationEventSlot listener) {
Thread t = new Thread(new Runnable() {
@Override
public void run() {
tokenNavigationEventGenerator.removeListener(listener);
}
});
t.start();
}
public void fireTokenNavigationEvent(TokenNavigationEvent e) {
tokenNavigationEventGenerator.fireEvent(e);
}
public void addTokenMultiSelectionEventListener(final TokenMultiSelectionEventSlot listener) {
Thread t = new Thread(new Runnable() {
@Override
public void run() {
tokenMultiSelectionEventGenerator.addListener(listener);
}
});
t.start();
}
public void removeTokenMultiSelectionEventListener(final TokenMultiSelectionEventSlot listener) {
Thread t = new Thread(new Runnable() {
@Override
public void run() {
tokenMultiSelectionEventGenerator.removeListener(listener);
}
});
t.start();
}
public void fireTokenMultiSelectionEvent(TokenMultiSelectionEvent e) {
tokenMultiSelectionEventGenerator.fireEvent(e);
}
public void addTokenMultiDeselectionEventListener(final TokenMultiDeselectionEventSlot listener) {
Thread t = new Thread(new Runnable() {
@Override
public void run() {
tokenMultiDeselectionEventGenerator.addListener(listener);
}
});
t.start();
}
public void removeTokenMultiDeselectionEventListener(final TokenMultiDeselectionEventSlot listener) {
Thread t = new Thread(new Runnable() {
@Override
public void run() {
tokenMultiDeselectionEventGenerator.removeListener(listener);
}
});
t.start();
}
public void fireTokenMultiDeselectionEvent(TokenMultiDeselectionEvent e) {
tokenMultiDeselectionEventGenerator.fireEvent(e);
}
public void addCancelEventListener(final CancelEventSlot listener) {
Thread t = new Thread(new Runnable() {
@Override
public void run() {
cancelEventGenerator.addListener(listener);
}
});
t.start();
}
public void removeCancelEventListener(final CancelEventSlot listener) {
Thread t = new Thread(new Runnable() {
@Override
public void run() {
cancelEventGenerator.removeListener(listener);
}
});
t.start();
}
public void fireCancelEvent(CancelEvent e) {
cancelEventGenerator.fireEvent(e);
}
}