package org.ovirt.engine.ui.webadmin.section.main.view.popup.storage; import java.util.Arrays; import java.util.Collections; import java.util.List; import org.ovirt.engine.core.common.businessentities.VM; import org.ovirt.engine.ui.common.uicommon.model.DetailModelProvider; import org.ovirt.engine.ui.uicommonweb.models.storage.RegisterVmModel; import org.ovirt.engine.ui.uicommonweb.models.vms.ImportEntityData; import org.ovirt.engine.ui.uicommonweb.models.vms.ImportSource; import org.ovirt.engine.ui.uicommonweb.models.vms.ImportVmData; import org.ovirt.engine.ui.uicommonweb.models.vms.ImportVmModel; import org.ovirt.engine.ui.uicommonweb.models.vms.VmImportGeneralModel; import org.ovirt.engine.ui.uicommonweb.models.vms.register.RegisterVmData; import org.ovirt.engine.ui.webadmin.ApplicationConstants; import org.ovirt.engine.ui.webadmin.gin.AssetProvider; import org.ovirt.engine.ui.webadmin.section.main.view.popup.storage.backup.ImportVmGeneralSubTabView; import com.google.gwt.user.client.ui.ScrollPanel; public class RegisterVmInfoPanel extends RegisterEntityInfoPanel<VM, RegisterVmData, RegisterVmModel> { private ImportVmGeneralSubTabView generalView; private VmImportGeneralModel vmImportGeneralModel; private static final ApplicationConstants constants = AssetProvider.getConstants(); public RegisterVmInfoPanel(RegisterVmModel model) { super(model); } @Override protected void init() { // Initialize Tables initGeneralForm(); initDisksTable(); initNicsTable(); initAppsTable(); initContainersTable(); // Add Tabs add(new ScrollPanel(generalView.asWidget()), constants.generalLabel()); add(new ScrollPanel(disksTable), constants.disksLabel()); add(new ScrollPanel(nicsTable), constants.nicsLabel()); add(new ScrollPanel(appsTable), constants.applicationsLabel()); add(new ScrollPanel(containersTable), constants.containersLabel()); } @Override public void updateTabsData(ImportEntityData<VM> importEntityData) { ImportVmData importVmData = (ImportVmData) importEntityData; VM vm = importVmData.getVm(); vmImportGeneralModel.setEntity(importVmData); generalView.setMainTabSelectedItem(vm); disksTable.setRowData((List) Arrays.asList(vm.getDiskMap().values().toArray())); nicsTable.setRowData((List) Arrays.asList(vm.getInterfaces().toArray())); appsTable.setRowData(vm.getAppList() == null ? Collections.emptyList() : (List) Arrays.asList(vm.getAppList().split("[,]", -1))); //$NON-NLS-1$ } private void initGeneralForm() { DetailModelProvider<ImportVmModel, VmImportGeneralModel> modelProvider = new DetailModelProvider<ImportVmModel, VmImportGeneralModel>() { @Override public VmImportGeneralModel getModel() { return getVmGeneralModel(); } @Override public void onSubTabSelected() { } @Override public void onSubTabDeselected() { } }; generalView = new ImportVmGeneralSubTabView(modelProvider); } public VmImportGeneralModel getVmGeneralModel() { if (vmImportGeneralModel == null) { vmImportGeneralModel = new VmImportGeneralModel(); vmImportGeneralModel.setSource(ImportSource.EXPORT_DOMAIN); } return vmImportGeneralModel; } }