void initTable(final ApplicationConstants constants) { getTable().enableColumnResizing(); ImageResourceColumn<VM> pluggedColumn = new ImageResourceColumn<VM>() { @Override public ImageResource getValue(VM object) { boolean isDiskPlugged = getDetailModel().isDiskPluggedToVm(object); setTitle(isDiskPlugged ? constants.active() : constants.inactive()); return isDiskPlugged ? getCommonResources().upImage() : getCommonResources().downImage(); } }; getTable().addColumn(pluggedColumn, constants.empty(), "30px"); // $NON-NLS-1$ TextColumnWithTooltip<VM> nameColumn = new TextColumnWithTooltip<VM>() { @Override public String getValue(VM object) { return object.getName(); } }; nameColumn.makeSortable(); getTable().addColumn(nameColumn, constants.nameVm(), "140px"); // $NON-NLS-1$ getTable().addColumn(new VmTypeColumn(), constants.empty(), "30px"); // $NON-NLS-1$ TextColumnWithTooltip<VM> clusterColumn = new TextColumnWithTooltip<VM>() { @Override public String getValue(VM object) { return object.getVdsGroupName(); } }; clusterColumn.makeSortable(); getTable().addColumn(clusterColumn, constants.clusterVm(), "140px"); // $NON-NLS-1$ TextColumnWithTooltip<VM> ipColumn = new TextColumnWithTooltip<VM>() { @Override public String getValue(VM object) { return object.getVmIp(); } }; ipColumn.makeSortable(); getTable().addColumn(ipColumn, constants.ipVm(), "140px"); // $NON-NLS-1$ TextColumnWithTooltip<VM> fqdnColumn = new TextColumnWithTooltip<VM>() { @Override public String getValue(VM object) { return object.getVmFQDN(); } }; fqdnColumn.makeSortable(); getTable().addColumn(fqdnColumn, constants.fqdn(), "140px"); // $NON-NLS-1$ PercentColumn<VM> memColumn = new PercentColumn<VM>() { @Override public Integer getProgressValue(VM object) { return object.getUsageMemPercent(); } }; getTable().addColumn(memColumn, constants.memoryVm(), "140px"); // $NON-NLS-1$ PercentColumn<VM> cpuColumn = new PercentColumn<VM>() { @Override public Integer getProgressValue(VM object) { return object.getUsageCpuPercent(); } }; getTable().addColumn(cpuColumn, constants.cpuVm(), "140px"); // $NON-NLS-1$ PercentColumn<VM> netColumn = new PercentColumn<VM>() { @Override public Integer getProgressValue(VM object) { return object.getUsageNetworkPercent(); } }; getTable().addColumn(netColumn, constants.networkVm(), "140px"); // $NON-NLS-1$ TextColumnWithTooltip<VM> statusColumn = new EnumColumn<VM, VMStatus>() { @Override protected VMStatus getRawValue(VM object) { return object.getStatus(); } }; statusColumn.makeSortable(); getTable().addColumn(statusColumn, constants.statusVm(), "140px"); // $NON-NLS-1$ TextColumnWithTooltip<VM> hostColumn = new UptimeColumn<VM>() { @Override protected Double getRawValue(VM object) { return object.getRoundedElapsedTime(); } }; hostColumn.makeSortable(); getTable().addColumn(hostColumn, constants.uptimeVm(), "140px"); // $NON-NLS-1$ }