001/* 002 * #%L 003 * GwtMaterial 004 * %% 005 * Copyright (C) 2015 - 2017 GwtMaterialDesign 006 * %% 007 * Licensed under the Apache License, Version 2.0 (the "License"); 008 * you may not use this file except in compliance with the License. 009 * You may obtain a copy of the License at 010 * 011 * http://www.apache.org/licenses/LICENSE-2.0 012 * 013 * Unless required by applicable law or agreed to in writing, software 014 * distributed under the License is distributed on an "AS IS" BASIS, 015 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 016 * See the License for the specific language governing permissions and 017 * limitations under the License. 018 * #L% 019 */ 020package gwt.material.design.addins.client.fileuploader; 021 022import com.google.gwt.dom.client.Document; 023import com.google.gwt.dom.client.Style; 024import gwt.material.design.addins.client.base.constants.AddinsCssName; 025import gwt.material.design.client.base.MaterialWidget; 026import gwt.material.design.client.constants.*; 027import gwt.material.design.client.ui.*; 028import gwt.material.design.client.ui.html.Span; 029 030public class MaterialUploadCollection extends MaterialCollection { 031 032 private MaterialCollectionItem item = new MaterialCollectionItem(); 033 private MaterialWidget dropInfo = new MaterialWidget(Document.get().createDivElement()); 034 private MaterialWidget nameWrapper = new MaterialWidget(Document.get().createDivElement()); 035 private MaterialWidget errorWrapper = new MaterialWidget(Document.get().createDivElement()); 036 private Span name = new Span(); 037 private Span size = new Span(); 038 private Span errorMessage = new Span(); 039 private MaterialCollectionSecondary secondaryAction = new MaterialCollectionSecondary(); 040 private MaterialButton btnClear = new MaterialButton(ButtonType.FLOATING); 041 private MaterialIcon previewIcon = new MaterialIcon(IconType.INSERT_DRIVE_FILE); 042 043 private MaterialProgress progress = new MaterialProgress(); 044 045 public MaterialUploadCollection() { 046 // Element property 047 setStyleName(AddinsCssName.PREVIEWS); 048 addStyleName(CssName.CARD); 049 050 // Collection Item property that contain the upload info, progress bar and action panel 051 item.setId(AddinsCssName.ZDROP_TEMPLATE); 052 item.addStyleName(AddinsCssName.CLEARHACK + " " + CssName.VALIGN_WRAPPER + " " + AddinsCssName.ITEM_TEMPLATE); 053 add(item); 054 055 // Upload Information 056 dropInfo.addStyleName(CssName.LEFT + " " + AddinsCssName.PV + " " + AddinsCssName.ZDROP_INFO); 057 dropInfo.setDataAttribute("data-dz-thumbnail", ""); 058 item.add(dropInfo); 059 060 // Upload Information - Upload Name info 061 nameWrapper.add(name); 062 name.setTruncate(true); 063 name.setWidth("200px"); 064 name.setDataAttribute("data-dz-name", ""); 065 nameWrapper.add(size); 066 size.setDataAttribute("data-dz-size", ""); 067 dropInfo.add(nameWrapper); 068 069 previewIcon.setFloat(Style.Float.LEFT); 070 previewIcon.addStyleName(AddinsCssName.PREVIEW_ICON); 071 dropInfo.add(previewIcon); 072 073 // Upload Information - Progress bar indication of upload queues 074 progress.setType(ProgressType.DETERMINATE); 075 progress.getWidget(0).getElement().setAttribute("data-dz-uploadprogress", ""); 076 progress.setPercent(0); 077 dropInfo.add(progress); 078 079 // Upload Information - Error message 080 errorWrapper.setStyleName(AddinsCssName.DZ_ERROR_MESSAGE); 081 errorMessage.setDataAttribute("data-dz-errormessage", ""); 082 errorMessage.setId(AddinsCssName.ERROR_MESSAGE); 083 errorWrapper.add(errorMessage); 084 dropInfo.add(errorWrapper); 085 086 // Secondary Action Panel 087 btnClear.setId(AddinsCssName.DZ_REMOVE); 088 btnClear.setBackgroundColor(Color.TRANSPARENT); 089 btnClear.setShadow(0); 090 btnClear.setCircle(true); 091 btnClear.setTextColor(Color.WHITE); 092 btnClear.addStyleName(AddinsCssName.PH); 093 btnClear.setIconType(IconType.CLEAR); 094 btnClear.setDataAttribute("data-dz-remove", ""); 095 secondaryAction.add(btnClear); 096 item.add(secondaryAction); 097 } 098 099 public MaterialCollectionItem getItem() { 100 return item; 101 } 102 103 public MaterialWidget getDropInfo() { 104 return dropInfo; 105 } 106 107 public MaterialWidget getNameWrapper() { 108 return nameWrapper; 109 } 110 111 public MaterialWidget getErrorWrapper() { 112 return errorWrapper; 113 } 114 115 public Span getName() { 116 return name; 117 } 118 119 public Span getSize() { 120 return size; 121 } 122 123 public Span getErrorMessage() { 124 return errorMessage; 125 } 126 127 public MaterialCollectionSecondary getSecondaryAction() { 128 return secondaryAction; 129 } 130 131 public MaterialButton getBtnClear() { 132 return btnClear; 133 } 134 135 public MaterialIcon getPreviewIcon() { 136 return previewIcon; 137 } 138 139 public MaterialProgress getProgress() { 140 return progress; 141 } 142}