@Override protected void copyItem(Positionable p){
  if (log.isDebugEnabled()) {
    log.debug("Enter copyItem: _selectionGroup {}",_selectionGroup != null ? "size=" + _selectionGroup.size() : "null");
  }
  if (_pastePending) {
    pasteItems();
  }
  if (_selectionGroup != null && !_selectionGroup.contains(p)) {
    deselectSelectionGroup();
  }
  if (_selectionGroup == null) {
    _selectionGroup=new ArrayList<Positionable>();
    _selectionGroup.add(p);
  }
  ArrayList<Positionable> selectionGroup=new ArrayList<Positionable>();
  for (  Positionable comp : _selectionGroup) {
    Positionable pos=comp.deepClone();
    selectionGroup.add(pos);
  }
  _selectionGroup=selectionGroup;
  _pastePending=true;
}

@ Override protected void copyItem ( Positionable p ) { if ( log . isDebugEnabled ( ) ) { log . debug ( "Enter copyItem: _selectionGroup {}" , _selectionGroup != null ? "size=" + _selectionGroup . size ( ) : "null" ) ; } if ( _pastePending ) { pasteItems ( ) ; } if ( _selectionGroup != null && ! _selectionGroup . contains ( p ) ) { deselectSelectionGroup ( ) ; } if ( _selectionGroup == null ) { _selectionGroup = new ArrayList < Positionable > ( ) ; _selectionGroup . add ( p ) ; } ArrayList < Positionable > selectionGroup = new ArrayList < Positionable > ( ) ; for ( Positionable comp : _selectionGroup ) { Positionable pos = comp . deepClone ( ) ; selectionGroup . add ( pos ) ; } _selectionGroup = selectionGroup ; _pastePending = true ; }
set up selections for a paste . note a copy of _selectiongroup is made that is not in the _contents . this disconnected arraylist is added to the _contents when ( if ) a paste is made . the disconnected _selectiongroup can be dragged to a new location .
