Example usage for org.apache.wicket.markup.html.form.upload FileUploadField getFileUpload

List of usage examples for org.apache.wicket.markup.html.form.upload FileUploadField getFileUpload

Introduction

In this page you can find the example usage for org.apache.wicket.markup.html.form.upload FileUploadField getFileUpload.

Prototype

public FileUpload getFileUpload() 

Source Link

Usage

From source file:com.chitek.ignition.drivers.generictcp.meta.config.ui.MessageConfigUI.java

License:Apache License

private void addComponents() {

    // Select the first message for initial display
    if (getConfig().messages.isEmpty()) {
        // No messages configured. Create a new message with id=1.
        getConfig().addMessageConfig(new MessageConfig(1));
    }//from   ww w.  ja  va2  s  . com

    currentMessage = getConfig().getMessageList().get(0);
    currentMessage.calcOffsets(getConfig().getMessageIdType().getByteSize());
    currentMessageId = currentMessage.getMessageId();

    // *******************************************************************************************
    // *** Form for XML import
    final FileUploadField uploadField = new FileUploadField("upload-field", new ListModel<FileUpload>());

    Form<?> uploadForm = new Form<Object>("upload-form") {
        @Override
        protected void onSubmit() {
            try {
                FileUpload upload = uploadField.getFileUpload();
                if (upload != null) {
                    handleOnUpload(upload.getInputStream());
                } else {
                    warn(new StringResourceModel("warn.noFileToUpload", this, null).getString());
                }
            } catch (Exception e) {
                this.error(new StringResourceModel("import.error", this, null).getString() + " Exception: "
                        + e.toString());
            }
        }
    };
    uploadForm.add(uploadField);

    SubmitLink importLink = new SubmitLink("import-link");
    uploadForm.add(importLink);

    add(uploadForm);

    // *******************************************************************************************
    // *** The message configuration
    currentMessageModel = new PropertyModel<MessageConfig>(this, "currentMessage");
    editForm = new Form<MessageConfig>("edit-form",
            new CompoundPropertyModel<MessageConfig>(currentMessageModel)) {
        @Override
        protected void onError() {
            // Validation error - reset the message dropdown to the original value
            // Clear input causes the component to reload the model
            currentMessageIdDropdown.clearInput();
            super.onError();
        }
    };

    editForm.add(new MessageFormValidator());

    WebMarkupContainer tableContainer = new WebMarkupContainer("table-container");

    messageIdTypeDropDown = getMessageIdTypeDropdown();
    tableContainer.add(messageIdTypeDropDown);

    currentMessageIdDropdown = getCurrentMessageIdDropdown();

    tableContainer.add(currentMessageIdDropdown);
    Button buttonNew = new Button("new");
    buttonNew.add(new AjaxFormSubmitBehavior("onclick") {
        @Override
        protected void onSubmit(AjaxRequestTarget target) {
            handleNew(target);
        }

        @Override
        protected void onError(AjaxRequestTarget target) {
            handleError(target);
        }
    });
    tableContainer.add(buttonNew);

    Button buttonCopy = new Button("copy");
    buttonCopy.add(new AjaxFormSubmitBehavior("onclick") {
        @Override
        protected void onSubmit(AjaxRequestTarget target) {
            handleCopy(target);
        }

        @Override
        protected void onError(AjaxRequestTarget target) {
            handleError(target);
        }
    });
    tableContainer.add(buttonCopy);

    Button deleteButton = new Button("delete");
    deleteButton.add(new AjaxEventBehavior("onclick") {
        @Override
        protected void onEvent(AjaxRequestTarget target) {
            handleDelete(target);
        }
    });
    tableContainer.add(deleteButton);

    messageTypeDropdown = getMessageTypeDropdown();
    tableContainer.add(messageTypeDropdown);

    tableContainer.add(getQueueModeDropdown());

    tableContainer.add(new CheckBox("usePersistance").setOutputMarkupId(true));

    WebMarkupContainer listEditorContainer = new WebMarkupContainer("list-editor");

    messageIdTextField = getMessageIdTextField();
    listEditorContainer.add(messageIdTextField);

    messageAliasTextField = getMessageAliasTextField();
    listEditorContainer.add(messageAliasTextField);

    // Create the list editor
    editor = new ListEditor<TagConfig>("tags",
            new PropertyModel<List<TagConfig>>(currentMessageModel, "tags")) {
        @Override
        protected void onPopulateItem(EditorListItem<TagConfig> item) {

            item.setModel(new CompoundPropertyModel<TagConfig>(item.getModelObject()));

            BinaryDataType dataType = item.getModelObject().getDataType();
            boolean enable = dataType.isSpecial() ? false : true;

            // Offset is displayed only for information
            item.add(new Label("offset").setOutputMarkupId(true));

            if (enable) {
                item.add(getIdTextField());
            } else {
                // The static TextField has no validation. Validation would fail for special tags.
                item.add(getSpecialIdTextField().setEnabled(false));
            }

            item.add(getAliasTextField().setVisible(enable));

            item.add(getSizeTextField().setEnabled(dataType.isArrayAllowed()));

            item.add(getTagLengthTypeDropDown().setEnabled(dataType.supportsVariableLength()));

            item.add(getDataTypeDropdown());

            // Create the edit links to be used in the list editor
            item.add(getInsertLink());
            item.add(getDeleteLink());
            item.add(getMoveUpLink().setVisible(item.getIndex() > 0));
            item.add(getMoveDownLink().setVisible(item.getIndex() < getList().size() - 1));
        }
    };
    listEditorContainer.add(editor);

    Label noItemsLabel = new Label("no-items-label", new StringResourceModel("noitems", this, null)) {
        @Override
        public boolean isVisible() {
            return editor.getList().size() == 0;
        }
    };

    listEditorContainer.add(noItemsLabel);

    listEditorContainer.add(new EditorSubmitLink("add-row-link") {
        @Override
        public void onSubmit() {
            editor.addItem(new TagConfig());

            // Adjust the visibility of the edit links
            updateListEditor(editor);
        }
    });

    listEditorContainer.setOutputMarkupId(true);

    tableContainer.add(listEditorContainer);
    editForm.add(tableContainer);

    // XML export
    SubmitLink exportLink = new SubmitLink("export-link", editForm) {
        @Override
        public void onSubmit() {
            ResourceStreamRequestHandler handler = new ResourceStreamRequestHandler(getResourceStream(),
                    getFileName());
            handler.setContentDisposition(ContentDisposition.ATTACHMENT);
            handler.setCacheDuration(Duration.NONE);
            getRequestCycle().scheduleRequestHandlerAfterCurrent(handler);
        }

        private String getFileName() {
            return String.format("MsgConfig_%s.xml", currentMessageModel.getObject().getMessageId());
        }

        private IResourceStream getResourceStream() {
            String config = currentMessageModel.getObject().toXMLString();
            return new StringResourceStream(config, "text/xml");
        }
    };
    editForm.add(exportLink);

    uploadForm.add(editForm);
}

