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); } }
public GraphSceneContextPainter(IGraphScene <TItem, TEdge> scene, IGraphSceneLayout <TItem, TEdge> layout, IGraphItemRenderer <TItem, TEdge> itemRenderer) : this(scene, layout) { this.GraphItemRenderer = itemRenderer; Compose(); }