//----------------------------------------------------------------- void menuAddSousElement_Click(object sender, EventArgs e) { CMenuAddSousElement menu = sender as CMenuAddSousElement; if (menu != null) { CODEQFromObjetsSource objet = menu.SousElement; List <IObjetDeEasyQuery> lstSources = new List <IObjetDeEasyQuery>(); foreach (I2iObjetGraphique obj in Selection) { if (obj is IObjetDeEasyQuery) { lstSources.Add(obj as IObjetDeEasyQuery); } } if (lstSources.Count == Selection.Count) { Point pt = lstSources[0].Position; pt.Offset(new Point(lstSources[0].Size.Width * 2, lstSources[0].Size.Height / 3)); objet.Position = pt; objet.Parent = ObjetEdite; objet.ElementsSource = lstSources.ToArray(); if (EditeProprietes(objet)) { ObjetEdite.AddChild(objet); Refresh(); } } } }
//----------------------------------------------------------------- void itemNewSource_Click(object sender, EventArgs e) { ToolStripMenuItem item = sender as ToolStripMenuItem; CODEQFromObjetsSource tableFromSource = Selection.Count == 1 ? Selection[0] as CODEQFromObjetsSource : null; ToolStripMenuItem itemParent = item != null ? item.OwnerItem as ToolStripMenuItem : null; IObjetDeEasyQuery newSource = item != null?item.Tag as IObjetDeEasyQuery:null; int nIndexSource = itemParent != null && itemParent.Tag is int?(int)itemParent.Tag : -1; if (newSource != null && nIndexSource >= 0 && tableFromSource != null) { if (MessageBox.Show(I.T("Replace Table @1 by table @2 ?", itemParent.Text, item.Text), "", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { CResultAErreur result = tableFromSource.SetSource(nIndexSource, newSource); if (!result) { CFormAlerte.Afficher(result.Erreur); } else { Refresh(); } } } }
void itemSource_DropDownOpening(object sender, EventArgs e) { ToolStripMenuItem item = sender as ToolStripMenuItem; CEasyQuery query = ObjetEdite as CEasyQuery; CODEQFromObjetsSource tableFromSource = Selection.Count == 1?Selection[0] as CODEQFromObjetsSource:null; if (item != null && query != null && tableFromSource != null) { item.DropDownItems.Clear(); List <IObjetDeEasyQuery> lst = new List <IObjetDeEasyQuery>(); foreach (IObjetDeEasyQuery obj in query.Childs) { lst.Add(obj); } lst.Sort((x, y) => x.NomFinal.CompareTo(y.NomFinal)); foreach (IObjetDeEasyQuery objet in lst) { if (objet.Id != tableFromSource.Id) { ToolStripMenuItem itemNewSource = new ToolStripMenuItem(objet.NomFinal); itemNewSource.Tag = objet; itemNewSource.Click += itemNewSource_Click; item.DropDownItems.Add(itemNewSource); } } } }
//----------------------------------------------------------------- protected override void AfficherMenuAdditonnel(System.Windows.Forms.ContextMenuStrip menu) { base.AfficherMenuAdditonnel(menu); //Ajoute les menus foreach (ToolStripItem item in new ArrayList(m_menuActionsSurTables.Items)) { menu.Items.Add(item); } m_menuProperties.Visible = Selection.Count == 1 && CanEditeProprietes(Selection[0]); //Menu add m_menuAddSousElement.DropDownItems.Clear(); if (Selection.Count >= 1) { CheckState? expandedState = null; Dictionary <Type, int> lstType = new Dictionary <Type, int>(); foreach (I2iObjetGraphique obj in Selection) { CODEQBase objet = obj as CODEQBase; if (objet != null) { if (expandedState == null) { if (objet.IsExpanded) { expandedState = CheckState.Checked; } else { expandedState = CheckState.Unchecked; } } else { if (expandedState.Value == CheckState.Checked && !objet.IsExpanded || expandedState.Value == CheckState.Unchecked && objet.IsExpanded) { expandedState = CheckState.Indeterminate; } } foreach (Type tp in objet.TypesDerivesPossibles) { int nNb = 0; if (lstType.ContainsKey(tp)) { nNb = lstType[tp]; } nNb++; lstType[tp] = nNb; } } } m_menuExpandTable.CheckState = expandedState != null ? expandedState.Value : CheckState.Unchecked; foreach (KeyValuePair <Type, int> kv in lstType) { if (kv.Value == Selection.Count) { CODEQFromObjetsSource sousElement = Activator.CreateInstance(kv.Key) as CODEQFromObjetsSource; if (sousElement != null && sousElement.NbSourceRequired == Selection.Count) { CMenuAddSousElement subMenu = new CMenuAddSousElement(sousElement); subMenu.Click += new EventHandler(menuAddSousElement_Click); m_menuAddSousElement.DropDownItems.Add(subMenu); } } } } m_menuAddSousElement.Visible = m_menuAddSousElement.DropDownItems.Count != 0; //Menu RemplaceSource m_menuRemplaceSource.DropDownItems.Clear(); if (Selection.Count == 1) { CODEQFromObjetsSource tableFromSource = Selection[0] as CODEQFromObjetsSource; if (tableFromSource == null) { m_menuRemplaceSource.Visible = false; } else { m_menuRemplaceSource.Visible = true; IEnumerable <string> nomsParametres = tableFromSource.NomsSources; IObjetDeEasyQuery[] sources = tableFromSource.ElementsSource; for (int n = 0; n < tableFromSource.NbSourceRequired; n++) { ToolStripMenuItem itemSource = new ToolStripMenuItem(); string strText = n < nomsParametres.Count() ? nomsParametres.ElementAt(n) : (n + 1).ToString(); if (sources.Length > n) { strText += " (" + sources[n].NomFinal + ")"; } itemSource.Text = strText; itemSource.Tag = n; itemSource.DropDownItems.Add(new ToolStripMenuItem("")); itemSource.DropDownOpening += itemSource_DropDownOpening; m_menuRemplaceSource.DropDownItems.Add(itemSource); } } } }
public CMenuAddSousElement(CODEQFromObjetsSource sousElement) : base(sousElement.TypeName) { m_sousElement = sousElement; }