Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
 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));
 }
Beispiel #4
0
        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);
        }