Changeset 7222


Ignore:
Timestamp:
11/19/10 11:42:22 (10 years ago)
Author:
melissa
Message:

Preserve custom color choices. Closes #586.

Files:
2 added
2 edited

Legend:

Unmodified
Added
Removed
  • branches/4.2/components/loci-plugins/src/loci/plugins/in/ImporterOptions.java

    r7000 r7222  
    3535import loci.common.Location; 
    3636import loci.common.Region; 
     37import loci.plugins.prefs.DoubleOption; 
    3738import loci.plugins.prefs.OptionsList; 
    3839import loci.plugins.prefs.StringOption; 
     
    145146 
    146147  // color mode options 
    147   private List<List<Color>> customColors = new ArrayList<List<Color>>(); 
     148  private List<List<DoubleOption>> customColors = 
     149    new ArrayList<List<DoubleOption>>(); 
    148150 
    149151  // -- Constructor -- 
     
    452454  // color mode options 
    453455  public Color getCustomColor(int s, int c) { 
    454     List<Color> list = get(customColors, s, null); 
    455     if (list == null) return null; 
    456     return get(list, c, null); 
     456    List<DoubleOption> list = get(customColors, s, null); 
     457    int defaultColor = getDefaultCustomColor(c).getRGB(); 
     458    DoubleOption color = null; 
     459    if (list != null) { 
     460      color = get(list, c, null); 
     461    } 
     462    if (color == null) { 
     463      color = 
     464        new DoubleOption(getCustomColorKey(s, c), true, "", "", defaultColor); 
     465      color.loadOption(); 
     466    } 
     467    return new Color((int) color.getValue()); 
    457468  } 
    458469  public void setCustomColor(int s, int c, Color color) { 
    459     List<Color> list = get(customColors, s, null); 
     470    List<DoubleOption> list = get(customColors, s, null); 
    460471    if (list == null) { 
    461       list = new ArrayList<Color>(); 
     472      list = new ArrayList<DoubleOption>(); 
    462473      set(customColors, s, list, null); 
    463474    } 
    464     set(list, c, color, null); 
     475    DoubleOption colorOption = get(list, c, null); 
     476    if (colorOption == null) { 
     477      colorOption = new DoubleOption(getCustomColorKey(s, c), true, "", "", 0); 
     478    } 
     479    colorOption.setValue(color.getRGB()); 
     480    set(list, c, colorOption, null); 
     481    colorOption.saveOption(); 
    465482  } 
    466483  public Color getDefaultCustomColor(int c) { 
    467484    return DEFAULT_COLORS[c % DEFAULT_COLORS.length]; 
     485  } 
     486  public String getCustomColorKey(int s, int c) { 
     487    return s + "_" + c; 
    468488  } 
    469489 
  • trunk/components/loci-plugins/src/loci/plugins/in/ImporterOptions.java

    r6881 r7222  
    3535import loci.common.Location; 
    3636import loci.common.Region; 
     37import loci.plugins.prefs.DoubleOption; 
    3738import loci.plugins.prefs.OptionsList; 
    3839import loci.plugins.prefs.StringOption; 
     
    145146 
    146147  // color mode options 
    147   private List<List<Color>> customColors = new ArrayList<List<Color>>(); 
     148  private List<List<DoubleOption>> customColors = 
     149    new ArrayList<List<DoubleOption>>(); 
    148150 
    149151  // -- Constructor -- 
     
    452454  // color mode options 
    453455  public Color getCustomColor(int s, int c) { 
    454     List<Color> list = get(customColors, s, null); 
    455     if (list == null) return null; 
    456     return get(list, c, null); 
     456    List<DoubleOption> list = get(customColors, s, null); 
     457    int defaultColor = getDefaultCustomColor(c).getRGB(); 
     458    DoubleOption color = null; 
     459    if (list != null) { 
     460      color = get(list, c, null); 
     461    } 
     462    if (color == null) { 
     463      color = 
     464        new DoubleOption(getCustomColorKey(s, c), true, "", "", defaultColor); 
     465      color.loadOption(); 
     466    } 
     467    return new Color((int) color.getValue()); 
    457468  } 
    458469  public void setCustomColor(int s, int c, Color color) { 
    459     List<Color> list = get(customColors, s, null); 
     470    List<DoubleOption> list = get(customColors, s, null); 
    460471    if (list == null) { 
    461       list = new ArrayList<Color>(); 
     472      list = new ArrayList<DoubleOption>(); 
    462473      set(customColors, s, list, null); 
    463474    } 
    464     set(list, c, color, null); 
     475    DoubleOption colorOption = get(list, c, null); 
     476    if (colorOption == null) { 
     477      colorOption = new DoubleOption(getCustomColorKey(s, c), true, "", "", 0); 
     478    } 
     479    colorOption.setValue(color.getRGB()); 
     480    set(list, c, colorOption, null); 
     481    colorOption.saveOption(); 
    465482  } 
    466483  public Color getDefaultCustomColor(int c) { 
    467484    return DEFAULT_COLORS[c % DEFAULT_COLORS.length]; 
     485  } 
     486  public String getCustomColorKey(int s, int c) { 
     487    return s + "_" + c; 
    468488  } 
    469489 
Note: See TracChangeset for help on using the changeset viewer.