/**
  * This base implementation should be sufficient for most panels. It modifies the panel definition
  * and adds the child view to this panel's view. In case the requested position is already in use
  * for this panel, this method will throw an {@link IllegalStateException}. Subclasses may
  * override and implement some other collision avoidance strategy.
  */
 @Override
 public void addPanel(final WorkbenchPanelPresenter child, final Position position) {
   if (childPanels.containsKey(position)) {
     throw new IllegalStateException("This panel already has a " + position + " child");
   }
   definition.insertChild(position, child.getDefinition());
   getPanelView().addPanel(child.getDefinition(), child.getPanelView(), position);
   childPanels.put(position, child);
   child.setParent(this);
 }