Example usage for com.vaadin.ui VerticalLayout setMargin

List of usage examples for com.vaadin.ui VerticalLayout setMargin

Introduction

In this page you can find the example usage for com.vaadin.ui VerticalLayout setMargin.

Prototype

@Override
    public void setMargin(boolean enabled) 

Source Link

Usage

From source file:de.uni_leipzig.informatik.pcai042.boa.gui.evaluation.EvaluationView.java

License:Open Source License

/**
 * Build content 'evaluation process' of tab 3.
 * //w  w  w  .j ava  2  s  .com
 * @return content of third tab
 */
private Layout buildTab3Content() {
    VerticalLayout tab3Content = new VerticalLayout();
    tab3Content.setSpacing(true);
    tab3Content.setMargin(true);
    tab3Content.setSizeFull();

    Label instructions = new Label(
            "<b>Instructions:</b> <i>Please select and click a sentence below in order to process the evaluation.</i>",
            Label.CONTENT_XHTML);
    tab3Content.addComponent(instructions);

    this.tableEvaluation = new Table("Evaluation process:");
    tableEvaluation.setHeight("150px");
    tableEvaluation.setWidth("100%");
    tableEvaluation.setImmediate(true);
    tableEvaluation.setSelectable(true);
    tableEvaluation.setMultiSelect(false);
    tableEvaluation.setSortDisabled(false);
    tableEvaluation.addContainerProperty("ID", Integer.class, null);
    tableEvaluation.addContainerProperty("Sentence", String.class, null);
    tableEvaluation.addContainerProperty("Precision", Double.class, null);
    tableEvaluation.addContainerProperty("Recall", Double.class, null);
    tableEvaluation.addContainerProperty("F-Score", Double.class, null);
    tab3Content.addComponent(tableEvaluation);

    this.buttonNext2 = new Button("Next");
    buttonNext2.setImmediate(true);
    buttonNext2.setDescription("Get the next sentence in table");
    tab3Content.addComponent(buttonNext2);

    this.textAreaEvalSentence = new TextArea("Sentence:");
    textAreaEvalSentence.setImmediate(false);
    textAreaEvalSentence.setReadOnly(true);
    textAreaEvalSentence.setRows(3);
    textAreaEvalSentence.setWidth("100%");
    tab3Content.addComponent(textAreaEvalSentence);

    HorizontalLayout hlay1 = new HorizontalLayout();
    this.listSelectGoldstandard = new ListSelect("Goldstandard:");
    listSelectGoldstandard.setImmediate(true);
    listSelectGoldstandard.setHeight("120px");
    listSelectGoldstandard.setWidth("100%");
    listSelectGoldstandard.setNullSelectionAllowed(false);
    this.listSelectFramework = new ListSelect("Framework:");
    listSelectFramework.setImmediate(true);
    listSelectFramework.setHeight("120px");
    listSelectFramework.setWidth("100%");
    listSelectFramework.setNullSelectionAllowed(false);
    hlay1.setSpacing(true);
    hlay1.setMargin(false);
    hlay1.setWidth("100%");
    hlay1.addComponent(listSelectGoldstandard);
    hlay1.addComponent(listSelectFramework);
    tab3Content.addComponent(hlay1);

    return tab3Content;
}

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

License:Open Source License

/**
 * //from  ww  w  .j  a v a2  s .  c  om
 * @return
 */
void initOptionLayout() {
    optionLayout.removeAllComponents();
    optionLayout.setWidth("100%");
    optionLayout.setVisible(false);

    VerticalLayout optionLayoutContent = new VerticalLayout();

    Button addSample = new Button("Add Sample");
    addSample.addClickListener(new ClickListener() {

        @Override
        public void buttonClick(ClickEvent event) {
            sampleOptions.addBean(new NewIvacSampleBean("", 0, "", false, false, false, "", ""));
        }
    });

    optionLayoutContent.setMargin(new MarginInfo(true, false, false, false));
    optionLayoutContent.setHeight(null);
    optionLayoutContent.setWidth("100%");
    optionLayoutContent.setSpacing(true);

    final Grid optionGrid = new Grid();
    optionGrid.setWidth("80%");
    // optionGrid.setCaption("Which biological samples are available for the patient(s) and which
    // experiments will be performed?");

    gridInfo = new CustomVisibilityComponent(new Label(""));
    ((Label) gridInfo.getInnerComponent()).addStyleName(ValoTheme.LABEL_LARGE);

    Component gridInfoContent = Utils.questionize(gridInfo,
            "Which biological samples are available for the patient(s) and which experiments will be performed?",
            "Extracted Samples");

    // optionGrid.setSelectionMode(SelectionMode.MULTI);
    optionGrid.setEditorEnabled(true);

    optionGrid.setContainerDataSource(sampleOptions);
    optionGrid.setColumnOrder("type", "secondaryName", "tissue", "amount", "dnaSeq", "rnaSeq", "deepSeq");

    optionLayoutContent.addComponent(gridInfoContent);
    optionLayoutContent.addComponent(optionGrid);
    optionLayoutContent.addComponent(addSample);

    final GridEditForm form = new GridEditForm(
            datahandler.getOpenBisClient().getVocabCodesForVocab("Q_PRIMARY_TISSUES"),
            datahandler.getOpenBisClient().getVocabCodesForVocab("Q_SEQUENCER_DEVICES"));

    optionLayoutContent.addComponent(form);
    form.setVisible(false);

    optionGrid.addSelectionListener(new SelectionListener() {

        @Override
        public void select(SelectionEvent event) {
            BeanItem<NewIvacSampleBean> item = sampleOptions.getItem(optionGrid.getSelectedRow());
            form.fieldGroup.setItemDataSource(item);
            form.setVisible(true);
        }
    });

    optionLayout.addComponent(optionLayoutContent);
}

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

License:Open Source License

/**
 * /*from   w  w  w. ja v a 2 s . co  m*/
 * @param id
 */
