org.jbpm.console.ng.dm.client.document.newdocument.NewDocumentViewImpl.java Source code

Java tutorial

Introduction

Here is the source code for org.jbpm.console.ng.dm.client.document.newdocument.NewDocumentViewImpl.java

Source

/*
 * Copyright 2013 JBoss by Red Hat.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.jbpm.console.ng.dm.client.document.newdocument;

import javax.enterprise.context.Dependent;
import javax.enterprise.event.Event;
import javax.inject.Inject;

import org.gwtbootstrap3.client.ui.Button;
import org.gwtbootstrap3.client.ui.Form;
import org.gwtbootstrap3.client.ui.Label;
import org.gwtbootstrap3.client.ui.ListBox;
import org.gwtbootstrap3.client.ui.TextBox;
import org.jboss.errai.ui.shared.api.annotations.DataField;
import org.jboss.errai.ui.shared.api.annotations.Templated;
import org.jbpm.console.ng.dm.client.i18n.Constants;
import org.uberfire.ext.widgets.common.client.common.BusyPopup;
import org.uberfire.ext.widgets.common.client.common.FileUpload;
import org.uberfire.ext.widgets.common.client.common.popups.errors.ErrorPopup;
import org.uberfire.workbench.events.NotificationEvent;

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.user.client.Window;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.Hidden;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.VerticalPanel;

@Dependent
@Templated(value = "NewDocumentViewImpl.html")
public class NewDocumentViewImpl extends Composite implements NewDocumentPresenter.NewDocumentView {

    private Constants constants = GWT.create(Constants.class);

    public TextBox documentNameText = new TextBox();

    public Label documentNameLabel = new Label();

    public TextBox documentFolderText = new TextBox();
    public Hidden hiddenDocumentFolderText = new Hidden();

    public Label documentFolderLabel = new Label();

    public Label newDocTypeLabel = new Label();

    public ListBox newDocType = new ListBox();

    public FileUpload fileUpload = new FileUpload();

    public Label fileUploadLabel = new Label();

    @Inject
    @DataField
    public Button createButton;

    @Inject
    @DataField
    public Form formUpload;

    @Inject
    Event<NotificationEvent> notificationEvents;

    private NewDocumentPresenter presenter;

    @Override
    public void init(NewDocumentPresenter p) {
        this.presenter = p;

        createButton.setText("Create");
        createButton.addClickHandler(new ClickHandler() {

            @Override
            public void onClick(ClickEvent event) {
                BusyPopup.showMessage("Loading...");
                formUpload.submit();
                // String type = newDocType.getValue();
                // if ("Text File".equals(type)) {
                // DocumentSummary doc = new DocumentSummary(documentNameText
                // .getText() + ".txt", null, documentFolderText.getValue());
                //
                // doc.setContent("test".getBytes());
                // presenter.createDocument(doc);
                // }
            }
        });

        documentNameText.setName("documentName");
        hiddenDocumentFolderText.setName("documentFolder");
        fileUpload.setName("file");
        newDocType.setName("documentType");

        newDocTypeLabel.setText("File Type");
        newDocTypeLabel.setStyleName("control-label");
        documentNameLabel.setText("Document Name");
        documentNameLabel.setStyleName("control-label");
        documentFolderLabel.setText("Document Folder");
        documentFolderLabel.setStyleName("control-label");
        fileUploadLabel.setText("Upload");
        fileUploadLabel.setStyleName("control-label");
        newDocType.addItem("Text File");
        newDocType.addItem("PDF");

        formUpload.setAction(getWebContext() + "/documentview/");
        VerticalPanel allFields = new VerticalPanel();

        //      HorizontalPanel line = new HorizontalPanel();
        //      line.setHorizontalAlignment(line.ALIGN_CENTER);
        //      line.add(documentNameLabel);
        //      line.add(documentNameText);
        //      allFields.add(line);

        HorizontalPanel line = new HorizontalPanel();
        line.setHorizontalAlignment(line.ALIGN_CENTER);
        line.add(documentFolderLabel);
        line.add(documentFolderText);

        line.add(hiddenDocumentFolderText);
        documentFolderText.setName("folder");
        allFields.add(line);

        //      line = new HorizontalPanel();
        //      line.setHorizontalAlignment(line.ALIGN_CENTER);
        //      line.add(newDocTypeLabel);
        //      line.add(newDocType);
        //      allFields.add(line);

        line = new HorizontalPanel();
        line.setHorizontalAlignment(line.ALIGN_CENTER);
        line.add(fileUploadLabel);
        line.add(fileUpload);
        fileUpload.setName("file");
        allFields.add(line);

        formUpload.add(allFields);

        formUpload.addSubmitHandler(new Form.SubmitHandler() {
            @Override
            public void onSubmit(final Form.SubmitEvent event) {
                String fileName = fileUpload.getFilename();
                if (fileName == null || "".equals(fileName)) {
                    BusyPopup.close();
                    Window.alert("Please select a file!");
                    event.cancel();
                }
            }
        });

        formUpload.addSubmitCompleteHandler(new Form.SubmitCompleteHandler() {
            public void onSubmitComplete(final Form.SubmitCompleteEvent event) {
                if ("OK".equalsIgnoreCase(event.getResults())) {
                    BusyPopup.close();
                    Window.alert("Great!");

                    fileUpload.getElement().setPropertyString("value", "");
                    hide();
                } else if ("NO VALID POM".equalsIgnoreCase(event.getResults())) {
                    BusyPopup.close();
                } else {
                    BusyPopup.close();
                    ErrorPopup.showMessage("Something wrong: " + event.getResults());
                    hide();
                }
            }
        });

    }

    @Override
    public void displayNotification(String notification) {
        notificationEvents.fire(new NotificationEvent(notification));
    }

    private String getWebContext() {
        String context = GWT.getModuleBaseURL().replace(GWT.getModuleName() + "/", "");
        if (context.endsWith("/")) {
            context = context.substring(0, context.length() - 1);
        }
        return context;
    }

    public void hide() {
        presenter.close();
    }

    @Override
    public void setFolder(String folder) {
        documentFolderText.setText(folder);
        documentFolderText.setEnabled(false);
        hiddenDocumentFolderText.setValue(folder);
    }
    // @Override
    // public Focusable getJobNameText() {
    // // TODO Auto-generated method stub
    // return null;
    // }

}