From source file:com.doculibre.constellio.wicket.panels.admin.searchInterface.LogoConfigPanel.java

License:Open Source License

public LogoConfigPanel(String id) {
    super(id);//from  w  w  w.ja  v a 2 s.  c o  m

    Form form = new Form("form");
    add(form);

    form.add(new FeedbackPanel("feedback"));

    final FileUploadField logoSmallField = new FileUploadField("logoSmall");
    form.add(logoSmallField);

    final FileUploadField logoLargeField = new FileUploadField("logoLarge");
    form.add(logoLargeField);

    Button submitButton = new Button("submitButton") {
        @Override
        public void onSubmit() {
            SearchInterfaceConfigServices searchInterfaceConfigServices = ConstellioSpringUtils
                    .getSearchInterfaceConfigServices();
            SearchInterfaceConfig searchInterfaceConfig = searchInterfaceConfigServices.get();

            FileUpload uploadLogoSmall = logoSmallField.getFileUpload();
            FileUpload uploadLogoLarge = logoLargeField.getFileUpload();

            if (uploadLogoSmall != null) {
                if (uploadLogoSmall.getSize() <= SearchInterfaceConfig.LOGO_MAXIMUM_SIZE) {
                    searchInterfaceConfig.setLogoSmallContent(uploadLogoSmall.getBytes());
                } else {
                    String size = FileSizeUtils.formatSize(uploadLogoSmall.getSize(), 3);
                    String maxSize = FileSizeUtils.formatSize(SearchInterfaceConfig.LOGO_MAXIMUM_SIZE, 3);
                    String[] params = new String[] { size, maxSize };
                    String error = new StringResourceModel("logoSmallTooBig", LogoConfigPanel.this, null,
                            params).getString();
                    error(error);
                    uploadLogoSmall = null;
                }

            }
            if (uploadLogoLarge != null) {

                if (uploadLogoLarge.getSize() <= SearchInterfaceConfig.LOGO_MAXIMUM_SIZE) {
                    searchInterfaceConfig.setLogoLargeContent(uploadLogoLarge.getBytes());
                } else {
                    String size = FileSizeUtils.formatSize(uploadLogoLarge.getSize(), 3);
                    String maxSize = FileSizeUtils.formatSize(SearchInterfaceConfig.LOGO_MAXIMUM_SIZE, 3);
                    String[] params = new String[] { size, maxSize };
                    String error = new StringResourceModel("logoLargeTooBig", LogoConfigPanel.this, null,
                            params).getString();
                    error(error);
                    uploadLogoLarge = null;
                }
            }
            if (uploadLogoSmall != null || uploadLogoLarge != null) {
                EntityManager entityManager = ConstellioPersistenceContext.getCurrentEntityManager();
                if (!entityManager.getTransaction().isActive()) {
                    entityManager.getTransaction().begin();
                }
                searchInterfaceConfigServices.makePersistent(searchInterfaceConfig);
                entityManager.getTransaction().commit();
            }
        }
    };
    form.add(submitButton);
}

