예제 #1
0
 void B_Save_Click(object sender, EventArgs e)
 {
     for (int i = 0; i < _modifiedItems.Count; i++)
     {
         CPacketStruct item = _modifiedItems.Values.ElementAt(i);
         String        name = _modifiedItems.Keys.ElementAt(i);
         StructXMLParser.ItemsToXml(item.Items, _packetDir + "\\" + name + "\\Msg.xml", item.Infos);
     }
     _modifiedItems.Clear();
     P_Table.RowStyles[3] = new RowStyle(System.Windows.Forms.SizeType.Absolute, 0);
     P_Table.RowStyles[3] = new RowStyle(System.Windows.Forms.SizeType.Absolute, 25);
 }
예제 #2
0
        public void SaveFile()
        {
            //File.WriteAllText(_saveFile, T_Msg.Text);
            _ns.NativeText = T_Msg.Text;//.setNativeText(ss);
            //_ns.Items =
            StructXMLParser.CodeToItems(T_Msg.Text, _ns);

            if (_ns.IsDynamicPacket == false)
            {
                _ns.MakePacket(_swapWhenMakePacket);
            }
            CStructInfo info = new CStructInfo(T_Comment.Text, DateTime.Now);

            StructXMLParser.ItemsToXml(_ns.Items, _xmlFile, info);
        }
예제 #3
0
        public void AddNewItem(CPacketStruct parserObj = null, String name = null)
        {
            #region 기존에 같은 이름이 있는지 검사후 있으면 이름 붙여줌.
            List <object> names = V_Data.GetAColumnData(0);
            name = (name == null)?"Untitled" : name;
            String newName = name;

            int count = 0;
            while (Directory.Exists(_packetDir + "\\" + (newName)) == true)
            {
                newName = name + (count++);
            }
            #endregion

            #region 새 디렉토리 만들고 Msg.txt파일 만들어 내용 넣어줌.
            String newDir = _packetDir + "\\" + newName;

            if (Directory.Exists(newDir) == false)
            {
                Directory.CreateDirectory(newDir);
            }


            if (parserObj == null)
            {
                parserObj = new CPacketStruct();
                DlgMsgMaker dlg = new DlgMsgMaker(parserObj, newDir + "\\Msg.txt", _endian == Endians.Big);

                DialogResult result = dlg.ShowDialog();
                if (result == DialogResult.Abort || result == DialogResult.Cancel)
                {
                    return;
                }
                //parserObj.Items =
                StructXMLParser.CodeToItems(parserObj.NativeText, parserObj);
                StructXMLParser.ItemsToXml(parserObj.Items, newDir + "\\Msg.xml", parserObj.Infos);
            }
            else
            {
                parserObj.MakeMsgText();
                CPacketStruct oldObj = parserObj;

                parserObj            = new CPacketStruct();
                parserObj.NativeText = oldObj.NativeText;
                //parserObj.Items =
                StructXMLParser.CodeToItems(oldObj.NativeText, parserObj);
                StructXMLParser.ItemsToXml(parserObj.Items, newDir + "\\Msg.xml", parserObj.Infos);
            }


            #endregion

            #region 표에 줄 삽입

            Dictionary <String, object> rels = new Dictionary <string, object>();

            parserObj.IsStringWithNullEnd = _isStringWithNullEnd;
            parserObj.Endian         = _endian;
            parserObj.StringEncoding = _strEncoding;

            String msgName = newName;
            bool   integrity;
            try
            {
                parserObj.MakePacket(_endian == Endians.Big);
                integrity = true;
            }
            catch (Exception e)
            {
                MessageBox.Show(msgName + ":" + e.Message);
                integrity = true;
            }
            rels["integrity"] = integrity;
            rels["parser"]    = parserObj;
            rels["msg"]       = parserObj.NativeText;

            EasyGridRow row = V_Data.AddARow(rels, new object[] {
                false,
                msgName,
                "edit",
                "send",
                "X",
                "",
            });
            if (integrity == false)
            {
                (row[(int)Titles.name] as EasyGridTextBoxCell).FontColor = Color.Red;
            }

            #endregion

            V_Data.RefreshList();
            saveNameList();
        }