private void BuildRow(Category category, string description, int level) { CategoryDisplayItem temp = new CategoryDisplayItem(); temp.CategoryID = category.CategoryID; temp.Name = category.Name; temp.Description = description; temp.ImageFile = category.ImageFile; temp.ParentCategoryID = category.ParentCategoryID; temp.Level = level; temp.IsEnabled = category.IsEnabled; _categorySource.Add(temp); }
public void SetupButton(CategoryDisplayItem parentItem_) { parentObject = null; parentItem = parentItem_; }
public List <CategoryDisplayObject> CreateProductCategoriesList(Inventory.ProductCategoryVisibleData visibleData) { scrollbar.value = 1; List <CategoryDisplayObject> newList = new List <CategoryDisplayObject>(); List <Product.ProductCategory> categories = Product.GetProductCategories(); int counter = 0; Vector2 previousContentPanelSize = Vector2.zero; Vector2 previousPos = Vector2.zero; float previousCategoryObjectHeight = 0; foreach (Product.ProductCategory category in categories) { List <Product.type_> categoryTypes = Product.GetProductsInCategory(category); Inventory.ProductCategoryVisibleData.Category categoryData = visibleData.GetCategory(category); // Create category panel CategoryDisplayObject categoryDisplayObject = Instantiate(categoryPrefab); categoryDisplayObject.categoryReference = categoryData; categoryDisplayObject.parentPanel = inventoryUIPanel; categoryDisplayObject.gameObject.SetActive(true); categoryDisplayObject.transform.SetParent(contentPanel.transform.parent, false); categoryDisplayObject.titlePanel.SetText(category.ToString()); categoryDisplayObject.SetVisibility(categoryData.visibleState, true); // Size new panel float titlePanelHeight = categoryDisplayObject.titlePanel.mainImage.rectTransform.rect.height; float titlePanelWidth = categoryDisplayObject.titlePanel.mainImage.rectTransform.rect.width; float subItemHeight = categoryItemPrefab.GetComponent <Image>().rectTransform.rect.height; RectTransform containerRectTransform = categoryDisplayObject.containerPanel.rectTransform; Vector2 newContainerSize = new Vector2(titlePanelWidth, subItemHeight * categoryTypes.Count); categoryDisplayObject.containerPanel.rectTransform.sizeDelta = newContainerSize; categoryDisplayObject.maskImage.rectTransform.sizeDelta = newContainerSize; Vector2 newContainerPos = new Vector2(0, -newContainerSize.y / 2); categoryDisplayObject.containerPanel.rectTransform.anchoredPosition = newContainerPos; categoryDisplayObject.maskImage.rectTransform.anchoredPosition = newContainerPos; Vector2 newCategoryObjectPos = new Vector2(previousPos.x, previousPos.y - previousCategoryObjectHeight); if (previousContentPanelSize == Vector2.zero) { newCategoryObjectPos = Vector2.zero; } categoryDisplayObject.GetComponent <RectTransform>().anchoredPosition = newCategoryObjectPos; newList.Add(categoryDisplayObject); //Setup previous info previousPos = newCategoryObjectPos; previousCategoryObjectHeight = (titlePanelHeight + newContainerSize.y); // Resize content panel if (previousContentPanelSize == Vector2.zero) { contentPanel.rectTransform.sizeDelta = new Vector2(titlePanelWidth, previousCategoryObjectHeight); } else { contentPanel.rectTransform.sizeDelta = new Vector2(previousContentPanelSize.x, previousContentPanelSize.y + previousCategoryObjectHeight); } previousContentPanelSize = contentPanel.rectTransform.sizeDelta; // Create sub panels for (int i = 0; i < categoryTypes.Count; i++) { Product.type_ type = categoryTypes[i]; Inventory.ProductCategoryVisibleData.CategorySubType subData = visibleData.GetSubType(type); // Create product types inside category panel CategoryDisplayItem categoryDisplayItem = Instantiate(categoryItemPrefab); categoryDisplayItem.categorySubTypeReference = subData; categoryDisplayItem.parentDisplayObject = categoryDisplayObject; categoryDisplayItem.textString = Product.ProductTypeToString(type, true); categoryDisplayItem.gameObject.SetActive(true); categoryDisplayItem.transform.SetParent(categoryDisplayObject.maskImage.transform, false); categoryDisplayItem.typeText.text = categoryDisplayItem.textString; categoryDisplayItem.SetVisibility(subData.visibleState, false); RectTransform categoryDisplayItemRectTransform = categoryDisplayItem.GetComponent <RectTransform>(); Vector2 newPos = new Vector2(0, (-i * subItemHeight) - subItemHeight / 2); categoryDisplayItemRectTransform.anchoredPosition = newPos; categoryDisplayObject.displayedItems.Add(categoryDisplayItem); categoryDisplayItem.transform.SetParent(categoryDisplayObject.maskImage.transform, true); categoryDisplayItemRectTransform.sizeDelta = new Vector2(titlePanelWidth, subItemHeight); } if (categoryData.collapsed) { //categoryDisplayObject.Collapse(); //previousContentPanelSize = new Vector2(titlePanelWidth, titlePanelHeight); } // Increase category object counter counter++; } foreach (CategoryDisplayObject obj in newList) { obj.transform.SetParent(contentPanel.transform, true); } return(newList); }