/// <summary> /// Setzt das Vorschau Element zurück (weist diesem NULL zu) /// </summary> public void NeuesElementVorschauReset() { if (this._neuesElement != null) { this._neuesElement = null; OnAnlageNeuZeichnen(); } }
public void BearbeitenSelektieren(AnlagenElement element) { BearbeitenSelektionLöschen(); if (element == null) { OnAnlageNeuZeichnen(); return; } this.AuswahlElemente.Add(element); element.Selektiert = true; OnAnlageNeuZeichnen(); }
private void elementEintragen(AnlagenElement Element, string Anschluss) { for (int i = 0; i < dataGridView1.RowCount; i++) { string z = Convert.ToString(dataGridView1[0, 1].Value); if (z == Anschluss) // if (string.Compare(z, Anschluss,true)) { dataGridView1[1, i].Value = dataGridView1[1, i].Value + " " + Element.Bezeichnung; } } // dataGridView1 }
public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) { if (value != null) { if (value is BefehlsListe) { AnlagenElement el = (AnlagenElement)context.Instance; if (el != null) { return(el.Koppelung.ListenString); } } return(value.GetType().FullName); } return(null); }
public EditKommando(EditAction aktion, AnlagenElement element, AnlagenElemente anlagenElemente, object value) { if (element is Gleis) { _elementTyp = ElementTyp.Gleis; } else if (element is Knoten) { _elementTyp = ElementTyp.Knoten; _alterWert = ((Knoten)element).PositionRaster; } else if (element is Signal) { _elementTyp = ElementTyp.Signal; _alterWert = ((Signal)element).PositionRaster; } else if (element is Schalter) { _elementTyp = ElementTyp.Schalter; _alterWert = ((Schalter)element).PositionRaster; } else if (element is Entkuppler) { _elementTyp = ElementTyp.Entkuppler; _alterWert = ((Entkuppler)element).PositionRaster; } else if (element is FSS) { _elementTyp = ElementTyp.FSS; _alterWert = ((FSS)element).PositionRaster; } else if (element is InfoFenster) { _elementTyp = ElementTyp.InfoElement; _alterWert = ((InfoFenster)element).PositionRaster; } else if (element is EingangsSchalter) { _elementTyp = ElementTyp.EingangsSchalter; _alterWert = ((EingangsSchalter)element).PositionRaster; } _aktion = aktion; _element = element; _neuerWert = value; _anlagenElemente = anlagenElemente; }
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) { if (value is String) { AnlagenElement adr = (AnlagenElement)context.Instance; if (context.PropertyDescriptor.DisplayName == "Ausgang") { adr.Ausgang.SpeicherString = (string)value; context.OnComponentChanged(); return(adr.Ausgang); } else if ((adr is Gleis) && (context.PropertyDescriptor.DisplayName == "Eingang")) { Gleis gl = (Gleis)adr; gl.Eingang.SpeicherString = (string)value; return(gl.Eingang); } } return(null); }
public bool BearbeitenNeuZeichnen(BearbeitungsModus bearbeitungsModus, MouseButtons button, Point rasterpunkt) { if (this._neuesElement != null) { EditKommando command; switch (bearbeitungsModus) { case BearbeitungsModus.Gleis: if (this._neuesElement.GetType().Name == "Knoten") { Gleis gl = new Gleis(this._zeichnenElemente, this._neuesElement.Zoom, this._anzeigeTyp, (Knoten)this._neuesElement, (Knoten)this._neuesElement); this._neuesElement = gl; } else { Gleis gl = (Gleis)this._neuesElement; command = new EditKommando(EditAction.Neuzeichnen, ElementTyp.Gleis, this.ZeichnenElemente , (object)new object[] { this._zeichnenElemente.GleisElemente.SucheFreieNummer() , gl.StartKn.PositionRaster, gl.EndKn.PositionRaster }); command.Ausfuehren(); NeuesElementVorschauReset(); return(true); } break; case BearbeitungsModus.Signal: _neuesElement.GleisElementAustragen(); command = new EditKommando(EditAction.Neuzeichnen, ElementTyp.Signal, this.ZeichnenElemente , (object)new object[] { this._zeichnenElemente.SignalElemente.SucheFreieNummer() , ((RasterAnlagenElement)_neuesElement).PositionRaster, ((Signal)_neuesElement).InZeichenRichtung }); command.Ausfuehren(); NeuesElementVorschauReset(); return(true); case BearbeitungsModus.Entkuppler: _neuesElement.GleisElementAustragen(); command = new EditKommando(EditAction.Neuzeichnen, ElementTyp.Entkuppler, this.ZeichnenElemente , (object)new object[] { this._zeichnenElemente.EntkupplerElemente.SucheFreieNummer() , ((RasterAnlagenElement)_neuesElement).PositionRaster }); command.Ausfuehren(); NeuesElementVorschauReset(); return(true); case BearbeitungsModus.Schalter: _neuesElement.GleisElementAustragen(); command = new EditKommando(EditAction.Neuzeichnen, ElementTyp.Schalter, this.ZeichnenElemente , (object)new object[] { this._zeichnenElemente.SchalterElemente.SucheFreieNummer() , ((RasterAnlagenElement)_neuesElement).PositionRaster }); command.Ausfuehren(); NeuesElementVorschauReset(); return(true); case BearbeitungsModus.Fss: _neuesElement.GleisElementAustragen(); command = new EditKommando(EditAction.Neuzeichnen, ElementTyp.FSS, this.ZeichnenElemente , (object)new object[] { this._zeichnenElemente.FssElemente.SucheFreieNummer() , ((RasterAnlagenElement)_neuesElement).PositionRaster }); command.Ausfuehren(); NeuesElementVorschauReset(); return(true); case BearbeitungsModus.InfoElement: _neuesElement.GleisElementAustragen(); command = new EditKommando(EditAction.Neuzeichnen, ElementTyp.InfoElement, this.ZeichnenElemente , (object)new object[] { this._zeichnenElemente.InfoElemente.SucheFreieNummer() , ((RasterAnlagenElement)_neuesElement).PositionRaster }); command.Ausfuehren(); NeuesElementVorschauReset(); return(true); case BearbeitungsModus.EingangsSchalter: _neuesElement.GleisElementAustragen(); command = new EditKommando(EditAction.Neuzeichnen, ElementTyp.EingangsSchalter, this.ZeichnenElemente , (object)new object[] { this._zeichnenElemente.EingSchalterElemente.SucheFreieNummer() , ((RasterAnlagenElement)_neuesElement).PositionRaster }); command.Ausfuehren(); NeuesElementVorschauReset(); return(true); } } return(false); }
public frmProperties(AnlagenElement AElement) { InitializeComponent(); propertyGrid1.SelectedObject = AElement; this.Text = AElement.InfoString; }
/// <summary> /// Umschalten eines Elementes /// </summary> /// <param name="elementName">Elementtyp</param> /// <param name="nr">ID des Elementes, welches geschaltet werden soll</param> /// <returns></returns> private bool ElementToggelnAusfuehren(string elementName, int nr) { AnlagenElement el = null; switch (elementName) { case "StartSignalGruppe": //StartSignalGruppe ssg = _zeichnenElemente.SsgElemente.Element(nr); //int signalId = ssg.FSAuswahl(); //if (signalId != 0) { // Signal sn = _zeichnenElemente.SignalElemente.Element(signalId); // if (sn != null) { // return FahrstrassenSignalSchalten(sn); // } // FahrstrassenSignalSchalten(signalId); // //el = _zeichnenElemente.FahrstrassenElemente.Fahrstrasse(signalId); // //FahrstrasseSchalten((FahrstrasseN)el, FahrstrassenSignalTyp.StartSignal); // _zeichnenElemente.FSSAktualisieren(); // return true; //} return(false); case "FahrstrasseK": el = _zeichnenElemente.FahrstrassenKElemente.Element(nr); break; case "Servo": el = _zeichnenElemente.ServoElemente.Element(nr); break; case "Signal": el = _zeichnenElemente.SignalElemente.Element(nr); break; case "Gleis": //el = zeichnenElemente.GleisElemente.Element(nr); break; case "Schalter": el = _zeichnenElemente.SchalterElemente.Element(nr); break; case "FSS": el = _zeichnenElemente.FssElemente.Element(nr); break; case "Entkuppler": el = _zeichnenElemente.EntkupplerElemente.Element(nr); break; case "Weiche": el = _zeichnenElemente.WeicheElemente.Element(nr); break; case "FahrstrasseN_Ziel": el = _zeichnenElemente.FahrstrassenElemente.Fahrstrasse(nr); FahrstrasseN fs = (FahrstrasseN)el; FahrstrasseSchalten(fs, FahrstrassenSignalTyp.ZielSignal); if (fs.EndSignal.AutoStart) { if (fs.IsAktiv) { try { Zug zug = fs.StartSignal.Zug; if (zug == null) //suche nach startsignal { FahrstrasseN fsStart = (FahrstrasseN)el; bool startFound; do { startFound = false; foreach (AnlagenElement x in _zeichnenElemente.FahrstrassenElemente.AktiveFahrstrassen) { if (((FahrstrasseN)x).EndSignal == fsStart.StartSignal) { fsStart = (FahrstrasseN)x; startFound = true; break; } } } while (startFound && fsStart.StartSignal.Zug == null); //if (fsStart.StartSignal.Zug != null) { zug = fsStart.StartSignal.Zug; //} } if (zug != null) { fs.EndSignal.ZugNr = zug.ID; } List <AnlagenElement> fsListe = FahrstrassenSignalSchalten(fs.EndSignal, true); fs.EndSignal.ZugNr = 0; if (fsListe != null && fsListe.Count > 0) { FahrstrasseN autostartFs = null; foreach (AnlagenElement x in fsListe) { if (((FahrstrasseN)x).EndSignal.ZugTypString != string.Empty) { autostartFs = (FahrstrasseN)x; break; } } if (autostartFs == null) { autostartFs = (FahrstrasseN)fsListe[0]; } FahrstrasseSchalten(autostartFs, FahrstrassenSignalTyp.ZielSignal); } } catch (Exception e) { } } } try { _zeichnenElemente.FSSAktualisieren(); } catch (Exception e) { } return(true); case "FahrstrasseN_Start": el = _zeichnenElemente.FahrstrassenElemente.Fahrstrasse(nr); FahrstrasseSchalten((FahrstrasseN)el, FahrstrassenSignalTyp.StartSignal); _zeichnenElemente.FSSAktualisieren(); return(true); } if (el != null) { bool action = el.AusgangToggeln(); //if (elementName == "FSS") _zeichnenElemente.FSSAktualisieren(); if (elementName == "Entkuppler") { if (el.ElementZustand == Elementzustand.An && EntkupplerAbschaltAutoAktiv) { Thread entkupplerAbschalt = new Thread(this.EntkupplerAbschaltung); entkupplerAbschalt.Start(el); } } //if (action && _ardController.IsPortOpen()) // OnAnlagenzustandChanged(null); return(action); } return(false); }