コード例 #1
0
ファイル: Sitemap.aspx.cs プロジェクト: saggett/ReligionsTree
 private void WriteSitemapXmlForLineage(XmlTextWriter writer, ReadOnlyLineage lineage)
 {
     var linAddress = new Uri(Request.Url,
                              "Default.aspx?lineageId=" +
                              HttpUtility.UrlEncode(lineage.Id.ToString()));
     WriteSitemapXmlForPage(writer, linAddress, "1.0");
 }
コード例 #2
0
 public LineageCoords(int xStart, int yStart, int xEnd, int yEnd, ReadOnlyLineage lin, double thicknessScaleFactor, double fontScaleFactor)
 {
     AbsoluteXStart = xStart;
     AbsoluteYStart = yStart;
     AbsoluteXEnd = xEnd;
     AbsoluteYEnd = yEnd;
     Lineage = lin;
     ThicknessScaleFactor = thicknessScaleFactor;
     FontScaleFactor = fontScaleFactor;
 }
コード例 #3
0
ファイル: Tree.xaml.cs プロジェクト: saggett/ReligionsTree
        //private void InitAxisMinAndMax(ReadOnlyLineage root)
        //{
        //    TreeAxis.Minimum = root.StartYear;
        //    TreeAxis.Maximum = CalcTreeMaxYear();
        //}
        private void InitAxisMinAndMax(ReadOnlyLineage root)
        {
            int startYear = root.StartYear;
            int endYear = CalcTreeMaxYear();

            if (CanvasScaleTransform.ScaleY == 1)
            {
                TreeAxis.Maximum = endYear;
                TreeAxis.Minimum = startYear;
                return;
            }

            Rect rect = TreeCanvas.GetBounds();
            Rect transBounds = CanvasScaleTransform.TransformBounds(rect);

            TreeAxis.Minimum = -2500;

            TreeAxis.Maximum = endYear - ((endYear - startYear) * (Math.Abs(transBounds.Top) / transBounds.Height));
            TreeAxis.Minimum = endYear - ((endYear - startYear) * ((rect.Height + Math.Abs(transBounds.Top)) / transBounds.Height));

            //double zoomedHeight = TreeCanvas.ActualHeight / scaleY;
            ////if center takes the zoom area outside of the canvas bounds, adjust the center so that it doesn't
            //if (centerY + (zoomedHeight / 2d) > TreeCanvas.ActualHeight)
            //    centerY = TreeCanvas.ActualHeight - (zoomedHeight / 2d);
            //else if (centerY - (zoomedHeight / 2d) < 0)
            //    centerY = zoomedHeight / 2d;
            ////SA 17.07.10 BUG: Doesn't calculate correct min / max year when zoom is in middle of canvas
            //TreeAxis.Minimum = ConvertYCoordToYear(centerY + (zoomedHeight / 2d), startYear, endYear);
            //TreeAxis.Maximum = ConvertYCoordToYear(centerY - (zoomedHeight / 2d), startYear, endYear);
        }
コード例 #4
0
ファイル: Tree.xaml.cs プロジェクト: saggett/ReligionsTree
        private void DrawTree(IEnumerable<LineageCoords> treePlot, ReadOnlyLineage root, int? selectedLineageId)
        {
            foreach (LineageCoords plot in treePlot)
            {
                var linCtrl = new LineageControl(plot);
                if (selectedLineageId.HasValue && plot.LineageId == selectedLineageId.Value)
                    linCtrl.IsSelected = true;
                linCtrl.RenderTransform = LineageTransformGroup;
                Canvas.SetTop(linCtrl, plot.AbsoluteOriginY);
                Canvas.SetLeft(linCtrl, plot.AbsoluteOriginX);

                _lineageIdLookup.Add(linCtrl, plot.LineageId);
                linCtrl.Selected += LinCtrl_Selected;
                linCtrl.NavigateRequest += linCtrl_NavigateRequest;

                TreeCanvas.Children.Add(linCtrl);
                if (plot.LineageId == root.Id && root.ParentLineageId.HasValue)
                {
                    AddGoToParentButton(plot);
                    AddResetButton(plot);
                }
                //TODO: Try to give canvas focus on tree load so that it'll respond to mouse wheel events
                //if (plot.LineageId == root.Id && selectedLineageId == null)
                //{
                //    Dispatcher.BeginInvoke(() => { linCtrl.Focus(); });
                //}
            }
        }
コード例 #5
0
ファイル: Tree.xaml.cs プロジェクト: saggett/ReligionsTree
 private int CalcTreeMaxYear(ReadOnlyLineage lin)
 {
     double result = ((lin.EffectiveMaxYearOfBranch - lin.StartYear) * MaxEndYearMultipler) + lin.StartYear;
     return (int)result;
 }