Example usage for com.vaadin.server FileDownloader extend

List of usage examples for com.vaadin.server FileDownloader extend

Introduction

In this page you can find the example usage for com.vaadin.server FileDownloader extend.

Prototype

public void extend(EventTrigger eventTrigger) 

Source Link

Document

Add this extension to the EventTrigger .

Usage

From source file:de.symeda.sormas.ui.samples.SamplesView.java

License:Open Source License

public SamplesView() {
    super(VIEW_NAME);

    sampleListComponent = new SampleGridComponent(getViewTitleLabel(), this);
    setSizeFull();/*from  ww w . jav  a2s  .c  om*/
    addComponent(sampleListComponent);

    if (UserProvider.getCurrent().hasUserRight(UserRight.SAMPLE_EXPORT)) {
        PopupButton exportButton = new PopupButton(I18nProperties.getCaption(Captions.export));
        exportButton.setIcon(VaadinIcons.DOWNLOAD);
        VerticalLayout exportLayout = new VerticalLayout();
        exportLayout.setSpacing(true);
        exportLayout.setMargin(true);
        exportLayout.addStyleName(CssStyles.LAYOUT_MINIMAL);
        exportLayout.setWidth(200, Unit.PIXELS);
        exportButton.setContent(exportLayout);
        addHeaderComponent(exportButton);

        Button basicExportButton = new Button(I18nProperties.getCaption(Captions.exportBasic));
        basicExportButton.setDescription(I18nProperties.getString(Strings.infoBasicExport));
        basicExportButton.addStyleName(ValoTheme.BUTTON_PRIMARY);
        basicExportButton.setIcon(VaadinIcons.TABLE);
        basicExportButton.setWidth(100, Unit.PERCENTAGE);
        exportLayout.addComponent(basicExportButton);

        StreamResource streamResource = new GridExportStreamResource(sampleListComponent.getGrid(),
                "sormas_samples", "sormas_samples_" + DateHelper.formatDateForExport(new Date()) + ".csv",
                SampleGrid.EDIT_BTN_ID);
        FileDownloader fileDownloader = new FileDownloader(streamResource);
        fileDownloader.extend(basicExportButton);

        Button extendedExportButton = new Button(I18nProperties.getCaption(Captions.exportDetailed));
        extendedExportButton.setDescription(I18nProperties.getString(Strings.infoDetailedExport));
        extendedExportButton.addStyleName(ValoTheme.BUTTON_PRIMARY);
        extendedExportButton.setIcon(VaadinIcons.FILE_TEXT);
        extendedExportButton.setWidth(100, Unit.PERCENTAGE);
        exportLayout.addComponent(extendedExportButton);

        StreamResource extendedExportStreamResource = DownloadUtil.createCsvExportStreamResource(
                SampleExportDto.class,
                (Integer start, Integer max) -> FacadeProvider.getSampleFacade().getExportList(
                        UserProvider.getCurrent().getUuid(), sampleListComponent.getGrid().getCriteria(), start,
                        max),
                (propertyId, type) -> {
                    String caption = I18nProperties.getPrefixCaption(SampleExportDto.I18N_PREFIX, propertyId,
                            I18nProperties.getPrefixCaption(SampleDto.I18N_PREFIX, propertyId,
                                    I18nProperties.getPrefixCaption(CaseDataDto.I18N_PREFIX, propertyId,
                                            I18nProperties.getPrefixCaption(PersonDto.I18N_PREFIX, propertyId,
                                                    I18nProperties.getPrefixCaption(
                                                            AdditionalTestDto.I18N_PREFIX, propertyId)))));
                    if (Date.class.isAssignableFrom(type)) {
                        caption += " (" + DateHelper.getLocalShortDatePattern() + ")";
                    }
                    return caption;
                }, "sormas_samples_" + DateHelper.formatDateForExport(new Date()) + ".csv");
        new FileDownloader(extendedExportStreamResource).extend(extendedExportButton);
    }
}

From source file:de.symeda.sormas.ui.statistics.DatabaseExportView.java

License:Open Source License

public DatabaseExportView() {
    super(VIEW_NAME);

    databaseTableToggles = new HashMap<>();
    databaseExportLayout = new VerticalLayout();
    databaseExportLayout.setSpacing(false);
    databaseExportLayout.setMargin(false);
    HorizontalLayout headerLayout = new HorizontalLayout();
    headerLayout.setSpacing(true);/*from  w  ww.  j av a2 s.c  o m*/
    headerLayout.setMargin(false);
    Label infoLabel = new Label(I18nProperties.getString(Strings.infoDatabaseExportTables));
    headerLayout.addComponent(infoLabel);
    headerLayout.setComponentAlignment(infoLabel, Alignment.MIDDLE_LEFT);
    headerLayout.addComponent(createSelectionButtonsLayout());
    databaseExportLayout.addComponent(headerLayout);
    databaseExportLayout.addComponent(createDatabaseTablesLayout());
    Button exportButton = new Button(I18nProperties.getCaption(Captions.export), VaadinIcons.DOWNLOAD);
    CssStyles.style(exportButton, ValoTheme.BUTTON_PRIMARY);
    StreamResource streamResource = DownloadUtil.createDatabaseExportStreamResource(this,
            "sormas_export_" + DateHelper.formatDateForExport(new Date()) + ".zip", "application/zip");
    FileDownloader fileDownloader = new FileDownloader(streamResource);
    fileDownloader.extend(exportButton);
    databaseExportLayout.addComponent(exportButton);
    databaseExportLayout.setMargin(true);
    databaseExportLayout.setSpacing(true);

    addComponent(databaseExportLayout);
}

From source file:de.symeda.sormas.ui.statistics.StatisticsView.java

License:Open Source License

public void generateTable() {
    List<Object[]> resultData = generateStatistics();

    if (resultData.isEmpty()) {
        resultsLayout.addComponent(emptyResultLabel);
        return;//from w w w.  j  ava 2 s  .c  o m
    }

    exportButton = new Button(I18nProperties.getCaption(Captions.export));
    exportButton.setDescription(I18nProperties.getDescription(Descriptions.descExportButton));
    exportButton.addStyleName(ValoTheme.BUTTON_PRIMARY);
    exportButton.setIcon(VaadinIcons.TABLE);
    resultsLayout.addComponent(exportButton);
    resultsLayout.setComponentAlignment(exportButton, Alignment.TOP_RIGHT);

    statisticsCaseGrid = new StatisticsCaseGrid(visualizationComponent.getRowsAttribute(),
            visualizationComponent.getRowsSubAttribute(), visualizationComponent.getColumnsAttribute(),
            visualizationComponent.getColumnsSubAttribute(), zeroValues.getValue(), resultData, caseCriteria);
    resultsLayout.addComponent(statisticsCaseGrid);
    resultsLayout.setExpandRatio(statisticsCaseGrid, 1);

    StreamResource streamResource = DownloadUtil.createGridExportStreamResource(
            statisticsCaseGrid.getContainerDataSource(), statisticsCaseGrid.getColumns(), "sormas_statistics",
            "sormas_statistics_" + DateHelper.formatDateForExport(new Date()) + ".csv");
    FileDownloader fileDownloader = new FileDownloader(streamResource);
    fileDownloader.extend(exportButton);
}

