Example #1
0
        private void Sunburst_TranslateCustomViews(object sender, EventArgs e)
        {
            if (_view != null)
            {
                C1Sunburst sun = (C1Sunburst)sender;
                if (_scale != sun.Scale)
                {
                    if (_item is Periodic.Group)
                    {
                        ((Periodic.Group)_item).SetFontSize(fontSizeRate * (float)sunburst.Scale);
                    }
                    if (_item is Periodic.SubGroup)
                    {
                        ((Periodic.SubGroup)_item).SetFontSize(fontSizeRate * (float)sunburst.Scale);
                    }
                    if (_item is Periodic.Element)
                    {
                        ((Periodic.Element)_item).SetFontSize(fontSizeRate * (float)sunburst.Scale);
                    }
                    _scale = sun.Scale;
                }

                _view.Layout(new Rectangle(_x - _width * sun.Scale / 2, _y - _height * sun.Scale / 2, _width * sun.Scale, _height * sun.Scale));
                _view.TranslationX = sun.TranslationX;
                _view.TranslationY = sun.TranslationY;
            }
        }
Example #2
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            C1Sunburst sunburst = new C1Sunburst(this);

            sunburst.ItemsSource        = new SunburstViewModel().FlatData;
            sunburst.Binding            = "Value";
            sunburst.BindingName        = "Year,Quarter,Month";
            sunburst.ToolTipContent     = "{}{name}\n{y}";
            sunburst.DataLabel.Position = PieLabelPosition.Center;
            sunburst.DataLabel.Content  = "{}{name}";

            LinearLayout layout = new LinearLayout(this);

            LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MatchParent, LinearLayout.LayoutParams.MatchParent);
            layout.AddView(sunburst, param);

            SetContentView(layout);
            var toolbar = FindViewById <Toolbar>(Resource.Id.toolbar);

            SetSupportActionBar(toolbar);
            SupportActionBar.Title = GetString(Resource.String.sunburstGettingStarted);
            SupportActionBar.SetDisplayHomeAsUpEnabled(true);
            SupportActionBar.SetHomeButtonEnabled(true);
        }
