我想在flex中创建一个xml编辑器UI。基本上我想在textarea中呈现xml。用户可以编辑xml并将其保存在database.Also中,根据登录用户的权限,编辑级别允许变化。普通用户可以编辑属性值以及节点值,但不能编辑属性名称和节点名称。
例如:考虑这个XML
<users>
<user id="1" country="aaaa">XASD</user>
<user id="2" country="aaaa6">XASQWED</user>
<user id="3" country="aaaa4">XASDRQQ</user>
</users>
普通用户只能编辑id值('1','2','3'),国家/地区值('aaaa','aaaa6','aaaa4')和用户名('XASD','XASQWED') ,'XASDRQQ')。但不是节点名称('用户','用户')和属性名称('id','country')。
我更喜欢在界面等编辑器中向用户呈现XML,并在那里限制编辑,而不是使用网格界面,其中属性名称和值列在不同的列中,并且仅允许编辑值列。
知道如何实现这种选择性编辑(在textarea中?)?
答案 0 :(得分:4)
这可能在TextArea中太复杂了:
以这种方式处理文本位置可能非常容易出错。考虑另一种方法:
在自定义布局中显示XML,其中不可编辑的部分是标签或文本,可编辑的是TextField。单个标签可能是HBX中填充了Flow4中FlowLayout的这些控件。 TextFields必须验证其内容以保持XML有效
要创建编辑器,迭代标签/属性,创建控件。要获取XML,请迭代控件,查看其类型并创建标记/属性。您唯一丢失的是多个标签/行上的文本选择
的更新强>
实际上,这应该是非常简单的:
<VBox>
<tag> Label (<tag>)
<subtag id="1"/> HBox [ Label (<subtag ) Label(id=") TextInput(1) Label("/>) ]
</tag> Label (</tag>)
</VBox>
答案 1 :(得分:1)
就个人而言,我不会使用'文本编辑器'试图限制你不希望用户触摸的东西是太多的工作。如果我是你,我会为每个节点创建一个带有项呈示器的DataGroup
。这样一切都是数据驱动的,易于解释/改变。