public void updateUI(String id) {

    currentID = id;
    sampleBioGrid = new Grid();
    sampleEntityGrid = new Grid();

    sampleEntityGrid.addSelectionListener(new SelectionListener() {

        @Override
        public void select(SelectionEvent event) {
            BeanItem<BiologicalEntitySampleBean> selectedBean = samplesEntity
                    .getItem(sampleEntityGrid.getSelectedRow());

            if (selectedBean == null) {
                TextField filterField = (TextField) sampleBioGrid.getHeaderRow(1).getCell("biologicalEntity")
                        .getComponent();
                filterField.setValue("");
            } else {
                TextField filterField = (TextField) sampleBioGrid.getHeaderRow(1).getCell("biologicalEntity")
                        .getComponent();
                filterField.setValue(selectedBean.getBean().getCode());
                // samplesBio.addContainerFilter("biologicalEntity",
                // selectedBean.getBean().getSecondaryName(), false, false);
            }
        }

    });

    if (id == null)
        return;

    BeanItemContainer<BiologicalSampleBean> samplesBioContainer = new BeanItemContainer<BiologicalSampleBean>(
            BiologicalSampleBean.class);
    BeanItemContainer<BiologicalEntitySampleBean> samplesEntityContainer = new BeanItemContainer<BiologicalEntitySampleBean>(
            BiologicalEntitySampleBean.class);

    List<Sample> allSamples = datahandler.getOpenBisClient()
            .getSamplesWithParentsAndChildrenOfProjectBySearchService(id);

    List<VocabularyTerm> terms = null;
    Map<String, String> termsMap = new HashMap<String, String>();

    for (Sample sample : allSamples) {

        if (sample.getSampleTypeCode().equals(sampleTypes.Q_BIOLOGICAL_ENTITY.toString())) {

            Map<String, String> sampleProperties = sample.getProperties();

            BiologicalEntitySampleBean newEntityBean = new BiologicalEntitySampleBean();
            newEntityBean.setCode(sample.getCode());
            newEntityBean.setId(sample.getIdentifier());
            newEntityBean.setType(sample.getSampleTypeCode());
            newEntityBean.setAdditionalInfo(sampleProperties.get("Q_ADDITIONAL_INFO"));
            newEntityBean.setExternalDB(sampleProperties.get("Q_EXTERNALDB_ID"));
            newEntityBean.setSecondaryName(sampleProperties.get("Q_SECONDARY_NAME"));

            String organismID = sampleProperties.get("Q_NCBI_ORGANISM");
            newEntityBean.setOrganism(organismID);

            if (terms != null) {
                if (termsMap.containsKey(organismID)) {
                    newEntityBean.setOrganismName(termsMap.get(organismID));
                } else {
                    for (VocabularyTerm term : terms) {
                        if (term.getCode().equals(organismID)) {
                            newEntityBean.setOrganismName(term.getLabel());
                            break;
                        }
                    }
                }
            } else {
                for (Vocabulary vocab : datahandler.getOpenBisClient().getFacade().listVocabularies()) {
                    if (vocab.getCode().equals("Q_NCBI_TAXONOMY")) {
                        terms = vocab.getTerms();
                        for (VocabularyTerm term : vocab.getTerms()) {
                            if (term.getCode().equals(organismID)) {
                                newEntityBean.setOrganismName(term.getLabel());
                                termsMap.put(organismID, term.getLabel());
                                break;
                            }
                        }
                        break;
                    }
                }
            }

            newEntityBean.setProperties(sampleProperties);
            newEntityBean.setGender(sampleProperties.get("Q_GENDER"));
            samplesEntityContainer.addBean(newEntityBean);

            // for (Sample child : datahandler.getOpenBisClient().getChildrenSamples(sample)) {
            for (Sample realChild : sample.getChildren()) {
                if (realChild.getSampleTypeCode().equals(sampleTypes.Q_BIOLOGICAL_SAMPLE.toString())) {
                    // Sample realChild =
                    // datahandler.getOpenBisClient().getSampleByIdentifier(child.getIdentifier());

                    Map<String, String> sampleBioProperties = realChild.getProperties();

                    BiologicalSampleBean newBean = new BiologicalSampleBean();
                    newBean.setCode(realChild.getCode());
                    newBean.setId(realChild.getIdentifier());
                    newBean.setType(realChild.getSampleTypeCode());
                    newBean.setPrimaryTissue(sampleBioProperties.get("Q_PRIMARY_TISSUE"));
                    newBean.setTissueDetailed(sampleBioProperties.get("Q_TISSUE_DETAILED"));
                    newBean.setBiologicalEntity(sample.getCode());

                    newBean.setAdditionalInfo(sampleBioProperties.get("Q_ADDITIONAL_INFO"));
                    newBean.setExternalDB(sampleBioProperties.get("Q_EXTERNALDB_ID"));
                    newBean.setSecondaryName(sampleBioProperties.get("Q_SECONDARY_NAME"));
                    newBean.setProperties(sampleBioProperties);

                    samplesBioContainer.addBean(newBean);
                }
            }
        }
    }

    numberOfBioSamples = samplesBioContainer.size();
    numberOfEntitySamples = samplesEntityContainer.size();

    samplesBio = samplesBioContainer;
    samplesEntity = samplesEntityContainer;

    sampleEntityGrid.removeAllColumns();

    final GeneratedPropertyContainer gpcEntity = new GeneratedPropertyContainer(samplesEntity);
    gpcEntity.removeContainerProperty("id");
    gpcEntity.removeContainerProperty("type");
    gpcEntity.removeContainerProperty("organismName");
    gpcEntity.removeContainerProperty("organism");

    sampleEntityGrid.setContainerDataSource(gpcEntity);
    sampleEntityGrid.setColumnReorderingAllowed(true);

    gpcEntity.addGeneratedProperty("Organism", new PropertyValueGenerator<String>() {

        @Override
        public Class<String> getType() {
            return String.class;
        }

        @Override
        public String getValue(Item item, Object itemId, Object propertyId) {
            String ncbi = String.format(
                    "http://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?mode=Undef&name=%s&lvl=0&srchmode=1&keep=1&unlock' target='_blank'>%s</a>",
                    item.getItemProperty("organism").getValue(),
                    item.getItemProperty("organismName").getValue());
            String link = String.format("<a href='%s", ncbi);

            return link;
        }
    });

    sampleEntityGrid.getColumn("Organism").setRenderer(new HtmlRenderer());

    final GeneratedPropertyContainer gpcBio = new GeneratedPropertyContainer(samplesBio);
    gpcBio.removeContainerProperty("id");
    gpcBio.removeContainerProperty("type");

    sampleBioGrid.setContainerDataSource(gpcBio);
    sampleBioGrid.setColumnReorderingAllowed(true);
    sampleBioGrid.setColumnOrder("secondaryName", "code");

    gpcEntity.addGeneratedProperty("edit", new PropertyValueGenerator<String>() {
        @Override
        public String getValue(Item item, Object itemId, Object propertyId) {
            return "Edit";
        }

        @Override
        public Class<String> getType() {
            return String.class;
        }
    });

    gpcBio.addGeneratedProperty("edit", new PropertyValueGenerator<String>() {
        @Override
        public String getValue(Item item, Object itemId, Object propertyId) {
            return "Edit";
        }

        @Override
        public Class<String> getType() {
            return String.class;
        }
    });

    sampleEntityGrid.addItemClickListener(new ItemClickListener() {

        @Override
        public void itemClick(ItemClickEvent event) {

            BeanItem selected = (BeanItem) samplesEntity.getItem(event.getItemId());
            BiologicalEntitySampleBean selectedExp = (BiologicalEntitySampleBean) selected.getBean();

            State state = (State) UI.getCurrent().getSession().getAttribute("state");
            ArrayList<String> message = new ArrayList<String>();
            message.add("clicked");
            message.add(selectedExp.getId());
            message.add("sample");
            state.notifyObservers(message);
        }
    });

    sampleEntityGrid.getColumn("edit").setRenderer(new ButtonRenderer(new RendererClickListener() {

        @Override
        public void click(RendererClickEvent event) {
            BeanItem selected = (BeanItem) samplesEntity.getItem(event.getItemId());
            BiologicalEntitySampleBean selectedSample = (BiologicalEntitySampleBean) selected.getBean();

            Window subWindow = new Window("Edit Metadata");

            changeMetadata.updateUI(selectedSample.getId(), selectedSample.getType());
            VerticalLayout subContent = new VerticalLayout();
            subContent.setMargin(true);
            subContent.addComponent(changeMetadata);
            subWindow.setContent(subContent);
            // Center it in the browser window
            subWindow.center();
            subWindow.setModal(true);
            subWindow.setIcon(FontAwesome.PENCIL);
            subWindow.setHeight("75%");

            subWindow.addCloseListener(new CloseListener() {
                /**
                 * 
                 */
                private static final long serialVersionUID = -1329152609834711109L;

                @Override
                public void windowClose(CloseEvent e) {
                    updateUI(currentID);
                }
            });

            QbicmainportletUI ui = (QbicmainportletUI) UI.getCurrent();
            ui.addWindow(subWindow);
        }
    }));
    sampleEntityGrid.getColumn("edit").setWidth(70);
    sampleEntityGrid.getColumn("edit").setHeaderCaption("");
    sampleEntityGrid.setColumnOrder("edit", "secondaryName", "Organism", "properties", "code", "additionalInfo",
            "gender", "externalDB");

    sampleBioGrid.addItemClickListener(new ItemClickListener() {

        @Override
        public void itemClick(ItemClickEvent event) {

            BeanItem selected = (BeanItem) samplesBio.getItem(event.getItemId());
            BiologicalSampleBean selectedExp = (BiologicalSampleBean) selected.getBean();

            State state = (State) UI.getCurrent().getSession().getAttribute("state");
            ArrayList<String> message = new ArrayList<String>();
            message.add("clicked");
            message.add(selectedExp.getId());
            message.add("sample");
            state.notifyObservers(message);
        }
    });

    sampleBioGrid.getColumn("edit").setRenderer(new ButtonRenderer(new RendererClickListener() {

        @Override
        public void click(RendererClickEvent event) {
            BeanItem selected = (BeanItem) samplesBio.getItem(event.getItemId());

            try {
                BiologicalSampleBean selectedSample = (BiologicalSampleBean) selected.getBean();

                Window subWindow = new Window();

                changeMetadata.updateUI(selectedSample.getId(), selectedSample.getType());
                VerticalLayout subContent = new VerticalLayout();
                subContent.setMargin(true);
                subContent.addComponent(changeMetadata);
                subWindow.setContent(subContent);
                // Center it in the browser window
                subWindow.center();
                subWindow.setModal(true);
                subWindow.setResizable(false);

                subWindow.addCloseListener(new CloseListener() {
                    /**
                    * 
                    */
                    private static final long serialVersionUID = -1329152609834711109L;

                    @Override
                    public void windowClose(CloseEvent e) {
                        updateUI(currentID);
                    }
                });

                QbicmainportletUI ui = (QbicmainportletUI) UI.getCurrent();
                ui.addWindow(subWindow);
            } catch (NullPointerException e) {
                System.err.println("NullPointerException while trying to set metadata: " + e.getMessage());

            }
        }
    }));

    sampleBioGrid.getColumn("edit").setWidth(70);
    sampleBioGrid.getColumn("edit").setHeaderCaption("");
    sampleBioGrid.setColumnOrder("edit", "secondaryName", "primaryTissue", "properties", "tissueDetailed",
            "code", "additionalInfo", "biologicalEntity", "externalDB");

    sampleBioGrid.getColumn("biologicalEntity").setHeaderCaption("Source");

    helpers.GridFunctions.addColumnFilters(sampleBioGrid, gpcBio);
    helpers.GridFunctions.addColumnFilters(sampleEntityGrid, gpcEntity);

    if (fileDownloaderSources != null)
        exportSources.removeExtension(fileDownloaderSources);
    StreamResource srSource = Utils.getTSVStream(Utils.containerToString(samplesEntityContainer),
            String.format("%s_%s_", id.substring(1).replace("/", "_"), "sample_sources"));
    fileDownloaderSources = new FileDownloader(srSource);
    fileDownloaderSources.extend(exportSources);

    if (fileDownloaderSamples != null)
        exportSamples.removeExtension(fileDownloaderSamples);
    StreamResource srSamples = Utils.getTSVStream(Utils.containerToString(samplesBioContainer),
            String.format("%s_%s_", id.substring(1).replace("/", "_"), "extracted_samples"));
    fileDownloaderSamples = new FileDownloader(srSamples);
    fileDownloaderSamples.extend(exportSamples);

    this.buildLayout();
}

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

