iDempiere Swing客户端的文本编辑器
iDempiere表格页中的编辑器,在VCellEditor.createEditor()
实例化,最终实现是VString
类。
同时,也是在VCellEditor
中绑定了编辑器vetoableChange
事件的监听。
CTable.tableChanged()
在切换单元格时会被触发,其由GridTable.fireTableCellUpdated()
触发,再之前事件触发路径是VCellEditor.stopCellEditing()
- VCellEditor.fireEditingStopped()
- VTable.editingStopped()
- VTable.setValueAt()
- GridTable.setValueAt()
。
另外,在Swing UI中,如果字段长度大于显示长度,输入框的右键菜单中包含有“Editor”菜单项,点击可打开富文本编辑器。在iDempiere中,菜单项的添加在org.compiere.grid.ed.VString.VString
构造函数中处理,富文本编辑器的启动在actionPerformed()
中实现。在metasfresh中,相关代码主要在org.compiere.grid.ed.menu.TextEditorContextMenuAction.run()
中实现。
另外,VText
用于实现多行文本编辑框。