Changeset 3858


Ignore:
Timestamp:
03/28/08 18:58:51 (12 years ago)
Author:
curtis
Message:

Save enabled status of each reader into IJ preferences.

Location:
trunk/loci/plugins/config
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/loci/plugins/config/ConfigWindow.java

    r3857 r3858  
    2727 
    2828import java.awt.Dimension; 
     29import java.awt.event.ItemEvent; 
     30import java.awt.event.ItemListener; 
    2931import java.lang.reflect.Method; 
    3032import java.util.Arrays; 
     
    4345 * @author Curtis Rueden ctrueden at wisc.edu 
    4446 */ 
    45 public class ConfigWindow extends JFrame implements ListSelectionListener { 
     47public class ConfigWindow extends JFrame 
     48  implements ItemListener, ListSelectionListener 
     49{ 
     50 
     51  // -- Constants -- 
     52 
     53  private static final String READER_ENABLED_PROPERTY = "bioformats.enabled"; 
    4654 
    4755  // -- Fields -- 
     
    297305    extensions = makeTextField(); 
    298306    enabled = new JCheckBox("", false); 
     307    enabled.addItemListener(this); 
    299308 
    300309    doFormatLayout(null); 
     
    358367    tabs.setSelectedIndex(1); 
    359368    pack(); 
     369  } 
     370 
     371  // -- ItemListener API methods -- 
     372 
     373  public void itemStateChanged(ItemEvent e) { 
     374    FormatEntry entry = (FormatEntry) formatsList.getSelectedValue(); 
     375    setReaderEnabled(entry, enabled.isSelected()); 
    360376  } 
    361377 
     
    423439      } 
    424440      extensions.setText(sb.toString()); 
    425  
    426       enabled.setSelected(true); 
    427     } 
     441    } 
     442 
     443    enabled.setSelected(isReaderEnabled(entry)); 
    428444 
    429445    formatInfo.removeAll(); 
     
    449465  } 
    450466 
     467  private boolean isReaderEnabled(FormatEntry entry) { 
     468    if (entry == null) return false; 
     469    String key = READER_ENABLED_PROPERTY + "." + entry.readerName; 
     470    try { 
     471      Class prefsClass = Class.forName("ij.Prefs"); 
     472      Method get = prefsClass.getMethod("get", 
     473        new Class[] {String.class, boolean.class}); 
     474      Boolean on = (Boolean) get.invoke(null, 
     475        new Object[] {key, Boolean.TRUE}); 
     476      return on.booleanValue(); 
     477    } 
     478    catch (Throwable t) { 
     479      t.printStackTrace(); 
     480      return false; 
     481    } 
     482  } 
     483 
     484  private void setReaderEnabled(FormatEntry entry, boolean on) { 
     485    if (entry == null) return; 
     486    String key = READER_ENABLED_PROPERTY + "." + entry.readerName; 
     487    try { 
     488      Class prefsClass = Class.forName("ij.Prefs"); 
     489      Method set = prefsClass.getMethod("set", 
     490        new Class[] {String.class, boolean.class}); 
     491      set.invoke(null, new Object[] {key, new Boolean(on)}); 
     492    } 
     493    catch (Throwable t) { 
     494      t.printStackTrace(); 
     495    } 
     496  } 
     497 
    451498} 
  • trunk/loci/plugins/config/FormatEntry.java

    r3856 r3858  
    4343 
    4444  private Object reader; 
    45   private String name; 
     45  private String formatName; 
     46  protected String readerName; 
    4647  protected String[] suffixes; 
    4748  protected String[] labels; 
     
    5556    try { 
    5657      readerClass = reader.getClass(); 
     58      String n = readerClass.getName(); 
     59      readerName = n.substring(n.lastIndexOf(".") + 1, n.length() - 6); 
    5760      Method getFormat = readerClass.getMethod("getFormat", null); 
    58       name = (String) getFormat.invoke(reader, null); 
     61      formatName = (String) getFormat.invoke(reader, null); 
    5962      Method getSuffixes = readerClass.getMethod("getSuffixes", null); 
    6063      suffixes = (String[]) getSuffixes.invoke(reader, null); 
     
    6770    IFormatWidgets fw = null; 
    6871    try { 
    69       String readerClassName = readerClass.getName(); 
    70       String fwClassName = "loci.plugins.config." + 
    71         readerClassName.substring(readerClassName.lastIndexOf(".") + 1, 
    72         readerClassName.length() - 6) + "Widgets"; 
     72      String fwClassName = "loci.plugins.config." + readerName + "Widgets"; 
    7373      Class fwClass = Class.forName(fwClassName); 
    7474      fw = (IFormatWidgets) fwClass.newInstance(); 
     
    8888 
    8989  public String toString() { 
    90     return "<html>" + name; 
     90    return "<html>" + formatName; 
    9191  } 
    9292 
Note: See TracChangeset for help on using the changeset viewer.