Example usage for com.google.gwt.dom.client InputElement setName

List of usage examples for com.google.gwt.dom.client InputElement setName

Introduction

In this page you can find the example usage for com.google.gwt.dom.client InputElement setName.

Prototype

public void setName(String name) 

Source Link

Document

Form control or object name when submitted with a form.

Usage

From source file:com.alkacon.geranium.client.util.DomUtil.java

License:Open Source License

/**
 * Creates a hidden input field with the given name and value.<p>
 * //from   w ww  . jav  a  2  s  . co m
 * @param name the field name
 * @param value the field value
 * @return the input element
 */
private static InputElement createHiddenInput(String name, String value) {

    InputElement input = Document.get().createHiddenInputElement();
    input.setName(name);
    input.setValue(value);
    return input;
}

From source file:com.cgxlib.xq.client.plugins.widgets.TextBoxBaseWidgetFactory.java

License:Apache License

protected void copyAttributes(Element src, Element dest) {
    InputElement source = src.cast();/*from  w w w.j  a  v a2  s  . c  om*/
    InputElement destination = dest.cast();

    destination.setAccessKey(source.getAccessKey());
    destination.setDefaultValue(source.getDefaultValue());
    destination.setDisabled(source.isDisabled());
    if (source.getMaxLength() > 0)
        destination.setMaxLength(source.getMaxLength());
    destination.setReadOnly(source.isReadOnly());
    destination.setSize(source.getSize());
    destination.setName(source.getName());
    destination.setValue(source.getValue());
}

From source file:gwtquery.plugins.enhance.client.gwt.CheckBoxWidgetFactory.java

License:Apache License

protected void copyAttributes(InputElement source, InputElement destination) {

    destination.setAccessKey(source.getAccessKey());
    destination.setDisabled(source.isDisabled());
    destination.setSize(source.getSize());
    destination.setName(source.getName());
    destination.setValue(source.getValue());
}

From source file:gwtquery.plugins.enhance.client.gwt.TextBoxBaseWidgetFactory.java

License:Apache License

protected void copyAttributes(Element src, Element dest) {
    InputElement source = src.cast();//from ww  w .ja  v  a 2s. c o  m
    InputElement destination = dest.cast();

    destination.setAccessKey(source.getAccessKey());
    destination.setDefaultValue(source.getDefaultValue());
    destination.setDisabled(source.isDisabled());
    if (source.getMaxLength() > 0)
        destination.setMaxLength(source.getMaxLength());
    destination.setReadOnly(source.isReadOnly());
    destination.setSize(source.getSize());
    destination.setName(source.getName());
    destination.setValue(source.getValue());

}

From source file:org.opencms.gwt.client.ui.input.upload.impl.CmsUploaderDefault.java

License:Open Source License

/**
 * Creates a form to submit the upload files.<p>
 *
 * @param uploadUri the upload URI//from w w  w. ja  v a 2  s  .  com
 * @param targetFolder the target folder
 * @param isRootPath if the target folder is given as a root path
 * @param filesToUpload the files to upload
 * @param filesToUnzip the files to unzip
 * @return the created form panel
 */
private FormPanel createForm(String uploadUri, String targetFolder, boolean isRootPath,
        List<CmsFileInfo> filesToUpload, List<String> filesToUnzip) {

    // create a form using the POST method and multipart MIME encoding
    FormPanel form = new FormPanel();
    form.setAction(uploadUri);
    form.setEncoding(FormPanel.ENCODING_MULTIPART);
    form.setMethod(FormPanel.METHOD_POST);
    // create a panel that contains the file input fields and the target folder
    FlowPanel inputFieldsPanel = new FlowPanel();
    int count = 0;
    for (CmsFileInfo info : filesToUpload) {
        InputElement input = info.getInputElement();
        String fieldName = "file_" + count++;
        input.setName(fieldName);
        inputFieldsPanel.getElement().appendChild(input);
        addHiddenField(inputFieldsPanel, fieldName + I_CmsUploadConstants.UPLOAD_FILENAME_ENCODED_SUFFIX,
                URL.encode(info.getOverrideFileName()));
    }
    for (String filename : filesToUnzip) {
        addHiddenField(inputFieldsPanel, I_CmsUploadConstants.UPLOAD_UNZIP_FILES_FIELD_NAME,
                URL.encode(filename));
    }
    addHiddenField(inputFieldsPanel, I_CmsUploadConstants.UPLOAD_TARGET_FOLDER_FIELD_NAME, targetFolder);
    addHiddenField(inputFieldsPanel, I_CmsUploadConstants.UPLOAD_IS_ROOT_PATH_FIELD_NAME, "" + isRootPath);
    form.setWidget(inputFieldsPanel);
    return form;
}

