package org.ovirt.engine.ui.userportal.client.modalpanels; import org.ovirt.engine.core.compat.Event; import org.ovirt.engine.core.compat.EventArgs; import org.ovirt.engine.core.compat.IEventListener; import org.ovirt.engine.core.compat.PropertyChangedEventArgs; import org.ovirt.engine.ui.uicommon.UICommand; import org.ovirt.engine.ui.uicommon.models.ListModel; import org.ovirt.engine.ui.userportal.client.binders.ObjectNameResolver; import org.ovirt.engine.ui.userportal.client.components.GridController; import org.ovirt.engine.ui.userportal.client.components.NonDraggableModalPanel; import org.ovirt.engine.ui.userportal.client.components.Button; import com.google.gwt.core.client.GWT; import com.smartgwt.client.types.Alignment; import com.smartgwt.client.types.VerticalAlignment; import com.smartgwt.client.widgets.Label; import com.smartgwt.client.widgets.events.ClickEvent; import com.smartgwt.client.widgets.events.ClickHandler; import com.smartgwt.client.widgets.layout.VLayout; public class ItemRemoveModalPanel extends NonDraggableModalPanel { private ItemRemoveModalPanel instance = this; private static final int panelWidth = 370; private static final int panelHeight = 350; private ListModel model; 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); } @Override public void onClose() { model.ExecuteCommand(new UICommand("Cancel", model)); } }