Пример #1
0
        public void NewProjectCreated(object sender, DanoEventArgs e)
        {
            // Version 1.5 'Priscilla'

            // Implement globalstate after this
#if PRISCILLA
            MainWindow MnWindow = (MainWindow)Application.Current.MainWindow;
#endif

            // Create the basins

            // clean the UI (VERY TEMP; only use for beta - v605)
            MnWindow.Layers.ClearLayers();

            Debug.Assert(e.DanoParameters.Count == 2);

            // get the basin name
            string BasinName = (string)e.DanoParameters[1];

            Basin NewBasin = TProj.GetBasinWithName(BasinName);

            TProj.AddBasin((string)e.DanoParameters[1], true);

            // SHOULD work
            MnWindow.ImagePath = NewBasin.ImagePath;

            MnWindow.CurrentProject = TProj;

            UpdateLayout();
            // Load basin

            // Temp
            MnWindow.EnableButtons();
            Close();
        }
Пример #2
0
        public void Lyr_Deleted(object sender, DanoEventArgs e)
        {
#if PRISCILLA
            Debug.Assert(e.DanoParameters.Count == 1);

            string LayerName = (string)e.DanoParameters[0];

            if (MnWindow.CurrentProject != null)
            {
                if (LayerName == "Background")
                {
                    // pending for when we move error handling to UL5
                    Error.Throw("Warning!", "You cannot delete the background layer!", ErrorSeverity.Warning, 227);
                    return;
                }

#if v21_LayerBinding
                Layers.LayerNames.Remove(LayerName);
#else
                Layers.PriscillaUI_Layers_LayerListView.Items.Remove(LayerName);
#endif
                MnWindow.CurrentProject.SelectedBasin.RemoveLayerWithName(LayerName);
            }
#else
            LayerManager LH = GlobalState.GetLCH();
#endif
        }
Пример #3
0
        public void Edit_Click(object sender, DanoEventArgs e)
        {
            Debug.Assert(e.DanoParameters.Count == 1);
            string StormToSelect = (string)e.DanoParameters[0];

            Project.SelectedBasin.SelectStormWithName(StormToSelect);
        }
Пример #4
0
        public void OKHit(object sender, DanoEventArgs DEA)
        {
            Debug.Assert(DEA.DanoParameters.Count == 4);

#if DANO
            Basin CBasin = GlobalState.GetCurrentBasin(); // only valid when project valid
            Storm Sto = CBasin.GetCurrentStorm();
#else
            MainWindow MnWindow = (MainWindow)Application.Current.MainWindow;
            Storm Sto = MnWindow.CurrentProject.SelectedBasin.GetCurrentStorm();

            try
            {
                int Intensity = (int)DEA.DanoParameters[0];
                string Type = (string)DEA.DanoParameters[1];
                Point Position = (Point)DEA.DanoParameters[2];
                int Pressure = (int)DEA.DanoParameters[3];

                Sto.AddNode(Intensity, Type, Position, Pressure, MnWindow.ST2Manager);
                Close();
            }
            catch (InvalidCastException err)
            {
#if DEBUG
                Error.Throw("Warning!", $"Internal error: Cannot convert DanoParameters to their actual types.\n\n{err}", ErrorSeverity.Warning, 403);
#else
                Error.Throw("Warning!", "Internal error: Cannot convert DanoParameters to their actual types.\n\n{err}", ErrorSeverity.Warning, 403); 
#endif
#endif
            }

        }
Пример #5
0
        public void OKHit(object sender, DanoEventArgs DEA)
        {
            Debug.Assert(DEA.DanoParameters.Count == 1);

            string NewLayerName = (string)DEA.DanoParameters[0];

            if (NewLayerName == "")
            {
                Error.Throw("Error!", "Please enter a new layer name!", ErrorSeverity.Error, 247);
                return;
            }

#if PRISCILLA // Priscilla (2.0) / Iris (2.1)
            MainWindow MnWindow = (MainWindow)Application.Current.MainWindow;

            Basin CurBasin = MnWindow.CurrentProject.SelectedBasin;

            if (!CurBasin.RenameLayerWithName(PrevName, NewLayerName))
            {
                Error.Throw("Fatal Error!", "Attempted to rename nonexistent layer!", ErrorSeverity.Error, 248);
                return;
            }

            Close();
#else
            // Glue API layer manager.... (Dano / 3.0)
#endif
        }
        private void OKHit(object sender, DanoEventArgs e)
        {
            try
            {
                Debug.Assert(e.DanoParameters.Count == 3);

                bool   BringToFront = (bool)e.DanoParameters[0];
                bool   BringToBack  = (bool)e.DanoParameters[1];
                string LayerName    = (string)e.DanoParameters[2];

                if (BringToFront && BringToBack)
                {
                    Error.Throw("You cannot select both Bring to Front and Bring to Back options!", "Warning", ErrorSeverity.Warning, 174);
                }
                else
                {
#if PRISCILLA
                    MainWindow MnWindow = (MainWindow)Application.Current.MainWindow;
                    MnWindow.CurrentProject.SelectedBasin.AddLayer(LayerName);
                    Close();
#else // Dano - globalstate
#endif
                }
            }
            catch (FormatException err)
            {
#if DEBUG
                Error.Throw("Fatal!!", $"An error occurred parsing the DanoParameters for the CreateLayerHost!\n\n{err}", ErrorSeverity.FatalError, 175);
#else
                Error.Throw("Fatal!!", $"An error occurred parsing the DanoParameters for the CreateLayerHost!\n\nThis is likely a bug in the Track Maker.", ErrorSeverity.FatalError, 175);
#endif
            }
        }
