Esempio n. 1
0
 //https://stackoverflow.com/questions/14431936/how-to-force-datagridviewcell-to-end-edit-when-row-header-is-clicked/14498870
 private void XMLView_MouseClick(object sender, MouseEventArgs e)
 {
     if (XMLView.HitTest(e.X, e.Y).Type == DataGridViewHitTestType.RowHeader)
     {
         XMLView.EditMode = DataGridViewEditMode.EditOnKeystrokeOrF2;
         XMLView.EndEdit();
     }
     else
     {
         XMLView.EditMode = DataGridViewEditMode.EditOnEnter;
     }
 }
Esempio n. 2
0
    private void SaveXML(bool noReload = false)
    {
        XMLView.EndEdit();

        //https://stackoverflow.com/questions/37145086/datagridview-remove-empty-rows-button
        for (int i = XMLView.Rows.Count - 1; i > -1; i--)
        {
            DataGridViewRow row = XMLView.Rows[i];
            if (!row.IsNewRow && row.Cells[0].Value == null)
            {
                XMLView.Rows.RemoveAt(i);
            }
        }

        List <Provider>  providerList  = new List <Provider>();
        List <PartColor> partColorList = new List <PartColor>();

        foreach (DataGridViewRow data in XMLView.Rows)
        {
            if (data.IsNewRow)
            {
                continue;
            }

            switch (ListType)
            {
            case XMLContentType.ContentProviders:
                Provider pro = new Provider();
                pro.Name = data.Cells[0].Value.ToString();
                pro.URL  = data.Cells[1].Value.ToString();
                pro.Icon = data.Cells[2].Value.ToString();
                providerList.Add(pro);
                break;

            case XMLContentType.PartColors:
                PartColor pc = new PartColor();
                pc.ColorRawName = data.Cells[0].Value.ToString();
                pc.ColorID      = Convert.ToInt32(data.Cells[1].Value);
                pc.ColorRGB     = data.Cells[2].Value.ToString();
                partColorList.Add(pc);
                break;

            default:
                break;
            }
        }

        //https://stackoverflow.com/questions/2129414/how-to-insert-xml-comments-in-xml-serialization
        switch (ListType)
        {
        case XMLContentType.ContentProviders:
            ContentProviders providers = new ContentProviders();
            providers.Providers = providerList.ToArray();

            XmlSerializer ser = new XmlSerializer(typeof(ContentProviders));

            using (FileStream fs = new FileStream(GlobalPaths.ConfigDir + "\\" + GlobalPaths.ContentProviderXMLName, FileMode.Create))
            {
                XmlWriter writer = XmlWriter.Create(fs, new XmlWriterSettings {
                    Indent = true
                });
                writer.WriteStartDocument();
                writer.WriteComment(GenerateComment("content providers"));
                ser.Serialize(writer, providers);
                writer.WriteEndDocument();
                writer.Flush();
            }
            break;

        case XMLContentType.PartColors:
            PartColors partColors = new PartColors();
            partColors.ColorList = partColorList.ToArray();

            XmlSerializer ser2 = new XmlSerializer(typeof(PartColors));

            using (FileStream fs = new FileStream(GlobalPaths.ConfigDir + "\\" + GlobalPaths.PartColorXMLName, FileMode.Create))
            {
                XmlWriter writer = XmlWriter.Create(fs, new XmlWriterSettings {
                    Indent = true
                });
                writer.WriteStartDocument();
                writer.WriteComment(GenerateComment("part colors"));
                ser2.Serialize(writer, partColors);
                writer.WriteEndDocument();
                writer.Flush();
            }
            break;

        default:
            break;
        }

        providerList.Clear();
        partColorList.Clear();

        string fileName = "";

        switch (ListType)
        {
        case XMLContentType.ContentProviders:
            fileName = GlobalPaths.ContentProviderXMLName;
            break;

        case XMLContentType.PartColors:
            fileName = GlobalPaths.PartColorXMLName;
            break;

        default:
            break;
        }

        if (!noReload)
        {
            MessageBox.Show(fileName + " has been saved! The list will now reload.", "XML Content Editor - File Saved", MessageBoxButtons.OK, MessageBoxIcon.Information);
            LoadXML(ListType);
        }
        else
        {
            MessageBox.Show(fileName + " has been saved!", "XML Content Editor - File Saved", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
    }