Skip to content

Commit ed754bf

Browse files
committed
FileUploader disabled feature is now updated.
Prevents from uploading files thru clicking the upload button / dragging and dropping files into the file upload area.
1 parent bf37a9c commit ed754bf

File tree

4 files changed

+50
-1
lines changed

4 files changed

+50
-1
lines changed

src/main/java/gwt/material/design/addins/client/fileuploader/MaterialFileUploader.java

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ public class MaterialFileUploader extends MaterialWidget implements HasFileUploa
8989
private Dropzone uploader;
9090
private JsFileUploaderOptions options;
9191
private MaterialUploadPreview uploadPreview = new MaterialUploadPreview();
92+
private boolean enabled = true;
9293

9394
public MaterialFileUploader() {
9495
super(Document.get().createDivElement(), AddinsCssName.FILEUPLOADER);
@@ -125,9 +126,35 @@ protected JsFileUploaderOptions getDefaultOptions() {
125126
protected void onLoad() {
126127
super.onLoad();
127128

129+
GWT.log(isEnabled() + "");
130+
//uploader.removeEventListeners();
128131
if (!isInitialize()) {
129132
initDropzone();
130133
setInitialize(true);
134+
applyEnabled();
135+
}
136+
}
137+
138+
@Override
139+
public void setEnabled(boolean enabled) {
140+
this.enabled = enabled;
141+
applyEnabled();
142+
}
143+
144+
@Override
145+
public boolean isEnabled() {
146+
return enabled;
147+
}
148+
149+
protected void applyEnabled() {
150+
if (uploader != null) {
151+
if (!enabled) {
152+
addStyleName(CssName.DISABLED);
153+
uploader.removeEventListeners();
154+
} else {
155+
removeStyleName(CssName.DISABLED);
156+
uploader.setupEventListeners();
157+
}
131158
}
132159
}
133160

src/main/java/gwt/material/design/addins/client/fileuploader/js/Dropzone.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,5 +40,9 @@ public Dropzone(Element e, JsFileUploaderOptions options) {
4040

4141
public native Dropzone on(String events, Functions.Func2<File, String> callback);
4242

43+
public native void removeEventListeners();
44+
45+
public native void setupEventListeners();
46+
4347
public native void removeAllFiles();
4448
}

src/main/resources/gwt/material/design/addins/client/fileuploader/resources/css/dropzone.css

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,22 @@
77
-moz-box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12);
88
-webkit-box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12);
99
}
10+
11+
.fileuploader.disabled .upload-label {
12+
background: #d8d8d7 !important;
13+
color: #9f9f9f !important;
14+
cursor: not-allowed;
15+
}
16+
17+
.fileuploader.disabled .upload-label i {
18+
color: #aaa !important;
19+
cursor: not-allowed !important;
20+
}
21+
22+
.fileuploader.disabled .preview-container {
23+
display: none;
24+
}
25+
1026
.fileuploader .upload-label{
1127
background: #2196F3;
1228
color: #fff;
@@ -60,6 +76,8 @@
6076
right: 0;
6177
margin-right: auto;
6278
margin-left: auto;
79+
transition: 0.8s all;
80+
-webkit-transition: 0.8s all;
6381
}
6482
/** Preview of collections of uploaded documents **/
6583
.preview-container{

src/main/resources/gwt/material/design/addins/client/fileuploader/resources/css/dropzone.min.css

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)