List of usage examples for org.hibernate.criterion Restrictions not
public static Criterion not(Criterion expression)
From source file:es.uvigo.ei.sing.gc.view.models.committee.summary.SummaryViewModel.java
License:Open Source License
@Command("saveAndFinish") public void saveAndFinish() throws Exception { final Committee committee = this.getCommittee(); if (committee.isFinished()) { throw new IllegalStateException("Committee is already completed"); } else {//from w ww. j a v a 2s. co m final Session session = HibernateUtil.currentSession(); Committee sameName = (Committee) session.createCriteria(Committee.class).setMaxResults(1) .add(Restrictions.eq("user", committee.getUser())) .add(Restrictions.eq("name", committee.getName())) .add(Restrictions.not(Restrictions.eq("id", committee.getId()))).uniqueResult(); if (sameName == null) { committee.setFinished(true); session.persist(committee); Executions.sendRedirect("/home.zul"); } else { Messagebox.show( "There is another committee with the same name. Please, change the name in order to continue.", "Invalid Name", Messagebox.OK, Messagebox.ERROR); } } }
From source file:eu.jangos.manager.controller.CommandsService.java
License:Apache License
/** * Return the list of all commands available in the database. * @return A List of Commands corresponding to the content of the database. */// w ww .java 2 s . c om public List<Commands> getAllCommands() { logger.debug("Returning all commands"); try (Session session = HibernateUtil.getSessionFactory().openSession()) { return session.createCriteria(Commands.class).add(Restrictions.not(Restrictions.like("name", "all"))) .addOrder(Order.asc("name")).list(); } catch (HibernateException he) { return null; } }
From source file:fr.gael.dhus.olingo.v1.SQLVisitor.java
License:Open Source License
@Override public Object visitUnary(UnaryExpression unary_expression, UnaryOperator operator, Object operand) { switch (operator) { case MINUS: { if (operand instanceof Long) { return -((Long) operand); } else if (operand instanceof Double) { return -((Double) operand); } else {/*from www .ja v a 2 s. c om*/ throw new UnsupportedOperationException("Invalid expression: " + unary_expression.getUriLiteral()); } } case NOT: { return Restrictions.not((Criterion) operand); } default: break; } throw new UnsupportedOperationException("Unsupported operator: " + operator.toUriLiteral()); }
From source file:fr.gael.dhus.service.ProductService.java
License:Open Source License
/** * Returns all products not contained in a collection. * @return a set of products.//from ww w . j ava 2 s .co m */ @Transactional(readOnly = true) public Set<Product> getNoCollectionProducts() { DetachedCriteria criteria = DetachedCriteria.forClass(Product.class); Iterator<Product> it = collectionService.getAllProductInCollection().iterator(); HashSet<Long> cpid = new HashSet<>(); while (it.hasNext()) { cpid.add(it.next().getId()); } criteria.add(Restrictions.not(Restrictions.in("id", cpid))); criteria.add(Restrictions.eq("processed", true)); return new HashSet<>(productDao.listCriteria(criteria, 0, -1)); }
From source file:fr.mcc.ginco.dao.hibernate.ThesaurusConceptDAO.java
License:CeCILL license
private void excludeConcept(Criteria criteria, String excludeId) { if (excludeId != null && !excludeId.isEmpty()) { criteria.add(Restrictions.not(Restrictions.eq("tc.identifier", excludeId))); }/*from w w w .ja v a 2 s . c o m*/ }
From source file:fsl.ta.toms.roms.dao.impl.ReportDAOImpl.java
@Override public SummonsOutstandingReportBO summonsOutstandingReport(SummonsOutstandingReportCriteriaBO reportCriteria, String userName, String userRegion, ReportDisplayInformationDAOImpl reportDisplayInformation) { Criteria criteria = this.hibernateTemplate.getSessionFactory().getCurrentSession() .createCriteria(SummonsDO.class, "s"); criteria.createAlias("s.roadOperation", "ro", Criteria.LEFT_JOIN); criteria.createAlias("s.offender", "of", Criteria.LEFT_JOIN); criteria.createAlias("s.status", "st", Criteria.LEFT_JOIN); criteria.createAlias("ro.category", "c", Criteria.LEFT_JOIN); criteria.createAlias("s.taStaff", "ta", Criteria.LEFT_JOIN); criteria.createAlias("ta.person", "taPerson"); Date reportStartDate = DateUtils.searchDateFormater(reportCriteria.getOperationStartDate(), DateUtils.SEARCHDATETYPE.START); Date reportEndDate = DateUtils.searchDateFormater(reportCriteria.getOperationEndDate(), DateUtils.SEARCHDATETYPE.END); Criterion mainCriterion = Restrictions.or( Restrictions.between("ro.scheduledStartDtime", reportStartDate, reportEndDate), Restrictions.between("ro.scheduledEndDtime", reportStartDate, reportEndDate)); /* Only summons which are not yet issued should be returned */ List<String> summonsOutstandingStatusList = new ArrayList<String>(); summonsOutstandingStatusList.add(fsl.ta.toms.roms.constants.Constants.DocumentStatus.CANCELLED); summonsOutstandingStatusList.add(fsl.ta.toms.roms.constants.Constants.DocumentStatus.WITHDRAWN); summonsOutstandingStatusList.add(fsl.ta.toms.roms.constants.Constants.DocumentStatus.SERVED); Criterion subCriterion = Restrictions.not(Restrictions.in("st.statusId", summonsOutstandingStatusList)); /* _________________________________________________________ */ if (reportCriteria.getOffenderId() != null && reportCriteria.getOffenderId() > 0) { subCriterion = Restrictions.and(subCriterion, Restrictions.eq("of.personId", reportCriteria.getOffenderId())); }//from w ww . ja va 2 s. c om if (StringUtil.isSet(reportCriteria.getOffenderTRN())) { subCriterion = Restrictions.and(subCriterion, Restrictions.eq("of.trnNbr", reportCriteria.getOffenderTRN().trim())); } if (StringUtil.isSet(reportCriteria.getOffenderFirstName())) { subCriterion = Restrictions.and(subCriterion, Restrictions .like("of.firstName", reportCriteria.getOffenderFirstName().trim(), MatchMode.ANYWHERE) .ignoreCase()); } if (StringUtil.isSet(reportCriteria.getOffenderLastName())) { subCriterion = Restrictions.and(subCriterion, Restrictions .like("of.lastName", reportCriteria.getOffenderLastName().trim(), MatchMode.ANYWHERE) .ignoreCase()); } if (reportCriteria.getOperationCategory() != null && !reportCriteria.getOperationCategory().isEmpty()) { subCriterion = Restrictions.and(subCriterion, Restrictions.eq("c.categoryId", reportCriteria.getOperationCategory().trim())); } if (reportCriteria.getRoadOperationId() != null && reportCriteria.getRoadOperationId() > 0) { subCriterion = Restrictions.and(subCriterion, Restrictions.eq("ro.roadOperationId", reportCriteria.getRoadOperationId())); } if (reportCriteria.getTAOfficeRegion() != null && !reportCriteria.getTAOfficeRegion().isEmpty()) { subCriterion = Restrictions.and(subCriterion, Restrictions.eq("ro.officeLocCode", reportCriteria.getTAOfficeRegion().trim())); } if (reportCriteria.getTAStaffId() != null && !reportCriteria.getTAStaffId().isEmpty()) { subCriterion = Restrictions.and(subCriterion, Restrictions.eq("ta.staffId", reportCriteria.getTAStaffId().trim())); } if (StringUtil.isSet(reportCriteria.getTAStaffTRN())) { subCriterion = Restrictions.and(subCriterion, Restrictions.eq("taPerson.trnNbr", reportCriteria.getTAStaffTRN().trim())); } if (StringUtil.isSet(reportCriteria.getRoadOperationName())) { subCriterion = Restrictions.and(subCriterion, Restrictions .like("ro.operationName", reportCriteria.getRoadOperationName().trim(), MatchMode.ANYWHERE) .ignoreCase()); } criteria.add(Restrictions.and(mainCriterion, subCriterion)); NameUtil nameUtil = new NameUtil(); String stringStartDate = ""; String stringEndDate = ""; try { stringStartDate = DateUtils.getFormattedUtilDate(reportCriteria.getOperationStartDate()); stringEndDate = DateUtils.getFormattedUtilDate(reportCriteria.getOperationEndDate()); } catch (Exception exe) { } /* Get report criteria names and descriptions */ if (reportCriteria.getOffenderId() != null && reportCriteria.getOffenderId() > 0) reportCriteria.setOffenderName(this.getPersonName(reportCriteria.getOffenderId())); else if (StringUtil.isSet(reportCriteria.getOffenderTRN())) reportCriteria.setOffenderName(this.getPersonName(reportCriteria.getOffenderTRN())); reportCriteria .setOperationCategoryDesc(this.getOperationCategoryDesc(reportCriteria.getOperationCategory())); reportCriteria.setRoadOperationName(reportCriteria.getRoadOperationName()); reportCriteria.setTAOfficeRegionDesc(this.getTAOfficeRegionDescription(reportCriteria.getTAOfficeRegion())); if (StringUtil.isSet(reportCriteria.getTAStaffId())) reportCriteria.setTAStaffName(this.getTAStaffName(reportCriteria.getTAStaffId())); else if (StringUtil.isSet(reportCriteria.getTAStaffTRN())) reportCriteria.setTAStaffName(this.getPersonName(reportCriteria.getTAStaffTRN())); /* * reportCriteria.setRoadOperationDesc(this.getRoadOperationName( * reportCriteria.getRoadOperationId())); */ /* __________________________________________ */ SummonsOutstandingReportBO report = new SummonsOutstandingReportBO(userName, userRegion, reportDisplayInformation.applicationName, reportDisplayInformation.summonsOutstandingReportTitle + stringStartDate + " TO " + stringEndDate, reportCriteria.getOperationStartDate(), reportCriteria.getOperationEndDate(), reportCriteria.getSearchCriteriaString(), getTAOfficeRegionDescription(userRegion)); List<SummonsOutstandingReportResultsBO> summonsOutStReportList = new ArrayList<SummonsOutstandingReportResultsBO>(); for (SummonsDO summons : (List<SummonsDO>) criteria.list()) { String offenderFullName = NameUtil.getName( (StringUtil.isSet(summons.getOffender().getFirstName()) ? summons.getOffender().getFirstName().trim() : ""), (StringUtil.isSet(summons.getOffender().getLastName()) ? summons.getOffender().getLastName().trim() : "")); String offenceDescription = summons.getRoadCheckOffenceOutcome().getRoadCheckOffence().getOffence() .getDescription(); String tAStaffFullName = NameUtil.getName( (StringUtil.isSet(summons.getTaStaff().getPerson().getFirstName()) ? summons.getTaStaff().getPerson().getFirstName().trim() : ""), (StringUtil.isSet(summons.getTaStaff().getPerson().getLastName()) ? summons.getTaStaff().getPerson().getLastName().trim() : "")); VehicleDO vehicle = summons.getRoadCheckOffenceOutcome().getRoadCheckOffence().getRoadCheck() .getCompliance().getVehicle(); String vehicleDetails = ""; if (vehicle != null) { vehicleDetails = (StringUtil.isSet(vehicle.getModel()) ? vehicle.getModel().trim() : "") + "; " + (StringUtil.isSet(vehicle.getMakeDescription()) ? vehicle.getMakeDescription().trim() : "") + "; Plate #: " + (StringUtil.isSet(vehicle.getPlateRegNo()) ? vehicle.getPlateRegNo().trim() : ""); } String locationOfOffence = summons.getRoadCheckOffenceOutcome().getRoadCheckOffence().getRoadCheck() .getCompliance().getCompliancyArtery().getDescription(); String tAOfficeRegion = summons.getRoadCheckOffenceOutcome().getRoadCheckOffence().getRoadCheck() .getCompliance().getRoadOperation().getOfficeLocCode(); String jPFullName = NameUtil.getName( (StringUtil.isSet(summons.getJusticeOfPeace().getPerson().getFirstName()) ? summons.getJusticeOfPeace().getPerson().getFirstName().trim() : ""), (StringUtil.isSet(summons.getJusticeOfPeace().getPerson().getLastName()) ? summons.getJusticeOfPeace().getPerson().getLastName() : "")); String roadOperationDetails = summons.getRoadCheckOffenceOutcome().getRoadCheckOffence().getRoadCheck() .getCompliance().getRoadOperation().getOperationName(); /* Get latest trial for the summons */ Criteria criteriaCourtAppearance = this.hibernateTemplate.getSessionFactory().getCurrentSession() .createCriteria(CourtAppearanceDO.class, "CApp"); criteriaCourtAppearance.createAlias("CApp.courtCase", "CCase"); criteriaCourtAppearance.createAlias("CCase.summons", "Summ"); criteriaCourtAppearance.add(Restrictions.eq("Summ.summonsId", summons.getSummonsId())); criteriaCourtAppearance.addOrder(Order.asc("CApp.CourtDTime")); criteriaCourtAppearance.addOrder(Order.asc("CApp.courtAppearanceId")); Integer courtAppListSize = criteriaCourtAppearance.list().size(); String courtDetails = ""; if (courtAppListSize > 0) { CourtAppearanceDO courtApp = (CourtAppearanceDO) criteriaCourtAppearance.list() .get(courtAppListSize - 1); String stringTrialDate = ""; SimpleDateFormat dt = new SimpleDateFormat("yyyy-MMM-dd HH:mm:ss"); try { stringTrialDate = dt.format(courtApp.getCourtDTime()); } catch (Exception exe) { } courtDetails = String.format("Court Appearance Date is %s at %s.", stringTrialDate, courtApp.getCourt().getDescription()); } /* _______________________________ */ SummonsOutstandingReportResultsBO summonsOutstanding = new SummonsOutstandingReportResultsBO( offenderFullName, offenceDescription, tAStaffFullName, vehicleDetails, locationOfOffence, tAOfficeRegion, jPFullName, roadOperationDetails, courtDetails, getTAOfficeRegionDescription(tAOfficeRegion), summons.getServedOnDate()); summonsOutStReportList.add(summonsOutstanding); } report.setResults(summonsOutStReportList); return report; }
From source file:gov.nih.nci.firebird.service.annual.registration.RegistrationWithdrawalServiceBean.java
License:Open Source License
@Override @SuppressWarnings("unchecked") public List<FirebirdUser> getAllInvestigatorsWithPendingWithdrawalRequests() { return sessionProvider.get().createCriteria(FirebirdUser.class) .add(Restrictions.isNotNull("investigatorRole.withdrawalRequest.explanation")) .add(Restrictions.not(Restrictions.eq("investigatorRole.status", InvestigatorStatus.WITHDRAWN))) .list();//from ww w.java 2s . c o m }
From source file:gr.abiss.calipso.domain.ColumnHeading.java
License:Open Source License
/** * this routine is a massive if-then construct that acts as a factory for * the right implementation of the responsibilities defined in the * "Processor" class (above) based on the type of ColumnHeading - the right * implementation will be returned. having everything in one place below, * makes it easy to maintain, as the logic of each of the methods are * closely interdependent for a given column type for e.g. the kind of * hibernate criteria needed depends on what is made available on the UI *//* www . j av a 2 s . c o m*/ private Processor getProcessor() { if (isField()) { switch (field.getName().getType()) { // ============================================================== case 1: case 2: case 3: return new Processor() { List<Expression> getValidFilterExpressions() { return getAsList(IN); } Fragment getFilterUiFragment(MarkupContainer container, User user, Space space, CalipsoService calipsoService) { final Fragment fragment = new Fragment("fragParent", "multiSelect", container); //final Map<String, String> options = field.getOptions(); List<CustomAttributeLookupValue> lookupValues = calipsoService.findLookupValues(space, field.getName().getText()); // TODO: create a leaf-node only finder method in calipso service List<CustomAttributeLookupValue> leafLookupValues = new LinkedList<CustomAttributeLookupValue>(); // leaf selection only for now for (CustomAttributeLookupValue val : lookupValues) { if (CollectionUtils.isEmpty(val.getChildren())) { leafLookupValues.add(val); } } lookupValues = null; final CheckBoxMultipleChoice choice = new CheckBoxMultipleChoice("values", leafLookupValues, new IChoiceRenderer<CustomAttributeLookupValue>() { @Override public Object getDisplayValue(CustomAttributeLookupValue object) { return fragment.getString(object.getNameTranslationResourceKey()); } @Override public String getIdValue(CustomAttributeLookupValue object, int index) { return object.getId() + ""; } }); fragment.add(choice); choice.setModel(new PropertyModel(filterCriteria, "values")); return fragment; } void addRestrictions(DetachedCriteria criteria) { if (filterHasValueList()) { List values = filterCriteria.getValues(); List<Integer> keys = new ArrayList<Integer>(values.size()); for (Object o : values) { if (o instanceof CustomAttributeLookupValue) { CustomAttributeLookupValue val = (CustomAttributeLookupValue) o; keys.add(NumberUtils.createInteger(val.getId() + "")); } else { keys.add(NumberUtils.createInteger(o + "")); } } criteria.add(Restrictions.in(getNameText(), keys)); } } String getAsQueryString() { return getQueryStringFromValueList(); } void loadFromQueryString(String s, User user, CalipsoService calipsoService) { setValueListFromQueryString(s); } }; // ============================================================== case 4: // decimal number return new Processor() { List<Expression> getValidFilterExpressions() { return getAsList(EQ, NOT_EQ, GT, LT, BETWEEN); } Fragment getFilterUiFragment(MarkupContainer container, User user, Space space, CalipsoService calipsoService) { Fragment fragment = new Fragment("fragParent", "textField", container); TextField textField = new TextField("value", Double.class); textField.setModel(new PropertyModel(filterCriteria, "value")); fragment.add(textField); if (filterCriteria.getExpression() == BETWEEN) { TextField textField2 = new TextField("value2", Double.class); textField2.setModel(new PropertyModel(filterCriteria, "value2")); fragment.add(textField2); } else { fragment.add(new WebMarkupContainer("value2").setVisible(false)); } return fragment; } void addRestrictions(DetachedCriteria criteria) { if (filterHasValue()) { Object value = filterCriteria.getValue(); switch (filterCriteria.getExpression()) { case EQ: criteria.add(Restrictions.eq(getNameText(), value)); break; case NOT_EQ: criteria.add(Restrictions.not(Restrictions.eq(name.text, value))); break; case GT: criteria.add(Restrictions.gt(getNameText(), value)); break; case LT: criteria.add(Restrictions.lt(getNameText(), value)); break; case BETWEEN: criteria.add(Restrictions.gt(getNameText(), value)); criteria.add(Restrictions.lt(getNameText(), filterCriteria.getValue2())); break; default: } } } String getAsQueryString() { return getQueryStringFromValue(Double.class); } void loadFromQueryString(String s, User user, CalipsoService calipsoService) { setValueFromQueryString(s, Double.class); } }; // ============================================================== case 6: // date return new Processor() { List<Expression> getValidFilterExpressions() { return getAsList(EQ, NOT_EQ, GT, LT, BETWEEN); } Fragment getFilterUiFragment(MarkupContainer container, User user, Space space, CalipsoService calipsoService) { Fragment fragment = new Fragment("fragParent", "dateField", container); DateField calendar = new DateField("value", new PropertyModel(filterCriteria, "value")/*, false*/); fragment.add(calendar); if (filterCriteria.getExpression() == BETWEEN) { DateField calendar2 = new DateField("value2", new PropertyModel(filterCriteria, "value2")/*, false*/); fragment.add(calendar2); } else { fragment.add(new WebMarkupContainer("value2").setVisible(false)); } return fragment; } void addRestrictions(DetachedCriteria criteria) { if (filterHasValue()) { Object value = filterCriteria.getValue(); switch (filterCriteria.getExpression()) { case EQ: criteria.add(Restrictions.eq(getNameText(), value)); break; case NOT_EQ: criteria.add(Restrictions.not(Restrictions.eq(getNameText(), value))); break; case GT: criteria.add(Restrictions.gt(getNameText(), value)); break; case LT: criteria.add(Restrictions.lt(getNameText(), value)); break; case BETWEEN: criteria.add(Restrictions.gt(getNameText(), value)); criteria.add(Restrictions.lt(getNameText(), filterCriteria.getValue2())); break; default: } } } String getAsQueryString() { return getQueryStringFromValue(Date.class); } void loadFromQueryString(String s, User user, CalipsoService calipsoService) { setValueFromQueryString(s, Date.class); } }; // ============================================================== case 5: // free text return new Processor() { List<Expression> getValidFilterExpressions() { return getAsList(CONTAINS); } Fragment getFilterUiFragment(MarkupContainer container, User user, Space space, CalipsoService calipsoService) { return getTextFieldFragment(container); } void addRestrictions(DetachedCriteria criteria) { if (filterHasValue()) { criteria.add(Restrictions.ilike(getNameText(), (String) filterCriteria.getValue(), MatchMode.ANYWHERE)); } } String getAsQueryString() { return getQueryStringFromValue(String.class); } void loadFromQueryString(String s, User user, CalipsoService calipsoService) { setValueFromQueryString(s, String.class); } }; // TODO: case 10:// organization return new Processor() { List<Expression> getValidFilterExpressions() { return getAsList(CONTAINS); } Fragment getFilterUiFragment(MarkupContainer container, User user, Space space, CalipsoService calipsoService) { return getTextFieldFragment(container); } void addRestrictions(DetachedCriteria criteria) { if (filterHasValue()) { criteria.add(Restrictions.ilike(getNameText(), (String) filterCriteria.getValue(), MatchMode.ANYWHERE)); } } String getAsQueryString() { return getQueryStringFromValue(String.class); } void loadFromQueryString(String s, User user, CalipsoService calipsoService) { setValueFromQueryString(s, String.class); } }; // TODO: case 11:// file return new Processor() { List<Expression> getValidFilterExpressions() { return getAsList(CONTAINS); } Fragment getFilterUiFragment(MarkupContainer container, User user, Space space, CalipsoService calipsoService) { return getTextFieldFragment(container); } void addRestrictions(DetachedCriteria criteria) { if (filterHasValue()) { criteria.add(Restrictions.ilike(getNameText(), (String) filterCriteria.getValue(), MatchMode.ANYWHERE)); } } String getAsQueryString() { return getQueryStringFromValue(String.class); } void loadFromQueryString(String s, User user, CalipsoService calipsoService) { setValueFromQueryString(s, String.class); } }; case 200:// attachment return new Processor() { List<Expression> getValidFilterExpressions() { return getAsList(CONTAINS); } Fragment getFilterUiFragment(MarkupContainer container, User user, Space space, CalipsoService calipsoService) { return getTextFieldFragment(container); } void addRestrictions(DetachedCriteria criteria) { if (filterHasValue()) { criteria.add(Restrictions.ilike(getNameText(), (String) filterCriteria.getValue(), MatchMode.ANYWHERE)); } } String getAsQueryString() { return getQueryStringFromValue(String.class); } void loadFromQueryString(String s, User user, CalipsoService calipsoService) { setValueFromQueryString(s, String.class); } }; case 20:// is user return new Processor() { List<Expression> getValidFilterExpressions() { return getAsList(CONTAINS); } Fragment getFilterUiFragment(MarkupContainer container, User user, Space space, CalipsoService calipsoService) { return getTextFieldFragment(container); } void addRestrictions(DetachedCriteria criteria) { if (filterHasValue()) { criteria.add(Restrictions.ilike(getNameText(), (String) filterCriteria.getValue(), MatchMode.ANYWHERE)); } } String getAsQueryString() { return getQueryStringFromValue(String.class); } void loadFromQueryString(String s, User user, CalipsoService calipsoService) { setValueFromQueryString(s, String.class); } }; case 25:// is user return new Processor() { List<Expression> getValidFilterExpressions() { return getAsList(CONTAINS); } Fragment getFilterUiFragment(MarkupContainer container, User user, Space space, CalipsoService calipsoService) { return getTextFieldFragment(container); } void addRestrictions(DetachedCriteria criteria) { if (filterHasValue()) { criteria.add(Restrictions.ilike(getNameText(), (String) filterCriteria.getValue(), MatchMode.ANYWHERE)); } } String getAsQueryString() { return getQueryStringFromValue(String.class); } void loadFromQueryString(String s, User user, CalipsoService calipsoService) { setValueFromQueryString(s, String.class); } }; case 100: // Assignable spaces (move to space) return new Processor() { List<Expression> getValidFilterExpressions() { return getAsList(IN); } Fragment getFilterUiFragment(MarkupContainer container, User user, Space space, CalipsoService calipsoService) { Fragment fragment = new Fragment("fragParent", "multiSelect", container); final Map<String, String> options = field.getOptions(); List<String> keys = null; if (options != null) { keys = new ArrayList(options.keySet()); // bound // value } else { keys = new ArrayList(); } List<Space> spaces = new LinkedList<Space>(); for (String key : keys) { // spaces.add(ComponentUtils.getJtrac(c).loadSpace(Long.parseLong(key))); spaces.add(calipsoService.loadSpace(Long.parseLong(key))); } // for CheckBoxMultipleChoice choice = new CheckBoxMultipleChoice("values", spaces, new IChoiceRenderer<Space>() { private static final long serialVersionUID = 1L; @Override public Object getDisplayValue(Space o) { logger.info("Option for space: " + o); String name = o.getName(); return name != null ? name : o.getId(); } @Override public String getIdValue(Space o, int index) { return o.getId() + ""; } }); fragment.add(choice); choice.setModel(new PropertyModel(filterCriteria, "values")); return fragment; } void addRestrictions(DetachedCriteria criteria) { if (filterHasValueList()) { List values = filterCriteria.getValues(); criteria.add(Restrictions.in(getNameText(), values)); } } String getAsQueryString() { return getQueryStringFromValueList(); } void loadFromQueryString(String s, User user, CalipsoService calipsoService) { setValueListFromQueryString(s); } }; // ============================================================== default: throw new RuntimeException("Unknown Column Heading " + name); } } else { // this is not a custom field but one of the "built-in" columns switch (name) { // ============================================================== case ID: return new Processor() { List<Expression> getValidFilterExpressions() { return getAsList(EQ); } Fragment getFilterUiFragment(MarkupContainer container, User user, Space space, CalipsoService calipsoService) { return getTextFieldFragment(container); } void addRestrictions(DetachedCriteria criteria) { if (filterHasValue()) { // should never come here for criteria: see // ItemSearch#getRefId() throw new RuntimeException("should not come here for 'id'"); } } String getAsQueryString() { return getQueryStringFromValue(String.class); } void loadFromQueryString(String s, User user, CalipsoService calipsoService) { setValueFromQueryString(s, String.class); } }; // ============================================================== case SUMMARY: return new Processor() { List<Expression> getValidFilterExpressions() { return getAsList(CONTAINS); } Fragment getFilterUiFragment(MarkupContainer container, User user, Space space, CalipsoService calipsoService) { return getTextFieldFragment(container); } void addRestrictions(DetachedCriteria criteria) { if (filterHasValue()) { criteria.add(Restrictions.ilike(getNameText(), (String) filterCriteria.getValue(), MatchMode.ANYWHERE)); } } String getAsQueryString() { return getQueryStringFromValue(String.class); } void loadFromQueryString(String s, User user, CalipsoService calipsoService) { setValueFromQueryString(s, String.class); } }; // ============================================================== case DETAIL: return new Processor() { List<Expression> getValidFilterExpressions() { return getAsList(CONTAINS); } Fragment getFilterUiFragment(MarkupContainer container, User user, Space space, CalipsoService calipsoService) { return getTextFieldFragment(container); } void addRestrictions(DetachedCriteria criteria) { // do nothing, 'detail' already processed, see: // ItemSearch#getSearchText() } String getAsQueryString() { return getQueryStringFromValue(String.class); } void loadFromQueryString(String s, User user, CalipsoService calipsoService) { setValueFromQueryString(s, String.class); } }; // ============================================================== case STATUS: return new Processor() { List<Expression> getValidFilterExpressions() { return getAsList(IN); } Fragment getFilterUiFragment(MarkupContainer container, User user, Space space, CalipsoService calipsoService) { Fragment fragment = new Fragment("fragParent", "multiSelect", container); // status selectable only when context space is not null // final Map<Integer, String> options = // space.getMetadata().getStatesMap(); final Map<Integer, String> options; if (space == null) { options = State.getSpecialStates(); } else { options = space.getMetadata().getStatesMap(); } options.remove(State.NEW); CheckBoxMultipleChoice choice = new CheckBoxMultipleChoice("values", new ArrayList(options.keySet()), new IChoiceRenderer() { public Object getDisplayValue(Object o) { return options.get(o); } public String getIdValue(Object o, int i) { return o.toString(); } }); fragment.add(choice); choice.setModel(new PropertyModel(filterCriteria, "values")); return fragment; } void addRestrictions(DetachedCriteria criteria) { if (filterHasValueList()) { criteria.add(Restrictions.in(getNameText(), filterCriteria.getValues())); } } String getAsQueryString() { return getQueryStringFromValueList(); } void loadFromQueryString(String s, User user, CalipsoService calipsoService) { //logger.info("loadFromQueryString: "+s); setStatusListFromQueryString(s); } }; // ============================================================== case ASSIGNED_TO: case LOGGED_BY: case REPORTED_BY: return new Processor() { List<Expression> getValidFilterExpressions() { return getAsList(IN, IS_NULL); } Fragment getFilterUiFragment(MarkupContainer container, User user, Space space, CalipsoService calipsoService) { Fragment fragment = new Fragment("fragParent", "multiSelect", container); List<User> users = null; if (space == null) { users = calipsoService.findUsersForUser(user); } else { users = calipsoService.findUsersForSpace(space.getId()); } CheckBoxMultipleChoice choice = new CheckBoxMultipleChoice("values", users, new IChoiceRenderer() { public Object getDisplayValue(Object o) { return ((User) o).getFullName(); } public String getIdValue(Object o, int i) { return ((User) o).getId() + ""; } }); fragment.add(choice); choice.setModel(new PropertyModel(filterCriteria, "values")); return fragment; } void addRestrictions(DetachedCriteria criteria) { if (filterHasValueList()) { criteria.add(Restrictions.in(getNameText(), filterCriteria.getValues())); } else if (filterIsNullExpression()) { criteria.add(Restrictions.isNull(getNameText())); } } String getAsQueryString() { return getQueryStringFromUserList(); } void loadFromQueryString(String s, User user, CalipsoService calipsoService) { setUserListFromQueryString(s, calipsoService); } }; // ============================================================== case ASSET_TYPE: return new Processor() { List<Expression> getValidFilterExpressions() { return getAsList(IN); } Fragment getFilterUiFragment(MarkupContainer container, User user, Space space, CalipsoService calipsoService) { Fragment fragment = new Fragment("fragParent", "multiSelect", container); List<AssetType> assetTypes = calipsoService.findAllAssetTypes(); CheckBoxMultipleChoice choice = new CheckBoxMultipleChoice("values", assetTypes, new IChoiceRenderer() { public Object getDisplayValue(Object o) { return ((AssetType) o).getName(); } public String getIdValue(Object o, int i) { return String.valueOf(((AssetType) o).getId()); } }); fragment.add(choice); choice.setModel(new PropertyModel(filterCriteria, "values")); return fragment; } void addRestrictions(DetachedCriteria criteria) { if (filterHasValueList()) { criteria.createAlias("assets", "assets"); criteria.add(Restrictions.in("assets.assetType", filterCriteria.getValues())); } } String getAsQueryString() { return getQueryStringFromAssetTypeList(); } void loadFromQueryString(String s, User user, CalipsoService calipsoService) { setAssetTypeListFromQueryString(s, user, calipsoService); } }; // ============================================================== case TIME_STAMP: case DUE_TO: return new Processor() { List<Expression> getValidFilterExpressions() { return getAsList(BETWEEN, GT, LT, EQ, NOT_EQ); } Fragment getFilterUiFragment(MarkupContainer container, User user, Space space, CalipsoService calipsoService) { Fragment fragment = new Fragment("fragParent", "dateField", container); DateField calendar = new DateField("value", new PropertyModel(filterCriteria, "value")/*, false*/); fragment.add(calendar); if (filterCriteria.getExpression() == BETWEEN) { DateField calendar2 = new DateField("value2", new PropertyModel(filterCriteria, "value2")/*, false*/); fragment.add(calendar2); } else { fragment.add(new WebMarkupContainer("value2").setVisible(false)); } return fragment; } void addRestrictions(DetachedCriteria criteria) { if (filterHasValue()) { Object value = filterCriteria.getValue(); switch (filterCriteria.getExpression()) { case EQ: criteria.add(Restrictions.eq(getNameText(), value)); break; case NOT_EQ: criteria.add(Restrictions.not(Restrictions.eq(getNameText(), value))); break; case GT: criteria.add(Restrictions.gt(getNameText(), value)); break; case LT: criteria.add(Restrictions.lt(getNameText(), value)); break; case BETWEEN: criteria.add(Restrictions.gt(getNameText(), value)); criteria.add(Restrictions.lt(getNameText(), filterCriteria.getValue2())); break; default: } } } String getAsQueryString() { return getQueryStringFromValue(Date.class); } void loadFromQueryString(String s, User user, CalipsoService calipsoService) { setValueFromQueryString(s, Date.class); } }; // ============================================================== case SPACE: return new Processor() { List<Expression> getValidFilterExpressions() { return getAsList(IN); } Fragment getFilterUiFragment(MarkupContainer container, User user, Space space, CalipsoService calipsoService) { Fragment fragment = new Fragment("fragParent", "multiSelect", container); List<Space> spaces = new ArrayList(user.getSpaces()); CheckBoxMultipleChoice choice = new CheckBoxMultipleChoice("values", spaces, new IChoiceRenderer() { public Object getDisplayValue(Object o) { return ((Space) o).getName(); } public String getIdValue(Object o, int i) { return ((Space) o).getId() + ""; } }); fragment.add(choice); choice.setModel(new PropertyModel(filterCriteria, "values")); return fragment; } void addRestrictions(DetachedCriteria criteria) { // already handled space as special case, see // ItemSearch#getSelectedSpaces() } String getAsQueryString() { return getQueryStringFromSpaceList(); } void loadFromQueryString(String s, User user, CalipsoService calipsoService) { setSpaceListFromQueryString(s, user, calipsoService); } }; // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case TOTAL_RESPONSE_TIME: case TIME_FROM_CREATION_TO_FIRST_REPLY: case TIME_FROM_CREATION_TO_CLOSE: return new ProcessorCustom() { private Class validationClass = null; List<Expression> getValidFilterExpressions() { return getAsList(BETWEEN, GT, LT); } Fragment getFilterUiFragment(MarkupContainer container, User user, Space space, CalipsoService calipsoService) { Fragment fragment = new Fragment("fragParent", "effortField", container); WebMarkupContainer days = new WebMarkupContainer("days"); if (name.equals(TOTAL_RESPONSE_TIME)) { validationClass = Double.class; } else { validationClass = Long.class; } TextField textField = new TextField("value", validationClass); days.add(textField); // textField.setModel(new PropertyModel(this, // "filterCriteria.value")); textField.setModel(new PropertyModel(filterCriteria, "value")); fragment.add(days); WebMarkupContainer days2 = new WebMarkupContainer("days2"); if (filterCriteria.getExpression() == BETWEEN) { TextField textField2 = new TextField("value2", validationClass); days2.add(textField2); // textField2.setModel(new PropertyModel(this, // "filterCriteria.value2")); textField2.setModel(new PropertyModel(filterCriteria, "value2")); } // if else { fragment.add(new WebMarkupContainer("value2").setVisible(false)); days2.setVisible(false); } // else fragment.add(days2); // fragment.setVisible(isVisible()); return fragment; } void addRestrictions(DetachedCriteria criteria) { } void addRestrictions(CustomCriteria customCriteria) { if (filterHasValue()) { String criteriaObjectClass = null; if (validationClass != null) { criteriaObjectClass = validationClass.getCanonicalName(); } // if Object value = filterCriteria.getValue(); Object value2 = filterCriteria.getValue2(); Double v1 = new Double(value.toString()); value = v1 * 86400;// In Seconds switch (filterCriteria.getExpression()) { case GT: customCriteria.add(name.getText(), CustomCriteria.GT, value.toString(), criteriaObjectClass); break; case LT: customCriteria.add(name.getText(), CustomCriteria.LT, value.toString(), criteriaObjectClass); break; case BETWEEN: Double v2 = new Double(value2.toString()); value2 = v2 * 86400; // In Seconds customCriteria.add(name.getText(), CustomCriteria.GET, value.toString(), criteriaObjectClass); customCriteria.add(name.getText(), CustomCriteria.LET, value2.toString(), criteriaObjectClass); break; default: } } } String getAsQueryString() { return getQueryStringFromValue(Long.class); } void loadFromQueryString(String s, User user, CalipsoService calipsoService) { setValueFromQueryString(s, Long.class); } }; // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case PLANNED_EFFORT: return new Processor() { List<Expression> getValidFilterExpressions() { return getAsList(EQ, NOT_EQ, GT, LT, BETWEEN); } Fragment getFilterUiFragment(MarkupContainer container, User user, Space space, CalipsoService calipsoService) { Fragment fragment = new Fragment("fragParent", "effortField2", container); EffortField effortField = new EffortField("value", new PropertyModel(filterCriteria, "value"), false); fragment.add(effortField); if (filterCriteria.getExpression() == BETWEEN) { EffortField effortField2 = new EffortField("value2", new PropertyModel(filterCriteria, "value2"), false); fragment.add(new WebMarkupContainer("and")); fragment.add(effortField2); } else { fragment.add(new WebMarkupContainer("and").setVisible(false)); fragment.add(new WebMarkupContainer("value2").setVisible(false)); } return fragment; } void addRestrictions(DetachedCriteria criteria) { if (filterHasValue()) { Object value = filterCriteria.getValue(); switch (filterCriteria.getExpression()) { case EQ: criteria.add(Restrictions.eq(getNameText(), value)); break; case NOT_EQ: criteria.add(Restrictions.not(Restrictions.eq(getNameText(), value))); break; case GT: criteria.add(Restrictions.gt(getNameText(), value)); break; case LT: criteria.add(Restrictions.lt(getNameText(), value)); break; case BETWEEN: criteria.add(Restrictions.gt(getNameText(), value)); criteria.add(Restrictions.lt(getNameText(), filterCriteria.getValue2())); break; default: } } } String getAsQueryString() { return getQueryStringFromValue(Integer.class); } void loadFromQueryString(String s, User user, CalipsoService calipsoService) { setValueFromQueryString(s, Integer.class); } }; // ============================================================== default: throw new RuntimeException("Unknown Column Heading " + name); } } }
From source file:info.jtrac.domain.ColumnHeading.java
License:Apache License
/** * this routine is a massive if-then construct that acts as a factory for the * right implementation of the responsibilities defined in the "Processor" class (above) * based on the type of ColumnHeading - the right implementation will be returned. * having everything in one place below, makes it easy to maintain, as the * logic of each of the methods are closely interdependent for a given column type * for e.g. the kind of hibernate criteria needed depends on what is made available on the UI */// w w w . j ava2s.c o m private Processor getProcessor() { if (isField()) { switch (field.getName().getType()) { //============================================================== case 1: case 2: case 3: return new Processor() { List<Expression> getValidFilterExpressions() { return getAsList(IN); } Fragment getFilterUiFragment(MarkupContainer container, User user, Space space, Jtrac jtrac) { Fragment fragment = new Fragment("fragParent", "multiSelect", container); final Map<String, String> options = field.getOptions(); JtracCheckBoxMultipleChoice choice = new JtracCheckBoxMultipleChoice("values", new ArrayList(options.keySet()), new IChoiceRenderer() { public Object getDisplayValue(Object o) { return options.get(o); } public String getIdValue(Object o, int i) { return o.toString(); } }); fragment.add(choice); choice.setModel(new PropertyModel(filterCriteria, "values")); return fragment; } void addRestrictions(DetachedCriteria criteria) { if (filterHasValueList()) { List values = filterCriteria.getValues(); List<Integer> keys = new ArrayList<Integer>(values.size()); for (Object o : values) { keys.add(new Integer(o.toString())); } criteria.add(Restrictions.in(getNameText(), keys)); } } String getAsQueryString() { return getQueryStringFromValueList(); } void loadFromQueryString(String s, User user, Jtrac jtrac) { setValueListFromQueryString(s); } }; //============================================================== case 4: // decimal number return new Processor() { List<Expression> getValidFilterExpressions() { return getAsList(EQ, NOT_EQ, GT, LT, BETWEEN); } Fragment getFilterUiFragment(MarkupContainer container, User user, Space space, Jtrac jtrac) { Fragment fragment = new Fragment("fragParent", "textField", container); TextField textField = new TextField("value", Double.class); textField.setModel(new PropertyModel(filterCriteria, "value")); fragment.add(textField); if (filterCriteria.getExpression() == BETWEEN) { TextField textField2 = new TextField("value2", Double.class); textField.setModel(new PropertyModel(filterCriteria, "value2")); fragment.add(textField2); } else { fragment.add(new WebMarkupContainer("value2").setVisible(false)); } return fragment; } void addRestrictions(DetachedCriteria criteria) { if (filterHasValue()) { Object value = filterCriteria.getValue(); switch (filterCriteria.getExpression()) { case EQ: criteria.add(Restrictions.eq(getNameText(), value)); break; case NOT_EQ: criteria.add(Restrictions.not(Restrictions.eq(name.text, value))); break; case GT: criteria.add(Restrictions.gt(getNameText(), value)); break; case LT: criteria.add(Restrictions.lt(getNameText(), value)); break; case BETWEEN: criteria.add(Restrictions.gt(getNameText(), value)); criteria.add(Restrictions.lt(getNameText(), filterCriteria.getValue2())); break; default: } } } String getAsQueryString() { return getQueryStringFromValue(Double.class); } void loadFromQueryString(String s, User user, Jtrac jtrac) { setValueFromQueryString(s, Double.class); } }; //============================================================== case 6: // date return new Processor() { List<Expression> getValidFilterExpressions() { return getAsList(EQ, NOT_EQ, GT, LT, BETWEEN); } Fragment getFilterUiFragment(MarkupContainer container, User user, Space space, Jtrac jtrac) { Fragment fragment = new Fragment("fragParent", "dateField", container); YuiCalendar calendar = new YuiCalendar("value", new PropertyModel(filterCriteria, "value"), false); fragment.add(calendar); if (filterCriteria.getExpression() == BETWEEN) { YuiCalendar calendar2 = new YuiCalendar("value2", new PropertyModel(filterCriteria, "value2"), false); fragment.add(calendar2); } else { fragment.add(new WebMarkupContainer("value2").setVisible(false)); } return fragment; } void addRestrictions(DetachedCriteria criteria) { if (filterHasValue()) { Object value = filterCriteria.getValue(); switch (filterCriteria.getExpression()) { case EQ: criteria.add(Restrictions.eq(getNameText(), value)); break; case NOT_EQ: criteria.add(Restrictions.not(Restrictions.eq(getNameText(), value))); break; case GT: criteria.add(Restrictions.gt(getNameText(), value)); break; case LT: criteria.add(Restrictions.lt(getNameText(), value)); break; case BETWEEN: criteria.add(Restrictions.gt(getNameText(), value)); criteria.add(Restrictions.lt(getNameText(), filterCriteria.getValue2())); break; default: } } } String getAsQueryString() { return getQueryStringFromValue(Date.class); } void loadFromQueryString(String s, User user, Jtrac jtrac) { setValueFromQueryString(s, Date.class); } }; //============================================================== case 5: // free text return new Processor() { List<Expression> getValidFilterExpressions() { return getAsList(CONTAINS); } Fragment getFilterUiFragment(MarkupContainer container, User user, Space space, Jtrac jtrac) { return getTextFieldFragment(container); } void addRestrictions(DetachedCriteria criteria) { if (filterHasValue()) { criteria.add(Restrictions.ilike(getNameText(), (String) filterCriteria.getValue(), MatchMode.ANYWHERE)); } } String getAsQueryString() { return getQueryStringFromValue(String.class); } void loadFromQueryString(String s, User user, Jtrac jtrac) { setValueFromQueryString(s, String.class); } }; //============================================================== default: throw new RuntimeException("Unknown Column Heading " + name); } } else { // this is not a custom field but one of the "built-in" columns switch (name) { //============================================================== case ID: return new Processor() { List<Expression> getValidFilterExpressions() { return getAsList(EQ); } Fragment getFilterUiFragment(MarkupContainer container, User user, Space space, Jtrac jtrac) { return getTextFieldFragment(container); } void addRestrictions(DetachedCriteria criteria) { if (filterHasValue()) { // should never come here for criteria: see ItemSearch#getRefId() throw new RuntimeException("should not come here for 'id'"); } } String getAsQueryString() { return getQueryStringFromValue(String.class); } void loadFromQueryString(String s, User user, Jtrac jtrac) { setValueFromQueryString(s, String.class); } }; //============================================================== case SUMMARY: return new Processor() { List<Expression> getValidFilterExpressions() { return getAsList(CONTAINS); } Fragment getFilterUiFragment(MarkupContainer container, User user, Space space, Jtrac jtrac) { return getTextFieldFragment(container); } void addRestrictions(DetachedCriteria criteria) { if (filterHasValue()) { criteria.add(Restrictions.ilike(getNameText(), (String) filterCriteria.getValue(), MatchMode.ANYWHERE)); } } String getAsQueryString() { return getQueryStringFromValue(String.class); } void loadFromQueryString(String s, User user, Jtrac jtrac) { setValueFromQueryString(s, String.class); } }; //============================================================== case DETAIL: return new Processor() { List<Expression> getValidFilterExpressions() { return getAsList(CONTAINS); } Fragment getFilterUiFragment(MarkupContainer container, User user, Space space, Jtrac jtrac) { return getTextFieldFragment(container); } void addRestrictions(DetachedCriteria criteria) { // do nothing, 'detail' already processed, see: ItemSearch#getSearchText() } String getAsQueryString() { return getQueryStringFromValue(String.class); } void loadFromQueryString(String s, User user, Jtrac jtrac) { setValueFromQueryString(s, String.class); } }; //============================================================== case STATUS: return new Processor() { List<Expression> getValidFilterExpressions() { return getAsList(IN); } Fragment getFilterUiFragment(MarkupContainer container, User user, Space space, Jtrac jtrac) { Fragment fragment = new Fragment("fragParent", "multiSelect", container); // status selectable only when context space is not null final Map<Integer, String> options = space.getMetadata().getStatesMap(); options.remove(State.NEW); JtracCheckBoxMultipleChoice choice = new JtracCheckBoxMultipleChoice("values", new ArrayList(options.keySet()), new IChoiceRenderer() { public Object getDisplayValue(Object o) { return options.get(o); } public String getIdValue(Object o, int i) { return o.toString(); } }); fragment.add(choice); choice.setModel(new PropertyModel(filterCriteria, "values")); return fragment; } void addRestrictions(DetachedCriteria criteria) { if (filterHasValueList()) { criteria.add(Restrictions.in(getNameText(), filterCriteria.getValues())); } } String getAsQueryString() { return getQueryStringFromValueList(); } void loadFromQueryString(String s, User user, Jtrac jtrac) { setStatusListFromQueryString(s); } }; //============================================================== case ASSIGNED_TO: case LOGGED_BY: return new Processor() { List<Expression> getValidFilterExpressions() { return getAsList(IN); } Fragment getFilterUiFragment(MarkupContainer container, User user, Space space, Jtrac jtrac) { Fragment fragment = new Fragment("fragParent", "multiSelect", container); List<User> users = null; if (space == null) { users = jtrac.findUsersForUser(user); } else { users = jtrac.findUsersForSpace(space.getId()); } JtracCheckBoxMultipleChoice choice = new JtracCheckBoxMultipleChoice("values", users, new IChoiceRenderer() { public Object getDisplayValue(Object o) { return ((User) o).getName(); } public String getIdValue(Object o, int i) { return ((User) o).getId() + ""; } }); fragment.add(choice); choice.setModel(new PropertyModel(filterCriteria, "values")); return fragment; } void addRestrictions(DetachedCriteria criteria) { if (filterHasValueList()) { criteria.add(Restrictions.in(getNameText(), filterCriteria.getValues())); } } String getAsQueryString() { return getQueryStringFromUserList(); } void loadFromQueryString(String s, User user, Jtrac jtrac) { setUserListFromQueryString(s, jtrac); } }; //============================================================== case TIME_STAMP: return new Processor() { List<Expression> getValidFilterExpressions() { return getAsList(BETWEEN, GT, LT); } Fragment getFilterUiFragment(MarkupContainer container, User user, Space space, Jtrac jtrac) { Fragment fragment = new Fragment("fragParent", "dateField", container); YuiCalendar calendar = new YuiCalendar("value", new PropertyModel(filterCriteria, "value"), false); fragment.add(calendar); if (filterCriteria.getExpression() == BETWEEN) { YuiCalendar calendar2 = new YuiCalendar("value2", new PropertyModel(filterCriteria, "value2"), false); fragment.add(calendar2); } else { fragment.add(new WebMarkupContainer("value2").setVisible(false)); } return fragment; } void addRestrictions(DetachedCriteria criteria) { if (filterHasValue()) { Object value = filterCriteria.getValue(); switch (filterCriteria.getExpression()) { case GT: criteria.add(Restrictions.gt(getNameText(), value)); break; case LT: criteria.add(Restrictions.lt(getNameText(), value)); break; case BETWEEN: criteria.add(Restrictions.gt(getNameText(), value)); criteria.add(Restrictions.lt(getNameText(), filterCriteria.getValue2())); break; default: } } } String getAsQueryString() { return getQueryStringFromValue(Date.class); } void loadFromQueryString(String s, User user, Jtrac jtrac) { setValueFromQueryString(s, Date.class); } }; //============================================================== case SPACE: return new Processor() { List<Expression> getValidFilterExpressions() { return getAsList(IN); } Fragment getFilterUiFragment(MarkupContainer container, User user, Space space, Jtrac jtrac) { Fragment fragment = new Fragment("fragParent", "multiSelect", container); List<Space> spaces = new ArrayList(user.getSpaces()); JtracCheckBoxMultipleChoice choice = new JtracCheckBoxMultipleChoice("values", spaces, new IChoiceRenderer() { public Object getDisplayValue(Object o) { return ((Space) o).getName(); } public String getIdValue(Object o, int i) { return ((Space) o).getId() + ""; } }); fragment.add(choice); choice.setModel(new PropertyModel(filterCriteria, "values")); return fragment; } void addRestrictions(DetachedCriteria criteria) { // already handled space as special case, see ItemSearch#getSelectedSpaces() } String getAsQueryString() { return getQueryStringFromSpaceList(); } void loadFromQueryString(String s, User user, Jtrac jtrac) { setSpaceListFromQueryString(s, user, jtrac); } }; //============================================================== default: throw new RuntimeException("Unknown Column Heading " + name); } } }
From source file:info.jtrac.repository.HibernateJtracDao.java
License:Apache License
public void addRestrictions(final ColumnHeading columnHeading, DetachedCriteria criteria) { if (columnHeading.isField()) { switch (columnHeading.getField().getName().getType()) { case 1:// w w w. j av a 2 s . com case 2: case 3: { if (columnHeading.filterHasValueList()) { List<Object> values = columnHeading.getFilterCriteria().getValues(); List<Integer> keys = new ArrayList<Integer>(values.size()); for (Object o : values) { keys.add(new Integer(o.toString())); } criteria.add(Restrictions.in(columnHeading.getNameText(), keys)); } break; } case 4: {// decimal number if (columnHeading.filterHasValue()) { Object value = columnHeading.getFilterCriteria().getValue(); switch (columnHeading.getFilterCriteria().getExpression()) { case EQ: { criteria.add(Restrictions.eq(columnHeading.getNameText(), value)); break; } case NOT_EQ: { criteria.add(Restrictions.not(Restrictions.eq(columnHeading.getName().getText(), value))); break; } case GT: { criteria.add(Restrictions.gt(columnHeading.getNameText(), value)); break; } case LT: { criteria.add(Restrictions.lt(columnHeading.getNameText(), value)); break; } case BETWEEN: { criteria.add(Restrictions.gt(columnHeading.getNameText(), value)); criteria.add(Restrictions.lt(columnHeading.getNameText(), columnHeading.getFilterCriteria().getValue2())); break; } default: } } break; } case 6: {// date if (columnHeading.filterHasValue()) { Object value = columnHeading.getFilterCriteria().getValue(); switch (columnHeading.getFilterCriteria().getExpression()) { case EQ: criteria.add(Restrictions.eq(columnHeading.getNameText(), value)); break; case NOT_EQ: criteria.add(Restrictions.not(Restrictions.eq(columnHeading.getNameText(), value))); break; case GT: criteria.add(Restrictions.gt(columnHeading.getNameText(), value)); break; case LT: criteria.add(Restrictions.lt(columnHeading.getNameText(), value)); break; case BETWEEN: criteria.add(Restrictions.gt(columnHeading.getNameText(), value)); criteria.add(Restrictions.lt(columnHeading.getNameText(), columnHeading.getFilterCriteria().getValue2())); break; default: } } break; } case 5: {// free text if (columnHeading.filterHasValue()) { criteria.add(Restrictions.ilike(columnHeading.getNameText(), (String) columnHeading.getFilterCriteria().getValue(), MatchMode.ANYWHERE)); } break; } default: throw new RuntimeException("Unknown Column Heading " + columnHeading.getName()); } } else { // this is not a custom field but one of the "built-in" columns switch (columnHeading.getName()) { case ID: { if (columnHeading.filterHasValue()) { // should never come here for criteria: see ItemSearch#getRefId() throw new RuntimeException("should not come here for 'id'"); } break; } case SUMMARY: { if (columnHeading.filterHasValue()) { criteria.add(Restrictions.ilike(columnHeading.getNameText(), (String) columnHeading.getFilterCriteria().getValue(), MatchMode.ANYWHERE)); } break; } case DETAIL: { // do nothing, 'detail' already processed, see: ItemSearch#getSearchText() break; } case STATUS: { if (columnHeading.filterHasValueList()) { criteria.add(Restrictions.in(columnHeading.getNameText(), columnHeading.getFilterCriteria().getValues())); } break; } case ASSIGNED_TO: case LOGGED_BY: { if (columnHeading.filterHasValueList()) { criteria.add(Restrictions.in(columnHeading.getNameText(), columnHeading.getFilterCriteria().getValues())); } break; } case TIME_STAMP: { if (columnHeading.filterHasValue()) { Object value = columnHeading.getFilterCriteria().getValue(); switch (columnHeading.getFilterCriteria().getExpression()) { case GT: criteria.add(Restrictions.gt(columnHeading.getNameText(), value)); break; case LT: criteria.add(Restrictions.lt(columnHeading.getNameText(), value)); break; case BETWEEN: criteria.add(Restrictions.gt(columnHeading.getNameText(), value)); criteria.add(Restrictions.lt(columnHeading.getNameText(), columnHeading.getFilterCriteria().getValue2())); break; default: } } break; } case SPACE: { // already handled space as special case, see ItemSearch#getSelectedSpaces() break; } default: throw new RuntimeException("Unknown Column Heading " + columnHeading.getName()); } } }