package scrum.client.files; import ilarkesto.core.scope.Scope; import ilarkesto.gwt.client.Gwt; import ilarkesto.gwt.client.TableBuilder; import scrum.client.ScrumGwt; import scrum.client.collaboration.CommentsWidget; import scrum.client.common.AScrumWidget; import scrum.client.project.Project; import com.google.gwt.core.client.GWT; import com.google.gwt.user.client.ui.HTML; import com.google.gwt.user.client.ui.Widget; public class FileWidget extends AScrumWidget { private File file; private Project project; public FileWidget(File impediment) { super(); this.file = impediment; } @Override protected Widget onInitialization() { project = Scope.get().getComponent(Project.class); TableBuilder left = ScrumGwt.createFieldTable(); left.addFieldRow("Label", file.getLabelModel()); String relativeUrl = "fileDownload?projectId=" + project.getId() + "&fileId=" + file.getId(); HTML downloadLink = Gwt.createServletDownloadLink(relativeUrl, file.getFilename()); left.addFieldRow("Download", downloadLink); left.addFieldRow("Notes", file.getNoteModel()); left.addFieldRow("Uploaded", file.getUploadTimeModel()); TableBuilder right = new TableBuilder(); if (file.isImage()) { String url = GWT.getModuleBaseURL() + relativeUrl; right.addRow(new HTML("<a href='" + url + "' target='_blank'><img src='" + url + "' width='300px'></a>")); } right.addRow(new CommentsWidget(file)); return TableBuilder.row(20, left.createTable(), right.createTable()); } }