From source file:org.opencms.ui.client.login.CmsLoginTargetOpener.java

License:Open Source License

/**
 * Opens the login target for the given user name and password.<p>
 *
 * @param target the login target//from  w  w w .j  ava  2 s. c o  m
 * @param user the user
 * @param password the password
 */
public void openTarget(final String target, final String user, final String password) {

    // Post a hidden form with user name and password fields,
    // to hopefully trigger the browser's password manager
    final FormPanel form = new FormPanel("_self");
    Document doc = Document.get();
    InputElement userField = doc.createTextInputElement();
    userField.setName("ocUname");
    InputElement passwordField = doc.createPasswordInputElement();
    passwordField.setName("ocPword");
    userField.setValue(user);
    passwordField.setValue(password);
    form.getElement().appendChild(userField);
    form.getElement().appendChild(passwordField);
    form.setMethod("post");
    form.setAction(target);
    form.setVisible(false);
    add(form);
    form.submit();
}

From source file:org.opencms.ui.client.login.CmsLoginTargetOpenerConnector.java

License:Open Source License

/**
 * @see com.vaadin.client.extensions.AbstractExtensionConnector#extend(com.vaadin.client.ServerConnector)
 *//* ww w  .  j a  v a  2  s  . c o m*/
@Override
protected void extend(ServerConnector extendedComponent) {

    registerRpc(I_CmsLoginTargetRpc.class, new I_CmsLoginTargetRpc() {

        private static final long serialVersionUID = 1L;

        public void openTarget(String target, boolean isPublicPC) {

            if (isPublicPC) {
                // in this case we do not want to trigger the browsers password manager, just call the login target
                Window.Location.assign(target);
            } else {
                // Post a hidden form with user name and password fields,
                // to hopefully trigger the browser's password manager
                Document doc = Document.get();
                FormElement formEl = (FormElement) doc.getElementById("opencms-login-form");
                CmsDebugLog.consoleLog("form target = " + formEl.getTarget());

                // make sure user name and password are children of the form
                Element user = doc.getElementById("hidden-username");
                Element password = doc.getElementById("hidden-password");

                if ((user != null) && !formEl.isOrHasChild(user)) {
                    formEl.appendChild(user);
                }
                if ((password != null) && !formEl.isOrHasChild(password)) {
                    formEl.appendChild(password);
                }

                InputElement requestedResourceField = doc.createTextInputElement();
                requestedResourceField.setName(CmsGwtConstants.PARAM_LOGIN_REDIRECT);
                requestedResourceField.setValue(target);

                formEl.appendChild(requestedResourceField);
                formEl.submit();
            }
        }
    });
}

From source file:org.sigmah.client.page.orgunit.reports.OrgUnitReportsView.java

License:Open Source License

