package org.ovirt.engine.ui.userportal.client.binders.specific;
import org.ovirt.engine.core.common.businessentities.DiskImage;
import org.ovirt.engine.ui.uicommon.models.Model;
import org.ovirt.engine.ui.uicommon.models.vms.VmDiskListModel;
import org.ovirt.engine.ui.userportal.client.binders.ObjectNameResolver;
import org.ovirt.engine.ui.userportal.client.binders.RendererType;
import org.ovirt.engine.ui.userportal.client.binders.ToolbarAction;
import org.ovirt.engine.ui.userportal.client.binders.interfaces.ListModelWithActionsBinder;
import org.ovirt.engine.ui.userportal.client.components.GridController;
import org.ovirt.engine.ui.userportal.client.modalpanels.ItemRemoveModalPanel;
import org.ovirt.engine.ui.userportal.client.modalpanels.NewDiskModalPanel;
import com.smartgwt.client.widgets.events.ClickEvent;
import com.smartgwt.client.widgets.events.ClickHandler;
public class VmDiskListModelBinder extends PoolDiskListModelBinder implements ListModelWithActionsBinder {
VmDiskListModel model;
RendererType rendererType = RendererType.GridWithToolbar;
@Override
public void setModel(Model model) {
super.setModel(model);
this.model = (VmDiskListModel)model;
}
@Override
public RendererType getRendererType() {
return rendererType;
}
@Override
public ToolbarAction[] getCommands(final GridController gridController) {
ToolbarAction[] actions = new ToolbarAction[] {
new ToolbarAction(model.getNewCommand(), new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
model.getNewCommand().Execute();
NewDiskModalPanel panel = new NewDiskModalPanel(model, gridController);
panel.draw();
}
}),
new ToolbarAction(model.getEditCommand(), new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
model.getEditCommand().Execute();
NewDiskModalPanel panel = new NewDiskModalPanel(model, gridController);
panel.draw();
}
}),
new ToolbarAction(model.getRemoveCommand(), new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
model.getRemoveCommand().Execute();
ItemRemoveModalPanel p = new ItemRemoveModalPanel(model.getWindow().getTitle(), "Disk(s)", model, new ObjectNameResolver() {
@Override
public String getItemName(Object o) {
return "Disk " + ((DiskImage)o).getinternal_drive_mapping();
}
}, gridController);
p.draw();
}
})
};
return actions;
}
}