Exemplo n.º 1
0
        private void recursiveCreateGvl(object dl, XElement el, List <string> nst)
        {
            Data nd = new Data();

            switch (el.Attribute("Type").Value)
            {
            case "structure":
                nd = new Data();
                DataSequence sd = new DataSequence();
                sd.initValue();
                nd.selectStructure(sd);
                if (dl is List <Data> )
                {
                    (dl as List <Data>).Add(nd);
                }
                else if (dl is Data)
                {
                    if ((dl as Data).isStructureSelected())
                    {
                        (dl as Data).Structure.Value.Add(nd);
                    }
                    else
                    {
                        Logger.getLogger().LogError("Error: Invalid parent data type !");
                    }
                }
                else
                {
                    Logger.getLogger().LogError("Error: Invalid parent data type !");
                }
                break;

            case "boolean":
                nd = new Data();
                nd.selectBoolean(el.Attribute("Value").Value == "True" ? true : false);
                //nd.ValueChanged += new EventHandler(_ValueChanged);

                if (el.Attribute("Desc") != null)
                {
                    nd.Description = el.Attribute("Desc").Value;
                }

                if (dl is List <Data> )
                {
                    (dl as List <Data>).Add(nd);
                }
                else if (dl is Data)
                {
                    if ((dl as Data).isStructureSelected())
                    {
                        (dl as Data).Structure.Value.Add(nd);
                    }
                    else
                    {
                        Logger.getLogger().LogError("Error: Invalid parent data type !");
                    }
                }
                else
                {
                    Logger.getLogger().LogError("Error: Invalid parent data type !");
                }
                break;

            case "integer":
                nd = new Data();
                nd.selectInteger(Convert.ToInt32(el.Attribute("Value").Value));
                //nd.ValueChanged += new EventHandler(_ValueChanged);

                if (el.Attribute("Desc") != null)
                {
                    nd.Description = el.Attribute("Desc").Value;
                }

                if (dl is List <Data> )
                {
                    (dl as List <Data>).Add(nd);
                }
                else if (dl is Data)
                {
                    if ((dl as Data).isStructureSelected())
                    {
                        (dl as Data).Structure.Value.Add(nd);
                    }
                    else
                    {
                        Logger.getLogger().LogError("Error: Invalid parent data type !");
                    }
                }
                else
                {
                    Logger.getLogger().LogError("Error: Invalid parent data type !");
                }
                break;

            /*
             * case "float":
             * nd = new Data();
             * nd.selectFloatingpoint(new FloatingPoint(new byte[] { 0 }));
             * nd.ValueChanged += new EventHandler(_ValueChanged);
             * if (dl is List<Data>)
             *  (dl as List<Data>).Add(nd);
             * else if (dl is Data)
             * {
             *  if ((dl as Data).isStructureSelected())
             *      (dl as Data).Structure.Value.Add(nd);
             *  else
             *      MessageBox.Show("Error: Invalid parent data type !");
             * }
             * else
             *  MessageBox.Show("Error: Invalid parent data type !");
             * break;
             */
            case "bit_string":
                nd = new Data();
                StringToDataConverter Converter = new StringToDataConverter();
                BitString             bs        = Converter.ConvertToBitstring(el.Attribute("Value").Value);
                if (bs != null)
                {
                    nd.selectBitstring(bs);
                }
                else
                {
                    nd.selectBitstring(new BitString(new byte[] { 0 }));
                    nd.Bitstring.TrailBitsCnt = 8;
                }

                if (el.Attribute("Desc") != null)
                {
                    nd.Description = el.Attribute("Desc").Value;
                }

                //nd.ValueChanged += new EventHandler(_ValueChanged);
                if (dl is List <Data> )
                {
                    (dl as List <Data>).Add(nd);
                }
                else if (dl is Data)
                {
                    if ((dl as Data).isStructureSelected())
                    {
                        (dl as Data).Structure.Value.Add(nd);
                    }
                    else
                    {
                        Logger.getLogger().LogError("Error: Invalid parent data type !");
                    }
                }
                else
                {
                    Logger.getLogger().LogError("Error: Invalid parent data type !");
                }
                break;

            default:
                if (!nst.Contains(el.Attribute("Type").Value))
                {
                    nst.Add(el.Attribute("Type").Value);
                }
                break;
            }

            if (el.HasElements)
            {
                foreach (XElement ndcn in el.Elements())
                {
                    recursiveCreateGvl(nd, ndcn, nst);
                }
            }
        }
