/** * 在指定文本段的 index 处分割文本段 * * @param xe * @param segNum * @param splitIndex */ public static void splitAt(XlfEditor xe, int segNum, int splitIndex) { // 判断该文本段是否可编辑 String rowID = xe.rowIdOfSegNum(segNum); XliffUtil xu = new XliffUtil(rowID); SegmentAsserts.segIsEditable(xu); // 进入编辑模式,方便读取样式文本框中的内容 xe.enterEditModeSource(segNum); // 在实际进行分割文本段之前,得到原文本段的 tuid 和分割后两个文本段的预期内容, // 用以在分割后验证得到的文本段内容是否符合预期。 String tuid = xe.tuidOfSegNum(segNum); // 判断给定的分割点是否可分割,然后在两个分支中分别验证结果 HsSWTBotStyledText st = xe.getStyledText(); if (SegmentAsserts.indexIsSplitable(st, splitIndex)) { String[] expectedText = st.splitTextAt(splitIndex); // 将光标移到指定位置,并点击相应的菜单项进行分割 xe.navigateToIndex(splitIndex); ts.menuTranslationSplitSegment().click(); xe.getNatTable(); // 确认文本段已按预期分割 SegmentAsserts.segIsSplit(tuid, expectedText, xe.getSplitXliffUtil(expectedText)); System.out.println( "[Passed] Segment No.\"" + segNum + "\" was successfully split at Index \"" + splitIndex + "\"."); } else { String expectedText = st.getText(); String position; // 将光标移到指定位置,并点击相应的菜单项进行分割 if (splitIndex <= 0) { position = "Beginning."; xe.navigateToBegining(); } else { position = "End."; xe.navigateToEnd(); } ts.menuTranslationSplitSegment().click(); // 弹出提示信息 InformationDialog dialog = new InformationDialog(1, TsUIConstants.getString("msgPlaceCursorToSplit")); dialog.lblMessage().isVisible(); dialog.btnOK().click(); xe.getNatTable(); // 确认文本段没有被分割 SegmentAsserts.segNotSplit(tuid, expectedText, xu); System.out.println("[Passed] Segment No.\"" + segNum + "\" was not split at the " + position); } }