Search in sources :

Example 1 with InformationDialog

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;
}
Also used : InformationDialog(net.heartsome.cat.ts.test.ui.msgdialogs.InformationDialog)

Example 2 with InformationDialog

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);
}
Also used : WidgetNotFoundException(org.eclipse.swtbot.swt.finder.exceptions.WidgetNotFoundException) InformationDialog(net.heartsome.cat.ts.test.ui.msgdialogs.InformationDialog) DBManagement(net.heartsome.cat.ts.test.basecase.menu.db.DBManagement)

Example 3 with InformationDialog

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);
}
Also used : XliffUtil(net.heartsome.cat.ts.test.ui.utils.XliffUtil) InformationDialog(net.heartsome.cat.ts.test.ui.msgdialogs.InformationDialog) HsSWTBotStyledText(net.heartsome.test.swtbot.widgets.HsSWTBotStyledText)

Example 4 with InformationDialog

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);
}
Also used : XliffUtil(net.heartsome.cat.ts.test.ui.utils.XliffUtil) InformationDialog(net.heartsome.cat.ts.test.ui.msgdialogs.InformationDialog) SWTBotNatTable(net.heartsome.test.swtbot.widgets.SWTBotNatTable) Position(org.eclipse.swtbot.swt.finder.utils.Position)

Example 5 with InformationDialog

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 根据具体的实现决定是否需要增加更多信息对话框相关判断,比如尝试合并锁定文本段时
}
Also used : InformationDialog(net.heartsome.cat.ts.test.ui.msgdialogs.InformationDialog)

Aggregations

InformationDialog (net.heartsome.cat.ts.test.ui.msgdialogs.InformationDialog)8 XliffUtil (net.heartsome.cat.ts.test.ui.utils.XliffUtil)3 DBManagement (net.heartsome.cat.ts.test.basecase.menu.db.DBManagement)2 HsSWTBotStyledText (net.heartsome.test.swtbot.widgets.HsSWTBotStyledText)2 WidgetNotFoundException (org.eclipse.swtbot.swt.finder.exceptions.WidgetNotFoundException)2 SWTBotNatTable (net.heartsome.test.swtbot.widgets.SWTBotNatTable)1 Position (org.eclipse.swtbot.swt.finder.utils.Position)1