Exemplo n.º 1
0
        protected override void Initialize(bool initData)
        {
            base.Initialize(initData);

            if (initData)
            {
                // predefined styles
                string[] names = G3DPlotStyleCollectionTemplates.GetAvailableNames();
                _predefinedStyleSetsAvailable = new SelectableListNodeList();
                for (int i = 0; i < names.Length; ++i)
                {
                    _predefinedStyleSetsAvailable.Add(new SelectableListNode(names[i], i, false));
                }

                // single styles
                _singleStylesAvailable = new SelectableListNodeList();
                Type[] avtypes = ReflectionService.GetNonAbstractSubclassesOf(typeof(IG3DPlotStyle));
                for (int i = 0; i < avtypes.Length; i++)
                {
                    if (avtypes[i] != typeof(G3DPlotStyleCollection))
                    {
                        _singleStylesAvailable.Add(new SelectableListNode(Current.Gui.GetUserFriendlyClassName(avtypes[i]), avtypes[i], false));
                    }
                }

                BuildCurrentStyleListNodeList();
            }

            if (null != _view)
            {
                _view.InitializePredefinedStyles(_predefinedStyleSetsAvailable);
                _view.InitializeAvailableStyleList(_singleStylesAvailable);
                _view.InitializeStyleList(_currentItems);
            }
        }
Exemplo n.º 2
0
        public void EhView_PredefinedStyleSelected()
        {
            var sel = _predefinedStyleSetsAvailable.FirstSelectedNode;

            if (null == sel)
            {
                return;
            }

            var template = G3DPlotStyleCollectionTemplates.GetTemplate((int)sel.Tag, _doc.GetPropertyContext());

            _currentItems.Clear(() => _doc.Clear());
            for (int i = 0; i < template.Count; i++)
            {
                var listNode = new SelectableListNode(Current.Gui.GetUserFriendlyClassName(template[i].GetType()), template[i], false);
                _currentItems.Add <IG3DPlotStyle>(listNode, (docNode) => _doc.Add(docNode));
            }

            OnCollectionChangeCommit();
        }