package uk.co.mmscomputing.device.sane.option; public class StringDesc extends Descriptor{ protected String value=""; public StringDesc( int handle, int no, String name, String title, String desc, int type, int unit, int size, int cap, String value ){ super(handle,no,name,title,desc,type,unit,size,cap); this.value=value; } public String getStringValue(){ return value; } public String setStringValue(String val){ try{ if(isWritable()){ value=val; int info=setStringControlOption(size,val); if((info&SANE_INFO_INEXACT)==SANE_INFO_INEXACT){ value=getStringControlOption(size); } if((info&SANE_INFO_RELOAD_OPTIONS)==SANE_INFO_RELOAD_OPTIONS){ signalReloadOptions(); } if((info&SANE_INFO_RELOAD_PARAMS)==SANE_INFO_RELOAD_PARAMS){ // read parameters only after scan started } } }catch(Exception e){ System.err.println(getClass().getName()+".setStringValue: \n "+e+"\n"); } return value; } public String toString(){ String s=super.toString(); s+="\n string= "+value; return s; } public DescriptorPanel getGUI(){ gui=new StringPanel(this); return gui; } }