⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 formcmd.java

📁 Hecl编程语言是一个高层次的脚本语言的Java实现。其用意是要小
💻 JAVA
字号:
/* * Copyright 2005-2007 * Wolfgang S. Kechel, data2c GmbH (www.data2c.com) *  * Author: Wolfgang S. Kechel - wolfgang.kechel@data2c.com * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at *  * http://www.apache.org/licenses/LICENSE-2.0 *  * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package org.hecl.midp20.lcdui;import java.util.Vector;import javax.microedition.lcdui.Command;import javax.microedition.lcdui.Display;import javax.microedition.lcdui.Form;import javax.microedition.lcdui.Image;import javax.microedition.lcdui.Item;import javax.microedition.lcdui.ItemStateListener;import org.hecl.HeclException;import org.hecl.Interp;import org.hecl.IntThing;import org.hecl.ListThing;import org.hecl.ObjectThing;import org.hecl.Properties;import org.hecl.RealThing;import org.hecl.StringThing;import org.hecl.Thing;import org.hecl.midp20.MidletCmd;import org.hecl.misc.HeclUtils;public class FormCmd extends ScreenCmd {    public static void load(Interp ip) {	ip.addCommand(CMDNAME,cmd);	ip.addClassCmd(Form.class,cmd);    }    public static void unload(Interp ip) {	ip.removeCommand(CMDNAME);	ip.removeClassCmd(Form.class);    }    public Thing cmdCode(Interp interp,Thing[] argv) throws HeclException {	Properties p = WidgetInfo.defaultProps(Form.class);	p.setProps(argv,1);	Form w = new Form(null);	return ObjectThing.create(setInstanceProperties(interp,w,p));    }    protected FormCmd() {}        public Thing cget(Interp ip,Object target,String optname)	throws HeclException {	Form f = (Form)target;		return super.cget(ip,target,optname);    }        public void cset(Interp ip,Object target,String optname,Thing optval)	throws HeclException {	Form f = (Form)target;	if(optname.equals("-itemstatehandler")) {	    ItemStateListener listener = null;	    if(optval.toString().length() > 0)		listener = new WidgetListener(ip,optval,f);	    f.setItemStateListener(listener);	    return;	}	super.cset(ip,target,optname,optval);    }        //#ifdef notdef    public void itemcreate(Interp ip,String what,Thing[] argv,int startat)	throws HeclException {	Form f = getForm();	FormGadget g = null;	Properties p = null;		if(what.equals("choice")) {	    p = WidgetInfo.defaultProps(ChoiceGroup.class);	    p.setProps(argv,startat);	    g = new ChoiceGadget(p.getProp(WidgetInfo.NLABEL).toString(),				 WidgetInfo.toChoiceType(p.getProp(WidgetInfo.NTYPE)),				 this);	    p.delProp(WidgetInfo.NLABEL);	    p.delProp(WidgetInfo.NTYPE);	} else if(what.equals("date")) {	    p = WidgetInfo.defaultProps(DateField.class);	    p.setProps(argv,startat);	    g = new DateGadget(p.getProp(WidgetInfo.NLABEL).toString(),			       WidgetInfo.toDateFieldMode(				   p.getProp(WidgetInfo.NTYPE)),			       this);	} else if(what.equals("gauge")) {	    p = WidgetInfo.defaultProps(Gauge.class);	    p.setProps(argv,startat);	    //#ifdef notdef	    System.err.println("GAUGE");	    System.err.println("gauge: "			       +p.getProp(WidgetInfo.NLABEL).toString()+", "			       +p.getProp(WidgetInfo.NINTERACTIVE).toString()+", "			       +p.getProp(WidgetInfo.NVALUE).toString()+", "			       +p.getProp(WidgetInfo.NMAXVALUE).toString());	    System.err.println("GAUGE2");	    //#endif			    g = new GaugeGadget(p.getProp(WidgetInfo.NLABEL).toString(),				HeclUtils.thing2bool(				    p.getProp(WidgetInfo.NINTERACTIVE)),				WidgetInfo.toGaugeInitial(				    p.getProp(WidgetInfo.NVALUE)),				WidgetInfo.toGaugeMax(				    p.getProp(WidgetInfo.NMAXVALUE)),				this);	    p.delProp(WidgetInfo.NINTERACTIVE);	} else if(what.equals("image")) {	    p = WidgetInfo.defaultProps(ImageItem.class);	    p.setProps(argv,startat);	    g = new ImageGadget(p.getProp(WidgetInfo.NLABEL).toString(),				p.getProp(WidgetInfo.NTEXT).toString(),				WidgetInfo.toItemAppearance(				    p.getProp(WidgetInfo.NAPPEARANCE)),				this);	    p.delProp(WidgetInfo.NLABEL);	    p.delProp(WidgetInfo.NTEXT);	    p.delProp(WidgetInfo.NAPPEARANCE);	} else if(what.equals("spacer")) {	    p = WidgetInfo.defaultProps(Spacer.class);	    p.setProps(argv,startat);	    g = new SpacerGadget(		IntThing.get(p.getProp(WidgetInfo.NMINWIDTH)),		IntThing.get(p.getProp(WidgetInfo.NMINHEIGHT)),		this);	    p.delProp(WidgetInfo.NMINWIDTH);	    p.delProp(WidgetInfo.NMINHEIGHT);	} else if(what.equals("string")) {	    p = WidgetInfo.defaultProps(StringItem.class);	    p.setProps(argv,startat);	    g = new StringGadget(p.getProp(WidgetInfo.NLABEL).toString(),				 WidgetInfo.toItemAppearance(				     p.getProp(WidgetInfo.NAPPEARANCE)),				 this);	    p.delProp(WidgetInfo.NLABEL);	    p.delProp(WidgetInfo.NAPPEARANCE);	} else if(what.equals("text")) {	    p = WidgetInfo.defaultProps(TextField.class);	    p.setProps(argv,startat);	    g = new TextGadget(p.getProp(WidgetInfo.NLABEL).toString(),			       HeclUtils.thing2len(p.getProp(WidgetInfo.NMAXLEN),1),			       WidgetInfo.toTextType(p.getProp(WidgetInfo.NTYPE)),			       this);	    p.delProp(WidgetInfo.NTITLE);	    p.delProp(WidgetInfo.NMAXLEN);	    p.delProp(WidgetInfo.NTYPE);	} else {	    throw new HeclException("Unknown item type '"+what+"'.");	}       	if(g == null) {	    throw new HeclException("Cannot create item '"+what+"'.");	}	Thing optargs[] = p.getProps();	g.configure(ip,optargs,0,optargs.length);	g.getItem().setItemCommandListener(myitemcmdlistener);	ip.setResult(append(g));    }    //#endif		    public Thing handlecmd(Interp ip,Object target,String subcmd,			   Thing[] argv,int startat)	throws HeclException {	Form f = (Form)target;		int n = startat+1;		if(subcmd.equals(WidgetInfo.NSIZE))	    return IntThing.create(f.size());	if(subcmd.equals(WidgetInfo.NAPPEND)) {	    if(argv.length < n) {		throw HeclException.createWrongNumArgsException(		    argv, n, "append item|string|image");	    }	    // append <item|string|image>	    Thing arg = argv[startat];	    RealThing rt = arg.getVal();	    try {		if(rt instanceof ObjectThing) {		    if(((ObjectThing)rt).get() != null) {			Item item = WidgetInfo.asItem(arg,false,false);			if(item != null) {			    f.append(item);			} else {			    Image im = WidgetInfo.asImage(arg,false,false);			    if(im != null)				f.append(im);			}		    } else {			throw new HeclException("cannot append null");		    }		} else {		    f.append(arg.toString());		}	    }	    catch(Exception ex) {		throw new HeclException("unable to append: "+ex);	    }	    return null;	}	if(subcmd.equals(WidgetInfo.NITEM)) {	    // item<something> requires an item as parameter	    if(argv.length < n) {		throw HeclException.createWrongNumArgsException(		    argv, n, "item itemnumber");	    }	    return ObjectThing.create(f.get(IntThing.get(argv[startat])));	}	if(subcmd.equals(WidgetInfo.NDELETE)) {	    if(argv.length != n) {		throw HeclException.createWrongNumArgsException(		    argv, n, "delete itemnumber");	    }	    f.delete(IntThing.get(argv[startat]));	    return null;	}	if(subcmd.equals("deleteall")) {	    f.deleteAll();	    return null;	}	if(subcmd.equals(WidgetInfo.NSETCURRENT)) {	    // extension: setcurrent itemnumber	    if(argv.length == n) {		// start j2mepolish break down		// to allow correct preprocessing		Display displ = MidletCmd.getDisplay();		Item item = f.get(IntThing.get(argv[startat]));		displ.setCurrentItem(item);		// end j2mepolish break down		return null;	    }	}	return super.handlecmd(ip,target,subcmd,argv,startat);    }    private static FormCmd cmd = new FormCmd();    private static final String CMDNAME = "lcdui.form";}// Variables:// mode:java// coding:utf-8// End:

⌨️ 快捷键说明

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