From source file:de.uni_tuebingen.qbic.qbicmainportlet.HomeView.java

License:Open Source License

private void setExportButton() {
    buttonLayoutSection.removeAllComponents();
    HorizontalLayout buttonLayout = new HorizontalLayout();
    buttonLayout.setHeight(null);/*ww w  .  j a  v a 2s  .  c om*/
    buttonLayout.setWidth("100%");
    buttonLayoutSection.addComponent(buttonLayout);

    buttonLayout.addComponent(this.export);

    StreamResource sr = Utils.getTSVStream(Utils.containerToString(currentBean.getProjects()),
            "project_overview");
    FileDownloader fileDownloader = new FileDownloader(sr);
    fileDownloader.extend(this.export);
}

From source file:dhbw.clippinggorilla.userinterface.views.DocumentsView.java

private Component generateLine(Path file, GridLayout layout) {
    Label fileName = new Label(file.getFileName().toString());
    layout.addComponent(fileName);//from  w  w w .j av a  2 s  .  c  o m
    layout.setComponentAlignment(fileName, Alignment.MIDDLE_LEFT);

    Button downloadButton = new Button();
    downloadButton.setIcon(VaadinIcons.DOWNLOAD);
    FileDownloader downloader = new FileDownloader(new FileResource(file.toFile()));
    downloader.extend(downloadButton);
    layout.addComponent(downloadButton);
    layout.setComponentAlignment(downloadButton, Alignment.MIDDLE_CENTER);

    if (file.getFileName().toString().endsWith("pdf")) {
        Button viewButton = new Button();
        viewButton.setIcon(VaadinIcons.EYE);
        viewButton.addClickListener(ce -> UI.getCurrent().addWindow(PDFWindow.get(file)));
        layout.addComponent(viewButton);
        layout.setComponentAlignment(viewButton, Alignment.MIDDLE_CENTER);
    } else {
        layout.addComponent(new Label(" "));
    }

    return layout;
}

From source file:edu.kit.dama.ui.admin.LandingPageComponent.java

License:Apache License

public final void update(DigitalObject object, boolean privileged) {
    if (object == null) {
        UIUtils7.GridLayoutBuilder builder = new UIUtils7.GridLayoutBuilder(1, 1);
        builder.fill(new Label("Access to digital object not permitted."), 0, 0);
        mainLayout = builder.getLayout();
        mainLayout.setMargin(true);/*from  w  w w .ja v  a2  s. c  om*/
        mainLayout.setSpacing(true);
        mainLayout.setStyleName("landing");
        HorizontalLayout hLayout = new HorizontalLayout(mainLayout);
        hLayout.setSizeFull();
        hLayout.setComponentAlignment(mainLayout, Alignment.MIDDLE_CENTER);
        setCompositionRoot(hLayout);
    } else {
        final TextField oidField = new TextField();
        Button searchButton = new Button("Search");
        Button metsButton = new Button("METS");
        final Button dcButton = new Button("DublinCore");
        Button dataButton = new Button("Download");
        VerticalLayout metadataDownloadButtons = new VerticalLayout(dcButton, metsButton);
        UIUtils7.GridLayoutBuilder builder = new UIUtils7.GridLayoutBuilder(3, 6);

        StreamResource metsResource = new StreamResource(() -> {
            try {
                ByteArrayOutputStream bout = new ByteArrayOutputStream();
                MetsBuilder.init(object).createMinimalMetsDocument(UserData.WORLD_USER).write(bout);
                return new ByteArrayInputStream(bout.toByteArray());
            } catch (Exception ex) {
                LOGGER.error("Failed to provide METS document.", ex);
                UIComponentTools.showError(
                        "Failed to initialize METS document for download. Cause: " + ex.getMessage());
                return null;
            }
        }, object.getDigitalObjectIdentifier() + ".mets.xml");

        StreamResource dcResource = new StreamResource(() -> {
            try {
                ByteArrayOutputStream bout = new ByteArrayOutputStream();
                DublinCoreHelper.writeDublinCoreDocument(object, UserData.WORLD_USER, bout);
                return new ByteArrayInputStream(bout.toByteArray());
            } catch (ParserConfigurationException ex) {
                LOGGER.error("Failed to provide DC document.", ex);
                UIComponentTools
                        .showError("Failed to initialize DC document for download. Cause: " + ex.getMessage());
                return null;
            }
        }, object.getDigitalObjectIdentifier() + ".dc.xml");

        StreamResource dataResource = new StreamResource(() -> {
            IMetaDataManager mdm = MetaDataManagement.getMetaDataManagement().getMetaDataManager();
            mdm.setAuthorizationContext(AuthorizationContext.factorySystemContext());
            try {
                IAuthorizationContext ctx = new AuthorizationContext(new UserId(Constants.WORLD_USER_ID),
                        new GroupId(Constants.WORLD_USER_ID), Role.GUEST);
                if (accessGranted(object, ctx) || accessGranted(object, UIHelper.getSessionContext())) {
                    Response response = new PublicDownloadHandler().prepareStream(object);
                    if (response.getStatus() == Response.Status.OK.getStatusCode()) {
                        return (InputStream) response.getEntity();
                    } else {
                        LOGGER.error("Preparation of the public download for object "
                                + object.getDigitalObjectIdentifier() + " returned status "
                                + response.getStatus() + ". Aborting.");
                    }
                }
                throw new IOException("Public access not available.");
            } catch (IOException ex) {
                LOGGER.error(
                        "Failed to provide data stream for object " + object.getDigitalObjectIdentifier() + ".",
                        ex);
                UIComponentTools.showError(
                        "Failed to initialize data stream for public download. Probably, the digital object is not publicly available.");
                return null;
            }
        }, object.getDigitalObjectIdentifier() + ".zip");

        Map<String, String> dcElementMap = new HashMap<>();
        try {
            dcElementMap = DublinCoreHelper.createDublinCoreElementMap(object, UserData.WORLD_USER);
        } catch (ParserConfigurationException ex) {
            LOGGER.error(
                    "Failed to create DC metadata for object with id " + object.getDigitalObjectIdentifier(),
                    ex);
        }
        oidField.setValue(object.getDigitalObjectIdentifier());

        FileDownloader metsDownloader = new FileDownloader(metsResource);
        metsDownloader.extend(metsButton);

        FileDownloader dcDownloader = new FileDownloader(dcResource);
        dcDownloader.extend(dcButton);

        FileDownloader dataDownloader = new FileDownloader(dataResource);
        dataDownloader.extend(dataButton);

        oidField.setSizeFull();
        searchButton.setWidth("128px");

        searchButton.addClickListener((Button.ClickEvent event) -> {
            String oid = oidField.getValue();
            Page.getCurrent().setLocation(
                    URI.create(UIHelper.getWebAppUrl().toString() + "?landing&oid=" + oid).toString());
        });

        dcButton.setWidth("128px");
        metsButton.setWidth("128px");
        dataButton.setWidth("128px");

        metadataDownloadButtons.setComponentAlignment(dcButton, Alignment.TOP_LEFT);
        metadataDownloadButtons.setComponentAlignment(metsButton, Alignment.TOP_LEFT);

        //build layout
        Label oidLabel = new Label("<u>Object Id</u>", ContentMode.HTML);
        builder.fillRow(oidLabel, 0, 0, 1);
        oidLabel.addStyleName("myboldcaption");
        builder.addComponent(oidField, 0, 1, 2, 1).addComponent(searchButton, 2, 1);
        Label dcMetadataLabel = new Label("<u>DC Metadata</u>", ContentMode.HTML);
        builder.fillRow(dcMetadataLabel, 0, 2, 1);
        dcMetadataLabel.addStyleName("myboldcaption");

        Set<Map.Entry<String, String>> entries = dcElementMap.entrySet();

        Table dcTable = new Table();
        dcTable.setPageLength(entries.size() + 1);
        dcTable.addContainerProperty("dc:key", String.class, "-");
        dcTable.addContainerProperty("dc:value", String.class, "-");
        entries.forEach((entry) -> {
            Object newItemId = dcTable.addItem();
            Item row1 = dcTable.getItem(newItemId);
            row1.getItemProperty("dc:key").setValue(entry.getKey());
            row1.getItemProperty("dc:value").setValue(entry.getValue());
        });

        dcTable.setWidth("640px");
        dcTable.addStyleName("myboldcaption");
        builder.addComponent(dcTable, 0, 3, 2, 1);
        builder.addComponent(metadataDownloadButtons, 2, 3, 1, 1);

        builder.fillRow(new Label("<u>Data Access</u>", ContentMode.HTML), 0, 4, 1);
        long bytes = DataOrganizationUtils.getAssociatedDataSize(object.getDigitalObjectId());
        String formatted = AbstractFile.formatSize(bytes);
        Label oidDownloadLabel = new Label(
                object.getDigitalObjectIdentifier() + ".zip (approx. " + formatted + ")");
        oidDownloadLabel.addStyleName("myboldcaption");
        builder.addComponent(oidDownloadLabel, 0, 5, 2, 1);
        builder.addComponent(dataButton, 2, 5, 1, 1);

        mainLayout = builder.getLayout();
        mainLayout.setRowExpandRatio(0, .1f);
        mainLayout.setRowExpandRatio(1, .1f);
        mainLayout.setRowExpandRatio(2, .6f);
        mainLayout.setRowExpandRatio(3, .1f);
        mainLayout.setRowExpandRatio(4, .1f);

        mainLayout.setColumnExpandRatio(0, .1f);
        mainLayout.setColumnExpandRatio(1, .8f);
        mainLayout.setColumnExpandRatio(2, .1f);
    }
    mainLayout.setMargin(true);
    mainLayout.setSpacing(true);
    mainLayout.setStyleName("landing");
    HorizontalLayout hLayout = new HorizontalLayout(mainLayout);
    hLayout.setSizeFull();
    hLayout.setComponentAlignment(mainLayout, Alignment.MIDDLE_CENTER);
    setCompositionRoot(hLayout);
}

