/**
- * Open the selected file and show the GUI dialog
- * to select load options
+ * Open the selected file and show the GUI dialog to select load options
+ * @param inFile file to open
*/
public void openFile(File inFile)
{
_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));
// 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);
secondCard.add(makeLabelledPanel("dialog.openoptions.tabledesc", 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
}
});
innerPanel3.add(_moveDownButton);
- innerPanel3.add(Box.createVerticalStrut(70));
+ innerPanel3.add(Box.createVerticalStrut(60));
+ JButton guessButton = new JButton(I18nManager.getText("button.guessfields"));
+ guessButton.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e)
+ {
+ _lastSelectedFields = null;
+ prepareSecondPanel();
+ }
+ });
+ innerPanel3.add(guessButton);
innerPanel2.add(innerPanel3, BorderLayout.EAST);
secondCard.add(innerPanel2, BorderLayout.CENTER);
{
fields = _delimiterInfos[i].getMaxFields();
_statusLabel.setText("" + numRecords + " " + I18nManager.getText("dialog.openoptions.deliminfo.records")
- + fields + " " + I18nManager.getText("dialog.openoptions.deliminfo.fields"));
+ + " " + fields + " " + I18nManager.getText("dialog.openoptions.deliminfo.fields"));
}
}
}
FileSplitter splitter = new FileSplitter(_fileCacher);
// Check info makes sense - num fields > 0, num records > 0
// set "Finished" button to disabled if not ok
- // TODO: Work out if there are header rows or not, save?
- // Try to match header rows with fields
- // Try to match data with fields
// Add data to GUI elements
- Object[][] tableData = splitter.splitFieldData(info.getDelimiter());
+ String[][] tableData = splitter.splitFieldData(info.getDelimiter());
// possible to ignore blank columns here
_currentDelimiter = info.getDelimiter();
_fileExtractTableModel.updateData(tableData);
// Check number of fields and use last ones if count matches
Field[] startFieldArray = null;
if (_lastSelectedFields != null && splitter.getNumColumns() == _lastSelectedFields.length)
+ {
startFieldArray = _lastSelectedFields;
+ }
else
- startFieldArray = splitter.makeDefaultFields();
+ {
+ // Take first full row of file and use it to guess fields
+ startFieldArray = FieldGuesser.guessFields(splitter.getFirstFullRow());
+ }
+
_fieldTableModel.updateData(startFieldArray);
_fieldTable.setModel(_fieldTableModel);
// add dropdowns to second column