/// <summary> /// Hàm tạo giao diện sản phẩm /// </summary> /// <param name="tabProducts">Tab để hiển thị hình ảnh</param> /// <param name="listProduct">Danh sách sản phẩm</param> private void createProducts(tabNews tabProducts, List <SanPham> listProduct) { Point pointOld = new Point(15, 20); int newLine = 0; for (int i = 0; i < listProduct.Count; i++) { SanPham u = listProduct[i]; tabProductSamples product = new tabProductSamples(u) { Location = pointOld, }; product.setOnClickListener(this); newLine++; if (newLine > 3) { newLine = 0; pointOld = new Point(15, pointOld.Y + 360); } else { pointOld = new Point(pointOld.X + 250, pointOld.Y); } tabProducts.Controls.Add(product); } }
/// <summary> /// Hàm tạo giao diện loại sản phẩm /// </summary> /// <param name="tabCategory">Tab để hiển thị loại thư mục</param> /// <param name="listCategory">Danh sách thư mục</param> private void createCategory(tabNews tabCategory, List <DanhMucSanPham> listCategory) { Point pointOld = new Point(37, 7); for (int i = 0; i < listCategory.Count; i++) { DanhMucSanPham u = listCategory[i]; tabCategorySamples category = new tabCategorySamples(u) { Location = pointOld, }; category.setOnClickListener(this); pointOld = new Point(pointOld.X + 252, pointOld.Y); tabCategory.Controls.Add(category); } }
/// <summary> /// Hàm tạo giao diện sản phẩm theo loại danh mục sản phẩm /// </summary> /// <param name="sender">Đối tượng hiển khi click vào sẽ hiển thị danh mục này</param> /// <param name="var">Danh sách sản phẩm</param> private void createProductFollowCategory(object sender, List <SanPham> var) { tabNews tab = new tabNews() { Location = new Point(0, 0), }; tab.Dock = DockStyle.Fill; createProducts(tab, var); pageProducts.BeginInvoke((Action)(() => { pageProducts.TabProducts.Controls.Add(tab); })); dataManager.tabFilterProducts.Add(sender, tab); done = true; tabs = tab; }
/// <summary> /// Hàm xử lý bất đồng bộ khi lọc danh sách các sản phẩm theo yêu cầu, worker thread /// là nơi cập nhật dữ liệu, main thread chạy progress bar /// </summary> /// <param name="sender">tab sản phẩm cần hiển thị</param> private void asyncShowProductTask(object sender) { if (dataManager.tabFilterProducts.ContainsKey(sender)) { tabNews temp = null; dataManager.tabFilterProducts.TryGetValue(sender, out temp); temp.BringToFront(); temp.Focus(); } else { obj = sender; Thread thread = new Thread(new ThreadStart(threadAddData)); thread.Start(); showCircleProgress(); } }