diff options
Diffstat (limited to 'ao-tools')
| -rw-r--r-- | ao-tools/altosui/AltosLogfileChooser.java | 32 | ||||
| -rw-r--r-- | ao-tools/altosui/AltosUI.java | 24 | 
2 files changed, 33 insertions, 23 deletions
| diff --git a/ao-tools/altosui/AltosLogfileChooser.java b/ao-tools/altosui/AltosLogfileChooser.java index 72d21fc8..3e9e4892 100644 --- a/ao-tools/altosui/AltosLogfileChooser.java +++ b/ao-tools/altosui/AltosLogfileChooser.java @@ -28,16 +28,42 @@ import java.text.*;  import java.util.prefs.*;  import altosui.AltosPreferences; +import altosui.AltosReader; +import altosui.AltosEepromReader; +import altosui.AltosTelemetryReader;  public class AltosLogfileChooser extends JFileChooser {  	JFrame	frame; +	String	filename; -	public File runDialog() { +	public String filename() { +		return filename; +	} + +	public AltosReader runDialog() {  		int	ret;  		ret = showOpenDialog(frame); -		if (ret == APPROVE_OPTION) -			return getSelectedFile(); +		if (ret == APPROVE_OPTION) { +			File file = getSelectedFile(); +			if (file == null) +				return null; +			filename = file.getName(); +			try { +				FileInputStream in; + +				in = new FileInputStream(file); +				if (filename.endsWith("eeprom")) +					return new AltosEepromReader(in); +				else +					return new AltosTelemetryReader(in); +			} catch (FileNotFoundException fe) { +				JOptionPane.showMessageDialog(frame, +							      filename, +							      "Cannot open file", +							      JOptionPane.ERROR_MESSAGE); +			} +		}  		return null;  	} diff --git a/ao-tools/altosui/AltosUI.java b/ao-tools/altosui/AltosUI.java index 64f96cdd..8a4c753f 100644 --- a/ao-tools/altosui/AltosUI.java +++ b/ao-tools/altosui/AltosUI.java @@ -532,26 +532,10 @@ public class AltosUI extends JFrame {  	private void Replay() {  		AltosLogfileChooser chooser = new AltosLogfileChooser(  			AltosUI.this); - -		File file = chooser.runDialog(); - -		if (file != null) { -			String	filename = file.getName(); -			try { -				FileInputStream	replay = new FileInputStream(file); -				DisplayThread	thread; -				if (filename.endsWith("eeprom")) -				    thread = new ReplayEepromThread(replay, filename); -				else -				    thread = new ReplayTelemetryThread(replay, filename); -				run_display(thread); -			} catch (FileNotFoundException ee) { -				JOptionPane.showMessageDialog(AltosUI.this, -							      filename, -							      "Cannot open telemetry file", -							      JOptionPane.ERROR_MESSAGE); -			} -		} +		AltosReader reader = chooser.runDialog(); +		if (reader != null) +			run_display(new ReplayThread(reader, +						     chooser.filename()));  	}  	/* Connect to TeleMetrum, either directly or through | 
