public ItemRemoveModalPanel(
      String title,
      String itemsString,
      final ListModel model,
      ObjectNameResolver nameResolver,
      final GridController gridController) {
    super(panelWidth, panelHeight, title);

    this.model = model;

    VLayout inPanel = new VLayout();
    inPanel.setHeight100();
    inPanel.setWidth100();

    Label message = new Label("Are you sure you want to remove the following " + itemsString + "?");
    message.setStyleName("removePanelLabel");
    message.setAutoHeight();
    inPanel.addMember(message);

    for (Object item : model.getSelectedItems()) {
      Label l = new Label("- " + nameResolver.getItemName(item));
      l.setStyleName("removePanelItems");
      l.setAutoHeight();
      l.setValign(VerticalAlignment.TOP);
      inPanel.addMember(l);
    }

    model
        .getPropertyChangedEvent()
        .addListener(
            new IEventListener() {
              @Override
              public void eventRaised(Event ev, Object sender, EventArgs args) {
                String propertyName = ((PropertyChangedEventArgs) args).PropertyName;
                GWT.log("DERBA: " + propertyName);
                if (propertyName.equals("Window") || propertyName.equals("ConfirmationModel")) {
                  destroy();
                  model.getPropertyChangedEvent().removeListener(this);
                  if (gridController != null) gridController.gridChangePerformed();
                }
              }
            });

    Button okButton = new Button("OK");
    okButton.addClickHandler(
        new ClickHandler() {
          @Override
          public void onClick(ClickEvent event) {
            model.ExecuteCommand(new UICommand("OnRemove", model));
          }
        });

    Button cancelButton = new Button("Cancel");
    cancelButton.addClickHandler(
        new ClickHandler() {
          @Override
          public void onClick(ClickEvent event) {
            onClose();
          }
        });

    setFooterButtons(Alignment.RIGHT, okButton, cancelButton);

    addItem(inPanel);
  }