/**
   * Creates a new AbstractContextButtonPadDeclaration.
   *
   * @param referenceRectangle The original reference rectangle as described in {@link
   *     #getOriginalReferenceRectangle()}
   * @param contextButtonPadData The context button data containing the {@link IContextButtonEntry}
   */
  public AbstractContextButtonPadDeclaration(ContextButtonPadData contextButtonPadData) {
    this.contextButtonPadData = contextButtonPadData;

    org.eclipse.sapphire.ui.Rectangle l = contextButtonPadData.getPadLocation();
    originalReferenceRectangle = new Rectangle(l.getX(), l.getY(), l.getWidth(), l.getHeight());
    padReferenceRectangle = new Rectangle(originalReferenceRectangle);
    padReferenceRectangle.grow(1, 1);

    initializeDomainButtonLists();
    initializeRectangles();
    initializeButtonPositions();
    initializeContainmentRectangles();
  }