use of net.heartsome.cat.ts.test.ui.msgdialogs.InformationDialog in project translationstudio8 by heartsome.
the class DBManagement method getDBListFromServer.
/**
* 在数据库服务器上查询数据库列表
* @param useSavedConnection
* 是否使用已保存的连接;
* @return
*/
public HsSWTBotTable getDBListFromServer(boolean useSavedConnection) {
assertTrue("库管理对话框为 null。", dialog != null);
dialog.activate();
if (useSavedConnection && isConnectionSaved()) {
selectDBType().expandNode(connectionName).select();
assertTrue("服务器地址未正确赋值。", server.equals(dialog.txtWLblServer().getText()));
assertTrue("服务器端口未正确赋值。", port.equals(dialog.txtWLblPort().getText()));
} else {
selectDBType();
setConnectionInfo();
dialog.btnSearch().click();
}
if (expectedConnect.equals(TsUIConstants.ExpectedResult.SUCCESS)) {
assertTrue(HSBot.bot().activeShell().getText().equals(dialog.getText()));
} else {
assertTrue(HSBot.bot().shells().length == 3);
InformationDialog msgDlg = null;
switch(expectedConnect) {
case SUCCESS:
{
break;
}
case NO_SERVER:
{
msgDlg = new InformationDialog(InformationDialog.dlgTitleErrorInfo, InformationDialog.msgServerIsRequired);
break;
}
case NO_PORT:
{
msgDlg = new InformationDialog(InformationDialog.dlgTitleErrorInfo, InformationDialog.msgPortIsRequired);
break;
}
case NO_INSTANCE:
{
msgDlg = new InformationDialog(InformationDialog.dlgTitleErrorInfo, InformationDialog.msgInstanceIsRequired);
break;
}
case NO_PATH:
{
msgDlg = new InformationDialog(InformationDialog.dlgTitleErrorInfo, InformationDialog.msgPathIsRequired);
break;
}
case NO_USERNAME:
{
msgDlg = new InformationDialog(InformationDialog.dlgTitleErrorInfo, InformationDialog.msgUsernameIsRequired);
break;
}
case CONNECTION_ERROR:
{
msgDlg = new InformationDialog(InformationDialog.dlgTitleTips, InformationDialog.msgServerConnectionError);
break;
}
default:
{
assertTrue("参数错误,无此预期结果:" + expectedConnect, false);
}
}
assertTrue(msgDlg.lblMessage().isVisible());
msgDlg.btnOK().click();
Waits.shellClosed(msgDlg);
}
table = dialog.bot().table();
return table;
}
use of net.heartsome.cat.ts.test.ui.msgdialogs.InformationDialog in project translationstudio8 by heartsome.
the class ProjectSetting method setTMDB.
/**
* 设置记忆库
* @param from
* 功能入口,请使用 TSUIConstants 类提供的常量;
* @param nextAction
* 下一步操作,请使用本类提供的常量;
*/
public void setTMDB(Entry from, NextAction nextAction) {
if (dlgPrjSetting == null) {
openPrjSettingDlg(from);
}
dlgPrjSetting.treiTmSetting().select();
if (!dlgPrjSetting.table().containsTextInColumn(tMDBName, dlgPrjSetting.tblColName())) {
if (isTMDBExist) {
dlgPrjSetting.btnAdd().click();
DBManagement dbMgmt = new DBManagement(row);
dbMgmt.selectDB(tMDBName);
} else {
dlgPrjSetting.btnCreate().click();
// TODO 目前弹出的是数据库创建向导,而该向导有较大的改进余地,暂不实现
}
try {
InformationDialog dlgInfo = new InformationDialog(InformationDialog.dlgTitleTips, InformationDialog.msgNoMatchInDB);
dlgInfo.btnOK().click();
Waits.shellClosed(dlgInfo);
} catch (WidgetNotFoundException e) {
// e.printStackTrace();
}
assertTrue("未正确选择记忆库:" + tMDBName, dlgPrjSetting.table().containsTextInColumn(tMDBName, dlgPrjSetting.tblColName()));
}
nextAction(nextAction);
}
use of net.heartsome.cat.ts.test.ui.msgdialogs.InformationDialog in project translationstudio8 by heartsome.
the class SplitSegment method splitApprovedSeg.
/**
* 尝试分割已批准的文本段
* @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);
}
use of net.heartsome.cat.ts.test.ui.msgdialogs.InformationDialog in project translationstudio8 by heartsome.
the class SplitSegment method splitWithoutCursor.
/**
* 尝试不将光标置于源文本中直接分割
* @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);
}
use of net.heartsome.cat.ts.test.ui.msgdialogs.InformationDialog in project translationstudio8 by heartsome.
the class MergeSegments method TryMergeAndVerifyMsg.
/**
* 尝试合并不可合并的文本段,并验证出现的信息对话框
* @param xe 编辑器
* @param xu1 第一个(即欲与下一个文本段合并的)文本段 XliffUtil 对象
* @param xu2 第二个(即欲与上一个文本段合并的)文本段 XliffUtil 对象
* @param segNum1 第一个文本段序号
* @param segNum2 第二个文本段序号
* @param direction 合并方向,只允许为 N 或 P
*/
private static void TryMergeAndVerifyMsg(XlfEditor xe, XliffUtil xu1, XliffUtil xu2, int segNum1, int segNum2, String direction) {
// 先判断传入的方向参数是否正确
assertTrue("Wrong value for parameter \"direction\".", "N".equals(direction) || "P".equals(direction));
// 方向为与下一文本段合并
if ("N".equals(direction)) {
xe.gotoSeg(segNum1);
// 若未找到下一个非空文本段,则验证弹出的信息对话框
if (xu1.getNextNotNullXU() == null) {
InformationDialog cnms = new InformationDialog(1, TsUIConstants.getString("msgCannotMergeSegWhenNoNextSeg"));
cnms.lblMessage().isVisible();
cnms.btnOK().click();
}
} else // 方向为与上一文本段合并
{
xe.gotoSeg(segNum2);
// 若未找到上一个非空文本段,则验证弹出的信息对话框
if (xu2.getPrevNotNullXU() == null) {
InformationDialog cnms = new InformationDialog(1, TsUIConstants.getString("msgCannotMergeSegWhenNoPrevSeg"));
cnms.lblMessage().isVisible();
cnms.btnOK().click();
}
}
// 若两个文本段中任一个为已批准,则验证弹出的信息对话框
if (xu1.tuIsApproved() || xu2.tuIsApproved()) {
InformationDialog cnmas = new InformationDialog(1, TsUIConstants.getString("msgCannotMergeApprovedSeg"));
cnmas.lblMessage().isVisible();
cnmas.btnOK().click();
}
// TODO 根据具体的实现决定是否需要增加更多信息对话框相关判断,比如尝试合并锁定文本段时
}
Aggregations