Exemple #1
0
 /// <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    = "";
     }
 }
Exemple #2
0
        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);
                }
            }
        }
Exemple #3
0
 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);
     }
 }
Exemple #4
0
 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);
     }
 }
Exemple #5
0
 /// <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);
 }
Exemple #6
0
 private void itemList_MouseDoubleClick(object sender, MouseEventArgs e)
 {
     ZIKU.DataBase.Item item = ZIKU.DataBase.Item.getInstance(itemList.SelectedItems[0].Tag.ToString());
     myZiku.run(item);
 }
Exemple #7
0
        /// <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();
            }
        }
Exemple #8
0
        //保存
        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();
        }
Exemple #9
0
 /// <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;
 }