Browse Source
* commit 'ec083560ed5cda9d1f395618178f076c3724dae1': 问题修复 REPORT-37353【frm设计界面支持缩放】缩放过程中,如果进行图表编辑,拖动滚动条,就会重叠 REPORT-36778 【配合平台】版本号规范FR适配任务 去除多处的空格 REPORT-36778 【配合平台】版本号规范FR适配任务 去除多处的空格 REPORT-27497 编辑单元格输入韩文时字会缺失 使用java自带方式判断 + 漏传代码 REPORT-27497 编辑单元格输入韩文时字会缺失bugfix/10.0
superman
4 years ago
9 changed files with 166 additions and 14 deletions
@ -0,0 +1,31 @@
|
||||
package com.fr.grid.action; |
||||
|
||||
import com.fr.design.os.impl.SupportOSImpl; |
||||
import com.fr.grid.Grid; |
||||
import com.fr.grid.help.GridHelper; |
||||
import com.fr.stable.os.support.OSBasedAction; |
||||
|
||||
/** |
||||
* @author hades |
||||
* @version 10.0 |
||||
* Created by hades on 2020/8/12 |
||||
*/ |
||||
public class GridInputAction implements OSBasedAction { |
||||
|
||||
private Grid grid; |
||||
private char ch; |
||||
|
||||
@Override |
||||
public void execute(Object... objects) { |
||||
// win下韩语输入法与其他输入法不一样 在输入第二个字符时 就开始触发keyType 而其中grid的焦点转移会导致输入失效
|
||||
boolean accept = SupportOSImpl.KOREAN_INPUT.support() && grid != null; |
||||
if (accept) { |
||||
grid.setNeedRequestFocus(!GridHelper.isKoreanCharacter(ch)); |
||||
} |
||||
} |
||||
|
||||
public void register(Grid grid, char ch) { |
||||
this.grid = grid; |
||||
this.ch = ch; |
||||
} |
||||
} |
@ -0,0 +1,53 @@
|
||||
package com.fr.grid.help; |
||||
|
||||
/** |
||||
* 韩文unicode编码范围 |
||||
* http://www.ch2ko.com/hanguoyu/hanwen-unicode/
|
||||
* |
||||
* 韩文音节:AC00-D7AF |
||||
* Character.UnicodeBlock.HANGUL_SYLLABLES |
||||
* https://www.unicode.org/charts/PDF/UAC00.pdf
|
||||
* |
||||
* |
||||
* 韩文兼容字母:3130-318F |
||||
* Character.UnicodeBlock.HANGUL_COMPATIBILITY_JAMO |
||||
* https://www.unicode.org/charts/PDF/U3130.pdf
|
||||
* |
||||
* |
||||
* 韩文字母:1100-11FF |
||||
* Character.UnicodeBlock.HANGUL_JAMO |
||||
* https://www.unicode.org/charts/PDF/U1100.pdf
|
||||
* |
||||
* |
||||
* 韩文字母扩展A |
||||
* Character.UnicodeBlock.HANGUL_JAMO_EXTENDED_A |
||||
* https://www.unicode.org/charts/PDF/UA960.pdf
|
||||
* |
||||
* |
||||
* 韩文字母扩展B |
||||
* haracter.UnicodeBlock.HANGUL_JAMO_EXTENDED_B |
||||
* https://www.unicode.org/charts/PDF/UD7B0.pdf
|
||||
* |
||||
* |
||||
* 使用java内部的韩文unicode集判断 |
||||
* |
||||
* @author hades |
||||
* @version 10.0 |
||||
* Created by hades on 2020/8/7 |
||||
*/ |
||||
public class GridHelper { |
||||
/** |
||||
* 韩国货币符号 |
||||
*/ |
||||
private static final char HEX_20A9 = 0x20A9; |
||||
|
||||
public static boolean isKoreanCharacter(char value) { |
||||
Character.UnicodeBlock unicodeBlock = Character.UnicodeBlock.of(value); |
||||
return unicodeBlock == Character.UnicodeBlock.HANGUL_JAMO |
||||
|| unicodeBlock == Character.UnicodeBlock.HANGUL_COMPATIBILITY_JAMO |
||||
|| unicodeBlock == Character.UnicodeBlock.HANGUL_SYLLABLES |
||||
|| unicodeBlock == Character.UnicodeBlock.HANGUL_JAMO_EXTENDED_A |
||||
|| unicodeBlock == Character.UnicodeBlock.HANGUL_JAMO_EXTENDED_B |
||||
|| value == HEX_20A9; |
||||
} |
||||
} |
@ -0,0 +1,47 @@
|
||||
package com.fr.grid.help; |
||||
|
||||
import junit.framework.TestCase; |
||||
import org.junit.Assert; |
||||
|
||||
/** |
||||
* @author hades |
||||
* @version 10.0 |
||||
* Created by hades on 2020/8/7 |
||||
*/ |
||||
public class GridHelperTest extends TestCase { |
||||
|
||||
/** |
||||
* 为空 |
||||
*/ |
||||
private char ch; |
||||
|
||||
public void testIsKoreanCharacter() { |
||||
Assert.assertFalse(GridHelper.isKoreanCharacter('1')); |
||||
Assert.assertFalse(GridHelper.isKoreanCharacter('A')); |
||||
Assert.assertFalse(GridHelper.isKoreanCharacter('z')); |
||||
Assert.assertFalse(GridHelper.isKoreanCharacter('测')); |
||||
Assert.assertFalse(GridHelper.isKoreanCharacter('測')); |
||||
Assert.assertFalse(GridHelper.isKoreanCharacter('鐪')); |
||||
Assert.assertFalse(GridHelper.isKoreanCharacter('&')); |
||||
Assert.assertFalse(GridHelper.isKoreanCharacter(' ')); |
||||
Assert.assertFalse(GridHelper.isKoreanCharacter(ch)); |
||||
Assert.assertFalse(GridHelper.isKoreanCharacter('は')); |
||||
Assert.assertTrue(GridHelper.isKoreanCharacter('먀')); |
||||
Assert.assertTrue(GridHelper.isKoreanCharacter('이')); |
||||
Assert.assertTrue(GridHelper.isKoreanCharacter('한')); |
||||
// 韩文音节
|
||||
Assert.assertTrue(GridHelper.isKoreanCharacter('휖')); |
||||
// 韩文兼容字母
|
||||
Assert.assertTrue(GridHelper.isKoreanCharacter('ㆋ')); |
||||
// 韩文字母
|
||||
Assert.assertTrue(GridHelper.isKoreanCharacter('ᇪ')); |
||||
// 韩文字母扩展A
|
||||
Assert.assertTrue(GridHelper.isKoreanCharacter('ꥵ')); |
||||
// 韩文字母扩展B
|
||||
Assert.assertTrue(GridHelper.isKoreanCharacter('ퟂ')); |
||||
// 韩文货币符号
|
||||
Assert.assertTrue(GridHelper.isKoreanCharacter('₩')); |
||||
} |
||||
|
||||
|
||||
} |
Loading…
Reference in new issue