Refactored RadioMediumObservable and added new Observable

Refactored RadioMediumObservable to RadioTransmissionObservable because of its function
Added correct RadioMediumObservable and updating in AbstractRadioMedium, DirectedGraphMedium and MRM
Added some documentation
This commit is contained in:
Sebastian Schinabeck 2013-11-21 18:08:41 +01:00 committed by Moritz 'Morty' Strübe
parent 42077adbb1
commit c1a275f0b2
9 changed files with 69 additions and 20 deletions

View file

@ -230,7 +230,7 @@ public class AreaViewer extends VisPlugin {
// We want to listen to changes both in the channel model as well as in the radio medium
currentChannelModel.addSettingsObserver(channelModelSettingsObserver);
currentRadioMedium.addSettingsObserver(radioMediumSettingsObserver);
currentRadioMedium.addRadioMediumObserver(radioMediumActivityObserver);
currentRadioMedium.addRadioTransmissionObserver(radioMediumActivityObserver);
// Set initial size etc.
setSize(500, 500);
@ -2344,7 +2344,7 @@ public class AreaViewer extends VisPlugin {
}
if (currentRadioMedium != null && radioMediumActivityObserver != null) {
currentRadioMedium.deleteRadioMediumObserver(radioMediumActivityObserver);
currentRadioMedium.deleteRadioTransmissionObserver(radioMediumActivityObserver);
} else {
logger.fatal("Could not remove observer: " + radioMediumActivityObserver);
}

View file

@ -143,6 +143,9 @@ public class MRM extends AbstractRadioMedium {
public void registerRadioInterface(Radio radio, Simulation sim) {
super.registerRadioInterface(radio, sim);
/* Radio Medium changed here so notify Observers */
radioMediumObservable.setChangedAndNotify();
if (WITH_NOISE && radio instanceof NoiseSourceRadio) {
((NoiseSourceRadio)radio).addNoiseLevelListener(noiseListener);
}
@ -150,6 +153,9 @@ public class MRM extends AbstractRadioMedium {
public void unregisterRadioInterface(Radio radio, Simulation sim) {
super.unregisterRadioInterface(radio, sim);
/* Radio Medium changed here so notify Observers */
radioMediumObservable.setChangedAndNotify();
if (WITH_NOISE && radio instanceof NoiseSourceRadio) {
((NoiseSourceRadio)radio).removeNoiseLevelListener(noiseListener);
}