コード例 #1
0
        private void VisualizeSimulationGridFromImportedData(List <NodeCreationData> importedData)
        {
            SimulationGrid.Children.Clear();

            for (var index = importedData.Count - 1; index >= 0; index--)
            {
                var component = importedData[index];
                foreach ((int, int)cell in component.Cell)
                {
                    var(row, col) = cell;

                    var enabledRectangle = new MutantRectangle(cell, new ImageBrush
                    {
                        ImageSource = BuildingComponentsHelper.GetBuildingComponentImage(component.Type),
                        Stretch     = Stretch.Fill
                    });

                    Grid.SetRow(enabledRectangle, row);
                    Grid.SetColumn(enabledRectangle, col);

                    SimulationGrid.Children.Add(enabledRectangle);
                }
            }

            ConvertToSettingsService.SerializedToCreation(importedData);
            EnableNextButton();
        }
コード例 #2
0
        private void Export_Click(object sender, RoutedEventArgs e)
        {
            var data = ConvertToSettingsService.Serialize();

            if (!data.Any())
            {
                MessageBox.Show(
                    "There is nothing to be exported! You should draw something on the simulation grid first!");
                return;
            }

            ImportExportSimulation(GetDialogInformation <SaveFileDialog>(), data);
        }
コード例 #3
0
        private void SwitchTab(MainWindow obj)
        {
            if (ConvertToSettingsService.NodesCreationData.Count == 0)
            {
                ConvertToSettingsService.ConvertToCreationData();
            }

            FlightsView.IncomingPickUpAreasComboBox.ItemsSource = ConvertToSettingsService.GetAvailablePickUpAreas();
            FlightsView.OutgoingGatesComboBox.ItemsSource       = ConvertToSettingsService.GetAvailableGates();
            FlightsView.IncomingGatesComboBox.ItemsSource       = ConvertToSettingsService.GetAvailableGates();

            DisableBuildingComponentsButtons();

            MainTabMenu.SelectedIndex = 1;
        }
コード例 #4
0
        private void ClearGridButton_Click(object sender, RoutedEventArgs e)
        {
            InitializeClickableGridCells();
            ConvertToSettingsService.ClearNodesSerializedData();
            ConvertToSettingsService.ClearNodesCreationData();

            SimulationGridOptions.CanBuildCheckIn           = true;
            SimulationGridOptions.CanBuildConveyor          = true;
            SimulationGridOptions.CanBuildManyToOneConveyor = true;
            SimulationGridOptions.CanBuildPsc    = true;
            SimulationGridOptions.CanBuildAsc    = true;
            SimulationGridOptions.CanBuildAa     = true;
            SimulationGridOptions.CanBuildPickUp = true;
            SimulationGridOptions.CanBuildMpa    = true;
            SimulationGridOptions.CanBuildBridge = true;
        }
コード例 #5
0
        private void ImportExportSimulation(
            FileDialog fileDialog,
            IReadOnlyCollection <NodeCreationData> data = null,
            bool export = true)
        {
            fileDialog.ShowDialog();

            if (string.IsNullOrEmpty(fileDialog.FileName))
            {
                return;
            }

            Stream stream = null;

            if (fileDialog is SaveFileDialog saveDialog)
            {
                stream = saveDialog.OpenFile();
            }
            else if (fileDialog is OpenFileDialog openDialog)
            {
                stream = openDialog.OpenFile();
            }

            try
            {
                using (var fs = stream ?? new FileStream("../../simulationImportExportFile", FileMode.OpenOrCreate, FileAccess.ReadWrite))
                {
                    if (export)
                    {
                        new BinaryFormatter().Serialize(fs, data ?? new List <NodeCreationData>());
                        ConvertToSettingsService.ClearNodesSerializedData();
                    }
                    else
                    {
                        var bf           = new BinaryFormatter();
                        var importedData = (List <NodeCreationData>)bf.Deserialize(fs);
                        VisualizeSimulationGridFromImportedData(importedData);
                        // TODO : VisualizeSimulationGridFromImportedData(importedData)
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
            }
        }