widgetinfo.java

来自「Hecl编程语言是一个高层次的脚本语言的Java实现。其用意是要小」· Java 代码 · 共 707 行 · 第 1/2 页

JAVA
707
字号
    public static int toGaugeMax(Thing t) throws HeclException {	if(Character.isDigit(t.toString().charAt(0))) {	    return HeclUtils.thing2int(t,true,0);	}	return t2int(t,gaugemaxnames,gaugemaxvals,"gauge initval");    }        public static Thing fromGaugeMax(int t) throws HeclException {	for(int i=0; i<gaugemaxvals.length; ++i) {	    if(i == gaugeinitialvals[i])		return new Thing(gaugemaxnames[i]);	}	return IntThing.create(t);    }        public static void showProps(Class c) {	Vector v = (Vector)widgetprops.get(c);	int n = v.size();	System.err.println("showProps("+c+")=");	for(int i=0; i<n; ++i) {	    String s = "<null>";	    	    WidgetProp wp = (WidgetProp)v.elementAt(i);	    try {		s = wp.defaultvalue.toString();	    }	    catch(NullPointerException e) {}	    System.err.println("\t"+wp.name+": "+s);	}    }        public static Properties defaultProps(Class c) {	Properties p = new Properties();	Vector v = (Vector)widgetprops.get(c);	int n = v.size();	for(int i=0; i<n; ++i) {	    WidgetProp wp = (WidgetProp)v.elementAt(i);	    p.setProp(wp.name,wp.defaultvalue);	}	return p;    }        /*      * Some command names (in alphabetical order)     */    public static final String NADDCOMMAND = "addcommand";    public static final String NAPPEND = "append";    public static final String NCGET = "cget";    public static final String NCONF = "conf";    public static final String NCONFIGURE = "configure";    public static final String NCREATE = "create";    public static final String NDELETE = "delete";    public static final String NITEM = "item";    public static final String NITEMCGET = "itemcget";    public static final String NITEMCONF = "itemconf";    public static final String NITEMCONFIGURE = "itemconfigure";    public static final String NREMOVECOMMAND = "removecommand";    public static final String NREPAINT = "repaint";    public static final String NSETCURRENT = "setcurrent";    public static final String NSIZE = "size";        /*     * Some property names (in alphabetical order)     */    public static final String NAPPEARANCE = "-appearance";    public static final String NCLIPHEIGHT = "-clipheight";    public static final String NCLIPWIDTH = "-clipwidth";    public static final String NCLIPX = "-clipx";    public static final String NCLIPY = "-clipy";    public static final String NCODE = "-code";    public static final String NCOLOR = "-color";    public static final String NCOMMAND = "-command";    public static final String NCOMMANDACTION = "-commandaction";    public static final String NEXPAND = "-expand";    public static final String NFIT = "-fit";    public static final String NFONT = "-font";    public static final String NHEIGHT = "-height";    public static final String NIMAGE = "-image";    public static final String NINTERACTIVE = "-interactive";    public static final String NLABEL = "-label";    public static final String NLINETYPE = "-linetype";    public static final String NLONGLABEL = "-longlabel";    public static final String NMAXLEN = "-maxlength";    public static final String NMAXVALUE = "-maxvalue";    public static final String NMINHEIGHT = "-minheight";    public static final String NMINWIDTH = "-minwidth";    public static final String NPRIO = "-priority";    public static final String NPREFERREDWIDTH = "-preferredwidth";    public static final String NPREFERREDHEIGHT = "-preferredheight";    public static final String NSELECTMODE = "-selectmode";    public static final String NSELECTION = "-selection";    public static final String NSUPPRESSKEYS = "-suppresskeys";    public static final String NTEXT = "-text";    public static final String NTICKER = "-ticker";    public static final String NTITLE = "-title";    public static final String NTYPE = "-type";    public static final String NVALUE = "-value";    public static final String NVEXPAND = "-vexpand";    public static final String NWIDTH = "-width";        static final Thing DEFAULTTHING = new Thing("default");    static final Thing ANYTHING = new Thing("any");    static final Thing ZERO = IntThing.create(0);    static final Thing ONE = IntThing.create(1);        /*     * Common Widget properties and default values.     */    public static final WidgetProp codeprop = new WidgetProp(NCODE,Thing.emptyThing());     public static final WidgetProp textprop = new WidgetProp(NTEXT,Thing.emptyThing());     public static final WidgetProp labelprop = new WidgetProp(NLABEL,Thing.emptyThing());     public static final WidgetProp longlabelprop = new WidgetProp(NLONGLABEL,Thing.emptyThing());     public static final WidgetProp titleprop = new WidgetProp(NTITLE,Thing.emptyThing());     public static final WidgetProp fitprop = new WidgetProp(NFIT,DEFAULTTHING);    public static final WidgetProp selectprop = new WidgetProp(NSELECTMODE,							       new Thing("exclusive"));     public static final WidgetProp tickerprop = new WidgetProp(NTICKER,Thing.emptyThing());    public static final WidgetProp prioprop = new WidgetProp(NPRIO,ONE);    public static final WidgetProp appearanceprop = new WidgetProp(NAPPEARANCE,								   new Thing("plain"));    public static final WidgetProp minwidthprop = new WidgetProp(NMINWIDTH,ZERO);    public static final WidgetProp minheightprop = new WidgetProp(NMINHEIGHT,ZERO);    /*     * WIDGET attribute conversion tables (parallel arrays     */    static final String colornames[] = {"red","green","blue",					    "yellow","cyan","magenta",					    "white","black"    };    static final int colorvals[] = {0x0ff0000,0x0ff00,0x0ff,					0x0ffff00, 0x0ffff, 0x0ff00ff,					0x0ffffff,0    };        // Alert type    static final String alerttypenames[] = {"none","info","warning",						"error","alarm","confirmation",""};    static final AlertType alerttypevals[] = {null,AlertType.INFO,						  AlertType.WARNING,AlertType.ERROR,						  AlertType.ALARM,						  AlertType.CONFIRMATION,null};        // Canvas stuff    // Linetype    static String clinetypenames[] = {"solid","dotted","default"};    static int clinetypevals[] = {Graphics.SOLID,Graphics.DOTTED,Graphics.SOLID};    // Anchor points    static String canchornames[] = {"n","ne","e","se","s",					"sw","w","nw","center","default",					"bl","bc","br"};    static int canchorvals[] = {Graphics.TOP|Graphics.HCENTER,				    Graphics.TOP|Graphics.RIGHT,				    Graphics.VCENTER|Graphics.RIGHT,				    Graphics.BOTTOM|Graphics.RIGHT,				    Graphics.BOTTOM|Graphics.HCENTER,				    Graphics.BOTTOM|Graphics.LEFT,				    Graphics.VCENTER|Graphics.LEFT,				    Graphics.TOP|Graphics.LEFT,				    Graphics.VCENTER|Graphics.HCENTER,				    Graphics.TOP|Graphics.LEFT,				    Graphics.LEFT|Graphics.BASELINE,				    Graphics.HCENTER|Graphics.BASELINE,				    Graphics.RIGHT|Graphics.BASELINE,    };        // Choice types    static final String choicetypenames[] = {"exclusive","multiple","implicit","popup"};    static final int choicetypevals[] = {Choice.EXCLUSIVE,Choice.MULTIPLE,					     Choice.IMPLICIT,Choice.POPUP};    // Textfield type    static final String texttypenames[] = {	"any","emailaddr", "numeric", "phonenumber","decimal"    };   static final int texttypevals[] = {       TextField.ANY, TextField.EMAILADDR, TextField.NUMERIC,	   TextField.PHONENUMBER, TextField.DECIMAL   };    // Choice wrap specification    static final String wrapnames[] = {"default","on","off"};    static final int wrapvals[] = {Choice.TEXT_WRAP_DEFAULT,Choice.TEXT_WRAP_ON,					   Choice.TEXT_WRAP_OFF};    // Command types    static final String cmdtypenames[] = {"screen","back","cancel","ok",					      "help", "stop","exit","item"};    static final String cmdlabels[] = {"Screen","Back","Cancel","OK",					      "Help", "Stop","Exit","Item"};    static final int cmdtypevals[] = {Command.SCREEN,Command.BACK,					  Command.CANCEL,Command.OK,					  Command.HELP,Command.STOP,					  Command.EXIT,Command.ITEM};    // Font face names    static final String fontfacenames[] = {"system","proportional","monospace"};    static final int fontfacevals[] = {Font.FACE_SYSTEM, Font.FACE_PROPORTIONAL,					   Font.FACE_MONOSPACE};    // Font sizes    static final String fontsizenames[] = {"small","medium","large"};    static final int fontsizevals[] = {Font.SIZE_SMALL, Font.SIZE_MEDIUM,					   Font.SIZE_LARGE};    // Item anchor position (part of item layout).    static String anchornames[] = {"n","ne","e","se","s",				       "sw","w","nw","center","default"};    static int anchorvals[] = {Item.LAYOUT_TOP|Item.LAYOUT_CENTER,				   Item.LAYOUT_TOP|Item.LAYOUT_LEFT,				   Item.LAYOUT_VCENTER|Item.LAYOUT_RIGHT,				   Item.LAYOUT_BOTTOM|Item.LAYOUT_RIGHT,				   Item.LAYOUT_BOTTOM|Item.LAYOUT_CENTER,				   Item.LAYOUT_BOTTOM|Item.LAYOUT_LEFT,				   Item.LAYOUT_VCENTER|Item.LAYOUT_LEFT,				   Item.LAYOUT_TOP|Item.LAYOUT_LEFT,				   Item.LAYOUT_VCENTER|Item.LAYOUT_CENTER,				   Item.LAYOUT_DEFAULT};    		        // Item appearance    static String appearancenames[] = {"plain","button","hyperlink"};    static int appearancevals[] = {Item.PLAIN, Item.BUTTON, Item.HYPERLINK};    		        // DateField modes    static String dfmodenames[] = {"date","date_time","time"};    static int dfmodevals[] = {DateField.DATE, DateField.DATE_TIME, DateField.TIME};            static String gaugeinitialnames[] = {"continuous-idle",					     "continuous-running",					     "incremental-idle",					     "incremental-updating"};    static int gaugeinitialvals[] = {Gauge.CONTINUOUS_IDLE,					 Gauge.CONTINUOUS_RUNNING,					 Gauge.INCREMENTAL_IDLE,					 Gauge.INCREMENTAL_UPDATING};        static String gaugemaxnames[] = {"indefinite"};    static int gaugemaxvals[] = {Gauge.INDEFINITE};		        // A table holding widget property descriptions    public static final Hashtable widgetprops = new Hashtable();        static {	/* Alert defaults */	Vector v = new Vector();	v.addElement(new WidgetProp(NTITLE,new Thing("Alert")));	v.addElement(new WidgetProp(NTYPE,new Thing("info"),true));	v.addElement(textprop);	widgetprops.put(Alert.class,v);	/* Canvas defaults */	v = new Vector();	v.addElement(new WidgetProp(NTITLE,new Thing("Canvas")));	v.addElement(new WidgetProp(NSUPPRESSKEYS,new Thing("false"),true));	widgetprops.put(Canvas.class,v);	/* Command defaults */	v = new Vector();	v.addElement(labelprop);	v.addElement(longlabelprop);	v.addElement(new WidgetProp(NTYPE,new Thing("back"),true));	v.addElement(prioprop);	widgetprops.put(Command.class,v);	/* Form defaults */	v = new Vector();	widgetprops.put(Form.class,v);	/* List defaults */	v = new Vector();	v.addElement(new WidgetProp(NTITLE,new Thing("List")));	v.addElement(new WidgetProp(NTYPE,new Thing("implicit"),true));	v.addElement(fitprop);	widgetprops.put(List.class,v);	/* TextBox defaults */	v = new Vector();	v.addElement(new WidgetProp(NTITLE,new Thing("TextBox")));	v.addElement(textprop);	v.addElement(tickerprop);	v.addElement(new WidgetProp(NTYPE,ANYTHING,true));	v.addElement(new WidgetProp(NMAXLEN,IntThing.create(256)));	widgetprops.put(TextBox.class,v);	/* Ticker defaults */	v = new Vector();	v.addElement(textprop);	widgetprops.put(Ticker.class,v);	/* ChoiceGroup defaults */	v = new Vector();	v.addElement(new WidgetProp(NLABEL,Thing.emptyThing()));	v.addElement(new WidgetProp(NTYPE,new Thing("exclusive"), true));	v.addElement(fitprop);	widgetprops.put(ChoiceGroup.class,v);	/* ImageItem defaults */	v = new Vector();	v.addElement(textprop);	v.addElement(labelprop);	v.addElement(appearanceprop);	widgetprops.put(ImageItem.class,v);	/* Spacer defaults */	v = new Vector();	v.addElement(minwidthprop);	v.addElement(minheightprop);	widgetprops.put(Spacer.class,v);	/* StringItem defaults */	v = new Vector();	v.addElement(textprop);	v.addElement(labelprop);	v.addElement(appearanceprop);	widgetprops.put(StringItem.class,v);	/* TextField defaults */	v = new Vector();	v.addElement(labelprop);	v.addElement(new WidgetProp(NMAXLEN,IntThing.create(256)));	v.addElement(new WidgetProp(NTYPE,ANYTHING,true));	widgetprops.put(TextField.class,v);	/* DateField defaults */	v = new Vector();	v.addElement(labelprop);	v.addElement(new WidgetProp(NTYPE,new Thing(dfmodenames[1])));	widgetprops.put(DateField.class,v);	/* Gauge defaults */	v = new Vector();	v.addElement(labelprop);	v.addElement(new WidgetProp(NINTERACTIVE,IntThing.create(0),true));	v.addElement(new WidgetProp(NVALUE,new Thing("continuous-running")));	v.addElement(new WidgetProp(NMAXVALUE,new Thing("indefinite")));	widgetprops.put(Gauge.class,v);    }}// Variables:// mode:java// coding:utf-8// End:

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?