Exemplo n.º 2
0
        private void recursiveCreateDataList(object dl, XElement el)
        {
            Data nd = new Data();

            switch (el.Attribute("Type").Value)
            {
            case "structure":
                nd = new Data();
                DataSequence sd = new DataSequence();
                sd.initValue();
                nd.selectStructure(sd);
                if (dl is List <Data> )
                {
                    (dl as List <Data>).Add(nd);
                }
                else if (dl is Data)
                {
                    if ((dl as Data).isStructureSelected())
                    {
                        (dl as Data).Structure.Value.Add(nd);
                    }
                    else
                    {
                        Logger.getLogger().LogError("Error: Invalid parent data type !");
                    }
                }
                else
                {
                    Logger.getLogger().LogError("Error: Invalid parent data type !");
                }
                break;

            case "boolean":
                nd = new Data();
                nd.selectBoolean(el.Attribute("Value").Value == "True" ? true : false);

                if (el.Attribute("Desc") != null)
                {
                    nd.Description = el.Attribute("Desc").Value;
                }

                if (dl is List <Data> )
                {
                    (dl as List <Data>).Add(nd);
                }
                else if (dl is Data)
                {
                    if ((dl as Data).isStructureSelected())
                    {
                        (dl as Data).Structure.Value.Add(nd);
                    }
                    else
                    {
                        Logger.getLogger().LogError("Error: Invalid parent data type !");
                    }
                }
                else
                {
                    Logger.getLogger().LogError("Error: Invalid parent data type !");
                }
                break;

            case "integer":
                nd = new Data();
                nd.selectInteger(Convert.ToInt32(el.Attribute("Value").Value));

                if (el.Attribute("Desc") != null)
                {
                    nd.Description = el.Attribute("Desc").Value;
                }

                if (dl is List <Data> )
                {
                    (dl as List <Data>).Add(nd);
                }
                else if (dl is Data)
                {
                    if ((dl as Data).isStructureSelected())
                    {
                        (dl as Data).Structure.Value.Add(nd);
                    }
                    else
                    {
                        Logger.getLogger().LogError("Error: Invalid parent data type !");
                    }
                }
                else
                {
                    Logger.getLogger().LogError("Error: Invalid parent data type !");
                }
                break;

            case "bit_string":
                nd = new Data();
                StringToDataConverter Converter = new StringToDataConverter();
                BitString             bs        = Converter.ConvertToBitstring(el.Attribute("Value").Value);

                if (el.Attribute("Desc") != null)
                {
                    nd.Description = el.Attribute("Desc").Value;
                }

                if (bs != null)
                {
                    nd.selectBitstring(bs);
                }
                else
                {
                    nd.selectBitstring(new BitString(new byte[] { 0 }));
                    nd.Bitstring.TrailBitsCnt = 8;
                }
                if (dl is List <Data> )
                {
                    (dl as List <Data>).Add(nd);
                }
                else if (dl is Data)
                {
                    if ((dl as Data).isStructureSelected())
                    {
                        (dl as Data).Structure.Value.Add(nd);
                    }
                    else
                    {
                        Logger.getLogger().LogError("Error: Invalid parent data type !");
                    }
                }
                else
                {
                    Logger.getLogger().LogError("Error: Invalid parent data type !");
                }
                break;

            default:
                break;
            }

            if (el.HasElements)
            {
                foreach (XElement ndcn in el.Elements())
                {
                    recursiveCreateDataList(nd, ndcn);
                }
            }
        }