License:Open Source License

/**
 * Precondition: {DatasetView#table} has to be initialized. e.g. with
 * {DatasetView#buildFilterTable} If it is not, strange behaviour has to be expected. builds the
 * Layout of this view.//  w w  w . j  a v  a 2s. co m
 */
private void buildLayout() {
    this.vert.removeAllComponents();
    this.vert.setSizeFull();
    vert.setResponsive(true);

    // Table (containing datasets) section
    VerticalLayout tableSection = new VerticalLayout();
    HorizontalLayout tableSectionContent = new HorizontalLayout();
    HorizontalLayout sampletableSectionContent = new HorizontalLayout();
    tableSection.setResponsive(true);
    tableSectionContent.setResponsive(true);
    sampletableSectionContent.setResponsive(true);

    tableSectionContent.setMargin(new MarginInfo(true, false, false, false));
    sampletableSectionContent.setMargin(new MarginInfo(true, false, false, false));

    // tableSectionContent.setCaption("Datasets");
    // tableSectionContent.setIcon(FontAwesome.FLASK);
    tableSection.addComponent(new Label(String.format(
            "This view shows the sample sources (e.g., human, mouse) to be studied and the corresponding extracted samples. With sample sources, information specific to the subject (e.g., age or BMI in the case of patient data) can be stored. The extracted sample is a sample which has been extracted from the corresponding sample source. This is the raw sample material that can be later prepared for specific analytical methods such as MS or NGS.<br> "
                    + "\n\n There are %s extracted  samples coming from %s distinct sample sources in this study.",
            numberOfBioSamples, numberOfEntitySamples), ContentMode.HTML));

    tableSectionContent.addComponent(sampleBioGrid);
    sampletableSectionContent.addComponent(sampleEntityGrid);

    sampleEntityGrid.setCaption("Sample Sources");
    sampleBioGrid.setCaption("Extracted Samples");

    tableSection.setMargin(new MarginInfo(true, false, true, true));
    tableSection.setSpacing(true);

    tableSection.addComponent(sampletableSectionContent);
    tableSection.addComponent(exportSources);
    tableSection.addComponent(tableSectionContent);
    tableSection.addComponent(exportSamples);
    this.vert.addComponent(tableSection);

    sampleBioGrid.setWidth(100, Unit.PERCENTAGE);
    sampleEntityGrid.setWidth(100, Unit.PERCENTAGE);

    // sampleBioGrid.setHeightMode(HeightMode.ROW);
    // sampleEntityGrid.setHeightMode(HeightMode.ROW);

    // sampleBioGrid.setHeightByRows(Math.min(10, numberOfBioSamples));
    // sampleEntityGrid.setHeightByRows(Math.min(10, 5));

    tableSection.setSizeFull();
    sampletableSectionContent.setSizeFull();
    tableSectionContent.setSizeFull();
}

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

