private void m_btnOpen_Click(object sender, EventArgs e) { OpenFileDialog dlg = new OpenFileDialog(); dlg.Filter = I.T("Symbol (*.2iSymbol)|*.2iSymbol|All files (*.*)|*.*|30376"); if (dlg.ShowDialog() == DialogResult.OK) { if (CFormAlerte.Afficher(I.T("The current symbol will be replaced. Continue ?|30379"), EFormAlerteType.Question) == DialogResult.No) { return; } C2iSymbole newSymbole = new C2iSymbole(); CResultAErreur result = CSerializerObjetInFile.ReadFromFile(newSymbole, C2iSymbole.c_idFichier, dlg.FileName); if (!result) { CFormAlerte.Afficher(result); } else { SymboleEdite = newSymbole; } } }
public static bool PositionnePorts(CTypeEquipement typeEquipement) { if (typeEquipement == null) { return(false); } C2iSymbole symbole = new C2iSymbole(); C2iSymbole symboleTypeEq = typeEquipement.SymboleADessinerSansPorts; if (symboleTypeEq != null) { symbole.Size = symboleTypeEq.Size; C2iSymboleVerrouille verrou = new C2iSymboleVerrouille(); verrou.SymboleContenu = symboleTypeEq; verrou.LockPosition = true; verrou.LockSize = true; symbole.AddChild(verrou); verrou.Parent = symbole; } foreach (CPort port in typeEquipement.Ports) { C2iSymbolePort symbolePort = new C2iSymbolePort(); symbolePort.Port = port; symbole.AddChild(symbolePort); symbolePort.Parent = symbole; } CFormEditeurSymbolePopup.EditeSymbole(symbole, typeEquipement.GetType(), true); return(true); }
private C2iSymboleSelectionMultiple CreatePanelSelectionMultiple() { C2iSymboleSelectionMultiple panelSelection = new C2iSymboleSelectionMultiple(); if (Selection.Count <= 0) { return(null); } if (Selection.Count > 1) { C2iSymbole prevSymbole = (C2iSymbole)Selection[0]; for (int i = 1; i < Selection.Count; i++) { if (prevSymbole.Parent != Selection[i].Parent) { MessageBox.Show(I.T("Impossible to group objects not having the same parent|30031")); return(null); } prevSymbole = (C2iSymbole)Selection[i]; } } panelSelection.ForeColor = Color.Transparent; panelSelection.BackColor = Color.Transparent; Selection[0].Parent.AddChild(panelSelection); if (panelSelection.Parent != null) { panelSelection.Parent.RemoveChild(panelSelection); } panelSelection.Parent = Selection[0].Parent; ArrayList arraySymbole = new ArrayList(); ArrayList arrayPos = new ArrayList(); foreach (C2iSymbole symbole in Selection[0].Parent.Childs) { if (Selection.Contains(symbole)) { arraySymbole.Add(symbole); arrayPos.Add(symbole.PositionAbsolue); } } foreach (C2iSymbole symbole in arraySymbole) { panelSelection.AddChild(symbole); if (symbole.Parent != null) { symbole.Parent.RemoveChild(symbole); } symbole.Parent = panelSelection; Selection.Remove(symbole); } for (int i = 0; i < arraySymbole.Count; i++) { ((C2iSymbole)arraySymbole[i]).PositionAbsolue = (Point)arrayPos[i]; } Refresh(); return(panelSelection); }
///Applique le paramètre à un élément public void ApplyOnElement(C2iSymbole element, CContexteEvaluationExpression ctxEval) { foreach (KeyValuePair <string, C2iExpression> kv in m_dicFormulesParPropriete) { string strPropriete = kv.Key; C2iExpression formule = kv.Value; if (formule != null) { //Trouve la propriete PropertyInfo info = element.GetType().GetProperty(strPropriete); if (info != null && info.GetSetMethod() != null) { MethodInfo methode = info.GetSetMethod(); CResultAErreur result = formule.Eval(ctxEval); if (result) { try { methode.Invoke(element, new object[] { result.Data }); } catch { } } } } } }
public C2iObjetDeSchema GetObjetDeSchema(CElementDeSchemaReseau elementDeSchema) { C2iObjetDeSchema objet = new C2iObjetDeSchema(); C2iSymbole symbole = SymboleADessiner; objet.ElementDeSchema = elementDeSchema; return(objet); }
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { C2iSymbole symbolePorts = new C2iSymbole(); if (Port != null) { if (Port.TypeEquipement != null) { CPositionneurPorts.PositionnePorts(Port.TypeEquipement); /*symbolePorts = CFormEditeurSymbolePopup.EditeSymbole(Port.SymboleTypeqADessiner, typeof(CTypeEquipement), true);*/ m_panelSymbole.RefreshSymbole(); } } }
public void Init(C2iSymbole symboleEdite, Type typeEdite, bool bEditPorts) { if (bEditPorts) { m_listeControles.Visible = false; m_propertyGrid.Visible = false; m_panelEditionSymbole.NoClipboard = true; m_panelEditionSymbole.NoDelete = true; m_panelEditionSymbole.NoDoubleClick = true; m_panelEditionSymbole.NoMenu = true; m_btnSave.Visible = false; m_btnOpen.Visible = false; } else { m_listeControles.AddAllLoadedAssemblies(); } m_listeControles.RefreshControls(); if (symboleEdite == null) { C2iSymbole symbFond = new C2iSymbole(); System.Drawing.Size size = new Size(300, 300); symbFond.Size = size; symbFond.BackColor = Color.Transparent; m_panelEditionSymbole.ObjetEdite = symbFond; m_panelEditionSymbole.TypeEdite = typeEdite; } else { SymboleEdite = symboleEdite; TypeEdite = typeEdite; } m_panelEditionSymbole.Editeur = this; if (bEditPorts) { SymboleEdite.ForeColor = Color.Black; } CFournisseurGeneriqueProprietesDynamiques fournisseurPropriete = new CFournisseurGeneriqueProprietesDynamiques(); m_panelEditionSymbole.FournisseurPropriete = fournisseurPropriete; }
//------------------------------------------ protected void ApplyOnSymbole(IElementDeSchemaReseau elementRepresenté) { if (m_symbole == null) { return; } m_symbole.ElementASymbole = elementRepresenté; CContexteEvaluationExpression ctxEval = new CContexteEvaluationExpression(elementRepresenté); foreach (CParametreRepresentationElementDeSymbole parametre in Parametres) { C2iSymbole element = m_symbole.GetChildFromName(parametre.ElementName); if (element != null) { parametre.ApplyOnElement(element, ctxEval); } } }
public void RemovePanelSelectionMultiple() { ArrayList arrayGroupes = new ArrayList(); foreach (I2iObjetGraphique objet in Selection) { if (objet.GetType() == typeof(C2iSymboleSelectionMultiple)) { arrayGroupes.Add(objet); } } foreach (I2iObjetGraphique objet in arrayGroupes) { C2iSymboleSelectionMultiple panelSelection = (C2iSymboleSelectionMultiple)objet; Selection.Remove(panelSelection); C2iSymbole[] tabSymbole = new C2iSymbole[panelSelection.Childs.Length]; Point[] tabPos = new Point[panelSelection.Childs.Length]; C2iSymbole objParent = (C2iSymbole)panelSelection.Parent; for (int i = 0; i < panelSelection.Childs.Length; i++) { tabSymbole[i] = (C2iSymbole)panelSelection.Childs[i]; tabPos[i] = panelSelection.Childs[i].PositionAbsolue; } panelSelection.Parent.RemoveChild(panelSelection); for (int i = 0; i < tabSymbole.Length; i++) { objParent.AddChild(tabSymbole[i]); if (tabSymbole[i].Parent != null) { tabSymbole[i].Parent.RemoveChild(tabSymbole[i]); } tabSymbole[i].Parent = objParent; } for (int i = 0; i < tabPos.Length; i++) { tabSymbole[i].Position = tabPos[i]; tabSymbole[i].PositionAbsolue = tabPos[i]; } } }
//---------------------------------------------------------- //Remet à jour la liste des contrôles disponibles et compatibles avec le type édité public void RefreshControls() { m_listeElements.Clear(); this.SuspendDrawing(); Dictionary <Type, bool> typesTraites = new Dictionary <Type, bool>(); ArrayList lstControles = new ArrayList(Controls); foreach (Control ctrl in lstControles) { CElementListeSymbole elt = ctrl as CElementListeSymbole; typesTraites.Add(elt.TypeAssocie, true); if (elt != null) { m_listeElements.Add(elt); } else { m_listeElements.Add(elt); } } m_listeTypesControlesConnus.Sort(new TypeSorter()); foreach (Type tp in m_listeTypesControlesConnus) { if (!typesTraites.ContainsKey(tp)) { CElementListeSymbole elt = new CElementListeSymbole(); elt.Image = C2iSymbole.GetImage(tp); Controls.Add(elt); elt.TypeAssocie = tp; elt.Size = new Size(ClientRectangle.Width, c_nElementHeight); elt.Left = 0; elt.Top = m_listeElements.Count * (c_nElementHeight + c_nEcartYElements) + c_nEcartYElements; elt.CreateControl(); elt.Dock = DockStyle.Top; elt.SendToBack(); elt.Visible = true; m_listeElements.Add(elt); } } this.ResumeDrawing(); }
private void m_linkEditSymbole_LinkClicked(object sender, EventArgs e) { if (m_radioSymbolePropre.Checked) { if (m_objetEdite.SymbolePropre == null) { m_objetEdite.SymboleDeBibliotheque = null; CSymbole sym = new CSymbole(((CObjetDonnee)m_objetEdite).ContexteDonnee); sym.CreateNewInCurrentContexte(); m_objetEdite.SymbolePropre = sym; } C2iSymbole symboleEdite = CFormEditeurSymbolePopup.EditeSymbole(m_objetEdite.SymbolePropre.Symbole, m_typeEdite, false); if (symboleEdite != null) { m_objetEdite.SymbolePropre.Symbole = symboleEdite; } } }
public static C2iSymbole EditeSymbole(C2iSymbole symboleEdite, Type typeEdite, bool bEditePorts) { CFormEditeurSymbolePopup form = new CFormEditeurSymbolePopup(); C2iSymbole symbole; symbole = new C2iSymbole(); if (bEditePorts) { form.m_btnAnnuler.Visible = false; } if (symboleEdite == null) { symbole.Size = new Size(300, 300); symbole.BackColor = Color.Transparent; symbole.TargetType = typeEdite; form.m_panelEditeurSymbole.Init(symbole, typeEdite, bEditePorts); } else { form.m_panelEditeurSymbole.Init(symboleEdite, typeEdite, bEditePorts); } if (form.ShowDialog() == DialogResult.OK) { symbole = form.m_panelEditeurSymbole.SymboleEdite; form.Dispose(); return(symbole); } else { form.Dispose(); return(null); } }
//------------------------------------------------------------------------- protected override CResultAErreur MyInitChamps() { m_chkParDefaut.Checked = false; m_chkParDefaut.Visible = !SymboleDeBibliotheque.IsNew(); InitFamilles(); InitComboTypeCible(); AffecterTitre(I.T("Library symbol |30025") + SymboleDeBibliotheque.Libelle); CResultAErreur result = base.MyInitChamps(); C2iSymbole symb = new C2iSymbole(); symb.BackColor = Color.White; Type typeEdite = null; if (result) { m_cmbxTypeCible.SelectedValue = SymboleDeBibliotheque.TypeCible; if (m_cmbxTypeCible.SelectedValue != null) { typeEdite = (Type)m_cmbxTypeCible.SelectedValue; } if (SymboleDeBibliotheque != null) { if (SymboleDeBibliotheque.Symbole != null) { if (SymboleDeBibliotheque.Symbole.Symbole != null) { symb = SymboleDeBibliotheque.Symbole.Symbole; } } } m_panelEditeurSymbole.Init(symb, typeEdite, false); } if (SymboleDeBibliotheque.Symbole != null) { m_chkParDefaut.Checked = CSymbole.GetIdSymboleParDefaut(SymboleDeBibliotheque.TypeCible, SymboleDeBibliotheque.ContexteDonnee) == SymboleDeBibliotheque.Symbole.Id; } return(result); }
public void InitSymbole(C2iSymbole symbole) { m_symbole = symbole; }
private void InitPanelFormules() { ValidePanelFormules(); m_lastSymbolSel = null; C2iSymbole objet = m_panelEditeurSymbole.ObjetSelectionne; m_panelFormules.SuspendDrawing(); foreach (Control ctrl in m_panelFormules.Controls) { CControlEditFormulePropriete ctrlFormule = ctrl as CControlEditFormulePropriete; if (ctrl != null) { ctrlFormule.Visible = false; ctrlFormule.Clear(); } } if (objet == null || objet.Name.Trim() == "") { m_panelFormules.ResumeDrawing(); return; } int nControle = 0; CParametreRepresentationElementDeSymbole parametreElement = m_parametre.Parametres.FirstOrDefault(p => p.ElementName == objet.Name); foreach (PropertyInfo propriete in objet.GetType().GetProperties()) { if (propriete.GetGetMethod() == null) { continue; } if (propriete.PropertyType != typeof(Color) && propriete.PropertyType != typeof(int) && propriete.PropertyType != typeof(string) && propriete.PropertyType != typeof(double) && propriete.PropertyType != typeof(bool)) { continue; } //Ne prend pas le propriétés non browsable object[] attrs = propriete.GetCustomAttributes(typeof(BrowsableAttribute), true); if (attrs.Length > 0) { BrowsableAttribute attr = (BrowsableAttribute)attrs[0]; if (!attr.Browsable) { continue; } } CControlEditFormulePropriete ctrlFormule = null; if (nControle >= m_listeControlesFormule.Count()) { ctrlFormule = new CControlEditFormulePropriete(); m_panelFormules.Controls.Add(ctrlFormule); ctrlFormule.Dock = DockStyle.Top; m_listeControlesFormule.Add(ctrlFormule); } else { ctrlFormule = m_listeControlesFormule[nControle]; } nControle++; C2iExpression formule = null; if (parametreElement != null) { formule = parametreElement[propriete.Name]; } ctrlFormule.Init(m_typeElements, propriete.Name, formule); ctrlFormule.Visible = true; ctrlFormule.BringToFront(); } m_panelFormules.ResumeDrawing(); m_lastSymbolSel = objet; }
//---------------------------------------------------------- //Remet à jour la liste des contrôles disponibles et compatibles avec le type édité public void RefreshControls() { m_listeElements.Clear(); SuspendLayout(); Dictionary <Type, bool> typesTraites = new Dictionary <Type, bool>(); ArrayList lstControles = new ArrayList(Controls); foreach (Control ctrl in lstControles) { CElementListeSymbole elt = ctrl as CElementListeSymbole; typesTraites.Add(elt.TypeAssocie, true); if (elt != null) { C2iSymbole symbole = (C2iSymbole)Activator.CreateInstance(elt.TypeAssocie); /* if (!wnd.CanBeUseOnType(m_typeEdite)) * { * elt.Visible = false; * elt.Parent.Controls.Remove(elt); * elt.Dispose(); * } * else*/ m_listeElements.Add(elt); } else { m_listeElements.Add(elt); } } foreach (Type tp in m_listeTypesControlesConnus) { if (!typesTraites.ContainsKey(tp)) { if (!tp.IsAbstract) { C2iSymbole symbole = (C2iSymbole)Activator.CreateInstance(tp); /* if (!wnd.CanBeUseOnType(m_typeEdite)) * continue;*/ } CElementListeSymbole elt = new CElementListeSymbole(); // elt.Image = C2iWnd.GetImage(tp); /*object[] atts = tp.GetCustomAttributes(typeof(AWndIcone), false); * * if (atts.Length >= 1) * { * AWndIcone att = (AWndIcone)atts[0]; * elt.Image = att.Icone; * }*/ elt.Parent = this; elt.TypeAssocie = tp; elt.Size = new Size(ClientRectangle.Width, c_nElementHeight); elt.Left = 0; elt.Top = m_listeElements.Count * (c_nElementHeight + c_nEcartYElements) + c_nEcartYElements; elt.CreateControl(); elt.Dock = DockStyle.Top; elt.Visible = true; m_listeElements.Add(elt); } } ResumeLayout(); }