protected override Script.IScriptCommand executeInner(ParameterDic pm, ItemsControl ic,
                                                              RoutedEventArgs evnt, IUIInput input, IList <IUIInputProcessor> inpProcs)
        {
            if (AdornerMode == UIEventHub.AdornerMode.Update)
            {
                var    updateAdorner   = pm.GetValue <ResizeItemAdorner>(ResizeItemAdornerKey);
                string mode            = pm.GetValue <string>(ResizeModeKey);
                Point  startPosition   = pm.GetValue <Point>(StartPositionKey);
                Point  currentPosition = pm.GetValue <Point>(CurrentPosittionKey);
                Vector offset          = currentPosition - startPosition;
                //                   private static IScriptCommand previewNorthCommand =
                //    ScriptCommands.Multiply<double>("{DiffY}", -1, "{DiffY1}",
                //    ScriptCommands.Assign("{CanvasResize.ResizeItemAdorner.OffsetY}", "{DiffY1}", false,
                //    ScriptCommands.Assign("{CanvasResize.ResizeItemAdorner.OffsetTop}", "{DiffY1}")));
                //private static IScriptCommand previewSouthCommand = ScriptCommands.Assign("{CanvasResize.ResizeItemAdorner.OffsetY}", "{DiffY}");
                //private static IScriptCommand previewWestCommand = ScriptCommands.Assign("{CanvasResize.ResizeItemAdorner.OffsetX}", "{DiffX}", false,
                //                                                    ScriptCommands.Multiply<double>("{DiffX}", 1, "{DiffX1}",
                //                                                    ScriptCommands.Assign("{CanvasResize.ResizeItemAdorner.OffsetLeft}", "{DiffX1}")));
                //private static IScriptCommand previewEastCommand = ScriptCommands.Assign("{CanvasResize.ResizeItemAdorner.OffsetX}", "{DiffX}");

                if (mode.Contains("N"))
                {
                    updateAdorner.OffsetTop    = offset.Y;
                    updateAdorner.OffsetHeight = -1 * offset.Y;
                }

                if (mode.Contains("E"))
                {
                    updateAdorner.OffsetWidth = offset.X;
                }

                if (mode.Contains("S"))
                {
                    updateAdorner.OffsetHeight = offset.Y;
                }

                if (mode.Contains("W"))
                {
                    updateAdorner.OffsetLeft  = offset.X;
                    updateAdorner.OffsetWidth = -1 * offset.X;
                }



                //adornerLayer = UITools.FindVisualChild<AdornerLayer>(selectedItem);
                //ResizeItemAdorner updateAdorner = new ResizeItemAdorner(adornerLayer);
                //adornerLayer.Add(updateAdorner);

                ////if (updateAdorner == null)
                ////    return ResultCommand.Error(new Exception("Adorner not found."));


                //updateAdorner.SelectedItem = targetItem;
            }
            else
            {
                var scp = ControlUtils.GetScrollContentPresenter(ic);
                if (scp != null)
                {
                    AdornerLayer adornerLayer = pm.GetValue <AdornerLayer>(AdornerLayerKey);
                    if (adornerLayer != null)
                    {
                        switch (AdornerMode)
                        {
                        case UIEventHub.AdornerMode.Attach:

                            IResizable targetItem = TargetItemKey == null ?
                                                    (ic.ItemsSource as IEnumerable).OfType <ISelectable>()
                                                    .FirstOrDefault(s => s is IResizable && s.IsSelected) as IResizable :
                                                    pm.GetValue <IResizable>(TargetItemKey);

                            UIElement         selectedItem  = ic.ItemContainerGenerator.ContainerFromItem(targetItem) as UIElement;
                            ResizeItemAdorner resizeAdorner = new ResizeItemAdorner(adornerLayer)
                            {
                                SelectedItem = targetItem
                            };
                            pm.SetValue(ResizeItemAdornerKey, resizeAdorner, false);
                            adornerLayer.Add(resizeAdorner);

                            break;

                        case UIEventHub.AdornerMode.Detach:
                            ResizeItemAdorner detachAdorner = pm.GetValue <ResizeItemAdorner>(ResizeItemAdornerKey);
                            if (detachAdorner != null)
                            {
                                adornerLayer.Remove(detachAdorner);
                            }
                            pm.SetValue <object>(ResizeItemAdornerKey, null);
                            break;
                        }
                    }
                }
            }
            return(NextCommand);
        }
 public static void SetResizeItemAdorner(DependencyObject target, ResizeItemAdorner value)
 {
     target.SetValue(ResizeItemAdornerProperty, value);
 }