/*
Copyright 2008-2010 Gephi
Authors : Eduardo Ramos <eduramiba@gmail.com>
Website : http://www.gephi.org
This file is part of Gephi.
Gephi is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
Gephi is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with Gephi. If not, see <http://www.gnu.org/licenses/>.
*/
package org.gephi.datalab.plugin.manipulators.columns.merge.ui;
import java.awt.Color;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import org.gephi.data.attributes.api.AttributeColumn;
import org.gephi.datalab.plugin.manipulators.columns.merge.CreateTimeInterval;
import org.gephi.datalab.spi.DialogControls;
import org.gephi.datalab.spi.Manipulator;
import org.gephi.datalab.spi.ManipulatorUI;
import org.openide.util.NbPreferences;
/**
* UI for CreateTimeInterval
* @author Eduardo Ramos <eduramiba@gmail.com>
*/
public class CreateTimeIntervalUI extends javax.swing.JPanel implements ManipulatorUI {
private static final Color INVALID_NUMBER_COLOR = new Color(254, 150, 150);
private static final String PARSE_NUMBERS_SAVED_PARAMETER = "CreateTimeIntervalUI_parseNumbers";
private static final String START_NUMBER_SAVED_PARAMETER = "CreateTimeIntervalUI_startNumber";
private static final String END_NUMBER_SAVED_PARAMETER = "CreateTimeIntervalUI_endNumber";
private static final String DATE_FORMAT_SAVED_PARAMETER = "CreateTimeIntervalUI_dateFormat";
private static final String START_DATE_SAVED_PARAMETER = "CreateTimeIntervalUI_startDate";
private static final String END_DATE_SAVED_PARAMETER = "CreateTimeIntervalUI_endDate";
private CreateTimeInterval manipulator;
private DialogControls dialogControls;
private ColumnWrapper column1, column2;
/** Creates new form CreateTimeIntervalUI */
public CreateTimeIntervalUI() {
initComponents();
defaultStartNumberText.getDocument().addDocumentListener(new DocumentListener() {
public void insertUpdate(DocumentEvent e) {
refreshOkButton();
}
public void removeUpdate(DocumentEvent e) {
refreshOkButton();
}
public void changedUpdate(DocumentEvent e) {
refreshOkButton();
}
});
defaultEndNumberText.getDocument().addDocumentListener(new DocumentListener() {
public void insertUpdate(DocumentEvent e) {
refreshOkButton();
}
public void removeUpdate(DocumentEvent e) {
refreshOkButton();
}
public void changedUpdate(DocumentEvent e) {
refreshOkButton();
}
});
//Add some common date formats to choose:
dateFormatComboBox.addItem("yyyy-MM-dd");
dateFormatComboBox.addItem("yyyy/MM/dd");
dateFormatComboBox.addItem("dd-MM-yyyy");
dateFormatComboBox.addItem("dd/MM/yyyy");
dateFormatComboBox.addItem("MM-dd-yyyy");
dateFormatComboBox.addItem("MM/dd/yyyy");
dateFormatComboBox.setSelectedIndex(0);
}
private void readSavedParameters() {
parseNumbersRadioButton.setSelected(NbPreferences.forModule(CreateTimeIntervalUI.class).getBoolean(PARSE_NUMBERS_SAVED_PARAMETER, true));
defaultStartNumberText.setText(NbPreferences.forModule(CreateTimeIntervalUI.class).get(START_NUMBER_SAVED_PARAMETER, ""));
defaultEndNumberText.setText(NbPreferences.forModule(CreateTimeIntervalUI.class).get(END_NUMBER_SAVED_PARAMETER, ""));
dateFormatComboBox.setSelectedIndex(NbPreferences.forModule(CreateTimeIntervalUI.class).getInt(DATE_FORMAT_SAVED_PARAMETER, 0));
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String date = NbPreferences.forModule(CreateTimeIntervalUI.class).get(START_DATE_SAVED_PARAMETER, "");
if (!date.isEmpty()) {
defaultStartDatePicker.setDate(sdf.parse(date));
}
date = NbPreferences.forModule(CreateTimeIntervalUI.class).get(END_DATE_SAVED_PARAMETER, "");
if (!date.isEmpty()) {
defaultEndDatePicker.setDate(sdf.parse(date));
}
} catch (ParseException ex) {
}
}
private void storeSavedParameters() {
NbPreferences.forModule(CreateTimeIntervalUI.class).putBoolean(PARSE_NUMBERS_SAVED_PARAMETER, parseNumbersRadioButton.isSelected());
NbPreferences.forModule(CreateTimeIntervalUI.class).put(START_NUMBER_SAVED_PARAMETER, defaultStartNumberText.getText());
NbPreferences.forModule(CreateTimeIntervalUI.class).put(END_NUMBER_SAVED_PARAMETER, defaultEndNumberText.getText());
NbPreferences.forModule(CreateTimeIntervalUI.class).putInt(DATE_FORMAT_SAVED_PARAMETER, dateFormatComboBox.getSelectedIndex());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date;
date = defaultStartDatePicker.getDate();
if (date != null) {
NbPreferences.forModule(CreateTimeIntervalUI.class).put(START_DATE_SAVED_PARAMETER, sdf.format(date));
}
date = defaultEndDatePicker.getDate();
if (date != null) {
NbPreferences.forModule(CreateTimeIntervalUI.class).put(END_DATE_SAVED_PARAMETER, sdf.format(date));
}
}
public void setup(Manipulator m, DialogControls dialogControls) {
this.manipulator = (CreateTimeInterval) m;
this.dialogControls = dialogControls;
AttributeColumn[] columns = manipulator.getColumns();
column1 = new ColumnWrapper(columns[0]);
if (columns.length == 2) {//2 columns were chosen to merge
column2 = new ColumnWrapper(columns[1]);
} else {//Only 1 column was chosen
column2 = new ColumnWrapper(null);
}
startColumnComboBox.addItem(column1);
startColumnComboBox.addItem(column2);
endColumnComboBox.addItem(column1);
endColumnComboBox.addItem(column2);
readSavedParameters();
refreshTimeParseMode();
refreshOkButton();
}
public void unSetup() {
if (dialogControls.isOkButtonEnabled()) {
boolean parseNumbers = parseNumbersRadioButton.isSelected();
manipulator.setParseNumbers(parseNumbers);
manipulator.setStartColumn(((ColumnWrapper) startColumnComboBox.getSelectedItem()).column);
manipulator.setEndColumn(((ColumnWrapper) endColumnComboBox.getSelectedItem()).column);
if (parseNumbers) {
if (defaultStartNumberText.getText().trim().isEmpty()) {
manipulator.setStartNumber(Double.NEGATIVE_INFINITY);
} else {
manipulator.setStartNumber(Double.parseDouble(defaultStartNumberText.getText().trim()));
}
if (defaultEndNumberText.getText().trim().isEmpty()) {
manipulator.setEndNumber(Double.POSITIVE_INFINITY);
} else {
manipulator.setEndNumber(Double.parseDouble(defaultEndNumberText.getText().trim()));
}
} else {
SimpleDateFormat dateFormat = new SimpleDateFormat((String) dateFormatComboBox.getSelectedItem());
manipulator.setDateFormat(dateFormat);
manipulator.setStartDate(defaultStartDatePicker.getDate() != null ? dateFormat.format(defaultStartDatePicker.getDate()) : null);
manipulator.setEndDate(defaultEndDatePicker.getDate() != null ? dateFormat.format(defaultEndDatePicker.getDate()) : null);
}
}
storeSavedParameters();
}
public String getDisplayName() {
return manipulator.getName();
}
public JPanel getSettingsPanel() {
return this;
}
public boolean isModal() {
return true;
}
private boolean validateNumberOrEmpty(JTextField textField) {
if (parseNumbersRadioButton.isSelected()) {
String text = textField.getText().trim();
if (text.isEmpty()) {
textField.setBackground(Color.WHITE);
return true;
} else {
try {
Double.parseDouble(text);
textField.setBackground(Color.WHITE);
return true;
} catch (Exception ex) {
textField.setBackground(INVALID_NUMBER_COLOR);
return false;
}
}
} else {
textField.setBackground(Color.WHITE);
return true;
}
}
private void refreshOkButton() {
boolean enabled=validateNumberOrEmpty(defaultStartNumberText);
enabled=validateNumberOrEmpty(defaultEndNumberText)&&enabled;
dialogControls.setOkButtonEnabled(enabled);
}
private void refreshTimeParseMode() {
boolean parseNumbers = parseNumbersRadioButton.isSelected();
defaultStartNumberLabel.setEnabled(parseNumbers);
defaultEndNumberLabel.setEnabled(parseNumbers);
defaultStartNumberText.setEnabled(parseNumbers);
defaultEndNumberText.setEnabled(parseNumbers);
dateFormatLabel.setEnabled(!parseNumbers);
dateFormatComboBox.setEnabled(!parseNumbers);
dateDefaultStartLabel.setEnabled(!parseNumbers);
dateDefaultEndLabel.setEnabled(!parseNumbers);
defaultStartDatePicker.setEnabled(!parseNumbers);
defaultEndDatePicker.setEnabled(!parseNumbers);
refreshOkButton();
}
private class ColumnWrapper {
private AttributeColumn column;
public ColumnWrapper(AttributeColumn column) {
this.column = column;
}
@Override
public String toString() {
return column != null ? column.getTitle() : "";
}
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
buttonGroup = new javax.swing.ButtonGroup();
startColumnLabel = new javax.swing.JLabel();
startColumnComboBox = new javax.swing.JComboBox();
endColumnComboBox = new javax.swing.JComboBox();
endColumnLabel = new javax.swing.JLabel();
parseNumbersRadioButton = new javax.swing.JRadioButton();
header = new org.jdesktop.swingx.JXHeader();
parseDatesRadioButton = new javax.swing.JRadioButton();
defaultStartDatePicker = new org.jdesktop.swingx.JXDatePicker();
dateDefaultStartLabel = new javax.swing.JLabel();
defaultEndDatePicker = new org.jdesktop.swingx.JXDatePicker();
dateDefaultEndLabel = new javax.swing.JLabel();
dateFormatLabel = new javax.swing.JLabel();
dateFormatComboBox = new javax.swing.JComboBox();
defaultStartNumberLabel = new javax.swing.JLabel();
defaultEndNumberLabel = new javax.swing.JLabel();
defaultStartNumberText = new javax.swing.JTextField();
defaultEndNumberText = new javax.swing.JTextField();
startColumnLabel.setText(org.openide.util.NbBundle.getMessage(CreateTimeIntervalUI.class, "CreateTimeIntervalUI.startColumnLabel.text")); // NOI18N
startColumnComboBox.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
startColumnComboBoxActionPerformed(evt);
}
});
endColumnComboBox.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
endColumnComboBoxActionPerformed(evt);
}
});
endColumnLabel.setText(org.openide.util.NbBundle.getMessage(CreateTimeIntervalUI.class, "CreateTimeIntervalUI.endColumnLabel.text")); // NOI18N
buttonGroup.add(parseNumbersRadioButton);
parseNumbersRadioButton.setSelected(true);
parseNumbersRadioButton.setText(org.openide.util.NbBundle.getMessage(CreateTimeIntervalUI.class, "CreateTimeIntervalUI.parseNumbersRadioButton.text")); // NOI18N
parseNumbersRadioButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
parseNumbersRadioButtonActionPerformed(evt);
}
});
header.setDescription(org.openide.util.NbBundle.getMessage(CreateTimeIntervalUI.class, "CreateTimeIntervalUI.header.description")); // NOI18N
header.setTitle(org.openide.util.NbBundle.getMessage(CreateTimeIntervalUI.class, "CreateTimeIntervalUI.header.title")); // NOI18N
buttonGroup.add(parseDatesRadioButton);
parseDatesRadioButton.setText(org.openide.util.NbBundle.getMessage(CreateTimeIntervalUI.class, "CreateTimeIntervalUI.parseDatesRadioButton.text")); // NOI18N
parseDatesRadioButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
parseDatesRadioButtonActionPerformed(evt);
}
});
defaultStartDatePicker.setEnabled(false);
dateDefaultStartLabel.setText(org.openide.util.NbBundle.getMessage(CreateTimeIntervalUI.class, "CreateTimeIntervalUI.dateDefaultStartLabel.text")); // NOI18N
dateDefaultStartLabel.setEnabled(false);
defaultEndDatePicker.setEnabled(false);
dateDefaultEndLabel.setText(org.openide.util.NbBundle.getMessage(CreateTimeIntervalUI.class, "CreateTimeIntervalUI.dateDefaultEndLabel.text")); // NOI18N
dateDefaultEndLabel.setEnabled(false);
dateFormatLabel.setText(org.openide.util.NbBundle.getMessage(CreateTimeIntervalUI.class, "CreateTimeIntervalUI.dateFormatLabel.text")); // NOI18N
dateFormatLabel.setEnabled(false);
dateFormatComboBox.setEnabled(false);
defaultStartNumberLabel.setText(org.openide.util.NbBundle.getMessage(CreateTimeIntervalUI.class, "CreateTimeIntervalUI.defaultStartNumberLabel.text")); // NOI18N
defaultEndNumberLabel.setText(org.openide.util.NbBundle.getMessage(CreateTimeIntervalUI.class, "CreateTimeIntervalUI.defaultEndNumberLabel.text")); // NOI18N
defaultStartNumberText.setText(org.openide.util.NbBundle.getMessage(CreateTimeIntervalUI.class, "CreateTimeIntervalUI.defaultStartNumberText.text")); // NOI18N
defaultEndNumberText.setText(org.openide.util.NbBundle.getMessage(CreateTimeIntervalUI.class, "CreateTimeIntervalUI.defaultEndNumberText.text")); // NOI18N
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(endColumnLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(startColumnLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 101, Short.MAX_VALUE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(startColumnComboBox, 0, 180, Short.MAX_VALUE)
.addComponent(endColumnComboBox, 0, 180, Short.MAX_VALUE))
.addContainerGap())
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(parseDatesRadioButton)
.addContainerGap(216, Short.MAX_VALUE))
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(parseNumbersRadioButton)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(defaultStartNumberLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 102, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
.addGap(15, 15, 15)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(dateDefaultStartLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(dateDefaultEndLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(dateFormatLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 94, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addComponent(defaultEndNumberLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 102, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(defaultStartDatePicker, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 170, Short.MAX_VALUE)
.addComponent(defaultEndDatePicker, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 170, Short.MAX_VALUE)
.addComponent(dateFormatComboBox, javax.swing.GroupLayout.Alignment.TRAILING, 0, 170, Short.MAX_VALUE)
.addComponent(defaultStartNumberText, javax.swing.GroupLayout.DEFAULT_SIZE, 170, Short.MAX_VALUE)
.addComponent(defaultEndNumberText, javax.swing.GroupLayout.DEFAULT_SIZE, 170, Short.MAX_VALUE))))
.addContainerGap())
.addComponent(header, javax.swing.GroupLayout.DEFAULT_SIZE, 305, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(header, javax.swing.GroupLayout.PREFERRED_SIZE, 105, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(startColumnLabel)
.addComponent(startColumnComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(endColumnComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(endColumnLabel))
.addGap(18, 18, 18)
.addComponent(parseNumbersRadioButton)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(defaultStartNumberLabel)
.addComponent(defaultStartNumberText, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(defaultEndNumberLabel)
.addComponent(defaultEndNumberText, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(33, 33, 33)
.addComponent(parseDatesRadioButton)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(dateFormatComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(dateFormatLabel))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(defaultStartDatePicker, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(dateDefaultStartLabel))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(dateDefaultEndLabel)
.addComponent(defaultEndDatePicker, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap())
);
}// </editor-fold>//GEN-END:initComponents
private void parseNumbersRadioButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_parseNumbersRadioButtonActionPerformed
refreshTimeParseMode();
}//GEN-LAST:event_parseNumbersRadioButtonActionPerformed
private void parseDatesRadioButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_parseDatesRadioButtonActionPerformed
refreshTimeParseMode();
}//GEN-LAST:event_parseDatesRadioButtonActionPerformed
private void startColumnComboBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_startColumnComboBoxActionPerformed
if (startColumnComboBox.getSelectedItem() == column1) {
endColumnComboBox.setSelectedItem(column2);
} else {
endColumnComboBox.setSelectedItem(column1);
}
}//GEN-LAST:event_startColumnComboBoxActionPerformed
private void endColumnComboBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_endColumnComboBoxActionPerformed
if (endColumnComboBox.getSelectedItem() == column1) {
startColumnComboBox.setSelectedItem(column2);
} else {
startColumnComboBox.setSelectedItem(column1);
}
}//GEN-LAST:event_endColumnComboBoxActionPerformed
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.ButtonGroup buttonGroup;
private javax.swing.JLabel dateDefaultEndLabel;
private javax.swing.JLabel dateDefaultStartLabel;
private javax.swing.JComboBox dateFormatComboBox;
private javax.swing.JLabel dateFormatLabel;
private org.jdesktop.swingx.JXDatePicker defaultEndDatePicker;
private javax.swing.JLabel defaultEndNumberLabel;
private javax.swing.JTextField defaultEndNumberText;
private org.jdesktop.swingx.JXDatePicker defaultStartDatePicker;
private javax.swing.JLabel defaultStartNumberLabel;
private javax.swing.JTextField defaultStartNumberText;
private javax.swing.JComboBox endColumnComboBox;
private javax.swing.JLabel endColumnLabel;
private org.jdesktop.swingx.JXHeader header;
private javax.swing.JRadioButton parseDatesRadioButton;
private javax.swing.JRadioButton parseNumbersRadioButton;
private javax.swing.JComboBox startColumnComboBox;
private javax.swing.JLabel startColumnLabel;
// End of variables declaration//GEN-END:variables
}