Exemplo n.º 1
0
  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);
  }
Exemplo n.º 2
0
 /**
  * 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);
   }
 }
Exemplo n.º 3
0
  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);
            }
          }
        });
  }
Exemplo n.º 4
0
  /*
   * 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);
  }
Exemplo n.º 5
0
  @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;
  }
Exemplo n.º 6
0
  @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;
  }
Exemplo n.º 7
0
  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);
    }
  }
Exemplo n.º 8
0
  /*
   * 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);
  }
Exemplo n.º 9
0
@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;
  }
}
Exemplo n.º 10
0
  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
  }