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() );
 | |
| 			}
 | |
| 		}
 | |
| 	}
 | |
| }
 |