private void filterContainerBySUT(TestCase sut) { sessions.removeAllContainerFilters(); // Equal ownerfilter = new Equal("parentcase", getTestCaseByTitle());// ("parentcase", // getTestCaseByTitle(), true, false); Equal casefilter = new Equal("parentcase", sut); // ("parentcase", getTestCaseByTitle(), true, false); sessions.addContainerFilter(casefilter); }
/** * Modify available options based on the "geo department" select. * * @param currentGeoDepartment */ private void filterDepartments(Department currentGeoDepartment) { if (currentGeoDepartment == null) { department.setValue(null); department.setEnabled(false); } else { container.removeAllContainerFilters(); container.addContainerFilter(new Equal("parent", currentGeoDepartment)); container.applyFilters(); department.setValue(null); department.setEnabled(true); } }
public DepartmentSelector() { setImmediate(false); // conu = SpringApplicationContext.getContainerUtils(); container = conu.createJPABatchableContainer(Department.class); geoContainer = conu.createJPABatchableContainer(Department.class); geoContainer.setAutoCommit(false); container.setAutoCommit(false); setCaption("Department"); // Only list "roots" which are in our example geographical super // departments geoContainer.addContainerFilter(new IsNull("parent")); geographicalDepartment.setContainerDataSource(geoContainer); geographicalDepartment.setItemCaptionPropertyId("name"); geographicalDepartment.setImmediate(true); container.setApplyFiltersImmediately(false); filterDepartments(null); department.setContainerDataSource(container); department.setItemCaptionPropertyId("name"); geographicalDepartment.addListener( new Property.ValueChangeListener() { @Override public void valueChange(com.vaadin.data.Property.ValueChangeEvent event) { /* * Modify filtering of the department combobox */ EntityItem<Department> item = geoContainer.getItem(geographicalDepartment.getValue()); Department entity = item.getEntity(); filterDepartments(entity); } }); department.addListener( new Property.ValueChangeListener() { @Override public void valueChange(com.vaadin.data.Property.ValueChangeEvent event) { /* * Modify the actual value of the custom field. */ if (department.getValue() == null) { setValue(null, false); } else { Department entity = container.getItem(department.getValue()).getEntity(); setValue(entity, false); } } }); }
/* * Clone from tree action */ public TestSessionEditor( Tree tree, Object testsessionid, TestCase parentcase, boolean clonemode) { // JPAContainer<TestCase> container this.clonemode = clonemode; this.navToCasePage = false; models = ((MbpetUI) UI.getCurrent()).getModels(); adapterscontainer = ((MbpetUI) UI.getCurrent()).getAdapterscontainer(); adaptersxmlcontainer = ((MbpetUI) UI.getCurrent()).getAdaptersXMLcontainer(); sessions = ((MbpetUI) UI.getCurrent()) .getTestsessions(); // JPAContainerFactory.make(TestSession.class, // MbpetUI.PERSISTENCE_UNIT); //container; this.subject = sessions.getItem(testsessionid).getEntity(); this.testsession = new TestSession(); testsession.setTitle("(clone) " + subject.getTitle()); // System.out.println("parentcase.getSessions() : " + parentcase.getSessions()); // System.out.println("subjects parent.getSessions() : " + // subject.getParentcase().getSessions()); testsession.setParentcase(parentcase); // subject.getParentcase() // clone.setParameters(testsession.getParameters()); this.newSessionItem = new BeanItem<TestSession>(testsession); init(tree, parentcase); }
@Override public Component getContent() { final VerticalLayout layout = new VerticalLayout(); layout.setMargin(true); final Label label = new Label("<h1>Confirm the Raffle has been setup correctly.</h1>", ContentMode.HTML); label.setContentMode(ContentMode.HTML); layout.addComponent(label); final Raffle raffle = this.setupWizardView.getRaffle(); final ValidatingFieldGroup<Raffle> fieldGroup = new ValidatingFieldGroup<Raffle>(Raffle.class); final RaffleDao daoRaffle = new DaoFactory().getRaffleDao(); // we are going to manipulate the event on a different thread. EntityManagerProvider.detach(raffle); final JPAContainer<Raffle> container = daoRaffle.createVaadinContainer(); final EntityItem<Raffle> entityItem = container.createEntityItem(raffle); fieldGroup.setItemDataSource(entityItem); final SMMultiColumnFormLayout<Raffle> overviewForm = new SMMultiColumnFormLayout<>(1, fieldGroup); overviewForm.setWidth("600px"); overviewForm.setColumnFieldWidth(0, 400); overviewForm.bindTextField("Name", Raffle_.name).setReadOnly(true); overviewForm .bindDateField("Start Date", Raffle_.startDate, "yyyy/MM/dd", Resolution.DAY) .setReadOnly(true); overviewForm .bindDateField("Return Date", Raffle_.returnDate, "yyyy/MM/dd", Resolution.DAY) .setReadOnly(true); overviewForm.bindTextField("Book No. Prefix", Raffle_.raffleNoPrefix).setReadOnly(true); overviewForm.bindTextField("Tickets per Book", Raffle_.ticketsPerBook).setReadOnly(true); overviewForm .bindTextField("Sales Price per Ticket", Raffle_.salePricePerTicket) .setReadOnly(true); overviewForm.bindTextAreaField("Notes", Raffle_.notes, 6).setReadOnly(true); layout.addComponent(overviewForm); return layout; }
@Override public Component createUsernameComponent() { userCombo = new ERelatedComboField(Volontario.class, "Utente"); userCombo.sort(Volontario_.cognome, Volontario_.nome); // --filtro. Solo quelli attivi Container.Filter filter = new Compare.Equal(Volontario_.attivo.getName(), true); JPAContainer filterableContainer = (JPAContainer) userCombo.getContainerDataSource(); filterableContainer.addContainerFilter(filter); userCombo.addValueChangeListener( new Property.ValueChangeListener() { @Override public void valueChange(Property.ValueChangeEvent valueChangeEvent) { getPassField().clear(); } }); return userCombo; }
private void sortAddToTree(Object sid) { // // sort session elements // List<TestSession> caseSessions = parentCase.getSessions(); // List<Integer> sortedids = new ArrayList<Integer>(); // for (TestSession s : caseSessions){ // sortedids.add(s.getId()); // // remove tree items // tree.removeItem(s.getId()); // } // Collections.sort(sortedids); // Collections.reverse(sortedids); // System.out.println("SORTED ID's: " + sortedids); List<Object> sortedids = new ArrayList<Object>(); for (Object child : tree.getChildren(parentcase.getId())) { sortedids.add(child); } for (Object s : sortedids) { // remove tree items tree.removeItem(s); } // add new item and then re-add old items tree.addItem(sid); tree.setParent(sid, parentcase.getId()); tree.setChildrenAllowed(sid, false); tree.setItemCaption(sid, sessions.getItem(sid).getEntity().getTitle()); // newsession.getTitle() tree.expandItem(parentcase.getId()); tree.select(sid); for (Object id : sortedids) { // testcase.getSessions() matchingsessions Object sessionid = sessions.getItem(id).getEntity().getId(); tree.addItem(sessionid); tree.setItemCaption(sessionid, sessions.getItem(id).getEntity().getTitle()); tree.setParent(sessionid, parentcase.getId()); tree.setChildrenAllowed(sessionid, false); } }
/* * Edit Mode */ public TestSessionEditor( Tree tree, Object testsessionid, TestCase parentcase) { // JPAContainer<TestCase> container this.editmode = true; this.navToCasePage = false; sessions = ((MbpetUI) UI.getCurrent()) .getTestsessions(); // JPAContainerFactory.make(TestSession.class, // MbpetUI.PERSISTENCE_UNIT); //container; this.testsession = sessions.getItem(testsessionid).getEntity(); this.newSessionItem = new BeanItem<TestSession>(testsession); prevTitle = testsession.getTitle(); init(tree, parentcase); }
@Theme("mytheme") @Widgetset("vist.stat.vaadinjpacontainertest.MyAppWidgetset") public class MyUI extends UI { private final JPAContainer<Reference> jpaPost = JPAContainerFactory.make(Reference.class, "vist.stat_VaadinJPAContainerTest_war_1.0PU"); private final EntityManager em = jpaPost.getEntityProvider().getEntityManager(); @Override protected void init(VaadinRequest vaadinRequest) { final VerticalLayout layout = new VerticalLayout(); layout.setMargin(true); setContent(layout); Button button = new Button("Click Me"); // button.addClickListener(new Button.ClickListener() { // @Override // public void buttonClick(ClickEvent event) { // Query qwr = em.createNamedQuery("Reference.findActual"); // qwr.setParameter("status", RecStatus.ACTIVE); // List<Reference> resultList = qwr.getResultList(); // for (Reference post : resultList) // layout.addComponent(new Label(post.getName())); // } // }); layout.addComponent(showGrid()); layout.addComponent(button); } @WebServlet(urlPatterns = "/*", name = "MyUIServlet", asyncSupported = true) @VaadinServletConfiguration(ui = MyUI.class, productionMode = false) public static class MyUIServlet extends VaadinServlet {} private Grid showGrid() { Grid grid = new Grid("Справочник", jpaPost); grid.setSizeFull(); return grid; } }
public void buttonClick(ClickEvent event) { if (event.getButton() == createButton) { TestSession queriedSession = null; String wrongTitle = ""; try { // form.enableValidationMessages(); // title.setValidationVisible(true); // commit the fieldgroup binder.commit(); // check SESSION title doesnt exist for THIS SESSION int id = 0; boolean titleOK = true; id = newSessionItem.getBean().getId(); // testsession.getId(); // System.out.println("parentCase.getSessions() : " + parentcase.getSessions()); for (TestSession s : parentcase.getSessions()) { // sessions.getItemIds() // System.out.println("Existing title -> new title : " + s.getTitle() + "->" + // testsession.getTitle()); // System.out.println("Existing id -> new id : " + s.getId() + "->" + id); if (s.getTitle().equals(testsession.getTitle()) && !(s.getId() == id)) { testsession.setTitle(prevTitle); if (clonemode != true && editmode == true) { sessions.addEntity(testsession); } wrongTitle = s.getTitle(); titleOK = false; break; } } if (titleOK == true) { // System.out.println("TITLE WAS FINE. EDITING"); // add NEW bean object to db through jpa container if (editmode == false && (clonemode == false)) { // add to container sessions.addEntity(newSessionItem.getBean()); // jpa container // add created item to tree (after retrieving db generated id) EntityManager em = Persistence.createEntityManagerFactory("mbpet").createEntityManager(); Query query = em.createQuery( "SELECT OBJECT(t) FROM TestSession t WHERE t.title = :title AND t.parentcase = :parentcase"); // query.setParameter("title", newsession.getTitle()); query.setParameter("title", testsession.getTitle()); query.setParameter("parentcase", testsession.getParentcase()); // MainView.sessionUser queriedSession = (TestSession) query.getSingleResult(); // queriedSession = (TestSession) query.setParameter("title", // testsession.getTitle()).getSingleResult(); // System.out.println("the generated id is: " + queriedSession.getId()); id = queriedSession.getId(); // here is the id we need for tree // create session directory for test and reports new FileSystemUtils() .createSessionTestDir( testsession.getParentcase().getOwner().getUsername(), testsession.getParentcase().getTitle(), testsession.getTitle()); // create default parameters object new ParametersEditor(sessions.getItem(id).getEntity()); // create empty adapter object new AdapterEditor(sessions.getItem(id).getEntity()); // create empty adapterXML object new AdapterXMLEditor(sessions.getItem(id).getEntity()); // create default models ModelUtils modelUtils = new ModelUtils(); modelUtils.createDefaultModel( "user_types", sessions.getItem(id).getEntity()); // currmodel.getParentsession(), modelUtils.createDefaultModel( "normal_user", sessions.getItem(id).getEntity()); // currmodel.getParentsession(), // add to tree in right order if (tree.hasChildren(parentcase.getId())) { sortAddToTree(id); } else { tree.addItem(id); tree.setParent(id, parentcase.getId()); tree.setChildrenAllowed(id, false); tree.setItemCaption( id, sessions.getItem(id).getEntity().getTitle()); // newsession.getTitle() tree.expandItem(parentcase.getId()); tree.select(id); } // update parent Case to add Session to testCase List<Session> sessions parentcase.addSession(queriedSession); testcases.addEntity(parentcase); // List<TestSession> listofsessions = parentCase.getSessions(); // listofsessions.add(queriedSession); // //sessions.getItem(id).getEntity() // parentCase.setSessions(listofsessions); // System.out.println("WHAT IS NEW LIST OF SESSIONS: " // + parentcase.getSessions()); // testing purposes // for (TestSession s : parentcase.getSessions()) { // System.out.println(s.getId() + " - " // + s.getTitle()); // testing purposes // } } else if (editmode == true) { // EDIT existing object // // commit the fieldgroup // binder.commit(); // 1 UPDATE parentcase reference parentcase.updateSessionData(sessions.getItem(testsession.getId()).getEntity()); // System.out.println("Test session is now: " + testsession.getTitle()); // 2 UPDATE container sessions.addEntity(newSessionItem.getBean()); // System.out.println("Entity is now: " + // sessions.getItem(testsession.getId()).getEntity().getTitle()); // 3 UPDATE tree title tree.setItemCaption( testsession.getId(), sessions.getItem(testsession.getId()).getEntity().getTitle()); // 4. UPDATE models (maybe not necessary) // // ModelEditorTable.modelsTable.setContainerDataSource(ModelEditorTable.modelsTable.getContainerDataSource()); // for (Model m : testsession.getModels()) { // // m.setParentsession(sessions.getItem(testsession.getId()).getEntity()); // System.out.println("Sessions' model's session title: " + // m.getParentsession().getTitle()); //// // m.updateSessionData(sessions.getItem(testsession.getId()).getEntity()); // } // edit session directory for test and reports if (!prevTitle.equals(testsession.getTitle())) { new FileSystemUtils() .renameSessionDir( testsession.getParentcase().getOwner().getUsername(), testsession.getParentcase().getTitle(), prevTitle, testsession.getTitle()); } // // update parameters and adapter ? // System.out.println("Sessions' params's session title: " + // testsession.getParameters().getOwnersession().getTitle()); // System.out.println("Sessions' adapter session title: " + // testsession.getAdapter().getOwnersession().getTitle()); // System.out.println("Sessions' adapterXML session title: " + // testsession.getAdapterXML().getOwnersession().getTitle()); id = testsession.getId(); } else if (clonemode == true) { // CLONE // System.out.println("\n\nWE ARE IN CLONE MODE!!!!!!!!!\n\n"); // TestSession clone = newSessionItem.getBean(); // // 1 commit the fieldgroup // binder.commit(); // 2 add to container sessions.addEntity(newSessionItem.getBean()); // jpa container // 3 retrieving db generated id EntityManager em = Persistence.createEntityManagerFactory("mbpet").createEntityManager(); Query query = em.createQuery("SELECT OBJECT(t) FROM TestSession t WHERE t.title = :title"); // query.setParameter("title", newsession.getTitle()); queriedSession = (TestSession) query.setParameter("title", testsession.getTitle()).getSingleResult(); // System.out.println("the generated id is: " + queriedSession.getId()); id = queriedSession.getId(); // here is the id we need for tree // 4 clone models EntityManager em2 = Persistence.createEntityManagerFactory("mbpet").createEntityManager(); Query query2 = em2.createQuery( "SELECT OBJECT(m) FROM Model m WHERE m.title = :title AND m.parentsession = :parentsession"); for (Model m : subject.getModels()) { // copy over model values Model newmodel = new Model(m.getTitle(), queriedSession, m.getParentsut()); // "(clone) " + newmodel.setDotschema(m.getDotschema()); // add to container models.addEntity(newmodel); // jpa container // retrieve generated id from db query2.setParameter("title", newmodel.getTitle()); query2.setParameter("parentsession", queriedSession); Model queriedModel = (Model) query2.getSingleResult(); // System.out.println("the generated MODEL id is: " + queriedModel.getId() + " of // session ->" + queriedSession.getId()); // update parent Case to add Session to testCase List<Session> sessions parentcase.addModel(queriedModel); queriedSession.addModel(queriedModel); // //write model to disk // FileSystemUtils fileUtils = new FileSystemUtils(); // fileUtils.writeModelToDisk( // parentcase.getOwner().getUsername(), // parentcase.getTitle(), // queriedSession.getTitle(), // queriedSession.getParameters().getModels_folder(), // queriedModel); } sessions.addEntity(queriedSession); // 5 clone parameters String cloneParams = "Fill in parameters for Test Session '" + queriedSession.getTitle() + "'"; if (!(subject.getParameters().getSettings_file() == null)) { // || !(testsession.getParameters().getSettings_file().equals("")) cloneParams = subject.getParameters().getSettings_file(); } // System.out.println("\n\n the cloned parameters are:\n" + // cloneParams + "\n\n"); new ParametersEditor(queriedSession, cloneParams); // 6 clone adapter.py String cloneAdapter = "Fill in adapter for Test Session '" + queriedSession.getTitle() + "'"; if (!(subject.getAdapter().getAdapter_file() == null) || !(subject .getAdapter() .getAdapter_file() .equals( ""))) { // || !(testsession.getParameters().getSettings_file().equals("")) cloneAdapter = subject.getAdapter().getAdapter_file(); } // System.out.println("\n\n the cloned adapter is:\n" + // cloneAdapter + "\n\n"); new AdapterEditor(queriedSession, cloneAdapter); // 7 clone adapter.xml String cloneAdapterXML = "Fill in adapterXML for Test Session '" + queriedSession.getTitle() + "'"; if (!(subject.getAdapterXML().getAdapterXML_file() == null) || !(subject .getAdapterXML() .getAdapterXML_file() .equals( ""))) { // || !(testsession.getParameters().getSettings_file().equals("")) cloneAdapterXML = subject.getAdapterXML().getAdapterXML_file(); } // System.out.println("\n\n the cloned adapterXML is:\n" + // cloneAdapterXML + "\n\n"); new AdapterXMLEditor(queriedSession, cloneAdapterXML); // 8 write models to disk FileSystemUtils fileUtils = new FileSystemUtils(); fileUtils.writeModelsToDisk( parentcase.getOwner().getUsername(), parentcase.getTitle(), queriedSession.getTitle(), queriedSession.getParameters().getModels_folder(), subject.getModels()); // 9 add to tree in right order if (tree.hasChildren(parentcase.getId())) { sortAddToTree(id); } else { tree.addItem(id); tree.setParent(id, parentcase.getId()); tree.setChildrenAllowed(id, false); tree.setItemCaption( id, sessions.getItem(id).getEntity().getTitle()); // newsession.getTitle() tree.expandItem(parentcase.getId()); tree.select(id); } // 10 update parent Case to add Session to testCase List<Session> sessions parentcase.addSession(queriedSession); // List<TestSession> listofsessions = parentCase.getSessions(); // listofsessions.add(queriedSession); // //sessions.getItem(id).getEntity() // parentCase.setSessions(listofsessions); // 9 create session directory for test and reports new FileSystemUtils() .createSessionTestDir( queriedSession.getParentcase().getOwner().getUsername(), queriedSession.getParentcase().getTitle(), queriedSession.getTitle()); // System.out.println("WHAT IS NEW LIST OF SESSIONS: " + // parentCase.getSessions()); // testing purposes // for (TestSession s : parentCase.getSessions()) { // System.out.println(s.getId() + " - " + s.getTitle()); // testing // purposes // } } // System.out.println("WHAT IS NEW LIST OF SESSIONS: " + // parentCase.getSessions()); // testing purposes // for (TestSession s : parentCase.getSessions()) { // System.out.println(s.getId() + " - " + s.getTitle()); // testing // purposes // } if (clonemode == true && navToCasePage == true) { confirmNotification(queriedSession.getTitle(), "was created"); close(); } else if (clonemode == true && navToCasePage == false) { confirmNotification(queriedSession.getTitle(), "was CLONED"); getUI() .getNavigator() .navigateTo( MainView.NAME + "/" + parentcase.getTitle() + "/" + queriedSession.getTitle() + "id=" + queriedSession .getId()); // sessions.getItem(id).getEntity() close(); } else if (navToCasePage == true && editmode == false) { // 4 UPDATE table title table.select(newSessionItem.getBean().getId()); // (testsession.getId()); confirmNotification(testsession.getTitle(), "was created"); close(); // getUI().getNavigator() // .navigateTo(MainView.NAME + "/" + // parentCase.getTitle()); //sessions.getItem(id).getEntity() } else if (navToCasePage == true && editmode == true) { getUI() .getNavigator() .navigateTo( MainView.NAME + "/" + parentcase.getTitle() + "-sut=" + parentcase.getId()); // sessions.getItem(id).getEntity() confirmNotification(testsession.getTitle(), "was edited"); close(); } else if (editmode == true && navToCasePage == false) { getUI() .getNavigator() .navigateTo( MainView.NAME + "/" + parentcase.getTitle() + "/" + newSessionItem.getBean().getTitle() + "id=" + newSessionItem .getBean() .getId()); // testsession.getTitle() sessions.getItem(id).getEntity() } else { getUI() .getNavigator() .navigateTo( MainView.NAME + "/" + parentcase.getTitle() + "/" + queriedSession.getTitle() + "id=" + queriedSession .getId()); // testsession.getTitle() sessions.getItem(id).getEntity() } // title already existed } else { // System.out.println("title was NOT fine."); // testsession = sessions.getItem(id).getEntity(); // System.out.println("db session is: " + testsession.getId() + " " + // testsession.getTitle()); if (editmode == false && clonemode == false) { binder.discard(); Notification.show( "The title '" + wrongTitle + "' already exists for this SUT. Please rename this session.", Type.ERROR_MESSAGE); // testsession.getTitle() UI.getCurrent().addWindow(new TestSessionEditor(tree, table, parentcase, true)); } else if (editmode == true) { binder.discard(); Notification.show( "The title '" + wrongTitle + "' already exists for this SUT. Please rename this session.", Type.ERROR_MESSAGE); if (navToCasePage == true) { UI.getCurrent() .addWindow( new TestSessionEditor( tree, id, parentcase, table)); // sessions.getItem(testsession.getId()).getEntity().getId() } else { UI.getCurrent().addWindow(new TestSessionEditor(tree, id, parentcase)); } } else if (clonemode == true) { binder.discard(); Notification.show( "The title '" + wrongTitle + "' already exists for this SUT. Please rename this session.", Type.ERROR_MESSAGE); UI.getCurrent() .addWindow( new TestSessionEditor( tree, subject.getId(), // testsession sessions.getItem( parentcase, table, true)); } } } catch (CommitException e) { binder.discard(); Notification.show("'Title' cannot be Empty. Please try again.", Type.WARNING_MESSAGE); UI.getCurrent().addWindow(new TestSessionEditor(tree, parentcase, true)); } catch (NonUniqueResultException e) { e.printStackTrace(); binder.discard(); Notification.show( "The title '" + testsession.getTitle() + "' already exists for this SUT. Please rename this session.", Type.ERROR_MESSAGE); UI.getCurrent().addWindow(new TestSessionEditor(tree, parentcase, true)); } // catch (NonUniqueResultException e) { // binder.discard(); // Notification.show("'Title' must be a unique name.\n'" + // queriedSession.getTitle() + // "' already exists.\n\nPlease try again.", Type.WARNING_MESSAGE); // UI.getCurrent().addWindow(new TestSessionEditor(tree, parentCase)); // } } else if (event.getButton() == cancelButton) { binder.discard(); } // binder.clear(); // form.disableValidationMessages(); // setTreeItemsExpanded(); close(); // Close the sub-window }