needed = True;
if (rule != None):
	needed = clr.GetClrType(type(rule)).ToString() != 'Spotfire.Dxp.Application.Visuals.ConditionalColoring.CategoricalColorRule' or clr.GetClrType(type(rule)).ToString() != 'Spotfire.Dxp.Application.Visuals.ConditionalColoring.ContinuousColorRule'

if (rule == None or needed):
    if jsonParam['colorMode'] == 'Categorical' or jsonParam['colorMode'] == 'Unique values':
        rule = coloring.AddCategoricalColorRule()
    elif jsonParam['colorMode'] == 'Gradient' or jsonParam['colorMode'] == 'Segments':
        rule = coloring.AddContinuousColorRule()
        rule.IntervalMode = Enum.Parse(clr.GetClrType(IntervalMode), jsonParam['colorMode'])
        rule.Breakpoints.Clear()
        conditionValue = createConditionalValue('MinValue', None)
        color = Color.FromArgb(255,207,219,255)
        point = rule.Breakpoints.Add(conditionValue, color)
        conditionValue = createConditionalValue('MaxValue', None)
        color = Color.FromArgb(255,35,65,159)
        point = rule.Breakpoints.Add(conditionValue, color)