private void button_unionCatalog_findDp2Server_Click(object sender, EventArgs e) { dp2SearchForm dp2_searchform = this.MainForm.GetDp2SearchForm(); GetDp2ResDlg dlg = new GetDp2ResDlg(); GuiUtil.SetControlFont(dlg, this.Font); dlg.Text = "请指定要绑定的 dp2library 服务器名"; #if OLD_CHANNEL dlg.dp2Channels = dp2_searchform.Channels; #endif dlg.ChannelManager = this.MainForm; dlg.Servers = this.MainForm.Servers; dlg.EnabledIndices = new int[] { dp2ResTree.RESTYPE_SERVER }; dlg.Path = this.textBox_unionCatalog_bindingDp2ServerName.Text; dlg.ShowDialog(this); if (dlg.DialogResult != DialogResult.OK) { return; } this.textBox_unionCatalog_bindingDp2ServerName.Text = dlg.Path; }
private void button_modifyBindingItem_Click(object sender, EventArgs e) { if (this.listView_recordSyntaxAndEncodingBinding.SelectedItems.Count == 0) { MessageBox.Show(this, "尚未选定要修改的事项"); return; } ListViewItem item = this.listView_recordSyntaxAndEncodingBinding.SelectedItems[0]; RecordSyntaxAndEncodingBindingItemDlg dlg = new RecordSyntaxAndEncodingBindingItemDlg(); GuiUtil.SetControlFont(dlg, this.Font); dlg.RecordSyntax = item.Text; dlg.Encoding = item.SubItems[1].Text; dlg.StartPosition = FormStartPosition.CenterScreen; dlg.ShowDialog(this); if (dlg.DialogResult != DialogResult.OK) { return; } item.Text = dlg.RecordSyntax; item.SubItems[1].Text = dlg.Encoding; }
private void button_findServerName_Click(object sender, EventArgs e) { GetDp2ResDlg dlg = new GetDp2ResDlg(); GuiUtil.SetControlFont(dlg, this.Font); dlg.Text = "请指定一个作为查重目标的 dp2library 服务器"; #if OLD_CHANNEL dlg.dp2Channels = this.Channels; #endif dlg.ChannelManager = Program.MainForm; dlg.Servers = this.MainForm.Servers; dlg.EnabledIndices = new int[] { dp2ResTree.RESTYPE_SERVER }; dlg.Path = this.textBox_serverName.Text; dlg.ShowDialog(this); if (dlg.DialogResult != DialogResult.OK) { return; } this.textBox_serverName.Text = dlg.Path; }
ServerDlg SetDefaultAccount( string strServerUrl, string strTitle, string strComment, IWin32Window owner) { dp2Server server = this.MainForm.Servers[strServerUrl]; ServerDlg dlg = new ServerDlg(); GuiUtil.SetControlFont(dlg, this.Font); if (String.IsNullOrEmpty(strServerUrl) == true) { } else { dlg.ServerUrl = strServerUrl; } if (owner == null) { owner = this; } if (String.IsNullOrEmpty(strTitle) == false) { dlg.Text = strTitle; } dlg.Comment = strComment; dlg.UserName = server.DefaultUserName; this.MainForm.AppInfo.LinkFormState(dlg, "dp2_logindlg_state"); dlg.ShowDialog(owner); this.MainForm.AppInfo.UnlinkFormState(dlg); if (dlg.DialogResult == DialogResult.Cancel) { return(null); } server.DefaultUserName = dlg.UserName; server.DefaultPassword = (dlg.SavePassword == true) ? dlg.Password : ""; server.SavePassword = dlg.SavePassword; server.Url = dlg.ServerUrl; return(dlg); }
// GCAT通道登录 旧的方式 public void gcat_channel_BeforeLogin(object sender, DigitalPlatform.GcatClient.BeforeLoginEventArgs e) { string strUserName = (string)this.DetailForm.MainForm.ParamTable["author_number_account_username"]; string strPassword = (string)this.DetailForm.MainForm.ParamTable["author_number_account_password"]; if (String.IsNullOrEmpty(strUserName) == true) { strUserName = "******"; strPassword = ""; } // 直接试探 if (!(e.UserName == strUserName && e.Failed == true) && strUserName != "") { e.UserName = strUserName; e.Password = strPassword; return; } LoginDlg dlg = new LoginDlg(); GuiUtil.SetControlFont(dlg, this.DetailForm.MainForm.Font); if (e.Failed == true) { dlg.textBox_comment.Text = "登录失败。加著者号码功能需要重新登录"; } else { dlg.textBox_comment.Text = "加著者号码功能需要登录"; } dlg.textBox_serverAddr.Text = e.GcatServerUrl; dlg.textBox_userName.Text = strUserName; dlg.textBox_password.Text = strPassword; dlg.checkBox_savePassword.Checked = true; dlg.textBox_serverAddr.Enabled = false; dlg.TopMost = true; // 2009/11/12 因为ShowDialog(null),为了防止对话框被放在非顶部 dlg.ShowDialog(null); if (dlg.DialogResult != DialogResult.OK) { e.Cancel = true; // 2009/11/12 如果缺这一句,会造成Cancel后仍然重新弹出登录对话框 return; } strUserName = dlg.textBox_userName.Text; strPassword = dlg.textBox_password.Text; e.UserName = strUserName; e.Password = strPassword; this.DetailForm.MainForm.ParamTable["author_number_account_username"] = strUserName; this.DetailForm.MainForm.ParamTable["author_number_account_password"] = strPassword; }
// 修改名字和注释 void menu_modify(object sender, System.EventArgs e) { string strError = ""; if (listView1.SelectedItems.Count == 0) { strError = "尚未选择拟修改的模板记录事项..."; goto ERROR1; } ListViewItem item = listView1.SelectedItems[0]; TemplateRecordDlg dlg = new TemplateRecordDlg(); GuiUtil.SetControlFont(dlg, this.Font, false); string strOldName = ListViewUtil.GetItemText(item, 0); dlg.TemplateName = ListViewUtil.GetItemText(item, 0); dlg.Comment = ListViewUtil.GetItemText(item, 1); REDO_INPUT: dlg.ShowDialog(this); if (dlg.DialogResult != DialogResult.OK) { return; } // 查重 2014/6/21 ListViewItem dup = ListViewUtil.FindItem(this.listView1, dlg.TemplateName, 0); if (dup != null && dup != item) { strError = "模板名 '" + dlg.TemplateName + "' 已经被使用了,不允许重复出现。请重新输入模板名"; MessageBox.Show(this, strError); goto REDO_INPUT; } int nRet = ChangeRecordProperty(strOldName, dlg.TemplateName, dlg.Comment, out strError); if (nRet == -1) { goto ERROR1; } FillList(false); return; ERROR1: MessageBox.Show(this, strError); }
void menu_modifyServer(object sender, System.EventArgs e) { if (listView1.SelectedIndices.Count == 0) { MessageBox.Show(this, "尚未选择要修改的事项 ..."); return; } int nActiveLine = listView1.SelectedIndices[0]; // ListViewItem item = listView1.Items[nActiveLine]; ServerDlg dlg = new ServerDlg(); // GuiUtil.AutoSetDefaultFont(dlg); GuiUtil.SetControlFont(dlg, this.Font); dlg.Text = "修改缺省帐户参数"; dlg.ServerName = ((dp2Server)Servers[nActiveLine]).Name; dlg.Password = ((dp2Server)Servers[nActiveLine]).DefaultPassword; dlg.ServerUrl = ((dp2Server)Servers[nActiveLine]).Url; dlg.UserName = ((dp2Server)Servers[nActiveLine]).DefaultUserName; dlg.SavePassword = ((dp2Server)Servers[nActiveLine]).SavePassword; dlg.ShowDialog(this); if (dlg.DialogResult != DialogResult.OK) { return; } ((dp2Server)Servers[nActiveLine]).Name = dlg.ServerName; ((dp2Server)Servers[nActiveLine]).DefaultPassword = dlg.Password; ((dp2Server)Servers[nActiveLine]).Url = dlg.ServerUrl; ((dp2Server)Servers[nActiveLine]).DefaultUserName = dlg.UserName; ((dp2Server)Servers[nActiveLine]).SavePassword = dlg.SavePassword; Servers.Changed = true; FillList(); // 选择一行 // parameters: // nIndex 要设置选择标记的行。如果==-1,表示清除全部选择标记但不选择。 // bMoveFocus 是否同时移动focus标志到所选择行 ListViewUtil.SelectLine(listView1, nActiveLine, true); m_bChanged = true; }
private void button_viewXmlRecord_Click(object sender, EventArgs e) { XmlViewerForm dlg = new XmlViewerForm(); GuiUtil.SetControlFont(dlg, this.Font); dlg.Text = "当前XML数据"; dlg.MainForm = this.MainForm; dlg.XmlString = this.XmlRecord; dlg.StartPosition = FormStartPosition.CenterScreen; dlg.ShowDialog(); return; }
// 获得缺省查重起点路径 private void button_dp2library_searchDup_findDefaultStartPath_Click(object sender, EventArgs e) { string strError = ""; dp2SearchForm dp2_searchform = this.MainForm.GetDp2SearchForm(); if (dp2_searchform == null) { strError = "无法获得打开的 dp2检索窗,无法获得 dp2library 数据库名"; goto ERROR1; } string strDefaultStartPath = Global.GetForwardStyleDp2Path(this.textBox_dp2library_searchDup_defaultStartPath.Text); // 临时指定一个dp2library服务器和数据库 GetDp2ResDlg dlg = new GetDp2ResDlg(); GuiUtil.SetControlFont(dlg, this.Font); dlg.Text = "请指定一个 dp2library 数据库,以作为模拟的查重起点"; #if OLD_CHANNEL dlg.dp2Channels = dp2_searchform.Channels; #endif dlg.ChannelManager = Program.MainForm; dlg.Servers = this.MainForm.Servers; dlg.EnabledIndices = new int[] { dp2ResTree.RESTYPE_DB }; dlg.Path = strDefaultStartPath; this.MainForm.AppInfo.LinkFormState(dlg, "searchdup_selectstartpath_dialog_state"); dlg.ShowDialog(this); this.MainForm.AppInfo.UnlinkFormState(dlg); if (dlg.DialogResult != DialogResult.OK) { return; } strDefaultStartPath = Global.GetBackStyleDp2Path(dlg.Path + "/?"); this.textBox_dp2library_searchDup_defaultStartPath.Text = strDefaultStartPath; return; ERROR1: MessageBox.Show(this, strError); }
private void button_hostManage_Click(object sender, EventArgs e) { DigitalPlatform.DTLP.HostManageDlg dlg = new DigitalPlatform.DTLP.HostManageDlg(); GuiUtil.SetControlFont(dlg, this.Font); dlg.applicationInfo = MainForm.AppInfo; dlg.StartPosition = FormStartPosition.CenterScreen; dlg.ShowDialog(this); if (dlg.DialogResult == DialogResult.OK) { MessageBox.Show(this, "服务器地址修改后,需要重新打开相关窗口,新的配置才能反映在资源树中 ..."); } }
private void toolStripButton_modify_Click(object sender, EventArgs e) { string strError; if (this.listView1.SelectedItems.Count == 0) { strError = "尚未选择要修改的服务器"; goto ERROR1; } ListViewItem item = this.listView1.SelectedItems[0]; XmlElement server = (XmlElement)item.Tag; using (ZServerPropertyForm dlg = new ZServerPropertyForm()) { GuiUtil.SetControlFont(dlg, this.Font); dlg.UnionCatalogPageVisible = false; dlg.XmlNode = server; dlg.StartPosition = FormStartPosition.CenterScreen; dlg.ShowDialog(this); if (dlg.DialogResult == DialogResult.Cancel) { return; } // 对 server name 进行查重 string name = server.GetAttribute("name"); if (SearchDup(ref name, item) == true) { server.SetAttribute("name", name); } { ListViewUtil.ChangeItemText(item, COLUMN_NAME, server.GetAttribute("name")); ListViewUtil.ChangeItemText(item, COLUMN_DATABASE, ZServerUtil.GetDatabaseList(server)); } this.Changed = true; return; } ERROR1: MessageBox.Show(this, strError); }
private void toolStripSplitButton_new1_ButtonClick(object sender, EventArgs e) { XmlElement server = _dom.CreateElement("server"); _dom.DocumentElement.AppendChild(server); // server.SetAttribute("recsperbatch", "10"); using (ZServerPropertyForm dlg = new ZServerPropertyForm()) { GuiUtil.SetControlFont(dlg, this.Font); dlg.UnionCatalogPageVisible = false; dlg.XmlNode = server; dlg.StartPosition = FormStartPosition.CenterScreen; dlg.ShowDialog(this); if (dlg.DialogResult == DialogResult.Cancel) { server.ParentNode.RemoveChild(server); return; } // 对 server name 进行查重 string name = server.GetAttribute("name"); if (SearchDup(ref name, null) == true) { server.SetAttribute("name", name); } { ListViewItem item = new ListViewItem(); item.Tag = server; ListViewUtil.ChangeItemText(item, COLUMN_NAME, name); ListViewUtil.ChangeItemText(item, COLUMN_DATABASE, ZServerUtil.GetDatabaseList(server)); ListViewUtil.ChangeItemText(item, COLUMN_ENABLED, "是"); SetItemColor(item); this.listView1.Items.Add(item); } this.Changed = true; } }
// 为 library.xml 配置服务器同步参数 private void ToolStripMenuItem_configServerReplication_Click(object sender, EventArgs e) { string strError = ""; string strDataDir = this.textBox_dataDir.Text; string strInstanceName = this.textBox_instanceName.Text; if (string.IsNullOrEmpty(strDataDir)) { strError = "尚未指定数据目录"; goto ERROR1; } string strLibraryXmlFileName = Path.Combine(strDataDir, "library.xml"); if (File.Exists(strLibraryXmlFileName) == false) { strError = "配置文件 '" + strLibraryXmlFileName + "' 不存在,无法进行进一步配置"; goto ERROR1; } LibraryXmlDialog dlg = new LibraryXmlDialog(); GuiUtil.SetControlFont(dlg, this.Font); dlg.Text = "服务器同步参数"; dlg.LibraryXmlFileName = strLibraryXmlFileName; dlg.ShowDialog(this); if (dlg.DialogResult == System.Windows.Forms.DialogResult.Cancel) { return; } return; ERROR1: MessageBox.Show(this, strError); }
private void button_dtlp_dupCfg_Click(object sender, EventArgs e) { string strError = ""; DtlpSearchForm dtlp_searchform = this.MainForm.GetDtlpSearchForm(); if (dtlp_searchform == null) { strError = "无法获得打开的DTLP检索窗,无法配置查重"; goto ERROR1; } DupCfgDialog dlg = new DupCfgDialog(); GuiUtil.SetControlFont(dlg, this.Font); int nRet = dlg.Initial(this.MainForm.DataDir + "\\dtlp_dup.xml", out strError); if (nRet == -1) { goto ERROR1; } dlg.DtlpChannels = dtlp_searchform.DtlpChannels; dlg.DtlpChannel = dtlp_searchform.DtlpChannel; // dlg.StartPosition = FormStartPosition.CenterScreen; this.MainForm.AppInfo.LinkFormState(dlg, "dupcfg_dialogdialog_state"); dlg.ShowDialog(this); this.MainForm.AppInfo.UnlinkFormState(dlg); return; ERROR1: MessageBox.Show(this, strError); }
private void button_newBindingItem_Click(object sender, EventArgs e) { RecordSyntaxAndEncodingBindingItemDlg dlg = new RecordSyntaxAndEncodingBindingItemDlg(); GuiUtil.SetControlFont(dlg, this.Font); dlg.Encoding = this.comboBox_defaultEncoding.Text; // 引入缺省编码方式值 dlg.StartPosition = FormStartPosition.CenterScreen; dlg.ShowDialog(this); if (dlg.DialogResult != DialogResult.OK) { return; } // 查重 string strNewSyntax = ZTargetControl.GetLeftValue(dlg.RecordSyntax); for (int i = 0; i < this.listView_recordSyntaxAndEncodingBinding.Items.Count; i++) { string strExistSyntax = this.listView_recordSyntaxAndEncodingBinding.Items[i].Text; strExistSyntax = ZTargetControl.GetLeftValue(strExistSyntax); if (strNewSyntax == strExistSyntax) { MessageBox.Show(this, "数据格式 '" + strNewSyntax + "' 已经存在(第 " + (i + 1).ToString() + " 行),不能重复加入"); return; } } ListViewItem item = new ListViewItem(); item.Text = dlg.RecordSyntax; item.SubItems.Add(dlg.Encoding); this.listView_recordSyntaxAndEncodingBinding.Items.Add(item); }
private void button_findDate_Click(object sender, EventArgs e) { GetDateDlg dlg = new GetDateDlg(); GuiUtil.SetControlFont(dlg, this.Font); dlg.Text = this.Caption; dlg.DateTime = this.Value; // dlg.StartLocation = Control.MousePosition; dlg.StartPosition = FormStartPosition.Manual; dlg.Location = this.PointToScreen( new Point(this.Margin.Horizontal, 4 + this.Height + this.Margin.Vertical) ); dlg.ShowDialog(this); if (dlg.DialogResult != DialogResult.OK) { return; } this.Value = dlg.DateTime; }
private void button_worToIso_convert_Click(object sender, EventArgs e) { string strError = ""; int nRet = 0; if (string.IsNullOrEmpty(this.textBox_worToIso_worFilename.Text) == true) { strError = "尚未指定工作单文件名"; goto ERROR1; } Encoding encoding = MarcUtil.GetEncoding(this.comboBox_worToIso_encoding.Text); if (encoding == null) { encoding = Encoding.GetEncoding(936); } Encoding preferredEncoding = Encoding.UTF8; OpenMarcFileDlg dlg = new OpenMarcFileDlg(); GuiUtil.SetControlFont(dlg, this.Font); dlg.Text = "请指定目标 ISO2709 文件名"; dlg.IsOutput = true; dlg.FileName = ""; dlg.CrLf = false; dlg.AddG01Visible = false; dlg.RemoveField998Visible = false; //dlg.RemoveField998 = m_mainForm.LastRemoveField998; dlg.EncodingListItems = Global.GetEncodingList(false); dlg.MarcSyntax = "<自动>"; // strPreferedMarcSyntax; dlg.EnableMarcSyntax = false; this.MainForm.AppInfo.LinkFormState(dlg, "OpenMarcFileDlg_forOutput_state"); dlg.ShowDialog(this); if (dlg.DialogResult != DialogResult.OK) { return; } Encoding targetEncoding = null; nRet = Global.GetEncoding(dlg.EncodingName, out targetEncoding, out strError); if (nRet == -1) { goto ERROR1; } bool bExist = File.Exists(dlg.FileName); bool bAppend = false; if (bExist == true) { DialogResult result = MessageBox.Show(this, "文件 '" + dlg.FileName + "' 已存在,是否以追加方式写入记录?\r\n\r\n--------------------\r\n注:(是)追加 (否)覆盖 (取消)放弃", "UtilityForm", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1); if (result == DialogResult.Yes) { bAppend = true; } if (result == DialogResult.No) { bAppend = false; } if (result == DialogResult.Cancel) { strError = "放弃处理..."; goto ERROR1; } } EnableControls(false); stop.OnStop += new StopEventHandler(this.DoStop); stop.Initial("正在转换文件格式 ..."); stop.BeginLoop(); try { using (TextReader reader = new StreamReader(this.textBox_worToIso_worFilename.Text, encoding)) using (Stream target = File.Open(dlg.FileName, FileMode.OpenOrCreate)) { if (bAppend == false) { target.SetLength(0); } else { target.Seek(0, SeekOrigin.End); } for (int i = 0; ; i++) { stop.SetMessage("正在转换 " + (i + 1).ToString()); Application.DoEvents(); // 出让界面控制权 if (stop != null && stop.State != 0) { strError = "用户中断"; goto ERROR1; } string strMARC = ""; // return: // -2 MARC格式错 // -1 出错 // 0 正确 // 1 结束(当前返回的记录有效) // 2 结束(当前返回的记录无效) nRet = MarcUtil.ReadWorksheetRecord(reader, out strMARC, out strError); if (nRet == -1 || nRet == -2) { goto ERROR1; } if (nRet == 2) { break; } if (dlg.Mode880 == true && dlg.MarcSyntax == "usmarc") { MarcRecord record = new MarcRecord(strMARC); MarcQuery.To880(record); strMARC = record.Text; } byte[] baTarget = null; // 将MARC机内格式转换为ISO2709格式 // parameters: // strSourceMARC [in]机内格式MARC记录。 // strMarcSyntax [in]为"unimarc"或"usmarc" // targetEncoding [in]输出ISO2709的编码方式。为UTF8、codepage-936等等 // baResult [out]输出的ISO2709记录。编码方式受targetEncoding参数控制。注意,缓冲区末尾不包含0字符。 // return: // -1 出错 // 0 成功 nRet = MarcUtil.CvtJineiToISO2709( strMARC, dlg.MarcSyntax, targetEncoding, out baTarget, out strError); if (nRet == -1) { goto ERROR1; } target.Write(baTarget, 0, baTarget.Length); if (dlg.CrLf == true) { byte[] baCrLf = targetEncoding.GetBytes("\r\n"); target.Write(baCrLf, 0, baCrLf.Length); } } } } catch (Exception ex) { strError = "转换过程出现异常: " + ex.Message; goto ERROR1; } finally { stop.EndLoop(); stop.OnStop -= new StopEventHandler(this.DoStop); stop.Initial(""); EnableControls(true); } MessageBox.Show(this, "转换完成。记录已写入文件 " + dlg.FileName + " 中"); return; ERROR1: MessageBox.Show(this, strError); }
async void menu_newServer(object sender, System.EventArgs e) { List <string> errors = new List <string>(); int nActiveLine = -1; if (listView1.SelectedIndices.Count != 0) { nActiveLine = listView1.SelectedIndices[0]; } ServerDlg dlg = new ServerDlg(); // GuiUtil.AutoSetDefaultFont(dlg); GuiUtil.SetControlFont(dlg, this.Font); dlg.Text = "新增服务器地址和默认帐户"; if (nActiveLine == -1) { // 无参考事项情形的新增 #if NO dlg.ServerName = "社科院联合编目中心"; dlg.ServerUrl = "http://ssucs.org/dp2library"; dlg.UserName = "******"; #endif dlg.ServerName = "单机版服务器"; dlg.ServerUrl = "net.pipe://localhost/dp2library/xe"; dlg.UserName = "******"; } else { dp2Server server = (dp2Server)Servers[nActiveLine]; dlg.ServerName = server.Name; dlg.Password = server.DefaultPassword; dlg.ServerUrl = server.Url; dlg.UserName = server.DefaultUserName; dlg.SavePassword = server.SavePassword; } dlg.ShowDialog(this); if (dlg.DialogResult != DialogResult.OK) { return; } List <string> urls = new List <string>(); if (dlg.ServerUrl.IndexOf("\r\n") == -1) { urls.Add(dlg.ServerUrl); } else { urls = StringUtil.SplitList(dlg.ServerUrl.Replace("\r\n", "\r"), '\r'); StringUtil.RemoveBlank(ref urls); StringUtil.RemoveDupNoSort(ref urls); } using (MessageBar bar = MessageBar.Create(this, "正在添加服务器节点")) { // 允许一次创建多个服务器节点 int i = 0; foreach (string url in urls) { // 获得服务器 UID string uid = ""; bar.SetMessageText($"正在获取服务器 {url} 的 UID ..."); var result = await ServerDlg.GetServerUID(url); if (result.Value == -1) { errors.Add($"针对服务器 {url} 获取服务器 UID 时出错: {result.ErrorInfo}"); } else { uid = result.ErrorCode; } // 对 UID 进行查重 if (string.IsNullOrEmpty(uid) == false) { var dup_list = Servers.FindServerByUID(uid); if (dup_list.Count > 0) { errors.Add($"拟添加的新服务器节点 '{url}' 因其 UID '{uid}' 和已有的服务器节点({dup_list[0].Name})重复,无法添加"); continue; } } dp2Server server = Servers.NewServer(nActiveLine); // TODO: 建议用 public 账户尝试从 dp2library 服务器获得服务器名字符串 string name = dlg.ServerName; if (i > 0) { name = dlg.ServerName + (i + 1).ToString(); } server.Name = name; server.DefaultPassword = dlg.Password; server.Url = url; server.DefaultUserName = dlg.UserName; server.SavePassword = dlg.SavePassword; server.UID = uid; i++; } } Servers.Changed = true; FillList(); // 选择一行 // parameters: // nIndex 要设置选择标记的行。如果==-1,表示清除全部选择标记但不选择。 // bMoveFocus 是否同时移动focus标志到所选择行 ListViewUtil.SelectLine(listView1, Servers.Count - 1, true); listView1.EnsureVisible(Servers.Count - 1); m_bChanged = true; if (errors.Count > 0) { MessageDlg.Show(this, $"新增服务器节点时出错:\r\n{StringUtil.MakePathList(errors, "\r\n")}", "ServersDlg"); } }
async void menu_modifyServer(object sender, System.EventArgs e) { string strError; if (listView1.SelectedIndices.Count == 0) { strError = "尚未选择要修改的事项 ..."; goto ERROR1; } int nActiveLine = listView1.SelectedIndices[0]; // ListViewItem item = listView1.Items[nActiveLine]; ServerDlg dlg = new ServerDlg(); // GuiUtil.AutoSetDefaultFont(dlg); GuiUtil.SetControlFont(dlg, this.Font); dlg.Text = "修改缺省帐户参数"; dlg.ServerName = ((dp2Server)Servers[nActiveLine]).Name; dlg.Password = ((dp2Server)Servers[nActiveLine]).DefaultPassword; dlg.ServerUrl = ((dp2Server)Servers[nActiveLine]).Url; dlg.UserName = ((dp2Server)Servers[nActiveLine]).DefaultUserName; dlg.SavePassword = ((dp2Server)Servers[nActiveLine]).SavePassword; dlg.ShowDialog(this); if (dlg.DialogResult != DialogResult.OK) { return; } dp2Server server = ((dp2Server)Servers[nActiveLine]); server.Name = dlg.ServerName; server.DefaultPassword = dlg.Password; server.Url = dlg.ServerUrl; server.DefaultUserName = dlg.UserName; server.SavePassword = dlg.SavePassword; // 获取 UID using (MessageBar bar = MessageBar.Create(this, "获取 UID", $"正在获取服务器 {server.Url} 的 UID ...")) { var result = await ServerDlg.GetServerUID(server.Url); if (result.Value == -1) { strError = result.ErrorInfo; goto ERROR1; } server.UID = result.ErrorCode; } Servers.Changed = true; FillList(); // 选择一行 // parameters: // nIndex 要设置选择标记的行。如果==-1,表示清除全部选择标记但不选择。 // bMoveFocus 是否同时移动focus标志到所选择行 ListViewUtil.SelectLine(listView1, nActiveLine, true); m_bChanged = true; return; ERROR1: MessageBox.Show(this, strError); }
void menuItem_property_Click(object sender, EventArgs e) { TreeNode node = this.SelectedNode; if (node == null) { MessageBox.Show(this, "尚未选择节点"); return; } if (IsServer(node) == true) { OaiServerPropertyForm dlg = new OaiServerPropertyForm(); GuiUtil.SetControlFont(dlg, this.Font); dlg.XmlNode = TreeNodeInfo.GetXmlNode(node); dlg.StartPosition = FormStartPosition.CenterScreen; dlg.ShowDialog(this); if (dlg.DialogResult == DialogResult.OK) { this.Changed = true; node.Text = dlg.ServerName; TreeNodeInfo info = (TreeNodeInfo)node.Tag; info.Name = dlg.ServerName; /* * // 显示下面的数据库节点 * RefreshDatabaseNames(node); * node.Expand(); * */ if (this.OnServerChanged != null) { ServerChangedEventArgs e1 = new ServerChangedEventArgs(); e1.TreeNode = node; this.OnServerChanged(this, e1); } if (node.ImageIndex == TYPE_SERVER_ONLINE) { MessageBox.Show(this, "注意:(当前OAI服务器处于已联机状态。) 对OAI服务器属性参数的修改,要在下一次连接中才能生效。\r\n\r\n为使参数立即生效,可断开连接,然后重新进行检索操作。"); } } } if (node.ImageIndex == TYPE_DIR) { ZDirPopertyForm dlg = new ZDirPopertyForm(); GuiUtil.SetControlFont(dlg, this.Font); dlg.XmlNode = TreeNodeInfo.GetXmlNode(node); dlg.StartPosition = FormStartPosition.CenterScreen; dlg.ShowDialog(this); if (dlg.DialogResult == DialogResult.OK) { this.Changed = true; node.Text = dlg.DirName; TreeNodeInfo info = (TreeNodeInfo)node.Tag; info.Name = dlg.DirName; } } }
void menu_newServer(object sender, System.EventArgs e) { int nActiveLine = -1; if (listView1.SelectedIndices.Count != 0) { nActiveLine = listView1.SelectedIndices[0]; } ServerDlg dlg = new ServerDlg(); // GuiUtil.AutoSetDefaultFont(dlg); GuiUtil.SetControlFont(dlg, this.Font); dlg.Text = "新增服务器地址和缺省帐户"; if (nActiveLine == -1) { // 无参考事项情形的新增 dlg.ServerName = "社科院联合编目中心"; dlg.ServerUrl = "http://ssucs.org/dp2library"; dlg.UserName = "******"; } else { dlg.ServerName = ((dp2Server)Servers[nActiveLine]).Name; dlg.Password = ((dp2Server)Servers[nActiveLine]).DefaultPassword; dlg.ServerUrl = ((dp2Server)Servers[nActiveLine]).Url; dlg.UserName = ((dp2Server)Servers[nActiveLine]).DefaultUserName; dlg.SavePassword = ((dp2Server)Servers[nActiveLine]).SavePassword; } dlg.ShowDialog(this); if (dlg.DialogResult != DialogResult.OK) { return; } dp2Server server = Servers.NewServer(nActiveLine); server.Name = dlg.ServerName; server.DefaultPassword = dlg.Password; server.Url = dlg.ServerUrl; server.DefaultUserName = dlg.UserName; server.SavePassword = dlg.SavePassword; Servers.Changed = true; FillList(); // 选择一行 // parameters: // nIndex 要设置选择标记的行。如果==-1,表示清除全部选择标记但不选择。 // bMoveFocus 是否同时移动focus标志到所选择行 ListViewUtil.SelectLine(listView1, Servers.Count - 1, true); m_bChanged = true; }
void channelArray_AskAccountInfo(object sender, AskDtlpAccountInfoEventArgs e) { e.Owner = null; e.UserName = ""; e.Password = ""; LoginDlg dlg = new LoginDlg(); GuiUtil.SetControlFont(dlg, this.Font); AccountItem item = (AccountItem)AccountTable[e.Path]; if (item == null) { item = new AccountItem(); AccountTable.Add(e.Path, item); // 从配置文件中得到缺省账户 item.UserName = MainForm.AppInfo.GetString( "preference", "defaultUserName", "public"); item.Password = MainForm.AppInfo.GetString( "preference", "defaultPassword", ""); } dlg.textBox_serverAddr.Text = e.Path; dlg.textBox_userName.Text = item.UserName; dlg.textBox_password.Text = item.Password; // 先登录一次再说 { byte[] baResult = null; int nRet = e.Channel.API_ChDir(dlg.textBox_userName.Text, dlg.textBox_password.Text, e.Path, out baResult); // 登录成功 if (nRet > 0) { e.Result = 2; return; } } dlg.StartPosition = FormStartPosition.CenterScreen; dlg.ShowDialog(this); if (dlg.DialogResult == DialogResult.OK) { item.UserName = dlg.textBox_userName.Text; item.Password = dlg.textBox_password.Text; e.UserName = dlg.textBox_userName.Text; e.Password = dlg.textBox_password.Text; e.Owner = this; e.Result = 1; return; } e.Result = 0; return; }