1 || newValue < 0) { needToRevert = true; } break; case "ratio": if (newValue > 255 || newValue < 0) { needToRevert = true; } break; } } if (needToRevert) { data[event.dataField] = _editValue; gradientValues.dataProvider.replaceItemAt(data, index); return; } // update the filter updateFilter(); } private function checkForItemDelete(event:ListEvent):void { var cell:Button = event.itemRenderer as Button; if (cell != null) { _gradients.removeItemAt(_gradients.getItemIndex(cell.data)); updateFilter(); } } private function changeFilterValue(event:Event):void { // update the filter updateFilter(); } private function addNewGradient(event:MouseEvent):void { var gradient:actionscript_book_FilterWorkbench_com_example_programmingas3_filterWorkbench_GradientColor = new actionscript_book_FilterWorkbench_com_example_programmingas3_filterWorkbench_GradientColor(addColorValue.selectedColor, addAlphaValue.value, addRatioValue.value); _gradients.addItem(gradient); updateFilter(); } // ------- DataGrid utility methods ------- private function colorFormatter(data:Object, column:DataGridColumn):String { var c:actionscript_book_FilterWorkbench_com_example_programmingas3_filterWorkbench_GradientColor = data as actionscript_book_FilterWorkbench_com_example_programmingas3_filterWorkbench_GradientColor; if (c != null) { return actionscript_book_FilterWorkbench_com_example_programmingas3_filterWorkbench_ColorStringFormatter.formatColorHex24(c.color); } else { return ""; } } // ------- Private methods ------- private function updateFilter():void { var blurX:Number = blurXValue.value; var blurY:Number = blurYValue.value; var strength:Number = strengthValue.value; var quality:int = qualityValue.selectedItem.data; var angle:Number = angleValue.value; var distance:Number = distanceValue.value; var knockout:Boolean = knockoutValue.selected; var type:String = typeValue.selectedItem.data; var colors:Array = _gradients.toArray(); _filterFactory.modifyFilter(distance, angle, colors, blurX, blurY, strength, quality, type, knockout); } private function getDefaultGradientValues():void { if (_gradients == null) { _gradients = new ArrayCollection(); var sort:Sort = new Sort(); sort.fields = [new SortField("ratio")]; _gradients.sort = sort; _gradients.refresh(); } else { _gradients.removeAll(); } _gradients.addItem(new actionscript_book_FilterWorkbench_com_example_programmingas3_filterWorkbench_GradientColor(0xFFFFFF, 1, 0)); _gradients.addItem(new actionscript_book_FilterWorkbench_com_example_programmingas3_filterWorkbench_GradientColor(0xFF0000, .25, 128)); _gradients.addItem(new actionscript_book_FilterWorkbench_com_example_programmingas3_filterWorkbench_GradientColor(0x000000, 1, 255)); gradientValues.dataProvider = _gradients; } ]]>