예제 #1
0
        /// <summary>
        /// Udalost pri oznaceni objektu ve stromu
        /// </summary>
        /// <param name="sender">odesilatel</param>
        /// <param name="e">parametry</param>
        public void SetStarSystemTreeFocus(object sender, RoutedEventArgs e)
        {
            Editor.Log("got focus");
            TreeViewItem treeView = (TreeViewItem)e.Source;
            View         view     = (View)treeView.Tag;

            this.SelectedObject = view;
            if (view is PlanetView)
            {
                PlanetView planetView = (PlanetView)view;
                this.SelectedObject = planetView;
                TextBlock loadedObjectData = Editor.dataPresenter.GetLoadedObjectData();
                loadedObjectData.Text  = "Planet";
                loadedObjectData.Text += "\n" + "Name: " + planetView.Planet.Name;
                loadedObjectData.Text += "\n" + "StarSystem: " + planetView.Planet.StarSystem.Name;
                loadedObjectData.Text += "\n" + "TrajectoryType: " + planetView.Planet.Trajectory.GetType().Name.ToString();
                //planetView.Planet
            }
            if (treeView.Items.Count == 0)
            {
                //redraw
                Editor.dataPresenter.StarSystemDrawer();
                UIElementCollection list = DrawingArea.Canvas.Children;
                foreach (UIElement element in list)
                {
                    if (element is GroupBox)
                    {
                        continue;
                    }
                    //Editor.Log((element as Ellipse).Name.ToString());
                    //if(((Ellipse)element).Tag == null)continue;
                    //Editor.Log((element as Ellipse).Name.ToString() + " vs " + this.SelectedObject.GetName());
                    if (((Ellipse)element).Name.Equals(this.SelectedObject.GetName()))
                    {
                        Ellipse ellipse = element as Ellipse;
                        if (ellipse == null)
                        {
                            continue;
                        }
                        ellipse.Stroke          = Brushes.Red;
                        ellipse.StrokeThickness = 2;
                        //Editor.Log("found");
                        break;
                    }
                }
            }
        }
예제 #2
0
        /// <summary>
        /// Metoda starajici se o vykresleni soustavy
        /// </summary>
        public void StarSystemDrawer()
        {
            TreeView tree = this.GetStarSystemObjectTree();

            if (SelectedStarSystem == null)
            {
                return;
            }
            //Editor.Log("aftercheck");
            StarSystem starSystem = SelectedStarSystem;

            //Editor.Log("system" + starSystem.Name);
            Editor.StarSystemEditor.LoadObject(starSystem);
            //if (this.GetDrawingArea().Canvas == null) return;
            DrawingArea.Canvas.Children.Clear();
            StarView starView = new StarView(starSystem.Star);
            //Editor.Log("system" + starSystem.Name);
            Ellipse star = starView.GetShape();

            double sunRadius = DEFAULT_SUN_RADIUS * ObjectSizeRatio;

            Canvas.SetLeft(star, (DrawingAreaSize - sunRadius));
            Canvas.SetTop(star, (DrawingAreaSize - sunRadius));
            DrawingArea.Canvas.Children.Add(star);

            DrawingArea.ShowStarSystemInfo();
            this.GetLoadedObjectData();
            //new system preparation
            //drawingArea.AddShapeView(new StarView(starSystem.Star));


            //((TreeViewItem)tree.Items[0]).Items.Clear();
            foreach (Planet planet in starSystem.Planets)
            {
                PlanetView planetView = new PlanetView(planet);

                Ellipse trajectoryShape = planetView.GetTrajectoryShape();
                Canvas.SetLeft(trajectoryShape, planetView.TrajectoryView.Position.X);
                Canvas.SetTop(trajectoryShape, planetView.TrajectoryView.Position.Y);
                DrawingArea.Canvas.Children.Add(trajectoryShape);

                Ellipse planetShape = planetView.GetShape();

                //TreeViewItem planetNode = new TreeViewItem();
                //planetNode.Header = planet.AlternativeName;
                //planetNode.Tag = planetView;

                //((TreeViewItem)tree.Items[0]).Items.Add(planetNode);

                Canvas.SetLeft(planetShape, planetView.Position.X);
                Canvas.SetTop(planetShape, planetView.Position.Y);
                DrawingArea.Canvas.Children.Add(planetShape);
            }
            foreach (WormholeEndpoint wormhole in starSystem.WormholeEndpoints)
            {
                EndpointView endpointView = new EndpointView(wormhole);

                Ellipse trajectoryShape = endpointView.GetTrajectoryShape();
                Canvas.SetLeft(trajectoryShape, endpointView.TrajectoryView.Position.X);
                Canvas.SetTop(trajectoryShape, endpointView.TrajectoryView.Position.Y);
                DrawingArea.Canvas.Children.Add(trajectoryShape);

                Ellipse endpointShape = endpointView.GetShape();
                Canvas.SetLeft(endpointShape, endpointView.Position.X);
                Canvas.SetTop(endpointShape, endpointView.Position.Y);
                DrawingArea.Canvas.Children.Add(endpointShape);
                //TrajectoryView trajectoryView = new TrajectoryView(wormhole.Trajectory);
                //Ellipse ellipse = trajectoryView.GetShape();
                //ellipse.Stroke = Brushes.Teal;
                ////placement logic
                //Canvas.SetLeft(ellipse, trajectoryView.Position.X);
                //Canvas.SetTop(ellipse, trajectoryView.Position.Y);

                //canvas.Children.Add(ellipse);
            }
        }