Exemplo n.º 3
0
        void OnAddDataClick(object sender, EventArgs e)
        {
            switch ((sender as ToolStripItem).Text)
            {
            case "Add Structure":
                Data         nd = new Data();
                DataSequence sd = new DataSequence();
                sd.initValue();
                nd.selectStructure(sd);
                if ((sender as ToolStripItem).Tag is List <Data> )
                {
                    ((sender as ToolStripItem).Tag as List <Data>).Add(nd);
                }
                else if (((sender as ToolStripItem).Tag is NodeGData))
                {
                    if ((((sender as ToolStripItem).Tag as NodeGData).Tag is Data) && ((((sender as ToolStripItem).Tag as NodeGData).Tag as Data).isStructureSelected()))
                    {
                        (((sender as ToolStripItem).Tag as NodeGData).Tag as Data).Structure.Value.Add(nd);
                    }
                    else
                    {
                        MessageBox.Show("Error: Invalid parent data type !");
                    }
                }
                else
                {
                    MessageBox.Show("Error: Invalid parent data type !");
                }
                break;

            case "Add Boolean":
                nd = new Data();
                nd.selectBoolean(false);
                nd.ValueChanged += new EventHandler(_ValueChanged);
                if ((sender as ToolStripItem).Tag is List <Data> )
                {
                    ((sender as ToolStripItem).Tag as List <Data>).Add(nd);
                }
                else if (((sender as ToolStripItem).Tag is NodeGData))
                {
                    if ((((sender as ToolStripItem).Tag as NodeGData).Tag is Data) && ((((sender as ToolStripItem).Tag as NodeGData).Tag as Data).isStructureSelected()))
                    {
                        (((sender as ToolStripItem).Tag as NodeGData).Tag as Data).Structure.Value.Add(nd);
                    }
                    else
                    {
                        MessageBox.Show("Error: Invalid parent data type !");
                    }
                }
                else
                {
                    MessageBox.Show("Error: Invalid parent data type !");
                }
                break;

            case "Add Integer":
                nd = new Data();
                nd.selectInteger(0);
                nd.ValueChanged += new EventHandler(_ValueChanged);
                if ((sender as ToolStripItem).Tag is List <Data> )
                {
                    ((sender as ToolStripItem).Tag as List <Data>).Add(nd);
                }
                else if (((sender as ToolStripItem).Tag is NodeGData))
                {
                    if ((((sender as ToolStripItem).Tag as NodeGData).Tag is Data) && ((((sender as ToolStripItem).Tag as NodeGData).Tag as Data).isStructureSelected()))
                    {
                        (((sender as ToolStripItem).Tag as NodeGData).Tag as Data).Structure.Value.Add(nd);
                    }
                    else
                    {
                        MessageBox.Show("Error: Invalid parent data type !");
                    }
                }
                else
                {
                    MessageBox.Show("Error: Invalid parent data type !");
                }
                break;

            case "Add Float":
                nd = new Data();
                nd.selectFloatingpoint(new FloatingPoint(new byte[] { 0 }));
                nd.ValueChanged += new EventHandler(_ValueChanged);
                if ((sender as ToolStripItem).Tag is List <Data> )
                {
                    ((sender as ToolStripItem).Tag as List <Data>).Add(nd);
                }
                else if (((sender as ToolStripItem).Tag is NodeGData))
                {
                    if ((((sender as ToolStripItem).Tag as NodeGData).Tag is Data) && ((((sender as ToolStripItem).Tag as NodeGData).Tag as Data).isStructureSelected()))
                    {
                        (((sender as ToolStripItem).Tag as NodeGData).Tag as Data).Structure.Value.Add(nd);
                    }
                    else
                    {
                        MessageBox.Show("Error: Invalid parent data type !");
                    }
                }
                else
                {
                    MessageBox.Show("Error: Invalid parent data type !");
                }
                break;

            case "Add Bitstring":
                nd = new Data();
                nd.selectBitstring(new BitString());
                nd.ValueChanged += new EventHandler(_ValueChanged);
                if ((sender as ToolStripItem).Tag is List <Data> )
                {
                    ((sender as ToolStripItem).Tag as List <Data>).Add(nd);
                }
                else if (((sender as ToolStripItem).Tag is NodeGData))
                {
                    if ((((sender as ToolStripItem).Tag as NodeGData).Tag is Data) && ((((sender as ToolStripItem).Tag as NodeGData).Tag as Data).isStructureSelected()))
                    {
                        (((sender as ToolStripItem).Tag as NodeGData).Tag as Data).Structure.Value.Add(nd);
                    }
                    else
                    {
                        MessageBox.Show("Error: Invalid parent data type !");
                    }
                }
                else
                {
                    MessageBox.Show("Error: Invalid parent data type !");
                }
                break;

            case "Delete":

                if (((sender as ToolStripItem).Tag is NodeGData))
                {
                    listViewGoose_Clear();

                    if ((((sender as ToolStripItem).Tag as NodeGData).Tag is Data))
                    {
                        (((sender as ToolStripItem).Tag as NodeGData).Tag as Data).ValueChanged -= new EventHandler(_ValueChanged);
                        _dataList.Remove((((sender as ToolStripItem).Tag as NodeGData).Tag as Data));
                    }
                }
                break;

            default:
                break;
            }

            updateTree();
        }