WebStyleGrid.cs 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. using System;
  2. using System.IO;
  3. using Comal.Classes;
  4. using InABox.Core;
  5. using InABox.DynamicGrid;
  6. using InABox.WPF;
  7. using ScriptEditor = InABox.DynamicGrid.ScriptEditor;
  8. namespace PRSServer.Forms.WebStyles
  9. {
  10. public class WebStyleGrid : DynamicDataGrid<WebStyle>
  11. {
  12. public WebStyleGrid()
  13. {
  14. Options.AddRange(DynamicGridOption.AddRows, DynamicGridOption.EditRows, DynamicGridOption.DeleteRows);
  15. ActionColumns.Add(new DynamicActionColumn(Properties.Resources.css.AsBitmapImage(), EditStyleAction));
  16. OnAfterSave += (sender, items) =>
  17. {
  18. foreach (var style in items) SaveToLocalFolder(style);
  19. };
  20. OnDoubleClick += (sender, args) =>
  21. {
  22. if (SelectedRows.Length == 1) EditWebStyle(SelectedRows[0]);
  23. args.Handled = true;
  24. };
  25. }
  26. private bool EditStyleAction(CoreRow arg)
  27. {
  28. if (arg != null) EditWebStyle(arg);
  29. return false;
  30. }
  31. private static void SaveToLocalFolder(WebStyle style)
  32. {
  33. if (CoreUtils.GetVersion() == "???")
  34. File.WriteAllText(
  35. string.Format("{0}/WebBackup/Styles/{1}_{2}.css",
  36. Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments),
  37. style.Code,
  38. style.ID
  39. ),
  40. style.Style
  41. );
  42. }
  43. private void EditWebStyle(CoreRow arg)
  44. {
  45. var style = LoadItem(arg);
  46. var editor = new ScriptEditor(style.Style, SyntaxLanguage.CSS, $"Style: {style}");
  47. editor.OnSave += (e, args) =>
  48. {
  49. style.Style = editor.Script;
  50. SaveToLocalFolder(style);
  51. SaveItem(style);
  52. };
  53. editor.Show();
  54. }
  55. }
  56. }