master
parent
f155464ec1
commit
4d3417a334
@ -0,0 +1,56 @@
|
||||
package view;
|
||||
|
||||
import javafx.collections.FXCollections;
|
||||
import javafx.collections.ObservableList;
|
||||
import javafx.scene.control.TreeItem;
|
||||
import javafx.scene.control.TreeView;
|
||||
import javafx.scene.layout.AnchorPane;
|
||||
import model.DataManager;
|
||||
import model.Goods;
|
||||
|
||||
public class CategoryManagementView extends AnchorPane {
|
||||
|
||||
private TreeView<String> categoryTreeView;
|
||||
|
||||
public CategoryManagementView() {
|
||||
initializeComponents();
|
||||
loadCategoriesAndGoods();
|
||||
}
|
||||
|
||||
private void initializeComponents() {
|
||||
categoryTreeView = new TreeView<>();
|
||||
categoryTreeView.setShowRoot(false); // 不显示根节点
|
||||
AnchorPane.setTopAnchor(categoryTreeView, 10.0);
|
||||
AnchorPane.setRightAnchor(categoryTreeView, 10.0);
|
||||
AnchorPane.setBottomAnchor(categoryTreeView, 10.0);
|
||||
AnchorPane.setLeftAnchor(categoryTreeView, 10.0);
|
||||
this.getChildren().add(categoryTreeView);
|
||||
}
|
||||
|
||||
private void loadCategoriesAndGoods() {
|
||||
DataManager dataManager = DataManager.getInstance();
|
||||
ObservableList<Goods> allGoods = FXCollections.observableArrayList(dataManager.getAllGoods());
|
||||
|
||||
// 获取所有分类
|
||||
ObservableList<String> categories = FXCollections.observableArrayList(allGoods.stream()
|
||||
.map(Goods::getCategory)
|
||||
.distinct()
|
||||
.toArray(String[]::new));
|
||||
|
||||
// 构建树结构
|
||||
TreeItem<String> root = new TreeItem<>();
|
||||
for (String category : categories) {
|
||||
TreeItem<String> categoryItem = new TreeItem<>(category);
|
||||
for (Goods goods : allGoods) {
|
||||
if (goods.getCategory().equals(category)) {
|
||||
TreeItem<String> goodsItem = new TreeItem<>(goods.getName() + " (" + goods.getSpecification() + ")");
|
||||
categoryItem.getChildren().add(goodsItem);
|
||||
}
|
||||
}
|
||||
root.getChildren().add(categoryItem);
|
||||
}
|
||||
|
||||
categoryTreeView.setRoot(root);
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in new issue