Example #3
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();
            // Perform any additional setup after loading the view, typically from a nib.

            sunburst = new C1Sunburst();

            sunburst.Binding            = "Value";
            sunburst.BindingName        = "Year,Quarter,Month";
            sunburst.ToolTipContent     = "{}{name}\n{y}";
            sunburst.DataLabel.Position = PieLabelPosition.Center;
            sunburst.DataLabel.Content  = "{}{name}";
            this.Add(sunburst);

            cv = new SunburstViewModel().View;
            cv.GroupChanged += View_GroupChanged;
            cv.SortChanged  += Cv_SortChanged;

            //Sort cannot work synchronize with group in current CollectionView
            SortDescription yearSortDescription    = new SortDescription("Year", SortDirection.Ascending);
            SortDescription quarterSortDescription = new SortDescription("Quarter", SortDirection.Ascending);
            SortDescription monthSortDescription   = new SortDescription("MonthValue", SortDirection.Ascending);

            SortDescription[] sortDescriptions = new SortDescription[] { yearSortDescription, quarterSortDescription, monthSortDescription };
            cv.SortAsync(sortDescriptions);
        }
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.activity_periodictable);

            var toolbar = FindViewById <Toolbar>(Resource.Id.toolbar);

            SetSupportActionBar(toolbar);
            SupportActionBar.Title = GetString(Resource.String.periodictable);
            SupportActionBar.SetDisplayHomeAsUpEnabled(true);
            SupportActionBar.SetHomeButtonEnabled(true);

            // initializing widgets
            sunburst                          = (C1Sunburst)FindViewById(Resource.Id.sunburst);
            sunburst.ShowTooltip              = false;
            sunburst.LegendPosition           = ChartPositionType.None;
            sunburst.InnerRadius              = 0.3;
            sunburst.SelectionMode            = ChartSelectionModeType.Point;
            sunburst.Binding                  = "Value";
            sunburst.BindingName              = "GroupName,SubGroupName,Symbol";
            sunburst.ChildItemsPath           = "SubGroups,Elements";
            sunburst.ItemsSource              = Data.Groups;
            sunburst.DataLabel.Position       = PieLabelPosition.Center;
            sunburst.DataLabel.Content        = "{}{name}";
            sunburst.DataLabel.Style.FontSize = 6;
            sunburst.Tapped                  += Sunburst_Tapped;

            TranslateBehavior t = new TranslateBehavior();

            sunburst.Behaviors.Add(t);
            ZoomBehavior z = new ZoomBehavior();

            sunburst.Behaviors.Add(z);
            Resources      resources = BaseContext.Resources;
            DisplayMetrics metrics   = resources.DisplayMetrics;

            sunburst.TranslateCustomViews += (object sender, EventArgs e) =>
            {
                if (_view != null)
                {
                    _view.Visibility = ViewStates.Invisible;
                    _view.SetX((int)(_x + sunburst.TranslationX));
                    _view.SetY((int)(_y + sunburst.TranslationY));

                    if (sunburst.Scale != 1)
                    {
                        if (_view.Parent != null)
                        {
                            _view.ScaleX = (float)sunburst.Scale;
                            _view.ScaleY = (float)sunburst.Scale;
                        }
                    }
                    _view.Visibility = ViewStates.Visible;
                }
            };
        }
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();
            // Perform any additional setup after loading the view, typically from a nib.

            sunburst                    = new C1Sunburst();
            sunburst.Binding            = "Value";
            sunburst.BindingName        = "Year,Quarter,Month";
            sunburst.ToolTipContent     = "{}{name}\n{y}";
            sunburst.DataLabel.Position = PieLabelPosition.Center;
            sunburst.DataLabel.Content  = "{}{name}";
            sunburst.ItemsSource        = new SunburstViewModel().FlatData;
            this.Add(sunburst);
        }
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.activity_selection);

            var toolbar = FindViewById <Toolbar>(Resource.Id.toolbar);

            SetSupportActionBar(toolbar);
            SupportActionBar.Title = GetString(Resource.String.selection);
            SupportActionBar.SetDisplayHomeAsUpEnabled(true);
            SupportActionBar.SetHomeButtonEnabled(true);


            // initializing widgets
            sunburst          = (C1Sunburst)FindViewById(Resource.Id.sunburst);
            mOffset           = (TextView)FindViewById(Resource.Id.offset);
            mButtonMinus      = (Button)FindViewById(Resource.Id.buttonMinus);
            mButtonPlus       = (Button)FindViewById(Resource.Id.buttonPlus);
            mSelectionSpinner = (Spinner)FindViewById(Resource.Id.selectionSpinner);

            // creating a list of objects
            sunburst.Binding            = "Value";
            sunburst.BindingName        = "Year,Quarter,Month";
            sunburst.DataLabel.Position = PieLabelPosition.Center;
            sunburst.DataLabel.Content  = "{}{name}";
            sunburst.ItemsSource        = new SunburstViewModel().FlatData;

            sunburst.SelectionMode      = ChartSelectionModeType.Point;
            sunburst.ShowTooltip        = false;
            mOffset.Text                = mOffsetValue.ToString();
            sunburst.SelectedItemOffset = mOffsetValue;
            sunburst.SelectionMode      = ChartSelectionModeType.Point;

            // initializing adapter to string array
            ArrayAdapter adapter = ArrayAdapter.CreateFromResource(this, Resource.Array.selection_spinner_values, Android.Resource.Layout.SimpleSpinnerItem);

            // Specify the layout to use when the list of choices appears
            adapter.SetDropDownViewResource(Android.Resource.Layout.SimpleSpinnerDropDownItem);
            // Apply the adapter to the spinner
            mSelectionSpinner.Adapter       = adapter;
            mSelectionSpinner.ItemSelected += mSelectionSpinner_ItemSelected;

            mSelectionSpinner.SetSelection(1);

            Button button = (Button)FindViewById(Resource.Id.buttonMinus);

            button.Click += button_Click;
            button        = (Button)FindViewById(Resource.Id.buttonPlus);
            button.Click += button_Click;
        }
