/// <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; } } } }
/// <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); } }