Changeset 6714


Ignore:
Timestamp:
07/20/10 11:46:28 (9 years ago)
Author:
curtis
Message:

Fix up support for LWF license codes.

Location:
trunk/components/loci-plugins/src/loci/plugins
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/components/loci-plugins/src/loci/plugins/in/ImagePlusReader.java

    r6676 r6714  
    5656import loci.plugins.util.BFVirtualStack; 
    5757import loci.plugins.util.ImageProcessorReader; 
     58import loci.plugins.util.LuraWave; 
    5859import loci.plugins.util.VirtualImagePlus; 
    5960 
     
    345346 
    346347      // get image processor for ith plane 
    347       final ImageProcessor[] p = reader.openProcessors(i, 
    348         region.x, region.y, region.width, region.height); 
     348      final ImageProcessor[] p = readProcessors(process, i, region); 
    349349      if (p == null || p.length == 0) { 
    350350        throw new FormatException("Cannot read plane #" + i); 
     
    361361 
    362362    return createStack(procs, labels, luts); 
     363  } 
     364 
     365  /** 
     366   * HACK: This method mainly exists to prompt the user for a missing 
     367   * LuraWave license code, in the case of LWF-compressed Flex. 
     368   * 
     369   * @see ImportProcess#setId() 
     370   */ 
     371  private ImageProcessor[] readProcessors(ImportProcess process, 
     372    int no, Region r) throws FormatException, IOException 
     373  { 
     374    final ImageProcessorReader reader = process.getReader(); 
     375    final ImporterOptions options = process.getOptions(); 
     376 
     377    boolean first = true; 
     378    for (int i=0; i<LuraWave.MAX_ATTEMPTS; i++) { 
     379      String code = LuraWave.initLicenseCode(); 
     380      try { 
     381        return reader.openProcessors(no, r.x, r.y, r.width, r.height); 
     382      } 
     383      catch (FormatException exc) { 
     384        if (options.isQuiet() || options.isWindowless()) throw exc; 
     385        if (!LuraWave.isLicenseCodeException(exc)) throw exc; 
     386 
     387        // prompt user for LuraWave license code 
     388        code = LuraWave.promptLicenseCode(code, first); 
     389        if (code == null) throw exc; 
     390        if (first) first = false; 
     391      } 
     392    } 
     393    throw new FormatException(LuraWave.TOO_MANY_ATTEMPTS); 
    363394  } 
    364395 
  • trunk/components/loci-plugins/src/loci/plugins/in/ImportProcess.java

    r6676 r6714  
    5454import loci.plugins.util.ImageProcessorReader; 
    5555import loci.plugins.util.LociPrefs; 
     56import loci.plugins.util.LuraWave; 
    5657import loci.plugins.util.VirtualReader; 
    5758import loci.plugins.util.WindowTools; 
     
    468469    r = virtualReader = new VirtualReader(r); 
    469470    reader = new ImageProcessorReader(r); 
    470     reader.setId(options.getId()); 
     471    setId(); 
    471472 
    472473    computeSeriesLabels(reader); 
     
    541542      BF.status(options.isQuiet(), "Identifying " + idName); 
    542543      imageReader = LociPrefs.makeImageReader(); 
    543       try { baseReader = imageReader.getReader(options.getId()); } 
     544      try { 
     545        baseReader = imageReader.getReader(options.getId()); 
     546      } 
    544547      catch (FormatException exc) { 
    545548        WindowTools.reportException(exc, options.isQuiet(), 
     
    559562      return; 
    560563    } 
     564 
     565    // attach OME-XML metadata store 
    561566    Exception exc = null; 
    562567    try { 
     
    591596 
    592597  // -- Helper methods -- ImportStep.STACK -- 
     598 
     599  /** 
     600   * HACK: This method mainly exists to prompt the user for a missing 
     601   * LuraWave license code, in the case of LWF-compressed Flex. 
     602   * 
     603   * @see ImagePlusReader#readProcessors(ImportProcess, int, Region) 
     604   */ 
     605  private void setId() throws FormatException, IOException { 
     606    boolean first = true; 
     607    for (int i=0; i<LuraWave.MAX_ATTEMPTS; i++) { 
     608      String code = LuraWave.initLicenseCode(); 
     609      try { 
     610        reader.setId(options.getId()); 
     611        return; 
     612      } 
     613      catch (FormatException exc) { 
     614        if (options.isQuiet() || options.isWindowless()) throw exc; 
     615        if (!LuraWave.isLicenseCodeException(exc)) throw exc; 
     616 
     617        // prompt user for LuraWave license code 
     618        code = LuraWave.promptLicenseCode(code, first); 
     619        if (code == null) throw exc; 
     620        if (first) first = false; 
     621      } 
     622    } 
     623    throw new FormatException(LuraWave.TOO_MANY_ATTEMPTS); 
     624  } 
    593625 
    594626  private void computeSeriesLabels(IFormatReader r) { 
  • trunk/components/loci-plugins/src/loci/plugins/util/ImageProcessorReader.java

    r6625 r6714  
    9595  { 
    9696    // read byte array 
    97     byte[] b = null; 
    98     boolean first = true; 
    99     while (true) { 
    100       // TODO: This is the wrong place to prompt for the LuraWave code. 
    101       // This logic should be moved to a higher, GUI-specific level. 
    102  
    103       // read LuraWave license code, if available 
    104       String code = LuraWave.initLicenseCode(); 
    105       try { 
    106         b = openBytes(no, x, y, w, h); 
    107         break; 
    108       } 
    109       catch (FormatException exc) { 
    110         if (LuraWave.isLicenseCodeException(exc)) { 
    111           // prompt user for LuraWave license code 
    112           code = LuraWave.promptLicenseCode(code, first); 
    113           if (code == null) return null; 
    114           if (first) first = false; 
    115         } 
    116         else throw exc; 
    117       } 
    118     } 
     97    byte[] b = openBytes(no, x, y, w, h); 
    11998 
    12099    int c = getRGBChannelCount(); 
  • trunk/components/loci-plugins/src/loci/plugins/util/LuraWave.java

    r6588 r6714  
    4040public final class LuraWave { 
    4141 
     42  // -- Constants -- 
     43 
     44  public static final int MAX_ATTEMPTS = 5; 
     45  public static final String TOO_MANY_ATTEMPTS = 
     46    "Too many LuraWave license code attempts; giving up."; 
     47 
    4248  // -- Constructor -- 
    4349 
     
    4955  public static String initLicenseCode() { 
    5056    String code = Prefs.get(LuraWaveServiceImpl.LICENSE_PROPERTY, null); 
    51     if (code != null) { 
     57    if (code != null && code.length() >= 6) { 
    5258      System.setProperty(LuraWaveServiceImpl.LICENSE_PROPERTY, code); 
    5359    } 
Note: See TracChangeset for help on using the changeset viewer.