From source file:com.evolveum.midpoint.web.component.input.UploadDownloadPanel.java

License:Apache License

private FileUpload getFileUpload() {
    FileUploadField file = (FileUploadField) get(ID_INPUT_FILE);
    return file.getFileUpload();
}

From source file:com.evolveum.midpoint.web.page.admin.cases.PageCaseWorkItem.java

License:Apache License

private void closeCaseWorkItemPerformed(AjaxRequestTarget target) {
    OperationResult result = new OperationResult(OPERATION_SAVE_CASE_WORK_ITEM);
    Task task = createSimpleTask(OPERATION_SAVE_CASE_WORK_ITEM);
    try {//w w  w .  j a  v a2  s .c o m

        CaseWorkItemDto dto = caseWorkItemDtoModel.getObject();
        CaseManagementService cms = getCaseManagementService();
        AbstractWorkItemOutputType output = new AbstractWorkItemOutputType().comment(dto.getComment())
                .outcome("SUCCESS");
        FileUploadField evidenceUploadField = (FileUploadField) get(ID_MAIN_FORM).get(ID_CASE_WORK_ITEM_FORM)
                .get(ID_CASE_WORK_ITEM_FORM_EVIDENCE);
        if (evidenceUploadField != null) {
            FileUpload evidence = evidenceUploadField.getFileUpload();
            if (evidence != null) {
                String filename = evidence.getClientFileName();
                String contentType = evidence.getContentType();
                output = output.evidence(evidence.getBytes()).evidenceContentType(contentType)
                        .evidenceFilename(filename);
            }
        }
        cms.completeWorkItem(caseId, caseWorkItemId, output, task, result);
    } catch (Exception ex) {
        result.recordFatalError("Couldn't close case work item.", ex);
        LoggingUtils.logUnexpectedException(LOGGER, "Couldn't close case work item", ex);
    }
    processResult(target, result, false);
}

From source file:com.evolveum.midpoint.web.page.admin.configuration.PageImportObject.java

License:Apache License

