public Dockable combine(CombinerSource source, CombinerTarget target) {
    if (target instanceof DisplayerTarget) {
      return ((DisplayerTarget) target).execute(source);
    } else {
      DockStation parent = source.getParent();
      PlaceholderMap placeholders = source.getPlaceholders();

      StackDockStation stack = new StackDockStation(parent.getTheme());
      stack.setController(parent.getController());
      if (placeholders != null) {
        stack.setPlaceholders(placeholders);
      }

      stack.drop(source.getOld());
      stack.drop(source.getNew());

      return stack;
    }
  }