From source file:edu.kit.dama.ui.repo.components.EntryRenderPanel.java

License:Apache License

/**
 * Setup the download button for download-mode. The button click will be
 * linked to a download of the zipped version of the digital object's data.
 * If no data is available/accessible, the button will be disabled.
 *//*from   ww  w  .j  av a2 s  .  com*/
private void setupDownloadButton() {
    boolean haveDownload = false;
    try {
        //obtain the zip file node
        IFileNode zipNode = DigitalObjectPersistenceHelper.getDataZipFileNode(object,
                AuthorizationContext.factorySystemContext());
        if (zipNode != null) {
            //zip file node is valid, check URL
            final String zipUrl = zipNode.getLogicalFileName().asString();
            if (zipUrl != null) {
                try {
                    //URL seems to be valid, try to get file input stream
                    final File toDownload = new File(new URL(zipUrl).toURI());
                    final FileInputStream fin = new FileInputStream(toDownload);

                    final FileDownloader downloader = new FileDownloader(new StreamResource(new StreamSource() {
                        @Override
                        public InputStream getStream() {
                            return fin;
                        }
                    }, object.getDigitalObjectIdentifier() + ".zip"));

                    downloader.extend(downloadButton);

                    //obtain stored file size from the according attribute
                    IAttribute[] attribs = zipNode.getAttributes().toArray(new IAttribute[] {});
                    long size = -1;

                    if (attribs != null) {
                        for (IAttribute attrib : attribs) {
                            if ("size".equals(attrib.getKey())) {
                                try {
                                    size = Long.parseLong(attrib.getValue());
                                } catch (NumberFormatException ex) {
                                    //no long
                                }
                            }
                        }
                    }

                    downloadButton
                            .setDescription("Download file " + toDownload.getName() + " (" + size + " bytes)");
                    haveDownload = true;
                } catch (MalformedURLException | URISyntaxException | FileNotFoundException ex) {
                    LOGGER.error("Failed to setup download.", ex);
                    downloadButton.setDescription("Failed to obtain data URL.");
                }
            } else {
                downloadButton.setDescription("No data available, yet.");
            }
        } else {
            downloadButton.setDescription("No data available, yet.");
        }
    } catch (UnauthorizedAccessAttemptException ex) {
        LOGGER.error("No data available, yet.", ex);
        downloadButton.setDescription("No data available, yet.");
    }
    //set button only enabled if the data is there and can be accessed
    downloadButton.setEnabled(haveDownload);
}

From source file:fr.univlorraine.mondossierweb.views.ListeInscritsView.java

License:Apache License

