feat: ✨️新增全局回调方法,优化修订模式处理
在 `Bridge.cs` 文件中: - 修改 `ProcessStartInfo` 的 `Verb` 属性赋值方式,保持不变。 - 新增 `Callback` 方法,用于全局回调。 - 新增 `CheckInTrackRevisions` 方法,用于检查文档是否处于修订模式,并根据用户选择关闭修订模式或返回相应结果。 - 修改提示信息内容,并在用户选择不关闭修订模式时,返回相应错误信息。 - 调整 `JSONObject.Create()` 的链式调用格式。 - 调整 `InitProofreadCacheList` 方法的参数格式。 在 `FormMessage.cs` 文件中: - 新增 `ShowMessage` 方法的重载版本,支持自定义确认和取消按钮的文本。 在 `DocumentInfo.cs` 文件中: - 新增 `GlobalCallback` 方法,用于调用 Web 全局回调函数。 在 `ThisAddIn.cs` 文件中: - 修改日志记录信息,增加文档修订模式的状态。 - 新增 `GlobalCallback` 方法,用于全局回调。
This commit is contained in:
parent
e8c18e6eb8
commit
2b3e330841
Binary file not shown.
@ -241,7 +241,7 @@ namespace AIProofread
|
|||||||
{
|
{
|
||||||
WorkingDirectory = applicationBase,
|
WorkingDirectory = applicationBase,
|
||||||
UseShellExecute = true,
|
UseShellExecute = true,
|
||||||
Verb="runas"
|
Verb = "runas"
|
||||||
};
|
};
|
||||||
Process.Start(processStartInfo);
|
Process.Start(processStartInfo);
|
||||||
}
|
}
|
||||||
@ -319,6 +319,43 @@ namespace AIProofread
|
|||||||
return document.CurrentDocument.Saved;
|
return document.CurrentDocument.Saved;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void Callback(string callbackId, string result)
|
||||||
|
{
|
||||||
|
Globals.ThisAddIn.GlobalCallback(callbackId, result);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 判断是否处理修订模式,如果没有在修订模式,则回调返回false
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="documentId"></param>
|
||||||
|
/// <param name="callback"></param>
|
||||||
|
public void CheckInTrackRevisions(string message,int documentId, string callbackId)
|
||||||
|
{
|
||||||
|
var doc = documentId > 0 ? Globals.ThisAddIn.GetDocumentById(documentId) : Globals.ThisAddIn.ActiveDocument;
|
||||||
|
|
||||||
|
if (doc.CurrentDocument.TrackRevisions)
|
||||||
|
{
|
||||||
|
doc.RunInMainThread(() =>
|
||||||
|
{
|
||||||
|
var result = FormMessage.ShowMessage(message, "确认", "取消", null);
|
||||||
|
if (result == DialogResult.OK)
|
||||||
|
{
|
||||||
|
// 关闭修订模式
|
||||||
|
doc.CurrentDocument.TrackRevisions = false;
|
||||||
|
Callback(callbackId, "false");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Callback(callbackId, "true");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Callback(callbackId, "false");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 获取文档数据
|
/// 获取文档数据
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -332,14 +369,19 @@ namespace AIProofread
|
|||||||
// 判断是否处理修订模式
|
// 判断是否处理修订模式
|
||||||
if (doc.TrackRevisions)
|
if (doc.TrackRevisions)
|
||||||
{
|
{
|
||||||
//data.Add("code", 1);
|
var ret = MessageBox.Show("该文档已开启修订模型,请关闭此模式再进行校对。是否关闭?", "提示", MessageBoxButtons.YesNo);
|
||||||
//data.Add("message", "文档存在未处理的修订,请处理后再进行校对");
|
if (ret == DialogResult.Yes)
|
||||||
var ret = MessageBox.Show("文档当前处于修订模式,是否关闭此模式?","提示",MessageBoxButtons.YesNo);
|
|
||||||
if(ret == DialogResult.Yes)
|
|
||||||
{
|
{
|
||||||
doc.TrackRevisions = false;
|
doc.TrackRevisions = false;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
data.Add("code", 1);
|
||||||
|
data.Add("message", "文档存在未处理的修订,请处理后再进行校对");
|
||||||
|
return Tools.GetJSONString(data);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
// 判断是否需要强制升级
|
||||||
if (ShouldUpgradeForced())
|
if (ShouldUpgradeForced())
|
||||||
{
|
{
|
||||||
data.Add("code", 2);
|
data.Add("code", 2);
|
||||||
@ -451,7 +493,7 @@ namespace AIProofread
|
|||||||
var lineNumber = range.get_Information(WdInformation.wdFirstCharacterLineNumber);
|
var lineNumber = range.get_Information(WdInformation.wdFirstCharacterLineNumber);
|
||||||
|
|
||||||
return JSONObject.Create()
|
return JSONObject.Create()
|
||||||
.Put("text",text)
|
.Put("text", text)
|
||||||
.Put("page", pageNumber)
|
.Put("page", pageNumber)
|
||||||
.Put("line", lineNumber)
|
.Put("line", lineNumber)
|
||||||
.ToString();
|
.ToString();
|
||||||
@ -888,12 +930,12 @@ namespace AIProofread
|
|||||||
return BridgeResult.Success(result == DialogResult.Yes ? "yes" : "no");
|
return BridgeResult.Success(result == DialogResult.Yes ? "yes" : "no");
|
||||||
}
|
}
|
||||||
|
|
||||||
public string InitProofreadCacheList(string content,string originData)
|
public string InitProofreadCacheList(string content, string originData)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
List<CorrectContext> list = JsonConvert.DeserializeObject<List<CorrectContext>>(content);
|
List<CorrectContext> list = JsonConvert.DeserializeObject<List<CorrectContext>>(content);
|
||||||
Dictionary<int,ProofreadRangeInfo> dics = string.IsNullOrEmpty(originData) ? null : JsonConvert.DeserializeObject<Dictionary<int, ProofreadRangeInfo>>(originData);
|
Dictionary<int, ProofreadRangeInfo> dics = string.IsNullOrEmpty(originData) ? null : JsonConvert.DeserializeObject<Dictionary<int, ProofreadRangeInfo>>(originData);
|
||||||
Globals.ThisAddIn.InitProofreadCacheList(list, dics);
|
Globals.ThisAddIn.InitProofreadCacheList(list, dics);
|
||||||
return BridgeResult.Success();
|
return BridgeResult.Success();
|
||||||
}
|
}
|
||||||
|
@ -85,6 +85,24 @@ namespace AIProofread.Controls
|
|||||||
formMessage.Show();
|
formMessage.Show();
|
||||||
return formMessage;
|
return formMessage;
|
||||||
}
|
}
|
||||||
|
public static DialogResult ShowMessage(string message, string confirmText = "确认",string cancelText="取消", string confirmAction = null)
|
||||||
|
{
|
||||||
|
FormMessage formMessage = new FormMessage();
|
||||||
|
formMessage.SetMessage(message);
|
||||||
|
formMessage.currentConfirmAction = confirmAction;
|
||||||
|
formMessage.BtnClose.Text = cancelText;
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(confirmText))
|
||||||
|
{
|
||||||
|
formMessage.HideConfirm();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
formMessage.BtnConfirm.Text = confirmText;
|
||||||
|
formMessage.ResetButtons();
|
||||||
|
}
|
||||||
|
return formMessage.ShowDialog();
|
||||||
|
}
|
||||||
public static DialogResult ShowMessage(string message, string confirmText = "确认", string confirmAction = null)
|
public static DialogResult ShowMessage(string message, string confirmText = "确认", string confirmAction = null)
|
||||||
{
|
{
|
||||||
FormMessage formMessage = new FormMessage();
|
FormMessage formMessage = new FormMessage();
|
||||||
|
@ -526,6 +526,22 @@ namespace AIProofread.Model
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void GlobalCallback(string callbackId, string result)
|
||||||
|
{
|
||||||
|
ProofreadMainControl control = (ProofreadMainControl)TaskPane.Control;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (control.web.CoreWebView2 == null)
|
||||||
|
{
|
||||||
|
Thread.Sleep(1000);
|
||||||
|
}
|
||||||
|
control.web.CoreWebView2.ExecuteScriptAsync($"window.__global_callback_function('{callbackId}','{result}');");
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Logger.Log("GlobalCallback", "call web global function error \n" + ex.Message + "\n" + callbackId + result);
|
||||||
|
}
|
||||||
|
}
|
||||||
public void SendMessageToWeb(string msg, object data)
|
public void SendMessageToWeb(string msg, object data)
|
||||||
{
|
{
|
||||||
var json = JsonConvert.SerializeObject(new WebMessage(msg, data));
|
var json = JsonConvert.SerializeObject(new WebMessage(msg, data));
|
||||||
|
@ -351,7 +351,7 @@ namespace AIProofread
|
|||||||
if (formCommonsenseDetection != null) {
|
if (formCommonsenseDetection != null) {
|
||||||
formCommonsenseDetection.SendMessageToWeb("document-change", null);
|
formCommonsenseDetection.SendMessageToWeb("document-change", null);
|
||||||
}
|
}
|
||||||
Logger.Log("Application_DocumentChange -- " + ActiveDocument.fileName);
|
Logger.Log("Application_DocumentChange -- " + ActiveDocument.fileName + " track is " + ActiveDocument.CurrentDocument.TrackRevisions);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetActiveDocument(Document doc)
|
public void SetActiveDocument(Document doc)
|
||||||
@ -504,6 +504,11 @@ namespace AIProofread
|
|||||||
ActiveDocument?.SendMessageToWeb(msg, data);
|
ActiveDocument?.SendMessageToWeb(msg, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void GlobalCallback(string callbackId, string result)
|
||||||
|
{
|
||||||
|
ActiveDocument?.GlobalCallback(callbackId, result);
|
||||||
|
}
|
||||||
|
|
||||||
// 显示面板
|
// 显示面板
|
||||||
public void ShowPanel()
|
public void ShowPanel()
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user