private void buildInstallInfoCanvas(AgentInstallInfo info) { DynamicForm infoForm = new DynamicForm(); infoForm.setMargin(20); infoForm.setWidth100(); infoForm.setHeight100(); HeaderItem infoHeader = new HeaderItem(); infoHeader.setValue(MSG.view_remoteAgentInstall_installInfo()); StaticTextItem version = new StaticTextItem("version", MSG.common_title_version()); version.setValue(info.getVersion()); StaticTextItem path = new StaticTextItem("path", MSG.common_title_path()); path.setValue(info.getPath()); StaticTextItem owner = new StaticTextItem("owner", MSG.common_title_owner()); owner.setValue(info.getOwner()); StaticTextItem config = new StaticTextItem("config", MSG.common_title_configuration()); config.setValue(info.getConfigurationStartString()); CanvasItem listCanvas = new CanvasItem(); listCanvas.setShowTitle(false); listCanvas.setColSpan(2); VLayout listLayout = new VLayout(0); listLayout.setWidth100(); listLayout.setHeight100(); ListGrid listGrid = new ListGrid() { @Override protected Canvas getExpansionComponent(ListGridRecord record) { Canvas canvas = super.getExpansionComponent(record); canvas.setPadding(5); return canvas; } }; listGrid.setWidth100(); listGrid.setHeight100(); listGrid.setCanExpandRecords(true); listGrid.setExpansionMode(ExpansionMode.DETAIL_FIELD); listGrid.setDetailField("result"); ListGridField step = new ListGridField("description", MSG.view_remoteAgentInstall_step()); ListGridField result = new ListGridField("result", MSG.view_remoteAgentInstall_result()); ListGridField resultCode = new ListGridField("resultCode", MSG.view_remoteAgentInstall_resultCode(), 90); ListGridField duration = new ListGridField("duration", MSG.common_title_duration(), 90); listGrid.setFields(step, result, resultCode, duration); listGrid.setData(getStepRecords(info)); listLayout.addMember(listGrid); listCanvas.setCanvas(listLayout); // Replace the current info with just the install steps for (Canvas canvas : this.getChildren()) { canvas.markForDestroy(); } createAgentStatusTextItem(); infoForm.setFields(infoHeader, version, path, owner, config, agentStatusText, listCanvas); addMember(infoForm); this.setMembersMargin(1); this.markForRedraw(); }