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.
288 lines
8.2 KiB
288 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.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.removeDocumentListener( this );
|
|
text.getDocument().removeDocumentListener( this );
|
|
realizadaCheck.removeChangeListener( this );
|
|
changed = true;
|
|
saveButton.setEnabled( true );
|
|
changeButton();
|
|
}
|
|
}
|
|
|
|
private void initButtons()
|
|
{
|
|
saveButton.setEnabled( false );
|
|
calendarPanel.addDocumentListener( 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();
|
|
}
|
|
|
|
}
|