public void setReport(final ProjectReportDTO report) {
    mainPanel.removeAll();// www  . j  a v a2s  .  co m
    // currentReport = report;

    if (autoSaveTimer != null) {
        autoSaveTimer.cancel();
        autoSaveTimer = null;
    }

    if (report == null)
        return;

    // Preparing the view for the new report
    textAreas.clear();
    oldContents.clear();
    keyQuestionState.clear();

    // Title bar
    final ContentPanel reportPanel = new ContentPanel(new FitLayout());
    reportPanel.setScrollMode(Scroll.AUTOY);
    reportPanel.setHeading(report.getName());

    final ToolButton closeButton = new ToolButton("x-tool-close");
    closeButton.addListener(Events.Select, new Listener<BaseEvent>() {

        @Override
        public void handleEvent(BaseEvent be) {
            final OrgUnitState state = new OrgUnitState(currentState.getOrgUnitId());
            state.setCurrentSection(currentState.getCurrentSection());
            state.setArgument("-1");

            eventBus.fireEvent(new NavigationEvent(NavigationHandler.NavigationRequested, state, null));
        }
    });
    reportPanel.getHeader().addTool(closeButton);

    // Report container
    final FlowPanel flowPanel = new FlowPanel();

    // Report
    final FoldPanel root = new FoldPanel();
    root.addStyleName("project-report");

    final List<ProjectReportSectionDTO> sections = report.getSections();

    final StringBuilder prefix = new StringBuilder();

    for (int index = 0; index < sections.size(); index++) {
        final ProjectReportSectionDTO section = sections.get(index);

        prefix.append(index + 1).append('.');
        displaySection(section, root, prefix, 1, report.isDraft());

        prefix.setLength(0);
    }

    // Toolbar
    final ToolBar toolBar = new ToolBar();

    final IconImageBundle icons = GWT.create(IconImageBundle.class);

    if (report.isDraft()) {
        // Draft banner
        final HorizontalPanel header = new HorizontalPanel();
        header.addStyleName("project-report-draft");

        // The "Personal Draft"
        final Label personalDraft = new Label(I18N.MESSAGES.personalDraft());
        personalDraft.addStyleName("project-report-personalDraft");

        final DateTimeFormat dateFormat = DateTimeFormat.getMediumDateFormat();
        final DateTimeFormat timeFormat = DateTimeFormat.getMediumTimeFormat();

        // The label showing the last changed time
        final Label draftLastChangedTime = new Label(I18N.MESSAGES.reportDraftLastChanged(
                dateFormat.format(report.getLastEditDate()), timeFormat.format(report.getLastEditDate())));

        // Add the two labels
        header.add(personalDraft);
        header.add(draftLastChangedTime);

        final Button cancelButton = new Button(I18N.CONSTANTS.delete());
        final Button sendButton = new Button(I18N.CONSTANTS.sendReportDraft());

        cancelButton.addSelectionListener(new SelectionListener<ButtonEvent>() {

            @Override
            public void componentSelected(ButtonEvent ce) {
                final RemoveProjectReportDraft removeDraft = new RemoveProjectReportDraft(
                        report.getVersionId());
                final GetProjectReport getReport = new GetProjectReport(report.getId());

                final AsyncCallback<VoidResult> callback = AsyncCallbacks.emptyCallback();
                dispatcher.execute(removeDraft, null, callback);
                dispatcher.execute(getReport, null, new AsyncCallback<ProjectReportDTO>() {

                    @Override
                    public void onFailure(Throwable caught) {
                        MessageBox.alert(I18N.CONSTANTS.projectTabReports(), I18N.CONSTANTS.reportEditError(),
                                null);
                    }

                    @Override
                    public void onSuccess(ProjectReportDTO result) {
                        Notification.show(I18N.CONSTANTS.projectTabReports(),
                                I18N.CONSTANTS.reportEditCancelSuccess());
                        setReport(result);
                    }

                });
            }
        });

        sendButton.addSelectionListener(new SelectionListener<ButtonEvent>() {

            @Override
            public void componentSelected(ButtonEvent ce) {
                final HashMap<String, Object> changes = new HashMap<String, Object>();
                changes.put("currentPhase", phaseName);

                for (final Map.Entry<Integer, RichTextArea> entry : textAreas.entrySet())
                    changes.put(entry.getKey().toString(), entry.getValue().getHTML());

                final UpdateEntity updateEntity = new UpdateEntity("ProjectReport", report.getVersionId(),
                        changes);
                final PromoteProjectReportDraft promoteDraft = new PromoteProjectReportDraft(report.getId(),
                        report.getVersionId());

                final AsyncCallback<VoidResult> callback = AsyncCallbacks.emptyCallback();
                dispatcher.execute(updateEntity, null, callback);
                dispatcher.execute(promoteDraft, null, new AsyncCallback<ProjectReportDTO>() {

                    @Override
                    public void onFailure(Throwable caught) {
                        MessageBox.alert(I18N.CONSTANTS.projectTabReports(), I18N.CONSTANTS.reportSaveError(),
                                null);
                    }

                    @Override
                    public void onSuccess(ProjectReportDTO result) {
                        Notification.show(I18N.CONSTANTS.projectTabReports(),
                                I18N.CONSTANTS.reportSaveSuccess());
                        setReport(result);
                    }

                });
            }
        });

        final HorizontalPanel buttons = new HorizontalPanel();
        buttons.setSpacing(5);
        buttons.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
        buttons.addStyleName("project-report-draft-button");
        buttons.add(cancelButton);
        buttons.add(sendButton);

        header.add(buttons);
        header.setCellHorizontalAlignment(buttons, HasHorizontalAlignment.ALIGN_RIGHT);

        flowPanel.add(header);

        // Save action
        final Listener<BaseEvent> saveListener = new Listener<BaseEvent>() {

            @Override
            public void handleEvent(BaseEvent be) {
                final HashMap<String, String> changes = new HashMap<String, String>();

                changes.put("currentPhase", phaseName);

                for (final Map.Entry<Integer, RichTextArea> entry : textAreas.entrySet())
                    changes.put(entry.getKey().toString(), entry.getValue().getHTML());

                final UpdateEntity updateEntity = new UpdateEntity("ProjectReport", report.getVersionId(),
                        (Map<String, Object>) (Map<String, ?>) changes);
                dispatcher.execute(updateEntity, null, new AsyncCallback<VoidResult>() {

                    @Override
                    public void onFailure(Throwable caught) {
                        MessageBox.alert(I18N.CONSTANTS.projectTabReports(), I18N.CONSTANTS.reportSaveError(),
                                null);
                    }

                    @Override
                    public void onSuccess(VoidResult result) {
                        Notification.show(I18N.CONSTANTS.projectTabReports(),
                                I18N.CONSTANTS.reportSaveSuccess());

                        final Date now = new Date();
                        header.clear();
                        draftLastChangedTime.setText(I18N.MESSAGES
                                .reportDraftLastChanged(dateFormat.format(now), timeFormat.format(now)));
                        personalDraft.setText(I18N.MESSAGES.personalDraft());
                        header.add(personalDraft);
                        header.add(draftLastChangedTime);
                        header.add(buttons);

                        boolean found = false;
                        for (int index = 0; !found && index < store.getCount(); index++) {
                            final ReportReference reference = store.getAt(index);

                            if (reference.getId().equals(report.getId())) {
                                store.remove(reference);

                                reference.setEditorName(authentication.getUserShortName());
                                reference.setPhaseName(phaseName);
                                reference.setLastEditDate(new Date());

                                store.add(reference);

                                found = true;
                            }
                        }

                        updateChanges();

                        autoSaveTimer.cancel();
                        autoSaveTimer.schedule(AUTO_SAVE_PERIOD);
                    }
                });
            }
        };

        // Save button
        final Button saveButton = new Button(I18N.CONSTANTS.save(), icons.save());
        saveButton.addListener(Events.Select, saveListener);

        toolBar.add(saveButton);
        toolBar.add(new SeparatorToolItem());

        // Auto save timer
        autoSaveTimer = new Timer() {

            @Override
            public void run() {
                saveListener.handleEvent(null);
            }
        };
        autoSaveTimer.schedule(AUTO_SAVE_PERIOD);

    } else {
        final Button editReportButton = new Button(I18N.CONSTANTS.edit(), icons.editPage());

        if (ProfileUtils.isGranted(authentication, GlobalPermissionEnum.MANAGE_UNIT)) {
            toolBar.add(editReportButton);
        }

        editReportButton.addSelectionListener(new SelectionListener<ButtonEvent>() {

            @Override
            public void componentSelected(ButtonEvent ce) {
                // Draft creation
                final HashMap<String, Object> properties = new HashMap<String, Object>();
                properties.put("reportId", report.getId());
                properties.put("phaseName", phaseName);
                final CreateEntity createDraft = new CreateEntity("ProjectReportDraft", properties);

                // Retrieving the new draft
                final GetProjectReport getReportDraft = new GetProjectReport(report.getId());

                final AsyncCallback<CreateResult> callback = AsyncCallbacks.emptyCallback();
                dispatcher.execute(createDraft, null, callback);
                dispatcher.execute(getReportDraft, null, new AsyncCallback<ProjectReportDTO>() {

                    @Override
                    public void onFailure(Throwable caught) {
                        MessageBox.alert(I18N.CONSTANTS.projectTabReports(), I18N.CONSTANTS.reportEditError(),
                                null);
                    }

                    @Override
                    public void onSuccess(ProjectReportDTO result) {
                        setReport(result);
                    }

                });
            }
        });

        final Button exportReportButton = new Button(I18N.CONSTANTS.exportToWord(), icons.msword());
        toolBar.add(exportReportButton);

        exportReportButton.addSelectionListener(new SelectionListener<ButtonEvent>() {

            @Override
            public void componentSelected(ButtonEvent ce) {
                final FormElement form = FormElement.as(DOM.createForm());
                form.setAction(GWT.getModuleBaseURL() + "export");
                form.setTarget("_downloadFrame");
                form.setMethod("POST");

                final InputElement typeField = InputElement.as(DOM.createInputText());
                typeField.setAttribute("type", "hidden");
                typeField.setName(ExportUtils.PARAM_EXPORT_TYPE);
                typeField.setValue(ExportUtils.ExportType.PROJECT_REPORT.toString());
                form.appendChild(typeField);

                final InputElement formatField = InputElement.as(DOM.createInputText());
                formatField.setAttribute("type", "hidden");
                formatField.setName(ExportUtils.PARAM_EXPORT_FORMAT);
                formatField.setValue(ExportUtils.ExportFormat.MS_WORD.name());
                form.appendChild(formatField);

                final InputElement idField = InputElement.as(DOM.createInputText());
                idField.setAttribute("type", "hidden");
                idField.setName(ExportUtils.PARAM_EXPORT_PROJECT_ID);
                idField.setAttribute("value", report.getId().toString());
                form.appendChild(idField);

                RootPanel.getBodyElement().appendChild(form);

                form.submit();
                form.removeFromParent();
            }
        });

        toolBar.add(new SeparatorToolItem());
    }

    // Key question info
    final Label keyQuestionLabel = keyQuestionState.getLabel();
    toolBar.add(keyQuestionLabel);
    toolBar.add(new SeparatorToolItem());

    // Overview mode
    final Button foldButton = new Button(I18N.CONSTANTS.reportOverviewMode());
    foldButton.addListener(Events.Select, new Listener<BaseEvent>() {

        @Override
        public void handleEvent(BaseEvent be) {
            root.expand(true);
            root.fold(true);
        }
    });
    // Expanded mode
    final Button expandButton = new Button(I18N.CONSTANTS.reportFullMode());
    expandButton.addListener(Events.Select, new Listener<BaseEvent>() {

        @Override
        public void handleEvent(BaseEvent be) {
            root.expand(true);
        }
    });

    toolBar.add(foldButton);
    toolBar.add(expandButton);

    if (report.isDraft()) {
        toolBar.add(new SeparatorToolItem());
        createRichTextToolbar(toolBar);
    }

    flowPanel.add(root);
    reportPanel.add(flowPanel);
    reportPanel.setTopComponent(toolBar);

    // Display
    mainPanel.add(reportPanel, new BorderLayoutData(LayoutRegion.CENTER));
    mainPanel.layout();

    mainPanel.unmask();
}

