Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8156046

TreeTableView: getRoot().getChildren().clear() doesn't clear TreeItem icons

XMLWordPrintable

    • x86_64
    • linux

      FULL PRODUCT VERSION :
      java version "1.8.0_92"
      Java(TM) SE Runtime Environment (build 1.8.0_92-b14)
      Java HotSpot(TM) 64-Bit Server VM (build 25.92-b14, mixed mode)

      ADDITIONAL OS VERSION INFORMATION :
      Linux dmovcc 3.19.0-32-generic #37~14.04.1-Ubuntu SMP Thu Oct 22 09:41:40 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

      A DESCRIPTION OF THE PROBLEM :
      After call "getRoot().getChildren().clear()", all tree item icons are still visible on the screen.

      REGRESSION. Last worked in version 8u77

      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      1. Run the code snippet I attached to this bug report.
      2. Click on "Clear all" button.

      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      Only the root TreeItem must be visible.
      ACTUAL -
      The root TreeItem and icons of the old children are visible.

      REPRODUCIBILITY :
      This bug can be reproduced always.

      ---------- BEGIN SOURCE ----------
      package sample;

      import javafx.application.Application;
      import javafx.beans.property.SimpleStringProperty;
      import javafx.scene.Scene;
      import javafx.scene.control.*;
      import javafx.scene.control.cell.TextFieldTreeTableCell;
      import javafx.scene.image.Image;
      import javafx.scene.image.ImageView;
      import javafx.scene.layout.BorderPane;
      import javafx.stage.Stage;

      public class Main extends Application {

          @Override
          public void start(Stage primaryStage) throws Exception{
              final Image img1 = new Image("http://icons.iconarchive.com/icons/icons8/windows-8/24/Programming-Bug-icon.png", true);
              final Image img2 = new Image("http://icons.iconarchive.com/icons/iconsmind/outline/24/Bug-icon.png", true);

              final TreeTableView<String> treeTableView = new TreeTableView<>(new TreeItem<>("root", new ImageView(img1)));

              final TreeTableColumn<String, String> column1 = new TreeTableColumn<>("Col 1");
              column1.setPrefWidth(400);
              column1.setCellValueFactory(param -> new SimpleStringProperty(param.getValue().getValue()));
              column1.setCellFactory(TextFieldTreeTableCell.forTreeTableColumn());
              treeTableView.getColumns().add(column1);

              final TreeTableColumn<String, String> column2 = new TreeTableColumn<>("Col 2");
              column2.setPrefWidth(200);
              column2.setCellValueFactory(param -> new SimpleStringProperty(Integer.toString(param.getValue().getValue().length())));
              column2.setCellFactory(TextFieldTreeTableCell.forTreeTableColumn());
              treeTableView.getColumns().add(column2);

              treeTableView.setTreeColumn(column1);

              treeTableView.getRoot().getChildren().add(new TreeItem<>("child1", new ImageView(img1)));
              treeTableView.getRoot().getChildren().add(new TreeItem<>("child2", new ImageView(img2)));
              treeTableView.getRoot().getChildren().add(new TreeItem<>("child3", new ImageView(img1)));
              treeTableView.getRoot().getChildren().add(new TreeItem<>("child4", new ImageView(img2)));

              treeTableView.getRoot().setExpanded(true);

              final Button clearAllButton = new Button("Clear all");
              clearAllButton.setOnAction(event -> treeTableView.getRoot().getChildren().clear());
              final ToolBar toolBar = new ToolBar(clearAllButton);

              final BorderPane root = new BorderPane(treeTableView, toolBar, null, null, null);
              primaryStage.setTitle("TreeTableView bug");
              primaryStage.setScene(new Scene(root, 800, 600));
              primaryStage.show();
          }


          public static void main(String[] args) {
              launch(args);
          }
      }

      ---------- END SOURCE ----------

            jgiles Jonathan Giles
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: