001package gwt.material.design.addins.client.fileuploader;
002
003/*
004 * #%L
005 * GwtMaterial
006 * %%
007 * Copyright (C) 2015 - 2016 GwtMaterialDesign
008 * %%
009 * Licensed under the Apache License, Version 2.0 (the "License");
010 * you may not use this file except in compliance with the License.
011 * You may obtain a copy of the License at
012 * 
013 *      http://www.apache.org/licenses/LICENSE-2.0
014 * 
015 * Unless required by applicable law or agreed to in writing, software
016 * distributed under the License is distributed on an "AS IS" BASIS,
017 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
018 * See the License for the specific language governing permissions and
019 * limitations under the License.
020 * #L%
021 */
022
023
024import com.google.gwt.dom.client.Document;
025import com.google.gwt.dom.client.Element;
026import com.google.gwt.dom.client.Style;
027import com.google.gwt.event.dom.client.ClickEvent;
028import com.google.gwt.event.dom.client.ClickHandler;
029import gwt.material.design.client.base.MaterialWidget;
030import gwt.material.design.client.constants.IconType;
031import gwt.material.design.client.constants.WavesType;
032import gwt.material.design.client.ui.MaterialIcon;
033import gwt.material.design.client.ui.html.Span;
034
035public class MaterialUploadHeader extends MaterialWidget {
036
037    private Span uploadedFiles = new Span();
038    private MaterialIcon iconClose = new MaterialIcon(IconType.CLOSE);
039    private MaterialIcon iconColaps = new MaterialIcon(IconType.KEYBOARD_ARROW_DOWN);
040    private MaterialUploadPreview preview;
041
042    public MaterialUploadHeader() {
043        super(Document.get().createDivElement(), "header");
044        iconClose.setId("upload-close");
045        iconClose.setCircle(true);
046        iconClose.setWaves(WavesType.DEFAULT);
047        iconClose.addClickHandler(new ClickHandler() {
048            @Override
049            public void onClick(ClickEvent clickEvent) {
050                preview.setVisibility(Style.Visibility.HIDDEN);
051            }
052        });
053        iconColaps.setId("upload-colaps");
054        iconColaps.setCircle(true);
055        iconColaps.setWaves(WavesType.DEFAULT);
056        uploadedFiles.setId("no-uploaded-files");
057        add(uploadedFiles);
058        add(iconClose);
059        add(iconColaps);
060    }
061
062    @Override
063    protected void onLoad() {
064        super.onLoad();
065        initUploadHeader(iconClose.getElement(), iconColaps.getElement(), getPreview().getElement(), getPreview().getUploadCollection().getElement());
066    }
067
068    protected native void initUploadHeader(Element iconClose, Element iconColaps, Element preview, Element collection) /*-{
069        var toggle = true;
070
071        $wnd.jQuery(iconColaps).click(function() {
072            if(toggle){
073                $wnd.jQuery(collection).css('visibility', 'hidden');
074                $wnd.jQuery(iconColaps).html("keyboard_arrow_up");
075                $wnd.jQuery(collection).css('height', '0px');
076                toggle = false;
077            }else{
078                $wnd.jQuery(collection).css('visibility', 'visible');
079                $wnd.jQuery(iconColaps).html("keyboard_arrow_down");
080                $wnd.jQuery(collection).css('height', 'initial');
081                toggle = true;
082            }
083        });
084    }-*/;
085
086    public MaterialUploadPreview getPreview() {
087        return preview;
088    }
089
090    public void setPreview(MaterialUploadPreview preview) {
091        this.preview = preview;
092    }
093
094    public Span getUploadedFiles() {
095        return uploadedFiles;
096    }
097}