public bool BearbeitenKeyDown(KeyEventArgs e) { bool neuzeichnen = false; switch (e.KeyData) { case Keys.R: foreach (AnlagenElement el in _auswahlElemente) { if (el != null && el is Signal) { _aktuellerBefehl = new EditKommando(EditAction.SignalDrehen, el, ZeichnenElemente, null); neuzeichnen |= _aktuellerBefehl.Ausfuehren(); } } break; case Keys.Delete: if (_auswahlElemente.Count > 0) { _aktuellerBefehl = new EditKommando(EditAction.Löschen, _auswahlElemente[0], ZeichnenElemente, null); neuzeichnen |= _aktuellerBefehl.Ausfuehren(); } break; } _aktuellerBefehl = null; return(neuzeichnen); }
public void BearbeitenDragDrop(Point deltaRaster, DragDropEffects effect) { int count = AuswahlElemente.Count; if (count > 0) { if (_aktuellerBefehl == null) { while (count > 1) { _auswahlElemente[count - 1].Selektiert = false; _auswahlElemente.RemoveAt(count - 1); count = AuswahlElemente.Count; } _aktuellerBefehl = new EditKommando(EditAction.Verschieben, _auswahlElemente[0], ZeichnenElemente, (object)new object[] { deltaRaster }); _aktuellerBefehl.Ausfuehren(); } else { _aktuellerBefehl.Ausfuehren((object)new object[] { deltaRaster }); } this.OnAnlageNeuZeichnen(); } //foreach (AnlagenElement el in this.AuswahlElemente) // ((RasterAnlagenElement)el).DragDropPositionVerschieben(deltaRaster); }
public void BearbeitenDragDropAbschließen(DragDropEffects effect) { //try { // foreach (AnlagenElement el in this.AuswahlElemente) // ((RasterAnlagenElement)el).DragDropAbschließen(); //} //catch (Exception e) { //} if (_aktuellerBefehl != null) { if (!_aktuellerBefehl.Ausfuehren((object)new object[] { new Point(0, 0) })) { _aktuellerBefehl.Rueckgaengig(); } } _aktuellerBefehl = null; BearbeitenSelektieren(MouseButtons.Left, false, new Point(-1, -1)); }
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); }