/*************************************************** * * cismet GmbH, Saarbruecken, Germany * * ... and it just works. * ****************************************************/ /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package de.cismet.cids.custom.switchon; import java.text.DecimalFormat; import java.text.DecimalFormatSymbols; import java.text.NumberFormat; import java.util.List; import java.util.Locale; import javax.swing.ListSelectionModel; import javax.swing.UIManager; import javax.swing.event.TableModelListener; import javax.swing.table.TableModel; /** * DOCUMENT ME! * * @author jlauter * @version $Revision$, $Date$ */ public class RaineventTablePanel extends javax.swing.JPanel { //~ Instance fields -------------------------------------------------------- private final transient Rainevent rainevent; // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JLabel lblTableHeader; private javax.swing.JScrollPane spTable; private javax.swing.JTable tblRainevent; // End of variables declaration//GEN-END:variables //~ Constructors ----------------------------------------------------------- /** * Creates new form RaineventTablePanel. * * @param rainevent DOCUMENT ME! */ public RaineventTablePanel(final Rainevent rainevent) { this.rainevent = rainevent; initComponents(); init(); } //~ Methods ---------------------------------------------------------------- /** * DOCUMENT ME! */ private void init() { tblRainevent.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); tblRainevent.getTableHeader().setReorderingAllowed(false); tblRainevent.setCellSelectionEnabled(true); final List<Double> precipations = rainevent.getPrecipitations(); final Object[][] data = new Object[1][precipations.size()]; int i = 0; for (final Double d : precipations) { final NumberFormat nf = new DecimalFormat("#0.00", new DecimalFormatSymbols(Locale.ENGLISH)); final String formated = nf.format(d.doubleValue()); data[0][i++] = Double.parseDouble(formated); } lblTableHeader.setForeground(UIManager.getColor("TableHeader.foreground")); lblTableHeader.setBackground(UIManager.getColor("TableHeader.background")); lblTableHeader.setBorder(UIManager.getBorder("TableHeader.cellBorder")); lblTableHeader.setFont(UIManager.getFont("TableHeader.font")); tblRainevent.setModel(new RaineventTableModel(data, rainevent.getInterval())); // spTable.setPreferredSize(tblRainevent.getPreferredSize()); // spTable.setMaximumSize(tblRainevent.getPreferredSize()); // spTable.setMinimumSize(tblRainevent.getPreferredSize()); tblRainevent.setPreferredScrollableViewportSize(tblRainevent.getPreferredSize()); } /** * 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() { java.awt.GridBagConstraints gridBagConstraints; spTable = new javax.swing.JScrollPane(); tblRainevent = new javax.swing.JTable(); lblTableHeader = new javax.swing.JLabel(); setOpaque(false); setLayout(new java.awt.GridBagLayout()); spTable.setViewportBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1)); spTable.setMaximumSize(new java.awt.Dimension(300, 65)); spTable.setPreferredSize(new java.awt.Dimension(300, 65)); tblRainevent.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1)); tblRainevent.setModel(new javax.swing.table.DefaultTableModel( new Object[][] {}, new String[] {})); tblRainevent.getTableHeader().setReorderingAllowed(false); spTable.setViewportView(tblRainevent); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START; gridBagConstraints.weightx = 1.0; gridBagConstraints.weighty = 1.0; add(spTable, gridBagConstraints); lblTableHeader.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); lblTableHeader.setText(org.openide.util.NbBundle.getMessage( RaineventTablePanel.class, "RaineventTablePanel.lblTableHeader.text")); // NOI18N lblTableHeader.setOpaque(true); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; add(lblTableHeader, gridBagConstraints); } // </editor-fold>//GEN-END:initComponents //~ Inner Classes ---------------------------------------------------------- /** * DOCUMENT ME! * * @version $Revision$, $Date$ */ private static final class RaineventTableModel implements TableModel { //~ Instance fields ---------------------------------------------------- private final Object[][] data; private final int interval; //~ Constructors ------------------------------------------------------- /** * Creates a new RaineventTableModel object. * * @param data DOCUMENT ME! * @param interval DOCUMENT ME! */ public RaineventTableModel(final Object[][] data, final int interval) { this.data = data; this.interval = interval; } //~ Methods ------------------------------------------------------------ @Override public int getRowCount() { if ((data != null) && (data.length > 0)) { return data.length; } return 0; } @Override public int getColumnCount() { if ((data != null) && (data.length > 0)) { return data[0].length; } return 0; } @Override public String getColumnName(final int i) { if ((data != null) && (i < data[0].length)) { final String time = String.valueOf(interval + (interval * i)); return time; } return null; } @Override public Class<?> getColumnClass(final int i) { return Double.class; } @Override public boolean isCellEditable(final int i, final int i1) { return false; } @Override public Object getValueAt(final int i, final int i1) { if ((data != null) && (i < data.length) && (i1 < data[i].length)) { return data[i][i1]; } return null; } @Override public void setValueAt(final Object o, final int i, final int i1) { } @Override public void addTableModelListener(final TableModelListener tl) { } @Override public void removeTableModelListener(final TableModelListener tl) { } } }