package com.thingtrack.konekti.view.module.modulemanager.internal; import java.util.ArrayList; import java.util.List; import com.thingtrack.konekti.service.api.MenuCommandResourceService; import com.thingtrack.konekti.view.addon.ui.AbstractViewForm; import com.thingtrack.konekti.view.kernel.IModuleService; import com.thingtrack.konekti.view.kernel.MetadataModule; import com.vaadin.data.util.BeanItemContainer; import com.vaadin.ui.Table; import com.vaadin.ui.Table.TableDragMode; @SuppressWarnings("serial") public class AvailableModulesComponent extends AbstractViewForm { // Konekti Platform Services private MenuCommandResourceService menuCommandResourceService; private IModuleService moduleService; // Data Container private BeanItemContainer<MetadataModule> availableModuleTableContainer; public BeanItemContainer<MetadataModule> getAvailableModuleTableContainer() { return availableModuleTableContainer; } // Data Components private Table availableModuleTable; public AvailableModulesComponent() { buildMainLayout(); setCompositionRoot(availableModuleTable); } private void buildMainLayout() { availableModuleTable = new Table(); availableModuleTable.setWidth("450px"); availableModuleTable.setHeight("100%"); availableModuleTable.setDragMode(TableDragMode.ROW); } public void loadData(MenuCommandResourceService menuCommandResourceService, IModuleService moduleService) throws Exception { List<MetadataModule> unconfiguredModules = new ArrayList<MetadataModule>(); List<MetadataModule> availableModules = moduleService.getMetadataModules(); // Remove all modules are already configured for (MetadataModule metadataModule : availableModules) { try { menuCommandResourceService.getById(metadataModule.getId(), metadataModule.getVersion()); continue; } catch (Exception e) { unconfiguredModules.add(metadataModule); } } // Set the unconfigured modules to the data container and component availableModuleTableContainer = new BeanItemContainer<MetadataModule>(MetadataModule.class, unconfiguredModules); availableModuleTable.setContainerDataSource(availableModuleTableContainer); availableModuleTable.setVisibleColumns(new String[] { "id", "version" }); availableModuleTable.setColumnHeaders(new String[] { "Identificador", "VersiĆ³n" }); } @Override protected void updateLabels() { availableModuleTable.setColumnHeaders(new String[] { getI18N().getMessage("com.thingtrack.konekti.view.module.modulemanager.internal.AvailableModulesComponent.availableModuleTable.column.id"), getI18N().getMessage("com.thingtrack.konekti.view.module.modulemanager.internal.AvailableModulesComponent.availableModuleTable.column.organization.version")}); } }