 // Continuous Mapping - set node color 
    ContinuousMapping continuousMapping = new ContinuousMapping(Color.WHITE,
                                                            ObjectMapping.NODE_MAPPING);
    continuousMapping.setControllingAttributeName("attr3", network, false);

    Interpolator numToColor = new LinearNumberToColorInterpolator();
    continuousMapping.setInterpolator(numToColor);

    Color underColor = Color.GRAY;
    Color minColor = Color.RED;
    Color midColor = Color.WHITE;
    Color maxColor = Color.GREEN;
    Color overColor = Color.BLUE;

    // Create boundary conditions                  less than,   equals,  greater than
    BoundaryRangeValues bv0 = new BoundaryRangeValues(underColor, minColor, minColor);
    BoundaryRangeValues bv1 = new BoundaryRangeValues(midColor, midColor, midColor);
    BoundaryRangeValues bv2 = new BoundaryRangeValues(maxColor, maxColor, overColor);

    // Set the attribute point values associated with the boundary values 
    continuousMapping.addPoint(0.0, bv0);
    continuousMapping.addPoint(1.0, bv1);
    continuousMapping.addPoint(2.0, bv2);

    Calculator nodeColorCalculator = new BasicCalculator("Example Node Color Calc",
                                                    continuousMapping,
                           VisualPropertyType.NODE_FILL_COLOR);
    nodeAppCalc.setCalculator(nodeColorCalculator);
