Esempio n. 1
0
        public virtual void Compose(IGraphScene <TItem, TEdge> scene, IGraphItemRenderer <TItem, TEdge> itemRenderer)
        {
            this.Scene = scene;

            Func <IGraphScene <TItem, TEdge> > fScene = () => this.Scene;

            if (StyleSheet == null)
            {
                StyleSheet           = new StyleSheets().Compose().DefaultStyleSheet;
                StyleSheet.BackColor = Colors.WhiteSmoke;
                // maybe created with wrong toolkit! Registry.Pooled<StyleSheets>().DefaultStyleSheet;
            }

            if (Layout == null)
            {
                Layout           = Registry.Factory.Create <IGraphSceneLayout <TItem, TEdge> >(fScene, StyleSheet);
                Layout.Dimension = Limaki.Drawing.Dimension.X;
            }

            if (Painter == null)
            {
                Painter = new GraphSceneContextPainter <TItem, TEdge>(Scene, Layout, itemRenderer);
            }

            if (Modeller == null)
            {
                var modelReceiver = new GraphItemModeller <TItem, TEdge>();
                Modeller            = new GraphSceneModeller <TItem, TEdge>();
                Modeller.GraphScene = fScene;
                Modeller.Layout     = () => Layout;
                Modeller.Camera     = () => Painter.Viewport.Camera;
                Modeller.Clipper    = () => Painter.Clipper;
                Modeller.Modeller   = () => modelReceiver;
            }

            if (Folder == null)
            {
                Folder = new GraphSceneFacade <TItem, TEdge>(fScene, Layout);
            }
        }
Esempio n. 2
0
 public GraphSceneContextPainter(IGraphScene <TItem, TEdge> scene, IGraphSceneLayout <TItem, TEdge> layout, IGraphItemRenderer <TItem, TEdge> itemRenderer)
     : this(scene, layout)
 {
     this.GraphItemRenderer = itemRenderer;
     Compose();
 }