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.
		
		
		
		
		
			
		
			
				
					
					
						
							289 lines
						
					
					
						
							8.2 KiB
						
					
					
				
			
		
		
	
	
							289 lines
						
					
					
						
							8.2 KiB
						
					
					
				/*
 | 
						|
 * MarcacaoEmpresaPanel.java
 | 
						|
 *
 | 
						|
 * Created on 25 de Junho de 2004, 20:32
 | 
						|
 */
 | 
						|
 | 
						|
package siprp.clientes;
 | 
						|
 | 
						|
import java.awt.*;
 | 
						|
import java.awt.event.*;
 | 
						|
import javax.swing.*;
 | 
						|
import javax.swing.event.*;
 | 
						|
import java.util.*;
 | 
						|
 | 
						|
import com.evolute.utils.*;
 | 
						|
import com.evolute.utils.dataui.*;
 | 
						|
import com.evolute.utils.toolbar.*;
 | 
						|
import com.evolute.utils.tables.*;
 | 
						|
import com.evolute.utils.ui.*;
 | 
						|
import com.evolute.utils.ui.calendar.*;
 | 
						|
import com.evolute.utils.ui.text.*;
 | 
						|
 | 
						|
import siprp.data.*;
 | 
						|
 | 
						|
/**
 | 
						|
 *
 | 
						|
 * @author  fpalma
 | 
						|
 */
 | 
						|
