/** * @param from * 入口,请使用 TSUIConstants 类中提供的枚举。 * @return 打开的库管理对话框; */ public DatabaseManagementDialog openDBMgmgDialog(Entry from) { if (from.equals(TsUIConstants.Entry.MENU)) { ts.menuDBManagement().click(); } else if (from.equals(TsUIConstants.Entry.SHORTCUT)) { try { ts.pressShortcut(SWTBotUtils.getCtrlOrCmdKey(), Keystrokes.SHIFT, KeyStroke.getInstance("D")); } catch (ParseException e) { e.printStackTrace(); assertTrue("快捷键解析错误。", false); } } else { assertTrue("参数错误,该功能无此入口:" + from, false); } dialog = new DatabaseManagementDialog(DatabaseManagementDialog.MANAGEMENT); return dialog; }
/** * @param from * 入口,请使用 TSUIConstants 类中提供的枚举。 * @return 打开的库管理对话框; */ public MemoryDatabaseManagementDialog openDBMgmgDialog(Entry from) { if (from.equals(TsUIConstants.Entry.MENU)) { if (isMemory){ ts.menuDBManagement().click(); } else { ts.menuTeriDBManagement().click(); } } else if (from.equals(TsUIConstants.Entry.SHORTCUT)) { try { ts.pressShortcut(SWTBotUtils.getCtrlOrCmdKey(), Keystrokes.SHIFT, KeyStroke.getInstance("D")); } catch (ParseException e) { e.printStackTrace(); assertTrue("快捷键解析错误。", false); } } else { assertTrue("参数错误,该功能无此入口:" + from, false); } dialog = new MemoryDatabaseManagementDialog(MemoryDatabaseManagementDialog.MANAGEMENT,isMemory?"dlgTitleMemoryManagement":"dlgTitletreiTbManagement"); return dialog; }
/** * 打开预翻译对话框 * @param from * 入口,请使用 TSUIConstants 类提供的常量 * @return 预翻译对话框对象; */ private PreTranslateDialog openPreTransDlg(Entry from) { select(); switch (from) { case MENU: { ts.menuTranslationPreTrans().click(); break; } case CONTEXT_MENU: { ProjectTreeView.getInstance().ctxMenuPreTranslate().click(); break; } case SHORTCUT: { ProjectTreeView.getTree().pressShortcut(Keystrokes.SHIFT, Keystrokes.F5); break; } default: { assertTrue("参数错误,无此入口:" + from, false); } } dlgPreTrans = new PreTranslateDialog(); assertTrue("预翻译对话框未正确打开。", dlgPreTrans.isOpen()); return dlgPreTrans; }
/** * 跳到指定文本段 * @param segNum * 文本段行号 */ public void gotoSeg(int segNum) { getNatTable(); nattable.click(1, 1); int targetRowIndex; if (isHorizontalLayout()) { targetRowIndex = segNum - 1; } else { targetRowIndex = (segNum - 1) * 2; } int selectedRowIndex = nattable.indexOfSelectedRow(positionOfTargetTextColumn()); // 先判断指定文本段是否已经被选中,若未被选中才继续 if (segNum != 1 && targetRowIndex != selectedRowIndex) { SWTBotText text = editorBot.text(lineNumLastValue); text.setText(String.valueOf(segNum)); text.pressShortcut(Keystrokes.LF); lineNumLastValue = String.valueOf(segNum); // 确认选中了指定文本段 bot.waitUntil(new IsSegmentSelected(this, targetRowIndex)); } }
/** * @param text * 文本内容,其中的内部标记为源代码形式(必须对其中的双引号进行转义) * @param fromSegNum * 查找的起始文本段序号 * @return int 从指定序号的文本段起,源文本内容等于指定内容的文本段序号(精确匹配) */ public int segNumOfSource(String text, int fromSegNum) { if (text == null) { return -1; } getNatTable(); nattable.click(1, 1); int columnPosition = positionOfSourceTextColumn(); int rowPosition; String srcText; selectSourceCell(fromSegNum); for (int i = fromSegNum; i <= segCount(); i++) { rowPosition = nattable.positionOfSelectedRow(); srcText = nattable.getTextByPosition(rowPosition, columnPosition); if (text.equals(srcText) || text.equals(XliffUtil.tagged(srcText))) { // 考虑标记的两种显示状态 int columnHeaderPosition = nattable.positionOfColumn(TsUIConstants .getString("lblNatTableHeaderLineNum")); return Integer.valueOf(nattable.getTextByPosition(rowPosition, columnHeaderPosition)); } nattable.pressShortcut(Keystrokes.DOWN); // 输入向下方向键 } return -1; }
/** * @param text * 文本内容,其中的内部标记为源代码形式(必须对其中的双引号进行转义) * @param fromSegNum * 查找的起始文本段序号 * @return int 从指定序号的文本段起,源文本内容包含指定内容的文本段序号(模糊匹配) */ public int segNumContainsSource(String text, int fromSegNum) { if (text == null) { return -1; } getNatTable(); int columnPosition = positionOfSourceTextColumn(); int rowPosition; String srcText; selectSourceCell(fromSegNum); for (int i = fromSegNum; i <= segCount(); i++) { rowPosition = nattable.positionOfSelectedRow(); srcText = nattable.getTextByPosition(rowPosition, columnPosition); if (srcText != null && (srcText.contains(text) || XliffUtil.tagged(srcText).contains(text))) { // 考虑标记的两种显示状态 int columnHeaderPosition = nattable.positionOfColumn(TsUIConstants .getString("lblNatTableHeaderLineNum")); return Integer.valueOf(nattable.getTextByPosition(rowPosition, columnHeaderPosition)); } nattable.pressShortcut(Keystrokes.DOWN); // 输入向下方向键 } return -1; }