public IncomingCallUI(InterlocutorUI ic) {
    setLayout(new GridBagLayout());

    final JLabel topLabel = new JLabel();
    topLabel.setIcon(PhoneRes.getImageIcon("INCOMING_CALL_IMAGE"));
    topLabel.setHorizontalTextPosition(JLabel.RIGHT);
    topLabel.setFont(new Font("Dialog", Font.BOLD, 15));
    topLabel.setText(PhoneRes.getIString("phone.incomingcallfrom") + "...");
    topLabel.setForeground(Color.gray);

    final String phoneNumber = ic.getCall().getNumber();

    // Add Top Label
    add(
        topLabel,
        new GridBagConstraints(
            0,
            0,
            1,
            1,
            1.0,
            0.0,
            GridBagConstraints.CENTER,
            GridBagConstraints.HORIZONTAL,
            new Insets(5, 5, 5, 5),
            0,
            0));

    boolean callerID = !ic.getCall().getNumber().equals(ic.getCall().getRemoteName());
    String title = ic.getCall().getRemoteName();
    if (!callerID) {
      title = phoneNumber;
    }

    // Add Caller Block
    buildCallerBlock(title, phoneNumber);

    // Add Buttons
    addButtons();
  }
  private void addButtons() {
    // Build Accept Button
    acceptButton =
        new RolloverButton(
            "      " + PhoneRes.getIString("phone.accept"),
            PhoneRes.getImageIcon("TOASTER_ACCEPT_BUTTON"));
    acceptButton.setHorizontalTextPosition(JLabel.CENTER);
    acceptButton.setFont(new Font("Dialog", Font.BOLD, 11));
    acceptButton.setForeground(new Color(91, 175, 41));
    acceptButton.setMargin(new Insets(0, 0, 0, 0));

    // Build Reject Button
    rejectButton =
        new RolloverButton(
            "      " + PhoneRes.getIString("phone.reject"),
            PhoneRes.getImageIcon("TOASTER_REJECT_BUTTON"));
    rejectButton.setHorizontalTextPosition(JLabel.CENTER);
    rejectButton.setFont(new Font("Dialog", Font.BOLD, 11));
    rejectButton.setForeground(new Color(153, 32, 10));
    rejectButton.setMargin(new Insets(0, 0, 0, 0));

    final JPanel panel = new JPanel(new GridBagLayout());
    panel.setOpaque(false);
    panel.add(
        acceptButton,
        new GridBagConstraints(
            0,
            0,
            1,
            1,
            0.0,
            0.0,
            GridBagConstraints.EAST,
            GridBagConstraints.NONE,
            new Insets(5, 5, 5, 5),
            0,
            0));
    panel.add(
        rejectButton,
        new GridBagConstraints(
            1,
            0,
            1,
            1,
            0.0,
            0.0,
            GridBagConstraints.WEST,
            GridBagConstraints.NONE,
            new Insets(5, 5, 5, 5),
            0,
            0));

    add(
        panel,
        new GridBagConstraints(
            0,
            2,
            1,
            1,
            0.0,
            0.0,
            GridBagConstraints.CENTER,
            GridBagConstraints.NONE,
            new Insets(5, 5, 5, 5),
            0,
            0));
  }