public void initListe() {
    //On vrifie le droit d'accder  la vue
    if (UI.getCurrent() instanceof MainUI && userController.isEnseignant()) {
        // initialisation de la vue
        removeAllComponents();// ww w  .  j  a  v  a2  s  .  co m
        listeEtapes = null;
        listeGroupes = null;

        // Style 
        setMargin(true);
        setSpacing(true);
        setSizeFull();

        // Rcupration de l'objet de la SE dont on doit afficher les inscrits
        code = MainUI.getCurrent().getCodeObjListInscrits();
        typeFavori = MainUI.getCurrent().getTypeObjListInscrits();
        libelleObj = "";
        if (typeIsVet() && MainUI.getCurrent().getEtapeListeInscrits() != null) {
            libelleObj = MainUI.getCurrent().getEtapeListeInscrits().getLibelle();
        }
        if (typeIsElp() && MainUI.getCurrent().getElpListeInscrits() != null) {
            libelleObj = MainUI.getCurrent().getElpListeInscrits().getLibelle();
        }

        // Si l'objet est renseign
        if (code != null && typeFavori != null) {

            //Panel contenant les filtres d'affichage et le bouton de mise en favori
            HorizontalLayout panelLayout = new HorizontalLayout();
            panelLayout.setSizeFull();
            panelLayout.addStyleName("small-font-element");

            // Layout contenant les filtres
            FormLayout formInscritLayout = new FormLayout();
            formInscritLayout.setStyleName(ValoTheme.FORMLAYOUT_LIGHT);
            formInscritLayout.setSpacing(true);
            formInscritLayout.setMargin(true);

            panelFormInscrits = new Panel(code + " " + libelleObj);

            //Affichage d'une liste droulante contenant la liste des annes
            List<String> lannees = MainUI.getCurrent().getListeAnneeInscrits();
            if (lannees != null && lannees.size() > 0) {
                listeAnnees = new ComboBox(applicationContext.getMessage(NAME + ".annee", null, getLocale()));
                listeAnnees.setPageLength(5);
                listeAnnees.setTextInputAllowed(false);
                listeAnnees.setNullSelectionAllowed(false);
                listeAnnees.setWidth("150px");
                for (String annee : lannees) {
                    listeAnnees.addItem(annee);
                    int anneenplusun = Integer.parseInt(annee) + 1;
                    listeAnnees.setItemCaption(annee, annee + "/" + anneenplusun);
                }
                listeAnnees.setValue(MainUI.getCurrent().getAnneeInscrits());

                //Gestion de l'vnement sur le changement d'anne
                listeAnnees.addValueChangeListener(new ValueChangeListener() {
                    @Override
                    public void valueChange(ValueChangeEvent event) {
                        String selectedValue = (String) event.getProperty().getValue();

                        //faire le changement
                        Map<String, String> parameterMap = new HashMap<>();
                        parameterMap.put("code", code);
                        parameterMap.put("type", typeFavori);

                        //rcupration de la nouvelle liste
                        if (typeIsVet()) {
                            listeInscritsController.recupererLaListeDesInscrits(parameterMap, selectedValue,
                                    MainUI.getCurrent());
                        }
                        if (typeIsElp()) {
                            listeInscritsController.recupererLaListeDesInscritsELP(parameterMap, selectedValue,
                                    MainUI.getCurrent());
                        }

                        //update de l'affichage
                        initListe();
                    }
                });
                formInscritLayout.addComponent(listeAnnees);

            }

            //Si on affiche la liste des inscrits  un ELP
            //on doit affiche l'tape d'appartenance et ventuellement les groupes
            //Affichage d'une liste droulante contenant la liste des annes
            if (typeIsElp()) {
                List<VersionEtape> letapes = MainUI.getCurrent().getListeEtapesInscrits();
                if (letapes != null && letapes.size() > 0) {
                    listeEtapes = new ComboBox(
                            applicationContext.getMessage(NAME + ".etapes", null, getLocale()));
                    listeEtapes.setPageLength(5);
                    listeEtapes.setNullSelectionAllowed(false);
                    listeEtapes.setTextInputAllowed(false);
                    listeEtapes.setRequired(false);
                    listeEtapes.setWidth("400px");
                    listeEtapes.addItem(TOUTES_LES_ETAPES_LABEL);
                    listeEtapes.setItemCaption(TOUTES_LES_ETAPES_LABEL, TOUTES_LES_ETAPES_LABEL);
                    for (VersionEtape etape : letapes) {
                        String idEtape = etape.getId().getCod_etp() + "/" + etape.getId().getCod_vrs_vet();
                        listeEtapes.addItem(idEtape);
                        listeEtapes.setItemCaption(idEtape, "[" + idEtape + "] " + etape.getLib_web_vet());
                    }

                    if (MainUI.getCurrent().getEtapeInscrits() != null) {
                        listeEtapes.setValue(MainUI.getCurrent().getEtapeInscrits());
                    } else {

                        listeEtapes.setValue(TOUTES_LES_ETAPES_LABEL);
                    }

                    //Gestion de l'vnement sur le changement d'tape
                    listeEtapes.addValueChangeListener(new ValueChangeListener() {
                        @Override
                        public void valueChange(ValueChangeEvent event) {
                            String vetSelectionnee = (String) event.getProperty().getValue();
                            if (vetSelectionnee.equals(TOUTES_LES_ETAPES_LABEL)) {
                                vetSelectionnee = null;
                            }
                            MainUI.getCurrent().setEtapeInscrits(vetSelectionnee);

                            //faire le changement
                            String groupeSelectionne = ((listeGroupes != null
                                    && listeGroupes.getValue() != null) ? (String) listeGroupes.getValue()
                                            : null);
                            if (groupeSelectionne != null && groupeSelectionne.equals(TOUS_LES_GROUPES_LABEL)) {
                                groupeSelectionne = null;
                            }
                            filtrerInscrits(vetSelectionnee, groupeSelectionne);

                        }
                    });
                    formInscritLayout.addComponent(listeEtapes);

                }

                List<ElpDeCollection> lgroupes = MainUI.getCurrent().getListeGroupesInscrits();
                if (lgroupes != null && lgroupes.size() > 0) {
                    listeGroupes = new ComboBox();
                    listeGroupes.setPageLength(5);
                    listeGroupes.setNullSelectionAllowed(false);
                    listeGroupes.setTextInputAllowed(false);
                    listeGroupes.setRequired(false);
                    listeGroupes.setStyleName(ValoTheme.COMBOBOX_BORDERLESS);
                    listeGroupes.setWidth("348px");
                    listeGroupes.addItem(TOUS_LES_GROUPES_LABEL);
                    listeGroupes.setItemCaption(TOUS_LES_GROUPES_LABEL, TOUS_LES_GROUPES_LABEL);
                    for (ElpDeCollection edc : lgroupes) {
                        for (CollectionDeGroupes cdg : edc.getListeCollection()) {
                            for (Groupe groupe : cdg.getListeGroupes()) {
                                listeGroupes.addItem(groupe.getCleGroupe());
                                listeGroupes.setItemCaption(groupe.getCleGroupe(), groupe.getLibGroupe());

                            }
                        }
                    }
                    if (MainUI.getCurrent().getGroupeInscrits() != null) {
                        listeGroupes.setValue(MainUI.getCurrent().getGroupeInscrits());
                    } else {
                        listeGroupes.setValue(TOUS_LES_GROUPES_LABEL);
                    }

                    //Gestion de l'vnement sur le changement de groupe
                    listeGroupes.addValueChangeListener(new ValueChangeListener() {
                        @Override
                        public void valueChange(ValueChangeEvent event) {
                            String grpSelectionnee = (String) event.getProperty().getValue();
                            if (grpSelectionnee.equals(TOUS_LES_GROUPES_LABEL)) {
                                grpSelectionnee = null;
                            }
                            MainUI.getCurrent().setGroupeInscrits(grpSelectionnee);

                            //faire le changement
                            String etapeSelectionnee = ((listeEtapes != null && listeEtapes.getValue() != null)
                                    ? (String) listeEtapes.getValue()
                                    : null);
                            if (etapeSelectionnee != null
                                    && etapeSelectionnee.equals(TOUTES_LES_ETAPES_LABEL)) {
                                etapeSelectionnee = null;
                            }
                            filtrerInscrits(etapeSelectionnee, grpSelectionnee);

                        }
                    });

                    HorizontalLayout gpLayout = new HorizontalLayout();
                    gpLayout.setCaption(applicationContext.getMessage(NAME + ".groupes", null, getLocale()));
                    gpLayout.setMargin(false);
                    gpLayout.setSpacing(false);
                    gpLayout.addComponent(listeGroupes);
                    Button btnDetailGpe = new Button();
                    btnDetailGpe.setWidth("52px");
                    btnDetailGpe.setHeight("32px");
                    btnDetailGpe.setStyleName(ValoTheme.BUTTON_PRIMARY);
                    btnDetailGpe.setIcon(FontAwesome.SEARCH);
                    btnDetailGpe.setDescription(
                            applicationContext.getMessage(NAME + ".detail.groupes", null, getLocale()));
                    btnDetailGpe.addClickListener(e -> {
                        String vet = null;
                        if (listeEtapes != null && listeEtapes.getValue() != null
                                && !listeEtapes.getValue().equals(TOUTES_LES_ETAPES_LABEL)) {
                            vet = listeEtapes.getItemCaption(listeEtapes.getValue());
                        }
                        DetailGroupesWindow dgw = new DetailGroupesWindow(lgroupes,
                                panelFormInscrits.getCaption(), vet, (String) listeAnnees.getValue());
                        UI.getCurrent().addWindow(dgw);
                    });
                    gpLayout.addComponent(btnDetailGpe);

                    formInscritLayout.addComponent(gpLayout);

                }
            }
            panelLayout.addComponent(formInscritLayout);
            panelLayout.setComponentAlignment(formInscritLayout, Alignment.MIDDLE_LEFT);

            //Cration du favori pour l'objet concern pas la liste des inscrits
            List<Favoris> lfav = favorisController.getFavoris();
            FavorisPK favpk = new FavorisPK();
            favpk.setLogin(userController.getCurrentUserName());
            favpk.setIdfav(code);
            favpk.setTypfav(typeFavori);
            Favoris favori = new Favoris();
            favori.setId(favpk);
            //Cration du bouton pour ajouter l'objet aux favoris
            favoriLayout = new VerticalLayout();
            favoriLayout.setSizeFull();
            favoriLayout.setMargin(true);
            favoriLayout.setSpacing(true);
            btnAjoutFavori = new Button(
                    applicationContext.getMessage(NAME + ".btn.ajoutFavori", null, getLocale()));
            btnAjoutFavori.setIcon(FontAwesome.STAR_O);
            btnAjoutFavori.addStyleName(ValoTheme.BUTTON_PRIMARY);
            btnAjoutFavori.setDescription(
                    applicationContext.getMessage(NAME + ".btn.ajoutFavori", null, getLocale()));
            btnAjoutFavori.addClickListener(e -> {

                //creation du favori en base sur le clic du bouton
                favorisController.saveFavori(favori);

                //On cache le bouton de mise en favori
                btnAjoutFavori.setVisible(false);

                //Affichage d'un message de confirmation
                Notification.show(
                        applicationContext.getMessage(NAME + ".message.favoriAjoute", null, getLocale()),
                        Type.TRAY_NOTIFICATION);
            });

            //Ajout du bouton  l'interface
            favoriLayout.addComponent(btnAjoutFavori);
            favoriLayout.setComponentAlignment(btnAjoutFavori, Alignment.TOP_RIGHT);
            if (typeIsElp()) {
                btnMasquerFiltre = new Button(
                        applicationContext.getMessage(NAME + ".btn.btnMasquerFiltre", null, getLocale()));
                btnMasquerFiltre.setIcon(FontAwesome.CHEVRON_CIRCLE_UP);
                btnMasquerFiltre.addStyleName(ValoTheme.BUTTON_FRIENDLY);
                btnMasquerFiltre.setDescription(
                        applicationContext.getMessage(NAME + ".btn.btnMasquerFiltre", null, getLocale()));
                btnMasquerFiltre.addClickListener(e -> {
                    panelFormInscrits.setContent(null);
                    if (btnDisplayFiltres != null) {
                        btnDisplayFiltres.setVisible(true);
                    }
                });
                favoriLayout.addComponent(btnMasquerFiltre);
                favoriLayout.setComponentAlignment(btnMasquerFiltre, Alignment.BOTTOM_RIGHT);
            }
            panelLayout.addComponent(favoriLayout);
            panelLayout.setComponentAlignment(favoriLayout, Alignment.TOP_RIGHT);

            //Si l'objet est dj en favori
            if (lfav != null && lfav.contains(favori)) {

                //On affiche pas le bouton de mise en favori
                btnAjoutFavori.setVisible(false);
            }

            panelFormInscrits.setContent(panelLayout);
            addComponent(panelFormInscrits);

            //Rcupration de la liste des inscrits
            linscrits = MainUI.getCurrent().getListeInscrits();

            refreshListeCodind(new BeanItemContainer<>(Inscrit.class, linscrits));

            //Test si la liste contient des tudiants
            if (linscrits != null && linscrits.size() > 0 && listecodind != null && listecodind.size() > 0) {
                infoLayout = new VerticalLayout();
                infoLayout.setSizeFull();

                //Layout avec le nb d'inscrit, le bouton trombinoscope et le bouton d'export
                HorizontalLayout resumeLayout = new HorizontalLayout();
                resumeLayout.setWidth("100%");
                resumeLayout.setHeight("50px");

                //Label affichant le nb d'inscrits
                infoNbInscrit = new Label(
                        applicationContext.getMessage(NAME + ".message.nbinscrit", null, getLocale()) + " : "
                                + linscrits.size());

                leftResumeLayout = new HorizontalLayout();
                leftResumeLayout.addComponent(infoNbInscrit);
                leftResumeLayout.setComponentAlignment(infoNbInscrit, Alignment.MIDDLE_LEFT);

                Button infoDescriptionButton = new Button();
                infoDescriptionButton.setStyleName(ValoTheme.BUTTON_BORDERLESS_COLORED);
                infoDescriptionButton.setIcon(FontAwesome.INFO_CIRCLE);
                infoDescriptionButton.setDescription(applicationContext
                        .getMessage(NAME + ".message.info.predescription", null, getLocale()));
                infoDescriptionButton.addClickListener(e -> {
                    String message = "";
                    if (typeIsVet()) {
                        message = applicationContext.getMessage(NAME + ".message.info.vetdescription", null,
                                getLocale());
                    }
                    if (typeIsElp()) {
                        message = applicationContext.getMessage(NAME + ".message.info.elpdescription", null,
                                getLocale());
                    }

                    HelpBasicWindow hbw = new HelpBasicWindow(message,
                            applicationContext.getMessage("helpWindow.defaultTitle", null, getLocale()));
                    UI.getCurrent().addWindow(hbw);
                });
                leftResumeLayout.addComponent(infoDescriptionButton);
                leftResumeLayout.setComponentAlignment(infoDescriptionButton, Alignment.MIDDLE_LEFT);

                //Bouton export trombinoscope
                btnExportTrombi = new Button();
                btnExportTrombi.setIcon(FontAwesome.FILE_PDF_O);
                btnExportTrombi.setStyleName(ValoTheme.BUTTON_BORDERLESS_COLORED);
                btnExportTrombi.addStyleName("button-icon");
                btnExportTrombi.addStyleName("red-button-icon");
                btnExportTrombi.setDescription(
                        applicationContext.getMessage(NAME + ".pdf.trombinoscope.link", null, getLocale()));

                //methode qui permet de generer l'export  la demande
                //Cration du nom du fichier
                String nomFichier = applicationContext.getMessage("pdf.trombinoscope.title", null,
                        Locale.getDefault()) + "_" + panelFormInscrits.getCaption() + ".pdf";
                nomFichier = nomFichier.replaceAll(" ", "_");
                StreamResource resource = new StreamResource(new StreamResource.StreamSource() {
                    @Override
                    public InputStream getStream() {

                        //recuperation de l'anne slectionne et du libell de l'ELP
                        String annee = (String) listeAnnees.getValue();
                        String libObj = panelFormInscrits.getCaption();

                        //cration du trombi en pdf
                        return listeInscritsController.getPdfStream(linscrits, listecodind, libObj, annee);
                    }
                }, nomFichier);
                resource.setMIMEType("application/force-download;charset=UTF-8");
                resource.setCacheTime(0);

                //On ajoute le FD sur le bouton d'export
                if (PropertyUtils.isPushEnabled()) {
                    new MyFileDownloader(resource).extend(btnExportTrombi);
                } else {
                    FileDownloader fdpdf = new FileDownloader(resource);
                    fdpdf.setOverrideContentType(false);
                    fdpdf.extend(btnExportTrombi);
                }

                leftResumeLayout.addComponent(btnExportTrombi);
                leftResumeLayout.setComponentAlignment(btnExportTrombi, Alignment.MIDDLE_LEFT);
                //if(!afficherTrombinoscope){

                //On cache le bouton d'export pdf
                btnExportTrombi.setVisible(false);
                //}

                //Bouton export liste excel
                btnExportExcel = new Button();
                btnExportExcel.setIcon(FontAwesome.FILE_EXCEL_O);
                btnExportExcel.setStyleName(ValoTheme.BUTTON_BORDERLESS_COLORED);
                btnExportExcel.addStyleName("button-icon");
                btnExportExcel
                        .setDescription(applicationContext.getMessage(NAME + ".excel.link", null, getLocale()));
                String nomFichierXls = applicationContext.getMessage("excel.listeinscrits.title", null,
                        Locale.getDefault()) + "_" + panelFormInscrits.getCaption() + ".xls";
                nomFichierXls = nomFichierXls.replaceAll(" ", "_");

                StreamResource resourceXls = new StreamResource(new StreamResource.StreamSource() {

                    @Override
                    public InputStream getStream() {

                        //recuperation de l'anne slectionne et du libell de l'ELP
                        String annee = (String) listeAnnees.getValue();
                        String libObj = panelFormInscrits.getCaption();

                        //cration du trombi en pdf
                        return listeInscritsController.getXlsStream(linscrits, listecodind, listeGroupes,
                                libObj, annee, typeFavori);
                    }
                }, nomFichierXls);
                resourceXls.setMIMEType("application/force-download;charset=UTF-8");
                resourceXls.setCacheTime(0);
                //On ajoute le FD sur le bouton d'export
                if (PropertyUtils.isPushEnabled()) {
                    new MyFileDownloader(resourceXls).extend(btnExportExcel);
                } else {
                    FileDownloader fd = new FileDownloader(resourceXls);
                    fd.setOverrideContentType(false);
                    fd.extend(btnExportExcel);
                }

                //if(!afficherTrombinoscope){
                //On change le bouton d'export pdf par le bouton export excel
                leftResumeLayout.replaceComponent(btnExportTrombi, btnExportExcel);
                //}

                resumeLayout.addComponent(leftResumeLayout);

                //Middle layout avec les bouton de collapse des colonnes
                middleResumeLayout = new HorizontalLayout();
                middleResumeLayout.setSizeFull();
                middleResumeLayout.addStyleName("small-font-element");
                middleResumeLayout.setSpacing(true);

                if (!typeIsVet()) {
                    collapseEtp = new CheckBox(
                            applicationContext.getMessage(NAME + ".collapseEtp.title", null, getLocale()));
                    collapseEtp.setValue(true);
                    collapseEtp.addValueChangeListener(e -> {
                        inscritstable.setColumnCollapsed("etape", !collapseEtp.getValue());
                    });
                    collapseEtp.setDescription(applicationContext.getMessage(NAME + ".collapseEtp.description",
                            null, getLocale()));
                    middleResumeLayout.addComponent(collapseEtp);
                    middleResumeLayout.setComponentAlignment(collapseEtp, Alignment.MIDDLE_CENTER);
                }
                collapseResultatsS1 = new CheckBox(
                        applicationContext.getMessage(NAME + ".collapseResultatsS1.title", null, getLocale()));
                collapseResultatsS1.setValue(false);
                collapseResultatsS1.addValueChangeListener(e -> {
                    inscritstable.setColumnCollapsed("notes1", !collapseResultatsS1.getValue());
                });
                collapseResultatsS1.setDescription(applicationContext
                        .getMessage(NAME + ".collapseResultatsS1.description", null, getLocale()));
                middleResumeLayout.addComponent(collapseResultatsS1);
                middleResumeLayout.setComponentAlignment(collapseResultatsS1, Alignment.MIDDLE_CENTER);

                collapseResultatsS2 = new CheckBox(
                        applicationContext.getMessage(NAME + ".collapseResultatsS2.title", null, getLocale()));
                collapseResultatsS2.setValue(false);
                collapseResultatsS2.addValueChangeListener(e -> {
                    inscritstable.setColumnCollapsed("notes2", !collapseResultatsS2.getValue());
                });
                collapseResultatsS2.setDescription(applicationContext
                        .getMessage(NAME + ".collapseResultatsS2.description", null, getLocale()));
                middleResumeLayout.addComponent(collapseResultatsS2);
                middleResumeLayout.setComponentAlignment(collapseResultatsS2, Alignment.MIDDLE_CENTER);

                resumeLayout.addComponent(middleResumeLayout);

                HorizontalLayout buttonResumeLayout = new HorizontalLayout();
                buttonResumeLayout.setSizeFull();
                buttonResumeLayout.setSpacing(true);
                //Bouton pour afficher les filtres
                btnDisplayFiltres = new Button();
                btnDisplayFiltres.setWidth("52px");
                btnDisplayFiltres.setHeight("32px");
                btnDisplayFiltres.setStyleName(ValoTheme.BUTTON_FRIENDLY);
                btnDisplayFiltres.setIcon(FontAwesome.FILTER);
                btnDisplayFiltres.setDescription(
                        applicationContext.getMessage(NAME + ".btn.displayFilters", null, getLocale()));
                btnDisplayFiltres.addClickListener(e -> {
                    panelFormInscrits.setContent(panelLayout);
                    btnDisplayFiltres.setVisible(false);
                });
                buttonResumeLayout.addComponent(btnDisplayFiltres);
                buttonResumeLayout.setComponentAlignment(btnDisplayFiltres, Alignment.MIDDLE_RIGHT);
                buttonResumeLayout.setExpandRatio(btnDisplayFiltres, 1);
                btnDisplayFiltres.setVisible(false);

                //Bouton trombinoscope
                btnTrombi = new Button(
                        applicationContext.getMessage(NAME + ".message.trombinoscope", null, getLocale()));
                if (listeInscritsController.isPhotoProviderOperationnel()) {
                    btnTrombi.setIcon(FontAwesome.GROUP);
                    buttonResumeLayout.addComponent(btnTrombi);

                    //Gestion du clic sur le bouton trombinoscope
                    btnTrombi.addClickListener(e -> {

                        //Si on doit afficher une fentre de loading pendant l'excution
                        if (PropertyUtils.isPushEnabled() && PropertyUtils.isShowLoadingIndicator()) {
                            //affichage de la pop-up de loading
                            MainUI.getCurrent().startBusyIndicator();

                            //Execution de la mthode en parallle dans un thread
                            executorService.execute(new Runnable() {
                                public void run() {
                                    MainUI.getCurrent().access(new Runnable() {
                                        @Override
                                        public void run() {
                                            executeDisplayTrombinoscope();
                                            //close de la pop-up de loading
                                            MainUI.getCurrent().stopBusyIndicator();
                                        }
                                    });
                                }
                            });

                        } else {
                            //On ne doit pas afficher de fentre de loading, on excute directement la mthode
                            executeDisplayTrombinoscope();
                        }

                    });
                    buttonResumeLayout.setComponentAlignment(btnTrombi, Alignment.MIDDLE_RIGHT);
                }

                //Bouton de retour  l'affichage de la liste
                btnRetourListe = new Button(
                        applicationContext.getMessage(NAME + ".message.retourliste", null, getLocale()));
                btnRetourListe.setIcon(FontAwesome.BARS);
                buttonResumeLayout.addComponent(btnRetourListe);
                //if(!afficherTrombinoscope){
                btnRetourListe.setVisible(false);
                //}

                //Gestion du clic sur le bouton de  retour  l'affichage de la liste
                btnRetourListe.addClickListener(e -> {
                    afficherTrombinoscope = false;
                    btnExportTrombi.setVisible(false);
                    leftResumeLayout.replaceComponent(btnExportTrombi, btnExportExcel);
                    btnTrombi.setVisible(true);
                    btnRetourListe.setVisible(false);
                    dataLayout.removeAllComponents();
                    dataLayout.addComponent(inscritstable);
                    middleResumeLayout.setVisible(true);

                });
                buttonResumeLayout.setComponentAlignment(btnRetourListe, Alignment.MIDDLE_RIGHT);

                resumeLayout.addComponent(buttonResumeLayout);

                infoLayout.addComponent(resumeLayout);

                //Layout qui contient la liste des inscrits et le trombinoscope
                dataLayout = new VerticalLayout();
                dataLayout.setSizeFull();

                //Table contenant la liste des inscrits
                inscritstable = new Table(null, new BeanItemContainer<>(Inscrit.class, linscrits));

                inscritstable.addStyleName("table-without-column-selector");
                inscritstable.setSizeFull();
                inscritstable.setVisibleColumns(new String[0]);

                String[] fields = INS_FIELDS_ELP;
                if (typeIsVet()) {
                    fields = INS_FIELDS_VET;
                }
                for (String fieldName : fields) {
                    inscritstable.setColumnHeader(fieldName,
                            applicationContext.getMessage(NAME + ".table." + fieldName, null, getLocale()));
                }

                inscritstable.addGeneratedColumn("cod_etu", new CodEtuColumnGenerator());
                inscritstable.setColumnHeader("cod_etu",
                        applicationContext.getMessage(NAME + ".table.cod_etu", null, getLocale()));
                inscritstable.addGeneratedColumn("email", new MailColumnGenerator());
                inscritstable.setColumnHeader("email",
                        applicationContext.getMessage(NAME + ".table.email", null, getLocale()));
                inscritstable.addGeneratedColumn("notes1", new Session1ColumnGenerator());
                inscritstable.setColumnHeader("notes1",
                        applicationContext.getMessage(NAME + ".table.notes1", null, getLocale()));
                inscritstable.addGeneratedColumn("notes2", new Session2ColumnGenerator());
                inscritstable.setColumnHeader("notes2",
                        applicationContext.getMessage(NAME + ".table.notes2", null, getLocale()));

                //Si on est sur un ELP
                if (typeIsElp()) {
                    //on affiche l'tape de rattachement
                    inscritstable.addGeneratedColumn("etape", new EtapeColumnGenerator());
                    inscritstable.setColumnHeader("etape",
                            applicationContext.getMessage(NAME + ".table.etape", null, getLocale()));
                }

                String[] fields_to_display = INS_FIELDS_TO_DISPLAY_ELP;
                if (typeIsVet()) {
                    fields_to_display = INS_FIELDS_TO_DISPLAY_VET;
                }

                inscritstable.setVisibleColumns((Object[]) fields_to_display);

                inscritstable.setColumnCollapsingAllowed(true);
                inscritstable.setColumnReorderingAllowed(false);

                //On masque les colonnes de notes par dfaut
                inscritstable.setColumnCollapsed("notes1", true);
                inscritstable.setColumnCollapsed("notes2", true);

                inscritstable.setSelectable(false);
                inscritstable.setImmediate(true);
                inscritstable.addStyleName("scrollabletable");
                //Si on n'a pas dj demand  afficher le trombinoscope
                //if(!afficherTrombinoscope){
                //la layout contient la table
                dataLayout.addComponent(inscritstable);
                //}

                //Layout contenant le gridLayout correspondant au trombinoscope
                verticalLayoutForTrombi = new VerticalLayout();
                verticalLayoutForTrombi.setSizeFull();
                verticalLayoutForTrombi.addStyleName("v-scrollablepanel");

                //Cration du trombinoscope
                displayTrombinoscope();

                verticalLayoutForTrombi.addComponent(trombiLayout);
                verticalLayoutForTrombi.setSizeFull();
                verticalLayoutForTrombi.setHeight(null);

                //Si on a demand  afficher le trombinoscope
                /*if(afficherTrombinoscope){
                   //Le layout contient le trombi  afficher
                   dataLayout.addComponent(verticalLayoutForTrombi);
                }*/
                infoLayout.addComponent(dataLayout);
                infoLayout.setExpandRatio(dataLayout, 1);
                addComponent(infoLayout);
                setExpandRatio(infoLayout, 1);

                //Si on a demand  afficher le trombinoscope
                if (afficherTrombinoscope) {
                    //On execute la procdure d'affichage du trombinoscope
                    executeDisplayTrombinoscope();
                }
            } else {
                Label infoAucuninscrit = new Label(
                        applicationContext.getMessage(NAME + ".message.aucuninscrit", null, getLocale()));
                addComponent(infoAucuninscrit);
                setComponentAlignment(infoAucuninscrit, Alignment.TOP_CENTER);
                setExpandRatio(infoAucuninscrit, 1);
            }

        }
    }
}

