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.
184 lines
5.1 KiB
184 lines
5.1 KiB
/*
|
|
* EscolherMotivoDialog.java
|
|
*
|
|
* Created on 13 de Maio de 2007, 22:16
|
|
*
|
|
* To change this template, choose Tools | Template Manager
|
|
* and open the template in the editor.
|
|
*/
|
|
|
|
package siprp.medicina.processo;
|
|
|
|
import com.evolute.utils.data.IDObject;
|
|
import com.evolute.utils.data.MappableObject;
|
|
import com.evolute.utils.ui.CustomJDialog;
|
|
import java.awt.Dimension;
|
|
import java.awt.FlowLayout;
|
|
import java.awt.GridLayout;
|
|
import java.awt.event.ActionEvent;
|
|
import java.awt.event.ActionListener;
|
|
import java.util.HashMap;
|
|
import javax.swing.AbstractButton;
|
|
import javax.swing.JButton;
|
|
import javax.swing.JFrame;
|
|
import javax.swing.JPanel;
|
|
import javax.swing.JToggleButton;
|
|
import javax.swing.SwingUtilities;
|
|
import siprp.medicina.MedicinaConstants;
|
|
|
|
/**
|
|
*
|
|
* @author Frederico
|
|
*/
|
|
public class EscolherMotivoDialog extends CustomJDialog
|
|
implements ActionListener, MedicinaConstants
|
|
{
|
|
protected IDObject MOTIVOS[] =
|
|
new IDObject[]{
|
|
new MappableObject( MOTIVO_ADMISSAO_INTEGER, MOTIVO_ADMISSAO_STR ),
|
|
new MappableObject( MOTIVO_PERIODICO_INTEGER, MOTIVO_PERIODICO_STR ),
|
|
new MappableObject( MOTIVO_PERIODICO_INICIAL_INTEGER, MOTIVO_PERIODICO_INICIAL_STR ),
|
|
new MappableObject( MOTIVO_OCASIONAL_INTEGER, MOTIVO_OCASIONAL_STR )
|
|
};
|
|
|
|
protected IDObject SUB_MOTIVOS[][] =
|
|
new IDObject[][]{
|
|
{},
|
|
{},
|
|
{},
|
|
{ new MappableObject( SUB_MOTIVO_APOS_DOENCA_INTEGER, SUB_MOTIVO_APOS_DOENCA_STR ),
|
|
new MappableObject( SUB_MOTIVO_APOS_ACIDENTE_INTEGER, SUB_MOTIVO_APOS_ACIDENTE_STR ),
|
|
new MappableObject( SUB_MOTIVO_PEDIDO_TRABALHADOR_INTEGER, SUB_MOTIVO_PEDIDO_TRABALHADOR_STR ),
|
|
new MappableObject( SUB_MOTIVO_PEDIDO_SERVICO_INTEGER, SUB_MOTIVO_PEDIDO_SERVICO_STR ),
|
|
new MappableObject( SUB_MOTIVO_MUDANCA_FUNCAO_INTEGER, SUB_MOTIVO_MUDANCA_FUNCAO_STR ),
|
|
new MappableObject( SUB_MOTIVO_ALTERACAO_CONDICOES_INTEGER, SUB_MOTIVO_ALTERACAO_CONDICOES_STR ),
|
|
new MappableObject( SUB_MOTIVO_OUTRO_INTEGER, SUB_MOTIVO_OUTRO_STR )
|
|
}
|
|
};
|
|
|
|
protected AbstractButton motivoButtons[];
|
|
protected HashMap<AbstractButton,JButton[]> subMotivoButtons;
|
|
protected HashMap<AbstractButton,Integer> motivoButtonIDs;
|
|
protected HashMap<JButton,Integer> subMotivoButtonIDs;
|
|
protected JPanel motivoPanel;
|
|
protected JPanel subMotivoPanel;
|
|
|
|
protected Integer motivoTemp;
|
|
protected Integer motivo;
|
|
protected Integer subMotivo;
|
|
|
|
/** Creates a new instance of EscolherMotivoDialog */
|
|
public EscolherMotivoDialog( JFrame owner )
|
|
{
|
|
super( owner, true );
|
|
setupComponents();
|
|
|
|
if( owner != null )
|
|
{
|
|
centerSuper();
|
|
}
|
|
else
|
|
{
|
|
center();
|
|
}
|
|
}
|
|
|
|
private void setupComponents()
|
|
{
|
|
setTitle( "Escolher Motivo" );
|
|
setLayout( new FlowLayout( FlowLayout.LEFT ) );
|
|
motivoButtons = new JToggleButton[ MOTIVOS.length ];
|
|
subMotivoButtons = new HashMap<AbstractButton,JButton[]>();
|
|
motivoButtonIDs = new HashMap<AbstractButton,Integer>();
|
|
subMotivoButtonIDs = new HashMap<JButton,Integer>();
|
|
for( int m = 0; m < MOTIVOS.length; m++ )
|
|
{
|
|
JToggleButton motivoButton = new JToggleButton( MOTIVOS[ m ].toString() );
|
|
motivoButton.addActionListener( this );
|
|
motivoButtonIDs.put( motivoButton, MOTIVOS[ m ].getID() );
|
|
motivoButton.setPreferredSize( new Dimension( 250, 20 ) );
|
|
motivoButtons[ m ] = motivoButton;
|
|
if( SUB_MOTIVOS[ m ].length > 0 )
|
|
{
|
|
JButton subButtons[] = new JButton[ SUB_MOTIVOS[ m ].length ];
|
|
for( int sm = 0; sm < SUB_MOTIVOS[ m ].length; sm++ )
|
|
{
|
|
JButton subButton = new JButton( SUB_MOTIVOS[ m ][ sm ].toString() );
|
|
subMotivoButtonIDs.put( subButton, SUB_MOTIVOS[ m ][ sm ].getID() );
|
|
subButtons[ sm ] = subButton;
|
|
subButton.setPreferredSize( new Dimension( 300, 20 ) );
|
|
subButton.addActionListener( this );
|
|
}
|
|
subMotivoButtons.put( motivoButton, subButtons );
|
|
}
|
|
else
|
|
{
|
|
subMotivoButtons.put( motivoButton, null );
|
|
}
|
|
}
|
|
motivoPanel = new JPanel();
|
|
subMotivoPanel = new JPanel();
|
|
|
|
motivoPanel.setLayout( new GridLayout( motivoButtons.length + 1, 1 ) );
|
|
for( int n = 0; n < motivoButtons.length; n++ )
|
|
{
|
|
motivoPanel.add( motivoButtons[ n ] );
|
|
}
|
|
|
|
add( motivoPanel );
|
|
add( subMotivoPanel );
|
|
|
|
pack();
|
|
}
|
|
|
|
public void actionPerformed(ActionEvent e)
|
|
{
|
|
AbstractButton source = ( AbstractButton ) e.getSource();
|
|
if( motivoButtonIDs.containsKey( source ) )
|
|
{
|
|
motivoTemp = motivoButtonIDs.get( source );
|
|
}
|
|
else if( subMotivoButtonIDs.containsKey( source ) )
|
|
{
|
|
motivo = motivoTemp;
|
|
subMotivo = subMotivoButtonIDs.get( source );
|
|
close();
|
|
}
|
|
if( subMotivoButtons.containsKey( source ) )
|
|
{
|
|
JButton subButtons[] = subMotivoButtons.get( source );
|
|
if( subButtons == null || subButtons.length == 0 )
|
|
{
|
|
motivo = motivoTemp;
|
|
close();
|
|
}
|
|
else
|
|
{
|
|
subMotivoPanel.removeAll();
|
|
subMotivoPanel.setLayout( new GridLayout( 0, 1 ) );
|
|
for( int n = 0; n < subButtons.length; n++ )
|
|
{
|
|
subMotivoPanel.add( subButtons[ n ] );
|
|
}
|
|
pack();
|
|
}
|
|
}
|
|
}
|
|
|
|
protected void close()
|
|
{
|
|
SwingUtilities.invokeLater( new Runnable(){
|
|
public void run()
|
|
{
|
|
setVisible( false );
|
|
dispose();
|
|
}
|
|
} );
|
|
}
|
|
|
|
public Integer[] getMotivo()
|
|
{
|
|
return new Integer[]{ motivo, subMotivo };
|
|
}
|
|
}
|