Exemple #1
0
        private IDictionary <string, object> _transientData; /// lazy

        //private string _transientId;

        // ========================================
        // constructor
        // ========================================
        public Editor()
        {
            /// Editorの親子構造の準備
            _structure = new StructuredSupport <Editor>(this);
            _structure.DetailedPropertyChanging += (sender, e) => {
                if (e.PropertyName == ICompositeProperty.Parent)
                {
                    OnParentChanging(e);
                }
                else if (e.PropertyName == ICompositeProperty.Children)
                {
                    OnChildrenChanging(e);
                }
            };
            _structure.DetailedPropertyChanged += (sender, e) => {
                if (e.PropertyName == ICompositeProperty.Parent)
                {
                    OnParentChanged(e);
                }
                else if (e.PropertyName == ICompositeProperty.Children)
                {
                    OnChildrenChanged(e);
                }
            };

            _visitable = new VisitableSupport <IEditor>(
                this,
                editor => {
                if (_structure.HasChildren)
                {
                    return(editor.Children);
                }
                else
                {
                    return(EmptyEditors);
                }
            }
                );


            _figureMaintainer = new FigureStructureMaintainer(this);

            _roles = new List <IRole>();
            _requestIdToFeedback = new Dictionary <string, IFigure>();

            _editorHandles         = new List <IEditorHandle>();
            _auxHandleToStickyKind = new InsertionOrderedDictionary <IAuxiliaryHandle, HandleStickyKind>();

            _isEnabled = false;

            _canSelect = true;
            _isFocused = false;
            _canFocus  = true;

            _isMouseEntered = false;

            //_transientId = Guid.NewGuid().ToString();
        }
        // ========================================
        // constructor
        // ========================================
        public AbstractFigure()
        {
            _structure = new StructuredSupport <IFigure>(this);
            _structure.DetailedPropertyChanged += (sender, e) => {
                if (e.PropertyName == ICompositeProperty.Parent)
                {
                    OnParentChanged(e);
                }
                else if (e.PropertyName == ICompositeProperty.Children)
                {
                    OnChildrenChanged(e);
                }
            };

            _preferredSize = Size.Empty;

            _isVisible = true;

            _cursorProvider = null;
        }