Changeset 3436


Ignore:
Timestamp:
08/23/10 23:02:03 (18 months ago)
Author:
mswertz
Message:

fix for bug #90 broken xref links in nested form

File:
1 edited

Legend:

Unmodified
Added
Removed
  • molgenis/3.3/src/org/molgenis/framework/ui/FormModel.java

    r3130 r3436  
    732732 
    733733                                // add filters for xref or mref relationships (if any) 
    734                                 // if multiple xrefs apply then the filters are union  
     734                                // if multiple xrefs apply then the filters are union 
    735735                                // (so xref1 OR xref2 OR etc) 
    736736                                if (records.size() > 0) 
     
    744744                                                if (values.size() > 0) 
    745745                                                { 
    746                                                         for (int i = 0; i < values.size(); i ++) 
     746                                                        for (int i = 0; i < values.size(); i++) 
    747747                                                        { 
    748                                                                 QueryRule rule = new QueryRule(pf.getXrefToParent(), QueryRule.Operator.EQUALS, values.get(i)); 
     748                                                                QueryRule rule = new QueryRule(pf.getXrefToParent(), QueryRule.Operator.EQUALS, values 
     749                                                                                .get(i)); 
     750                                                                if(xref_filters.size() > 0) xref_filters.add(new QueryRule(Operator.OR)); 
    749751                                                                xref_filters.add(rule); 
    750                                                                 xref_filters.add(new QueryRule(Operator.OR)); 
    751752                                                        } 
    752753                                                } 
     
    757758                                                        QueryRule rule = new QueryRule(pf.getXrefToParent(), QueryRule.Operator.EQUALS, 
    758759                                                                        Integer.MIN_VALUE); 
     760                                                        if(xref_filters.size() > 0) xref_filters.add(new QueryRule(Operator.OR)); 
    759761                                                        xref_filters.add(rule); 
    760                                                         xref_filters.add(new QueryRule(Operator.OR)); 
     762                                                         
    761763                                                } 
    762764                                        } 
     
    765767                                        { 
    766768                                                QueryRule rule = new QueryRule(pf.getXrefToParent(), QueryRule.Operator.EQUALS, parentValue); 
     769                                                if (xref_filters.size() > 0) xref_filters.add(new QueryRule(Operator.OR)); 
    767770                                                xref_filters.add(rule); 
    768                                                 xref_filters.add(new QueryRule(Operator.OR)); 
     771 
    769772                                        } 
    770                                         else 
    771                                         { 
    772                                                 QueryRule rule = new QueryRule(pf.getXrefToParent(), QueryRule.Operator.EQUALS, 
    773                                                                 Integer.MIN_VALUE); 
    774                                                 xref_filters.add(rule); 
    775                                                 xref_filters.add(new QueryRule(Operator.OR)); 
    776                                         } 
     773//                                      else 
     774//                                      { 
     775//                                              QueryRule rule = new QueryRule(pf.getXrefToParent(), QueryRule.Operator.EQUALS, 
     776//                                                              Integer.MIN_VALUE); 
     777//                                              if (xref_filters.size() > 0) xref_filters.add(new QueryRule(Operator.OR)); 
     778//                                              xref_filters.add(rule); 
     779// 
     780//                                      } 
    777781                                } 
    778782                        } 
    779783                        // put it all in one clause, e.g. (xref1 = 0 OR xref1 = 1 OR xref2=3 
    780784                        // ....) 
     785                        if(rules.size()>0) rules.add(new QueryRule(Operator.OR)); 
    781786                        rules.add(new QueryRule(xref_filters)); 
    782                         rules.add(new QueryRule(Operator.OR)); 
     787                         
    783788                } 
    784789 
     
    786791                { 
    787792                        QueryRule rule = super.getRootScreen().getLogin().getRowlevelSecurityFilters(this.create()); 
    788                         if (rule != null /* && !rule.equals(new QueryRule()) */) rules.add(rule); 
     793                        if (rule != null && !rule.equals(new QueryRule())) rules.add(rule); 
    789794                } 
    790795                return rules; 
Note: See TracChangeset for help on using the changeset viewer.