From 1078bdc4fde651699667d562403eaa3ec34d166c Mon Sep 17 00:00:00 2001 From: denny Date: Sat, 12 Mar 2016 13:11:06 -0500 Subject: [PATCH] wip: #34 - adds tuner spectral display manager to handle requests to show a tuner in the main spectral display or to show the tuner in a new spectral display --- src/gui/SDRTrunk.java | 8 ++- .../tuner/TunerSpectralDisplayManager.java | 55 +++++++++++++++++++ src/spectrum/SpectralDisplayPanel.java | 28 ---------- 3 files changed, 61 insertions(+), 30 deletions(-) create mode 100644 src/source/tuner/TunerSpectralDisplayManager.java diff --git a/src/gui/SDRTrunk.java b/src/gui/SDRTrunk.java index dc84bb70..a1eb8c68 100644 --- a/src/gui/SDRTrunk.java +++ b/src/gui/SDRTrunk.java @@ -59,6 +59,7 @@ import settings.SettingsManager; import source.SourceManager; import source.tuner.TunerEvent; import source.tuner.TunerModel; +import source.tuner.TunerSpectralDisplayManager; import source.tuner.configuration.TunerConfigurationModel; import spectrum.SpectralDisplayPanel; import util.TimeStamp; @@ -162,8 +163,11 @@ public class SDRTrunk implements Listener mSpectralPanel = new SpectralDisplayPanel( channelModel, channelProcessingManager, mSettingsManager ); - - tunerModel.addListener( mSpectralPanel.getTunerEventListener() ); + + TunerSpectralDisplayManager tunerSpectralDisplayManager = + new TunerSpectralDisplayManager( mSpectralPanel, + channelModel, channelProcessingManager, mSettingsManager ); + tunerModel.addListener( tunerSpectralDisplayManager ); tunerModel.addListener( this ); PlaylistManager playlistManager = new PlaylistManager( threadPoolManager, diff --git a/src/source/tuner/TunerSpectralDisplayManager.java b/src/source/tuner/TunerSpectralDisplayManager.java new file mode 100644 index 00000000..dc6a5857 --- /dev/null +++ b/src/source/tuner/TunerSpectralDisplayManager.java @@ -0,0 +1,55 @@ +package source.tuner; + +import java.awt.EventQueue; + +import sample.Listener; +import settings.SettingsManager; +import spectrum.SpectralDisplayPanel; +import spectrum.SpectrumFrame; +import controller.channel.ChannelModel; +import controller.channel.ChannelProcessingManager; + +public class TunerSpectralDisplayManager implements Listener +{ + private SpectralDisplayPanel mSpectralDisplayPanel; + private ChannelModel mChannelModel; + private ChannelProcessingManager mChannelProcessingManager; + private SettingsManager mSettingsManager; + + public TunerSpectralDisplayManager( SpectralDisplayPanel panel, + ChannelModel channelModel, + ChannelProcessingManager channelProcessingManager, + SettingsManager settingsManager ) + { + mSpectralDisplayPanel = panel; + mChannelModel = channelModel; + mChannelProcessingManager = channelProcessingManager; + mSettingsManager = settingsManager; + } + + @Override + public void receive( TunerEvent event ) + { + switch( event.getEvent() ) + { + case REQUEST_MAIN_SPECTRAL_DISPLAY: + mSpectralDisplayPanel.showTuner( event.getTuner() ); + break; + case REQUEST_SECONDARY_SPECTRAL_DISPLAY: + final SpectrumFrame frame = new SpectrumFrame( mChannelModel, + mChannelProcessingManager, mSettingsManager, event.getTuner() ); + + EventQueue.invokeLater( new Runnable() + { + @Override + public void run() + { + frame.setVisible( true ); + } + } ); + break; + default: + break; + } + } +} diff --git a/src/spectrum/SpectralDisplayPanel.java b/src/spectrum/SpectralDisplayPanel.java index c3b27325..1c095bcd 100644 --- a/src/spectrum/SpectralDisplayPanel.java +++ b/src/spectrum/SpectralDisplayPanel.java @@ -62,7 +62,6 @@ import settings.ColorSettingMenuItem; import settings.SettingsManager; import source.SourceException; import source.tuner.Tuner; -import source.tuner.TunerEvent; import source.tuner.frequency.FrequencyChangeEvent; import source.tuner.frequency.FrequencyChangeEvent.Event; import source.tuner.frequency.IFrequencyChangeProcessor; @@ -200,11 +199,6 @@ public class SpectralDisplayPanel extends JPanel mTuner = null; } - public Listener getTunerEventListener() - { - return new TunerSelectionListener( this ); - } - /** * Queues an FFT size change request. The scheduled executor will apply * the change when it runs. @@ -962,26 +956,4 @@ public class SpectralDisplayPanel extends JPanel } ); } } - - /** - * Provides tuner event listener interface for showing tuners in this display - */ - public class TunerSelectionListener implements Listener - { - private SpectralDisplayPanel mSpectralDisplayPanel; - - public TunerSelectionListener( SpectralDisplayPanel spectralDisplayPanel ) - { - mSpectralDisplayPanel = spectralDisplayPanel; - } - - @Override - public void receive( TunerEvent event ) - { - if( event.getEvent() == TunerEvent.Event.REQUEST_MAIN_SPECTRAL_DISPLAY ) - { - mSpectralDisplayPanel.showTuner( event.getTuner() ); - } - } - } }