Ejemplo n.º 1
0
  /**
   * 在指定文本段的 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);
    }
  }
Ejemplo n.º 2
0
  /**
   * 尝试分割已批准的文本段
   *
   * @param xe 要操作的 XlfEditor 对象
   * @param segNum 尝试分割的文本段序号
   */
  public static void splitApprovedSeg(XlfEditor xe, int segNum) {

    // 判断该文本段是否已批准
    String rowID = xe.rowIdOfSegNum(segNum);
    XliffUtil xu = new XliffUtil(rowID);
    assertTrue(xu.tuIsApproved());

    // 进入编辑模式,方便读取样式文本框中的内容
    xe.enterEditModeSource(segNum);

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

    // 判断给定的分割点是否可分割
    HsSWTBotStyledText st = xe.getStyledText();
    String expectedText = st.getText();

    // 将光标移到任意位置(这里取 index=1),并点击相应的菜单项进行分割
    xe.navigateToIndex(1);
    ts.menuTranslationSplitSegment().click();

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

    xe.getNatTable();

    // 确认文本段没有被分割
    SegmentAsserts.segNotSplit(tuid, expectedText, xu);
  }
Ejemplo n.º 3
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);
  }
Ejemplo n.º 4
0
 /** 未打开文件时,分割文本段功能被禁用 */
 public static void splitWithoutFile() {
   assertTrue(HSBot.bot().editors().isEmpty());
   assertTrue(!ts.menuTranslationSplitSegment().isEnabled());
 }