mirror of
https://github.com/DSheirer/sdrtrunk.git
synced 2026-11-12 16:47:31 -05:00
@@ -29,13 +29,16 @@ import io.github.dsheirer.record.RecorderManager;
|
||||
import io.github.dsheirer.sample.Listener;
|
||||
import io.github.dsheirer.source.tuner.TunerEvent.Event;
|
||||
import io.github.dsheirer.source.tuner.recording.AddRecordingTunerDialog;
|
||||
import io.github.dsheirer.source.tuner.recording.RecordingTuner;
|
||||
import net.miginfocom.swing.MigLayout;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JMenuItem;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JPopupMenu;
|
||||
import javax.swing.JScrollPane;
|
||||
import javax.swing.JTable;
|
||||
import javax.swing.ListSelectionModel;
|
||||
@@ -144,19 +147,45 @@ public class TunerViewPanel extends JPanel
|
||||
@Override
|
||||
public void mouseClicked(MouseEvent e)
|
||||
{
|
||||
int column = mTunerTable.columnAtPoint(e.getPoint());
|
||||
if(e.getButton() == MouseEvent.BUTTON1) //Left-Click
|
||||
{
|
||||
int column = mTunerTable.columnAtPoint(e.getPoint());
|
||||
|
||||
if(column == TunerModel.SPECTRAL_DISPLAY_NEW)
|
||||
if(column == TunerModel.SPECTRAL_DISPLAY_NEW)
|
||||
{
|
||||
int tableRow = mTunerTable.rowAtPoint(e.getPoint());
|
||||
int modelRow = mTunerTable.convertRowIndexToModel(tableRow);
|
||||
|
||||
Tuner tuner = mTunerModel.getTuner(modelRow);
|
||||
|
||||
if(tuner != null)
|
||||
{
|
||||
mTunerModel.broadcast(new TunerEvent(tuner,
|
||||
Event.REQUEST_NEW_SPECTRAL_DISPLAY));
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(e.getButton() == MouseEvent.BUTTON3) //Right-Click
|
||||
{
|
||||
int tableRow = mTunerTable.rowAtPoint(e.getPoint());
|
||||
int modelRow = mTunerTable.convertRowIndexToModel(tableRow);
|
||||
|
||||
Tuner tuner = mTunerModel.getTuner(modelRow);
|
||||
final Tuner tuner = mTunerModel.getTuner(modelRow);
|
||||
|
||||
if(tuner != null)
|
||||
if(tuner instanceof RecordingTuner && tuner.getChannelSourceManager().getTunerChannelCount() == 0)
|
||||
{
|
||||
mTunerModel.broadcast(new TunerEvent(tuner,
|
||||
Event.REQUEST_NEW_SPECTRAL_DISPLAY));
|
||||
JPopupMenu popupMenu = new JPopupMenu();
|
||||
JMenuItem removeTunerItem = new JMenuItem("Remove Recording Tuner");
|
||||
removeTunerItem.addActionListener(new ActionListener()
|
||||
{
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e)
|
||||
{
|
||||
mTunerModel.removeTuner(tuner);
|
||||
}
|
||||
});
|
||||
popupMenu.add(removeTunerItem);
|
||||
popupMenu.show(mTunerTable, e.getX(), e.getY());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,16 +30,10 @@ import net.miginfocom.swing.MigLayout;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JFileChooser;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JTextField;
|
||||
import javax.swing.filechooser.FileFilter;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.awt.event.FocusEvent;
|
||||
import java.awt.event.FocusListener;
|
||||
import java.io.File;
|
||||
|
||||
public class RecordingTunerConfigurationEditor extends TunerConfigurationEditor
|
||||
{
|
||||
@@ -48,7 +42,6 @@ public class RecordingTunerConfigurationEditor extends TunerConfigurationEditor
|
||||
private final static Logger mLog = LoggerFactory.getLogger(RecordingTunerConfigurationEditor.class);
|
||||
|
||||
private JTextField mConfigurationName;
|
||||
private JButton mRecordingChooserButton;
|
||||
private JLabel mRecordingPath;
|
||||
private boolean mLoading;
|
||||
|
||||
@@ -105,44 +98,7 @@ public class RecordingTunerConfigurationEditor extends TunerConfigurationEditor
|
||||
add(new JLabel("Name:"));
|
||||
add(mConfigurationName, "span, wrap");
|
||||
|
||||
mRecordingChooserButton = new JButton("Recording");
|
||||
mRecordingChooserButton.setEnabled(false);
|
||||
mRecordingChooserButton.addActionListener(new ActionListener()
|
||||
{
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e)
|
||||
{
|
||||
final JFileChooser chooser = new JFileChooser();
|
||||
chooser.setFileFilter(new FileFilter()
|
||||
{
|
||||
@Override
|
||||
public boolean accept(File f)
|
||||
{
|
||||
return f.isDirectory() || f.getName().matches(".*.wav");
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDescription()
|
||||
{
|
||||
return "Baseband Recordings (*.wav)";
|
||||
}
|
||||
});
|
||||
int returnVal = chooser.showOpenDialog(RecordingTunerConfigurationEditor.this);
|
||||
|
||||
if (returnVal == JFileChooser.APPROVE_OPTION)
|
||||
{
|
||||
File file = chooser.getSelectedFile();
|
||||
|
||||
if(file != null)
|
||||
{
|
||||
mRecordingPath.setText(file.getAbsolutePath());
|
||||
save();
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
add(mRecordingChooserButton);
|
||||
|
||||
add(new JLabel("File:"));
|
||||
mRecordingPath = new JLabel();
|
||||
add(mRecordingPath);
|
||||
}
|
||||
@@ -156,11 +112,6 @@ public class RecordingTunerConfigurationEditor extends TunerConfigurationEditor
|
||||
{
|
||||
mConfigurationName.setEnabled(enabled);
|
||||
}
|
||||
|
||||
if(mRecordingChooserButton.isEnabled() != enabled)
|
||||
{
|
||||
mRecordingChooserButton.setEnabled(enabled);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -185,14 +185,7 @@ public class RecordingTunerController extends TunerController
|
||||
@Override
|
||||
public void setFrequency(long frequency) throws SourceException
|
||||
{
|
||||
if(hasBufferListeners())
|
||||
{
|
||||
mLog.debug("Set frequency [" + frequency + "] request ignored");
|
||||
}
|
||||
else
|
||||
{
|
||||
super.setFrequency(frequency);
|
||||
}
|
||||
mLog.debug("Set frequency [" + frequency + "] request ignored");
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user