//----------------------------------------------------------------------- public static void OnRightClickAideFormule(Type typeSource, CDefinitionProprieteDynamique defProp, Point screenPoint) { ContextMenuStrip menu = new ContextMenuStrip(); ToolStripMenuItem item = null; CDefinitionProprieteDynamiqueSmartField def = defProp as CDefinitionProprieteDynamiqueSmartField; if (def != null) { CSmartField smartField = new CSmartField(CSc2iWin32DataClient.ContexteCourant); if (smartField.ReadIfExists(def.IdSmartField)) { CTagMenu tag = new CTagMenu(typeSource, defProp, smartField); item = new ToolStripMenuItem(I.T("Edit smart field|20083")); item.Tag = tag; item.Click += new EventHandler(itemEditSmartField_Click); menu.Items.Add(item); item = new ToolStripMenuItem(I.T("Delete smart field|20084")); item.Tag = tag; item.Click += new EventHandler(itemDeleteSmartField_Click); menu.Items.Add(item); } } else { item = new ToolStripMenuItem(I.T("Create smart field|20082")); item.Tag = new CTagMenu(typeSource, defProp, null); item.Click += new EventHandler(itemCreateSmartField_Click); menu.Items.Add(item); } if (menu.Items.Count > 0) { menu.Show(screenPoint); } }
//----------------------------------------------------------------------- private static void itemDeleteSmartField_Click(object sender, EventArgs e) { ToolStripMenuItem item = sender as ToolStripMenuItem; CTagMenu tag = item != null ? item.Tag as CTagMenu : null; if (tag != null && tag.SmartField != null) { using (CContexteDonnee ctx = new CContexteDonnee(CSc2iWin32DataClient.ContexteCourant.IdSession, true, false)) { CSmartField smartField = tag.SmartField.GetObjetInContexte(ctx) as CSmartField; if (smartField != null) { if (MessageBox.Show(I.T("Delete SmartField @1 ?|20085", smartField.Libelle), "", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { CResultAErreur result = smartField.Delete(); if (!result) { CFormAlerte.Afficher(result.Erreur); } } } } } }
//----------------------------------------------------------------------- public static bool EditeSmartFieldAndCommit(CSmartField field) { CFormEditeSmartField form = new CFormEditeSmartField(); form.m_smartField = field; bool bResult = form.ShowDialog() == DialogResult.OK; form.Dispose(); return(bResult); }
//----------------------------------------------------------------------- private static void itemCreateSmartField_Click(object sender, EventArgs e) { ToolStripMenuItem item = sender as ToolStripMenuItem; CTagMenu tag = item != null ? item.Tag as CTagMenu : null; if (tag != null) { CSmartField smartField = new CSmartField(CSc2iWin32DataClient.ContexteCourant); smartField.CreateNew(); smartField.TypeCible = tag.TypeSource; smartField.Definition = tag.DefProp; CFormEditeSmartField.EditeSmartFieldAndCommit(smartField); } }
//----------------------------------------------------------------------- private static void itemEditSmartField_Click(object sender, EventArgs e) { ToolStripMenuItem item = sender as ToolStripMenuItem; CTagMenu tag = item != null ? item.Tag as CTagMenu : null; if (tag != null && tag.SmartField != null) { CSmartField smartField = tag.SmartField.GetObjetInContexte(CSc2iWin32DataClient.ContexteCourant) as CSmartField; smartField.BeginEdit(); if (smartField != null) { CFormEditeSmartField.EditeSmartFieldAndCommit(smartField); } } }
/////////////////////////////////////////////////// public override CResultAErreur VerifieDonnees(CObjetDonnee objet) { CResultAErreur result = CResultAErreur.True; try { CSmartField champ = (CSmartField)objet; if (champ.Libelle == "") { result.EmpileErreur(I.T("The custom field name cannot be empty|20006")); } if (champ.Definition == null) { result.EmpileErreur(I.T("Smart field definition is incomplete|20007")); } } catch (Exception e) { result.EmpileErreur(new CErreurException(e)); } return(result); }
public CTagMenu(Type typeSource, CDefinitionProprieteDynamique defProp, CSmartField smartField) { TypeSource = typeSource; DefProp = defProp; SmartField = smartField; }