Example usage for com.vaadin.event FieldEvents.TextChangeListener FieldEvents.TextChangeListener

List of usage examples for com.vaadin.event FieldEvents.TextChangeListener FieldEvents.TextChangeListener

Introduction

In this page you can find the example usage for com.vaadin.event FieldEvents.TextChangeListener FieldEvents.TextChangeListener.

Prototype

FieldEvents.TextChangeListener

Source Link

Usage

From source file:com.garyclayburg.vconsole.VConsole.java

License:Open Source License

protected void init(VaadinRequest vaadinRequest) {
    final Refresher refresher = new Refresher();
    refresher.addListener(new Refresher.RefreshListener() {
        @Override//w  w w.j  ava2s  . c  o m
        public void refresh(Refresher refresher) {
            //                log.debug("refreshing UI...");
        }
    });
    addExtension(refresher);

    addStyleName("dashboard-view");
    final VerticalLayout layout = new VerticalLayout();
    layout.setMargin(true);
    setContent(layout);

    searchStatus = new Label("0 users matching: ");
    TextField searchField = new TextField();
    searchField.setInputPrompt("first or last name");
    searchField.setTextChangeEventMode(AbstractTextField.TextChangeEventMode.LAZY);
    searchField.addTextChangeListener(new FieldEvents.TextChangeListener() {
        @Override
        public void textChange(FieldEvents.TextChangeEvent event) {
            String searchText = event.getText();
            log.debug("search: {}", searchText);
            QUser qUser = new QUser("user");
            long startSearch = System.nanoTime();
            if (searchText.length() > 2) {
                Iterable<User> searchedUsers = autoUserRepo.findAll(qUser.firstname
                        .containsIgnoreCase(searchText).or(qUser.lastname.containsIgnoreCase(searchText)));
                long endSearch = System.nanoTime();
                log.info("Finshed searching for \"{}\" in {} secs", searchText,
                        ((endSearch - startSearch) / 1000000000.0));
                searchStatus.setValue("? users matching: " + searchText);
                updateUserList(searchedUsers, searchText);
            } else if (searchText.equals("*")) {
                Iterable<User> searchedUsers = autoUserRepo.findAll();
                long endSearch = System.nanoTime();
                log.info("Searched for \"{}\" in {} secs", searchText,
                        ((endSearch - startSearch) / 1000000000.0));
                searchStatus.setValue("? users matching: " + searchText);
                updateUserList(searchedUsers, searchText);

            } else {
                log.debug("not enough chars");
                searchStatus.setValue("* for all users...");
            }
        }
    });

    createExceptionWindow("no errors yet...");

    final User finalFirstUser = firstUser;
    policyChangeController.addChangeListener(new PolicyChangeListener() {
        @Override
        public void policyChanged() {
            log.info("policy is changing");
            BeanContainer beanContainer = (BeanContainer) userTable.getContainerDataSource();
            List itemIds = beanContainer.getItemIds();
            boolean refreshedSelected = false;
            for (Object itemId : itemIds) {
                String id = (String) itemId;
                BeanItem item = beanContainer.getItem(itemId);
                log.debug("refreshing user id: " + id);
                User user = (User) item.getBean();
                log.debug("refreshing user: " + user.getFirstname());
                if (userTable.isSelected(itemId)) {
                    refreshUserValues(user);
                    refreshedSelected = true;
                }
            }
            log.debug("forcing table update");
            updateRightClickItems();
            log.debug("forcing table update complete");
            if (!refreshedSelected && finalFirstUser != null) {
                refreshUserValues(finalFirstUser);
            }
            int numErrors = populatePolicyExceptionList(); // this will catch runtime errors not caught during groovy compile
            if (numErrors == 0) {
                showPolicyUpdated();
            }
        }

        @Override
        public void policyException(Throwable e) {
            populatePolicyExceptionList(); //cannot compile operator supplied groovy?
        }
    });
    attributeTable = new Table();
    attributeTable.setSizeFull();
    attributeTable.setSelectable(true);
    attributeTable.setMultiSelect(false);
    attributeTable.setImmediate(true);

    attributesBeanContainer = new BeanContainer<>(GeneratedAttributesBean.class);
    attributesBeanContainer.setBeanIdProperty("attributeName");

    attributeTable.setContainerDataSource(attributesBeanContainer);

    BeanContainer<String, User> userBeanContainer = new BeanContainer<>(User.class);
    userBeanContainer.setBeanIdProperty("id");
    userTable = createUserTable(userBeanContainer);
    userTable.addItemClickListener(new ItemClickEvent.ItemClickListener() {
        @Override
        public void itemClick(ItemClickEvent event) {
            User selectedUser = (User) ((BeanItem) event.getItem()).getBean();
            refreshUserValues(selectedUser);
            populatePolicyExceptionList(); // maybe this user clicked on causes runtime exception in groovy?
        }
    });
    HorizontalSplitPanel splitPanel = new HorizontalSplitPanel();
    splitPanel.setSizeFull();
    splitPanel.setSplitPosition(150, Unit.PIXELS);
    splitPanel.setFirstComponent(userTable);
    splitPanel.setSecondComponent(attributeTable);

    //        MenuBar menuBar = createMenu();

    //        layout.addComponent(menuBar);

    HorizontalLayout top = createTop();
    populatePolicyExceptionList(); //initial check for groovy errors
    layout.addComponent(top);

    layout.addComponent(searchField);
    layout.addComponent(searchStatus);
    layout.addComponent(splitPanel);
    populateItems(firstUser, attributesBeanContainer);

}