![]()
|
|||
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИСтр 1 из 3Следующая ⇒ МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ федеральное государственное бюджетное образовательное учреждение высшего образования «УЛЬЯНОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ» Кафедра «Измерительно-вычислительные комплексы»
Элемент управления «Помощник в выборе прошивки для телефона» Отчет по курсовой работе
Выполнил: студент гр. ИСТбд-21 Ёрочкин Денис Сергеевич
Проверил: ассистент каф. ИВК Москвичёва Мария Геннадьевна
Введение Название элемента управления: «FirmWareInstallation», условное обозначение: «Помощник в выборе прошивки». «FirmWareInstallation» состоит из следующих стандартных элементов: Label, ListBox, Textbox, MaskedTextBox, Panel, numericUpDown, CheckBox. Созданный элемент управления содержит следующий набор базовый функций:
· Добавление новой прошивки в список текущих прошивок (при наличии доступа). · Удаление прошивки из списка текущих прошивок (при наличии доступа). · Обновление прошивки (при наличии доступа). · Просмотр прошивок. · Восстановление последней удалённой прошивки. · Возможность спрятать недоступные прошивки. · При выборе телефона отображается количество доступных на него прошивок. Реализация FirmWareInstallation. cs using System; using System. Collections. Generic; using System. ComponentModel; using System. Drawing; using System. Data; using System. Linq; using System. Text; using System. Threading; using System. Threading. Tasks; using System. Windows. Forms;
namespace WindowsFormsControlLibrary1 { #region Interfaces public interface IControlSettings { Font ListBoxFont { get; set; } // Шрифт элементов ListBox Color LabelColor { get; set; } // Задний фон элементов Label Color BackGround { get; set; } // Задний фон ListBox Cursor LabelDefaultCursor { get; set; } // Курсор в области Label bool ListboxScrollVisible { get; set; } // Видимость колеса прокрутки в ListBox
}
public interface IPropertiesFunc { bool DataIsValid(object sender); // Проверка корректности данных void ResetProperties(bool ResetFirm, bool ResetPhone, bool ResetFirmWare, bool ResetVersion); // Очистка для ввода новых данных bool SelectionIsAvailable(int ID, Func< int> Value); // Проверка корректности выбора полей bool UniqueCheck(List< string> Unique, string Value); string RecoveryLastRemovedData(bool RecoveryState, Func< string, bool> Recycle, string Firm = " Default", string Phone = " Default", string FirmWare = " Default", string Version = " Default", bool IsAvailable = true, string ProCreator = " Default", ushort YearOfCreation = 2000); // Сохранение или восстановление последних удалённых данных в зависимости от параметра RecoveryState
} #endregion
public partial class FirmWareInstallation: UserControl { #region Events public delegate void AddFirmWare(object sender, EventArgs e); public delegate void DeleteFirmWare(object sender, EventArgs e); public delegate void UpdateFirmWare(object sender, FirmWareStorage e); public delegate void HideUnAvailableFirmWare(object sender, FirmWareStorage e);
[Browsable(true)] [Category(" AdvancedEvents" )] public event AddFirmWare AddNewItem; [Browsable(true)] [Category(" AdvancedEvents" )] public event DeleteFirmWare DeleteItem; [Browsable(true)] [Category(" AdvancedEvents" )] public event UpdateFirmWare UpdateItem; [Browsable(true)] [Category(" AdvancedEvents" )] public event HideUnAvailableFirmWare HideItem;
protected virtual void onAddFirmWare(object sender, EventArgs e) { AddNewItem?. Invoke(this, e); } protected virtual void onDeleteFirmWare(object sender, EventArgs e) { DeleteItem?. Invoke(this, e); } protected virtual void onUpdateFirmWare(object sender, FirmWareStorage e) { UpdateItem?. Invoke(this, e); } protected virtual void onHideUnAvailableFirmWare(object sender, FirmWareStorage e) { HideItem?. Invoke(this, e); } #endregion
#region Properties // Второстепенные свойства private bool HideIsAvailable = true; // Можно ли спрятать элементы в ListBox private bool AllowUpdates = false; // Можно ли обновлять элементы в ListBox private bool RecoveryIsEnable = false; // Включение корзины FirmWareStorage str = new FirmWareStorage();
// Собственные свойства private string Bin = " "; // Корзина static List< FirmWareStorage> Storage = new List< FirmWareStorage> (); // Хранилище static List< FirmWareStorage> HiddenStorage = new List< FirmWareStorage> (); // Хранилище спрятанных элементов private bool HiddenValue = false; // Спрятаны ли элементы private int C; // Счётчик добавленных/удалённых прошивок #endregion
#region Constructors // Конструктор без параметров public FirmWareInstallation() { InitializeComponent(); } // Конструктор позиционирования элемента управления public FirmWareInstallation(int x, int y) { InitializeComponent(); this. Location = new Point(x, y); } // Конструктор размера элемента управления public FirmWareInstallation(double Size) { InitializeComponent(); string temp = Size. ToString(); string[] temp1 = temp. Split(new char[] { '. ', ', ' }); int width = Convert. ToInt32(temp1[0]); int height = Convert. ToInt32(temp1[1]); this. Width = width; this. Height = height; } // Конструктор доступности элемента управления public FirmWareInstallation(bool EnableState) { InitializeComponent(); this. Enabled = EnableState; } #endregion
#region PropertiesGetAndSet // Собственные свойства [Category(" MY Properties" )] [Browsable(false)] [Description(" Корзина" )] public string BIN { get { return this. Bin; } set { if(value! = " " ) { this. Bin = value; this. RecoverLabel. ForeColor = Color. Green; this. RecoverLabel. BackColor = Color. Black; } else { this. Bin = value; this. RecoverLabel. ForeColor = SystemColors. ControlText; this. RecoverLabel. BackColor = SystemColors. Menu; } } }
[Category(" MY Properties" )] [Browsable(false)] [Description(" Спрятаны ли элементы" )] public bool HideCompleted { get { return this. HiddenValue; } set { if (value == true & & this. HiddenValue! = true) { this. HiddenValue = value; HideLabel. Text = " Показать все прошивки"; MessageBox. Show(" Недоступные прошивки спрятаны! " ); } else if (value == false & & this. HiddenValue! = false) { this. HiddenValue = value; HideLabel. Text = " Спрятать недоступные прошивки"; MessageBox. Show(" Все прошивки снова видны! " ); } } }
[Category(" MY Properties" )] [Browsable(false)] [Description(" Счётчик добавленных/удалённых прошивок" )] public int CountValue { get { return this. C; } set { if (this. C < value) { this. C = value; MessageBox. Show(" Прошивка была добавлена! " ); } else if(this. C > value) { this. C = value; MessageBox. Show(" Прошивка была удалена! " ); } } }
// Второстепенные свойства [Category(" Main Properties" )] [Description(" Можно ли спрятать элементы в ListBox" )] public bool HideIsAvailableVal { get { return this. HideIsAvailable; } set { this. HideIsAvailable = value; } }
[Category(" Main Properties" )] [Description(" Можно ли обновлять элементы в ListBox" )] public bool AllowUpdatesVal { get { return this. AllowUpdates; } set { this. AllowUpdates = value; } }
[Category(" Second Properties" )] [Description(" Доступно ли восстановление" )] public bool RecoveryIsEnableVal { get { return this. RecoveryIsEnable; } set { this. RecoveryIsEnable = value; } }
// Сопоставленные свойства [Category(" Associated Properties" )] [Description(" Шрифт элементов ListBox" )] public Font ListBoxFont { get { return this. FirmList. Font; } set { this. FirmList. Font = value; this. PhoneList. Font = value; this. FirmWareList. Font = value; this. VersionList. Font = value; } }
[Category(" Associated Properties" )] [Description(" Цвет фона элементов Label" )] public Color LabelColor { get { return this. AddLabel. BackColor; } set { this. AddLabel. BackColor = value; this. DeleteLabel. BackColor = value; this. UpdateLabel. BackColor = value; this. RecoverLabel. BackColor = value; this. HideLabel. BackColor = value; this. labelInfo. BackColor = value; } }
[Category(" Associated Properties" )] [Description(" Задний фон ListBox" )] public Color ListBoxBackColor { get { return this. FirmList. BackColor; } set { this. FirmList. BackColor = value; this. PhoneList. BackColor = value; this. FirmWareList. BackColor = value; this. VersionList. BackColor = value; } }
[Category(" Associated Properties" )] [Description(" Курсор в области Label" )] public Cursor LabelDefaultCursor { get { return this. AddLabel. Cursor; } set { this. AddLabel. Cursor = value; this. DeleteLabel. Cursor = value; this. UpdateLabel. Cursor = value; this. RecoverLabel. Cursor = value; this. HideLabel. Cursor = value; this. labelInfo. Cursor = value; } }
[Category(" Associated Properties" )] [Description(" Колесо прокрутки ListBox" )] public bool ListboxScrollVisible { get { return this. FirmList. ScrollAlwaysVisible; } set { this. FirmList. ScrollAlwaysVisible = value; this. PhoneList. ScrollAlwaysVisible = value; this. FirmWareList. ScrollAlwaysVisible = value; this. VersionList. ScrollAlwaysVisible = value; } } #endregion
#region Methods public bool DataIsValid(object sender) { if ((sender as FirmWareStorage). GetFirm == String. Empty) { MessageBox. Show(" Не указана фирма телефона! " ); return false; } if((sender as FirmWareStorage). GetPhone == String. Empty) { MessageBox. Show(" Не указана модель телефона! " ); return false; } if ((sender as FirmWareStorage). GetFirmWare == String. Empty) { MessageBox. Show(" Не указана прошивка телефона! " ); return false; } if ((sender as FirmWareStorage). GetVersion == String. Empty) { MessageBox. Show(" Не указана версия прошивки! " ); return false; } if ((sender as FirmWareStorage). GetProCreator == String. Empty) { MessageBox. Show(" Не указан создатель прошивки! " ); return false; } if ((sender as FirmWareStorage). GetYearOfCreation == 0) { MessageBox. Show(" Не указан год создания прошивки! " ); return false; } return true; }
public void ResetProperties(bool ResetFirm, bool ResetPhone, bool ResetFirmWare, bool ResetVersion) { if(ResetVersion) { for (int i = this. VersionList. Items. Count; i > 0; --i) this. VersionList. SetSelected(i - 1, false); this. VersionList. Items. Clear(); this. VersionList. Visible = false; this. label4. Visible = false; } if (ResetFirmWare) { for (int i = this. FirmWareList. Items. Count; i > 0; --i) this. FirmWareList. SetSelected(i - 1, false); this. FirmWareList. Items. Clear(); labelNum. Visible = false; this. FirmWareList. Visible = false; this. label3. Visible = false; } if (ResetPhone) { for (int i = this. PhoneList. Items. Count; i > 0; --i) this. PhoneList. SetSelected(i - 1, false); this. PhoneList. Items. Clear(); this. PhoneList. Visible = false; this. label2. Visible = false; } if (ResetFirm) { for (int i = this. FirmList. Items. Count; i > 0; --i) this. FirmList. SetSelected(i - 1, false); this. FirmList. Items. Clear(); List< string> UniqueChecker = new List< string> (); for (int i = 0; (Storage. Count - 1) > = i; i++) { if (UniqueCheck(UniqueChecker, Storage. ElementAt(i). GetFirm)) { this. FirmList. Items. Add(Storage. ElementAt(i). GetFirm); UniqueChecker. Add(Storage. ElementAt(i). GetFirm); } } } }
public bool SelectionIsAvailable(int ID) { if(ID == 0 || ID == 1) { if (this. FirmList. SelectedItems. Count == 0) { MessageBox. Show(" Обязательное действие! Выберите фирму телефона! " ); return false; } else if (this. FirmList. SelectedItems. Count > 1) { MessageBox. Show(" Выберите только одну фирму телефона! " ); return false; } } if (ID == 0 || ID == 2) { if (this. PhoneList. SelectedItems. Count == 0) { MessageBox. Show(" Обязательное действие! Выберите телефон! " ); return false; } else if (this. PhoneList. SelectedItems. Count > 1) { MessageBox. Show(" Выберите только один телефон! " ); return false; } } if (ID == 0 || ID == 3) { if (this. FirmWareList. SelectedItems. Count == 0) { MessageBox. Show(" Обязательное действие! Выберите прошивку телефона! " ); return false; } else if (this. FirmWareList. SelectedItems. Count > 1) { MessageBox. Show(" Выберите только одну прошивку телефона! " ); return false; } } if(ID == 0 || ID == 4) { if (this. VersionList. SelectedItems. Count == 0) { MessageBox. Show(" Обязательное действие! Выберите версию прошивки телефона! " ); return false; } else if (this. VersionList. SelectedItems. Count > 1) { MessageBox. Show(" Выберите только одну версию прошивки телефона! " ); return false; } } return true; }
static bool RecycleFunc(string Bin) { if(Bin! = " " ) return true; else return false; } public string RecoveryLastRemovedData(bool RecoveryState, Func< string, bool> Recycle, string Firm = " Default", string Phone = " Default", string FirmWare = " Default", string Version = " Default", bool IsAvailable = true, string ProCreator = " Default", ushort YearOfCreation = 2000) { string Tmp = null; if (RecoveryState == false) { Tmp = Firm + " |" + Phone + " |" + FirmWare + " |" + Version + " |" + IsAvailable. ToString() + " |" + ProCreator + " |" + YearOfCreation. ToString(); return Tmp; } else { if (Recycle(BIN)) { return BIN; } else MessageBox. Show(" Ошибка! Корзина пуста! " ); return null; } }
bool UniqueCheck(List< string> Unique, string Value) { foreach (string Current in Unique) if (Current == Value) return false; return true; } #endregion
#region MainCode private void FirmWareInstallation_Load(object sender, EventArgs e) { #region StartValues FirmWareStorage temp1 = new FirmWareStorage(); FirmWareStorage temp2 = new FirmWareStorage(); FirmWareStorage temp3 = new FirmWareStorage(); FirmWareStorage temp4 = new FirmWareStorage(); FirmWareStorage temp5 = new FirmWareStorage(); FirmWareStorage temp6 = new FirmWareStorage(); FirmWareStorage temp7 = new FirmWareStorage(); FirmWareStorage temp8 = new FirmWareStorage(); FirmWareStorage temp9 = new FirmWareStorage(); FirmWareStorage temp10 = new FirmWareStorage(); temp1. SetFirm(" Samsung" ); temp1. SetPhone(" Galaxy S" ); temp1. SetFirmWare(" I9000XWJW7" ); temp1. SetVersion(" 2. 3. 6" ); temp1. SetIsAvailable(true); temp1. SetProCreator(" Gingerbread" ); temp1. SetYearOfCreation(2012); Storage. Add(temp1); temp2. SetFirm(" Xiaomi" ); temp2. SetPhone(" Mi 7" ); temp2. SetFirmWare(" MIUI 11" ); temp2. SetVersion(" 11. 0. 5. 0 Recovery" ); temp2. SetIsAvailable(true); temp2. SetProCreator(" MIUI" ); temp2. SetYearOfCreation(2020); Storage. Add(temp2); temp3. SetFirm(" Huawei" ); temp3. SetPhone(" Honor 5X" ); temp3. SetFirmWare(" KIW-L21C432B340" ); temp3. SetVersion(" EMUI 4. 0" ); temp3. SetIsAvailable(true); temp3. SetProCreator(" EMUI" ); temp3. SetYearOfCreation(2016); Storage. Add(temp3); temp4. SetFirm(" Lenovo" ); temp4. SetPhone(" A6000" ); temp4. SetFirmWare(" А6000_S054_150915_8G_ROW" ); temp4. SetVersion(" 5. 0. 2" ); temp4. SetIsAvailable(false); temp4. SetProCreator(" R& D Lenovo" ); temp4. SetYearOfCreation(2016); Storage. Add(temp4); temp5. SetFirm(" Motorola" ); temp5. SetPhone(" Moto G8" ); temp5. SetFirmWare(" Moto G Hybrid Kernel" ); temp5. SetVersion(" ver. 014" ); temp5. SetIsAvailable(true); temp5. SetProCreator(" faux123" ); temp5. SetYearOfCreation(2014); Storage. Add(temp5); temp6. SetFirm(" Lenovo" ); temp6. SetPhone(" A6000" ); temp6. SetFirmWare(" A6000-S058_151030_8G_ROW" ); temp6. SetVersion(" 5. 0. 2" ); temp6. SetIsAvailable(true); temp6. SetProCreator(" Gingerbread" ); temp6. SetYearOfCreation(2014); Storage. Add(temp6); temp7. SetFirm(" Lenovo" ); temp7. SetPhone(" A6000" ); temp7. SetFirmWare(" A6000-S056_150924_8G_ROW" ); temp7. SetVersion(" 5. 0. 2" ); temp7. SetIsAvailable(false); temp7. SetProCreator(" Gingerbread" ); temp7. SetYearOfCreation(2013); Storage. Add(temp7); temp8. SetFirm(" Lenovo" ); temp8. SetPhone(" A6000" ); temp8. SetFirmWare(" A6000_S061_160727_WCB0C57CA0" ); temp8. SetVersion(" 5. 0. 2" ); temp8. SetIsAvailable(true); temp8. SetProCreator(" Gingerbread" ); temp8. SetYearOfCreation(2017); Storage. Add(temp8); temp9. SetFirm(" Lenovo" ); temp9. SetPhone(" A6000" ); temp9. SetFirmWare(" A6000_S061_160727_WCB0C57CA0" ); temp9. SetVersion(" 5. 1. 2" ); temp9. SetIsAvailable(true); temp9. SetProCreator(" Gingerbread" ); temp9. SetYearOfCreation(2017); Storage. Add(temp9); temp10. SetFirm(" Lenovo" ); temp10. SetPhone(" A6000" ); temp10. SetFirmWare(" A6000_S061_160727_WCB0C57CA0" ); temp10. SetVersion(" 4. 6. 2" ); temp10. SetIsAvailable(false); temp10. SetProCreator(" Gingerbread" ); temp10. SetYearOfCreation(2012); Storage. Add(temp10); FirmWareStorage temp11 = new FirmWareStorage(); temp11. SetFirm(" Lenovo" ); temp11. SetPhone(" A6000" ); temp11. SetFirmWare(" A6000_S061_160727_WCB0C57CA0" ); temp11. SetVersion(" 4. 4. 1" ); temp11. SetIsAvailable(false); temp11. SetProCreator(" Gingerbread" ); temp11. SetYearOfCreation(2011); Storage. Add(temp11); FirmWareStorage temp12 = new FirmWareStorage(); temp12. SetFirm(" Lenovo" ); temp12. SetPhone(" A6000" ); temp12. SetFirmWare(" A6000-S058_151030_8G_ROW" ); temp12. SetVersion(" 5. 2. 1" ); temp12. SetIsAvailable(true); temp12. SetProCreator(" Gingerbread" ); temp12. SetYearOfCreation(2017); Storage. Add(temp12); FirmWareStorage temp13 = new FirmWareStorage(); temp13. SetFirm(" Lenovo" ); temp13. SetPhone(" A6000" ); temp13. SetFirmWare(" A6000-S058_151030_8G_ROW" ); temp13. SetVersion(" 4. 9. 1" ); temp13. SetIsAvailable(false); temp13. SetProCreator(" Gingerbread" ); temp13. SetYearOfCreation(2014); Storage. Add(temp13); FirmWareStorage temp14 = new FirmWareStorage(); temp14. SetFirm(" Lenovo" ); temp14. SetPhone(" A606" ); temp14. SetFirmWare(" S040_150702_ROW" ); temp14. SetVersion(" 2. 3. 1" ); temp14. SetIsAvailable(false); temp14. SetProCreator(" Gingerbread" ); temp14. SetYearOfCreation(2013); Storage. Add(temp14); FirmWareStorage temp15 = new FirmWareStorage(); temp15. SetFirm(" Lenovo" ); temp15. SetPhone(" A606" ); temp15. SetFirmWare(" S038_150422_ROW" ); temp15. SetVersion(" 4. 6. 1" ); temp15. SetIsAvailable(true); temp15. SetProCreator(" Gingerbread" ); temp15. SetYearOfCreation(2015); Storage. Add(temp15); FirmWareStorage temp16 = new FirmWareStorage(); temp16. SetFirm(" Lenovo" ); temp16. SetPhone(" A606" ); temp16. SetFirmWare(" S059_141025_ROW" ); temp16. SetVersion(" 4. 0. 1" ); temp16. SetIsAvailable(true); temp16. SetProCreator(" Gingerbread" ); temp16. SetYearOfCreation(2014); Storage. Add(temp16); FirmWareStorage temp17 = new FirmWareStorage(); temp17. SetFirm(" Lenovo" ); temp17. SetPhone(" A606" ); temp17. SetFirmWare(" S059_141025_ROW" ); temp17. SetVersion(" 4. 3. 1" ); temp17. SetIsAvailable(false); temp17. SetProCreator(" Gingerbread" ); temp17. SetYearOfCreation(2014); Storage. Add(temp17); FirmWareStorage temp18 = new FirmWareStorage(); temp18. SetFirm(" Lenovo" ); temp18. SetPhone(" A606" ); temp18. SetFirmWare(" S059_141025_ROW" ); temp18. SetVersion(" 5. 0. 2" ); temp18. SetIsAvailable(true); temp18. SetProCreator(" Gingerbread" ); temp18. SetYearOfCreation(2016); Storage. Add(temp18); FirmWareStorage temp19 = new FirmWareStorage(); temp19. SetFirm(" Lenovo" ); temp19. SetPhone(" A606" ); temp19. SetFirmWare(" S040_150702_ROW" ); temp19. SetVersion(" 4. 0" ); temp19. SetIsAvailable(true); temp19. SetProCreator(" Gingerbread" ); temp19. SetYearOfCreation(2015); Storage. Add(temp19); FirmWareStorage temp20 = new FirmWareStorage(); temp20. SetFirm(" Lenovo" ); temp20. SetPhone(" A606" ); temp20. SetFirmWare(" S038_150422_ROW" ); temp20. SetVersion(" 5. 1" ); temp20. SetIsAvailable(true); temp20. SetProCreator(" Gingerbread" ); temp20. SetYearOfCreation(2017); Storage. Add(temp20); FirmWareStorage temp21 = new FirmWareStorage(); temp21. SetFirm(" Lenovo" ); temp21. SetPhone(" Z6 Lite" ); temp21. SetFirmWare(" ZUI_11. 5. 117_ST_200331_qpst" ); temp21. SetVersion(" 5. 0" ); temp21. SetIsAvailable(true); temp21. SetProCreator(" GPST" ); temp21. SetYearOfCreation(2017); Storage. Add(temp21); FirmWareStorage temp22 = new FirmWareStorage(); temp22. SetFirm(" Lenovo" ); temp22. SetPhone(" Z6 Lite" ); temp22. SetFirmWare(" ZUI_11. 5. 117_ST_200331_qpst" ); temp22. SetVersion(" 6. 1" ); temp22. SetIsAvailable(true); temp22. SetProCreator(" GPST" ); temp22. SetYearOfCreation(2018); Storage. Add(temp22); FirmWareStorage temp23 = new FirmWareStorage(); temp23. SetFirm(" Lenovo" ); temp23. SetPhone(" Z6 Lite" ); temp23. SetFirmWare(" ZUI_11. 5. 117_ST_200331_qpst" ); temp23. SetVersion(" 7. 0. 1" ); temp23. SetIsAvailable(true); temp23. SetProCreator(" GPST" ); temp23. SetYearOfCreation(2019); Storage. Add(temp23); FirmWareStorage temp24 = new FirmWareStorage(); temp24. SetFirm(" Lenovo" ); temp24. SetPhone(" Z6 Lite" ); temp24. SetFirmWare(" ZUI 11. 5. 117" ); temp24. SetVersion(" 5. 0. 1" ); temp24. SetIsAvailable(false); temp24. SetProCreator(" denoolen" ); temp24. SetYearOfCreation(2017); Storage. Add(temp24); FirmWareStorage temp25 = new FirmWareStorage(); temp25. SetFirm(" Lenovo" ); temp25. SetPhone(" Z6 Lite" ); temp25. SetFirmWare(" ZUI 11. 5. 117" ); temp25. SetVersion(" 5. 0. 1" ); temp25. SetIsAvailable(false); temp25. SetProCreator(" denoolen" ); temp25. SetYearOfCreation(2017); Storage. Add(temp25); #endregion List< string> UniqueChecker = new List< string> (); for (int i = 0; (Storage. Count - 1) > = i; i++) { if (UniqueCheck(UniqueChecker, Storage. ElementAt(i). GetFirm)) { this. FirmList. Items. Add(Storage. ElementAt(i). GetFirm); UniqueChecker. Add(Storage. ElementAt(i). GetFirm); } } if (HideIsAvailable == false) this. HideLabel. Enabled = false; if (AllowUpdates == false) this. UpdateLabel. Enabled = false; this. AddLabel. Enabled = false; this. DeleteLabel. Enabled = false; this. PhoneList. Visible = false; this. FirmWareList. Visible = false; this. VersionList. Visible = false; this. label3. Visible = false; this. label2. Visible = false; this. label4. Visible = false;
}
private void FirmList_Click(object sender, EventArgs e) { if(SelectionIsAvailable(1)) { ResetProperties(false, true, true, true); List< string> UniqueChecker = new List< string> (); for(int i = 0; i < = (Storage. Count - 1); i++) { if ((UniqueCheck(UniqueChecker, Storage. ElementAt(i). GetPhone)) & & (Storage. ElementAt(i). GetFirm == this. FirmList. SelectedItem. ToString())) { this. PhoneList. Items. Add(Storage. ElementAt(i). GetPhone); UniqueChecker. Add(Storage. ElementAt(i). GetPhone); } } this. PhoneList. Visible = true; this. label2. Visible = true; } }
private void PhoneList_Click(object sender, EventArgs e) { if (SelectionIsAvailable(2)) { int Number = 0; ResetProperties(false, false, true, true); List< string> UniqueChecker = new List< string> (); for (int i = 0; i < = (Storage. Count - 1); i++) { if ((UniqueCheck(UniqueChecker, Storage. ElementAt(i). GetFirmWare)) & & (Storage. ElementAt(i). GetPhone == this. PhoneList. SelectedItem. ToString())) { if (Storage. ElementAt(i). GetIsAvailable) Number += 1; this. FirmWareList. Items. Add(Storage. ElementAt(i). GetFirmWare); UniqueChecker. Add(Storage. ElementAt(i). GetFirmWare); } } this. FirmWareList. Visible = true; this. label3. Visible = true; this. labelNum. Visible = true; this. labelNum. Text = " Число доступных прошивок на данный телефон: " + Number. ToString(); } }
private void FirmWareList_Click(object sender, EventArgs e) { if (SelectionIsAvailable(3)) { ResetProperties(false, false, false, true); List< string> UniqueChecker = new List< string> (); for (int i = 0; i < = (Storage. Count - 1); i++) { if ((UniqueCheck(UniqueChecker, Storage. ElementAt(i). GetVersion)) & & (Storage. ElementAt(i). GetFirmWare == this. FirmWareList. SelectedItem. ToString())) { this. VersionList. Items. Add(Storage. ElementAt(i). GetVersion); UniqueChecker. Add(Storage. ElementAt(i). GetVersion); } } this. VersionList. Visible = true; this. label4. Visible = true; } }
private void AddLabel_Click(object sender, EventArgs e) { Form1 Form1 = new Form1(); Form1. label8. Text = " Добавить прошивку"; Form1. labelConfirm. Text = " Подтвердить"; string tmp1; string tmp2; string tmp3; string tmp4; bool tmp5; string tmp6; ushort tmp7; do { Form1. ShowDialog(); tmp1 = Form1. textBoxFirm. Text; tmp2 = Form1. textBoxPhone. Text; tmp3 = Form1. textBoxFirmWare. Text; tmp4 = Form1. textBoxVersion. Text; tmp5 = Form1. checkBoxEnable. Checked; tmp6 = Form1. textBoxProCreator. Text; tmp7 = Convert. ToUInt16(Form1. numericUpDownYearOfCreation. Value); if (tmp1! = String. Empty) Form1. textBoxFirm. Text = tmp1; if (tmp2! = String. Empty) Form1. textBoxPhone. Text = tmp2; if (tmp3! = String. Empty) Form1. textBoxFirmWare. Text = tmp3; if (tmp4! = String. Empty) Form1. textBoxVersion. Text = tmp4; Form1. checkBoxEnable. Checked = tmp5; if (tmp6! = String. Empty) Form1. textBoxProCreator. Text = tmp6; Form1. numericUpDownYearOfCreation. Value = Convert. ToDecimal(tmp7); str. SetFirm(tmp1); str. SetPhone(tmp2); str. SetFirmWare(tmp3); str. SetVersion(tmp4); str. SetIsAvailable(tmp5); str. SetProCreator(tmp6); str. SetYearOfCreation(tmp7); } while (! DataIsValid(str)); bool checker = true; foreach(FirmWareStorage Addition in Storage) { if ((Addition. GetFirm == str. GetFirm) & & (Addition. GetPhone == str. GetPhone) & & (Addition. GetFirmWare == str. GetFirmWare) & & (Addition. GetVersion == str. GetVersion)) { checker = false; } } if (checker == true) { this. str. AddNewItem(str); ResetProperties(true, true, true, true); CountValue += 1; return; } if (checker == false) { if (AllowUpdatesVal == true) MessageBox. Show(" Такая прошивка уже существует! Невозможно добавить! Если вы хотите заменить текущую прошивку на новую, нажмите на обновление и повторите запрос! " ); else MessageBox. Show(" Такая прошивка уже существует! Невозможно добавить! " ); } }
private void DeleteLabel_Click(object sender, EventArgs e) { if(SelectionIsAvailable(0)) { foreach(FirmWareStorage check in Storage) { if((this. FirmList. SelectedItem. ToString() == check. GetFirm) & & (this. PhoneList. SelectedItem. ToString() == check. GetPhone) & & (this. FirmWareList. SelectedItem. ToString() == check. GetFirmWare) & & (this. VersionList. SelectedItem. ToString() == check. GetVersion)) { str = check; break; } } if(RecoveryIsEnable == true) { Func< string, bool> Rec = RecycleFunc; BIN = RecoveryLastRemovedData(false, Rec, str. GetFirm, str. GetPhone, str. GetFirmWare, str. GetVersion, str. GetIsAvailable, str. GetProCreator, str. GetYearOfCreation); } this. str. DeleteItem(str); ResetProperties(true, true, true, true); CountValue -= 1; } }
private void HideLabel_Click(object sender, EventArgs e) { if(HiddenStorage. Count == 0) { if (Storage. Count > 0) { int Count = 0; int CheckOne = 0; int CheckTwo = 1; while(CheckOne < CheckTwo) { foreach (FirmWareStorage Current in Storage) { if (Current. GetIsAvailable == false) { str = Current; this. str. HideItem(str, false); Count += 1; CheckTwo += 1; break; } } CheckOne += 1; } if (Count > 0) { HideCompleted = true; ResetProperties(true, true, true, true); } } else MessageBox. Show(" Невозможно выполнить действие, так как нет ни одной прошивки! " ); } else { int CheckOne = 0; int CheckTwo = 1; while (CheckOne < CheckTwo) { foreach (FirmWareStorage Value in HiddenStorage) { str = Value; this. str. HideItem(str, true); CheckTwo += 1; break; } CheckOne += 1; } HideCompleted = false; ResetProperties(true, true, true, true); } }
private void UpdateLabel_Click(object sender, EventArgs e) { if (SelectionIsAvailable(0)) { int ID; FirmWareStorage UpDate = new FirmWareStorage(); foreach (FirmWareStorage check in Storage) { if ((this. FirmList. SelectedItem. ToString() == check. GetFirm) & & (this. PhoneList. SelectedItem. ToString() == check. GetPhone) & & (this. FirmWareList. SelectedItem. ToString() == check. GetFirmWare) & & (this. VersionList. SelectedItem. ToString() == check. GetVersion)) { UpDate = check; break; } } for(int i = 0; i < Storage. Count; i++) { if (Storage. ElementAt(i) == UpDate) { ID = i; break; } } Form1 Form1 = new Form1(); Form1. label8. Text = " Обновить прошивку"; Form1. textBoxFirm. Text = UpDate. GetFirm; Form1. textBoxFirm. ReadOnly = true; Form1. textBoxPhone. Text = UpDate. GetPhone; Form1. textBoxPhone. ReadOnly = true; Form1. textBoxFirmWare. Text = UpDate. GetFirmWare; Form1. textBoxVersion. Text = UpDate. GetVersion; Form1. checkBoxEnable. Checked = UpDate. GetIsAvailable; Form1. textBoxProCreator. Text = UpDate. GetProCreator; Form1. numericUpDownYearOfCreation. Value = Convert. ToInt32(UpDate. GetYearOfCreation); Storage. Remove(UpDate); string tmp3; string tmp4; bool tmp5; string tmp6; ushort tmp7; FirmWareStorage Clone = new FirmWareStorage(); Clone. SetFirm(Form1. textBoxFirm. Text); Clone. SetPhone(Form1. textBoxPhone. Text); do { Form1. ShowDialog(); tmp3 = Form1. textBoxFirmWare. Text; tmp4 = Form1. textBoxVersion. Text; tmp5 = Form1. checkBoxEnable. Checked; tmp6 = Form1. textBoxProCreator. Text; tmp7 = Convert. ToUInt16(Form1. numericUpDownYearOfCreation. Value); if (tmp3! = String. Empty) Form1. textBoxFirmWare. Text = tmp3; if (tmp4! = String. Empty) Form1. textBoxVersion. Text = tmp4; Form1. checkBoxEnable. Checked = tmp5; if (tmp6! = String. Empty) Form1. textBoxProCreator. Text = tmp6; Form1. numericUpDownYearOfCreation. Value = Convert. ToDecimal(tmp7); Clone. SetFirmWare(tmp3); Clone. SetVersion(tmp4); Clone. SetIsAvailable(tmp5); Clone. SetProCreator(tmp6); Clone. SetYearOfCreation(tmp7); } while (! DataIsValid(Clone)); this. str. UpdateItem(Clone); ResetProperties(true, true, true, true); } }
private void RecoverLabel_Click(object sender, EventArgs e) { if (RecoveryIsEnableVal == true) { string Recycle = " "; if (BIN! = " " ) { Func< string, bool> RecycleF = RecycleFunc; Recycle = RecoveryLastRemovedData(true, RecycleF); BIN = " "; FirmWareStorage Rec = new FirmWareStorage(); string[] Recovery = Recycle. Split('|'); Rec. SetFirm(Recovery[0]); Rec. SetPhone(Recovery[1]); Rec. SetFirmWare(Recovery[2]); Rec. SetVersion(Recovery[3]); Rec. SetIsAvailable(Convert. ToBoolean(Recovery[4])); Rec. SetProCreator(Recovery[5]); Rec. SetYearOfCreation(Convert. ToUInt16(Recovery[6])); Storage. Add(Rec); ResetProperties(true, true, true, true); } else MessageBox. Show(" Корзина пуста! " ); } else { MessageBox. Show(" Ошибка! Корзина недоступна! Разрешите использование корзины перед запуском! " ); } }
private void labelInfo_Click(object sender, EventArgs e) { if (SelectionIsAvailable(0)) { Form1 Form = new Form1(); foreach (FirmWareStorage check in Storage) { if ((this. FirmList. SelectedItem. ToString() == check. GetFirm) & & (this. PhoneList. SelectedItem. ToString() == check. GetPhone) & & (this. FirmWareList. SelectedItem. ToString() == check. GetFirmWare) & & (this. VersionList. SelectedItem. ToString() == check. GetVersion)) { Form. textBoxFirm. Text = check. GetFirm; Form. textBoxPhone. Text = check. GetPhone; Form. textBoxFirmWare. Text = check. GetFirmWare; Form. textBoxVersion. Text = check. GetVersion; Form. checkBoxEnable. Checked = check. GetIsAvailable; Form. textBoxProCreator. Text = check. GetProCreator; Form. numericUpDownYearOfCreation. Value = check. GetYearOfCreation; Form. label8. Text = " Информация о прошивке"; Form. labelConfirm. Text = " Закрыть"; Form. textBoxFirm. ReadOnly = true; Form. textBoxPhone. ReadOnly = true; Form. textBoxFirmWare. ReadOnly = true; Form. textBoxVersion. ReadOnly = true; Form. checkBoxEnable. Enabled = false; Form. textBoxProCreator. ReadOnly = true; Form. numericUpDownYearOfCreation. ReadOnly = true; Form. ShowDialog(); break; } } } }
private void labelConfirm_Click(object sender, EventArgs e) { if(maskedTextBox1. Text! = " " ) if (Convert. ToInt32(maskedTextBox1. Text) == 11111111) { this. AddLabel. Enabled = true; this. DeleteLabel. Enabled = true; if (AllowUpdates == true) this. UpdateLabel. Enabled = true; if (HideIsAvailable == true) this. HideLabel. Enabled = true; this. maskedTextBox1. Visible = false; this. labelConfirm. Visible = false; this. label5. Visible = false; this. panel2. Visible = false; MessageBox. Show(" Были предоставлены расширенные возможности! " ); } else { maskedTextBox1. Text = " "; MessageBox. Show(" Неверный пароль! " ); } } #endregion
#region Storage public class FirmWareStorage: EventArgs { private string Firm; // Название фирмы телефона private string Phone; // Модель телефона private string FirmWare; // Название прошивки private string Version; // Версия прошивки private bool IsAvailable; // Доступна ли прошивка на данный момент private string ProCreator; // Создатель прошивки private ushort YearOfCreation = 0; // Год выпуска прошивки
#region SetAndGetMethods public void SetFirm(string f) { this. Firm = f; } public string GetFirm { get { return this. Firm; } } public void SetPhone(string p) { this. Phone = p; } public string GetPhone { get { return this. Phone; } } public void SetFirmWare(string fw) { this. FirmWare = fw; } public string GetFirmWare { get { return this. FirmWare; } } public void SetVersion(string v) { this. Version = v; } public string GetVersion { get { return this. Version; } } public void SetIsAvailable(bool ia) { this. IsAvailable = ia; } public bool GetIsAvailable { get { return this. IsAvailable; } } public void SetProCreator(string pc) { this. ProCreator = pc; } public string GetProCreator { get { return this. ProCreator; } } public void SetYearOfCreation(ushort yc) { if (yc < = (ushort)DateTime. Now. Year || yc > = 1950) this. YearOfCreation = yc; else this. YearOfCreation = (ushort)DateTime. Now. Year; } public ushort GetYearOfCreation { get { return this. YearOfCreation; } } #endregion
#region EventsCode public void AddNewItem(FirmWareStorage str) { Storage. Add(str); }
public void DeleteItem(FirmWareStorage str) { Storage. Remove(str); }
public void UpdateItem(FirmWareStorage update) { Storage. Add(update); } public void HideItem(FirmWareStorage hide, bool hidden) { if (hidden == false) { HiddenStorage. Add(hide); Storage. Remove(hide); } else { Storage. Add(hide); HiddenStorage. Remove(hide); } } #endregion } #endregion }// UserControl }
|
|||
|