package org.ovirt.engine.ui.common.view.popup;
import java.util.ArrayList;
import org.ovirt.engine.core.common.businessentities.storage.Disk;
import org.ovirt.engine.ui.common.CommonApplicationConstants;
import org.ovirt.engine.ui.common.CommonApplicationMessages;
import org.ovirt.engine.ui.common.gin.AssetProvider;
import org.ovirt.engine.ui.uicommonweb.models.vms.DiskModel;
import com.google.gwt.event.shared.EventBus;
import com.google.gwt.safehtml.shared.SafeHtmlUtils;
import com.google.inject.Inject;
public abstract class AbstractDiskRemoveConfirmationPopupView extends RemoveConfirmationPopupView {
ArrayList<String> notes = new ArrayList<>();
private static final CommonApplicationConstants constants = AssetProvider.getConstants();
private static final CommonApplicationMessages messages = AssetProvider.getMessages();
@Inject
public AbstractDiskRemoveConfirmationPopupView(EventBus eventBus) {
super(eventBus);
}
@Override
protected void addItemText(Object item) {
DiskModel diskModel = (DiskModel) item;
Disk disk = diskModel.getDisk();
boolean isInVm = diskModel.getVm() != null;
notes.clear();
addItemLabel(getItemTextFormatted(disk.getDiskAlias()));
if (disk.isShareable()) {
notes.add(constants.shareable());
}
if (isInVm && disk.getDiskVmElementForVm(diskModel.getVm().getId()) != null &&
disk.getDiskVmElementForVm(diskModel.getVm().getId()).isBoot()) {
notes.add(constants.bootable());
}
if (isInVm && disk.getNumberOfVms() > 1) {
notes.add(messages.diskAttachedToOtherVMs(disk.getNumberOfVms() - 1, disk.getVmNames().get(0)));
}
else if (!isInVm && disk.getNumberOfVms() > 0) {
notes.add(messages.diskAttachedToVMs(disk.getNumberOfVms()));
}
if (!notes.isEmpty()) {
String notes = constants.htmlTab() + messages.diskNote() + getFormattedNote();
addItemLabel(SafeHtmlUtils.fromSafeConstant("<b>" + notes + "</b>")); //$NON-NLS-1$ //$NON-NLS-2$
}
addItemLabel(SafeHtmlUtils.fromSafeConstant(constants.lineBreak()));
}
String getFormattedNote() {
StringBuilder formattedNote = new StringBuilder(constants.empty());
for (int i = 0; i < notes.size(); i++) {
String note = notes.get(i);
formattedNote.append(constants.lineBreak()).append(constants.htmlTab()).append(constants.htmlTab()).append("- ").append(note); //$NON-NLS-1$
}
return formattedNote.toString();
}
}