package org.ovirt.engine.ui.userportal.client.binders.specific;
import org.ovirt.engine.core.common.businessentities.VmNetworkInterface;
import org.ovirt.engine.ui.uicommon.models.Model;
import org.ovirt.engine.ui.uicommon.models.vms.VmInterfaceListModel;
import org.ovirt.engine.ui.uicommon.models.vms.VmInterfaceModel;
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.NewNICModalPanel;
import com.smartgwt.client.widgets.events.ClickEvent;
import com.smartgwt.client.widgets.events.ClickHandler;
public class VmInterfaceListModelBinder extends PoolInterfaceListModelBinder implements ListModelWithActionsBinder {
VmInterfaceListModel model;
RendererType rendererType = RendererType.GridWithToolbar;
public void setModel(Model model) {
super.setModel(model);
this.model = (VmInterfaceListModel)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();
NewNICModalPanel panel = new NewNICModalPanel(model, (VmInterfaceModel)model.getWindow());
panel.draw();
}
}),
new ToolbarAction(model.getEditCommand(), new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
model.getEditCommand().Execute();
NewNICModalPanel panel = new NewNICModalPanel(model, (VmInterfaceModel)model.getWindow());
panel.draw();
}
}),
new ToolbarAction(model.getRemoveCommand(), new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
model.getRemoveCommand().Execute();
ItemRemoveModalPanel panel = new ItemRemoveModalPanel(model.getWindow().getTitle(), model.getWindow().getMessage(), model, new ObjectNameResolver() {
@Override
public String getItemName(Object o) {
return ((VmNetworkInterface)o).getName();
}
}, gridController);
panel.draw();
}
})
};
return actions;
}
}