private void saveFilePerformed(AjaxRequestTarget target) {
    OperationResult result = new OperationResult(OPERATION_IMPORT_FILE);

    FileUploadField file = (FileUploadField) get(
            createComponentPath(ID_MAIN_FORM, ID_INPUT, ID_INPUT_FILE, ID_FILE_INPUT));
    final FileUpload uploadedFile = file.getFileUpload();
    if (uploadedFile == null) {
        error(getString("pageImportObject.message.nullFile"));
        target.add(getFeedbackPanel());/* w  ww  . ja v  a 2 s  .c  o  m*/

        return;
    }

    InputStream stream = null;
    File newFile = null;
    try {
        // Create new file
        MidPointApplication application = getMidpointApplication();
        WebApplicationConfiguration config = application.getWebApplicationConfiguration();
        File folder = new File(config.getImportFolder());
        if (!folder.exists() || !folder.isDirectory()) {
            folder.mkdir();
        }

        newFile = new File(folder, uploadedFile.getClientFileName());
        // Check new file, delete if it already exists
        if (newFile.exists()) {
            newFile.delete();
        }
        // Save file
        Task task = createSimpleTask(OPERATION_IMPORT_FILE);
        newFile.createNewFile();
        uploadedFile.writeTo(newFile);

        InputStreamReader reader = new InputStreamReader(new FileInputStream(newFile), "utf-8");
        stream = new ReaderInputStream(reader, reader.getEncoding());
        getModelService().importObjectsFromStream(stream, model.getObject(), task, result);

        result.recomputeStatus();
    } catch (Exception ex) {
        result.recordFatalError("Couldn't import file.", ex);
        LoggingUtils.logException(LOGGER, "Couldn't import file", ex);
    } finally {
        if (stream != null) {
            IOUtils.closeQuietly(stream);
        }
        if (newFile != null) {
            FileUtils.deleteQuietly(newFile);
        }
    }

    showResult(result);
    target.add(getFeedbackPanel());
}

From source file:com.evolveum.midpoint.web.page.admin.reports.PageNewReport.java

License:Apache License

private void importReportFromFilePerformed(AjaxRequestTarget target) {
    OperationResult result = new OperationResult(OPERATION_IMPORT_REPORT);

    FileUploadField file = (FileUploadField) get(
            createComponentPath(ID_MAIN_FORM, ID_INPUT, ID_INPUT_FILE, ID_FILE_INPUT));
    final FileUpload uploadedFile = file.getFileUpload();
    if (uploadedFile == null) {
        error(getString("PageNewReport.message.nullFile"));
        target.add(getFeedbackPanel());//  w  w  w  .j ava2s.c o m

        return;
    }

    InputStream stream = null;
    File newFile = null;
    try {
        // Create new file
        MidPointApplication application = getMidpointApplication();
        WebApplicationConfiguration config = application.getWebApplicationConfiguration();
        File folder = new File(config.getImportFolder());
        if (!folder.exists() || !folder.isDirectory()) {
            folder.mkdir();
        }

        newFile = new File(folder, uploadedFile.getClientFileName());
        // Check new file, delete if it already exists
        if (newFile.exists()) {
            newFile.delete();
        }
        // Save file
        //            Task task = createSimpleTask(OPERATION_IMPORT_FILE);
        newFile.createNewFile();
        uploadedFile.writeTo(newFile);

        InputStreamReader reader = new InputStreamReader(new FileInputStream(newFile), "utf-8");
        //            reader.
        stream = new ReaderInputStream(reader, reader.getEncoding());
        byte[] reportIn = IOUtils.toByteArray(stream);

        setResponsePage(new PageReport(new ReportDto(Base64.encodeBase64(reportIn))));
    } catch (Exception ex) {
        result.recordFatalError("Couldn't import file.", ex);
        LoggingUtils.logException(LOGGER, "Couldn't import file", ex);
    } finally {
        if (stream != null) {
            IOUtils.closeQuietly(stream);
        }
        if (newFile != null) {
            FileUtils.deleteQuietly(newFile);
        }
    }

    showResult(result);
    target.add(getFeedbackPanel());
}

From source file:com.inductiveautomation.xopc.drivers.modbus2.configuration.web.ModbusConfigurationUI.java

License:Open Source License

