124 lines
3.8 KiB
Java
124 lines
3.8 KiB
Java
package org.gcube.portlets.widgets.mpformbuilder.client.form.generic;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.Arrays;
|
|
import java.util.Collection;
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
|
|
import org.gcube.portlets.widgets.mpformbuilder.shared.upload.FileUploaded;
|
|
|
|
import com.github.gwtbootstrap.client.ui.Button;
|
|
import com.github.gwtbootstrap.client.ui.constants.IconType;
|
|
import com.google.gwt.core.client.GWT;
|
|
import com.google.gwt.event.dom.client.ClickEvent;
|
|
import com.google.gwt.event.dom.client.ClickHandler;
|
|
import com.google.gwt.uibinder.client.UiBinder;
|
|
import com.google.gwt.uibinder.client.UiField;
|
|
import com.google.gwt.user.client.ui.Composite;
|
|
import com.google.gwt.user.client.ui.FlexTable;
|
|
import com.google.gwt.user.client.ui.HTMLPanel;
|
|
import com.google.gwt.user.client.ui.Widget;
|
|
|
|
public class UploadedFilesBrowse extends Composite {
|
|
|
|
private static UploadedFilesBrowseUiBinder uiBinder = GWT.create(UploadedFilesBrowseUiBinder.class);
|
|
|
|
interface UploadedFilesBrowseUiBinder extends UiBinder<Widget, UploadedFilesBrowse> {
|
|
}
|
|
|
|
private List<FileUploaded> listFileUploaded;
|
|
// private HashMap<Integer, FileUploaded> mapForCCUploading;
|
|
|
|
@UiField
|
|
HTMLPanel uploadFileContainer;
|
|
|
|
private FlexTable table = new FlexTable();
|
|
|
|
private List<Button> listButtonRemove = new ArrayList<Button>();
|
|
|
|
private HashMap<Integer, FileUploaded> mapPositionalFU = new HashMap<Integer, FileUploaded>();
|
|
|
|
public UploadedFilesBrowse(List<FileUploaded> fileUploaded) {
|
|
initWidget(uiBinder.createAndBindUi(this));
|
|
this.listFileUploaded = fileUploaded;
|
|
// Filling map of files uploaded
|
|
int i = 0;
|
|
for (FileUploaded file : listFileUploaded) {
|
|
mapPositionalFU.put(i, file);
|
|
i++;
|
|
}
|
|
|
|
showFileBrowseInteraction(fileUploaded);
|
|
|
|
}
|
|
|
|
private void showFileBrowseInteraction(List<FileUploaded> listFileUploaded) {
|
|
uploadFileContainer.clear();
|
|
// pathIndex = pathContentIndex;
|
|
// GWT.log("showing pathContentIndex: "+pathContentIndex);
|
|
GWT.log("showing files: " + listFileUploaded);
|
|
table.clear();
|
|
if (listFileUploaded.size() > 0) {
|
|
table.addStyleName("table-current-content");
|
|
table.setHTML(0, 0, "<span style='color:rgb(155, 80, 78); font-weight:bold;'>Current content:</span>");
|
|
table.setHTML(1, 0, "<span style='color:rgb(155, 80, 78);'>Filename</span>");
|
|
table.setHTML(1, 1, "<span style='color:rgb(155, 80, 78);'>MimeType<span>");
|
|
table.setHTML(1, 2, "<span style='color:rgb(155, 80, 78);'>Link</span>");
|
|
|
|
int i = 2;
|
|
int index = 0;
|
|
for (final FileUploaded file : listFileUploaded) {
|
|
final int filePointer = index;
|
|
table.setHTML(i, 0, file.getFileName());
|
|
table.setHTML(i, 1, file.getMimeType());
|
|
String link = "<a target=\"_blank\" href=" + file.getUrl() + ">View</a>";
|
|
table.setHTML(i, 2, link);
|
|
|
|
final int rowIndexToRem = i;
|
|
Button buttonRemoveFile = new Button();
|
|
buttonRemoveFile.setIcon(IconType.TRASH);
|
|
buttonRemoveFile.setTitle("Remove this file");
|
|
buttonRemoveFile.addClickHandler(new ClickHandler() {
|
|
|
|
@Override
|
|
public void onClick(ClickEvent event) {
|
|
mapPositionalFU.remove(filePointer);
|
|
table.getRowFormatter().getElement(rowIndexToRem).setAttribute("hidden", "hidden");
|
|
}
|
|
});
|
|
listButtonRemove.add(buttonRemoveFile);
|
|
table.setWidget(i, 3, buttonRemoveFile);
|
|
i++;
|
|
index++;
|
|
}
|
|
|
|
uploadFileContainer.add(table);
|
|
}
|
|
|
|
}
|
|
|
|
public void enableManageOfContent(boolean bool) {
|
|
|
|
for (Button button : listButtonRemove) {
|
|
button.setEnabled(bool);
|
|
}
|
|
|
|
double opacity = bool?1:0.8;
|
|
|
|
uploadFileContainer.getElement().getStyle().setOpacity(opacity);
|
|
|
|
}
|
|
|
|
public List<FileUploaded> getListRemainingFileUploaded() {
|
|
|
|
Collection<FileUploaded> collFileUplaoded = mapPositionalFU.values();
|
|
|
|
if (collFileUplaoded != null)
|
|
return new ArrayList<FileUploaded>(collFileUplaoded);
|
|
|
|
return null;
|
|
}
|
|
|
|
}
|