/* * AvisosPanel.java * * Created on 21 de Maio de 2004, 13:06 */ package siprp.clientes; import java.awt.*; import java.awt.event.*; import java.text.*; import java.util.*; import javax.swing.*; import java.util.*; import com.evolute.utils.*; import com.evolute.utils.dataui.*; import com.evolute.utils.jdo.*; import com.evolute.utils.ui.*; import siprp.*; import siprp.data.*; /** * * @author fpalma */ public class AvisosPanel extends JPanel implements ActionListener, ControllableComponent { private static final DateFormat DATE_FORMAT = DateFormat.getDateInstance( DateFormat.SHORT ); private JDOProvider JDO; private FichaDataProvider provider; private SIPRPTracker tracker; private JPanel empresaPanel; private JPanel estabelecimentosPanel; private JPanel trabalhadoresPanel; // private AvisoData avisos[]; // private AvisoData avisosEmpresa[]; // private AvisoData avisosEstabelecimento[]; // private AvisoData avisosTrabalhador[]; private Object avisosEmpresa[][]; private Object avisosEstabelecimento[][]; private Object avisosTrabalhador[][]; private boolean refreshed = false; private Hashtable buttonHash; private Hashtable buttonTypeHash; /** Creates a new instance of AvisosPanel */ public AvisosPanel(/* AvisoData avisosEmpresa[], AvisoData avisosEstabelecimento[], AvisoData avisosTrabalhador[]*/ ) throws Exception { // this.avisosEmpresa = new AvisoData[ 0 ]; // this.avisosEstabelecimento = new AvisoData[ 0 ]; // this.avisosTrabalhador = new AvisoData[ 0 ]; // setupComponents(); buttonHash = new Hashtable(); buttonTypeHash = new Hashtable(); JDO = (JDOProvider) Singleton.getInstance( Singleton.DEFAULT_JDO_PROVIDER ); // System.out.println( "public AvisosPanel() JDO: " + JDO ); } private void setupComponents() { empresaPanel = new JPanel(); empresaPanel.setBorder( BorderFactory.createTitledBorder( BorderFactory.createLineBorder( new Color( 0.0f, 0.0f, 0.0f, 0.0f ), 1 ), "Empresas" ) ); empresaPanel.setLayout( new GridLayout( avisosEmpresa.length, 1 ) ); GridBagConstraints constraints = new GridBagConstraints(); constraints.insets = new Insets( 1, 1, 1, 1 ); constraints.fill = GridBagConstraints.HORIZONTAL; constraints.weighty = 0; for( int n = 0; n < avisosEmpresa.length; n++ ) { JPanel pan = new JPanel(); GridBagLayout gridbag = new GridBagLayout(); pan.setBorder( BorderFactory.createLineBorder( Color.black, 1 ) ); // EmpresaData empresa = (EmpresaData)avisosEmpresa[ n ].get( AvisoData.EMPRESA ); pan.setLayout( gridbag ); constraints.gridheight = GridBagConstraints.REMAINDER; constraints.gridx = 0; constraints.weightx = 0; constraints.gridwidth = 1; JButton tratarButton = new JButton( "Tratar" ); gridbag.setConstraints( tratarButton, constraints ); pan.add( tratarButton ); //buttonHash.put( tratarButton, avisosEmpresa[ n ] ); // buttonHash.put( tratarButton, new Integer( n ) ); // buttonHash.put( tratarButton, avisosEmpresa[ n ].get( AvisoData.ID ) ); buttonHash.put( tratarButton, avisosEmpresa[ n ][ 0 ] ); buttonTypeHash.put( tratarButton, new Integer( AvisoConstants.TIPO_EMPRESA ) ); tratarButton.addActionListener( this ); constraints.gridx = 1; constraints.weightx = 1; constraints.gridheight = 1; constraints.gridwidth = GridBagConstraints.REMAINDER; // JLabel empresaLabel = new JLabel( "" + empresa.get( EmpresaData.DESIGNACAO_SOCIAL ) ); JLabel empresaLabel = new JLabel( "" + avisosEmpresa[ n ][ 3 ] ); gridbag.setConstraints( empresaLabel, constraints ); pan.add( empresaLabel ); constraints.weightx = 1; constraints.gridwidth = GridBagConstraints.REMAINDER; //JLabel descricaoLabel = new JLabel( (String)avisosEmpresa[ n ].get( AvisoData.DESCRICAO ) ); JLabel descricaoLabel = criarDescricao( avisosEmpresa[ n ] ); gridbag.setConstraints( descricaoLabel, constraints ); pan.add( descricaoLabel ); empresaPanel.add( pan ); } estabelecimentosPanel = new JPanel(); estabelecimentosPanel.setBorder( BorderFactory.createTitledBorder( BorderFactory.createLineBorder( new Color( 0.0f, 0.0f, 0.0f, 0.0f ), 1 ), "Estabelecimentos" ) ); estabelecimentosPanel.setLayout( new GridLayout( avisosEstabelecimento.length, 1 ) ); for( int n = 0; n < avisosEstabelecimento.length; n++ ) { Date dataAviso = ( Date ) avisosEstabelecimento[ n ][ 5 ]; Date dataEvento = ( Date ) avisosEstabelecimento[ n ][ 1 ]; Calendar calAviso = Calendar.getInstance(); calAviso.setTime( dataAviso ); Calendar calEvento = Calendar.getInstance(); calEvento.setTime( dataEvento ); boolean mesmoDia = ( calAviso.get( Calendar.YEAR ) == calEvento.get( Calendar.YEAR ) ) && ( calAviso.get( Calendar.MONTH ) == calEvento.get( Calendar.MONTH ) ) && ( calAviso.get( Calendar.DAY_OF_MONTH ) == calEvento.get( Calendar.DAY_OF_MONTH ) ); JPanel pan = new JPanel(); GridBagLayout gridbag = new GridBagLayout(); pan.setBorder( BorderFactory.createLineBorder( Color.black, 1 ) ); // EstabelecimentoData estabelecimento = (EstabelecimentoData)avisosEstabelecimento[ n ].get( AvisoData.ESTABELECIMENTO ); // EmpresaData empresa = (EmpresaData)estabelecimento.get( EstabelecimentoData.EMPRESA ); pan.setLayout( gridbag ); constraints.gridheight = GridBagConstraints.REMAINDER; constraints.gridx = 0; constraints.weightx = 0; constraints.gridwidth = 1; JButton tratarButton = new JButton( mesmoDia ? "Confirmar" : "Marcar" ); gridbag.setConstraints( tratarButton, constraints ); pan.add( tratarButton ); //buttonHash.put( tratarButton, avisosEstabelecimento[ n ] ); // buttonHash.put( tratarButton, new Integer( n + avisosEmpresa.length ) ); // buttonHash.put( tratarButton, avisosEstabelecimento[ n ].get( AvisoData.ID ) ); buttonHash.put( tratarButton, avisosEstabelecimento[ n ][ 0 ] ); buttonTypeHash.put( tratarButton, new Integer( AvisoConstants.TIPO_ESTABELECIMENTO ) ); tratarButton.addActionListener( this ); constraints.gridx = 1; constraints.weightx = 1; constraints.gridheight = 1; constraints.gridwidth = GridBagConstraints.REMAINDER; // JLabel empresaLabel = new JLabel( "" + empresa.get( EmpresaData.DESIGNACAO_SOCIAL ) ); JLabel empresaLabel = new JLabel( "" + avisosEstabelecimento[ n ][ 3 ] ); gridbag.setConstraints( empresaLabel, constraints ); pan.add( empresaLabel ); // JLabel estabelecimentoLabel = new JLabel( "" + estabelecimento.get( EstabelecimentoData.NOME ) ); JLabel estabelecimentoLabel = new JLabel( "" + avisosEstabelecimento[ n ][ 4 ] ); gridbag.setConstraints( estabelecimentoLabel, constraints ); pan.add( estabelecimentoLabel ); constraints.gridwidth = GridBagConstraints.REMAINDER; //JLabel descricaoLabel = new JLabel( (String)avisosEstabelecimento[ n ].get( AvisoData.DESCRICAO ) ); JLabel descricaoLabel = criarDescricao( avisosEstabelecimento[ n ] ); gridbag.setConstraints( descricaoLabel, constraints ); pan.add( descricaoLabel ); estabelecimentosPanel.add( pan ); } trabalhadoresPanel = new JPanel(); trabalhadoresPanel.setBorder( BorderFactory.createTitledBorder( BorderFactory.createLineBorder( new Color( 0.0f, 0.0f, 0.0f, 0.0f ), 1 ), "Trabalhadores" ) ); trabalhadoresPanel.setLayout( new GridLayout( avisosTrabalhador.length, 1 ) ); for( int n = 0; n < avisosTrabalhador.length; n++ ) { Date dataAviso = ( Date ) avisosTrabalhador[ n ][ 6 ]; Date dataEvento = ( Date ) avisosTrabalhador[ n ][ 1 ]; Calendar calAviso = Calendar.getInstance(); calAviso.setTime( dataAviso ); Calendar calEvento = Calendar.getInstance(); calEvento.setTime( dataEvento ); boolean mesmoDia = ( calAviso.get( Calendar.YEAR ) == calEvento.get( Calendar.YEAR ) ) && ( calAviso.get( Calendar.MONTH ) == calEvento.get( Calendar.MONTH ) ) && ( calAviso.get( Calendar.DAY_OF_MONTH ) == calEvento.get( Calendar.DAY_OF_MONTH ) ); JPanel pan = new JPanel(); GridBagLayout gridbag = new GridBagLayout(); pan.setBorder( BorderFactory.createLineBorder( Color.black, 1 ) ); // TrabalhadorData trabalhador = (TrabalhadorData)avisosTrabalhador[ n ].get( AvisoData.TRABALHADOR ); // EstabelecimentoData estabelecimento = (EstabelecimentoData)trabalhador.get( TrabalhadorData.ESTABELECIMENTO ); // EmpresaData empresa = (EmpresaData)estabelecimento.get( EstabelecimentoData.EMPRESA ); pan.setLayout( gridbag ); constraints.gridheight = GridBagConstraints.REMAINDER; constraints.gridx = 0; constraints.weightx = 0; constraints.gridwidth = 1; JButton tratarButton = new JButton( mesmoDia ? "Confirmar" : "Marcar" ); gridbag.setConstraints( tratarButton, constraints ); pan.add( tratarButton ); //buttonHash.put( tratarButton, avisosTrabalhador[ n ] ); // buttonHash.put( tratarButton, new Integer( n + avisosEmpresa.length + avisosEstabelecimento.length ) ); // buttonHash.put( tratarButton, avisosTrabalhador[ n ].get( AvisoData.ID ) ); buttonHash.put( tratarButton, avisosTrabalhador[ n ][ 0 ] ); buttonTypeHash.put( tratarButton, new Integer( AvisoConstants.TIPO_TRABALHADOR ) ); tratarButton.addActionListener( this ); constraints.gridx = 1; constraints.weightx = 1; constraints.gridheight = 1; constraints.gridwidth = GridBagConstraints.REMAINDER; // JLabel empresaLabel = new JLabel( "" + empresa.get( EmpresaData.DESIGNACAO_SOCIAL ) ); JLabel empresaLabel = new JLabel( "" + avisosTrabalhador[ n ][ 3 ] ); gridbag.setConstraints( empresaLabel, constraints ); pan.add( empresaLabel ); // JLabel estabelecimentoLabel = new JLabel( "" + estabelecimento.get( EstabelecimentoData.NOME ) ); JLabel estabelecimentoLabel = new JLabel( "" + avisosTrabalhador[ n ][ 4 ] ); gridbag.setConstraints( estabelecimentoLabel, constraints ); pan.add( estabelecimentoLabel ); // JLabel trabalhadorLabel = new JLabel( "" + trabalhador.get( TrabalhadorData.NOME ) ); JLabel trabalhadorLabel = new JLabel( "" + avisosTrabalhador[ n ][ 5 ] ); gridbag.setConstraints( trabalhadorLabel, constraints ); pan.add( trabalhadorLabel ); constraints.gridwidth = GridBagConstraints.REMAINDER; //JLabel descricaoLabel = new JLabel( (String)avisosTrabalhador[ n ].get( AvisoData.DESCRICAO ) ); JLabel descricaoLabel = criarDescricao( avisosTrabalhador[ n ] ); gridbag.setConstraints( descricaoLabel, constraints ); pan.add( descricaoLabel ); trabalhadoresPanel.add( pan ); } // Vector v = new Vector( Arrays.asList( avisosEmpresa ) ); // v.addAll( Arrays.asList( avisosTrabalhador ) ); // v.addAll( Arrays.asList( avisosEstabelecimento ) ); // avisos = (AvisoData []) v.toArray( new AvisoData[0] ); JScrollPane scp = new JScrollPane(); setLayout( new GridLayout( 1, 1 ) ); add( scp ); JPanel contentPanel = new JPanel(); scp.setViewportView( contentPanel ); // contentPanel.setLayout( new BoxLayout( contentPanel, BoxLayout.Y_AXIS ) ); // contentPanel.setLayout( new FlowLayout() ); GridBagLayout gridbag = new GridBagLayout(); contentPanel.setLayout( gridbag ); constraints = new GridBagConstraints(); constraints.insets = new Insets( 1, 1, 1, 1 ); constraints.fill = GridBagConstraints.BOTH; constraints.gridwidth = GridBagConstraints.REMAINDER; constraints.weightx = 1; constraints.gridheight = 1; constraints.weighty = 0; if( avisosEmpresa.length > 0 ) { gridbag.setConstraints( empresaPanel, constraints ); contentPanel.add( empresaPanel ); } if( avisosTrabalhador.length > 0 ) { // contentPanel.add( new JLabel( " " ) ); gridbag.setConstraints( trabalhadoresPanel, constraints ); contentPanel.add( trabalhadoresPanel ); } if( avisosEstabelecimento.length > 0 ) { // contentPanel.add( new JLabel( " " ) ); gridbag.setConstraints( estabelecimentosPanel, constraints ); contentPanel.add( estabelecimentosPanel ); } } public void refresh() { if( refreshed ) { return; } refreshed = true; try { provider = ( FichaDataProvider ) FichaDataProvider.getProvider(); // Collection c = AvisoData.load( AvisoData.class, " estabelecimento_id == \"null\" ", // AvisoData.DATA_EVENTO + " ascending" ); // Collection c = AvisoData.load( AvisoData.class, "(tipo == " + AvisoData.TIPO_EMPRESA+")",// + ") && ( data_aviso <= CURRENT_DATE )", // AvisoData.DATA_EVENTO + " ascending" ); // Collection c = AvisoData.load( AvisoData.class, new Object[]{ /*new Integer( AvisoData.TIPO_EMPRESA ), */new Date() }, // new String[]{ /*"tipo", */"data_aviso" }, // new String[]{ "=="/*, "==" */}, // new String[]{ AvisoData.DATA_EVENTO + " ascending" } ); // if( c == null ) // { // avisosEmpresa = new AvisoData[ 0 ]; // } // else // { // // avisosEmpresa = ( AvisoData[] )c.toArray( new AvisoData[ c.size() ] ); // } // Integer ids[] = provider.getAvisosIDByTipoAndDate( new Integer( AvisoConstants.TIPO_EMPRESA ), new Date() ); // avisosEmpresa = new AvisoData[ ids.length ]; // if( JDO == null ) // { // JDO = ( JDOProvider ) Singleton.getInstance( Singleton.DEFAULT_JDO_PROVIDER ); // } //// System.out.println( "JDO: " + JDO ); // for( int n = 0; n < avisosEmpresa.length; n++ ) // { // avisosEmpresa[ n ] = (AvisoData) JDO.load( AvisoData.class, ids[ n ] ); // } // ////System.out.println( "EmpresaData " + avisosEmpresa.length ); //// c = AvisoData.load( AvisoData.class, " tipo == " + AvisoData.TIPO_ESTABELECIMENTO,// + ") && ( data_aviso <= new Date() )", //// AvisoData.DATA_EVENTO + " ascending" ); //// c = AvisoData.load( AvisoData.class, "estabelecimento_id != \"null\" " //// + " && trabalhador_id == \"null\"", AvisoData.DATA_EVENTO + " ascending" ); //// if( c == null ) //// { //// avisosEstabelecimento = new AvisoData[ 0 ]; //// } //// else //// { //// avisosEstabelecimento = ( AvisoData[] )c.toArray( new AvisoData[ c.size() ] ); //// } // // ids = provider.getAvisosIDByTipoAndDate( new Integer( AvisoConstants.TIPO_ESTABELECIMENTO ), new Date() ); // avisosEstabelecimento = new AvisoData[ ids.length ]; // for( int n = 0; n < avisosEstabelecimento.length; n++ ) // { // avisosEstabelecimento[ n ] = (AvisoData) JDO.load( AvisoData.class, new Object[]{ids[ n ]}, new String[]{ "id" } ); // } ////System.out.println( "EstabelecimentoData " + avisosEstabelecimento.length ); //// c = AvisoData.load( AvisoData.class, " tipo == " + AvisoData.TIPO_TRABALHADOR,// + ") && ( data_aviso <= new Date() )", //// AvisoData.DATA_EVENTO + " ascending" ); //// c = AvisoData.load( AvisoData.class, "trabalhador_id != \"null\"", AvisoData.DATA_EVENTO + " ascending" ); //// if( c == null ) //// { //// avisosTrabalhador = new AvisoData[ 0 ]; //// } //// else //// { //// avisosTrabalhador = ( AvisoData[] )c.toArray( new AvisoData[ c.size() ] ); //// } // ids = provider.getAvisosIDByTipoAndDate( new Integer( AvisoConstants.TIPO_TRABALHADOR ), new Date() ); // // avisosTrabalhador = new AvisoData[ ids.length ]; // for( int n = 0; n < avisosTrabalhador.length; n++ ) // { // avisosTrabalhador[ n ] = (AvisoData) JDO.load( AvisoData.class, ids[ n ] ); // } //System.out.println( "trabalhador " + avisosTrabalhador.length ); avisosEmpresa = provider.getAvisosEmpresaByDate( new Date() ); avisosEstabelecimento = provider.getAvisosEstabelecimentoByDate( new Date() ); avisosTrabalhador = provider.getAvisosTrabalhadorByDate( new Date() ); } catch( Exception ex ) { ex.printStackTrace(); } setupComponents(); setVisible( true ); repaint(); } private JLabel criarDescricao( Object aviso[] ) { Date dataEvento = ( Date )aviso[ 1 ]; String descricao = (String)aviso[ 2 ]; Calendar cal = Calendar.getInstance(); cal.setTime( dataEvento ); cal.set( cal.get( Calendar.YEAR ), cal.get( Calendar.MONTH ), cal.get( Calendar.DAY_OF_MONTH ), 0, 0, 0 ); cal.set( Calendar.MILLISECOND, 0 ); dataEvento = cal.getTime(); cal = Calendar.getInstance(); cal.set( cal.get( Calendar.YEAR ), cal.get( Calendar.MONTH ), cal.get( Calendar.DAY_OF_MONTH ), 0, 0, 0 ); cal.set( Calendar.MILLISECOND, 0 ); Date hoje = cal.getTime(); if( !hoje.after( dataEvento ) && !hoje.before( dataEvento ) ) { descricao += " hoje"; } else { descricao += " no dia " + DATE_FORMAT.format( dataEvento ); } JLabel descricaoLabel = new JLabel( descricao ); if( hoje.after( dataEvento ) ) { descricaoLabel.setForeground( Color.red ); } else if( hoje.equals( dataEvento ) ) { descricaoLabel.setForeground( Color.green.darker() ); } return descricaoLabel; } // private JLabel criarDescricao( AvisoData aviso ) // { // Date dataEvento = ( Date )aviso.get( AvisoData.DATA_EVENTO ); // // String descricao = (String)aviso.get( AvisoData.DESCRICAO ); // String descricao2 = (String)aviso.get( AvisoData.DESCRICAO ); // Calendar cal = Calendar.getInstance(); // cal.setTime( dataEvento ); // cal.set( cal.get( Calendar.YEAR ), cal.get( Calendar.MONTH ), cal.get( Calendar.DAY_OF_MONTH ), 0, 0, 0 ); // cal.set( Calendar.MILLISECOND, 0 ); // dataEvento = cal.getTime(); // // cal = Calendar.getInstance(); // cal.set( cal.get( Calendar.YEAR ), cal.get( Calendar.MONTH ), cal.get( Calendar.DAY_OF_MONTH ), 0, 0, 0 ); // cal.set( Calendar.MILLISECOND, 0 ); // Date hoje = cal.getTime(); // // if( !hoje.after( dataEvento ) && !hoje.before( dataEvento ) ) // { // descricao += " hoje"; // } // else // { // descricao += " no dia " + DATE_FORMAT.format( dataEvento ); // } // JLabel descricaoLabel = new JLabel( descricao ); // if( hoje.after( dataEvento ) ) // { // descricaoLabel.setForeground( Color.red ); // } // else if( hoje.equals( dataEvento ) ) // { // descricaoLabel.setForeground( Color.green.darker() ); // } // return descricaoLabel; // } public void actionPerformed( ActionEvent e ) { if( JDO == null ) { JDO = ( JDOProvider ) Singleton.getInstance( Singleton.DEFAULT_JDO_PROVIDER ); } Object source = e.getSource(); if( source instanceof JButton ) { // AvisoData aviso = (AvisoData) buttonHash.get( source ); try { ( (JButton) source ).setEnabled( false ); Integer id = (Integer)buttonHash.get( source ); if( id == null ) { return; } buttonHash.remove( source ); AvisoData aviso = (AvisoData) JDO.load( AvisoData.class, id ); if( aviso == null ) { JOptionPane.showMessageDialog( null, "Este aviso j\u00e1 foi tratado.", "J\u00e1 tratado", JOptionPane.WARNING_MESSAGE ); return; } Hashtable dataHash = aviso.getHashData(); Date dataEvento = (Date)dataHash.get( AvisoData.DATA_EVENTO ); Calendar cal = Calendar.getInstance(); cal.setTime( dataEvento ); cal.set( cal.get( Calendar.YEAR ), cal.get( Calendar.MONTH ), cal.get( Calendar.DAY_OF_MONTH ), 0, 0, 0 ); cal.set( Calendar.MILLISECOND, 0 ); dataEvento = cal.getTime(); cal = Calendar.getInstance(); cal.set( cal.get( Calendar.YEAR ), cal.get( Calendar.MONTH ), cal.get( Calendar.DAY_OF_MONTH ), 10, 0, 0 ); cal.set( Calendar.MILLISECOND, 0 ); Date hoje = cal.getTime(); if( hoje.before( dataEvento ) ) { AvisoData novoAviso = new AvisoData(); novoAviso.setHashData( dataHash ); novoAviso.set( AvisoData.DATA_AVISO, dataEvento ); novoAviso.save(); } Integer tipo = (Integer) aviso.get( AvisoData.TIPO ); TrabalhadorData trabalhador; EstabelecimentoData estabelecimento; EmpresaData empresa; switch( tipo.intValue() ) { case AvisoConstants.TIPO_TRABALHADOR: trabalhador = (TrabalhadorData) aviso.get( AvisoData.TRABALHADOR ); estabelecimento = (EstabelecimentoData) trabalhador.get( TrabalhadorData.ESTABELECIMENTO ); empresa = (EmpresaData) estabelecimento.get( EstabelecimentoData.EMPRESA ); aviso.delete(); tracker.getMedicinaWindow().setVisible( true ); tracker.getMedicinaWindow().setEmpresaAndEstabelecimentoAndTrabalhador( (Integer) empresa.get( EmpresaData.ID ), ( Integer ) estabelecimento.get( EstabelecimentoData.ID ), ( Integer ) trabalhador.get( TrabalhadorData.ID ) ); break; case AvisoConstants.TIPO_ESTABELECIMENTO: estabelecimento = (EstabelecimentoData) aviso.get( AvisoData.ESTABELECIMENTO ); empresa = (EmpresaData) estabelecimento.get( EstabelecimentoData.EMPRESA ); aviso.delete(); tracker.getHigieneWindow().setVisible( true ); tracker.getHigieneWindow().setEmpresaAndEstabelecimento( (Integer) empresa.get( EmpresaData.ID ), ( Integer ) estabelecimento.get( EstabelecimentoData.ID ) ); break; case AvisoConstants.TIPO_EMPRESA: empresa = (EmpresaData) aviso.get( AvisoData.EMPRESA ); aviso.delete(); ClientesWindow clientesWindow = tracker.getClientesWindow(); clientesWindow.setVisible( true ); clientesWindow.setJDOObject( empresa ); break; } System.out.println( "delete aviso" ); // aviso.set( AvisoData.TRABALHADOR, null ); // aviso.set( AvisoData.ESTABELECIMENTO, null ); // aviso.set( AvisoData.EMPRESA, null ); } catch( Exception ex ) { DialogException.showExceptionMessage( ex, "Erro a limpar o aviso", true ); } } } public void clear() { } public void fill(Object value) { } public Object save() { return null; } public void setEnabled( boolean enable ) { Set buttonSet = buttonHash.keySet(); JButton buttons[] = (JButton[]) buttonSet.toArray( new JButton[0] ); for( int n = 0;n < buttons.length; n++ ) { buttons[ n ].setEnabled( enable ); } } public void setEnabled( boolean enable, int type ) { Set buttonSet = buttonHash.keySet(); JButton buttons[] = (JButton[]) buttonSet.toArray( new JButton[0] ); for( int n = 0;n < buttons.length; n++ ) { Integer buttonType = ( Integer ) buttonTypeHash.get( buttons[ n ] ); if( buttonType.intValue() == type ) { buttons[ n ].setEnabled( enable ); } } } public void setTracker( SIPRPTracker tracker ) { this.tracker = tracker; } }