@SuppressWarnings("unchecked")
  @Override
  public void onEvent(final String topic, final ListBoxSelectionChangedEvent data) {
    final Object selectedItem = getSelectedItem(data.getSelection());

    ListBoxControl listBoxControl = (ListBoxControl) listBox;
    listBoxControl
        .getViewConverter()
        .display(dropDown.getElement().findElementByName("#text"), selectedItem);

    final int selectedItemIndex = getSelectedIndex(data);
    if (screen.isActivePopup(popupInstance)) {
      dropDown
          .getElement()
          .getControl(DropDownControl.class)
          .close(
              new EndNotify() {
                @Override
                public void perform() {
                  nifty.publishEvent(
                      dropDown.getId(),
                      new DropDownSelectionChangedEvent(dropDown, selectedItem, selectedItemIndex));
                }
              });
    } else {
      nifty.publishEvent(
          dropDown.getId(),
          new DropDownSelectionChangedEvent(dropDown, selectedItem, selectedItemIndex));
    }
  }