00001 package guiUtilities;
00002 import javax.swing.event.ListSelectionListener;
00003 import javax.swing.event.ListSelectionEvent;
00004 import javax.swing.*;
00005 import javax.swing.table.AbstractTableModel;
00006 import Preferences.*;
00007
00012 public class SpreadsheetViewer extends javax.swing.JFrame implements ListSelectionListener {
00013 private static SpreadsheetViewer instance = new SpreadsheetViewer();
00014 int selectedRow;
00015 ListSelectionModel rowSM;
00016 myTableAdapter db;
00019 public SpreadsheetViewer() {
00020 super("Spreadsheet Viewer");
00021 db = new myTableAdapter();
00022 selectedRow=-1;
00023 initComponents();
00024 }
00025
00026 public static SpreadsheetViewer getInstance() {
00027 return instance;
00028 }
00029
00035 private void initComponents() {
00036 java.awt.GridBagConstraints gridBagConstraints;
00037
00038 scrollPane = new javax.swing.JScrollPane();
00039 saveButton = new javax.swing.JButton();
00040 closeButton = new javax.swing.JButton();
00041 titleLabel = new javax.swing.JLabel();
00042
00043 getContentPane().setLayout(new java.awt.GridBagLayout());
00044
00045 addWindowListener(new java.awt.event.WindowAdapter() {
00046 public void windowClosing(java.awt.event.WindowEvent evt) {
00047 exitForm(evt);
00048 }
00049 });
00050
00051 table = new JTable(db);
00052
00053 table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
00054 table.setFont(new java.awt.Font("Arial",java.awt.Font.PLAIN,10));
00055 rowSM = table.getSelectionModel();
00056 rowSM.addListSelectionListener(this);
00057 scrollPane = new JScrollPane(table);
00058 scrollPane.setMaximumSize(new java.awt.Dimension(900, 800));
00059 scrollPane.setMinimumSize(new java.awt.Dimension(800, 150));
00060 scrollPane.setPreferredSize(new java.awt.Dimension(800, 150));
00061 scrollPane.setBorder(new javax.swing.border.BevelBorder(javax.swing.border.BevelBorder.LOWERED));
00062
00063 gridBagConstraints = new java.awt.GridBagConstraints();
00064 gridBagConstraints.gridx = 0;
00065 gridBagConstraints.gridy = 1;
00066 gridBagConstraints.gridwidth = 2;
00067 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
00068 gridBagConstraints.weighty = 0.85;
00069 gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
00070 getContentPane().add(scrollPane, gridBagConstraints);
00071
00072 saveButton.setText("Save spreadsheet");
00073 saveButton.setFont(new java.awt.Font("Arial",java.awt.Font.PLAIN,10));
00074 gridBagConstraints = new java.awt.GridBagConstraints();
00075 gridBagConstraints.gridx = 0;
00076 gridBagConstraints.gridy = 2;
00077 gridBagConstraints.weightx = 0.5;
00078 gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
00079 gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHWEST;
00080 getContentPane().add(saveButton, gridBagConstraints);
00081 saveButton.setEnabled(false);
00082 saveButton.addActionListener(new java.awt.event.ActionListener() {
00083 public void actionPerformed(java.awt.event.ActionEvent evt) {
00084
00085 JFileChooser fc;
00086 fc = new JFileChooser(PreferencesInterface.getInstance().getPreference(PreferencesInterface.SCRATCH_DIR));
00087
00088 int returnVal = fc.showSaveDialog(null);
00089 if (returnVal != JFileChooser.APPROVE_OPTION) return;
00090
00091 java.io.File file = fc.getSelectedFile();
00092 db.writeTXT(file);
00093
00094 }
00095 });
00096
00097 closeButton.setText("Close");
00098 closeButton.setFont(new java.awt.Font("Arial",java.awt.Font.PLAIN,10));
00099 gridBagConstraints = new java.awt.GridBagConstraints();
00100 gridBagConstraints.gridx = 1;
00101 gridBagConstraints.gridy = 2;
00102 gridBagConstraints.weightx = 0.5;
00103 gridBagConstraints.weighty = 0.1;
00104 gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
00105 gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHEAST;
00106 getContentPane().add(closeButton, gridBagConstraints);
00107 closeButton.addActionListener(new java.awt.event.ActionListener() {
00108 public void actionPerformed(java.awt.event.ActionEvent evt) {
00109 setVisible(false);
00110 }
00111 });
00112
00113
00114 titleLabel.setText("title");
00115 titleLabel.setFont(new java.awt.Font("Arial",java.awt.Font.PLAIN,10));
00116 titleLabel.setForeground(new java.awt.Color(51, 0, 153));
00117 gridBagConstraints = new java.awt.GridBagConstraints();
00118 gridBagConstraints.gridx = 0;
00119 gridBagConstraints.gridy = 0;
00120 gridBagConstraints.gridwidth = 2;
00121 gridBagConstraints.weighty = 0.05;
00122 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
00123 gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
00124 gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHWEST;
00125 getContentPane().add(titleLabel, gridBagConstraints);
00126
00127 pack();
00128 }
00129
00130
00131
00132
00133
00135 private void exitForm(java.awt.event.WindowEvent evt) {
00136 setVisible(false);
00137 }
00138
00139
00140 public void valueChanged(ListSelectionEvent e) {
00141 selectedRow=-1;
00142 if(e.getValueIsAdjusting()) return;
00143 ListSelectionModel lsm = (ListSelectionModel)e.getSource();
00144 if(lsm.isSelectionEmpty()) {
00145
00146 }
00147 else {
00148 selectedRow = lsm.getMinSelectionIndex();
00149
00150 }
00151 }
00152
00153 public void update(String text, java.util.Vector theData) {
00154 titleLabel.setText(text);
00155 db.reTable(theData);
00156 if(db.recordCount>0) {
00157 saveButton.setEnabled(true);
00158 } else {
00159 saveButton.setEnabled(false);
00160 }
00161 show();
00162 }
00163 public int getSelectedRow() {
00164 return rowSM.getMinSelectionIndex();
00165 }
00166
00167
00168
00169
00170
00171 private javax.swing.JButton saveButton;
00172 private javax.swing.JButton closeButton;
00173 private javax.swing.JLabel titleLabel;
00174 private javax.swing.JScrollPane scrollPane;
00175 private javax.swing.JTable table;
00176
00177
00178
00179
00180 }