package de.open4me.depot.gui.control;
import java.rmi.RemoteException;
import de.open4me.depot.messaging.KursUpdatesMsg;
import de.open4me.depot.sql.GenericObjectSQL;
import de.willuhn.jameica.gui.GUI;
import de.willuhn.jameica.messaging.Message;
import de.willuhn.jameica.messaging.MessageConsumer;
import de.willuhn.jameica.system.Application;
import de.willuhn.logging.Logger;
public class WertpapiereControl {
private WertpapiereDatenControl unten;
private WertpapiereTableControl oben;
private KursUpdatesMsgConsumer mcNew;
public WertpapiereControl(WertpapiereDatenControl unten,
WertpapiereTableControl oben) {
this.oben = oben;
this.unten = unten;
mcNew = new KursUpdatesMsgConsumer();
Application.getMessagingFactory().registerMessageConsumer(mcNew);
}
public void aktualisiereTablle() throws RemoteException {
oben.aktualisiere();
}
public void aktualisieren(GenericObjectSQL[] selection) {
unten.update(selection);
}
/**
* Hilfsklasse damit wir ueber importierte Umsaetze informiert werden.
*/
public class KursUpdatesMsgConsumer implements MessageConsumer
{
/**
* @see de.willuhn.jameica.messaging.MessageConsumer#getExpectedMessageTypes()
*/
public Class[] getExpectedMessageTypes()
{
return new Class[]{
KursUpdatesMsg.class,
};
}
/**
* @see de.willuhn.jameica.messaging.MessageConsumer#handleMessage(de.willuhn.jameica.messaging.Message)
*/
public void handleMessage(final Message message) throws Exception
{
if (message == null)
return;
GUI.getDisplay().syncExec(new Runnable() {
public void run()
{
try {
aktualisiereTablle();
} catch (RemoteException e) {
Logger.error("Fehler beim Aktualisieren", e);
}
aktualisieren(oben.getSelection());
}
});
}
/**
* @see de.willuhn.jameica.messaging.MessageConsumer#autoRegister()
*/
public boolean autoRegister()
{
return false;
}
}
public void unlisten() {
Application.getMessagingFactory().unRegisterMessageConsumer(mcNew);
}
}