예제 #1
0
  /**
   * 尝试不将光标置于源文本中直接分割
   *
   * @param xe 要操作的 XlfEditor 对象
   * @param segNum 尝试分割的文本段序号
   */
  public static void splitWithoutCursor(XlfEditor xe, int segNum) {

    // 判断该文本段是否可编辑
    String rowID = xe.rowIdOfSegNum(segNum);
    XliffUtil xu = new XliffUtil(rowID);
    SegmentAsserts.segIsEditable(xu);

    // 选中文本段的源文本单元格,而不进入编辑状态
    xe.selectSourceCell(segNum);

    // 在实际进行分割文本段之前,得到原文本段的 tuid,用以验证得到的文本段内容是否符合预期。
    String tuid = xe.tuidOfSegNum(segNum);

    // 判断给定的分割点是否可分割
    SWTBotNatTable nt = xe.getNatTable();
    Position pos = nt.positionOfSelectedCell();
    String expectedText = nt.getTextByPosition(pos.line, pos.column);

    // 点击相应的菜单项进行分割
    ts.menuTranslationSplitSegment().click();

    // 弹出提示信息
    InformationDialog dialog =
        new InformationDialog(1, TsUIConstants.getString("msgPlaceCursorToSplit"));
    dialog.lblMessage().isVisible();
    dialog.btnOK().click();

    xe.getNatTable();

    // 确认文本段没有被分割
    SegmentAsserts.segNotSplit(tuid, expectedText, xu);
  }
예제 #2
0
 /**
  * @param xe 要操作的 XlfEditor 对象
  * @param segNum 要分割的文本段序号
  * @param afterText 在此文本之后分割
  */
 public static void splitAfter(XlfEditor xe, int segNum, String afterText) {
   SWTBotNatTable nt = xe.getNatTable();
   xe.selectSourceCell(segNum);
   Position pos = nt.positionOfSelectedCell();
   String expectedText = nt.getTextByPosition(pos.line, pos.column);
   int splitIndex = StringUtil.indexAfterWithAssert(expectedText, afterText);
   splitAt(xe, segNum, splitIndex);
 }
예제 #3
0
 /**
  * 尝试从段末分割文本段
  *
  * @param xe 要操作的 XlfEditor 对象
  * @param segNum 尝试分割的文本段序号
  */
 public static void splitAtEnd(XlfEditor xe, int segNum) {
   SWTBotNatTable nt = xe.getNatTable();
   xe.selectSourceCell(segNum);
   Position pos = nt.positionOfSelectedCell();
   String expectedText = nt.getTextByPosition(pos.line, pos.column);
   int splitIndex = expectedText.length();
   splitAt(xe, segNum, splitIndex);
 }