/* * MapaHigienePanel.java * * Created on 9 de Fevereiro de 2006, 0:11 * * To change this template, choose Tools | Template Manager * and open the template in the editor. */ package siprp.higiene.mapa; import java.awt.*; import javax.swing.*; import java.util.*; import com.evolute.utils.dataui.*; import com.evolute.utils.date.*; import com.evolute.utils.tables.*; /** * * @author Frederico */ public class MapaHigienePanel extends JPanel implements ControllableComponent { protected BaseTable yearTable; protected VectorTableModel yearModel; protected JScrollPane yearScroll; /** Creates a new instance of MapaHigienePanel */ public MapaHigienePanel() throws Exception { setupComponents(); } private void setupComponents() throws Exception { String headers[] = new String[ 13 ]; headers[ 0 ] = " "; for( int n = 0; n < DateUtils.MONTHS_FULL_PT.length; n++ ) { headers[ n + 1 ] = DateUtils.MONTHS_FULL_PT[ n ]; } yearModel = new VectorTableModel( headers ); yearTable = new BaseTable( yearModel ); yearTable.fixColumnWidth( 0, 20 ); yearTable.setNonResizableNorReordable(); // yearTable.setEnabled( true ); yearModel.setEditable( true ); yearTable.setTableCellRenderer( new DiaRenderer() ); yearTable.setTableCellEditor( new DiaRenderer() ); yearScroll = new JScrollPane( yearTable, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER ); Vector values = yearModel.getValues(); for( int n = 0; n < 31; n++ ) { Vector data[] = new Vector[ 12 ]; for( int m = 0; m < 12; m++ ) { data[ m ] = new Vector(); } values.add( new DiaLine( n + 1, data ) ); } yearModel.setValues( values ); setLayout( new GridLayout( 1, 1 ) ); add( yearScroll ); } public void clear() { } public void setEnabled( boolean enable ) { yearTable.setEnabled( enable ); } public void fill( Object value ) { // if( true ) return; Vector arr[][] = ( Vector[][] )value; int maxs[] = new int[ arr.length ]; for( int r = 0; r < arr.length; r++ ) { maxs[ r ] = 1; for( int c = 0; c < arr[ r ].length; c++ ) { if( arr[ r ][ c ] != null && arr[ r ][ c ].size() > maxs[ r ] ) { maxs[ r ] = arr[ r ][ c ].size(); } DiaLine line = ( DiaLine ) yearModel.getRowAt( r ); line.clear( c + 1 ); line.setValueAt( arr[ r ][ c ], c + 1 ); yearModel.removeRowAt( r ); yearModel.insertRowAt( line, r ); } } for( int r = 0; r < arr.length; r++ ) { yearTable.setRowHeight( r, 20 + ( maxs[ r ] - 1 ) * 40 ); } } public Object save() { return null; } }