Advertisement
GlobalAccessSoftware

SearchForm1.cs

Oct 3rd, 2019
602
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 10.43 KB | None | 0 0
  1.  
  2. #region Top Part
  3. //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
  4. // MyCustomLibrary.SearchForm1.cs //\\//\\//
  5. //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
  6. // v5.2.7.12 05-May-2019 Created and Roughed
  7. //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
  8. // v5.2.7.14 12-May-2019 Great Design Stage.
  9. // v5.2.8.15 15-May-2019 Comin along nicely!
  10. // v5.2.8.16 18-May-2019 EyeOutBug Fixed ++
  11. // v5.2.8.17 24-May PropertyChangedEvents.
  12. // v5.2.9.19 31-May Minor Revision, Setups.
  13. // v5.3.0.21 10-June Brought MySearchType &
  14. // SearchCom into SearchForm Class, but now
  15. // it's MST for the Mutexes AND MySearchType
  16. // and SearchForm Class for what was MSC
  17. // v5.3.0.22 24-June Sorting it out in 2 & 3
  18. // v5.3.1.23 30-June CurrentFile Name, etc.
  19. // v5.3.3.27 19-July Integration & Polish.
  20. // -=[ Design Revision 4 ]=- My Custom Type.
  21. // v5.3.4.29 25-Jul-2019 Spelling things out
  22. // Class{in-Class{in-Class}}; Custom Types:
  23. // v5.4.5.32 07-Aug-2019 Search & Replace.
  24. // v5.4.5.35 21-Aug-2019 Final Details Alpha
  25. // v5.4.6.36 07-Sep ""   Minor Details.
  26. // v5.4.6.37 12-Sep-2019 Debug Testing. 1
  27. // v5.4.7.39 26-Sep-2019 Cleaning up.
  28. //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
  29.  
  30. using System;
  31. using System.Collections.Generic;
  32. using System.Collections.ObjectModel;
  33. using System.Collections.Specialized;
  34. using System.Drawing;
  35. using System.IO;
  36. using System.Windows.Forms;
  37.  
  38. using MCD = MyCustomLibrary.Dialogs;
  39. using MCT = MyCustomLibrary.MyToolbox;
  40.  
  41. using MCR = MyCustomLibrary
  42.   .Properties.Resources;
  43. using MCS = MyCustomLibrary
  44.   .Properties.Settings;
  45.  
  46.  
  47. namespace MyCustomLibrary
  48. {
  49.   public partial class SearchForm : Form
  50.   {
  51.     // Incoming Property (ReUsed)
  52.     // searchBox.Text till load, fn after
  53.     public void Search4(string value)
  54.     { Search2 = value; }
  55.     string  Search2 { get; set; }
  56.  
  57.     FileSystemWatcher
  58.       Beagle   { get; set; }
  59.  
  60.  
  61.     // 1/1 Class Constructor
  62.     public SearchForm()
  63.     {
  64.       InitializeComponent();
  65.     }
  66. #endregion Pop Tart
  67.     //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
  68.  
  69.  
  70. #region Search Form Load
  71.  
  72.     void SearchFormLoad(
  73.       object sender, EventArgs e)
  74.     {
  75.       if (Dialogs.WholeList == null
  76.        || Dialogs.WholeList
  77.        .Count < 1) return;
  78.  
  79.       Size = MCS.Default.SearchSize;
  80.       Location = MCS.Default.SearchLoca;
  81.  
  82.       if (SearchFormLoad2()) return;
  83.  
  84.       if (MCT.Testing && !MCT.Skip)
  85.         MessageBox.Show(MCR.FL2);
  86.       Close();
  87.     }
  88.  
  89.     bool SearchFormLoad2()
  90.     {
  91.       var app = Application.ExecutablePath;
  92.       if (app.Contains(MCR.MyApp))
  93.         SearchEditor();
  94.       else
  95.         if (app.Contains(MCR.MyOtherApp) )
  96.           SearchPrintBlaster();
  97.         else return false;
  98.  
  99.       caseCheckBox.Checked =
  100.         MCS.Default.Case;
  101.       wordCheckBox.Checked =
  102.         MCS.Default.Word;
  103.  
  104.       searchBox.Text = Search2;
  105.  
  106.       if (replaceBox.Visible)
  107.         UpdateReplaceList();
  108.       UpdateSearchList();
  109.  
  110.       LoadSharedColors();
  111.       ScopeSelectedChanged(
  112.         // These are unused dummy args.
  113.         "startup", EventArgs.Empty);
  114.  
  115.       // v5.3.0.21 10-June-2019 -JpE-
  116.       Beagle = new FileSystemWatcher();
  117.       SetupWatcher4MeComms();
  118.  
  119.       return true;
  120.     }
  121. #endregion Form Load
  122.     //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
  123.  
  124.  
  125. #region Load Shared Colors Members
  126.  
  127.     void LoadSharedColors()
  128.     {
  129.       Color
  130.         back    = DefaultBackColor,
  131.         fore    = DefaultForeColor,
  132.         formB   = BackColor,
  133.         formF   = ForeColor;
  134.  
  135.       var fnt   = DefaultFont;
  136.       var info  = MCT.ReadShared(fnt,
  137.         back,  fore, formB, formF, fnt);
  138.  
  139.       if ( info == null
  140.         || info .Length < 6
  141.         || info .Length > 6
  142.         || ! (bool)  info[5]) return;
  143.      
  144.       // If needed in ReUses:
  145.       //Font    = (Font) info[4];
  146.       LoadSharedColors(info);
  147.     }
  148.  
  149.     void LoadSharedColors(
  150.       IList<object> info)
  151.     {
  152.       var colors =
  153.         new Collection<Color>();
  154.       try
  155.       {
  156.         colors.Add((Color) info[0]);
  157.         colors.Add((Color) info[1]);
  158.         colors.Add((Color) info[2]);
  159.         colors.Add((Color) info[3]);
  160.       }
  161.       catch (InvalidCastException)
  162.       { if ( MCT.Testing && !MCT.Skip)
  163.              MessageBox.Show(MCR.Err7);
  164.         return; }
  165.       catch (FormatException)
  166.       { if ( MCT.Testing && !MCT.Skip)
  167.              MessageBox.Show(MCR.Err8);
  168.         return; }
  169.  
  170.       LoadSharedColors(colors);
  171.     }
  172.  
  173.     void LoadSharedColors(
  174.       IList<Color> colors)
  175.     {
  176.       replaceBox.BackColor =
  177.        searchBox.BackColor =
  178.         scopeBox.BackColor = colors[0];
  179.  
  180.       replaceBox.ForeColor =
  181.        searchBox.ForeColor =
  182.         scopeBox.ForeColor = colors[1];
  183.  
  184.       BackColor = colors[2];
  185.       ForeColor = colors[3];
  186.    }
  187. #endregion Load Shared Colors Members
  188.     //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
  189.  
  190.  
  191. #region Setup Search Form
  192.  
  193.     void SearchEditor()
  194.     {
  195.       var scope = MCS.Default.ScopeMe;
  196.       var ct = scope.Count;
  197.       var ob = new object[ct];
  198.  
  199.       for (var i = 0; i < ct; ++i)
  200.       {
  201.         if (string.IsNullOrEmpty(
  202.           scope[i])) continue;
  203.         ob[i] = scope[i];
  204.       }
  205.  
  206.       scopeBox.Items.Clear();
  207.       scopeBox.Items.AddRange(ob);
  208.  
  209.       scopeBox.SelectedIndex =
  210.         MCS.Default.ScopeMePref;
  211.     }
  212.     /**********************************
  213.      ** Who ^v is calling, ME or PB? **
  214.     /**********************************/
  215.     void SearchPrintBlaster()
  216.     {
  217.       var pb = MCS.Default.ScopePb;
  218.       var cn = pb.Count;
  219.       var ob = new object[cn];
  220.  
  221.       for (var i = 0; i < cn; ++i)
  222.       {
  223.         if (string.IsNullOrEmpty(
  224.           pb[i])) continue;
  225.         ob[i] = pb[i];
  226.       }
  227.  
  228.       scopeBox.Items.Clear();
  229.       scopeBox.Items.AddRange(ob);
  230.  
  231.       scopeBox.SelectedIndex =
  232.         MCS.Default.ScopePbPref;
  233.     }
  234.  
  235.     void FindSetup()
  236.     {
  237.       replaceButton.Hide();
  238.       replaceAllButton.Hide();
  239.       replaceBox.Hide();
  240.       replaceLabel.Hide();
  241.  
  242.       SetupSearchBoxItems();
  243.     }
  244.  
  245.     void ScopeSelectedChanged(
  246.       object sender, EventArgs e)
  247.     {
  248.       var sel = scopeBox.SelectedIndex;
  249.       if (Application.ExecutablePath
  250.         .Contains(MCR.MyApp)) // ME Calling.
  251.       {
  252.         if (sel.Equals(0)) FindSetup();
  253.         else ReplaceSetup();
  254.       }
  255.       else // It's PB calling.
  256.       {
  257.         if (sel.Equals(0)) FindSetup();
  258.         else ReplaceSetup();
  259.       }
  260.     }
  261.  
  262.     void ReplaceSetup()
  263.     {
  264.       replaceButton.Show();
  265.       replaceAllButton.Show();
  266.       replaceBox.Show();
  267.       replaceLabel.Show();
  268.  
  269.       SetupReplaceBoxItems();
  270.       SetupSearchBoxItems();
  271.     }
  272.  
  273.     /**********************************/
  274.  
  275.     void SetupSearchBoxItems()
  276.     {
  277.       if (MCS.Default
  278.         .SearchBoxCollection == null)
  279.         MCS.Default
  280.           .SearchBoxCollection =
  281.             new StringCollection();
  282.  
  283.       MCS.Default.Save();
  284.       if (MCS.Default
  285.           .SearchBoxCollection
  286.             .Count < 1) return;
  287.  
  288.       var sbc = MCS.Default
  289.         .SearchBoxCollection;
  290.       var cnt = sbc.Count;
  291.       var obj = new object[cnt];
  292.  
  293.       for (var i = 0; i <  cnt; ++i)
  294.       {
  295.         if (string.IsNullOrEmpty(
  296.           sbc[i])) continue;
  297.         obj[i] = sbc[i];
  298.       }
  299.  
  300.       searchBox.Items.Clear();
  301.       searchBox.Items.AddRange(obj);
  302.  
  303.       if (string.IsNullOrEmpty(searchBox
  304.         .Text) && !string.IsNullOrEmpty(
  305.         sbc[0]))
  306.         searchBox.Text = sbc[0];
  307.     }
  308.  
  309.     void SetupReplaceBoxItems()
  310.     {
  311.       if (MCS.Default
  312.         .ReplaceBoxCollection == null)
  313.         MCS.Default
  314.           .ReplaceBoxCollection =
  315.             new StringCollection();
  316.  
  317.       if (MCS.Default
  318.         .ReplaceBoxCollection
  319.           .Count < 1) return;
  320.  
  321.       var rbc = MCS.Default
  322.         .ReplaceBoxCollection;
  323.       var cnt = rbc.Count;
  324.       var obj = new object[cnt];
  325.  
  326.       for (var i = 0; i < cnt; ++i)
  327.       {
  328.         if (string.IsNullOrEmpty(
  329.           rbc[i])) continue;
  330.         obj[i] = rbc[i];
  331.       }
  332.  
  333.       replaceBox.Items.Clear();
  334.       replaceBox.Items.AddRange(obj);
  335.  
  336.       if (string.IsNullOrEmpty(
  337.         replaceBox.Text)
  338.         && !string.IsNullOrEmpty(
  339.         rbc[0])) replaceBox
  340.           .Text = rbc[0];
  341.     }
  342. #endregion Setup Search Form
  343.     //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
  344.  
  345.  
  346. #region Form Close and Save
  347.  
  348.     void SearchFormClosing(
  349.       object sender,
  350.       FormClosingEventArgs e)
  351.     {
  352.       Beagle.EnableRaisingEvents = false;
  353.  
  354.       MCS.Default.SearchSize = Size;
  355.       MCS.Default.SearchLoca = Location;
  356.  
  357.       MCS.Default.Case =
  358.         caseCheckBox.Checked;
  359.       MCS.Default.Word =
  360.         wordCheckBox.Checked;
  361.  
  362.       if (Application.ExecutablePath
  363.         .Contains(MCR.MyApp))
  364.       {
  365.         MCS.Default.ReplacePref =
  366.           replaceBox.Visible;
  367.         UpdateReplaceList();
  368.         MCS.Default.ScopeMePref =
  369.           scopeBox.SelectedIndex;
  370.       }
  371.       else MCS.Default.ScopePbPref =
  372.         scopeBox.SelectedIndex;
  373.  
  374.       ListMaintenance();
  375.       UpdateSearchList();
  376.       // ^ MCS.Default.Save(); is in there.
  377.  
  378.       CancelSearch = true; // <-===<< Alerts
  379.       // Smesa of Search Form Closing.^^^^^^
  380.     }
  381.  
  382.     static void ListMaintenance()
  383.     {
  384.       while (MCS.Default.SearchBoxCollection
  385.         .Count > 32) MCS.Default
  386.           .SearchBoxCollection.RemoveAt(32);
  387.       while (MCS.Default.ReplaceBoxCollection
  388.         .Count > 32) MCS.Default
  389.           .ReplaceBoxCollection.RemoveAt(32);
  390.     }
  391. #endregion Form Close and Save
  392.     //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
  393.  
  394.  
  395. #region Update Recents Lists
  396.  
  397.     void UpdateSearchList()
  398.     {
  399.       var str = searchBox.Text;
  400.       if (!string.IsNullOrEmpty(str))
  401.       {
  402.         while (MCS.Default
  403.           .SearchBoxCollection
  404.           .Contains(str)) MCS.Default
  405.             .SearchBoxCollection
  406.               .Remove(str);
  407.         MCS.Default.SearchBoxCollection
  408.           .Insert(0, str);
  409.       }
  410.       SetupSearchBoxItems();
  411.     }
  412.  
  413.     void UpdateReplaceList()
  414.     {
  415.       var txt = replaceBox.Text;
  416.       if (!string.IsNullOrEmpty(txt))
  417.       {
  418.         while (MCS.Default
  419.           .ReplaceBoxCollection
  420.           .Contains(txt)) MCS.Default
  421.             .ReplaceBoxCollection
  422.               .Remove(txt);
  423.         MCS.Default.ReplaceBoxCollection
  424.           .Insert(0, txt);
  425.       }
  426.       SetupReplaceBoxItems();
  427.     }
  428. #endregion Update Lists
  429.     //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
  430.  
  431.  
  432.   }
  433. }
  434.  
  435. // 100% -JpE-
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement