Changeset 2958 for trunk


Ignore:
Timestamp:
07/10/07 13:25:24 (13 years ago)
Author:
melissa
Message:

Allow templates to specify the node number for each node in a map, e.g. if the
map is "Image:CustomAttributes:Pixels:SizeX-1,0,1", then the value retrieved
would be SizeX from the 1st Pixels element in the 1st Image's 0th CustomAttributes element.

Location:
trunk/loci
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/loci/formats/FormatReader.java

    r2957 r2958  
    176176          Method m = store.getClass().getMethod("populateOriginalMetadata", 
    177177            new Class[] {String.class, String.class}); 
    178           m.invoke(store, new Object[] {key, value}); 
     178          m.invoke(store, new Object[] {key, value.toString()}); 
    179179        } 
    180180      } 
  • trunk/loci/ome/notes/Notes.java

    r2793 r2958  
    545545    currentFile = file;  
    546546    FileStitcher stitcher = new FileStitcher(); 
     547    stitcher.setOriginalMetadataPopulated(true);  
    547548    progress.setString("Reading " + currentFile); 
    548549    
  • trunk/loci/ome/notes/Template.java

    r2780 r2958  
    377377        if (tabs[i].getField(j).isRepeated()) { 
    378378          String map = tabs[i].getField(j).getValueMap(); 
    379           if (map.indexOf("-") != -1) map = map.substring(0, map.indexOf("-")); 
    380379 
    381380          try { 
     
    383382            for (int k=1; k<nodeCount; k++) { 
    384383              TemplateField f = tabs[i].getField(j).copy(); 
    385               f.setValueMap(map + "-" + k); 
    386               f.setNameMap(f.getNameMap() + "-" + k);  
     384              if (map.indexOf("-") != -1) { 
     385                f.setValueMap(map + "," + k); 
     386                f.setNameMap(f.getNameMap() + "," + k);  
     387              }  
     388              else { 
     389                f.setValueMap(map + "-" + k); 
     390                f.setNameMap(f.getNameMap() + "-" + k);  
     391              }  
    387392              f.setRow(tabs[i].getField(j).getRow() + k);  
    388393              tabs[i].addField(f); 
     
    402407          if (f.isRepeated()) { 
    403408            String map = f.getValueMap(); 
    404             if (map.indexOf("-") != -1) { 
    405               map = map.substring(0, map.indexOf("-")); 
    406             } 
    407409 
    408410            try { 
    409411              for (int m=1; m<TemplateTools.getNodeCount(root, map); m++) { 
    410                 f.setValueMap(map + "-" + k); 
    411                 f.setNameMap(f.getNameMap() + "-" + k); 
     412                if (map.indexOf("-") != -1) { 
     413                  f.setValueMap(map + "," + k); 
     414                  f.setNameMap(f.getNameMap() + "," + k);  
     415                }  
     416                else { 
     417                  f.setValueMap(map + "-" + k); 
     418                  f.setNameMap(f.getNameMap() + "-" + k); 
     419                }  
    412420                f.setRow(g.getField(0, k).getRow() + m);  
    413421                g.addField(f); 
  • trunk/loci/ome/notes/TemplateGroup.java

    r2780 r2958  
    118118 
    119119    if (map.lastIndexOf("-") != -1) { 
    120       map = map.substring(0, map.lastIndexOf("-")); 
     120      map += "," + repetition;  
    121121    } 
    122  
    123     map = map + "-" + repetition; 
     122    else { 
     123      map = map + "-" + repetition; 
     124    }  
    124125    t.setValueMap(map); 
    125126  } 
  • trunk/loci/ome/notes/TemplateTools.java

    r2956 r2958  
    4343      CustomAttributesNode ca = root.getCustomAttributes(); 
    4444 
     45      int[] indices = getMapIndices(map); 
     46 
    4547      if (ca != null && map != null) { 
    4648        Vector elements = DOMUtil.getChildElements("NotesField",  
    4749          ca.getDOMElement()); 
    48         int ndx = 0; 
    49         if (map.indexOf("-") != -1) { 
    50           ndx = Integer.parseInt(map.substring(map.lastIndexOf("-") + 1)); 
    51         } 
     50        int ndx = indices[indices.length - 1]; 
    5251        if (ndx >= elements.size()) return null; 
    5352        Element el = (Element) elements.get(ndx); 
     
    110109    } 
    111110 
     111    int[] indices = getMapIndices(map); 
     112 
    112113    String[] elements = new String[elementCount]; 
    113114    for (int i=0; i<elementCount; i++) { 
     
    126127      else if (nodeList == null || nodeList.size() == 0) return null; 
    127128 
    128       int idx = 0; 
    129       if (i == 0 && map.indexOf("-") != -1) { 
    130         idx = Integer.parseInt(map.substring(map.indexOf("-") + 1)); 
    131       } 
     129      int idx = indices[i]; 
    132130      node = OMEXMLNode.createNode((Element) nodeList.get(idx));  
    133131    } 
     
    158156  } 
    159157 
     158  /** Get the index for each element in the map. */ 
     159  public static int[] getMapIndices(String map) { 
     160    if (map == null) return new int[0];  
     161    int elementCount = 0; 
     162    int last = map.indexOf(":"); 
     163    while (last != -1) { 
     164      elementCount++; 
     165      last = map.indexOf(":", last + 1); 
     166    } 
     167 
     168    int[] indices = new int[elementCount]; 
     169    Arrays.fill(indices, 0); 
     170    if (map.indexOf("-") == -1) return indices; 
     171 
     172    String indexList = map.substring(map.indexOf("-") + 1); 
     173    for (int i=0; i<elementCount; i++) { 
     174      if (indexList.indexOf(",") == -1) { 
     175        indices[i] = Integer.parseInt(indexList); 
     176      } 
     177      else { 
     178        indices[i] = Integer.parseInt(indexList.substring(0,  
     179          indexList.indexOf(","))); 
     180        indexList = indexList.substring(indexList.indexOf(",") + 1);  
     181      }  
     182    } 
     183    return indices;  
     184  } 
     185 
    160186} 
  • trunk/loci/ome/notes/templates/viewer.template

    r2956 r2958  
    117117 
    118118  field { 
    119     nameMap "Image:CustomAttributes:OriginalMetadata:name" 
    120     valueMap "Image:CustomAttributes:OriginalMetadata:value" 
     119    nameMap "Image:CustomAttributes:OriginalMetadata:name-0,0" 
     120    valueMap "Image:CustomAttributes:OriginalMetadata:value-0,0" 
    121121    repeated "true"  
    122122    type "var"  
Note: See TracChangeset for help on using the changeset viewer.