class ToolTipBuilder implements IToolTipBuilder{ @Override public String getToolTip(TreeMapNode node) { String tooltip = ""; if (node.isLeaf()){ Object userObject = node.getUserObject(); if (userObject instanceof Map){ tooltip+="Label: "+ ((Map) userObject).get("label"); }else{ tooltip+="Label: "+ userObject.toString(); } tooltip+="
"; tooltip+="Weight: "+ node.getWeight(); tooltip+="
"; tooltip+="Value: "+ node.getLabelValue(); } tooltip; } }; toolTipBuilder = new ToolTipBuilder(); node = new TreeMapNode("0"); def node00 = new TreeMapNode("00", 2, new DefaultValue(2)); def node01 = new TreeMapNode("01"); node01.add(new TreeMapNode("011", 1, new DefaultValue(1))) node01.add(new TreeMapNode("012", 2, new DefaultValue(1))) node01.add(new TreeMapNode("013", 3, new DefaultValue(1))) def node02 = new TreeMapNode("02"); node02.add(new TreeMapNode("020", 2, new DefaultValue(2))) node02.add(new TreeMapNode("021", 1, new DefaultValue(1))) node02.add(new TreeMapNode("022", 1, new DefaultValue(1))) node02.add(new TreeMapNode("023", 1, new DefaultValue(1))) node02.add(new TreeMapNode("024", 2, new DefaultValue(2))) def node03 = new TreeMapNode("03"); node03.add(new TreeMapNode("030", 1, new DefaultValue(2))) node03.add(new TreeMapNode("031", 2, new DefaultValue(2))) node03.add(new TreeMapNode("032", 3, new DefaultValue(2))) node03.add(new TreeMapNode("033", 4, new DefaultValue(2))) def node04 = new TreeMapNode("04", 6, new DefaultValue(5)) node.add(node01) node.add(node02) node.add(node03) node.add(node04) big_node = new TreeMapNode("root"); def nodeX = new TreeMapNode("branch1"); def nodeY = new TreeMapNode("branch2"); (1..500).each({ nodeX.add(new TreeMapNode(it + "", it * 2, new DefaultValue(it))) }) def nodeX1 = new TreeMapNode("branch11"); (1..250).each({ nodeX1.add(new TreeMapNode(it + "", it * 2, new DefaultValue(it))) }) nodeX.add(nodeX1) (1..500).each({ nodeY.add(new TreeMapNode(it + "", it * 2, new DefaultValue(it))) }) def nodeY1 = new TreeMapNode("branch21"); (1..250).each({ nodeY1.add(new TreeMapNode(it + "", it * 2, new DefaultValue(it))) }) nodeY.add(nodeY1) big_node.add(nodeX); big_node.add(nodeY); def spjson = '{"name":"flare","children":[{"name":"analytics","children":[{"name":"cluster","children":[{"name":"AgglomerativeCluster","size":3938},{"name":"CommunityStructure","size":3812},{"name":"HierarchicalCluster","size":6714},{"name":"MergeEdge","size":743}]},{"name":"graph","children":[{"name":"BetweennessCentrality","size":3534},{"name":"LinkDistance","size":5731},{"name":"MaxFlowMinCut","size":7840},{"name":"ShortestPaths","size":5914},{"name":"SpanningTree","size":3416}]},{"name":"optimization","children":[{"name":"AspectRatioBanker","size":7074}]}]},{"name":"animate","children":[{"name":"Easing","size":17010},{"name":"FunctionSequence","size":5842},{"name":"interpolate","children":[{"name":"ArrayInterpolator","size":1983},{"name":"ColorInterpolator","size":2047},{"name":"DateInterpolator","size":1375},{"name":"Interpolator","size":8746},{"name":"MatrixInterpolator","size":2202},{"name":"NumberInterpolator","size":1382},{"name":"ObjectInterpolator","size":1629},{"name":"PointInterpolator","size":1675},{"name":"RectangleInterpolator","size":2042}]},{"name":"ISchedulable","size":1041},{"name":"Parallel","size":5176},{"name":"Pause","size":449},{"name":"Scheduler","size":5593},{"name":"Sequence","size":5534},{"name":"Transition","size":9201},{"name":"Transitioner","size":19975},{"name":"TransitionEvent","size":1116},{"name":"Tween","size":6006}]},{"name":"data","children":[{"name":"converters","children":[{"name":"Converters","size":721},{"name":"DelimitedTextConverter","size":4294},{"name":"GraphMLConverter","size":9800},{"name":"IDataConverter","size":1314},{"name":"JSONConverter","size":2220}]},{"name":"DataField","size":1759},{"name":"DataSchema","size":2165},{"name":"DataSet","size":586},{"name":"DataSource","size":3331},{"name":"DataTable","size":772},{"name":"DataUtil","size":3322}]},{"name":"display","children":[{"name":"DirtySprite","size":8833},{"name":"LineSprite","size":1732},{"name":"RectSprite","size":3623},{"name":"TextSprite","size":10066}]},{"name":"flex","children":[{"name":"FlareVis","size":4116}]},{"name":"physics","children":[{"name":"DragForce","size":1082},{"name":"GravityForce","size":1336},{"name":"IForce","size":319},{"name":"NBodyForce","size":10498},{"name":"Particle","size":2822},{"name":"Simulation","size":9983},{"name":"Spring","size":2213},{"name":"SpringForce","size":1681}]},{"name":"query","children":[{"name":"AggregateExpression","size":1616},{"name":"And","size":1027},{"name":"Arithmetic","size":3891},{"name":"Average","size":891},{"name":"BinaryExpression","size":2893},{"name":"Comparison","size":5103},{"name":"CompositeExpression","size":3677},{"name":"Count","size":781},{"name":"DateUtil","size":4141},{"name":"Distinct","size":933},{"name":"Expression","size":5130},{"name":"ExpressionIterator","size":3617},{"name":"Fn","size":3240},{"name":"If","size":2732},{"name":"IsA","size":2039},{"name":"Literal","size":1214},{"name":"Match","size":3748},{"name":"Maximum","size":843},{"name":"methods","children":[{"name":"add","size":593},{"name":"and","size":330},{"name":"average","size":287},{"name":"count","size":277},{"name":"distinct","size":292},{"name":"div","size":595},{"name":"eq","size":594},{"name":"fn","size":460},{"name":"gt","size":603},{"name":"gte","size":625},{"name":"iff","size":748},{"name":"isa","size":461},{"name":"lt","size":597},{"name":"lte","size":619},{"name":"max","size":283},{"name":"min","size":283},{"name":"mod","size":591},{"name":"mul","size":603},{"name":"neq","size":599},{"name":"not","size":386},{"name":"or","size":323},{"name":"orderby","size":307},{"name":"range","size":772},{"name":"select","size":296},{"name":"stddev","size":363},{"name":"sub","size":600},{"name":"sum","size":280},{"name":"update","size":307},{"name":"variance","size":335},{"name":"where","size":299},{"name":"xor","size":354},{"name":"_","size":264}]},{"name":"Minimum","size":843},{"name":"Not","size":1554},{"name":"Or","size":970},{"name":"Query","size":13896},{"name":"Range","size":1594},{"name":"StringUtil","size":4130},{"name":"Sum","size":791},{"name":"Variable","size":1124},{"name":"Variance","size":1876},{"name":"Xor","size":1101}]},{"name":"scale","children":[{"name":"IScaleMap","size":2105},{"name":"LinearScale","size":1316},{"name":"LogScale","size":3151},{"name":"OrdinalScale","size":3770},{"name":"QuantileScale","size":2435},{"name":"QuantitativeScale","size":4839},{"name":"RootScale","size":1756},{"name":"Scale","size":4268},{"name":"ScaleType","size":1821},{"name":"TimeScale","size":5833}]},{"name":"util","children":[{"name":"Arrays","size":8258},{"name":"Colors","size":10001},{"name":"Dates","size":8217},{"name":"Displays","size":12555},{"name":"Filter","size":2324},{"name":"Geometry","size":10993},{"name":"heap","children":[{"name":"FibonacciHeap","size":9354},{"name":"HeapNode","size":1233}]},{"name":"IEvaluable","size":335},{"name":"IPredicate","size":383},{"name":"IValueProxy","size":874},{"name":"math","children":[{"name":"DenseMatrix","size":3165},{"name":"IMatrix","size":2815},{"name":"SparseMatrix","size":3366}]},{"name":"Maths","size":17705},{"name":"Orientation","size":1486},{"name":"palette","children":[{"name":"ColorPalette","size":6367},{"name":"Palette","size":1229},{"name":"ShapePalette","size":2059},{"name":"SizePalette","size":2291}]},{"name":"Property","size":5559},{"name":"Shapes","size":19118},{"name":"Sort","size":6887},{"name":"Stats","size":6557},{"name":"Strings","size":22026}]},{"name":"vis","children":[{"name":"axis","children":[{"name":"Axes","size":1302},{"name":"Axis","size":24593},{"name":"AxisGridLine","size":652},{"name":"AxisLabel","size":636},{"name":"CartesianAxes","size":6703}]},{"name":"controls","children":[{"name":"AnchorControl","size":2138},{"name":"ClickControl","size":3824},{"name":"Control","size":1353},{"name":"ControlList","size":4665},{"name":"DragControl","size":2649},{"name":"ExpandControl","size":2832},{"name":"HoverControl","size":4896},{"name":"IControl","size":763},{"name":"PanZoomControl","size":5222},{"name":"SelectionControl","size":7862},{"name":"TooltipControl","size":8435}]},{"name":"data","children":[{"name":"Data","size":20544},{"name":"DataList","size":19788},{"name":"DataSprite","size":10349},{"name":"EdgeSprite","size":3301},{"name":"NodeSprite","size":19382},{"name":"render","children":[{"name":"ArrowType","size":698},{"name":"EdgeRenderer","size":5569},{"name":"IRenderer","size":353},{"name":"ShapeRenderer","size":2247}]},{"name":"ScaleBinding","size":11275},{"name":"Tree","size":7147},{"name":"TreeBuilder","size":9930}]},{"name":"events","children":[{"name":"DataEvent","size":2313},{"name":"SelectionEvent","size":1880},{"name":"TooltipEvent","size":1701},{"name":"VisualizationEvent","size":1117}]},{"name":"legend","children":[{"name":"Legend","size":20859},{"name":"LegendItem","size":4614},{"name":"LegendRange","size":10530}]},{"name":"operator","children":[{"name":"distortion","children":[{"name":"BifocalDistortion","size":4461},{"name":"Distortion","size":6314},{"name":"FisheyeDistortion","size":3444}]},{"name":"encoder","children":[{"name":"ColorEncoder","size":3179},{"name":"Encoder","size":4060},{"name":"PropertyEncoder","size":4138},{"name":"ShapeEncoder","size":1690},{"name":"SizeEncoder","size":1830}]},{"name":"filter","children":[{"name":"FisheyeTreeFilter","size":5219},{"name":"GraphDistanceFilter","size":3165},{"name":"VisibilityFilter","size":3509}]},{"name":"IOperator","size":1286},{"name":"label","children":[{"name":"Labeler","size":9956},{"name":"RadialLabeler","size":3899},{"name":"StackedAreaLabeler","size":3202}]},{"name":"layout","children":[{"name":"AxisLayout","size":6725},{"name":"BundledEdgeRouter","size":3727},{"name":"CircleLayout","size":9317},{"name":"CirclePackingLayout","size":12003},{"name":"DendrogramLayout","size":4853},{"name":"ForceDirectedLayout","size":8411},{"name":"IcicleTreeLayout","size":4864},{"name":"IndentedTreeLayout","size":3174},{"name":"Layout","size":7881},{"name":"NodeLinkTreeLayout","size":12870},{"name":"PieLayout","size":2728},{"name":"RadialTreeLayout","size":12348},{"name":"RandomLayout","size":870},{"name":"StackedAreaLayout","size":9121},{"name":"TreeMapLayout","size":9191}]},{"name":"Operator","size":2490},{"name":"OperatorList","size":5248},{"name":"OperatorSequence","size":4190},{"name":"OperatorSwitch","size":2581},{"name":"SortOperator","size":2023}]},{"name":"Visualization","size":16540}]}]}' def slurper = new groovy.json.JsonSlurper() void process(groovy.json.internal.LazyMap node, TreeMapNode parent) { //println node.name; TreeMapNode treeNode = new TreeMapNode(node.name); if (node.size == null) treeNode = new TreeMapNode(node.name) else treeNode = new TreeMapNode(node.name, node.size as double, new DefaultValue(node.size as double)) parent.add(treeNode) node.children.each { process(it, treeNode) } } real_node = new TreeMapNode("root"); def sp = slurper.parseText(spjson) process(sp, real_node) def x = new TreeMap( root: node, showLegend: true, title: "Simple TreeChart" ); x def x = new TreeMap( root: node, mode: Mode.SQUARIFY, title: "Mode.SQUARIFY" ); x def x = new TreeMap( root: node, mode: Mode.SLICE, title: "Mode.SLICE" ); x def x = new TreeMap( root: node, mode: Mode.DICE, title: "Mode.DICE" ); x def x = new TreeMap( root: node, mode: Mode.SLICE_DIC, title: "Mode.SLICE_DIC" ); x def x = new TreeMap( root: node, ratio: 0.5, title: "Property 'ratio' is 0.5" ); x def x = new TreeMap( root: node, toolTipBuilder: toolTipBuilder, colorProvider: new RandomColorProvider(), valueAccessor: ValueAccessor.VALUE, title: "ValueAccessor.VALUE" ); x def x = new TreeMap( root: node, toolTipBuilder: toolTipBuilder, colorProvider: new RandomColorProvider(), valueAccessor: ValueAccessor.WEIGHT, title: "ValueAccessor.WEIGHT" ); x def x = new TreeMap( root: node, toolTipBuilder: toolTipBuilder, title: "Using custom ToolTipBuilder" ); x def x = new TreeMap( root: node, toolTipBuilder: toolTipBuilder, colorProvider: new RandomColorProvider(), title: "Default RandomColorProvider" ); x Color[] colours = [ new Color(255, 0, 0), new Color(0, 255, 0), new Color(0, 0, 255), new Color(255, 255, 0), new Color(255, 0, 255), new Color(0, 255, 255), new Color(102, 102, 51), new Color(255, 51, 153), new Color(255, 153, 51), new Color(204, 204, 51), new Color(205, 102, 204), new Color(51, 153, 255), new Color(153, 102, 0) ]; def x = new TreeMap( root: node, toolTipBuilder: toolTipBuilder, colorProvider: new RandomColorProvider(colours), title: "RandomColorProvider with different colours" ); x def x = new TreeMap( root: node, toolTipBuilder: toolTipBuilder, title: "GradientColorProvider with default colours" ); x.setColorProvider(new GradientColorProvider(x)) x def x = new TreeMap( root: node, toolTipBuilder: toolTipBuilder, title: "GradientColorProvider with overrides colours" ); x.setColorProvider(new GradientColorProvider(x, Color.LIGHT_GRAY, Color.DARK_GRAY)) x def x = new TreeMap( root: big_node, showLegend: false, toolTipBuilder: toolTipBuilder, title: "Big TreeMap chart (1500 entities)" ); x.setColorProvider(new GradientColorProvider(x)) x def x = new TreeMap( root: real_node, showLegend: false, toolTipBuilder: toolTipBuilder, title: "Flare", initWidth:1300, initHeight:600 ); RandomColorProvider colorProvider = new RandomColorProvider( [ '#3182bd', '#6baed6', '#9ecae1', '#c6dbef', '#e6550d', '#fd8d3c', '#fdae6b', '#fdd0a2', '#31a354', '#74c476', '#a1d99b', '#c7e9c0', '#756bb1', '#9e9ac8', '#bcbddc', '#dadaeb', '#636363', '#969696', '#bdbdbd', '#d9d9d9' ] ) colorProvider.setGroupByParent(true) x.setColorProvider(colorProvider) x