public bool BearbeitenMouseClick(BearbeitungsModus bearbeitungsModus, MouseButtons button, bool ctrlPressed, Point punkt) { bool result = false; switch (bearbeitungsModus) { case BearbeitungsModus.Schalter: case BearbeitungsModus.Signal: case BearbeitungsModus.Gleis: case BearbeitungsModus.Entkuppler: case BearbeitungsModus.Fss: case BearbeitungsModus.InfoElement: case BearbeitungsModus.EingangsSchalter: result = this._model.BearbeitenNeuZeichnen(bearbeitungsModus, button, this.BerechneRasterPunkt(punkt)); break; case BearbeitungsModus.Selektieren: result = this._model.BearbeitenSelektieren(button, ctrlPressed, punkt); break; } return(result); }
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); }
/// <summary> /// aktualisiert die Vorschau für ein neues Anlagenelement /// </summary> /// <param name="bearbeitungsModus">Angabe des Elementtyps</param> /// <param name="_letzterRasterpunkt">Position des neuen Elements</param> /// <returns></returns> public bool NeuesElementVorschau(BearbeitungsModus bearbeitungsModus, Point _letzterRasterpunkt) { return(this._model.NeuesElementVorschau(bearbeitungsModus, _letzterRasterpunkt, this.Zoom)); }
public bool NeuesElementVorschau(BearbeitungsModus bearbeitungsModus, Point letzterRasterpunkt, int zoom) { if (this._neuesElement == null) { switch (bearbeitungsModus) { case BearbeitungsModus.Gleis: this._neuesElement = new Knoten(this._zeichnenElemente, zoom, this._anzeigeTyp, letzterRasterpunkt); break; case BearbeitungsModus.Schalter: this._neuesElement = new Schalter(this._zeichnenElemente, zoom, this._anzeigeTyp, letzterRasterpunkt); break; case BearbeitungsModus.Signal: this._neuesElement = new Signal(this._zeichnenElemente, zoom, this._anzeigeTyp, letzterRasterpunkt, false); break; case BearbeitungsModus.Entkuppler: this._neuesElement = new Entkuppler(this._zeichnenElemente, zoom, this._anzeigeTyp, letzterRasterpunkt); break; case BearbeitungsModus.Fss: this._neuesElement = new FSS(this._zeichnenElemente, zoom, this._anzeigeTyp, letzterRasterpunkt); break; case BearbeitungsModus.InfoElement: this._neuesElement = new InfoFenster(this._zeichnenElemente, zoom, this._anzeigeTyp, letzterRasterpunkt); break; case BearbeitungsModus.EingangsSchalter: this._neuesElement = new EingangsSchalter(this._zeichnenElemente, zoom, this._anzeigeTyp, letzterRasterpunkt); break; } } else { switch (bearbeitungsModus) { case BearbeitungsModus.Gleis: if (this._neuesElement.GetType().Name == "Knoten") { ((RasterAnlagenElement)this._neuesElement).PositionRaster = letzterRasterpunkt; this._neuesElement.BearbeitenAktualisierenNeuZeichnen(); } else { Gleis gl = (Gleis)this._neuesElement; gl.EndKn = new Knoten(this._zeichnenElemente, zoom, this._anzeigeTyp, letzterRasterpunkt); gl.BearbeitenAktualisierenNeuZeichnen(); } break; case BearbeitungsModus.InfoElement: case BearbeitungsModus.Signal: case BearbeitungsModus.Entkuppler: case BearbeitungsModus.Schalter: case BearbeitungsModus.Fss: case BearbeitungsModus.EingangsSchalter: ((RasterAnlagenElement)this._neuesElement).PositionRaster = letzterRasterpunkt; this._neuesElement.BearbeitenAktualisierenNeuZeichnen(); break; } } return(true); }