Cet exemple de customizer montre l'utilisation des évènements AfterRead, BeforeWrite et AfterWrite dans le signalétique clients. Il est constuit sur base d'un customizer SigCli qui implémente ces interfaces :
Le code, écrit dans le seul but de compréhension de ces 3 évènements, s'écrit comme suit :
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using MercatorApi;
using MercatorUi;
using System.Windows.Forms;
namespace SigCli
{
public class Customizer : MercatorUi.ICustomizers. IFormLoadCustomizer , MercatorUi.ICustomizers. IFormClosedCustomizer
{
public void FormLoadCustomize(System.Windows.Forms. Form WindowsForm)
{
MercatorUi.Forms.Sig. SigForm sigForm = (MercatorUi.Forms.Sig. SigForm )WindowsForm;
List < Control > l = sigForm.FindMovableControlsBySource( "C_NOM" );
if (l.Count > 0)
{
MercatorUi.MovableControls. MovableTextBox textBox = (MercatorUi.MovableControls. MovableTextBox )l[0];
textBox.AfterRead += new MercatorUi.MovableControls. MovableTextBox . AfterReadHandler (textBox_AfterRead);
textBox.BeforeWrite += new MercatorUi.MovableControls. MovableTextBox . BeforeWriteHandler (textBox_BeforeWrite);
textBox.AfterWrite += new MercatorUi.MovableControls. MovableTextBox . AfterWriteHandler (textBox_AfterWrite);
}
}
public void FormClosedCustomize(System.Windows.Forms. Form WindowsForm)
{
MercatorUi.Forms.Sig. SigForm sigForm = (MercatorUi.Forms.Sig. SigForm )WindowsForm;
List < Control > l = sigForm.FindMovableControlsBySource( "C_NOM" );
if (l.Count > 0)
{
MercatorUi.MovableControls. MovableTextBox textBox = (MercatorUi.MovableControls. MovableTextBox )l[0];
textBox.AfterRead -= new MercatorUi.MovableControls. MovableTextBox . AfterReadHandler (textBox_AfterRead);
textBox.BeforeWrite -= new MercatorUi.MovableControls. MovableTextBox . BeforeWriteHandler (textBox_BeforeWrite);
textBox.AfterWrite -= new MercatorUi.MovableControls. MovableTextBox . AfterWriteHandler (textBox_AfterWrite);
}
}
void textBox_AfterRead( object sender, EventArgs e)
{
MercatorUi.MovableControls. MovableTextBox textBox = (MercatorUi.MovableControls. MovableTextBox )sender;
MercatorUi. Dialogs .Stop( string .Format( "La valeur lue dans la DB est \"{0}\"." , textBox.Text));
}
void textBox_BeforeWrite( object sender, EventArgs e)
{
MercatorUi.MovableControls. MovableTextBox textBox = (MercatorUi.MovableControls. MovableTextBox )sender;
MercatorUi. Dialogs .Stop( string .Format( "La valeur qui, en cas de modification, sera être écrite dans la DB est \"{0}\"." , textBox.Text));
}
void textBox_AfterWrite( object sender, EventArgs e)
{
MercatorUi.MovableControls. MovableTextBox textBox = (MercatorUi.MovableControls. MovableTextBox )sender;
MercatorUi. Dialogs .Stop( string .Format( "La valeur \"{0}\" a été écrite dans la DB." , textBox.Text));
}
}
}