コード例 #1
0
        public EditTransport(RattlerTransport transport, WindowType type)
        {
            InitializeComponent();
            Type      = type;
            Transport = transport;

            if (type == WindowType.EDIT)
            {
                BoxName.Text     = transport.name;
                BoxCapacity.Text = transport.capacity.ToString();
                BoxSpeed.Text    = transport.averageSpeed.ToString();

                BoxTram.IsEnabled         = false;
                BoxMetro.IsEnabled        = false;
                BoxTrain.IsEnabled        = false;
                BoxExpressTrain.IsEnabled = false;

                convertFromType(transport.getType()).IsChecked = true;
            }
            else
            {
                BoxCapacity.Text = "0";
                BoxSpeed.Text    = 0.1D.ToString();
            }
        }
コード例 #2
0
        public override RattlerStore ReadJson(
            JsonReader reader, Type objectType, RattlerStore existingValue, bool hasExistingValue,
            JsonSerializer serializer
            )
        {
            if (reader.TokenType.Equals(JsonToken.StartObject))
            {
                JObject obj = JObject.Load(reader);

                core.store.maxTransportId = obj["max-transport-id"] != null ? obj["max-transport-id"].Value <long>() : 1;
                core.store.maxTransportId = obj["max-station-id"] != null ? obj["max-station-id"].Value <long>() : 1;

                // Load stations
                List <RattlerStation> stations = new List <RattlerStation>();
                if (obj["stations"] != null)
                {
                    foreach (JToken jToken in obj["stations"])
                    {
                        RattlerStation station = JsonConvert.DeserializeObject <RattlerStation>(jToken.ToString());
                        core.stationService.addStation(station);
                    }
                }

                // Load links
                List <LinkStation> links = new List <LinkStation>();
                if (obj["links"] != null)
                {
                    foreach (JToken jToken in obj["links"])
                    {
                        LinkStation link = JsonConvert.DeserializeObject <LinkStation>(jToken.ToString());
                        core.stationService.addLink(link);
                    }
                }

                // Load transport
                List <RattlerTransport> transports = new List <RattlerTransport>();
                if (obj["transports"] != null)
                {
                    foreach (JToken jToken in obj["transports"])
                    {
                        RattlerTransport transport = JsonConvert.DeserializeObject <RattlerTransport>(jToken.ToString());
                        core.transportService.addTransport(transport);
                    }
                }

                return(core.store);
            }

            throw new JsonException("Неудалось прочесть");
        }
コード例 #3
0
 public void addTransport(RattlerTransport transport)
 {
     if (transport.id == 0)
     {
         transport.id = core.store.maxTransportId++;
     }
     else
     {
         if (transport.id > core.store.maxTransportId)
         {
             core.store.maxTransportId = transport.id + 1;
         }
     }
     core.store.transports.Add(transport);
 }
コード例 #4
0
        private void done(object sender, RoutedEventArgs e)
        {
            string name;
            int    capacity     = 0;
            double averageSpeed = 0;

            if (BoxName.Text.Trim().Length > 0)
            {
                name = BoxName.Text;
            }
            else
            {
                new ErrorWindow("Ошибка в имени").Show();
                return;
            }

            try {
                var boxCapacityText = BoxCapacity.Text;
                capacity = int.Parse(boxCapacityText);
            } catch (Exception ex) {
                new ErrorWindow("Ошибка вместимости: " + ex.Message).Show();
                return;
            }

            try {
                var BoxSpeedText = BoxSpeed.Text;
                averageSpeed = double.Parse(BoxSpeedText);
            } catch (Exception ex) {
                new ErrorWindow("Ошибка ср. скорости: " + ex.Message).Show();
                return;
            }

            if (Type == WindowType.CREATE)
            {
                if (RattlerTransportType.TRAM.Equals(transportType))
                {
                    Transport = new Tram(name);
                }
                else if (RattlerTransportType.METRO.Equals(transportType))
                {
                    Transport = new Tram(name);
                }
                else if (RattlerTransportType.TRAIN.Equals(transportType))
                {
                    Transport = new Tram(name);
                }
                else if (RattlerTransportType.EXPRESS_TRAIN.Equals(transportType))
                {
                    Transport = new Tram(name);
                }
                else
                {
                    new ErrorWindow("Не выбран тип транспорта!").Show();
                    return;
                }

                MainWindow.core.transportService.addTransport(Transport);
            }
            else
            {
                Transport.name = name;
            }

            Transport.averageSpeed = averageSpeed;
            Transport.capacity     = capacity;

            MainWindow.main.updateGrids();
            Close();
        }
コード例 #5
0
 public void removeTransport(RattlerTransport transport)
 {
     core.store.transports.Remove(transport);
 }