X-Git-Url: https://gitweb.fperrin.net/?a=blobdiff_plain;f=tim%2Fprune%2Fload%2FTextFileLoader.java;h=1f88012807485d8010f387947bb00d9621375a03;hb=4d5796d02a15808311c09448d79e6e7d1de9d636;hp=f0408da1c4eaab15363b1e1bde2c6c3ae184e994;hpb=ca9bdb3916f9c39adbbf95d06ac95c21dafbb4e6;p=GpsPrune.git diff --git a/tim/prune/load/TextFileLoader.java b/tim/prune/load/TextFileLoader.java index f0408da..1f88012 100644 --- a/tim/prune/load/TextFileLoader.java +++ b/tim/prune/load/TextFileLoader.java @@ -8,6 +8,9 @@ import java.awt.FlowLayout; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; + import javax.swing.*; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; @@ -21,6 +24,7 @@ import tim.prune.App; import tim.prune.I18nManager; import tim.prune.data.Altitude; import tim.prune.data.Field; +import tim.prune.data.SourceInfo; /** @@ -54,7 +58,7 @@ public class TextFileLoader // previously selected values private char _lastUsedDelimiter = ','; private Field[] _lastSelectedFields = null; - private int _lastAltitudeFormat = Altitude.FORMAT_NONE; + private Altitude.Format _lastAltitudeFormat = Altitude.Format.NO_FORMAT; // constants private static final int SNIPPET_SIZE = 6; @@ -109,7 +113,14 @@ public class TextFileLoader { _dialog = new JDialog(_parentFrame, I18nManager.getText("dialog.openoptions.title"), true); _dialog.setLocationRelativeTo(_parentFrame); - _dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); + _dialog.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE); + // add closing listener + _dialog.addWindowListener(new WindowAdapter() { + public void windowClosing(WindowEvent e) { + _dialog.dispose(); + _app.informNoDataLoaded(); + } + }); _dialog.getContentPane().add(makeDialogComponents()); // select best separator according to row counts (more is better) @@ -122,12 +133,12 @@ public class TextFileLoader _delimiterRadios[_delimiterRadios.length-1].setSelected(true); informDelimiterSelected(); _dialog.pack(); - _dialog.show(); + _dialog.setVisible(true); } - else - { - JOptionPane.showMessageDialog(_parentFrame, I18nManager.getText("error.load.noread"), - I18nManager.getText("error.load.dialogtitle"), JOptionPane.ERROR_MESSAGE); + else { + // Didn't pass pre-check + _app.showErrorMessage("error.load.dialogtitle", "error.load.noread"); + _app.informNoDataLoaded(); } } @@ -256,6 +267,7 @@ public class TextFileLoader public void actionPerformed(ActionEvent e) { _dialog.dispose(); + _app.informNoDataLoaded(); } }); buttonPanel.add(cancelButton); @@ -267,6 +279,7 @@ public class TextFileLoader _cardPanel.setLayout(_layout); JPanel firstCard = new JPanel(); firstCard.setLayout(new BorderLayout()); + firstCard.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 15)); JPanel delimsPanel = new JPanel(); delimsPanel.setLayout(new GridLayout(0, 2)); @@ -310,15 +323,18 @@ public class TextFileLoader // Second screen, for field order selection JPanel secondCard = new JPanel(); secondCard.setLayout(new BorderLayout()); + secondCard.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 15)); // table for file contents _fileExtractTableModel = new FileExtractTableModel(); JTable extractTable = new JTable(_fileExtractTableModel); JScrollPane tableScrollPane = new JScrollPane(extractTable); extractTable.setPreferredScrollableViewportSize(new Dimension(350, 80)); extractTable.getTableHeader().setReorderingAllowed(false); - secondCard.add(makeLabelledPanel("dialog.openoptions.tabledesc", tableScrollPane), BorderLayout.NORTH); + secondCard.add(makeLabelledPanel("dialog.openoptions.filesnippet", tableScrollPane), BorderLayout.NORTH); JPanel innerPanel2 = new JPanel(); innerPanel2.setLayout(new BorderLayout()); + innerPanel2.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); + _fieldTable = new JTable(new FieldSelectionTableModel()); _fieldTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); // add listener for selected table row @@ -334,11 +350,9 @@ public class TextFileLoader } } }); - JPanel tablePanel = new JPanel(); - tablePanel.setLayout(new BorderLayout()); - tablePanel.add(_fieldTable.getTableHeader(), BorderLayout.NORTH); - tablePanel.add(_fieldTable, BorderLayout.CENTER); - innerPanel2.add(tablePanel, BorderLayout.CENTER); + JScrollPane lowerTablePane = new JScrollPane(_fieldTable); + lowerTablePane.setPreferredSize(new Dimension(300, 100)); + innerPanel2.add(lowerTablePane, BorderLayout.CENTER); JPanel innerPanel3 = new JPanel(); innerPanel3.setLayout(new BoxLayout(innerPanel3, BoxLayout.Y_AXIS)); @@ -490,16 +504,17 @@ public class TextFileLoader _fieldTable.setModel(_fieldTableModel); // add dropdowns to second column JComboBox fieldTypesBox = new JComboBox(); - for (int i=0; i