Example #7
0
        private void Sunburst_Tapped(object sender, C1.Xamarin.Forms.Core.C1TappedEventArgs e)
        {
            Point            p           = e.GetPosition(sunburst);
            ChartHitTestInfo hitTestInfo = this.sunburst.HitTest(p);

            if (hitTestInfo == null || hitTestInfo.Item == null)
            {
                return;
            }
            _item = ((IChartModel)hitTestInfo.Item);

            if (_view != null && _view.Parent != null)
            {
                sunburst.Children.Remove(_view);
            }

            if (hitTestInfo.Item is IChartModel)
            {
                _view = ((IChartModel)hitTestInfo.Item).GetUserView(fontSizeRate);
                _view.BackgroundColor = Color.Transparent;
                this.sunburst.Children.Add(_view);
                this.sunburst.RaiseChild(_view);

                _view.Layout(new Rectangle(_x - _width * sunburst.Scale / 2, _y - _height * sunburst.Scale / 2, _width * sunburst.Scale, _height * sunburst.Scale));

                if (_item is Periodic.Group && Periodic.Group.layout != null)
                {
                    ((Periodic.Group)_item).SetFontSize(fontSizeRate * (float)sunburst.Scale);
                }
                if (_item is Periodic.SubGroup && Periodic.SubGroup.layout != null)
                {
                    ((Periodic.SubGroup)_item).SetFontSize(fontSizeRate * (float)sunburst.Scale);
                }
                if (_item is Periodic.Element && Periodic.Element.layout != null)
                {
                    ((Periodic.Element)_item).SetFontSize(fontSizeRate * (float)sunburst.Scale);
                }
                if (_view != null)
                {
                    C1Sunburst sun = (C1Sunburst)sender;
                    _view.TranslationX = sun.TranslationX;
                    _view.TranslationY = sun.TranslationY;
                }
            }
        }
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.activity_basic_features);

            var toolbar = FindViewById <Toolbar>(Resource.Id.toolbar);

            SetSupportActionBar(toolbar);
            SupportActionBar.Title = GetString(Resource.String.basic_features);
            SupportActionBar.SetDisplayHomeAsUpEnabled(true);
            SupportActionBar.SetHomeButtonEnabled(true);

            // initializing widgets
            sunburst           = (C1Sunburst)FindViewById(Resource.Id.sunburst);
            mRadius            = (TextView)FindViewById(Resource.Id.radius);
            mReversedSwitch    = (Switch)FindViewById(Resource.Id.reversedSwitch);
            mOffsetSeekbar     = (SeekBar)FindViewById(Resource.Id.offsetSeekBar);
            mStartAngleSeekbar = (SeekBar)FindViewById(Resource.Id.startAngleSeekBar);
            mButtonMinus       = (Button)FindViewById(Resource.Id.buttonMinus);
            mButtonPlus        = (Button)FindViewById(Resource.Id.buttonPlus);

            sunburst.Binding            = "Value";
            sunburst.BindingName        = "Year,Quarter,Month";
            sunburst.ChildItemsPath     = "Items";
            sunburst.ToolTipContent     = "{}{name}\n{y}";
            sunburst.DataLabel.Position = PieLabelPosition.Center;
            sunburst.DataLabel.Content  = "{}{name}";
            sunburst.ItemsSource        = new SunburstViewModel().HierarchicalData;

            // setting default values
            mRadius.Text         = mInnerRadius.ToString();
            sunburst.InnerRadius = mInnerRadius;

            mReversedSwitch.CheckedChange += mReversedSwitch_CheckedChange;

            mOffsetSeekbar.ProgressChanged     += mOffsetSeekbar_ProgressChanged;
            mStartAngleSeekbar.ProgressChanged += mStartAngleSeekbar_ProgressChanged;

            Button button = (Button)FindViewById(Resource.Id.buttonMinus);

            button.Click += button_Click;
            button        = (Button)FindViewById(Resource.Id.buttonPlus);
            button.Click += button_Click;
        }
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();
            // Perform any additional setup after loading the view, typically from a nib.
            sunburst                          = new C1Sunburst();
            sunburst.ShowTooltip              = false;
            sunburst.LegendPosition           = ChartPositionType.None;
            sunburst.InnerRadius              = 0.4;
            sunburst.SelectionMode            = ChartSelectionModeType.Point;
            sunburst.Binding                  = "Value";
            sunburst.BindingName              = "GroupName,SubGroupName,Symbol";
            sunburst.ChildItemsPath           = "SubGroups,Elements";
            sunburst.ItemsSource              = Data.Groups;
            sunburst.DataLabel.Position       = PieLabelPosition.Center;
            sunburst.DataLabel.Content        = "{}{name}";
            sunburst.DataLabel.Style.FontSize = 6;

            sunburst.Tapped += Sunburst_Tapped;
            this.View.Add(sunburst);
            this.View.Add(popup);
            this.View.BringSubviewToFront(popup);

            ZoomBehavior z = new ZoomBehavior();

            sunburst.Behaviors.Add(z);

            TranslateBehavior t = new TranslateBehavior();

            sunburst.Behaviors.Add(t);

            sunburst.TranslateCustomViews += (object sender, EventArgs e) =>
            {
                if (popup != null)
                {
                    CGAffineTransform scale     = CGAffineTransform.MakeScale((nfloat)sunburst.Scale, (nfloat)sunburst.Scale);
                    CGAffineTransform transform = CGAffineTransform.MakeTranslation((nfloat)sunburst.TranslationX, (nfloat)sunburst.TranslationY);
                    popup.Transform = CGAffineTransform.Multiply(scale, transform);
                }
            };
            sunburst.ClipsToBounds = true;
        }