From source file:org.sigmah.client.page.project.reports.ProjectReportsView.java

License:Open Source License

public void setReport(final ProjectReportDTO report) {
    mainPanel.removeAll();/*from   w  w w.jav a  2 s  .c  o  m*/
    // currentReport = report;

    if (autoSaveTimer != null) {
        autoSaveTimer.cancel();
        autoSaveTimer = null;
    }

    if (report == null) {
        currentReportId = -1;
        return;
    }

    currentReportId = report.getId();

    // Preparing the view for the new report
    textAreas.clear();
    oldContents.clear();
    keyQuestionState.clear();

    // Title bar
    final ContentPanel reportPanel = new ContentPanel(new FitLayout());
    reportPanel.setScrollMode(Scroll.AUTOY);
    reportPanel.setHeading(report.getName());

    final ToolButton closeButton = new ToolButton("x-tool-close");
    closeButton.addListener(Events.Select, new Listener<BaseEvent>() {

        @Override
        public void handleEvent(BaseEvent be) {
            final ProjectState state = new ProjectState(currentState.getProjectId());
            state.setCurrentSection(currentState.getCurrentSection());
            state.setArgument("-1");

            eventBus.fireEvent(new NavigationEvent(NavigationHandler.NavigationRequested, state, null));
        }
    });
    reportPanel.getHeader().addTool(closeButton);

    // Report container
    final FlowPanel flowPanel = new FlowPanel();

    // Report
    final FoldPanel root = new FoldPanel();
    root.addStyleName("project-report");

    final List<ProjectReportSectionDTO> sections = report.getSections();

    final StringBuilder prefix = new StringBuilder();

    for (int index = 0; index < sections.size(); index++) {
        final ProjectReportSectionDTO section = sections.get(index);

        prefix.append(index + 1).append('.');
        displaySection(section, root, prefix, 1, report.isDraft());

        prefix.setLength(0);
    }

    // Toolbar
    final ToolBar toolBar = new ToolBar();

    final IconImageBundle icons = GWT.create(IconImageBundle.class);

    if (report.isDraft()) {
        // Draft banner
        final HorizontalPanel header = new HorizontalPanel();
        header.addStyleName("project-report-draft");

        // The "Personal Draft"
        final Label personalDraft = new Label(I18N.MESSAGES.personalDraft());
        personalDraft.addStyleName("project-report-personalDraft");

        final DateTimeFormat dateFormat = DateTimeFormat.getMediumDateFormat();
        final DateTimeFormat timeFormat = DateTimeFormat.getMediumTimeFormat();

        // The label showing the last changed time
        final Label draftLastChangedTime = new Label(I18N.MESSAGES.reportDraftLastChanged(
                dateFormat.format(report.getLastEditDate()), timeFormat.format(report.getLastEditDate())));

        // Add the two labels
        header.add(personalDraft);
        header.add(draftLastChangedTime);

        final Button cancelButton = new Button(I18N.CONSTANTS.delete());
        final Button sendButton = new Button(I18N.CONSTANTS.sendReportDraft());

        cancelButton.addSelectionListener(new SelectionListener<ButtonEvent>() {

            @Override
            public void componentSelected(ButtonEvent ce) {
                final RemoveProjectReportDraft removeDraft = new RemoveProjectReportDraft(
                        report.getVersionId());
                final GetProjectReport getReport = new GetProjectReport(report.getId());

                final AsyncCallback<VoidResult> callback = AsyncCallbacks.emptyCallback();
                dispatcher.execute(removeDraft, null, callback);
                dispatcher.execute(getReport, null, new AsyncCallback<ProjectReportDTO>() {

                    @Override
                    public void onFailure(Throwable caught) {
                        MessageBox.alert(I18N.CONSTANTS.projectTabReports(), I18N.CONSTANTS.reportEditError(),
                                null);
                    }

                    @Override
                    public void onSuccess(ProjectReportDTO result) {
                        Notification.show(I18N.CONSTANTS.projectTabReports(),
                                I18N.CONSTANTS.reportEditCancelSuccess());
                        setReport(result);
                    }

                });
            }
        });

        sendButton.addSelectionListener(new SelectionListener<ButtonEvent>() {

            @Override
            public void componentSelected(ButtonEvent ce) {
                final HashMap<String, Object> changes = new HashMap<String, Object>();
                changes.put("currentPhase", phaseName);

                for (final Map.Entry<Integer, RichTextArea> entry : textAreas.entrySet())
                    changes.put(entry.getKey().toString(), entry.getValue().getHTML());

                final UpdateEntity updateEntity = new UpdateEntity("ProjectReport", report.getVersionId(),
                        changes);
                final PromoteProjectReportDraft promoteDraft = new PromoteProjectReportDraft(report.getId(),
                        report.getVersionId());

                final AsyncCallback<VoidResult> callback = AsyncCallbacks.emptyCallback();
                dispatcher.execute(updateEntity, null, callback);
                dispatcher.execute(promoteDraft, null, new AsyncCallback<ProjectReportDTO>() {

                    @Override
                    public void onFailure(Throwable caught) {
                        MessageBox.alert(I18N.CONSTANTS.projectTabReports(), I18N.CONSTANTS.reportSaveError(),
                                null);
                    }

                    @Override
                    public void onSuccess(ProjectReportDTO result) {
                        Notification.show(I18N.CONSTANTS.projectTabReports(),
                                I18N.CONSTANTS.reportSaveSuccess());
                        setReport(result);
                    }

                });
            }
        });

        final HorizontalPanel buttons = new HorizontalPanel();
        buttons.setSpacing(5);
        buttons.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
        buttons.addStyleName("project-report-draft-button");
        buttons.add(cancelButton);
        buttons.add(sendButton);

        header.add(buttons);
        header.setCellHorizontalAlignment(buttons, HasHorizontalAlignment.ALIGN_RIGHT);

        flowPanel.add(header);

        // Save action
        final Listener<BaseEvent> saveListener = new Listener<BaseEvent>() {

            @Override
            public void handleEvent(BaseEvent be) {
                final HashMap<String, String> changes = new HashMap<String, String>();

                changes.put("currentPhase", phaseName);

                for (final Map.Entry<Integer, RichTextArea> entry : textAreas.entrySet())
                    changes.put(entry.getKey().toString(), entry.getValue().getHTML());

                final UpdateEntity updateEntity = new UpdateEntity("ProjectReport", report.getVersionId(),
                        (Map<String, Object>) (Map<String, ?>) changes);
                dispatcher.execute(updateEntity, null, new AsyncCallback<VoidResult>() {

                    @Override
                    public void onFailure(Throwable caught) {
                        MessageBox.alert(I18N.CONSTANTS.projectTabReports(), I18N.CONSTANTS.reportSaveError(),
                                null);
                    }

                    @Override
                    public void onSuccess(VoidResult result) {
                        Notification.show(I18N.CONSTANTS.projectTabReports(),
                                I18N.CONSTANTS.reportSaveSuccess());

                        final Date now = new Date();
                        header.clear();
                        draftLastChangedTime.setText(I18N.MESSAGES
                                .reportDraftLastChanged(dateFormat.format(now), timeFormat.format(now)));
                        personalDraft.setText(I18N.MESSAGES.personalDraft());
                        header.add(personalDraft);
                        header.add(draftLastChangedTime);
                        header.add(buttons);

                        boolean found = false;
                        for (int index = 0; !found && index < store.getCount(); index++) {
                            final ReportReference reference = store.getAt(index);

                            if (reference.getId().equals(report.getId())) {
                                store.remove(reference);

                                reference.setEditorName(authentication.getUserShortName());
                                reference.setPhaseName(phaseName);
                                reference.setLastEditDate(new Date());

                                store.add(reference);

                                found = true;
                            }
                        }

                        updateChanges();

                        autoSaveTimer.cancel();
                        autoSaveTimer.schedule(AUTO_SAVE_PERIOD);
                    }
                });
            }
        };

        // Save button
        final Button saveButton = new Button(I18N.CONSTANTS.save(), icons.save());
        saveButton.addListener(Events.Select, saveListener);

        toolBar.add(saveButton);
        toolBar.add(new SeparatorToolItem());

        // Auto save timer
        autoSaveTimer = new Timer() {

            @Override
            public void run() {
                saveListener.handleEvent(null);
            }
        };
        autoSaveTimer.schedule(AUTO_SAVE_PERIOD);

    } else {
        final Button editReportButton = new Button(I18N.CONSTANTS.edit(), icons.editPage());

        if (ProfileUtils.isGranted(authentication, GlobalPermissionEnum.EDIT_PROJECT)) {
            toolBar.add(editReportButton);
        }

        editReportButton.addSelectionListener(new SelectionListener<ButtonEvent>() {

            @Override
            public void componentSelected(ButtonEvent ce) {
                // Draft creation
                final HashMap<String, Object> properties = new HashMap<String, Object>();
                properties.put("reportId", report.getId());
                properties.put("phaseName", phaseName);
                final CreateEntity createDraft = new CreateEntity("ProjectReportDraft", properties);

                // Retrieving the new draft
                final GetProjectReport getReportDraft = new GetProjectReport(report.getId());

                final AsyncCallback<CreateResult> callback = AsyncCallbacks.emptyCallback();
                dispatcher.execute(createDraft, null, callback);
                dispatcher.execute(getReportDraft, null, new AsyncCallback<ProjectReportDTO>() {

                    @Override
                    public void onFailure(Throwable caught) {
                        MessageBox.alert(I18N.CONSTANTS.projectTabReports(), I18N.CONSTANTS.reportEditError(),
                                null);
                    }

                    @Override
                    public void onSuccess(ProjectReportDTO result) {
                        setReport(result);
                    }

                });
            }
        });

        final Button exportReportButton = new Button(I18N.CONSTANTS.exportToWord(), icons.msword());
        toolBar.add(exportReportButton);

        exportReportButton.addSelectionListener(new SelectionListener<ButtonEvent>() {

            @Override
            public void componentSelected(ButtonEvent ce) {
                final FormElement form = FormElement.as(DOM.createForm());
                form.setAction(GWT.getModuleBaseURL() + "export");
                form.setTarget("_downloadFrame");
                form.setMethod("POST");

                final InputElement typeField = InputElement.as(DOM.createInputText());
                typeField.setAttribute("type", "hidden");
                typeField.setName(ExportUtils.PARAM_EXPORT_TYPE);
                typeField.setValue(ExportUtils.ExportType.PROJECT_REPORT.toString());
                form.appendChild(typeField);

                final InputElement formatField = InputElement.as(DOM.createInputText());
                formatField.setAttribute("type", "hidden");
                formatField.setName(ExportUtils.PARAM_EXPORT_FORMAT);
                formatField.setValue(ExportUtils.ExportFormat.MS_WORD.name());
                form.appendChild(formatField);

                final InputElement idField = InputElement.as(DOM.createInputText());
                idField.setAttribute("type", "hidden");
                idField.setName(ExportUtils.PARAM_EXPORT_PROJECT_ID);
                idField.setAttribute("value", report.getId().toString());
                form.appendChild(idField);

                RootPanel.getBodyElement().appendChild(form);

                form.submit();
                form.removeFromParent();
            }
        });

        toolBar.add(new SeparatorToolItem());
    }

    // Key question info
    final Label keyQuestionLabel = keyQuestionState.getLabel();
    toolBar.add(keyQuestionLabel);
    toolBar.add(new SeparatorToolItem());

    // Overview mode
    final Button foldButton = new Button(I18N.CONSTANTS.reportOverviewMode());
    foldButton.addListener(Events.Select, new Listener<BaseEvent>() {

        @Override
        public void handleEvent(BaseEvent be) {
            root.expand(true);
            root.fold(true);
        }
    });
    // Expanded mode
    final Button expandButton = new Button(I18N.CONSTANTS.reportFullMode());
    expandButton.addListener(Events.Select, new Listener<BaseEvent>() {

        @Override
        public void handleEvent(BaseEvent be) {
            root.expand(true);
        }
    });

    toolBar.add(foldButton);
    toolBar.add(expandButton);

    if (report.isDraft()) {
        toolBar.add(new SeparatorToolItem());
        createRichTextToolbar(toolBar);
    }

    flowPanel.add(root);
    reportPanel.add(flowPanel);
    reportPanel.setTopComponent(toolBar);

    // Display
    mainPanel.add(reportPanel, new BorderLayoutData(LayoutRegion.CENTER));
    mainPanel.layout();

    mainPanel.unmask();
}

From source file:org.talend.mdm.webapp.base.client.util.PostDataUtil.java

License:Open Source License

public static void postData(String url, Map<String, String> param) {
    if (fe == null) {
        fe = Document.get().createFormElement();
        Document.get().getBody().appendChild(fe);
    }/*ww w .  ja  va2s.  co  m*/
    fe.setInnerHTML(""); //$NON-NLS-1$

    fe.setAction(url);
    fe.setMethod("post"); //$NON-NLS-1$

    if (param != null && param.size() > 0) {
        Iterator<String> iter = param.keySet().iterator();
        while (iter.hasNext()) {
            String key = iter.next();
            String value = param.get(key);
            InputElement inputData = Document.get().createHiddenInputElement();
            inputData.setName(key);
            inputData.setValue(value);
            fe.appendChild(inputData);
        }
    }

    fe.submit();

}