本文共 1825 字,大约阅读时间需要 6 分钟。
嘿嘿。。
Textarea
这个是一个文本的域。这样的话,就还要涉及到是否有滚动条,滚动条的样式,要考虑到整个的textarea的大小是如何的,也要考虑到是否有一些其他的限制,比如说,字数的限制等等,是直接cut掉还是怎么着。这些都是要考虑的问题。
同时,textarea作为一个与用户进行大规模数据交互的component,需要的是传送的方法。在这里先没有涉及到这些,不过还是要提出来一下。对于get和post,他们各有各的有点,但是如何去使用或者在传送数据的时候选择哪种方法更为合适,这个是我们今后要讨论event部分的要点。
Combobox和list
这两个可以直接解释为<select><option>,需要的是一个configuration。对于combobox,处理起来比较简单,因为combobox中按照常理是没有涉及到multi-select的,但是在list中会出现这样的问题。是否要实现list中的multi-select呢?如果按照现在的工期来看的话,还是留给后面来进行处理吧。
Radiobutton
这个东西啊,其实很神奇的,因为它通过name的相同值来组成一个group,然后来进行单选。那么,在转换的时候,除了<input type=”radio”> ,还要按照component的名称对其name以及id进行赋值。这样才能组成一个group。这里需要多参考一下guixml中的相应的规范,看看是否能够合理的进行相应的解析。
那么,在这里的话,radio一个应该是没有name的。但是这个是不允许的。因为需要有name和attribute进行关联。所以,考虑在处理radio的时候,style的部分关联其component的名称,而在生成码的地方则采用的是group的名称就可以了。因为html中没有一个相应的tag的attribute来说明这个group,只有一个name。
同样,如果是这样的设计,那么就需要声明一点:
所有的radio的component的名称必须唯一。不管是不是在一个组的。
那么这里推荐一种命名方式。
就是,group的名称,比如为 sex,那么下面的radio可以命名为sex_1,sex_2。或者更加有意义的名称作为他们的名称,比如sex_male,sex_female。只要有意义并且在整个文档中唯一就可以了。
啊。说道整个文档唯一。现在有一个小问题了。
就是,在guixml中有一个就是rel。它可以去关联其他的guixml文档。那么,这样的话,如何去解析这些文档呢?是否会出现命名问题或者其他问题呢。
这里可以考虑vb的一种实现方法,其实和上面的group的方法差不多。
假定,每一个guixml文档都是一个frame。
每一个frame都拥有他自己本身的一个name。这个应该是可以保证的。
然后,在读取多文档的时候,engine需要对frame的域进行保存,比如,知道那些component是谁的。
Ok。这样的话,就需要对现有的component表进行升级了!
这个是我们原来的表
Component名称 | 类型 |
Button1 | Button |
Text1 | Textfield |
新表如下:
Component名称 | 类型 | 从属 |
Button1 | Button | Frame1 |
Text1 | Textfield | Frame1 |
。。。 | 。。。 | 。。。 |
Frame1 | Frame | 本身或者其他frame |
采用加入从属的表,可以对每一个component进行绝对的定位。这个也是可以考虑的方案之一。
Checkbox
Checkbox和radio上的设计,唯一就是一点,它可以进行multiple-choice,那么这个设计嘛,可以暂时按照radio的实现方法进行。这里的一个问题就是,如何进行多值得获取。根据HTML的解析,返回的应该是value的一个set。那么,需要对value的这个set进行一些操作咯。这个可以暂时不考虑。是event中的事情。
Link
最后一个,也是重要的一个tag。因为link在JavaSE中并不存在,所以这个应该是HTML中的特有的一个tag。也就是说,将Link解析为:<a href= “xxxxx”>yyyyy</a> 就可以了。解析起来很简单。或者是<a href= “xxxxx#zzz”>yyyyy</a>。作为tree用。
Lv1的基本设计结束。
转载地址:http://oenpi.baihongyu.com/