Ajout d'un début de gestion de la matrice SeqMaitre

This commit is contained in:
tzim 2013-09-30 12:57:39 +00:00
parent 25cd22ee7d
commit 453b8ddd1a
2 changed files with 100 additions and 28 deletions

View file

@ -10,7 +10,7 @@ namespace DMX2
{
static MainWindow win;
static object circuitKey = new object();
ListStore ls;
ListStore lsMatrice;
public static MainWindow Win {
get { return win; }
@ -63,59 +63,130 @@ namespace DMX2
protected void ConstruitMatrice ()
{
var idCol = new Gtk.TreeViewColumn();
var idCell = new Gtk.CellRendererText();
var idCol = new Gtk.TreeViewColumn ();
var idCell = new Gtk.CellRendererText ();
idCol.Title = "Num";
idCol.PackStart(idCell,true);
idCol.SetCellDataFunc(idCell, new Gtk.TreeCellDataFunc( RenderMatriceNum) );
this.MatriceUI.AppendColumn(idCol);
idCol.PackStart (idCell, true);
idCol.SetCellDataFunc (idCell, new Gtk.TreeCellDataFunc (RenderMatriceNum));
this.MatriceUI.AppendColumn (idCol);
var nomCol = new Gtk.TreeViewColumn();
var nomCell = new Gtk.CellRendererText();
var nomCol = new Gtk.TreeViewColumn ();
var nomCell = new Gtk.CellRendererText ();
nomCol.Title = "Nom";
nomCol.PackStart(nomCell,true);
nomCol.SetCellDataFunc(nomCell, new Gtk.TreeCellDataFunc( RenderMatriceNom) );
nomCell.Editable =true;
nomCell.Edited += OnNomCellEdited;
this.MatriceUI.AppendColumn(nomCol);
nomCol.PackStart (nomCell, true);
nomCol.SetCellDataFunc (nomCell, new Gtk.TreeCellDataFunc (RenderMatriceNom));
nomCell.Editable = true;
nomCell.Edited += OnNomCellEdited;
this.MatriceUI.AppendColumn (nomCol);
var dureeCol = new Gtk.TreeViewColumn();
var dureeCell = new Gtk.CellRendererText();
var dureeCol = new Gtk.TreeViewColumn ();
var dureeCell = new Gtk.CellRendererText ();
dureeCol.Title = "Durée";
dureeCol.PackStart(dureeCell,true);
dureeCol.SetCellDataFunc(dureeCell, new Gtk.TreeCellDataFunc( RenderMatriceDuree) );
dureeCell.Editable =true;
dureeCell.Edited += OnDureeCellEdited;
this.MatriceUI.AppendColumn(dureeCol);
dureeCol.PackStart (dureeCell, true);
dureeCol.SetCellDataFunc (dureeCell, new Gtk.TreeCellDataFunc (RenderMatriceDuree));
dureeCell.Editable = true;
dureeCell.Edited += OnDureeCellEdited;
this.MatriceUI.AppendColumn (dureeCol);
ls = new Gtk.ListStore(typeof (SequenceurMaitre.Ligne));
this.MatriceUI.Model = ls;
ConstruitMatriceSeqColumns();
lsMatrice = new Gtk.ListStore(typeof (SequenceurMaitre.Ligne));
this.MatriceUI.Model = lsMatrice;
FillMatrice();
}
static object seqkey = new object();
void ConstruitMatriceSeqColumns ()
{
foreach(var c in MatriceUI.Columns)
if(c.CellRenderers[0].Data.ContainsKey(seqkey))
MatriceUI.RemoveColumn(c);
Gtk.TreeViewColumn seqCol;
Gtk.CellRendererText seqCell;
foreach (Sequenceur seq in Conduite.Courante.Sequenceurs) {
seqCol = new TreeViewColumn();
seqCell = new CellRendererText();
seqCol.Title = seq.Name;
seqCol.PackStart(seqCell, true);
seqCol.SetCellDataFunc ( seqCell, new Gtk.TreeCellDataFunc(RenderMatriceSeqVal));
seqCell.Editable = true;
seqCell.Edited += OnSeqValCellEdited;
seqCell.Data[seqkey] = seq;
this.MatriceUI.AppendColumn(seqCol);
}
}
void RenderMatriceNum (TreeViewColumn tree_column, CellRenderer cell, TreeModel tree_model, TreeIter iter)
{
throw new NotImplementedException ();
SequenceurMaitre.Ligne l = tree_model.GetValue (iter, 0) as SequenceurMaitre.Ligne;
(cell as Gtk.CellRendererText).Text = (Conduite.Courante.SequenceurMaitre.Lignes.IndexOf(l)+1).ToString();
}
void RenderMatriceNom (TreeViewColumn tree_column, CellRenderer cell, TreeModel tree_model, TreeIter iter)
{
throw new NotImplementedException ();
SequenceurMaitre.Ligne l = tree_model.GetValue (iter, 0) as SequenceurMaitre.Ligne;
(cell as Gtk.CellRendererText).Text = l.Nom;
}
void RenderMatriceDuree (TreeViewColumn tree_column, CellRenderer cell, TreeModel tree_model, TreeIter iter)
{
throw new NotImplementedException ();
SequenceurMaitre.Ligne l = tree_model.GetValue (iter, 0) as SequenceurMaitre.Ligne;
if (l.Duree==-1) (cell as Gtk.CellRendererText).Text = string.Empty;
else (cell as Gtk.CellRendererText).Text = l.Duree.ToString();
}
void RenderMatriceSeqVal (TreeViewColumn tree_column, CellRenderer cell, TreeModel tree_model, TreeIter iter)
{
SequenceurMaitre.Ligne l = tree_model.GetValue (iter, 0) as SequenceurMaitre.Ligne;
Sequenceur seq = cell.Data[seqkey] as Sequenceur;
(cell as Gtk.CellRendererText).Text = l[seq];
}
void FillMatrice ()
{
lsMatrice.Clear ();
foreach (SequenceurMaitre.Ligne l in Conduite.Courante.SequenceurMaitre.Lignes) {
lsMatrice.AppendValues(l);
}
}
void OnNomCellEdited (object o, EditedArgs args)
{
throw new NotImplementedException ();
Gtk.TreeIter iter;
lsMatrice.GetIter (out iter, new Gtk.TreePath (args.Path));
SequenceurMaitre.Ligne l = lsMatrice.GetValue(iter,0) as SequenceurMaitre.Ligne;
l.Nom = args.NewText;
}
void OnDureeCellEdited (object o, EditedArgs args)
{
throw new NotImplementedException ();
Gtk.TreeIter iter;
lsMatrice.GetIter (out iter, new Gtk.TreePath (args.Path));
SequenceurMaitre.Ligne l = lsMatrice.GetValue (iter, 0) as SequenceurMaitre.Ligne;
if (args.NewText.Length == 0)
l.Duree = -1;
else {
int val;
if(int.TryParse(args.NewText, out val))
l.Duree=val;
}
}
void OnSeqValCellEdited (object o, EditedArgs args)
{
Gtk.CellRendererText cell = o as CellRendererText;
Sequenceur seq = cell.Data[seqkey] as Sequenceur;
Gtk.TreeIter iter;
lsMatrice.GetIter (out iter, new Gtk.TreePath (args.Path));
SequenceurMaitre.Ligne l = lsMatrice.GetValue(iter,0) as SequenceurMaitre.Ligne;
l[seq] = args.NewText;
}
protected void OnDeleteEvent (object sender, DeleteEventArgs a)
{
Application.Quit ();
@ -165,6 +236,7 @@ namespace DMX2
Sequenceur s = new SequenceurLineaire();
Conduite.Courante.AjoutSequenceur(s);
AddSeqUI(s);
ConstruitMatriceSeqColumns();
}
void AddSeqUI (Sequenceur s)

View file

@ -53,7 +53,7 @@ namespace DMX2
public SequenceurMaitre ()
{
lignes.Add(new Ligne());
}
}
}