License:Open Source License

/**
 * //from ww w . j av  a 2  s.com
 * @param statusValues
 * @return
 */
public VerticalLayout createProjectStatusComponentNew(Map<String, Integer> statusValues) {
    VerticalLayout projectStatusContent = new VerticalLayout();
    projectStatusContent.setResponsive(true);
    projectStatusContent.setMargin(true);
    projectStatusContent.setSpacing(true);

    Label planned = new Label();
    Label design = new Label();
    Label raw = new Label();
    Label results = new Label();

    Iterator<Entry<String, Integer>> it = statusValues.entrySet().iterator();

    while (it.hasNext()) {
        Map.Entry<String, Integer> pairs = (Map.Entry<String, Integer>) it.next();

        if ((Integer) pairs.getValue() == 0) {
            Label statusLabel = new Label(pairs.getKey());
            statusLabel.setStyleName(ValoTheme.LABEL_FAILURE);
            statusLabel.setResponsive(true);
            // statusLabel.addStyleName("redicon");
            if (pairs.getKey().equals("Project planned")) {
                planned = statusLabel;
            } else if (pairs.getKey().equals("Experimental design registered")) {
                design = statusLabel;
            } else if (pairs.getKey().equals("Raw data registered")) {
                raw = statusLabel;
            } else if (pairs.getKey().equals("Results registered")) {
                results = statusLabel;
            }
        }

        else {
            Label statusLabel = new Label(pairs.getKey());
            statusLabel.setStyleName(ValoTheme.LABEL_SUCCESS);
            statusLabel.setResponsive(true);

            // statusLabel.addStyleName("greenicon");

            if (pairs.getKey().equals("Project planned")) {
                planned = statusLabel;
            } else if (pairs.getKey().equals("Experimental design registered")) {
                design = statusLabel;
            } else if (pairs.getKey().equals("Raw data registered")) {
                raw = statusLabel;
            } else if (pairs.getKey().equals("Results registered")) {
                results = statusLabel;
            }
        }
    }

    projectStatusContent.addComponent(planned);
    projectStatusContent.addComponent(design);
    projectStatusContent.addComponent(raw);
    projectStatusContent.addComponent(results);

    // ProgressBar progressBar = new ProgressBar();
    // progressBar.setValue((float) finishedExperiments / statusValues.keySet().size());
    // projectStatusContent.addComponent(progressBar);

    return projectStatusContent;
}

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

License:Open Source License

/**
 * Precondition: {DatasetView#table} has to be initialized. e.g. with
 * {DatasetView#buildFilterTable} If it is not, strange behaviour has to be expected. builds the
 * Layout of this view.//from  ww w . j a  v  a 2 s.c om
 */