private void addComponents() {
    T settingsRecord = (T) getDefaultModelObject();
    String mapString = (String) TypeUtilities.toString(settingsRecord.getAddressMap());
    addressMap = MutableModbusAddressMap.fromParseableString(mapString);

    if (addressMap == null) {
        addressMap = new MutableModbusAddressMap();
    }//w ww .  ja v  a 2  s.c o  m

    radix = addressMap.getDesignatorRadix();

    final Form<Object> form = new Form<Object>("form") {
        @Override
        protected void onSubmit() {
            handleOnSubmit();
        }
    };

    form.add(new FeedbackPanel("feedback"));

    final WebMarkupContainer tableContainer = new WebMarkupContainer("table-container");
    tableContainer.setOutputMarkupId(true);

    final WebMarkupContainer radixContainer = new WebMarkupContainer("radix-container") {
        @Override
        public boolean isVisible() {
            return entries.size() > 0;
        }
    };

    radixContainer.setOutputMarkupId(true);

    radixContainer.add(new Label("radix-label", new LenientResourceModel("radixlabel", "Radix")) {
        @Override
        public boolean isVisible() {
            return entries.size() > 0;
        }
    });

    final RequiredTextField<Integer> radixField = new RequiredTextField<Integer>("radix",
            new PropertyModel<Integer>(this, "radix")) {
        @Override
        public boolean isVisible() {
            return entries.size() > 0;
        }
    };

    radixField.add(new OnChangeAjaxBehavior() {
        @Override
        protected void onUpdate(AjaxRequestTarget target) {
            try {
                Integer radix = Integer.parseInt(radixField.getValue());
                setRadix(radix);
            } catch (Exception e) {
            }
        }
    });

    radixContainer.add(radixField);

    tableContainer.add(radixContainer);

    radixContainer.add(new Link<Object>("set-radix") {
        @Override
        public void onClick() {
            if (addressMap != null) {

            }
        }

        @Override
        public boolean isVisible() {
            return false;
        }
    });

    // Create the configuration entries for the listview
    for (DesignatorRange dr : addressMap.keySet()) {
        MutableDesignatorRange mdr = new MutableDesignatorRange(dr);
        MutableModbusRange mbr = new MutableModbusRange(addressMap.get(dr));
        entries.add(new ModbusConfigurationEntry(mdr, mbr));
    }

    // Create the listview
    listview = new ListEditor<ModbusConfigurationEntry>("config-listview", getListviewModel()) {

        @Override
        protected void onPopulateItem(ListItem<ModbusConfigurationEntry> item) {
            final ModbusConfigurationEntry configEntry = item.getModelObject();

            item.add(newPrefixTextField(configEntry));

            item.add(newStartTextField(configEntry));

            item.add(newEndTextField(configEntry));

            item.add(newStepCheckboxField(configEntry));

            item.add(newModbusUnitIDTextField(configEntry));

            item.add(newModbusAddressTypeDropdown(configEntry));

            item.add(newModbusAddressTextField(configEntry));

            item.add(new DeleteLink("delete-link"));
        }
    };

    WebMarkupContainer noMappingsContainer = new WebMarkupContainer("no-mappings-container") {
        @Override
        public boolean isVisible() {
            return entries.size() == 0;
        }

        ;
    };
    noMappingsContainer
            .add(new Label("no-mappings-label", new LenientResourceModel("nomappings", "No mappings.")));

    tableContainer.add(noMappingsContainer);

    tableContainer.add(listview);
    form.add(tableContainer);

    form.add(new SubmitLink("add-row-link") {
        {
            setDefaultFormProcessing(false);
        }

        @Override
        public void onSubmit() {
            listview.addItem(new ModbusConfigurationEntry());
        }
    });

    form.add(new Button("save"));

    add(form);

    // CSV export
    try {
        Link<IResource> exportLink = new ResourceLink<IResource>("export-link", new ExportCsvResource());
        add(exportLink);
    } catch (Exception e) {
        Link<Object> exportLink = new Link<Object>("export-link") {
            @Override
            public void onClick() {
            }

            @Override
            public boolean isVisible() {
                return false;
            }
        };
        add(exportLink);
    }

    // CSV import
    final FileUploadField uploadField = new FileUploadField("upload-field");

    Form<?> uploadForm = new Form<Object>("upload-form") {
        @Override
        protected void onSubmit() {
            try {
                addressMap = ModbusCsvParser.fromCsv(uploadField.getFileUpload().getInputStream());

                radix = addressMap.getDesignatorRadix();

                listview.clear();

                for (DesignatorRange dr : addressMap.keySet()) {
                    MutableDesignatorRange mdr = new MutableDesignatorRange(dr);
                    MutableModbusRange mbr = new MutableModbusRange(addressMap.get(dr));
                    listview.addItem(new ModbusConfigurationEntry(mdr, mbr));
                }

            } catch (Exception e) {
                error("Error importing configuration from CSV file.");
            }
        }
    };

    uploadForm.add(uploadField);

    SubmitLink importLink = new SubmitLink("import-link");

    uploadForm.add(importLink);

    add(uploadForm);

}

From source file:com.romeikat.datamessie.core.base.ui.panel.FileUploadPanel.java

License:Open Source License

