/* * ContactoPanel.java * * Created on 14 de Maio de 2004, 15:26 */ package siprp.clientes; import java.awt.*; import javax.swing.*; import java.util.*; import com.evolute.utils.dataui.*; import com.evolute.utils.ui.text.*; import siprp.data.*; /** * * @author fpalma */ public class ContactoPanel extends JPanel implements ControllableComponent { private ContactoData contacto; private ComponentsHashtable components; private JTextField nomeText; private JTextField cargoText; private JTextField telefoneText; private JTextField telemovelText; private JTextField faxText; private JTextField emailText; /** Creates a new instance of ContactoPanel */ public ContactoPanel() { setupComponents(); setupComponentsHashtable(); } private void setupComponents() { JLabel nomeLabel = new JLabel( "Nome" ); nomeText = new JTextField(); JLabel cargoLabel = new JLabel( "Cargo" ); cargoText = new JTextField(); JLabel telefoneLabel = new JLabel( "Telef." ); telefoneText = new JTextField(); JLabel telemovelLabel = new JLabel( "Tlm." ); telemovelText = new JTextField(); JLabel faxLabel = new JLabel( "Fax" ); faxText = new JTextField(); JLabel emailLabel = new JLabel( "Email" ); emailText = new JTextField(); GridBagLayout gridbag = new GridBagLayout(); setLayout( gridbag ); GridBagConstraints constraints = new GridBagConstraints(); constraints.insets = new Insets( 1, 1, 1, 1 ); constraints.fill = GridBagConstraints.HORIZONTAL; constraints.gridheight = 1; constraints.weighty = 0; constraints.weightx = 0; constraints.gridwidth = 1; gridbag.setConstraints( nomeLabel, constraints ); add( nomeLabel ); constraints.weightx = 1; constraints.gridwidth = GridBagConstraints.REMAINDER; gridbag.setConstraints( nomeText, constraints ); add( nomeText ); constraints.weightx = 0; constraints.gridwidth = 1; gridbag.setConstraints( cargoLabel, constraints ); add( cargoLabel ); constraints.weightx = 1; constraints.gridwidth = GridBagConstraints.REMAINDER; gridbag.setConstraints( cargoText, constraints ); add( cargoText ); constraints.weightx = 0; constraints.gridwidth = 1; gridbag.setConstraints( telefoneLabel, constraints ); add( telefoneLabel ); constraints.weightx = .5; constraints.gridwidth = 1; gridbag.setConstraints( telefoneText, constraints ); add( telefoneText ); constraints.weightx = 0; constraints.gridwidth = 1; gridbag.setConstraints( telemovelLabel, constraints ); add( telemovelLabel ); constraints.weightx = .5; constraints.gridwidth = GridBagConstraints.REMAINDER; gridbag.setConstraints( telemovelText, constraints ); add( telemovelText ); constraints.weightx = 0; constraints.gridwidth = 1; gridbag.setConstraints( faxLabel, constraints ); add( faxLabel ); constraints.weightx = 1; constraints.gridwidth = GridBagConstraints.REMAINDER; gridbag.setConstraints( faxText, constraints ); add( faxText ); constraints.weightx = 0; constraints.gridwidth = 1; gridbag.setConstraints( emailLabel, constraints ); add( emailLabel ); constraints.weightx = 1; constraints.gridwidth = GridBagConstraints.REMAINDER; gridbag.setConstraints( emailText, constraints ); add( emailText ); new CopyPasteHandler( nomeText ); new CopyPasteHandler( cargoText ); new CopyPasteHandler( telefoneText ); new CopyPasteHandler( telemovelText ); new CopyPasteHandler( faxText ); new CopyPasteHandler( emailText ); } private void setupComponentsHashtable() { components = new ComponentsHashtable(); components.putComponent( ContactoData.NOME, nomeText ); components.putComponent( ContactoData.CARGO, cargoText ); components.putComponent( ContactoData.TELEFONE, telefoneText ); components.putComponent( ContactoData.TELEMOVEL, telemovelText ); components.putComponent( ContactoData.FAX, faxText ); components.putComponent( ContactoData.EMAIL, emailText ); } public void clear() { String names[] = (String[])components.keySet().toArray( new String[0] ); ComponentController.clear( names, components ); contacto = null; } public void fill(Object value) { clear(); contacto = ( ContactoData ) value; if( contacto == null ) { return; } String names[] = contacto.getFieldNames(); ComponentController.fill( names, contacto.getHashData(), components ); } public Object save() { if( contacto == null ) { contacto = new ContactoData(); } String names[] = contacto.getFieldNames(); Hashtable hash = new Hashtable(); ComponentController.save( names, hash, components ); contacto.setHashData( hash ); return contacto; } public void setEnabled( boolean enable ) { String names[] = (String[])components.keySet().toArray( new String[0] ); ComponentController.setEnabled( names, enable, components ); } }