public class MarcacaoEmpresaPanel extends JPanel
 | 
						|
	implements ControllableComponent, DocumentListener, ActionListener, ChangeListener
 | 
						|
{
 | 
						|
	protected static final String LIST_PANEL = "LIST_PANEL";
 | 
						|
	protected static final String EDIT_PANEL = "EDIT_PANEL";
 | 
						|
	
 | 
						|
	private ComponentsHashtable components;
 | 
						|
	private EmpresaPanel owner;
 | 
						|
	
 | 
						|
	private JCalendarPanel calendarPanel;
 | 
						|
	private JTextArea text;
 | 
						|
	private JCheckBox realizadaCheck;
 | 
						|
	private JButton saveButton;
 | 
						|
	private JButton cancelButton;
 | 
						|
 | 
						|
	private EmpresaData empresa;
 | 
						|
	private boolean changed = false;
 | 
						|
	private boolean filling = false;
 | 
						|
	
 | 
						|
	private MarcacaoEmpresaData marcacao;
 | 
						|
	
 | 
						|
	/** Creates a new instance of MarcacaoEmpresaPanel */
 | 
						|
	public MarcacaoEmpresaPanel( EmpresaPanel owner )
 | 
						|
	{
 | 
						|
		this.owner = owner;
 | 
						|
		setupComponents();
 | 
						|
		setupComponentsHashtable();
 | 
						|
	}
 | 
						|
	
 | 
						|
	private void setupComponents()
 | 
						|
	{
 | 
						|
		calendarPanel = new JCalendarPanel( null );
 | 
						|
//		calendarPanel.addDocumentListener( this );
 | 
						|
		text = new JTextArea();
 | 
						|
		new CopyPasteHandler( text );
 | 
						|
//		text.getDocument().addDocumentListener( this );
 | 
						|
		text.setLineWrap( true );
 | 
						|
		text.setWrapStyleWord( true );
 | 
						|
		JScrollPane textScp = new JScrollPane( text, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, 
 | 
						|
													JScrollPane.HORIZONTAL_SCROLLBAR_NEVER );
 | 
						|
		realizadaCheck = new JCheckBox( "Realizada" );
 | 
						|
		saveButton = new JButton( "Guardar" );
 | 
						|
		saveButton.addActionListener( this );
 | 
						|
		cancelButton = new JButton( "Voltar" );
 | 
						|
		cancelButton.addActionListener( this );
 | 
						|
		
 | 
						|
		
 | 
						|
		GridBagLayout gridbag = new GridBagLayout();
 | 
						|
		setLayout( gridbag );
 | 
						|
		GridBagConstraints constraints = new GridBagConstraints();
 | 
						|
		constraints.insets = new Insets( 1, 1, 1, 1 );
 | 
						|
		constraints.fill = GridBagConstraints.HORIZONTAL;
 | 
						|
		
 | 
						|
		constraints.weightx = 0;
 | 
						|
		constraints.gridwidth = 1;
 | 
						|
		constraints.weighty = 0;
 | 
						|
		constraints.gridheight = 1;
 | 
						|
		calendarPanel.setPreferredSize( new Dimension( 130, 30 ) );
 | 
						|
		gridbag.setConstraints( calendarPanel, constraints );
 | 
						|
		add( calendarPanel );
 | 
						|
		
 | 
						|
		gridbag.setConstraints( realizadaCheck, constraints );
 | 
						|
		add( realizadaCheck );
 | 
						|
		
 | 
						|
		constraints.weightx = 1;
 | 
						|
		constraints.gridwidth = GridBagConstraints.REMAINDER;
 | 
						|
		JPanel buttonPanel = new JPanel();
 | 
						|
		gridbag.setConstraints( buttonPanel, constraints );
 | 
						|
		add( buttonPanel );
 | 
						|
		
 | 
						|
		constraints.fill = GridBagConstraints.BOTH;
 | 
						|
		constraints.weighty = 1;
 | 
						|
		constraints.gridheight = GridBagConstraints.REMAINDER;
 | 
						|
		constraints.gridwidth = GridBagConstraints.REMAINDER;
 | 
						|
		constraints.weightx = 1;
 | 
						|
		gridbag.setConstraints( textScp, constraints );
 | 
						|
		add( textScp );
 | 
						|
		
 | 
						|
		buttonPanel.setLayout( new FlowLayout( FlowLayout.RIGHT ) );
 | 
						|
		initButtons();
 | 
						|
		buttonPanel.add( cancelButton );
 | 
						|
		buttonPanel.add( saveButton );
 | 
						|
	}
 | 
						|
	
 | 
						|
	private void setupComponentsHashtable()
 | 
						|
	{
 | 
						|
		components = new ComponentsHashtable();
 | 
						|
		components.putComponent( MarcacaoEmpresaData.DATA, calendarPanel );
 | 
						|
		components.putComponent( MarcacaoEmpresaData.TEXTO, text );
 | 
						|
		components.putComponent( MarcacaoEmpresaData.REALIZADA, realizadaCheck );
 | 
						|
		components.putDummy( MarcacaoEmpresaData.EMPRESA );
 | 
						|
	}
 | 
						|
	
 | 
						|
	public void clear()
 | 
						|
	{
 | 
						|
		String names[] = (String[])components.keySet().toArray( new String[0] );
 | 
						|
		ComponentController.clear( names, components );
 | 
						|
		marcacao = null;
 | 
						|
	}
 | 
						|
	
 | 
						|
	public void fill(Object value)
 | 
						|
	{
 | 
						|
		filling = true;
 | 
						|
		clear();
 | 
						|
		initButtons();
 | 
						|
		marcacao = (MarcacaoEmpresaData)value;
 | 
						|
		if( marcacao == null )
 | 
						|
		{
 | 
						|
			filling = false;
 | 
						|
			return;
 | 
						|
		}
 | 
						|
		String names[] = marcacao.getFieldNames();
 | 
						|
		ComponentController.fill( names, marcacao.getHashData(), components );
 | 
						|
		filling = false;
 | 
						|
	}
 | 
						|
	
 | 
						|
	public Object save()
 | 
						|
	{
 | 
						|
		if( marcacao == null )
 | 
						|
		{
 | 
						|
			marcacao = new MarcacaoEmpresaData();
 | 
						|
		}
 | 
						|
			
 | 
						|
		String names[] = marcacao.getFieldNames();
 | 
						|
		Hashtable hash = new Hashtable();
 | 
						|
	
 | 
						|
		ComponentController.save( names, hash, components );
 | 
						|
		hash.put( MarcacaoEmpresaData.EMPRESA, empresa );
 | 
						|
		marcacao.setHashData( hash );
 | 
						|
	System.out.println( "EMPRESA:: " + marcacao.get( MarcacaoEmpresaData.EMPRESA ) );
 | 
						|
		return marcacao;
 | 
						|
	}
 | 
						|
	
 | 
						|
	public void setEnabled(boolean enable)
 | 
						|
	{
 | 
						|
		super.setEnabled( enable );
 | 
						|
		String names[] = (String[])components.keySet().toArray( new String[0] );
 | 
						|
		ComponentController.setEnabled( names, enable, components );
 | 
						|
	}
 | 
						|
	
 | 
						|
	public void changedUpdate(javax.swing.event.DocumentEvent documentEvent)
 | 
						|
	{
 | 
						|
		startEditedState();
 | 
						|
	}
 | 
						|
	
 | 
						|
	public void insertUpdate(javax.swing.event.DocumentEvent documentEvent)
 | 
						|
	{
 | 
						|
		startEditedState();
 | 
						|
	}
 | 
						|
	
 | 
						|
	public void removeUpdate(javax.swing.event.DocumentEvent documentEvent)
 | 
						|
	{
 | 
						|
		startEditedState();
 | 
						|
	}
 | 
						|
	
 | 
						|
	private void startEditedState()
 | 
						|
	{
 | 
						|
		if( !filling )
 | 
						|
		{
 | 
						|
			calendarPanel.removeChangeListener( this );
 | 
						|
			text.getDocument().removeDocumentListener( this );
 | 
						|
			realizadaCheck.removeChangeListener( this );
 | 
						|
			changed = true;
 | 
						|
			saveButton.setEnabled( true );
 | 
						|
			changeButton();
 | 
						|
		}
 | 
						|
	}
 | 
						|
	
 | 
						|
	private void initButtons()
 | 
						|
	{
 | 
						|
		saveButton.setEnabled( false );
 | 
						|
		calendarPanel.addChangeListener( this );
 | 
						|
		realizadaCheck.addChangeListener( this );
 | 
						|
		text.getDocument().addDocumentListener( this );
 | 
						|
		ClassLoader cl = new EVUtilsImageLib().getClass().getClassLoader();
 | 
						|
		Icon normal = new ImageIcon( cl.getResource( "buttons/save_normal.gif" ) );
 | 
						|
		Icon rollover = new ImageIcon( cl.getResource( "buttons/save_rollover.gif" ) );
 | 
						|
		Icon pressed = new ImageIcon( cl.getResource( "buttons/save_pressed.gif" ) );
 | 
						|
		Icon disabled = new ImageIcon( cl.getResource( "buttons/save_disabled.gif" ) );
 | 
						|
		saveButton.setIcon( normal );
 | 
						|
		saveButton.setRolloverIcon( rollover );
 | 
						|
		saveButton.setPressedIcon( pressed );
 | 
						|
		saveButton.setDisabledIcon( disabled );
 | 
						|
		saveButton.setText( null );
 | 
						|
		saveButton.setBorderPainted( false );
 | 
						|
		saveButton.setRequestFocusEnabled( false );
 | 
						|
		saveButton.setMargin( new Insets( 0, 0, 0, 0 ) );
 | 
						|
		saveButton.setToolTipText( "Gravar" );
 | 
						|
		
 | 
						|
		normal = new ImageIcon( cl.getResource( "buttons/shiftl_normal.gif" ) );
 | 
						|
		rollover = new ImageIcon( cl.getResource( "buttons/shiftl_rollover.gif" ) );
 | 
						|
		pressed = new ImageIcon( cl.getResource( "buttons/shiftl_pressed.gif" ) );
 | 
						|
		disabled = new ImageIcon( cl.getResource( "buttons/shiftl_disabled.gif" ) );
 | 
						|
		cancelButton.setIcon( normal );
 | 
						|
		cancelButton.setRolloverIcon( rollover );
 | 
						|
		cancelButton.setPressedIcon( pressed );
 | 
						|
		cancelButton.setDisabledIcon( disabled );
 | 
						|
		cancelButton.setText( null );
 | 
						|
		cancelButton.setBorderPainted( false );
 | 
						|
		cancelButton.setRequestFocusEnabled( false );
 | 
						|
		cancelButton.setMargin( new Insets( 0, 0, 0, 0 ) );
 | 
						|
		cancelButton.setToolTipText( "Voltar \u00e0 lista" );
 | 
						|
		
 | 
						|
	}
 | 
						|
	
 | 
						|
	private void changeButton()
 | 
						|
	{
 | 
						|
		ClassLoader cl = new EVUtilsImageLib().getClass().getClassLoader();
 | 
						|
		Icon normal = new ImageIcon( cl.getResource( "buttons/cancel_normal.gif" ) );
 | 
						|
		Icon rollover = new ImageIcon( cl.getResource( "buttons/cancel_rollover.gif" ) );
 | 
						|
		Icon pressed = new ImageIcon( cl.getResource( "buttons/cancel_pressed.gif" ) );
 | 
						|
		Icon disabled = new ImageIcon( cl.getResource( "buttons/cancel_disabled.gif" ) );
 | 
						|
		cancelButton.setIcon( normal );
 | 
						|
		cancelButton.setRolloverIcon( rollover );
 | 
						|
		cancelButton.setPressedIcon( pressed );
 | 
						|
		cancelButton.setDisabledIcon( disabled );
 | 
						|
		cancelButton.setToolTipText( "Cancelar" );
 | 
						|
	}
 | 
						|
	
 | 
						|
	public void actionPerformed( ActionEvent e )
 | 
						|
	{
 | 
						|
		Object source = e.getSource();
 | 
						|
		if( source.equals( saveButton ) )
 | 
						|
		{
 | 
						|
			if( calendarPanel.getDate() == null )
 | 
						|
			{
 | 
						|
				JOptionPane.showMessageDialog( this, "Tem de escolher uma data", "Erro...", JOptionPane.ERROR_MESSAGE );
 | 
						|
				return;
 | 
						|
			}
 | 
						|
			MarcacaoEmpresaData marc = ( MarcacaoEmpresaData ) save();
 | 
						|
			
 | 
						|
			try
 | 
						|
			{
 | 
						|
				marc.save();
 | 
						|
			}
 | 
						|
			catch( Exception ex )
 | 
						|
			{
 | 
						|
				DialogException.showExceptionMessage( ex, "Erro a gravar", true );
 | 
						|
				return;
 | 
						|
			}
 | 
						|
			owner.reloadMarcacoes();
 | 
						|
		}
 | 
						|
		else if( source.equals( cancelButton ) )
 | 
						|
		{
 | 
						|
			owner.showMarcacoes();
 | 
						|
		}
 | 
						|
		
 | 
						|
	}
 | 
						|
	
 | 
						|
	public void setEmpresa( EmpresaData empresa )
 | 
						|
	{
 | 
						|
		this.empresa = empresa;
 | 
						|
	}
 | 
						|
	
 | 
						|
	public void stateChanged(javax.swing.event.ChangeEvent changeEvent)
 | 
						|
	{
 | 
						|
		startEditedState();
 | 
						|
	}
 | 
						|
	
 | 
						|
}
 |