private void initialize() {
    setTitle("File Upload");

    uploadForm = new Form<Void>("uploadForm");
    uploadForm.setMultiPart(true);//from  w w w.  j  av a  2s  . c  o m
    add(uploadForm);

    // Input panel (only create once, so the same panel will be reused for future versions of
    // the FileUplodPanel)
    if (inputPanel == null) {
        inputPanel = getInputPanel("inputPanel");
    }
    uploadForm.add(inputPanel);

    final String[] fileUploadLabels = getFileUploadLabels();
    final boolean[] fileUploadRequireds = getFileUploadRequireds();
    final int numberOfFileUploads = fileUploadLabels.length;

    final String fileUploadLabelsText = numberOfFileUploads == 1 ? "Select file:" : "Select files:";
    final Label fileUploadsLabel = new Label("fileUploadsLabel", fileUploadLabelsText);
    uploadForm.add(fileUploadsLabel);

    final List<Integer> fileUploadNumbers = new ArrayList<Integer>(numberOfFileUploads);
    for (int i = 0; i < numberOfFileUploads; i++) {
        fileUploadNumbers.add(i);
    }
    fileUploadFields = new FileUploadField[numberOfFileUploads];
    final ListView<Integer> fileUploadList = new ListView<Integer>("fileUploadList", fileUploadNumbers) {
        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(final ListItem<Integer> item) {
            final int numberOfFileUpload = item.getModelObject();
            // Label
            final String fileUploadLabelText = fileUploadLabels[numberOfFileUpload] + ":";
            final Label fileUploadLabel = new Label("fileUploadLabel", fileUploadLabelText);
            fileUploadLabel.setVisible(fileUploadLabelText != null);
            item.add(fileUploadLabel);
            // File upload
            final FileUploadField fileUploadField = new FileUploadField("fileUploadField");
            fileUploadFields[numberOfFileUpload] = fileUploadField;
            item.add(fileUploadField);
        }
    };
    uploadForm.add(fileUploadList);

    feedbackTextArea = new TextArea<String>("feedbackTextArea", feedbackModel);
    feedbackTextArea.setOutputMarkupId(true);
    uploadForm.add(feedbackTextArea);

    final AjaxFallbackButton submitButton = new AjaxFallbackButton("submitButton",
            Model.of(getSubmitButtonLabel()), uploadForm) {
        private static final long serialVersionUID = 1L;

        @Override
        protected void onSubmit(final AjaxRequestTarget target, final Form<?> form) {
            // Process uploaded files
            final List<String> uploadedFileContents = new ArrayList<String>(numberOfFileUploads);
            for (int i = 0; i < numberOfFileUploads; i++) {
                // Get uploaded file content
                final FileUploadField fileUploadField = fileUploadFields[i];
                final FileUpload uploadedFile = fileUploadField.getFileUpload();
                final boolean fileUploadRequired = fileUploadRequireds[i];
                if (uploadedFile == null && fileUploadRequired) {
                    return;
                }
                final String uploadedFileContent;
                if (uploadedFile == null) {
                    uploadedFileContent = null;
                } else {
                    InputStream uploadStream;
                    try {
                        uploadStream = uploadedFile.getInputStream();
                    } catch (final IOException e) {
                        LOG.error("Could not read content from uploaded file", e);
                        return;
                    }
                    final Scanner uploadFileScanner = new Scanner(uploadStream, "UTF-8");
                    uploadedFileContent = uploadFileScanner.useDelimiter("\\A").next();
                    uploadFileScanner.close();
                }
                // Remember uploaded file content
                uploadedFileContents.add(uploadedFileContent);
            }
            // Process uploaded files
            try {
                processFileContents(inputPanel, uploadedFileContents);
            }
            // In case of error, show feedback
            catch (final FileProcessingException e) {
                feedbackModel.setObject(e.getMessage());
                target.add(feedbackTextArea);
                return;
            }
            // Otherwise, close
            modalContentWindow.close(target);
            // Update tasks immediately
            target.add(((AbstractAuthenticatedPage) getPage()).getTaskExecutionsPanel());
        }
    };
    uploadForm.add(submitButton);
}

From source file:com.tysanclan.site.projectewok.pages.member.admin.TangoImporterPage.java

License:Open Source License

/**
 * /*from w w w.j a  v  a 2 s .  c om*/
 */