Пример #7
0
        private void Lyr_Selected(object sender, DanoEventArgs e)
        {
            // not the best way to handle this at all
            // MnWindow.StopTimer();
            Debug.Assert(e.DanoParameters.Count == 1);

            // silently ail
            List <string> SelectedList_Added = (List <string>)e.DanoParameters[0];

            // SelectionMode is explicitly set to Single on the layercontrol,
            // so this should be impossible

            if (SelectedList_Added.Count < 1)
            {
                // selection did not really change
                return;
            }

            Basin SBasin = MnWindow.CurrentProject.SelectedBasin;

            string LayerSelected = SelectedList_Added[0];

            SBasin.SelectLayerWithName(LayerSelected);

            //MnWindow.StartTimer();
        }
Пример #8
0
        private void ZoomLevelChanged(object sender, DanoEventArgs e)
        {
            double ZoomLevel = (double)e.DanoParameters[0];

            ZoomLevelX = ZoomLevel / 100; // dumb hack
            ZoomLevelY = ZoomLevel / 100;

            // hack for 2.0 only
            if (CurRelativePos.X == 0 || CurRelativePos.Y == 0)
            {
                CurRelativePos = new Point(0.01, 0.01);
            }

            if (ZoomLevelX < 1)
            {
                ZoomLevelX = 1;
            }
            if (ZoomLevelY < 1)
            {
                ZoomLevelY = 1;
            }
            if (ZoomLevelX > 5)
            {
                ZoomLevelX = 5;
            }
            if (ZoomLevelY > 5)
            {
                ZoomLevelY = 5;
            }
        }
Пример #9
0
        public void Rename_Click(object sender, DanoEventArgs e)
        {
            string     StoName = (string)e.DanoParameters[0];
            EditUIHost EUIH    = new EditUIHost(Project, StoName);

            EUIH.Owner = this;
            EUIH.Show();
        }
Пример #10
0
        public void Delete_Click(object sender, DanoEventArgs e)
        {
            // pre-globalstate
            Debug.Assert(e.DanoParameters.Count == 1);
            string DelStorm = (string)e.DanoParameters[0];

            Project.SelectedBasin.RemoveStormWithName(DelStorm);
        }
Пример #11
0
        private void OnAdvancedSettingsToggleChanged(object sender, DanoEventArgs DEA)
        {
            Debug.Assert(DEA.DanoParameters.Count == 1); 

            bool AdvancedApplicationSettingsToggleState = (bool)DEA.DanoParameters[0];

            ToggleAdvancedApplicationSettings(AdvancedApplicationSettingsToggleState);

        }
Пример #12
0
        public void Lyr_Created(object sender, DanoEventArgs e)
        {
            //MnWindow.StopTimer();
            // no DEA
            CreateLayerHost CLH = new CreateLayerHost();

            CLH.Owner = Application.Current.MainWindow;
            CLH.Show();
            //MnWindow.StartTimer();
        }
Пример #13
0
        public void DisplayButtonHit(object Sender, DanoEventArgs DEA)
        {
            Debug.Assert(DEA.DanoParameters.Count == 1);

            StormGraph SG = (StormGraph)DEA.DanoParameters[0];

            // if (!SG.Show())

            GraphDisplayHost GDH = new GraphDisplayHost(SG);

            GDH.Owner = this;
            GDH.Show();
        }