From source file:nl.kpmg.lcm.ui.view.administration.LcmIdPanel.java

License:Apache License

public void refreshLcmIdPanel() {
    VerticalLayout panelContent = new VerticalLayout();
    panelContent.setMargin(true);//from w  ww  .j ava2 s.  co m
    panelContent.setSpacing(true);

    HorizontalLayout idLayout = new HorizontalLayout();
    idLayout.setMargin(true);
    idLayout.setSpacing(true);
    idLayout.addComponent(new Label("Your LCM id: " + lcmId.getItem().getLcmId()));
    idLayout.addComponent(new Button("Copy", new Button.ClickListener() {
        @Override
        public void buttonClick(Button.ClickEvent event) {
            StringSelection stringSelection = new StringSelection(lcmId.getItem().getLcmId());
            Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
            clipboard.setContents(stringSelection, null);
        }
    }));

    HorizontalLayout certificateLayout = new HorizontalLayout();
    certificateLayout.setMargin(true);
    certificateLayout.setSpacing(true);
    certificateLayout.addComponent(new Label("Certificate file that need to be given to the Authorized LCM. "));
    FileResource certificateResource = new FileResource(new File(certificateFilepath));
    FileDownloader fileDownloader = new FileDownloader(certificateResource);
    Button certificateDownload = new Button("Download Certificate");
    fileDownloader.extend(certificateDownload);

    certificateLayout.addComponent(certificateDownload);

    panelContent.addComponent(idLayout);
    panelContent.addComponent(certificateLayout);
    panel.setContent(panelContent);
}