public TangoImporterPage() {
    super("Tango Conversion Page");

    Form<?> uploadForm = new Form<Void>("uploadForm") {
        private static final long serialVersionUID = 1L;

        /**
         * @see org.apache.wicket.markup.html.form.Form#onSubmit()
         */
        @Override
        protected void onSubmit() {
            PasswordTextField keyField = (PasswordTextField) get("masterKey");

            if (userDAO.findAll().isEmpty()) {

                if (keyField.getModelObject().equals(TysanApplication.MASTER_KEY)) {
                    FileUploadField field = (FileUploadField) get("fileUploader");
                    FileUpload upload = field.getFileUpload();

                    if (upload == null) {
                        error("You must upload a file");
                        return;
                    }

                    try {
                        TysanScheduler.getScheduler()
                                .scheduleTask(new TangoImportTask(upload.getInputStream()));
                        info("Tango import background job started");
                    } catch (IOException e) {
                        error("Internal error: Unable to read upload");
                    }

                } else {
                    error("Master key invalid");
                }
            } else {
                error("Import can only be run on an empty database!");
            }

        }

    };
    uploadForm.add(new PasswordTextField("masterKey", new Model<String>("")));
    uploadForm.add(new FileUploadField("fileUploader", new ListModel<FileUpload>()));
    add(uploadForm);

}

From source file:com.tysanclan.site.projectewok.pages.member.CreateGamePetitionPage.java

License:Open Source License

public CreateGamePetitionPage() {
    super("Create Game Petition");

    add(new Label("count", new Model<Integer>(gameService.getRequiredPetitionSignatures())));

    Form<GamePetition> form = new Form<GamePetition>("petitionForm") {
        private static final long serialVersionUID = 1L;

        /**// w  ww  .j a  v  a2s .  c  om
         * @see org.apache.wicket.markup.html.form.Form#onSubmit()
         */
        @SuppressWarnings("unchecked")
        @Override
        protected void onSubmit() {
            FileUploadField iconField = (FileUploadField) get("icon");
            FileUpload upload = iconField.getFileUpload();

            TextField<String> nameField = (TextField<String>) get("name");
            DropDownChoice<Realm> realmChoice = (DropDownChoice<Realm>) get("realm");
            TextField<String> realmField = (TextField<String>) get("newRealm");

            String name = nameField.getModelObject();
            Realm realm = realmChoice.getModelObject();
            String realmName = realmField.getModelObject();

            GamePetition p = null;

            if (realm == null) {
                p = gameService.createPetition(getUser(), name, realmName, upload.getBytes());
            } else {
                p = gameService.createPetition(getUser(), name, realm, upload.getBytes());
            }

            if (p != null) {

                setResponsePage(new SignGamePetitionsPage());
            } else {
                error("Invalid image size, did you upload a valid GIF, JPEG or PNG with dimensions at least 48x48 and at most 64x64?");
            }
        }

    };

    form.setMultiPart(true);

    add(form);

    form.add(new TextField<String>("name", new Model<String>("")).setRequired(true));
    form.add(new FileUploadField("icon").setRequired(true));

    List<Realm> realms = realmService.getRealms();

    DropDownChoice<Realm> realmChoice = new DropDownChoice<Realm>("realm", ModelMaker.wrap((Realm) null),
            ModelMaker.wrapChoices(realms));
    realmChoice.setNullValid(true);
    realmChoice.setVisible(realms.size() > 0);
    realmChoice.add(new AjaxFormComponentUpdatingBehavior("onchange") {
        private static final long serialVersionUID = 1L;

        @SuppressWarnings("unchecked")
        @Override
        protected void onUpdate(AjaxRequestTarget target) {
            DropDownChoice<Realm> rc = (DropDownChoice<Realm>) getComponent();
            Component newRealmField = rc.getParent().get("newRealm");
            newRealmField.setVisible(rc.getModelObject() == null);
            if (target != null) {
                target.add(newRealmField);
            }

        }
    });
    realmChoice.setChoiceRenderer(new IChoiceRenderer<Realm>() {
        private static final long serialVersionUID = 1L;

        @Override
        public Object getDisplayValue(Realm object) {
            return object.getName();
        }

        @Override
        public String getIdValue(Realm object, int index) {
            return object == null ? "null" : object.getId().toString();
        }

    });

    form.add(new TextField<String>("newRealm", new Model<String>("")).setOutputMarkupId(true)
            .setOutputMarkupPlaceholderTag(true));

    form.add(realmChoice);

}