diff options
Diffstat (limited to 'ao-tools/altosui/AltosLogfileChooser.java')
| -rw-r--r-- | ao-tools/altosui/AltosLogfileChooser.java | 32 | 
1 files changed, 29 insertions, 3 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;  	} | 
