Example usage for com.vaadin.ui.themes ValoTheme BUTTON_DANGER

List of usage examples for com.vaadin.ui.themes ValoTheme BUTTON_DANGER

Introduction

In this page you can find the example usage for com.vaadin.ui.themes ValoTheme BUTTON_DANGER.

Prototype

String BUTTON_DANGER

To view the source code for com.vaadin.ui.themes ValoTheme BUTTON_DANGER.

Click Source Link

Document

A prominent button that can be used when the action is considered unsafe for the user (i.e.

Usage

From source file:com.mcparland.john.vaadin_mvn_arch.samples.crud.ProductForm.java

License:Apache License

public ProductForm(SampleCrudLogic sampleCrudLogic) {
    viewLogic = sampleCrudLogic;//from   w  w w.jav a 2  s . c om
    addStyleName("product-form-wrapper");
    setId("product-form");
    productName.setWidth("100%");

    price.setConverter(new EuroConverter());

    stockCount.setWidth("80px");

    availability.setNullSelectionAllowed(false);
    availability.setTextInputAllowed(false);
    for (Availability s : Availability.values()) {
        availability.addItem(s);
    }

    category.setWidth("100%");

    saveButton.addStyleName(ValoTheme.BUTTON_PRIMARY);
    cancelButton.addStyleName("cancel");
    removeButton.addStyleName(ValoTheme.BUTTON_DANGER);

    VerticalLayout layout = new VerticalLayout();
    layout.setHeight("100%");
    layout.setSpacing(true);
    layout.addStyleName("form-layout");

    HorizontalLayout priceAndStock = new HorizontalLayout(price, stockCount);
    priceAndStock.setSpacing(true);
    priceAndStock.setWidth("100%");
    price.setWidth("100%");
    stockCount.setWidth("100%");
    availability.setWidth("100%");

    layout.addComponent(productName);
    layout.addComponent(priceAndStock);
    layout.addComponent(availability);
    layout.addComponent(category);

    CssLayout expander = new CssLayout();
    expander.addStyleName("expander");
    layout.addComponent(expander);
    layout.setExpandRatio(expander, 1);

    layout.addComponent(saveButton);
    layout.addComponent(cancelButton);
    layout.addComponent(removeButton);

    addComponent(layout);

    fieldGroup = new BeanFieldGroup<Product>(Product.class);
    fieldGroup.bindMemberFields(this);

    // perform validation and enable/disable buttons while editing
    ValueChangeListener valueListener = new ValueChangeListener() {
        /**
         * The serialVersionUID.
         */
        private static final long serialVersionUID = 1L;

        @Override
        public void valueChange(ValueChangeEvent event) {
            formHasChanged();
        }
    };
    for (Field<?> f : fieldGroup.getFields()) {
        f.addValueChangeListener(valueListener);
    }

    fieldGroup.addCommitHandler(new CommitHandler() {

        /**
         * The serialVersionUID.
         */
        private static final long serialVersionUID = 1L;

        @Override
        public void preCommit(CommitEvent commitEvent) throws CommitException {
        }

        @Override
        public void postCommit(CommitEvent commitEvent) throws CommitException {
            DataService.get().updateProduct(fieldGroup.getItemDataSource().getBean());
        }
    });

    saveButton.addClickListener(new ClickListener() {
        /**
         * The serialVersionUID.
         */
        private static final long serialVersionUID = 1L;

        @Override
        public void buttonClick(ClickEvent event) {
            try {
                fieldGroup.commit();

                // only if validation succeeds
                Product product = fieldGroup.getItemDataSource().getBean();
                viewLogic.saveProduct(product);
            } catch (CommitException e) {
                Notification n = new Notification("Please re-check the fields", Type.ERROR_MESSAGE);
                n.setDelayMsec(500);
                n.show(getUI().getPage());
            }
        }
    });

    cancelButton.setClickShortcut(KeyCode.ESCAPE);
    cancelButton.addClickListener(new ClickListener() {
        /**
         * The serialVersionUID.
         */
        private static final long serialVersionUID = 1L;

        @Override
        public void buttonClick(ClickEvent event) {
            viewLogic.cancelProduct();
        }
    });

    removeButton.addClickListener(new ClickListener() {
        /**
         * The serialVersionUID.
         */
        private static final long serialVersionUID = 1L;

        @Override
        public void buttonClick(ClickEvent event) {
            Product product = fieldGroup.getItemDataSource().getBean();
            viewLogic.deleteProduct(product);
        }
    });
}

From source file:com.mechanicshop.components.TableLayout.java

private void buildLayout() {
    HorizontalLayout layoutTitle = new HorizontalLayout();
    layoutTitle.setSizeUndefined();//from ww w  .  ja  va 2 s . c  o  m
    layoutTitle.setWidth("100%");
    layoutTitle.setSpacing(false);
    layoutTitle.setMargin(false);
    titleLabel.addStyleName(ValoTheme.LABEL_H2);
    titleLabel.addStyleName(ValoTheme.LABEL_COLORED);
    titleLabel.addStyleName(ValoTheme.LABEL_NO_MARGIN);
    titleLabel.addStyleName(ValoTheme.LABEL_BOLD);
    titleLabel.setSizeUndefined();

    layoutTitle.addComponent(titleLabel);
    layoutTitle.setComponentAlignment(titleLabel, Alignment.MIDDLE_CENTER);

    VerticalLayout layoutTable = new VerticalLayout();

    layoutTable.addComponent(table);
    layoutTable.setComponentAlignment(table, Alignment.TOP_CENTER);
    layoutTable.setSizeFull();

    layoutTable.setSpacing(true);
    HorizontalLayout layoutButtons = new HorizontalLayout();
    layoutButtons.setMargin(false);
    layoutButtons.setSpacing(true);
    layoutButtons.setSizeUndefined();
    layoutButtons.setWidth("100%");
    Button addBtn = new Button("Add new Car");
    addBtn.addClickListener(addBtnListener);
    addBtn.setImmediate(true);
    addBtn.setStyleName(ValoTheme.BUTTON_TINY);
    addBtn.addStyleName(ValoTheme.BUTTON_FRIENDLY);
    Button deleteBtn = new Button("Delete Selected");
    deleteBtn.setStyleName(ValoTheme.BUTTON_TINY);
    deleteBtn.addStyleName(ValoTheme.BUTTON_DANGER);
    deleteBtn.setImmediate(true);
    deleteBtn.addClickListener(removeListener);

    btnSendSMS.setStyleName(ValoTheme.BUTTON_TINY);
    btnSendSMS.addStyleName(ValoTheme.BUTTON_FRIENDLY);
    btnSendSMS.setImmediate(true);
    btnSendSMS.addClickListener(sendSMSBtnListener);

    searchTextField.setImmediate(true);
    searchTextField.addStyleName(ValoTheme.TEXTFIELD_TINY);
    searchTextField.addTextChangeListener(filterChangeListener);
    Label lbSearch = new Label("Search");
    lbSearch.addStyleName(ValoTheme.LABEL_TINY);
    lbSearch.setSizeUndefined();
    layoutButtons.addComponents(lbSearch, searchTextField, addBtn, deleteBtn, btnSendSMS);

    layoutButtons.setComponentAlignment(lbSearch, Alignment.MIDDLE_LEFT);
    layoutButtons.setComponentAlignment(searchTextField, Alignment.BOTTOM_LEFT);
    layoutButtons.setComponentAlignment(addBtn, Alignment.BOTTOM_RIGHT);
    layoutButtons.setComponentAlignment(deleteBtn, Alignment.BOTTOM_RIGHT);
    layoutButtons.setComponentAlignment(btnSendSMS, Alignment.BOTTOM_RIGHT);
    layoutButtons.setExpandRatio(addBtn, 3);
    addComponent(layoutTitle);
    addComponent(layoutTable);
    layoutTable.addComponent(layoutButtons);
    layoutTable.setExpandRatio(table, 3);
    setComponentAlignment(layoutTitle, Alignment.TOP_CENTER);
    setComponentAlignment(layoutTable, Alignment.TOP_CENTER);
    setExpandRatio(layoutTable, 3);
    setSpacing(true);
    setMargin(true);

}

From source file:com.mechanicshop.components.TableLayout.java

public void createCustomMessage() {
    final TextArea textArea = new TextArea();
    textArea.setImmediate(true);/*from w  ww. j  a va 2s . c o  m*/
    textArea.setColumns(30);
    textArea.setRows(10);
    textArea.addStyleName(ValoTheme.TEXTAREA_SMALL);
    textArea.setRequired(true);
    final Window subWindow = new Window();
    subWindow.setModal(true);
    subWindow.setHeight("350px");
    subWindow.setWidth("500px");
    subWindow.setCaption("Insert Message");
    subWindow.setStyleName(ValoTheme.WINDOW_TOP_TOOLBAR);
    subWindow.setClosable(false);
    subWindow.setResizable(false);

    HorizontalLayout layoutButtons = new HorizontalLayout();
    layoutButtons.setMargin(false);
    Button sendBtn = new Button("Send");
    sendBtn.addClickListener(new ClickListener() {

        @Override
        public void buttonClick(ClickEvent event) {
            try {
                textArea.validate();
                String message = textArea.getValue();
                smsSenderService.sendMessageMassive(message);
                subWindow.close();
                Notification.show("Message Sent");
            } catch (Exception e) {

            }
        }
    });
    sendBtn.setImmediate(true);
    sendBtn.setStyleName(ValoTheme.BUTTON_TINY);
    sendBtn.addStyleName(ValoTheme.BUTTON_FRIENDLY);
    Button cancelBtn = new Button("Cancel");
    cancelBtn.setStyleName(ValoTheme.BUTTON_TINY);
    cancelBtn.addStyleName(ValoTheme.BUTTON_DANGER);
    cancelBtn.setImmediate(true);
    cancelBtn.addClickListener(new ClickListener() {

        @Override
        public void buttonClick(ClickEvent event) {
            subWindow.close();

        }
    });

    layoutButtons.setSizeUndefined();
    layoutButtons.setSpacing(true);
    layoutButtons.addComponents(cancelBtn, sendBtn);

    VerticalLayout layout = new VerticalLayout();
    layout.setSpacing(true);
    layout.setMargin(true);
    layout.addComponent(textArea);
    layout.addComponent(layoutButtons);
    layout.setComponentAlignment(textArea, Alignment.MIDDLE_CENTER);
    layout.setComponentAlignment(layoutButtons, Alignment.MIDDLE_RIGHT);
    layout.setExpandRatio(textArea, 3);

    layout.setSizeFull();

    subWindow.setContent(layout);
    subWindow.center();

    getUI().addWindow(subWindow);
}

From source file:com.mycompany.controller.initUImethods.java

public void createDeleteAllButton(Grid.FooterRow footer) {
    Button bt = new Button("Clear cart", e -> {
        cart.getContainerDataSource().removeAllItems();
        sum = 0;// w  w  w .  j a  v  a 2s .  c  om
        footer.getCell("Mennyisg").setText(Integer.toString(sum));
        cartItems.clear();
    });
    bt.setStyleName(ValoTheme.BUTTON_DANGER);
    footer.getCell("tel").setComponent(bt);
}

From source file:com.terralcode.gestion.frontend.view.widgets.appointment.AppointmentComplaintsPanel.java

private Component createDeleteButton(Window window) {
    Button delButton = new Button("Delete");
    delButton.setStyleName(ValoTheme.BUTTON_DANGER);
    delButton.addClickListener(new Button.ClickListener() {
        @Override//w w w . j av a2  s .c  o m
        public void buttonClick(Button.ClickEvent event) {
            BeanItem<Complaint> beanItem = (BeanItem<Complaint>) fieldGroup.getItemDataSource();
            Complaint complaint = beanItem.getBean();
            appointment.getComplaints().remove(complaint);
            refreshBind();
            window.close();
        }
    });
    return delButton;
}

From source file:control.WizardController.java

License:Open Source License

/**
 * Initialize all possible steps in the wizard and the listeners used
 *//*from   w ww  .j  a  v  a  2  s .com*/
public void init(final String user) {
    WizardController control = this;
    this.w = new Wizard();
    w.getFinishButton().setVisible(false);
    w.getFinishButton().setStyleName(ValoTheme.BUTTON_DANGER);
    w.getCancelButton().setStyleName(ValoTheme.BUTTON_DANGER);

    final ProjectInformationComponent projSelection = new ProjectInformationComponent(vocabularies.getSpaces(),
            vocabularies.getPeople().keySet());
    final ProjectContextStep contextStep = new ProjectContextStep(projSelection);
    final EntityStep entStep = new EntityStep(vocabularies.getTaxMap(), vocabularies.getPeople().keySet());
    final ConditionInstanceStep entCondInstStep = new ConditionInstanceStep(vocabularies.getTaxMap().keySet(),
            "Species", "Biol. Variables");
    final TailoringStep tailoringStep1 = new TailoringStep("Sample Sources", false);
    final ExtractionStep extrStep = new ExtractionStep(vocabularies.getTissueMap(),
            vocabularies.getCellLinesMap(), vocabularies.getPeople().keySet());
    final ConditionInstanceStep extrCondInstStep = new ConditionInstanceStep(
            vocabularies.getTissueMap().keySet(), "Tissues", "Extr. Variables");
    final TailoringStep tailoringStep2 = new TailoringStep("Sample Extracts", true);
    final TestStep techStep = new TestStep(w, vocabularies);
    final SummaryRegisterStep regStep = new SummaryRegisterStep();
    final PoolingStep poolStep1 = new PoolingStep(Steps.Extract_Pooling);
    final PoolingStep poolStep2 = new PoolingStep(Steps.Test_Sample_Pooling);
    final FinishStep finishStep = new FinishStep(w, attachConfig);

    final MSAnalyteStep protFracStep = new MSAnalyteStep(vocabularies, "PROTEINS");
    // final PoolingStep afterProtFracPooling = new
    // PoolingStep(Steps.Protein_Fractionation_Pooling);
    final MSAnalyteStep pepFracStep = new MSAnalyteStep(vocabularies, "PEPTIDES");
    // final PoolingStep afterPepFracPooling = new PoolingStep(Steps.Peptide_Fractionation_Pooling);

    steps = new HashMap<Steps, WizardStep>();
    steps.put(Steps.Project_Context, contextStep);
    steps.put(Steps.Entities, entStep);
    steps.put(Steps.Entity_Conditions, entCondInstStep);
    steps.put(Steps.Entity_Tailoring, tailoringStep1);
    steps.put(Steps.Extraction, extrStep);
    steps.put(Steps.Extract_Conditions, extrCondInstStep);
    steps.put(Steps.Extract_Tailoring, tailoringStep2);
    steps.put(Steps.Extract_Pooling, poolStep1);
    steps.put(Steps.Test_Samples, techStep);
    steps.put(Steps.Test_Sample_Pooling, poolStep2);
    steps.put(Steps.Protein_Fractionation, protFracStep);
    steps.put(Steps.Peptide_Fractionation, pepFracStep);
    // steps.put(Steps.Protein_Fractionation_Pooling, afterProtFracPooling);
    // steps.put(Steps.Peptide_Fractionation_Pooling, afterPepFracPooling);
    steps.put(Steps.Registration, regStep);
    steps.put(Steps.Finish, finishStep);

    this.dataAggregator = new WizardDataAggregator(steps, openbis, vocabularies.getTaxMap(),
            vocabularies.getTissueMap(), vocabularies.getPeople());
    // w.addStep(finishStep);
    w.addStep(contextStep);

    FocusListener fListener = new FocusListener() {
        private static final long serialVersionUID = 8721337946386845992L;

        @Override
        public void focus(FocusEvent event) {
            // new project selected...keep generating codes until one is valid
            TextField pr = projSelection.getProjectField();
            if (!pr.isValid() || pr.isEmpty()) {
                projSelection.tryEnableCustomProject(generateProjectCode());
                contextStep.enableEmptyProjectContextOption(true);
                contextStep.enableNewContextOption(true);
                contextStep.makeContextVisible();
            }
        }
    };
    projSelection.getProjectField().addFocusListener(fListener);

    Button.ClickListener projCL = new Button.ClickListener() {

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

        @Override
        public void buttonClick(ClickEvent event) {
            String existingProject = (String) projSelection.getProjectBox().getValue();
            if (existingProject == null || existingProject.isEmpty()) {
                projSelection.tryEnableCustomProject(generateProjectCode());
                contextStep.enableEmptyProjectContextOption(true);
                contextStep.enableNewContextOption(true);
                contextStep.makeContextVisible();
            }
        }
    };
    projSelection.getProjectReloadButton().addClickListener(projCL);

    Button.ClickListener peopleCL = new Button.ClickListener() {

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

        @Override
        public void buttonClick(ClickEvent event) {
            vocabularies.setPeople(dbm.fetchPeople());
            Set<String> people = vocabularies.getPeople().keySet();
            projSelection.updatePeople(people);
            entStep.updatePeople(people);
            extrStep.updatePeople(people);
            techStep.updatePeople(people);
        }
    };
    projSelection.getPeopleReloadButton().addClickListener(peopleCL);
    entStep.getPeopleReloadButton().addClickListener(peopleCL);
    extrStep.getPeopleReloadButton().addClickListener(peopleCL);

    Button.ClickListener cl = new Button.ClickListener() {
        /**
         * 
         */
        private static final long serialVersionUID = -8427457552926464653L;

        @Override
        public void buttonClick(ClickEvent event) {
            String src = event.getButton().getCaption();
            if (src.equals("Register Project")) {
                String desc = contextStep.getDescription();
                String altTitle = contextStep.getExpSecondaryName();
                registerProjectOnly(desc, altTitle, user, regStep);
                w.addStep(steps.get(Steps.Finish));
            }
            if (src.equals("Send Project to QBiC")) {
                String tsv = dataAggregator.getTSVContent();
                String space = contextStep.getSpaceCode();
                String project = contextStep.getProjectCode();
                String altTitle = contextStep.getExpSecondaryName();
                List<Note> notes = new ArrayList<Note>();
                boolean afterMS = w.getSteps().contains(steps.get(Steps.Protein_Fractionation));
                if (afterMS) {
                    List<String> infos = new ArrayList<String>();
                    String protInfo = protFracStep.getAdditionalInfo();
                    if (protInfo != null && !protInfo.isEmpty()) {
                        infos.add(protInfo);
                    }
                    String pepInfo = pepFracStep.getAdditionalInfo();
                    if (pepInfo != null && !pepInfo.isEmpty()) {
                        infos.add(pepInfo);
                    }
                    if (!infos.isEmpty()) {
                        Date now = new Date();
                        SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
                        for (String comment : infos) {
                            Note note = new Note();
                            note.setComment(comment);
                            note.setUsername(user);
                            note.setTime(ft.format(now));
                            notes.add(note);
                        }
                    }
                }
                sendInquiry(space, project, altTitle, tsv, user, notes);
                Styles.notification("Project inquiry sent.",
                        "Your Project inquiry was successfully sent to QBiC. We will contact you.",
                        NotificationType.SUCCESS);
            }
            if (src.equals("Register All Samples")) {
                regStep.getRegisterButton().setEnabled(false);
                ProjectContextStep contextStep = (ProjectContextStep) steps.get(Steps.Project_Context);
                String desc = contextStep.getDescription();
                String altTitle = contextStep.getExpSecondaryName();
                boolean afterMS = w.getSteps().contains(steps.get(Steps.Protein_Fractionation));
                // Additional information set in the protein and/or peptide step(s)
                notes = new ArrayList<Note>();
                if (afterMS) {
                    List<String> infos = new ArrayList<String>();
                    String protInfo = protFracStep.getAdditionalInfo();
                    if (protInfo != null && !protInfo.isEmpty()) {
                        infos.add(protInfo);
                    }
                    String pepInfo = pepFracStep.getAdditionalInfo();
                    if (pepInfo != null && !pepInfo.isEmpty()) {
                        infos.add(pepInfo);
                    }
                    if (!infos.isEmpty()) {
                        Date now = new Date();
                        SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
                        for (String comment : infos) {
                            Note note = new Note();
                            note.setComment(comment);
                            note.setUsername(user);
                            note.setTime(ft.format(now));
                            notes.add(note);
                        }
                    }
                }
                // TODO this needs work
                List<List<ISampleBean>> samples = regStep.getSamples();
                String space = contextStep.getSpaceCode();
                String project = contextStep.getProjectCode();
                String exp = project + "_INFO";
                String code = project + "000";
                String sampleType = "Q_ATTACHMENT_SAMPLE";
                boolean pilot = contextStep.isPilot();
                ISampleBean infoSample = new TSVSampleBean(code, exp, project, space, sampleType, "", "",
                        new HashMap<String, Object>());
                samples.add(new ArrayList<ISampleBean>(Arrays.asList(infoSample)));
                openbisCreator.registerProjectWithExperimentsAndSamplesBatchWise(samples, desc,
                        dataAggregator.getExperimentsWithMetadata(), regStep.getProgressBar(),
                        regStep.getProgressLabel(), new RegisteredSamplesReadyRunnable(regStep, control), user,
                        pilot);
                w.addStep(steps.get(Steps.Finish));
            }
        }

        private void sendInquiry(String space, String project, String altTitle, String tsv, String user,
                List<Note> notes) {
            Map<String, Object> parameters = new HashMap<String, Object>();
            parameters.put("project", project);
            parameters.put("space", space);
            parameters.put("user", user);
            parameters.put("project-tsv", tsv);

            String comments = "";
            for (Note n : notes)
                comments += n.getComment() + "\n";
            parameters.put("alt-name", altTitle);
            parameters.put("notes", comments);// TODO do something with this

            openbis.triggerIngestionService("mail-project-inquiry", parameters);
        }

    };
    regStep.getRegisterButton().addClickListener(cl);

    /**
     * Space selection listener
     */
    ValueChangeListener spaceSelectListener = new ValueChangeListener() {

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

        @Override
        public void valueChange(ValueChangeEvent event) {
            contextStep.resetProjects();
            String space = contextStep.getSpaceCode();
            if (space != null) {
                List<String> projects = new ArrayList<String>();
                for (Project p : openbis.getProjectsOfSpace(space)) {
                    String code = p.getCode();
                    String name = dbm.getProjectName("/" + space + "/" + code);
                    if (name != null && name.length() > 0) {
                        if (name.length() >= 80)
                            name = name.substring(0, 80) + "...";
                        code += " (" + name + ")";
                    }
                    projects.add(code);
                }
                contextStep.setProjectCodes(projects);
                List<String> dontFilter = new ArrayList<String>(Arrays.asList("SPECIAL_METHOD"));
                if (space.endsWith("PCT")) {
                    protFracStep.filterDictionariesByPrefix("PCT", dontFilter);
                    pepFracStep.filterDictionariesByPrefix("PCT", dontFilter);
                } else if (space.endsWith("MPC")) {
                    protFracStep.filterDictionariesByPrefix("MPC", dontFilter);
                    pepFracStep.filterDictionariesByPrefix("MPC", dontFilter);
                } else {
                    protFracStep.filterDictionariesByPrefix("", dontFilter);
                    pepFracStep.filterDictionariesByPrefix("", dontFilter);
                }
            }
        }

    };
    contextStep.getSpaceBox().addValueChangeListener(spaceSelectListener);

    /**
     * Project selection listener
     */

    ValueChangeListener projectSelectListener = new ValueChangeListener() {

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

        @Override
        public void valueChange(ValueChangeEvent event) {
            contextStep.resetExperiments();
            updateContextOptions(projSelection, contextStep);
        }

    };
    contextStep.getProjectBox().addValueChangeListener(projectSelectListener);

    /**
     * Experiment selection listener
     */

    ValueChangeListener expSelectListener = new ValueChangeListener() {

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

        @Override
        public void valueChange(ValueChangeEvent event) {
            contextStep.resetSamples();
            contextStep.makePilotBoxVisible(false);
            OptionGroup projectContext = contextStep.getProjectContext();
            String context = (String) projectContext.getValue();
            List<String> contextOptions = contextStep.getContextOptions();
            ExperimentBean exp = contextStep.getExperiment();
            if (exp != null) {
                if (exp.isPilot() && !contextOptions.get(4).equals(context)) {
                    contextStep.selectPilot();
                }
                List<NewSampleModelBean> beans = new ArrayList<NewSampleModelBean>();
                for (Sample s : openbis.getSamplesofExperiment(exp.getID())) {
                    beans.add(new NewSampleModelBean(s.getCode(), s.getProperties().get("Q_SECONDARY_NAME"),
                            s.getSampleTypeCode()));
                }
                contextStep.setSamples(beans);
            }
        }

    };
    contextStep.getExperimentTable().addValueChangeListener(expSelectListener);

    /**
     * Project context (radio buttons) listener
     */

    ValueChangeListener projectContextListener = new ValueChangeListener() {

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

        @Override
        public void valueChange(ValueChangeEvent event) {
            copyMode = false;
            if (contextStep.getProjectContext().getValue() != null) {
                contextStep.makePilotBoxVisible(false);
                resetNextSteps();
                OptionGroup projectContext = contextStep.getProjectContext();
                String context = (String) projectContext.getValue();
                List<String> contextOptions = contextStep.getContextOptions();

                List<ExperimentBean> experiments = contextStep.getExperiments();
                List<ExperimentBean> beans = new ArrayList<ExperimentBean>();
                // inherit from bio entities
                if (contextOptions.get(1).equals(context)) {
                    for (ExperimentBean b : experiments) {
                        if (b.getExperiment_type().equals(ExperimentType.Q_EXPERIMENTAL_DESIGN.toString()))
                            beans.add(b);
                    }
                    setInheritEntities();
                    dataAggregator.setInheritEntities(true);
                    dataAggregator.setInheritExtracts(false);
                }
                // inherit from sample extraction
                if (contextOptions.get(2).equals(context)) {
                    for (ExperimentBean b : experiments) {
                        if (b.getExperiment_type().equals(ExperimentType.Q_SAMPLE_EXTRACTION.toString()))
                            beans.add(b);
                    }
                    setInheritExtracts();
                    dataAggregator.setInheritEntities(false);
                    dataAggregator.setInheritExtracts(true);
                }
                // new context
                if (contextOptions.get(0).equals(context)) {
                    contextStep.hideExperiments();
                    setCreateEntities();
                    contextStep.makePilotBoxVisible(true);
                    dataAggregator.setInheritEntities(false);
                    dataAggregator.setInheritExtracts(false);
                }
                regStep.setRegistrationMode(RegistrationMode.RegisterSamples);
                if (contextOptions.get(3).equals(context)) {
                    setRegStep();
                    regStep.setRegistrationMode(RegistrationMode.RegisterEmptyProject);
                }
                // copy design context
                if (contextOptions.get(5).equals(context)) {
                    for (ExperimentBean b : experiments) {
                        if (b.getExperiment_type().equals(ExperimentType.Q_EXPERIMENTAL_DESIGN.toString()))
                            beans.add(b);
                    }
                    copyMode = true;
                    setTailoringStepsOnly();
                    dataAggregator.setInheritEntities(true);
                    dataAggregator.setInheritExtracts(true);
                }
                // read only tsv creation
                if (contextOptions.get(4).equals(context)) {
                    for (ExperimentBean b : experiments) {
                        if (b.getExperiment_type().equals(ExperimentType.Q_EXPERIMENTAL_DESIGN.toString()))
                            beans.add(b);
                    }
                    setRegStep();
                    regStep.setRegistrationMode(RegistrationMode.DownloadTSV);
                }
                if (beans.size() > 0)
                    contextStep.showExperiments(beans);
            }
        }
    };
    contextStep.getProjectContext().addValueChangeListener(projectContextListener);

    /**
     * Listeners for pooling samples
     */
    ValueChangeListener poolingListener = new ValueChangeListener() {

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

        @Override
        public void valueChange(ValueChangeEvent event) {
            resetNextSteps();
            if (tailoringStep2.pool()) {
                setExtractsPooling();
            } else {
                setTestStep();
            }
        }
    };
    tailoringStep2.getPoolBox().addValueChangeListener(poolingListener);

    ValueChangeListener testPoolListener = new ValueChangeListener() {

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

        @Override
        public void valueChange(ValueChangeEvent event) {
            resetNextSteps();
            if (techStep.hasPools()) {
                setTestsPooling();
            } else {
                setRegStep();
            }
        }
    };

    ValueChangeListener proteinListener = new ValueChangeListener() {

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

        @Override
        public void valueChange(ValueChangeEvent event) {
            boolean containsProteins = false;
            for (TestSampleInformation i : techStep.getAnalyteInformation()) {
                String tech = i.getTechnology();
                containsProteins |= tech.equals("PROTEINS");
            }
            if (containsProteins) {
                // TODO probably not needed
                // dataAggregator.prepareTestSamples();
                // techStep.setProteinPreps(dataAggregator.getTests());
            }
        }
    };

    techStep.initTestStep(testPoolListener, proteinListener, peopleCL, steps);

    ValueChangeListener noMeasureListener = new ValueChangeListener() {

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

        @Override
        public void valueChange(ValueChangeEvent event) {
            techStep.changeTechPanel();
        }
    };
    techStep.getNotMeasured().addValueChangeListener(noMeasureListener);

    /**
     * Listeners for entity and extract conditions
     */
    ValueChangeListener entityConditionSetListener = new ValueChangeListener() {

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

        @Override
        public void valueChange(ValueChangeEvent event) {
            resetNextSteps();
            if (entStep.isConditionsSet().getValue() != null) {
                setEntityConditions();
            } else {
                setInheritEntities();
            }
        }
    };
    entStep.isConditionsSet().addValueChangeListener(entityConditionSetListener);

    ValueChangeListener extractConditionSetListener = new ValueChangeListener() {

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

        @Override
        public void valueChange(ValueChangeEvent event) {
            resetNextSteps();
            if (extrStep.conditionsSet().getValue() != null) {
                setExtractConditions();
            } else {
                setInheritExtracts();
            }
        }
    };
    extrStep.conditionsSet().addValueChangeListener(extractConditionSetListener);

    TextField f = contextStep.getProjectCodeField();
    CompositeValidator vd = new CompositeValidator();
    RegexpValidator p = new RegexpValidator("Q[A-Xa-x0-9]{4}",
            "Project must have length of 5, start with Q and not contain Y or Z");
    vd.addValidator(p);
    vd.addValidator(new ProjectNameValidator(openbis));
    f.addValidator(vd);
    f.setImmediate(true);
    f.setValidationVisible(true);

    WizardProgressListener wl = new WizardProgressListener() {
        @Override
        public void wizardCompleted(WizardCompletedEvent event) {
        }

        @Override
        public void wizardCancelled(WizardCancelledEvent event) {
        }

        @Override
        public void stepSetChanged(WizardStepSetChangedEvent event) {
        }

        /**
         * Reactions to step changes in the wizard
         */
        @Override
        public void activeStepChanged(WizardStepActivationEvent event) {
            // Context Step
            if (event.getActivatedStep().equals(contextStep)) {
                // contextStep.allowNext(false);
                regStep.enableDownloads(false);
            }
            // Entity Setup Step
            if (event.getActivatedStep().equals(entStep)) {
                bioFactorInstancesSet = false;
            }
            // Entity Condition Instances Step
            if (event.getActivatedStep().equals(entCondInstStep)) {
                reloadConditionsPreviewTable(entCondInstStep, Integer.toString(entStep.getBioRepAmount()),
                        new ArrayList<AOpenbisSample>());
                if (!bioFactorInstancesSet) {
                    if (entStep.speciesIsFactor())
                        entCondInstStep.initOptionsFactorComponent(entStep.getSpeciesAmount(),
                                new HashSet<String>(), "N/A", "N/A", "N/A", "N/A");
                    entCondInstStep.initFactorFields(entStep.getFactors());
                    initConditionListener(entCondInstStep, Integer.toString(entStep.getBioRepAmount()),
                            new ArrayList<AOpenbisSample>());
                    bioFactorInstancesSet = true;
                }
            }
            // Negative Selection of Entities
            if (event.getActivatedStep().equals(tailoringStep1)) {
                try {
                    tailoringStep1.setSamples(
                            dataAggregator.prepareEntities(entCondInstStep.getPreSelection(), copyMode), null);
                } catch (JAXBException e) {
                    e.printStackTrace();
                }
            }
            // Extract Setup Step
            if (event.getActivatedStep().equals(extrStep)) {
                dataAggregator.setEntities(tailoringStep1.getSamples());
                extractFactorInstancesSet = false;
            }
            // Extract Factor Instances Step
            if (event.getActivatedStep().equals(extrCondInstStep)) {
                reloadConditionsPreviewTable(extrCondInstStep, Integer.toString(extrStep.getExtractRepAmount()),
                        dataAggregator.getEntities());
                if (!extractFactorInstancesSet) {
                    if (extrStep.isTissueFactor())// TODO mapping and keywords
                        extrCondInstStep.initOptionsFactorComponent(extrStep.getTissueAmount(),
                                vocabularies.getCellLinesMap().keySet(), "Cell Line", "Other", "Cell Line",
                                "Other");
                    extrCondInstStep.initFactorFields(extrStep.getFactors());
                    initConditionListener(extrCondInstStep, Integer.toString(extrStep.getExtractRepAmount()),
                            dataAggregator.getEntities());
                    extractFactorInstancesSet = true;
                }
            }
            // Negative Selection of Extracts
            if (event.getActivatedStep().equals(tailoringStep2)) {
                extractPoolsSet = false;
                if (copyMode) {
                    // set entities if some were removed or changed in the last step
                    dataAggregator.setEntities(tailoringStep1.getSamples());

                }
                try {
                    tailoringStep2.setSamples(
                            dataAggregator.prepareExtracts(extrCondInstStep.getPreSelection(), copyMode),
                            extrStep.getLabelingMethod());
                } catch (JAXBException e) {
                    e.printStackTrace();
                }
            }
            // Extract Pool Step
            if (event.getActivatedStep().equals(poolStep1)) {
                dataAggregator.resetExtracts();
                if (!extractPoolsSet) {
                    poolStep1.setSamples(
                            new ArrayList<List<AOpenbisSample>>(Arrays.asList(tailoringStep2.getSamples())),
                            Steps.Extract_Pooling);
                    extractPoolsSet = true;
                }
            }
            // Test Setup Step
            if (event.getActivatedStep().equals(techStep)) {
                // dataAggregator.setHasFractionationExperiment(false);
                testPoolsSet = false;// we have to reset this in the case someone goes back from pooling
                List<AOpenbisSample> extracts = tailoringStep2.getSamples();
                techStep.setTissueExtracts(extracts);
                List<AOpenbisSample> all = new ArrayList<AOpenbisSample>();
                all.addAll(extracts);
                all.addAll(dataAggregator.createPoolingSamples(poolStep1.getPools()));
                dataAggregator.setExtracts(all);
                if (copyMode)
                    techStep.setAnalyteInputs(dataAggregator.getBaseAnalyteInformation());
            }
            // Test Pool Step
            if (event.getActivatedStep().equals(poolStep2)) {
                if (!testPoolsSet) {// if we come from the analyte step the pools are reset, if we come
                                    // back from the next step they are not
                    poolStep2.setSamples(dataAggregator.prepareTestSamples(), Steps.Test_Sample_Pooling);
                    testPoolsSet = true;
                }
            }
            // Protein Fractionation
            if (event.getActivatedStep().equals(protFracStep)) {
                // List<AOpenbisSample> analytes = new ArrayList<AOpenbisSample>();

                if (!testPoolsSet) {// if pools aren't set at this point then there was no pooling
                                    // selected before
                    dataAggregator.prepareTestSamples();// we reset the analyte samples in case we come from
                                                        // the next step and prepare them anew
                }
                // we forward testsamples and potential pools directly to the fractionation step to sort
                // them out
                // they don't get barcodes either for now, in case we need to recreate them
                List<AOpenbisSample> proteins = filterForProperties(dataAggregator.getTests(), "Q_SAMPLE_TYPE",
                        "PROTEINS");
                Map<String, List<AOpenbisSample>> pools = poolStep2.getPools();
                for (String pool : pools.keySet()) {
                    List<AOpenbisSample> filtered = filterForProperties(pools.get(pool), "Q_SAMPLE_TYPE",
                            "PROTEINS");
                    if (filtered.isEmpty())
                        pools.remove(pool);
                    else
                        pools.put(pool, filtered);
                }
                protFracStep.setAnalyteSamples(proteins, pools);
            }
            // Peptide Fractionation
            if (event.getActivatedStep().equals(pepFracStep)) {
                if (!protFracStep.hasRun()) {
                    protFracStep.createPreliminaryExperiments();
                }
                pepFracStep.setAnalyteSamplesAndExperiments(protFracStep.getResults());
            }
            // TSV and Registration Step
            if (event.getActivatedStep().equals(regStep)) {
                regStep.enableDownloads(false);
                // Test samples were filled out
                if (w.getSteps().contains(steps.get(Steps.Test_Samples))) {
                    boolean afterMS = w.getSteps().contains(steps.get(Steps.Protein_Fractionation));
                    if (!testPoolsSet && !afterMS)
                        dataAggregator.prepareTestSamples();
                    if (techStep.hasMHCLigands())
                        dataAggregator.prepareMHCExtractSamplesAndExperiments();
                    List<AOpenbisSample> all = new ArrayList<AOpenbisSample>();
                    if (!afterMS) {
                        all.addAll(dataAggregator.getTests());
                        //              all.addAll(
                        dataAggregator.createPoolingSamples(poolStep2.getPools());
                        dataAggregator.setTests(all);
                    }
                    if (containsFractionation()) {
                        dataAggregator.setFractionationExperimentsProperties(
                                getFractionationPropertiesFromLastStep());
                        dataAggregator.createFractionationSamplesAndExperiments();
                    }
                    createTSV();
                    try {
                        prep.processTSV(dataAggregator.getTSV(), DesignType.QBIC);
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                    armDownloadButtons(regStep.getDownloadButton());
                    List<SampleSummaryBean> summaries = prep.getSummary();
                    Map<String, String> taxMap = new HashMap<String, String>();
                    for (Map.Entry<String, String> entry : vocabularies.getTaxMap().entrySet())
                        taxMap.put(entry.getValue(), entry.getKey());
                    for (SampleSummaryBean s : summaries) {
                        List<String> translations = new ArrayList<String>();
                        for (String id : s.getSampleContent().split(", ")) {
                            String translation = taxMap.get(id);
                            if (translation != null)
                                translations.add(translation);
                            else
                                translations.add(id);
                        }
                        s.setSampleContent(String.join(", ", translations));
                    }
                    regStep.setSummary(summaries);
                    regStep.setProcessed(prep.getProcessed());
                }
                regStep.testRegEnabled();
                // Write TSV mode
                if (contextStep.fetchTSVModeSet()) {
                    try {
                        dataAggregator.parseAll();
                    } catch (JAXBException e1) {
                        e1.printStackTrace();
                    }
                    createTSV();
                    try {
                        prep.processTSV(dataAggregator.getTSV(), DesignType.QBIC);
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                    armDownloadButtons(regStep.getDownloadButton());
                    List<SampleSummaryBean> summaries = prep.getSummary();
                    Map<String, String> taxMap = new HashMap<String, String>();
                    for (Map.Entry<String, String> entry : vocabularies.getTaxMap().entrySet())
                        taxMap.put(entry.getValue(), entry.getKey());
                    for (SampleSummaryBean s : summaries) {
                        String translation = taxMap.get(s.getSampleContent());
                        if (translation != null)
                            s.setSampleContent(translation);
                    }
                    regStep.setSummary(summaries);
                }
            }
            if (event.getActivatedStep().equals(finishStep)) {
                ProjectContextStep context = (ProjectContextStep) steps.get(Steps.Project_Context);
                String space = context.getSpaceCode();
                String proj = context.getProjectCode();
                int timeout = 20;
                while (!openbis.projectExists(space, proj) && timeout > 0) {
                    logger.error(
                            "Project " + proj + "(" + space + ")" + "could not be found after registration.");
                    try {
                        Thread.sleep(500);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
                Project p = openbis.getProjectByIdentifier("/" + space + "/" + proj);
                Map<String, List<Sample>> samplesByExperiment = new HashMap<String, List<Sample>>();
                for (Sample s : openbis.getSamplesOfProject(p.getIdentifier())) {
                    String expID = s.getExperimentIdentifierOrNull();
                    String exp = expID.substring(expID.lastIndexOf("/") + 1);
                    if (samplesByExperiment.containsKey(exp)) {
                        List<Sample> lis = samplesByExperiment.get(exp);
                        lis.add(s);
                        samplesByExperiment.put(exp, lis);
                    } else {
                        List<Sample> lis = new ArrayList<Sample>(Arrays.asList(s));
                        samplesByExperiment.put(exp, lis);
                    }
                }
                finishStep.setExperimentInfos(space, proj, p.getDescription(), samplesByExperiment, openbis);
            }
        }

        private MSExperimentModel getFractionationPropertiesFromLastStep() {
            WizardStep lastInput = w.getSteps().get(w.getSteps().size() - 2);// last step is
                                                                             // registration itself
            if (lastInput instanceof PoolingStep) {
                return ((PoolingStep) lastInput).getPreliminarySamples();
            } else if (lastInput instanceof MSAnalyteStep) {
                MSAnalyteStep last = (MSAnalyteStep) lastInput;
                last.createPreliminaryExperiments();
                return last.getResults();
            } else {
                logger.error(
                        "Tried to fetch fractionation properties from wizard but the last step was neither of type Pooling or Fractionation. Step in question is: "
                                + lastInput.toString());
                logger.error("Wizard likely stopped working before registration. User was " + user);
                Styles.notification("Error",
                        "Sorry, something went wrong. Please notify a QBiC contact person.",
                        NotificationType.ERROR);
                return null;
            }
        }

        private boolean containsFractionation() {
            List<Steps> relevant = new ArrayList<Steps>(
                    Arrays.asList(Steps.Peptide_Fractionation, Steps.Peptide_Fractionation_Pooling,
                            Steps.Protein_Fractionation, Steps.Protein_Fractionation_Pooling));
            boolean res = false;
            for (Steps s : relevant) {
                res |= w.getSteps().contains(steps.get(s));
            }
            return res;
        }
    };
    w.addListener(wl);
}

From source file:de.fatalix.bookery.view.admin.AdminView.java

License:Open Source License

public VerticalLayout createServerSettings() {
    VerticalLayout layout = new VerticalLayout();
    layout.setMargin(true);//from w ww. j  a v  a2 s  . c  om
    Label titleLabel = new Label("General Settings");
    titleLabel.addStyleName(ValoTheme.LABEL_H2);

    //layout.addComponent(titleLabel);
    layout.addComponent(serverSettingsLayout);
    Button resetIndex = new Button("reset Index", new Button.ClickListener() {

        @Override
        public void buttonClick(Button.ClickEvent event) {

            try {
                presenter.resetIndex();
                Notification.show("Succesfully reset Index", Notification.Type.HUMANIZED_MESSAGE);
            } catch (IOException | SolrServerException ex) {
                Notification.show(ex.getMessage(), Notification.Type.ERROR_MESSAGE);
            }
        }
    });
    resetIndex.addStyleName(ValoTheme.BUTTON_DANGER);

    final TextField eMailAdress = new TextField(null, "felix.husse@medavis.de");
    eMailAdress.setColumns(35);
    Button testMail = new Button("Test Mail", new Button.ClickListener() {

        @Override
        public void buttonClick(Button.ClickEvent event) {
            try {
                presenter.sendEmail(eMailAdress.getValue());
                Notification.show("Mail succesfully sent!", Notification.Type.HUMANIZED_MESSAGE);
            } catch (MessagingException ex) {
                Notification.show("Mail failed!" + ex.getMessage(), Notification.Type.ERROR_MESSAGE);
            }
        }
    });
    testMail.setEnabled(true);

    Button resetBatchJobs = new Button("reset BatchJobs", new Button.ClickListener() {

        @Override
        public void buttonClick(Button.ClickEvent event) {
            presenter.resetBatchJobs();
            Notification.show("Succesfully reset Batchjobs", Notification.Type.HUMANIZED_MESSAGE);

        }
    });
    resetBatchJobs.addStyleName(ValoTheme.BUTTON_DANGER);

    HorizontalLayout mailLayout = new HorizontalLayout(eMailAdress, testMail, resetBatchJobs);
    layout.addComponents(resetIndex, mailLayout);

    return layout;
}

From source file:de.fatalix.bookery.view.common.BookDetailLayout.java

License:Open Source License

@PostConstruct
private void postInit() {
    addStyleName("product-form-wrapper");
    addStyleName("product-form");
    titleLabel = new Label("Title - Author");
    titleLabel.addStyleName(ValoTheme.LABEL_COLORED);
    titleLabel.addStyleName(ValoTheme.LABEL_BOLD);
    descriptionLabel = new Label("Description", ContentMode.HTML);
    descriptionLabel.addStyleName(ValoTheme.LABEL_LIGHT);
    descriptionLabel.setValue("Keine Beschreibung vorhanden");

    cancelButton = new Button("close", new Button.ClickListener() {

        @Override/*from  w w w .j  av  a 2  s  .c  om*/
        public void buttonClick(Button.ClickEvent event) {
            setLayoutVisible(false);
        }
    });
    cancelButton.setClickShortcut(ShortcutAction.KeyCode.ESCAPE);
    cancelButton.addStyleName(ValoTheme.BUTTON_DANGER);

    VerticalLayout rootLayout = new VerticalLayout(titleLabel, createImageLayout(), descriptionLabel,
            cancelButton);
    rootLayout.setSpacing(true);
    addComponent(rootLayout);
}

From source file:de.fatalix.bookery.view.common.BookMenuLayout.java

@PostConstruct
private void postInit() {
    addStyleName("bookery-menu-wrapper");
    addStyleName("bookery-menu");
    Label titleLabel = new Label("Bookery Menu");
    titleLabel.addStyleName(ValoTheme.LABEL_COLORED);
    titleLabel.addStyleName(ValoTheme.LABEL_BOLD);

    Button cancelButton = new Button("close", new Button.ClickListener() {

        @Override//from  w w w  .  ja  v  a  2s  . c o m
        public void buttonClick(Button.ClickEvent event) {
            setLayoutVisible(false);
        }
    });
    cancelButton.setClickShortcut(ShortcutAction.KeyCode.ESCAPE);
    cancelButton.addStyleName(ValoTheme.BUTTON_DANGER);

    VerticalLayout rootLayout = new VerticalLayout(titleLabel, cancelButton);
    rootLayout.setSpacing(true);
    addComponent(rootLayout);
}

From source file:de.kaiserpfalzEdv.vaadin.ui.defaultviews.editor.impl.BaseEditorViewImpl.java

License:Apache License

private void initializeButtons() {
    buttonLayout = new VerticalLayout();
    buttonLayout.setWidth(125f, PIXELS);
    buttonLayout.setSpacing(true);/*from  w w  w . ja va2  s . c  o  m*/
    buttonLayout.setResponsive(true);
    layout.addComponent(buttonLayout);
    layout.setExpandRatio(buttonLayout, 10f);

    saveButton = initializeButton("save", buttonTabIndex);
    saveButton.addClickListener(event -> {
        try {
            getEditor().commit(event);

            presenter.setData(getEditor().getEditorData());
            presenter.save();
        } catch (FieldGroup.CommitException e) {
            LOG.error(e.getClass().getSimpleName() + " caught: " + e.getMessage(), e);

            presenter.error(getCommitErrorCaption(), getCommitErrorDescription(), getCommitErrorParameters());
        }

    });
    saveButton.setClickShortcut(KeyCode.ENTER);
    saveButton.setStyleName(ValoTheme.BUTTON_PRIMARY);
    buttonLayout.addComponent(saveButton);

    discardButton = initializeButton("discard", buttonTabIndex + 1);
    discardButton.addClickListener(event -> getEditor().discard(event));
    buttonLayout.addComponent(discardButton);

    cancelButton = initializeButton("cancel", buttonTabIndex + 2);
    cancelButton.addClickListener(event -> presenter.cancel(event.getSource()));
    buttonLayout.addComponent(cancelButton);

    deleteButton = initializeButton("remove", buttonTabIndex + 3);
    deleteButton.addClickListener(event -> presenter.remove(event.getSource()));
    deleteButton.setStyleName(ValoTheme.BUTTON_DANGER);
    buttonLayout.addComponent(deleteButton);

    layout.addComponent(buttonLayout);
    LOG.debug("Added {} buttons to the editor.", buttonLayout.getComponentCount());
}