Dépôt officiel du code source de l'ERP OpenConcerto
Blame | Last modification | View Log | RSS feed
package ilm.erp.core.customerrelationship.customer.element;
import ilm.sql.Configuration;
import ilm.sql.element.SQLElement;
import ilm.sql.model.SQLRowValues;
import ilm.sql.view.list.RowValuesTable;
import ilm.sql.view.list.RowValuesTableControlPanel;
import ilm.sql.view.list.RowValuesTableModel;
import ilm.sql.view.list.RowValuesTableRenderer;
import ilm.sql.view.list.SQLTableElement;
import ilm.ui.FormatEditor;
import ilm.utils.FormatGroup;
import ilm.utils.convertor.DateToSQLConvertor;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.io.File;
import java.text.DateFormat;
import java.util.Date;
import java.util.List;
import java.util.Vector;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.ToolTipManager;
public class ContactItemTable extends JPanel {
private RowValuesTable table;
final RowValuesTableControlPanel comp;
public ContactItemTable(SQLRowValues defaultRow) {
this(defaultRow, Configuration.getInstance().getDirectory().getElement(defaultRow.getTable()));
}
private ContactItemTable(SQLRowValues defaultRow, SQLElement elt) {
this.setOpaque(false);
this.setLayout(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
c.gridwidth = 1;
c.gridheight = 1;
c.gridx = 0;
c.gridy = 0;
c.fill = GridBagConstraints.HORIZONTAL;
c.weightx = 1;
c.weighty = 0;
List<SQLTableElement> list = new Vector<SQLTableElement>();
SQLTableElement tableElementTitre = new SQLTableElement(elt.getTable().getField("ID_TITRE_PERSONNEL"));
list.add(tableElementTitre);
SQLTableElement tableElementNom = new SQLTableElement(elt.getTable().getField("NOM"));
list.add(tableElementNom);
SQLTableElement tableElementPrenom = new SQLTableElement(elt.getTable().getField("PRENOM"));
list.add(tableElementPrenom);
SQLTableElement tableElementFonction = new SQLTableElement(elt.getTable().getField("FONCTION"));
list.add(tableElementFonction);
if (elt.getTable().contains("SERVICE")) {
SQLTableElement tableElementService = new SQLTableElement(elt.getTable().getField("SERVICE"));
list.add(tableElementService);
}
SQLTableElement tableElementTel = new SQLTableElement(elt.getTable().getField("TEL_DIRECT"));
list.add(tableElementTel);
SQLTableElement tableElementFax = new SQLTableElement(elt.getTable().getField("FAX"));
list.add(tableElementFax);
SQLTableElement tableElementTelP = new SQLTableElement(elt.getTable().getField("TEL_MOBILE"));
list.add(tableElementTelP);
SQLTableElement tableElementMail = new SQLTableElement(elt.getTable().getField("EMAIL"));
list.add(tableElementMail);
if (elt.getTable().contains("TYPE")) {
SQLTableElement tableElementType = new SQLTableElement(elt.getTable().getField("TYPE"));
list.add(tableElementType);
}
if (elt.getTable().contains("PAYS")) {
SQLTableElement tableElementPays = new SQLTableElement(elt.getTable().getField("PAYS"));
list.add(tableElementPays);
}
if (elt.getTable().contains("ENVOI_RAPPORT_MAIL")) {
SQLTableElement tableElementEnvoiMail = new SQLTableElement(elt.getTable().getField("ENVOI_RAPPORT_MAIL"));
list.add(tableElementEnvoiMail);
}
if (elt.getTable().contains("NO_MAILING")) {
SQLTableElement tableElementNoMailing = new SQLTableElement(elt.getTable().getField("NO_MAILING"));
list.add(tableElementNoMailing);
}
if (elt.getTable().contains("DATE_NAISSANCE")) {
list.add(new SQLTableElement(elt.getTable().getField("DATE_NAISSANCE")) {
private final DateToSQLConvertor conv = new DateToSQLConvertor();
{
this.setEditor(new FormatEditor(
new FormatGroup(DateFormat.getDateInstance(DateFormat.SHORT), DateFormat.getDateInstance(DateFormat.MEDIUM), DateFormat.getDateInstance(DateFormat.LONG))));
}
@Override
public Object convertEditorValueToModel(Object value, SQLRowValues row) {
return this.conv.convert((Date) value);
}
});
}
final RowValuesTableModel model = new RowValuesTableModel(elt, list, elt.getTable().getField("NOM"), false, defaultRow);
this.table = new RowValuesTable(model, new File(Configuration.getInstance().getConfDir(), "Table" + File.separator + "Table_Contact.xml"));
ToolTipManager.sharedInstance().unregisterComponent(this.table);
ToolTipManager.sharedInstance().unregisterComponent(this.table.getTableHeader());
this.comp = new RowValuesTableControlPanel(this.table);
this.add(this.comp, c);
c.gridy++;
c.fill = GridBagConstraints.BOTH;
c.weightx = 1;
c.weighty = 1;
this.add(new JScrollPane(this.table), c);
this.table.setDefaultRenderer(Long.class, new RowValuesTableRenderer());
}
public void updateField(String field, int id) {
this.table.updateField(field, id);
}
public void insertFrom(String field, SQLRowValues row) {
this.table.insertFrom(field, row);
}
public void insertFrom(String field, int id) {
this.table.insertFrom(field, id);
}
public RowValuesTableModel getModel() {
return this.table.getRowValuesTableModel();
}
public void setEditable(boolean b) {
this.comp.setEditable(b);
this.table.setEditable(b);
}
}