package tk.captainsplexx.JavaFX.CellFactories; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.control.ContextMenu; import javafx.scene.control.MenuItem; import javafx.scene.control.TreeCell; import javafx.scene.control.TreeItem; import javafx.scene.image.ImageView; import javafx.scene.input.MouseEvent; import tk.captainsplexx.Entity.Entity; import tk.captainsplexx.JavaFX.JavaFXHandler; import tk.captainsplexx.JavaFX.TreeViewEntry; import tk.captainsplexx.Resource.EBX.Structure.EBXStructureEntry; import tk.captainsplexx.Resource.EBX.Structure.EBXStructureReader.EntryType; public class JavaFXlayerTCF extends TreeCell<Entity> { EBXStructureEntry tmpEntry = null; private MenuItem show, hide, remove; private ContextMenu contextMenu = new ContextMenu(); public JavaFXlayerTCF() { show = new MenuItem("Show"); show.setGraphic(new ImageView(JavaFXHandler.binocular)); show.setOnAction(new EventHandler<ActionEvent>() { public void handle(ActionEvent t) { getTreeItem().getValue().setIsVisible(true); updateItem(getTreeItem().getValue(), false); } } ); hide = new MenuItem("Hide"); hide.setGraphic(new ImageView(JavaFXHandler.binocular2)); hide.setOnAction(new EventHandler<ActionEvent>() { public void handle(ActionEvent t) { getTreeItem().getValue().setIsVisible(false); updateItem(getTreeItem().getValue(), false); } } ); remove = new MenuItem("Remove"); remove.setDisable(true); remove.setGraphic(new ImageView(JavaFXHandler.removeIcon)); remove.setOnAction(new EventHandler<ActionEvent>() { public void handle(ActionEvent t) { System.err.println("Not implemented yet."); } } ); } @Override public void updateItem(Entity item, boolean empty) { super.updateItem(item, empty); setStyle(null); setEffect(null); if (empty) { setText(null); setGraphic(null); }else if (item==null){ setText("Layers"); } else { tmpEntry = item.getStructEntry(); contextMenu.getItems().clear(); if (tmpEntry!=null){ String[] instanaceGUID = item.getName().split("/"); if (instanaceGUID.length==2){ setText(item.getStructEntry().getType().toString()+" "+instanaceGUID[1]); }else{ setText(item.getStructEntry().getType().toString()+" "+item.getName()); } if (!item.getIsVisible()){ contextMenu.getItems().add(show); setStyle("-fx-background-color: red"); }else if(item.getIsVisible()){ contextMenu.getItems().add(hide); }/*else if (item.getTexturedModelNames()!=null){ setStyle("-fx-background-color: green"); }*/ }else{ setText(item.getName()); setStyle("-fx-background-color: lightgrey"); } setGraphic(getTreeItem().getGraphic()); contextMenu.getItems().add(remove); setContextMenu(contextMenu); } } }