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