private void buildLayout() {
    this.vert.removeAllComponents();
    this.vert.setSizeFull();

    vert.setResponsive(true);

    // Table (containing datasets) section
    VerticalLayout tableSection = new VerticalLayout();
    HorizontalLayout tableSectionContent = new HorizontalLayout();
    tableSection.setResponsive(true);
    tableSectionContent.setResponsive(true);

    // tableSectionContent.setCaption("Datasets");
    // tableSectionContent.setIcon(FontAwesome.FLASK);
    // tableSection.addComponent(new Label(String.format("This project contains %s dataset(s).",
    // numberOfDatasets)));
    tableSectionContent.setMargin(new MarginInfo(true, false, true, false));

    tableSection.addComponent(headerLabel);
    tableSectionContent.addComponent(this.table);
    vert.setMargin(new MarginInfo(false, true, false, false));

    tableSection.setMargin(new MarginInfo(true, false, false, true));
    // tableSectionContent.setMargin(true);
    // tableSection.setMargin(true);

    tableSection.addComponent(tableSectionContent);
    this.vert.addComponent(tableSection);

    table.setSizeFull();
    tableSection.setSizeFull();
    tableSectionContent.setSizeFull();

    // this.table.setSizeFull();

    HorizontalLayout buttonLayout = new HorizontalLayout();
    buttonLayout.setMargin(new MarginInfo(false, false, true, true));
    buttonLayout.setHeight(null);
    // buttonLayout.setWidth("100%");
    buttonLayout.setSpacing(true);
    buttonLayout.setResponsive(true);

    // final Button visualize = new Button(VISUALIZE_BUTTON_CAPTION);

    Button checkAll = new Button("Select all datasets");
    checkAll.addClickListener(new ClickListener() {

        @Override
        public void buttonClick(ClickEvent event) {
            for (Object itemId : table.getItemIds()) {
                ((CheckBox) table.getItem(itemId).getItemProperty("Select").getValue()).setValue(true);
            }
        }
    });

    Button uncheckAll = new Button("Unselect all datasets");
    uncheckAll.addClickListener(new ClickListener() {

        @Override
        public void buttonClick(ClickEvent event) {
            for (Object itemId : table.getItemIds()) {
                ((CheckBox) table.getItem(itemId).getItemProperty("Select").getValue()).setValue(false);
            }
        }
    });

    String content = "<p> In case of multiple file selections, Project Browser will create a tar archive.</p>"
            + "<hr>" + "<p> If you need help on extracting a tar archive file, follow the tips below: </p>"
            + "<p>" + FontAwesome.WINDOWS.getHtml() + " Windows </p>"
            + "<p> To open/extract TAR file on Windows, you can use 7-Zip, Easy 7-Zip, PeaZip.</p>" + "<hr>"
            + "<p>" + FontAwesome.APPLE.getHtml() + " MacOS </p>"
            + "<p> To open/extract TAR file on Mac, you can use Mac OS built-in utility Archive Utility,<br> or third-party freeware. </p>"
            + "<hr>" + "<p>" + FontAwesome.LINUX.getHtml() + " Linux </p>"
            + "<p> You need to use command tar. The tar is the GNU version of tar archiving utility. <br> "
            + "To extract/unpack a tar file, type: $ tar -xvf file.tar</p>";

    export.setIcon(FontAwesome.DOWNLOAD);

    PopupView tooltip = new PopupView(new helpers.ToolTip(content));
    tooltip.setHeight("44px");

    HorizontalLayout help = new HorizontalLayout();
    help.setSizeFull();
    HorizontalLayout helpContent = new HorizontalLayout();
    // helpContent.setSizeFull();

    help.setMargin(new MarginInfo(false, false, false, true));
    Label helpText = new Label("Attention: Click here before Download!");
    helpContent.addComponent(new Label(FontAwesome.QUESTION_CIRCLE.getHtml(), ContentMode.HTML));
    helpContent.addComponent(helpText);
    helpContent.addComponent(tooltip);
    helpContent.setSpacing(true);

    help.addComponent(helpContent);
    help.setComponentAlignment(helpContent, Alignment.TOP_CENTER);

    buttonLayout.addComponent(export);
    buttonLayout.addComponent(checkAll);
    buttonLayout.addComponent(uncheckAll);
    // buttonLayout.addComponent(visualize);
    buttonLayout.addComponent(this.download);

    /**
     * prepare download.
     */
    download.setEnabled(false);
    download.setResource(new ExternalResource("javascript:"));
    // visualize.setEnabled(false);

    for (final Object itemId : this.table.getItemIds()) {
        setCheckedBox(itemId, (String) this.table.getItem(itemId).getItemProperty("CODE").getValue());
    }

    this.table.addItemClickListener(new ItemClickListener() {
        @Override
        public void itemClick(ItemClickEvent event) {
            if (!event.isDoubleClick()
                    & !((boolean) table.getItem(event.getItemId()).getItemProperty("isDirectory").getValue())) {
                String datasetCode = (String) table.getItem(event.getItemId()).getItemProperty("CODE")
                        .getValue();
                String datasetFileName = (String) table.getItem(event.getItemId()).getItemProperty("File Name")
                        .getValue();
                URL url;
                try {
                    Resource res = null;
                    Object parent = table.getParent(event.getItemId());
                    if (parent != null) {
                        String parentDatasetFileName = (String) table.getItem(parent)
                                .getItemProperty("File Name").getValue();
                        url = datahandler.getOpenBisClient().getUrlForDataset(datasetCode,
                                parentDatasetFileName + "/" + datasetFileName);
                    } else {
                        url = datahandler.getOpenBisClient().getUrlForDataset(datasetCode, datasetFileName);
                    }

                    Window subWindow = new Window();
                    VerticalLayout subContent = new VerticalLayout();
                    subContent.setMargin(true);
                    subContent.setSizeFull();
                    subWindow.setContent(subContent);
                    QbicmainportletUI ui = (QbicmainportletUI) UI.getCurrent();
                    Boolean visualize = false;

                    if (datasetFileName.endsWith(".pdf")) {
                        QcMlOpenbisSource re = new QcMlOpenbisSource(url);
                        StreamResource streamres = new StreamResource(re, datasetFileName);
                        streamres.setMIMEType("application/pdf");
                        res = streamres;
                        visualize = true;
                    }

                    if (datasetFileName.endsWith(".png")) {
                        QcMlOpenbisSource re = new QcMlOpenbisSource(url);
                        StreamResource streamres = new StreamResource(re, datasetFileName);
                        // streamres.setMIMEType("application/png");
                        res = streamres;
                        visualize = true;
                    }

                    if (datasetFileName.endsWith(".qcML")) {
                        QcMlOpenbisSource re = new QcMlOpenbisSource(url);
                        StreamResource streamres = new StreamResource(re, datasetFileName);
                        streamres.setMIMEType("text/xml");
                        res = streamres;
                        visualize = true;
                    }

                    if (datasetFileName.endsWith(".alleles")) {
                        QcMlOpenbisSource re = new QcMlOpenbisSource(url);
                        StreamResource streamres = new StreamResource(re, datasetFileName);
                        streamres.setMIMEType("text/plain");
                        res = streamres;
                        visualize = true;
                    }

                    if (datasetFileName.endsWith(".tsv")) {
                        QcMlOpenbisSource re = new QcMlOpenbisSource(url);
                        StreamResource streamres = new StreamResource(re, datasetFileName);
                        streamres.setMIMEType("text/plain");
                        res = streamres;
                        visualize = true;
                    }

                    if (datasetFileName.endsWith(".GSvar")) {
                        QcMlOpenbisSource re = new QcMlOpenbisSource(url);
                        StreamResource streamres = new StreamResource(re, datasetFileName);
                        streamres.setMIMEType("text/plain");
                        res = streamres;
                        visualize = true;
                    }

                    if (datasetFileName.endsWith(".log")) {
                        QcMlOpenbisSource re = new QcMlOpenbisSource(url);
                        StreamResource streamres = new StreamResource(re, datasetFileName);
                        streamres.setMIMEType("text/plain");
                        res = streamres;
                        visualize = true;
                    }

                    if (datasetFileName.endsWith(".html")) {
                        QcMlOpenbisSource re = new QcMlOpenbisSource(url);
                        StreamResource streamres = new StreamResource(re, datasetFileName);
                        streamres.setMIMEType("text/html");
                        res = streamres;
                        visualize = true;
                    }

                    if (visualize) {
                        // LOGGER.debug("Is resource null?: " + String.valueOf(res == null));
                        BrowserFrame frame = new BrowserFrame("", res);

                        subContent.addComponent(frame);

                        // Center it in the browser window
                        subWindow.center();
                        subWindow.setModal(true);
                        subWindow.setSizeUndefined();
                        subWindow.setHeight("75%");
                        subWindow.setWidth("75%");
                        subWindow.setResizable(false);

                        frame.setSizeFull();
                        frame.setHeight("100%");
                        // frame.setHeight((int) (ui.getPage().getBrowserWindowHeight() * 0.9), Unit.PIXELS);

                        // Open it in the UI
                        ui.addWindow(subWindow);
                    }

                } catch (MalformedURLException e) {
                    LOGGER.error(String.format("Visualization failed because of malformedURL for dataset: %s",
                            datasetCode));
                    Notification.show(
                            "Given dataset has no file attached to it!! Please Contact your project manager. Or check whether it already has some data",
                            Notification.Type.ERROR_MESSAGE);
                }
            }
        }
    });

    this.vert.addComponent(buttonLayout);
    this.vert.addComponent(help);

}

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

