forked from Coded/SIPRP
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
154 lines
3.9 KiB
154 lines
3.9 KiB
/*
|
|
* PerfilProtocoloPanel.java
|
|
*
|
|
* Created on January 27, 2006, 12:24 AM
|
|
*
|
|
* To change this template, choose Tools | Template Manager
|
|
* and open the template in the editor.
|
|
*/
|
|
|
|
package siprp.clientes;
|
|
|
|
import java.awt.*;
|
|
import java.awt.event.*;
|
|
import javax.swing.*;
|
|
import java.util.*;
|
|
|
|
import com.evolute.utils.data.*;
|
|
import com.evolute.utils.dataui.*;
|
|
import com.evolute.utils.ui.panel.*;
|
|
|
|
/**
|
|
*
|
|
* @author fpalma
|
|
*/
|
|
public class PerfilProtocoloPanel extends JPanel
|
|
implements ControllableComponent, ItemListener
|
|
{
|
|
protected JCheckBox consultasCheck;
|
|
protected JCheckBox examesCheck;
|
|
protected CheckBoxPanel tiposCheck[];
|
|
|
|
protected IDObject grupos[];
|
|
protected IDObject tipos[][];
|
|
|
|
/** Creates a new instance of PerfilProtocoloPanel */
|
|
public PerfilProtocoloPanel( IDObject grupos[], IDObject tipos[][] )
|
|
{
|
|
this.grupos = grupos;
|
|
this.tipos = tipos;
|
|
setupComponents();
|
|
}
|
|
|
|
private void setupComponents()
|
|
{
|
|
consultasCheck = new JCheckBox( "Consultas" );
|
|
examesCheck = new JCheckBox( "Exames" );
|
|
examesCheck.addItemListener( this );
|
|
tiposCheck = new CheckBoxPanel[ grupos.length ];
|
|
|
|
GridBagLayout gridbag = new GridBagLayout();
|
|
setLayout( gridbag );
|
|
GridBagConstraints constraints = new GridBagConstraints();
|
|
constraints.insets = new Insets( 1, 1, 1, 1 );
|
|
|
|
constraints.fill = GridBagConstraints.HORIZONTAL;
|
|
constraints.weighty = 0;
|
|
constraints.weightx = 1;
|
|
constraints.gridheight = 1;
|
|
constraints.gridwidth = GridBagConstraints.REMAINDER;
|
|
gridbag.setConstraints( consultasCheck, constraints );
|
|
gridbag.setConstraints( examesCheck, constraints );
|
|
|
|
add( consultasCheck );
|
|
add( examesCheck );
|
|
|
|
constraints.fill = GridBagConstraints.BOTH;
|
|
constraints.weighty = grupos.length > 0 ? 1.0 / grupos.length : 0.0;
|
|
for( int n = 0; n < grupos.length; n++ )
|
|
{
|
|
tiposCheck[ n ] = setupComponentsGrupo( n );
|
|
gridbag.setConstraints( tiposCheck[ n ], constraints );
|
|
add( tiposCheck[ n ] );
|
|
tiposCheck[ n ].setEnabled( false );
|
|
}
|
|
}
|
|
|
|
private CheckBoxPanel setupComponentsGrupo( int indice )
|
|
{
|
|
String desc = grupos[ indice ].toString();
|
|
CheckBoxPanel panel = new CheckBoxPanel( tipos[ indice ] );
|
|
panel.setBorder( BorderFactory.createTitledBorder(
|
|
BorderFactory.createEtchedBorder(), desc ) );
|
|
return panel;
|
|
}
|
|
|
|
public void fill( Object data )
|
|
{
|
|
clear();
|
|
if( data != null )
|
|
{
|
|
Vector list = ( Vector ) data;
|
|
boolean consultasExames[] = (boolean[]) list.elementAt( 0 );
|
|
Integer tiposEscolhidos[] = ( Integer [] ) list.elementAt( 1 );
|
|
consultasCheck.setSelected( consultasExames[ 0 ] );
|
|
examesCheck.setSelected( consultasExames[ 1 ] );
|
|
for( int n = 0; n < tiposCheck.length; n++ )
|
|
{
|
|
tiposCheck[ n ].fill( tiposEscolhidos );
|
|
}
|
|
}
|
|
}
|
|
|
|
public Object save()
|
|
{
|
|
boolean consultasExames[] = new boolean[ 2 ];
|
|
consultasExames[ 0 ] = consultasCheck.isSelected();
|
|
consultasExames[ 1 ] = examesCheck.isSelected();
|
|
Vector tiposEscolhidos = new Vector();
|
|
if( consultasExames[ 1 ] )
|
|
{
|
|
for( int n = 0; n < tiposCheck.length; n++ )
|
|
{
|
|
tiposEscolhidos.addAll( Arrays.asList( tiposCheck[ n ].getSelected() ) );
|
|
}
|
|
}
|
|
Vector list = new Vector();
|
|
list.add( consultasExames );
|
|
list.add( tiposEscolhidos.toArray( new Integer[ tiposEscolhidos.size() ] ) );
|
|
return list;
|
|
}
|
|
|
|
public void setEnabled( boolean enable )
|
|
{
|
|
consultasCheck.setEnabled( enable );
|
|
examesCheck.setEnabled( enable );
|
|
for( int n = 0; n < tiposCheck.length; n++ )
|
|
{
|
|
tiposCheck[ n ].setEnabled( enable && examesCheck.isSelected() );
|
|
}
|
|
}
|
|
|
|
public void clear()
|
|
{
|
|
consultasCheck.setSelected( false );
|
|
examesCheck.setSelected( false );
|
|
for( int n = 0; n < tiposCheck.length; n++ )
|
|
{
|
|
tiposCheck[ n ].clear();
|
|
}
|
|
}
|
|
|
|
public void itemStateChanged( ItemEvent e )
|
|
{
|
|
Object source = e.getSource();
|
|
if( source.equals( examesCheck ) )
|
|
{
|
|
for( int n = 0; n < tiposCheck.length; n++ )
|
|
{
|
|
tiposCheck[ n ].setEnabled( examesCheck.isEnabled() && examesCheck.isSelected() );
|
|
}
|
|
}
|
|
}
|
|
}
|