/** @since 0.8 */
 public boolean canRedo(IContext context) {
   IPattern pattern = delegate.getPattern();
   if (pattern instanceof ICustomUndoablePattern) {
     return ((ICustomUndoablePattern) pattern).canRedo(this, context);
   }
   return true;
 }
 @Override
 public boolean canUndo(IContext context) {
   IPattern pattern = delegate.getPattern();
   if (pattern instanceof ICustomUndoablePattern) {
     return ((ICustomUndoablePattern) pattern).canUndo(this, context);
   }
   return super.canUndo(context);
 }
 @Override
 public IResizeConfiguration getResizeConfiguration(IResizeShapeContext context) {
   IPattern pattern = delegate.getPattern();
   IResizeConfiguration resizeConfiguration = pattern.getResizeConfiguration(context);
   if (resizeConfiguration != null) {
     return resizeConfiguration;
   }
   return super.getResizeConfiguration(context);
 }
 /** @since 0.8 */
 public void redo(IContext context) {
   IPattern pattern = delegate.getPattern();
   if (pattern instanceof ICustomUndoablePattern) {
     ((ICustomUndoablePattern) pattern).redo(this, context);
   }
 }
 @Override
 public void resizeShape(IResizeShapeContext context) {
   delegate.getPattern().resizeShape(context);
 }
 @Override
 public boolean canResizeShape(IResizeShapeContext context) {
   IPattern pattern = delegate.getPattern();
   return pattern.canResizeShape(context);
 }