License:Open Source License

/**
 * Precondition: {DatasetView#table} has to be initialized. e.g. with
 * {DatasetView#buildFilterTable} If it is not, strange behaviour has to be expected. builds the
 * Layout of this view.//  w  ww . jav a 2  s  . co  m
 */
private void buildLayout() {
    this.vert.removeAllComponents();

    int browserWidth = UI.getCurrent().getPage().getBrowserWindowWidth();
    int browserHeight = UI.getCurrent().getPage().getBrowserWindowHeight();

    this.vert.setWidth("100%");
    this.setWidth(String.format("%spx", (browserWidth * 0.6)));
    // this.setHeight(String.format("%spx", (browserHeight * 0.8)));

    VerticalLayout statistics = new VerticalLayout();
    HorizontalLayout statContent = new HorizontalLayout();
    statContent.setCaption("Statistics");
    statContent.setIcon(FontAwesome.BAR_CHART_O);
    statContent.addComponent(new Label(String.format("%s registered dataset(s).", numberOfDatasets)));
    statContent.setMargin(true);
    statContent.setSpacing(true);
    statistics.addComponent(statContent);
    statistics.setMargin(true);
    this.vert.addComponent(statistics);

    // Table (containing datasets) section
    VerticalLayout tableSection = new VerticalLayout();
    HorizontalLayout tableSectionContent = new HorizontalLayout();

    tableSectionContent.setCaption("Registered Datasets");
    tableSectionContent.setIcon(FontAwesome.FLASK);
    tableSectionContent.addComponent(this.table);

    tableSectionContent.setMargin(true);
    tableSection.setMargin(true);

    tableSection.addComponent(tableSectionContent);
    this.vert.addComponent(tableSection);

    table.setWidth("100%");
    tableSection.setWidth("100%");
    tableSectionContent.setWidth("100%");

    // this.table.setSizeFull();

    HorizontalLayout buttonLayout = new HorizontalLayout();
    buttonLayout.setHeight(null);
    buttonLayout.setWidth("100%");
    buttonLayout.setSpacing(false);

    final Button visualize = new Button(VISUALIZE_BUTTON_CAPTION);
    buttonLayout.addComponent(this.download);
    buttonLayout.addComponent(visualize);

    Button checkAll = new Button("Select all datasets");
    checkAll.addClickListener(new ClickListener() {

        @Override
        public void buttonClick(ClickEvent event) {
            for (Object itemId : table.getItemIds()) {
                ((CheckBox) table.getItem(itemId).getItemProperty("Select").getValue()).setValue(true);
            }
        }
    });

    Button uncheckAll = new Button("Unselect all datasets");
    uncheckAll.addClickListener(new ClickListener() {

        @Override
        public void buttonClick(ClickEvent event) {
            for (Object itemId : table.getItemIds()) {
                ((CheckBox) table.getItem(itemId).getItemProperty("Select").getValue()).setValue(false);
            }
        }
    });

    buttonLayout.addComponent(checkAll);
    buttonLayout.addComponent(uncheckAll);
    /**
     * prepare download.
     */
    download.setResource(new ExternalResource("javascript:"));
    download.setEnabled(false);
    visualize.setEnabled(false);

    for (final Object itemId : this.table.getItemIds()) {
        setCheckedBox(itemId, (String) this.table.getItem(itemId).getItemProperty("CODE").getValue());
    }

    /*
     * Update the visualize button. It is only enabled, if the files can be visualized.
     */
    this.table.addValueChangeListener(new ValueChangeListener() {
        /**
         * 
         */
        private static final long serialVersionUID = -4875903343717437913L;

        /**
         * check for what selection can be visualized. If so, enable the button. TODO change to
         * checked.
         */
        @Override
        public void valueChange(ValueChangeEvent event) {
            // Nothing selected or more than one selected.
            Set<Object> selectedValues = (Set<Object>) event.getProperty().getValue();
            if (selectedValues == null || selectedValues.size() == 0 || selectedValues.size() > 1) {
                visualize.setEnabled(false);
                return;
            }
            // if one selected check whether its dataset type is either fastqc or qcml.
            // For now we only visulize these two file types.
            Iterator<Object> iterator = selectedValues.iterator();
            Object next = iterator.next();
            String datasetType = (String) table.getItem(next).getItemProperty("Dataset Type").getValue();
            String fileName = (String) table.getItem(next).getItemProperty("File Name").getValue();
            // TODO: No hardcoding!!
            // if (datasetType.equals("FASTQC") || datasetType.equals("QCML") ||
            // datasetType.equals("BAM")
            // || datasetType.equals("VCF")) {
            if (datasetType.equals("Q_WF_MS_QUALITYCONTROL_RESULTS")
                    && (fileName.endsWith(".html") || fileName.endsWith(".qcML"))) {
                visualize.setEnabled(true);
            } else if (datasetType.equals("Q_WF_MS_QUALITYCONTROL_LOGS")
                    && (fileName.endsWith(".err") || fileName.endsWith(".out"))) {
                visualize.setEnabled(true);
            } else {
                visualize.setEnabled(false);
            }
        }
    });

    // TODO Workflow Views should get those data and be happy
    /*
     * Send message that in datasetview the following was selected. WorkflowViews get those messages
     * and save them, if it is valid information for them.
     */
    this.table.addValueChangeListener(new ValueChangeListener() {
        /**
         * 
         */
        private static final long serialVersionUID = -3554627008191389648L;

        @Override
        public void valueChange(ValueChangeEvent event) {
            // Nothing selected or more than one selected.
            Set<Object> selectedValues = (Set<Object>) event.getProperty().getValue();
            State state = (State) UI.getCurrent().getSession().getAttribute("state");
            ArrayList<String> message = new ArrayList<String>();
            message.add("DataSetView");
            if (selectedValues != null && selectedValues.size() == 1) {
                Iterator<Object> iterator = selectedValues.iterator();
                Object next = iterator.next();
                String datasetType = (String) table.getItem(next).getItemProperty("Dataset Type").getValue();
                message.add(datasetType);
                String project = (String) table.getItem(next).getItemProperty("Project").getValue();

                String space = datahandler.getOpenBisClient().getProjectByCode(project).getSpaceCode();// .getIdentifier().split("/")[1];
                message.add(project);
                message.add((String) table.getItem(next).getItemProperty("Sample").getValue());
                // message.add((String) table.getItem(next).getItemProperty("Sample Type").getValue());
                message.add((String) table.getItem(next).getItemProperty("dl_link").getValue());
                message.add((String) table.getItem(next).getItemProperty("File Name").getValue());
                message.add(space);
                // state.notifyObservers(message);
            } else {
                message.add("null");
            } // TODO
              // state.notifyObservers(message);

        }
    });

    // TODO get the GV to work here. Together with reverse proxy
    // Assumes that table Value Change listner is enabling or disabling the button if preconditions
    // are not fullfilled
    visualize.addClickListener(new ClickListener() {
        /**
         * 
         */
        private static final long serialVersionUID = 9015273307461506369L;

        @Override
        public void buttonClick(ClickEvent event) {
            Set<Object> selectedValues = (Set<Object>) table.getValue();
            Iterator<Object> iterator = selectedValues.iterator();
            Object next = iterator.next();
            String datasetCode = (String) table.getItem(next).getItemProperty("CODE").getValue();
            String datasetFileName = (String) table.getItem(next).getItemProperty("File Name").getValue();
            URL url;
            try {
                Object parent = table.getParent(next);
                if (parent != null) {
                    String parentDatasetFileName = (String) table.getItem(parent).getItemProperty("File Name")
                            .getValue();
                    url = datahandler.getOpenBisClient().getUrlForDataset(datasetCode,
                            parentDatasetFileName + "/" + datasetFileName);
                } else {
                    url = datahandler.getOpenBisClient().getUrlForDataset(datasetCode, datasetFileName);
                }

                Window subWindow = new Window(
                        "QC of Sample: " + (String) table.getItem(next).getItemProperty("Sample").getValue());
                VerticalLayout subContent = new VerticalLayout();
                subContent.setMargin(true);
                subWindow.setContent(subContent);
                QbicmainportletUI ui = (QbicmainportletUI) UI.getCurrent();
                // Put some components in it
                Resource res = null;
                String datasetType = (String) table.getItem(next).getItemProperty("Dataset Type").getValue();
                final RequestHandler rh = new ProxyForGenomeViewerRestApi();
                boolean rhAttached = false;
                if (datasetType.equals("Q_WF_MS_QUALITYCONTROL_RESULTS") && datasetFileName.endsWith(".qcML")) {
                    QcMlOpenbisSource re = new QcMlOpenbisSource(url);
                    StreamResource streamres = new StreamResource(re, datasetFileName);
                    streamres.setMIMEType("application/xml");
                    res = streamres;
                } else if (datasetType.equals("Q_WF_MS_QUALITYCONTROL_RESULTS")
                        && datasetFileName.endsWith(".html")) {
                    QcMlOpenbisSource re = new QcMlOpenbisSource(url);
                    StreamResource streamres = new StreamResource(re, datasetFileName);
                    streamres.setMIMEType("text/html");
                    res = streamres;
                } else if (datasetType.equals("Q_WF_MS_QUALITYCONTROL_LOGS")
                        && (datasetFileName.endsWith(".err") || datasetFileName.endsWith(".out"))) {
                    QcMlOpenbisSource re = new QcMlOpenbisSource(url);
                    StreamResource streamres = new StreamResource(re, datasetFileName);
                    streamres.setMIMEType("text/plain");
                    res = streamres;
                } else if (datasetType.equals("FASTQC")) {
                    res = new ExternalResource(url);
                } else if (datasetType.equals("BAM") || datasetType.equals("VCF")) {
                    String filePath = (String) table.getItem(next).getItemProperty("dl_link").getValue();
                    filePath = String.format("/store%s", filePath.split("store")[1]);
                    String fileId = (String) table.getItem(next).getItemProperty("File Name").getValue();
                    // fileId = "control.1kg.panel.samples.vcf.gz";
                    // UI.getCurrent().getSession().addRequestHandler(rh);
                    rhAttached = true;
                    ThemeDisplay themedisplay = (ThemeDisplay) VaadinService.getCurrentRequest()
                            .getAttribute(WebKeys.THEME_DISPLAY);
                    String hostTmp = "http://localhost:7778/vizrest/rest";// "http://localhost:8080/web/guest/mainportlet?p_p_id=QbicmainportletApplicationPortlet_WAR_QBiCMainPortlet_INSTANCE_5pPd5JQ8uGOt&p_p_lifecycle=2&p_p_state=normal&p_p_mode=view&p_p_cacheability=cacheLevelPage&p_p_col_id=column-1&p_p_col_count=1";
                    // hostTmp +=
                    // "&qbicsession=" + UI.getCurrent().getSession().getAttribute("gv-restapi-session")
                    // + "&someblabla=";
                    // String hostTmp = themedisplay.getURLPortal() +
                    // UI.getCurrent().getPage().getLocation().getPath() + "?qbicsession=" +
                    // UI.getCurrent().getSession().getAttribute("gv-restapi-session") + "&someblabla=" ;
                    // String host = Base64.encode(hostTmp.getBytes());
                    String title = (String) table.getItem(next).getItemProperty("Sample").getValue();
                    // res =
                    // new ExternalResource(
                    // String
                    // .format(
                    // "http://localhost:7778/genomeviewer/?host=%s&title=%s&fileid=%s&featuretype=alignments&filepath=%s&removeZeroGenotypes=false",
                    // host, title, fileId, filePath));
                }
                BrowserFrame frame = new BrowserFrame("", res);
                if (rhAttached) {
                    frame.addDetachListener(new DetachListener() {

                        /**
                         * 
                         */
                        private static final long serialVersionUID = 1534523447730906543L;

                        @Override
                        public void detach(DetachEvent event) {
                            UI.getCurrent().getSession().removeRequestHandler(rh);
                        }

                    });
                }

                frame.setSizeFull();
                subContent.addComponent(frame);

                // Center it in the browser window
                subWindow.center();
                subWindow.setModal(true);
                subWindow.setSizeFull();

                frame.setHeight((int) (ui.getPage().getBrowserWindowHeight() * 0.8), Unit.PIXELS);
                // Open it in the UI
                ui.addWindow(subWindow);
            } catch (MalformedURLException e) {
                LOGGER.error(String.format("Visualization failed because of malformedURL for dataset: %s",
                        datasetCode));
                Notification.show(
                        "Given dataset has no file attached to it!! Please Contact your project manager. Or check whether it already has some data",
                        Notification.Type.ERROR_MESSAGE);
            }
        }
    });

    this.vert.addComponent(buttonLayout);

}

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

