/// <summary> /// 设置界面的项目信息 /// </summary> /// <param name="itemID">项目的ID</param> private void setInfo(string itemID) { if (itemID != null) { ZIKU.DataBase.Item item = ZIKU.DataBase.Item.getInstance(itemID); if (item != null) { introduceBox.Text = item.intro + "\r\n\r\n" + item.introduce; iCategory.Text = ""; foreach (string cID in item.C_ID.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries)) { ZIKU.DataBase.Category category = ZIKU.DataBase.Category.getInstance(cID); if (category != null) { iCategory.Text += category.name + "\r\n"; } } } } else { introduceBox.Text = ""; iCategory.Text = ""; } }
private void itemBox_DragFileDrop(object obj, string[] DragFileList) { ItemBox ib = obj as ItemBox; DragFilesList = DragFileList; if (DragFileList.Length > 0) { item_SeForm = ZIKU.DataBase.Item.getInstance(ib.Tag.ToString()); if (item_SeForm != null) { SetItemIntroduce(ib.Tag.ToString()); ToolStripMenuItem itemName_Menu = new ToolStripMenuItem("项目的名称"); ToolStripMenuItem copyFiles_Menu = new ToolStripMenuItem("打开“项目资料目录”"); ToolStripMenuItem moveFiles_Menu = new ToolStripMenuItem("打开“项目资料目录”"); copyFiles_Menu.Click += CopyFiles_Menu_Click; moveFiles_Menu.Click += MoveFiles_Menu_Click; ContextMenuStrip cm = new ContextMenuStrip(); itemName_Menu.Enabled = false; itemName_Menu.Text = item_SeForm.name; cm.Items.Add(itemName_Menu); cm.Items.Add("-"); cm.Items.Add(copyFiles_Menu); cm.Items.Add(moveFiles_Menu); if (item_SeForm.iPathExpand != "") { if (Tools.checkFolderCreation(item_SeForm.iPathExpand)) { copyFiles_Menu.Enabled = true; copyFiles_Menu.Text = "复制所有文件到“项目资料目录”"; moveFiles_Menu.Enabled = true; moveFiles_Menu.Text = "移动所有文件到“项目资料目录”"; } else { copyFiles_Menu.Enabled = false; copyFiles_Menu.Text = "自定义“项目资料目录”无效"; moveFiles_Menu.Visible = false; } } else { if (Tools.checkFolderCreation(ZIKU.DataBase.Config.Instance.dataFolderExpand)) { copyFiles_Menu.Enabled = true; copyFiles_Menu.Text = "复制所有文件到“项目资料目录”"; moveFiles_Menu.Enabled = true; moveFiles_Menu.Text = "移动所有文件到“项目资料目录”"; } else { copyFiles_Menu.Enabled = false; copyFiles_Menu.Text = "“项目资料总目录”无效,请检查数据库设置"; moveFiles_Menu.Visible = false; } } cm.Show(MousePosition); } } }
public override void editeItem_succeed(string itemID) { ZIKU.DataBase.Item item = ZIKU.DataBase.Item.getInstance(itemID); if (item != null) { manage.itemList.SelectedItems[0].SubItems[2].Text = item.name; manage.setInfo(itemID); } }
public override bool totalRemoveItem_before(string itemID) { ZIKU.DataBase.Item item = ZIKU.DataBase.Item.getInstance(itemID); if (MessageBox.Show("确定彻底移除:“" + item.name + "”?\r\n\r\n注意,这会移除所有关于该项目的信息!\r\n不会删除任何实际的文件", "彻底移除项目", MessageBoxButtons.OKCancel, MessageBoxIcon.None, MessageBoxDefaultButton.Button2) == DialogResult.OK) { return(true); } else { return(false); } }
/// <summary> /// 项目管理 /// </summary> /// <param name="itemID">窗口管理关联项目的项目ID,null则是关联所有的项目</param> private Manage(string itemID) { InitializeComponent(); this.Icon = Properties.Resources.ICON; manageItem = ZIKU.DataBase.Item.getInstance(itemID); if (manageItem != null) { CI_IDbuff = manageItem.CI_ID; refSelList(CI_IDbuff); } addItemsToList(SQLite.ExecuteDataTable("SELECT * FROM Item", ZIKU.DataBase.Config.Instance.Path)); itemList.ContextMenuStrip = new ManageItemMenu(this); }
private void itemList_MouseDoubleClick(object sender, MouseEventArgs e) { ZIKU.DataBase.Item item = ZIKU.DataBase.Item.getInstance(itemList.SelectedItems[0].Tag.ToString()); myZiku.run(item); }
/// <summary> /// 初始化,并显示窗口 /// </summary> /// <param name="filePath"></param> /// <param name="Dialog">是否采用模式窗口</param> private void initAndShow(string filePath = null, bool Dialog = true) { if (idORnull != null) { ZIKU.DataBase.Item item = ZIKU.DataBase.Item.getInstance(idORnull); nameBox.Text = item.name; valueBox.text = item.valueShow; argumentsBox.text = item.argumentsShow; versionBox.Text = item.version; introBox.Text = item.intro; introduceBox.Text = item.introduce; // buff_icon = item.icon; item_Hide_main.Checked = item.isHideMain; item_Hide_search.Checked = item.isHideSearch; iPath_BOX.text = item.iPathShow; searchAliasBox.Text = item.searchAlias; workingdirBox.text = item.workingDirectoryShow; homePageBox.Text = item.homePage; onAdminBox.Checked = item.onAdmin; iv_x64_BOX.text = item.IV_x64Show; iv_x86_BOX.text = item.IV_x86Show; oleUID = item.UID.ToUpper(); UIDBox.Text = item.UID; ItemIconBox.Image = myZiku.IconOrFile(item.icon, item.valueExpand, idORnull); iconBox.text = item.iconShow; refreshCategoryListBox(item.C_ID); okButton.Text = "保存"; Text = "编辑项目:当前项目的UID是:" + item.UID; Tip.SetToolTip(value_Text, "%i-" + item.UID + "%"); Tip.SetToolTip(x86Value_Text, "%i32-" + item.UID + "%"); Tip.SetToolTip(x64Value_Text, "%i64-" + item.UID + "%"); Tip.SetToolTip(arguments_Text, "%ia-" + item.UID + "%"); Tip.SetToolTip(iPath_Text, "%ip-" + item.UID + "%\r\n%id-" + item.UID + "%"); Tip.SetToolTip(workingDir_Text, "%iw-" + item.UID + "%"); } else { Text = "新建项目"; UIDBox.Text = ""; if (filePath != null) { //设置项目信息 FileInfoBox.ItemFileInfo re = new FileInfoBox.ItemFileInfo(filePath); nameBox.Text = re.name; versionBox.Text = re.version; valueBox.text = re.value; argumentsBox.text = re.arguments; workingdirBox.text = re.workdir; introBox.Text = re.induce; iconBox.text = re.icon; ItemIconBox.Image = myZiku.IconOrFile(re.icon, myZiku.exPand(re.value, ZIKU.DataBase.Config.Instance.Path), null); } refreshCategoryListBox(MainForm.Instance.category_Main.id); } Tools.SetForegroundWindow(this.Handle); if (Dialog) { this.ShowDialog();//这里不要用 ShowDialog ,模式窗口会导致拖拽进入的窗口冻结 } else { this.Show(); } }
//保存 private void SaveButton_Click(object sender, EventArgs e) { //判断所有信息是否填写正确 //判断UID是否正确 if (!checkUID()) { MessageBox.Show("“UID”与现有项目重复或不符合要求:\r\n\r\n支持:中文、英文、数字、_", "“UID”填写不正确"); return; } //名称 if (nameBox.Text.Replace(" ", "") == "") { MessageBox.Show("名称不能为空", "名称为空"); return; } //判断是否重名 DataTable dt = OLEREO.Library.SQLite.ExecuteDataTable("SELECT * FROM Item WHERE name = '" + nameBox.Text.Replace("'", "''") + "' COLLATE NOCASE;", ZIKU.DataBase.Config.Instance.Path); if (dt.Rows.Count > 0) //具有同名的项目 { if (dt.Rows.Count == 1) //同名只有一个,判断是不是和当前项目同一个 { if (dt.Rows[0]["id"].ToString() != idORnull) //不是同一个,说明这次修改成了一个现有的 { MessageBox.Show("有一个重名的项目,请改变名称,又或者编辑已有的项目"); return; } } else { //具有一个以上的同名项目,绝对重名了。 MessageBox.Show("有一个重名的项目,请改变名称,又或者编辑已有的项目"); return; } } //判断项目目录是否符合命名 if (!Tools.isMeetDirPath(iPath_BOX.text)) { MessageBox.Show("“项目目录”不符合命名要求,需要以X:\\开头,且路径中不能包含以下字符:\r\n\r\n/:*?\"<>|"); return; } //判断主页填写是否正确 if (homePageBox.Text.Replace(" ", "") != "") { bool https = homePageBox.Text.ToUpper().StartsWith(@"HTTPS://"); bool http = homePageBox.Text.ToUpper().StartsWith(@"HTTP://"); bool www = homePageBox.Text.ToUpper().StartsWith(@"WWW."); if (!(https || http || www)) { MessageBox.Show("主页要以下其中之一开头:\r\n\r\nhttps://\r\nhttp://\r\nwww."); return; } } else { homePageBox.Text = ""; } //dataFolderName 过滤掉 name 中非法字符 string newDataFolderName = Tools.filterFileName(nameBox.Text); if (iPath_BOX.text.Replace(" ", "") == "") { iPath_BOX.text = ""; } //名称改变之后,要尝试修改现有的目录 if (idORnull != null) //项目id不为空,表示这是编辑 { ZIKU.DataBase.Item em = ZIKU.DataBase.Item.getInstance(idORnull); if ((em.dataFolderName != newDataFolderName) && iPath_BOX.text == "") { string oldFullFolder = ZIKU.DataBase.Config.Instance.dataFolderExpand + "\\" + em.dataFolderName; //完整的旧目录名称 //if (iPath_BOX.text != "") // oldFullFolder = myZiku.exPand(myZiku.variableToSave(iPath_BOX.text, ZIKU.DataBase.Config.Instance.Path), ZIKU.DataBase.Config.Instance.Path);// + em.dataFolderName; //else // oldFullFolder = ZIKU.DataBase.Config.Instance.dataFolderExpand + "\\" + em.dataFolderName; if (/*(oldFullFolder.Replace(" ", "") != "") && 没有必要判断是否空格,编辑的项目总会有资料目录名称*/ System.IO.Directory.Exists(oldFullFolder)) { try { Tools.MyComputer.FileSystem.RenameDirectory(oldFullFolder, newDataFolderName); //尝试将旧的目录名称修改成新的 } catch { newDataFolderName = em.dataFolderName; //如果失败了旧继续沿用旧的资料目录名称 } } } } //为新的项目获取一个ID if ((idORnull == null)) { idORnull = SQLite.ExecuteNonQuery("INSERT INTO Item (name) values('新的项目')", ZIKU.DataBase.Config.Instance.Path).ToString(); } if (UIDBox.Text.Replace(" ", "") == "") { UIDBox.Text = idORnull; } //获取所有分类 string allSelectC_ID = ""; TreeNode tnn = Tools.GetNode(categoryBox.Nodes); foreach (TreeNode t in tnn.Nodes) { if (t.Checked) { allSelectC_ID += t.Tag.ToString() + ";"; } } ZIKU.DataBase.Item oleItemInfo = ZIKU.DataBase.Item.getInstance(idORnull); //更新分类选择 string[] newCID = Tools.SearchDifferent(oleItemInfo.C_ID, allSelectC_ID); foreach (string addCid in newCID[0].Split(new char[] { ';' }, System.StringSplitOptions.RemoveEmptyEntries)) { ZIKU.DataBase.Category.addItem(addCid, idORnull); } foreach (string delCID in newCID[1].Split(new char[] { ';' }, System.StringSplitOptions.RemoveEmptyEntries)) { ZIKU.DataBase.Category.removeItem(delCID, idORnull); } //判断新旧的图标值是否一样 if (iconBox.text.Replace(" ", "") == "") { iconBox.text = ""; } if (oleItemInfo.icon != iconBox.text) { System.IO.File.Delete(ZIKU.DataBase.Config.Instance.Path + ".cache\\icon\\" + idORnull + ".png"); } //先把 UID 写入到数据库中,要不后面的将值转换为save时,无法识别当前项目的 UID SQLite.ExecuteNonQuery("UPDATE Item SET UID = '" + UIDBox.Text + "' WHERE id = " + idORnull, ZIKU.DataBase.Config.Instance.Path); SQLite.ExecuteNonQuery("UPDATE Item SET name = '" + nameBox.Text.Replace("'", "''") + "',value = '" + myZiku.variableToSave(valueBox.text, ZIKU.DataBase.Config.Instance.Path).Replace("'", "''") + "',arguments = '" + myZiku.variableToSave(argumentsBox.text, ZIKU.DataBase.Config.Instance.Path).Replace("'", "''") + "',version = '" + versionBox.Text.Replace("'", "''") + "',intro = '" + introBox.Text.Replace("'", "''") + "',introduce = '" + introduceBox.Text.Replace("'", "''") + "',C_ID = '" + allSelectC_ID + "',icon = '" + myZiku.variableToSave(iconBox.text, ZIKU.DataBase.Config.Instance.Path).Replace("'", "''") + "',hideMain = '" + item_Hide_main.Checked.ToString().ToUpper() + "',hideSearch = '" + item_Hide_search.Checked.ToString().ToUpper() + "',iPath = '" + myZiku.variableToSave(iPath_BOX.text, ZIKU.DataBase.Config.Instance.Path).Replace("'", "''") + "',searchAlias = '" + searchAliasBox.Text.Replace("'", "''") + "',nameF = '" + PinYinConverter.GetFirst(nameBox.Text).Replace("'", "''") + "',workingDirectory = '" + myZiku.variableToSave(workingdirBox.text, ZIKU.DataBase.Config.Instance.Path).Replace("'", "''") + "',homePage = '" + homePageBox.Text.Replace("'", "''") + "',dataFolderName = '" + newDataFolderName.Replace("'", "''") + "',onAdmin = '" + onAdminBox.Checked.ToString().ToUpper() + "',IV_x86 = '" + myZiku.variableToSave(iv_x86_BOX.text, ZIKU.DataBase.Config.Instance.Path).Replace("'", "''") + "',IV_x64 = '" + myZiku.variableToSave(iv_x64_BOX.text, ZIKU.DataBase.Config.Instance.Path).Replace("'", "''") + "' WHERE id = " + idORnull, ZIKU.DataBase.Config.Instance.Path); this.Close(); }
/// <summary> /// 设置窗口上的项目信息 /// </summary> /// <param name="id">项目的ID</param> private void SetItemIntroduce(string id) { item_SeForm = ZIKU.DataBase.Item.getInstance(id); ItemIntroduce.Text = item_SeForm.introduce; title_Label.Text = item_SeForm.name; }