Exemplo n.º 1
0
        internal DiagramItem(Diagram diagram)
        {
            _diagram = diagram;
            _label = null;
            _drawer = null;
            _geometry = null;
            _border = null;

            NeedRecalc = true;

            IsSelectable = true;
        }
Exemplo n.º 2
0
        protected void CalculateGeometry(IDiagramItemDrawer drawer)
        {
            if (drawer == null)
                return;

            if (NeedRecalc == false)
                return;

            _geometry = drawer.CalculateGeometry(this);
            _border = drawer.CalculateBorder(this);

            NeedRecalc = false;
        }
Exemplo n.º 3
0
        public Diagram()
        {
            _nodes = new DiagramNodes(this);
            _edges = new DiagramEdges(this);
            _selection = new DiagramSelection(this);

            _itemsInDrawingOrder = new DiagramItemCollection<DiagramItem>(this);

            _nodes.CollectionChanged += NodeCollectionChanged;
            _edges.CollectionChanged += EdgeCollectionChanged;
            _selection.CollectionChanged += SelectionChanged;

            Background = new SolidColorBrush(Colors.Transparent);

            _defaultNodeDrawer = new RectangleNodeDrawer();
            _defaultEdgeDrawer = new LineEdgeDrawer();
            //DefaultLabelDrawer = new BaseLabelDrawer();

            _placedItems = new ObservableCollection<IDiagramPlacedItem>();
            _placedItems.CollectionChanged += new NotifyCollectionChangedEventHandler(CustomChilren_CollectionChanged);

            _mouseManager = new DiagramMouseManager(this);

            _mouseManager.LabelLButtonDblClick += new LabelEventHandler(OnLabelLButtonDblClick);
            _mouseManager.NodeLButtonDblClick += new NodeEventHandler(OnNodeLButtonDblClick);
            _mouseManager.EdgeLButtonDblClick += new EdgeEventHandler(OnEdgeLButtonDblClick);

            _viewport = null;
            _boundaries = null;

            CalculateBoundaries();

            LockRender = false;
            LockRecalc = false;

            _scrollViewer = null;
        }