//------------------------------------------------------------------------------------------ public override I2iObjetGraphique GetCloneAMettreDansParent(I2iObjetGraphique parent, Dictionary <Type, object> dicObjetsPourCloner) { C2iObjetDeSchema parentAsC2iObjet = parent as C2iObjetDeSchema; if (m_elementAssocie != null && parentAsC2iObjet != null && parentAsC2iObjet.SchemaContenant != null) { IElementDeSchemaReseau eltDeSchema = (IElementDeSchemaReseau)m_elementAssocie.GetObjet(parentAsC2iObjet.SchemaContenant.ContexteDonnee); CElementDeSchemaReseau newElement = new CElementDeSchemaReseau(eltDeSchema.ContexteDonnee); newElement.CreateNewInCurrentContexte(); newElement.ElementAssocie = eltDeSchema; newElement.SchemaReseau = parentAsC2iObjet.SchemaContenant; if (!m_bSizeIsSet) { C2iSymbole symbole = eltDeSchema.SymboleADessiner; if (symbole != null) { Size = symbole.Size; m_bSizeIsSet = true; } } newElement.Width = Size.Width; newElement.Height = Size.Height; C2iObjetDeSchema obj = eltDeSchema.GetObjetDeSchema(newElement); return(obj); } return(null); }
private void m_textBox_DragDrop(object sender, DragEventArgs e) { CReferenceObjetDonnee refObj = e.Data.GetData(typeof(CReferenceObjetDonnee)) as CReferenceObjetDonnee; if (m_typeObjets != null && m_typeObjets.IsAssignableFrom(refObj.TypeObjet)) { CObjetDonnee objet = refObj.GetObjet(CSc2iWin32DataClient.ContexteCourant); if (objet != null) { if (m_filtre == null) { ElementSelectionne = objet; } else { CFiltreData filtre = CFiltreData.GetAndFiltre(m_filtre, objet.GetFiltreCles(objet.GetValeursCles())); CListeObjetsDonnees lst = new CListeObjetsDonnees(objet.ContexteDonnee, m_typeObjets, filtre); if (lst.Count == 1) { ElementSelectionne = objet; } } } } }
public CObjetDonnee GetObjet(CContexteDonnee contexte) { if (m_referenceObjet != null) { return(m_referenceObjet.GetObjet(contexte)); } return(null); }
private void m_picDragBesoin_DragEnter(object sender, DragEventArgs e) { CReferenceObjetDonnee refObj = e.Data.GetData(typeof(CReferenceObjetDonnee)) as CReferenceObjetDonnee; if (refObj != null) { CBesoin besoin = refObj.GetObjet(m_commande.ContexteDonnee) as CBesoin; if (besoin.DonneeBesoin is CDonneeBesoinTypeEquipement) { e.Effect = DragDropEffects.Link; } } }
private void m_wndListeSelection_DragDrop(object sender, DragEventArgs e) { if (!m_gestionnaireModeEdition.ModeEdition) { return; } object listeReferences = e.Data.GetData(typeof(CReferenceObjetDonnee[])); if (listeReferences != null) { CReferenceObjetDonnee[] refObjets = listeReferences as CReferenceObjetDonnee[]; if (refObjets != null) { foreach (CReferenceObjetDonnee reference in refObjets) { CObjetDonneeAIdNumerique objet = reference.GetObjet() as CObjetDonneeAIdNumerique; if (objet != null) { AddElement(objet); if (OnChangeSelection != null) { OnChangeSelection(this, new EventArgs()); } UpdateListe(); } } } } else { object uneReference = e.Data.GetData(typeof(CReferenceObjetDonnee)); if (uneReference != null) { CReferenceObjetDonnee reference = uneReference as CReferenceObjetDonnee; if (reference != null) { CObjetDonneeAIdNumerique objet = reference.GetObjet() as CObjetDonneeAIdNumerique; if (objet != null) { AddElement(objet); if (OnChangeSelection != null) { OnChangeSelection(this, new EventArgs()); } UpdateListe(); } } } } }
public CResultAErreur UpdateEOs(CReferenceObjetDonnee referenceObject) { CResultAErreur result = CResultAErreur.True; using (CContexteDonnee contexte = new CContexteDonnee(IdSession, true, false)) { CObjetDonnee objet = referenceObject.GetObjet(contexte); if (objet is IElementAEO) { result = CUtilElementAEO.UpdateEOSInCurrentContext((IElementAEO)objet); if (result) { result = contexte.SaveAll(true); } return(result); } } return(result); }
//-------------------------------------------------------------------- protected override void m_panelDessin_DragEnter(object sender, DragEventArgs e) { m_satisfactionEnCoursDragDrop = null; e.Effect = DragDropEffects.None; if (!LockEdition) { base.m_panelDessin_DragEnter(sender, e); } if (e.Effect == DragDropEffects.None) { CReferenceObjetDonnee refObj = e.Data.GetData(typeof(CReferenceObjetDonnee)) as CReferenceObjetDonnee; if (refObj != null) { m_satisfactionEnCoursDragDrop = refObj.GetObjet(m_phaseSpecifications.ContexteDonnee) as ISatisfactionBesoin; if (m_satisfactionEnCoursDragDrop != null) { e.Effect = GetDragDropEffect(e); } } } }
//-------------------------------------------------------- public void SetElementEdite(IElementAVariables element) { m_elementAVariables = element; AlloueControl(); if (m_elementAVariables != null && element != null) { object selVal = ((IElementAVariables)m_elementAVariables).GetValeurChamp(m_variable.IdVariable); try { CVariableDynamiqueSelectionObjetDonnee variableSel = m_variable as CVariableDynamiqueSelectionObjetDonnee; if (variableSel != null) { CReferenceObjetDonnee refObj = variableSel.GetObjetFromValeurRetournee(selVal); if (refObj != null) { selVal = refObj.GetObjet(CSc2iWin32DataClient.ContexteCourant); } /*try * { * CObjetDonneeAIdNumerique obj = Activator.CreateInstance(variableSel.FiltreSelection.TypeElements, * new object[] { CSc2iWin32DataClient.ContexteCourant }) as CObjetDonneeAIdNumerique; * if (obj != null && obj.ReadIfExists ( (int)selVal)) * selVal = obj; * } * catch * { * }*/ } if (m_control != null) { m_control.ElementSelectionne = (CObjetDonnee)selVal; } } catch { } } }
public void SetElementEdite(IElementAVariables element) { m_elementAVariables = element; AlloueCombo(); if (m_variable != null && element != null) { object valeur = element.GetValeurChamp(m_variable.IdVariable); if (m_combo is C2iComboBox) { if (valeur != null) { ((C2iComboBox)m_combo).SelectedValue = valeur; } else { ((C2iComboBox)m_combo).SelectedValue = ""; } object obj = ((C2iComboBox)m_combo).SelectedValue; } else if (m_combo is ISelectionneurElementListeObjetsDonnees) { CVariableDynamiqueSelectionObjetDonnee varSel = m_variable as CVariableDynamiqueSelectionObjetDonnee; if (varSel != null && !(valeur is CObjetDonnee)) { CReferenceObjetDonnee refObj = varSel.GetObjetFromValeurRetournee(valeur); if (refObj != null) { valeur = refObj.GetObjet(CSc2iWin32DataClient.ContexteCourant); } } if (valeur is CObjetDonnee || valeur == null) { ((ISelectionneurElementListeObjetsDonnees)m_combo).ElementSelectionne = (CObjetDonnee)valeur; } } } }
private void m_picDragBesoin_DragDrop(object sender, DragEventArgs e) { CReferenceObjetDonnee refObj = e.Data.GetData(typeof(CReferenceObjetDonnee)) as CReferenceObjetDonnee; if (refObj != null) { CBesoin besoin = refObj.GetObjet(m_commande.ContexteDonnee) as CBesoin; CDonneeBesoinTypeEquipement besoinEqpt = besoin.DonneeBesoin as CDonneeBesoinTypeEquipement; if (besoinEqpt != null) { e.Effect = DragDropEffects.Link; CLigneCommande ligne = new CLigneCommande(m_commande.ContexteDonnee); ligne.CreateNewInCurrentContexte(); ligne.Commande = m_commande; ligne.TypeEquipement = besoinEqpt.GetTypeEquipement(m_commande.ContexteDonnee); ligne.Quantite = besoinEqpt.Quantite; ligne.Libelle = besoin.Libelle; besoin = besoin.GetObjetInContexte(ligne.ContexteDonnee) as CBesoin; besoin.AddSatisfaction(ligne, null); CCustomizableItemLigneCommande item = new CCustomizableItemLigneCommande(ligne); m_wndListeCommandes.AddItem(item, true); } } }
/// ////////////////////////////////////////////////// protected override void Editeur_DragDrop(object sender, System.Windows.Forms.DragEventArgs e) { if (ObjetEdite == null) { return; } if (LockEdition) { return; } if (e.Data.GetDataPresent(typeof(CReferenceObjetDonnee))) { CReferenceObjetDonnee reference = e.Data.GetData(typeof(CReferenceObjetDonnee)) as CReferenceObjetDonnee; if (reference.TypeObjet == typeof(CModeleAffectationUtilisateurs)) { Point pt = PointToClient(new Point(e.X, e.Y)); Point ptLogique = GetLogicalPointFromDisplay(pt); CWorkflowEtapeDessin dessinEtape = ObjetEdite.SelectionnerElementDuDessus(ptLogique) as CWorkflowEtapeDessin; if (dessinEtape != null) { CModeleAffectationUtilisateurs modele = reference.GetObjet(CSc2iWin32DataClient.ContexteCourant) as CModeleAffectationUtilisateurs; if (modele != null) { CParametresAffectationEtape parametres = modele.ParametresAffectation; if (parametres != null) { CParametresInitialisationEtape parametre = dessinEtape.Initializations; CParametresAffectationEtape parAff = parametre.Affectations; if (parAff != null) { if (MessageBox.Show(I.T("Replace current assignments(Yes) or add new assignemnts(No) ?|20135"), "", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { parAff = new CParametresAffectationEtape(); } parAff.AddFormules(parametres.Formules); parametre.Affectations = parAff; dessinEtape.Initializations = parametre; e.Effect = DragDropEffects.Link; Refresh(); return; } } } } } } List <CDonneeDragDropObjetGraphique> datas = GetDragDropData(e.Data); if (datas == null || datas.Count == 0) { return; } List <I2iObjetGraphique> candidats = new List <I2iObjetGraphique>(); foreach (CRectangleDragForObjetGraphique rct in RectsDrags) { candidats.Add(rct.ObjetGraphique); } Point ptLocal = GetLogicalPointFromDisplay(PointToClient(new Point(e.X, e.Y))); I2iObjetGraphique parent = ObjetEdite.SelectionnerElementConteneurDuDessus(ptLocal, candidats); parent = DessinWorkflow;; if (parent == null) { e.Effect = DragDropEffects.None; } else { List <I2iObjetGraphique> nouveaux = new List <I2iObjetGraphique>(); foreach (CRectangleDragForObjetGraphique rct in RectsDrags) { rct.RectangleDrag = rct.Datas.GetDragDropPosition(ptLocal); rct.RectangleDrag = GetRectangleSelonModesActives(rct.RectangleDrag, ptLocal); // rct.RectangleDrag.Offset((int)(AutoScrollPosition.X / Echelle), (int)(AutoScrollPosition.Y / Echelle)); //Si dummy de création (type de bloc), création d'une nouvelle étape I2iObjetGraphique objetGraphique = rct.Datas.ObjetDragDrop; CDummyObjetWorkflowPourCreation dummyCreation = objetGraphique as CDummyObjetWorkflowPourCreation; if (dummyCreation != null) { CTypeEtapeWorkflow typeEtape = dummyCreation.TypeEtape; if (typeEtape == null) { typeEtape = new CTypeEtapeWorkflow(DessinWorkflow.TypeWorkflow.ContexteDonnee); typeEtape.CreateNewInCurrentContexte(); typeEtape.Workflow = DessinWorkflow.TypeWorkflow; typeEtape.Bloc = Activator.CreateInstance(dummyCreation.TypeBloc, new object[] { typeEtape }) as CBlocWorkflow; } CWorkflowEtapeDessin graphEtape = new CWorkflowEtapeDessin(); graphEtape.TypeEtape = typeEtape; objetGraphique = graphEtape; objetGraphique.Size = dummyCreation.Size; } JusteBeforePositionneSurApresDragDrop(objetGraphique); bool bParentIsInSelec = objetGraphique.Parent != null && candidats.Contains(objetGraphique.Parent); bool bHasMove = false; if (e.Effect == DragDropEffects.Copy) { Dictionary <Type, object> dicObjetsPourCloner = new Dictionary <Type, object>(); AddObjectsForClonerSerializer(dicObjetsPourCloner); objetGraphique = (I2iObjetGraphique)objetGraphique.GetCloneAMettreDansParent(parent, dicObjetsPourCloner); if (objetGraphique == null || !parent.AddChild(objetGraphique)) { e.Effect = DragDropEffects.None; objetGraphique.CancelClone(); continue; } else { objetGraphique.Parent = parent; nouveaux.Add(objetGraphique); } bHasMove = true; } else { bHasMove = true; if (objetGraphique.Parent != parent) { if (objetGraphique.Parent != null) { if (!bParentIsInSelec) { objetGraphique.Parent.RemoveChild(objetGraphique); } } else { nouveaux.Add(objetGraphique); } if (!bParentIsInSelec) { if (!parent.AddChild(objetGraphique)) { e.Effect = DragDropEffects.None; continue; } else { objetGraphique.Parent = parent; } } } } if (!bParentIsInSelec && bHasMove) { Point ptDrop = new Point(rct.RectangleDrag.Left, rct.RectangleDrag.Top); objetGraphique.PositionAbsolue = ptDrop; } } if (nouveaux.Count > 0) { RefreshSelectionChanged = false; Selection.Clear(); Selection.AddRange(nouveaux); RefreshSelectionChanged = true; DeclencheAfterAddElements(nouveaux); Refresh(); } } ElementModifie(); EnDeplacement = false; Dessiner(true, true); }
/// ////////////////////////////////////////////////// ///LE data du result contient la valeur de retour public CResultAErreur StartProcess(CValise2iSerializable valiseProcess, CReferenceObjetDonnee refCible, int?nIdVersion, IIndicateurProgression indicateur) { using (C2iSponsor sponsor = new C2iSponsor()) { sponsor.Register(indicateur); CResultAErreur result = CResultAErreur.True; //Stef 08/12/2007 : le contexte ne reçoit plus les notifications using (CContexteDonnee contexteDeSession = new CContexteDonnee(IdSession, true, false)) { result = valiseProcess.GetObjet(typeof(CContexteDonnee), contexteDeSession); if (!result) { result.EmpileErreur(I.T("Error while recovering process|30014")); return(result); } CProcess leProcessAExecuter = (CProcess)result.Data; CObjetDonneeAIdNumerique objetCible = null; ///Stef, 290808 : ouvre une session spécifique pour le process ///Pour pouvoir gérer le changement d'utilisateur proprement CSousSessionClient session = CSousSessionClient.GetNewSousSession(contexteDeSession.IdSession); session.OpenSession(new CAuthentificationSessionSousSession(contexteDeSession.IdSession), leProcessAExecuter.Libelle, ETypeApplicationCliente.Process); CSessionClient sessionOriginale = CSessionClient.GetSessionForIdSession(contexteDeSession.IdSession); if (sessionOriginale.GetInfoUtilisateur() != null) { session.ChangeUtilisateur(sessionOriginale.GetInfoUtilisateur().KeyUtilisateur); } try { //Charge les éléments pour la nouvelle session; //Stef 08/12/2007 : le contexte ne reçoit plus les notifications //Stef le 9/2/2011, si, le contexte reçoit les notifications, //sinon, si un sous process modifie quelque chose, on ne le sait pas //et on a des problèmes de violation d'accès concurentiel using (CContexteDonnee contexte = new CContexteDonnee(session.IdSession, true, true)) { result = contexte.SetVersionDeTravail(nIdVersion, true); if (!result) { return(result); } if (refCible != null) { objetCible = (CObjetDonneeAIdNumerique)refCible.GetObjet(contexte); if (objetCible == null) { ///Stef 26/1//2009 : si l'objet n'existe pas, c'est qu'il n'y a rien à déclencher. ///cela résoud un problème : si un process avant celui-ci a supprimé le targetElement ///il ne faut pas lancer ce process là ! //result.EmpileErreur(I.T("Target object @1 does not exist|30015",refCible.ToString())); return(result); } } result = ExecuteProcess( session, objetCible, leProcessAExecuter, contexte, false, indicateur); } } catch (Exception e) { result.EmpileErreur(new CErreurException(e)); } finally { try { session.CloseSession(); } catch { } } } return(result); } }