Example #10
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.activity_getting_started);
            var toolbar = FindViewById <Toolbar>(Resource.Id.toolbar);

            SetSupportActionBar(toolbar);
            SupportActionBar.Title = GetString(Resource.String.group_collection);
            SupportActionBar.SetDisplayHomeAsUpEnabled(true);
            SupportActionBar.SetHomeButtonEnabled(true);

            sunburst = (C1Sunburst)FindViewById(Resource.Id.sunburst);

            sunburst.Binding            = "Value";
            sunburst.BindingName        = "Year,Quarter,Month";
            sunburst.ToolTipContent     = "{}{name}\n{y}";
            sunburst.DataLabel.Position = PieLabelPosition.Center;
            sunburst.DataLabel.Content  = "{}{name}";

            //LinearLayout layout = new LinearLayout(this);
            //LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MatchParent, LinearLayout.LayoutParams.MatchParent);
            //layout.AddView(sunburst, param);


            cv = new SunburstViewModel().View;
            cv.GroupChanged += View_GroupChanged;
            cv.SortChanged  += Cv_SortChanged;

            //Sort cannot work synchronize with group in current CollectionView
            SortDescription yearSortDescription    = new SortDescription("Year", SortDirection.Ascending);
            SortDescription quarterSortDescription = new SortDescription("Quarter", SortDirection.Ascending);
            SortDescription monthSortDescription   = new SortDescription("MonthValue", SortDirection.Ascending);

            SortDescription[] sortDescriptions = new SortDescription[] { yearSortDescription, quarterSortDescription, monthSortDescription };
            cv.SortAsync(sortDescriptions);
            //SetContentView(layout);
        }
Example #11
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.activity_legend_and_titles);

            var toolbar = FindViewById <Toolbar>(Resource.Id.toolbar);

            SetSupportActionBar(toolbar);
            SupportActionBar.Title = GetString(Resource.String.legend_and_titles);
            SupportActionBar.SetDisplayHomeAsUpEnabled(true);
            SupportActionBar.SetHomeButtonEnabled(true);

            // initializing widgets
            sunburst       = (C1Sunburst)FindViewById(Resource.Id.sunburst);
            mHeaderValue   = (EditText)FindViewById(Resource.Id.headerValue);
            mFooterValue   = (EditText)FindViewById(Resource.Id.footerValue);
            mLegendSpinner = (Spinner)FindViewById(Resource.Id.legendSpinner);

            // creating a list of objects
            sunburst.ItemsSource = new SunburstViewModel().HierarchicalData;

            sunburst.LegendPosition = ChartPositionType.None;
            sunburst.ToolTipContent = "{}{name}\n{y}";
            sunburst.Header         = mHeaderValue.Text;
            sunburst.Footer         = mFooterValue.Text;

            // initializing adapter to string array
            ArrayAdapter adapter = ArrayAdapter.CreateFromResource(this, Resource.Array.legend_spinner_values, Android.Resource.Layout.SimpleSpinnerItem);

            // Specify the layout to use when the list of choices appears
            adapter.SetDropDownViewResource(Android.Resource.Layout.SimpleSpinnerDropDownItem);
            // Apply the adapter to the spinner
            mLegendSpinner.Adapter       = adapter;
            mLegendSpinner.ItemSelected += mLegendSpinner_ItemSelected;
            mHeaderValue.TextChanged    += mHeaderValue_TextChanged;
            mFooterValue.TextChanged    += mFooterValue_TextChanged;
        }