Changeset 3459


Ignore:
Timestamp:
09/02/10 22:11:50 (17 months ago)
Author:
mswertz
Message:

enhancement: added <form sortorder="ASC" next to sortby="field"

Location:
molgenis/3.3/src/org/molgenis
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • molgenis/3.3/src/org/molgenis/generators/ui/FormScreenGen.java.ftl

    r3417 r3459  
    6666                this.setLabel("${form.label}"); 
    6767                this.setLimit(${form.limit}); 
    68 <#if form.sortby?exists> 
     68 
     69                <#if form.sortby?exists> 
    6970                //sort is a bit hacky awaiting redesign of the Form classes 
    7071                try 
    7172                { 
    7273                        ((FormController)this.getController()).getPager().setOrderByField("${form.sortby}".toLowerCase()); 
    73                         this.setSort("${form.sortby}".toLowerCase()); 
     74                        ((FormController)this.getController()).getPager().setOrderByOperator(Operator.SORT${form.sortorder}); 
     75                        this.setSort("${form.sortby}"); 
    7476                } 
    7577                catch (DatabaseException e) 
     
    7880                        e.printStackTrace(); 
    7981                } 
    80 </#if>           
     82                </#if>   
    8183                this.setMode(FormModel.Mode.${form.viewType}); 
    8284                this.setCsvReader(new ${entity}CsvReader()); 
  • molgenis/3.3/src/org/molgenis/model/MolgenisModelParser.java

    r3417 r3459  
    4343import org.molgenis.model.elements.View; 
    4444import org.molgenis.model.elements.Field.Type; 
     45import org.molgenis.model.elements.Form.SortOrder; 
    4546import org.w3c.dom.Document; 
    4647import org.w3c.dom.Element; 
     
    165166                                for (String name : elem.getAttribute("fields").split(",")) 
    166167                                { 
    167 //                                      Field f = entity.getField(name); 
    168 //                                      if (f == null) 
    169 //                                      { 
    170 //                                              // try to get superclass field (need to copy it then) 
    171 //                                              f = entity.getAllField(name); 
    172 //                                              if (f == null) throw new MolgenisModelException("Missing unique field '" + name 
    173 //                                                              + "' in entity '" + entity.getName() + "'"); 
    174 // 
    175 //                                              // copy the field so it will end up in the table (as 
    176 //                                              // redundant copy) to enforce unique 
    177 //                                              // f = new Field(f); 
    178 //                                              // f.setEntity(entity); 
    179 //                                              // f.setSystem(true); 
    180 //                                              // entity.addField(f); 
    181 //                                      } 
     168                                        // Field f = entity.getField(name); 
     169                                        // if (f == null) 
     170                                        // { 
     171                                        // // try to get superclass field (need to copy it then) 
     172                                        // f = entity.getAllField(name); 
     173                                        // if (f == null) throw new 
     174                                        // MolgenisModelException("Missing unique field '" + name 
     175                                        // + "' in entity '" + entity.getName() + "'"); 
     176                                        // 
     177                                        // // copy the field so it will end up in the table (as 
     178                                        // // redundant copy) to enforce unique 
     179                                        // // f = new Field(f); 
     180                                        // // f.setEntity(entity); 
     181                                        // // f.setSystem(true); 
     182                                        // // entity.addField(f); 
     183                                        // } 
    182184 
    183185                                        keys.add(name); 
     
    194196                                String name = elem.getAttribute("name"); 
    195197                                // should include superclass methods now 
    196 //                              if (f == null) 
    197 //                              { 
    198 //                                      throw new MolgenisModelException("Missing unique field: " + elem.getAttribute("name")); 
    199 //                                      // return null; 
    200 //                              } 
     198                                // if (f == null) 
     199                                // { 
     200                                // throw new MolgenisModelException("Missing unique field: " + 
     201                                // elem.getAttribute("name")); 
     202                                // // return null; 
     203                                // } 
    201204 
    202205                                keys.add(name); 
    203206                        } 
    204                          
    205                         //description 
     207 
     208                        // description 
    206209                        String key_description = null; 
    207210                        if (elem.hasAttribute("description")) key_description = elem.getAttribute("description"); 
     
    387390                if (type.equals("varchar")) type = "string"; 
    388391                if (type.equals("number")) type = "int"; 
    389                 if (type.equals("boolean")) type="bool"; 
    390                 if (type.equals("xref_single")) type = "xref"; 
     392                if (type.equals("boolean")) type = "bool"; 
     393                if (type.equals("xref_single")) type = "xref"; 
    391394                if (type.equals("xref_multiple")) type = "mref"; 
    392395                if (label.equals("")) label = name; 
     
    470473                        // caveat, can be both ends!!! 
    471474                        if (mref_name.equals("") && (xref_entity.equals(""))) throw new MolgenisModelException( 
    472                                         "xref_entity must be set for xref field '" + field.getName() + "' of entity '" 
    473                                                         + entity.getName() + "'"); 
     475                                        "xref_entity must be set for xref field '" + field.getName() + "' of entity '" + entity.getName() 
     476                                                        + "'"); 
    474477 
    475478                        List<String> xref_labels = null; 
    476                         if(xref_label != null) xref_labels = Arrays.asList(xref_label.split(",")); 
    477                          
     479                        if (xref_label != null) xref_labels = Arrays.asList(xref_label.split(",")); 
     480 
    478481                        field.setXRefVariables(xref_entity, xref_field, xref_labels); 
    479482 
     
    881884                                } 
    882885                        } 
    883                          
    884                         //SORT 
     886 
     887                        // SORT 
    885888                        String sortby = element.getAttribute("sortby"); 
    886                         if(sortby != null) 
    887                         { 
    888                                 //TODO ensure valid sort field 
     889                        if (sortby != null && sortby != "") 
     890                        { 
     891                                // TODO ensure valid sort field 
    889892                                form.setSortby(sortby); 
     893                        } 
     894                        String sortorder = element.getAttribute("sortorder"); 
     895                        if (sortorder != null && sortby != "") 
     896                        { 
     897                                if (!sortorder.equalsIgnoreCase(Form.SortOrder.ASC.toString()) 
     898                                                && !sortorder.equalsIgnoreCase(Form.SortOrder.DESC.toString())) 
     899                                { 
     900                                        throw new MolgenisModelException( 
     901                                                        "sortorder can only be 'asc' or 'desc'. Parser found <form name=\"" + form.getName() 
     902                                                                        + "\" sortorder=\"" + sortorder + "\""); 
     903                                } 
     904                                else 
     905                                { 
     906 
     907                                        form.setSortorder(SortOrder.parse(sortorder)); 
     908                                } 
    890909                        } 
    891910 
     
    943962                                        if (f == null) 
    944963                                        { 
    945                                                 throw new MolgenisModelException("Could not find field '" 
    946                                                                 + field + "' defined in compact_view='"+element.getAttribute("compact_view")+"' in form '" + form.getName() + "'"); 
     964                                                throw new MolgenisModelException("Could not find field '" + field 
     965                                                                + "' defined in compact_view='" + element.getAttribute("compact_view") + "' in form '" 
     966                                                                + form.getName() + "'"); 
    947967                                        } 
    948968                                        compact_fields.add(field); 
     
    11051125                                        try 
    11061126                                        { 
    1107                                                 field.setXrefLabelNames(Arrays.asList(new String[]{"id"})); 
     1127                                                field.setXrefLabelNames(Arrays.asList(new String[] 
     1128                                                { "id" })); 
    11081129                                        } 
    11091130                                        catch (Exception e) 
  • molgenis/3.3/src/org/molgenis/model/elements/Form.java

    r3417 r3459  
    194194 
    195195        private String sortby; 
    196          
    197         /** 
    198          * Option to have a compact view only showing the assigned fields.. 
    199          * The other fields will be 'collapsed' with a '+' to uncollapse them. 
     196        private SortOrder sortorder = SortOrder.ASC; 
     197        public enum SortOrder 
     198        { 
     199                ASC, DESC; 
     200                public static SortOrder parse(String str) throws MolgenisModelException 
     201                { 
     202                        if (str == null) throw new MolgenisModelException("SortOrder cannot be null"); 
     203                        if(str.equalsIgnoreCase(SortOrder.ASC.toString())) return SortOrder.ASC; 
     204                        if(str.equalsIgnoreCase(SortOrder.DESC.toString())) return SortOrder.DESC; 
     205                        throw new MolgenisModelException("SortOrder can only be 'asc' or 'desc'"); 
     206                } 
     207        }; 
     208 
     209        /** 
     210         * Option to have a compact view only showing the assigned fields.. The 
     211         * other fields will be 'collapsed' with a '+' to uncollapse them. 
    200212         */ 
    201213        private List<String> compactView = new ArrayList<String>(); 
    202          
     214 
    203215        /** */ 
    204216        private static final long serialVersionUID = -2642011592737487306L; 
     
    343355                this.compactView = compactFields; 
    344356        } 
    345          
     357 
    346358        public String toString() 
    347359        { 
    348360                String commands = ""; 
    349                 for(String command: getCommands()) commands += command +","; 
     361                for (String command : getCommands()) 
     362                        commands += command + ","; 
    350363                String sortby = ""; 
    351                 if(this.sortby != null) sortby = "sortby="+this.sortby; 
    352                 return String.format("Form(name=%s, entity=%s, commands=%s,%s)", getName(), getRecord().getName(), commands,sortby); 
     364                if (this.sortby != null) sortby = "sortby=" + this.sortby; 
     365                return String.format("Form(name=%s, entity=%s, commands=%s,%s)", getName(), getRecord().getName(), commands, 
     366                                sortby); 
    353367        } 
    354368 
     
    362376                this.sortby = sortby; 
    363377        } 
    364          
    365          
     378 
     379        public SortOrder getSortorder() 
     380        { 
     381                return sortorder; 
     382        } 
     383 
     384        public void setSortorder(SortOrder sortorder) 
     385        { 
     386                this.sortorder = sortorder; 
     387        } 
    366388} 
Note: See TracChangeset for help on using the changeset viewer.