License:Open Source License

private void initUI() {
    expSteps = new VerticalLayout();
    expSteps.setWidth(100.0f, Unit.PERCENTAGE);

    expSteps.setMargin(new MarginInfo(true, true, true, true));
    expSteps.setSpacing(true);//from  w  ww  .  ja  va  2  s.  c om

    export = new Button("Export as TSV");
    export.setIcon(FontAwesome.DOWNLOAD);
    VerticalLayout buttonLayoutSection = new VerticalLayout();
    HorizontalLayout buttonLayout = new HorizontalLayout();
    buttonLayout.setHeight(null);
    buttonLayout.setWidth("100%");
    buttonLayout.addComponent(this.export);
    buttonLayout.setMargin(new MarginInfo(false, false, false, false));
    buttonLayoutSection.addComponent(buttonLayout);
    buttonLayoutSection.setSpacing(true);
    buttonLayoutSection.setMargin(new MarginInfo(false, false, false, false));

    experiments = new Grid();
    experiments.setReadOnly(true);
    experiments.setWidth(100.0f, Unit.PERCENTAGE);
    experiments.setCaption("Registered Experimental Steps");

    // experiments.setContainerDataSource(new
    // BeanItemContainer<ExperimentBean>(ExperimentBean.class));

    expSteps.addComponent(new Label(
            "This view shows the experimental steps which have been registered for this project. Experimental steps contain real biological experiments as well as executed computational workflows on project data",
            ContentMode.HTML));

    expSteps.addComponent(experiments);
    expSteps.addComponent(buttonLayoutSection);

    setCompositionRoot(expSteps);

}

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