From source file:org.adho.dhconvalidator.ui.DHConvalidatorExample.java

@Override
protected void init(VaadinRequest request) {
    try {/*w  w  w  .  j  av a2 s  .  c om*/
        Messages.setLocaleProvider(VaadinSessionLocaleProvider.INSTANCE);

        VerticalLayout content = new VerticalLayout();
        content.setMargin(true);
        content.setSpacing(true);

        setContent(content);

        HeaderPanel headerPanel = new HeaderPanel(null);
        headerPanel.getBackLink().setVisible(false);

        content.addComponent(headerPanel);

        // prepare downloader for input file
        Button btGetInputfile = new Button(Messages.getString("DHConvalidatorExample.btInputCaption"));
        content.addComponent(btGetInputfile);

        FileDownloader inputFileDownloader = new FileDownloader(new StreamResource(new StreamSource() {

            @Override
            public InputStream getStream() {
                return Thread.currentThread().getContextClassLoader().getResourceAsStream(
                        "/org/adho/dhconvalidator/conversion/example/1_Digital_Humanities.odt");
            }
        }, "1_Digital_Humanities.odt"));
        inputFileDownloader.extend(btGetInputfile);

        // prepare downloader for output file
        Button btGetOutputfile = new Button(
                Messages.getString("DHConvalidatorExample.btConversionResultCaption"));
        content.addComponent(btGetOutputfile);

        FileDownloader outputFileDownloader = new FileDownloader(new StreamResource(new StreamSource() {

            @Override
            public InputStream getStream() {
                return Thread.currentThread().getContextClassLoader().getResourceAsStream(
                        "/org/adho/dhconvalidator/conversion/example/1_Digital_Humanities.dhc");
            }
        }, "1_Digital_Humanities.dhc"));
        outputFileDownloader.extend(btGetOutputfile);

        // setup visual feedback
        Label preview = new Label("", ContentMode.HTML);
        preview.addStyleName("tei-preview");
        preview.setWidth("800px");

        content.addComponent(preview);
        content.setComponentAlignment(preview, Alignment.MIDDLE_CENTER);

        ByteArrayOutputStream buffer = new ByteArrayOutputStream();

        IOUtils.copy(Thread.currentThread().getContextClassLoader().getResourceAsStream(
                "/org/adho/dhconvalidator/conversion/example/1_Digital_Humanities.html"), buffer);

        preview.setValue(buffer.toString("UTF-8"));

        Page.getCurrent().setTitle(Messages.getString("DHConvalidatorExample.title"));
    } catch (Exception e) {
        e.printStackTrace();
    }
}