Пример #14
0
        // don't throw an exception as ew could crash
        private void Lyr_Disabled(object sender, DanoEventArgs e)
        {
            //MnWindow.StopTimer();
            Debug.Assert(e.DanoParameters.Count == 1);

            string LayerName = (string)e.DanoParameters[0];

            Basin SBasin = MnWindow.CurrentProject.SelectedBasin;

            SBasin.DisableLayerWithName(LayerName);

            //MnWindow.StartTimer();
            return;
        }
Пример #15
0
        private void Lyr_Renamed(object sender, DanoEventArgs e)
        {
            Debug.Assert(e.DanoParameters.Count == 2);

            string LayerToRename = (string)e.DanoParameters[0];

            // showdialog to prevent closing of mainwindow while still open
            RenameLayerHost RLH = new RenameLayerHost(LayerToRename);

            RLH.Owner = Application.Current.MainWindow;
            RLH.ShowDialog();

            Layers.RenameLayer(LayerToRename, GetNewName((int)e.DanoParameters[1]));
        }
Пример #16
0
        private void Lyr_Reordered(object sender, DanoEventArgs e)
        {
#if PRISCILLA
#else // Dano: Use the Glue API
#endif
            //MnWindow.StopTimer();
            Debug.Assert(e.DanoParameters.Count == 2);

            string LayerName = (string)e.DanoParameters[0];
            int    Amount    = (int)e.DanoParameters[1];

            Basin SBasin = MnWindow.CurrentProject.SelectedBasin;

            Layer Lyr = SBasin.GetLayerWithName(LayerName);

            Lyr.ZIndex += Amount;

            // Prevent a "collection changed, can't enumerate" invalidoperationexception
            //MnWindow.StartTimer();
        }
        // Event Handler for    Dano UI BasinSwitcher UserControl Closed event

        public void UC_Closed(object sender, DanoEventArgs e)
        {
            string  NewBasinName = (string)e.DanoParameters[0];
            Project Proj         = MnWindow.CurrentProject;

            // v650b: i just copied this to amke this work so lol
            // Create the basins

            // clean the UI (VERY TEMP; only use for beta - v605)
            MnWindow.Layers.ClearLayers();

            Basin NewBasin = Proj.GetBasinWithName(NewBasinName);

            Proj.AddBasin(NewBasinName, true);

            // set the UI-side image path.
            MnWindow.ImagePath = NewBasin.ImagePath;

            MnWindow.CurrentProject = Proj;

            UpdateLayout();
            Close();
        }
        private void CloseHit(object sender, DanoEventArgs e)
        {
            try
            {
                Debug.Assert(e.DanoParameters.Count == 2);

                bool   HasChanged      = Convert.ToBoolean(e.DanoParameters[0]);
                string NewCategoryName = e.DanoParameters[1].ToString();

                // Temp (move to basin submethod)
                MainWindow MnWindow = (MainWindow)Application.Current.MainWindow;
                GlobalState.CategoryManager.SetCategoryWithName(NewCategoryName);
                Close();
            }
            catch (FormatException err)
            {
#if DEBUG
                Error.Throw($"An internal error occurred while converting DanoEventArg parameters (DanoCategoryManagerHost.xaml.cs)\n\n{err}", "IE100", ErrorSeverity.FatalError, 100);
#else
                Error.Throw("An internal error occurred while converting DanoEventArg parameters.", "IE100", ErrorSeverity.FatalError, 100);
#endif
            }
        }
        /// <summary>
        /// Frontend code for adding a storm...
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="DEA"></param>
        private void OKHit(object sender, DanoEventArgs DEA)
        {
            Debug.Assert(DEA.DanoParameters.Count == 2);
#if DANO
            Project Proj = GlobalState.GetCurrentProject();
            Basin   Bas  = Proj.SelectedBasin;
#else
            MainWindow MnWindow = (MainWindow)Application.Current.MainWindow;

            string   StormName      = (string)DEA.DanoParameters[0];
            DateTime StormStartTime = (DateTime)DEA.DanoParameters[1];

            Basin        Bas      = MnWindow.CurrentProject.SelectedBasin;
            List <Storm> FlatList = Bas.GetFlatListOfStorms();

            if (FlatList.Count == 0)
            {
                Bas.SeasonStartTime = StormStartTime;
            }
#endif
            Bas.AddStorm(StormName, StormStartTime);
            Close();
        }
Пример #20
0
 public void OK_Click(object sender, DanoEventArgs e)
 {
     Close();
 }
Пример #21
0
 public void Done_Hit(object sender, DanoEventArgs DEA)
 {
     Proj.SelectedBasin.RenameStormWithName(StoName, EditUI.EditStorm_EditNameBox.Text);
     Close();
 }