License:Open Source License

public void updateUI(ProjectBean currentBean) {
    projectBean = currentBean;//from   w w w  . ja  v  a  2s .  c om
    experiments.removeAllColumns();
    // experiments.setContainerDataSource(projectBean.getExperiments());

    // BeanItemContainer<ExperimentBean> experimentBeans =
    // loadMoreExperimentInformation(projectBean.getExperiments());
    // GeneratedPropertyContainer gpc = new GeneratedPropertyContainer(experimentBeans);
    GeneratedPropertyContainer gpc = new GeneratedPropertyContainer(projectBean.getExperiments());

    gpc.removeContainerProperty("containsData");
    gpc.removeContainerProperty("controlledVocabularies");
    gpc.removeContainerProperty("id");
    gpc.removeContainerProperty("lastChangedDataset");
    gpc.removeContainerProperty("lastChangedSample");
    gpc.removeContainerProperty("properties");
    gpc.removeContainerProperty("type");
    gpc.removeContainerProperty("samples");
    gpc.removeContainerProperty("status");
    gpc.removeContainerProperty("typeLabels");
    gpc.removeContainerProperty("registrationDate");

    experiments.addItemClickListener(new ItemClickListener() {

        /**
         * 
         */
        private static final long serialVersionUID = -43367719647620455L;

        @Override
        public void itemClick(ItemClickEvent event) {

            BeanItem selected = (BeanItem) projectBean.getExperiments().getItem(event.getItemId());
            ExperimentBean selectedExp = (ExperimentBean) selected.getBean();

            State state = (State) UI.getCurrent().getSession().getAttribute("state");
            ArrayList<String> message = new ArrayList<String>();
            message.add("clicked");
            message.add(selectedExp.getId());
            message.add("experiment");
            state.notifyObservers(message);
        }
    });

    gpc.addGeneratedProperty("edit", new PropertyValueGenerator<String>() {

        /**
         * 
         */
        private static final long serialVersionUID = 7558511163500976236L;

        @Override
        public String getValue(Item item, Object itemId, Object propertyId) {
            return "Edit";
        }

        @Override
        public Class<String> getType() {
            return String.class;
        }
    });

    gpc.addGeneratedProperty("registrationDate", new PropertyValueGenerator<String>() {

        @Override
        public Class<String> getType() {
            return String.class;
        }

        @Override
        public String getValue(Item item, Object itemId, Object propertyId) {
            BeanItem selected = (BeanItem) projectBean.getExperiments().getItem(itemId);
            ExperimentBean expBean = (ExperimentBean) selected.getBean();
            Date date = expBean.getRegistrationDate();
            SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd hh:mm a");
            String dateString = sd.format(date);

            return dateString;
        }
    });

    experiments.setContainerDataSource(gpc);
    experiments.getColumn("prettyType").setHeaderCaption("Type");
    experiments.getColumn("edit").setRenderer(new ButtonRenderer(new RendererClickListener() {

        @Override
        public void click(RendererClickEvent event) {
            BeanItem selected = (BeanItem) projectBean.getExperiments().getItem(event.getItemId());
            ExperimentBean selectedSample = (ExperimentBean) selected.getBean();

            Window subWindow = new Window("Edit Metadata");

            changeMetadata.updateUI(selectedSample.getId(), selectedSample.getType());
            VerticalLayout subContent = new VerticalLayout();
            subContent.setMargin(true);
            subContent.addComponent(changeMetadata);
            subWindow.setContent(subContent);
            // Center it in the browser window
            subWindow.center();
            subWindow.setModal(true);
            subWindow.setSizeUndefined();
            subWindow.setIcon(FontAwesome.PENCIL);
            subWindow.setHeight("75%");
            subWindow.setResizable(false);

            QbicmainportletUI ui = (QbicmainportletUI) UI.getCurrent();
            ui.addWindow(subWindow);
        }

    }));

    experiments.getColumn("edit").setWidth(70);
    experiments.setColumnOrder("edit", "prettyType");
    experiments.getColumn("edit").setHeaderCaption("");

    // experiments.setHeightMode(HeightMode.ROW);
    // experiments.setHeightByRows(gpc.size());

    if (fileDownloader != null)
        this.export.removeExtension(fileDownloader);
    StreamResource sr = Utils.getTSVStream(Utils.containerToString(projectBean.getExperiments()),
            String.format("%s_%s_", projectBean.getId().substring(1).replace("/", "_"), "experimental_steps"));
    fileDownloader = new FileDownloader(sr);
    fileDownloader.extend(export);
}

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

License:Open Source License

/**
 * initializes the description layout//from  w  w w  .  j  a va2s . co m
 * 
 * @return
 */
VerticalLayout initDescription() {
    VerticalLayout generalInfo = new VerticalLayout();
    VerticalLayout generalInfoContent = new VerticalLayout();
    idLabel = new Label("");
    generalInfoLabel = new Label("");
    statContentLabel = new Label("");

    generalInfoContent.addComponent(idLabel);
    generalInfo.setMargin(new MarginInfo(true, false, true, true));
    generalInfoContent.addComponent(generalInfoLabel);
    generalInfoContent.setMargin(new MarginInfo(true, false, true, true));
    generalInfoContent.addComponent(statContentLabel);
    generalInfoContent.setSpacing(true);

    generalInfo.addComponent(generalInfoContent);

    return generalInfo;
}