 		
 		private var _columns:Array = [];
 		private var _xattrObjects:Array = [];
+		
+		private const colorDataJuggler:CallbackJuggler = newDisposableChild(this, CallbackJuggler);
+		private function handleColor():void
+		{
+			var cc:ColorColumn = lineStyle.color.getInternalColumn() as ColorColumn;
+			var bc:BinnedColumn = cc ? cc.getInternalColumn() as BinnedColumn : null;
+			var fc:FilteredColumn = bc ? bc.getInternalColumn() as FilteredColumn : null;
+			colorDataJuggler.target = fc ? fc.internalDynamicColumn : null;
+		}
 		
 		public function getXValues():Array
 		{

	import flash.utils.Dictionary;
	
	import weave.Weave;
	import weave.WeaveProperties;
	import weave.api.WeaveAPI;
	import weave.api.data.ColumnMetadata;
	import weave.api.data.IAttributeColumn;
	import weave.api.data.IColumnStatistics;
	import weave.api.data.IQualifiedKey;
	import weave.api.data.ISimpleGeometry;
	import weave.api.newDisposableChild;
	import weave.api.newLinkableChild;
	import weave.api.primitives.IBounds2D;
	import weave.api.registerLinkableChild;
	import weave.api.setSessionState;
	import weave.api.ui.IPlotterWithGeometries;
	import weave.core.LinkableBoolean;
	import weave.core.LinkableHashMap;
	import weave.core.LinkableNumber;
	import weave.core.LinkableString;
	import weave.data.AttributeColumns.AlwaysDefinedColumn;
	import weave.data.AttributeColumns.DynamicColumn;
	import weave.data.AttributeColumns.EquationColumn;
	import weave.data.KeySets.KeySet;
	import weave.primitives.GeometryType;
	import weave.primitives.SimpleGeometry;

			columns.childListCallbacks.addImmediateCallback(this, handleColumnsListChange);
			xColumns.childListCallbacks.addImmediateCallback(this,handleColumnsListChange);
			
			
			lineStyle.color.internalDynamicColumn.addImmediateCallback(this, handleColor, true);
			getCallbackCollection(colorDataJuggler).addImmediateCallback(this, updateFilterEquationColumns, true);
			
			// updateFilterEquationColumns sets key source
		}
		private function handleColumnsListChange():void
		{
