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

[CSS] -fx-selection-bar style causes Warning: Could not resolve 'a lookup value'

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: P4
    • Resolution: Fixed
    • Affects Version/s: 8
    • Fix Version/s: 8u20
    • Component/s: javafx
    • Labels:
      None

      Description

      Created from the comment in RT-32229:

      The following behaves differently:

      .root {
          -fx-background: #f8f8f8;
          -fx-selection-bar: linear-gradient(to top, derive(-fx-background, -2%) 0%, derive(-fx-background, 50%) 100%);
      }

      throws an error/warning (IllegalArgumentException) in JavaFX 8.

      while the following does not:

      .root {
          -fx-selection-bar: linear-gradient(to top, derive(#f8f8f8, -2%) 0%, derive(#f8f8f8, 50%) 100%);
      }

      They should behave the same, though.

      In JavaFX 2.2 the first results in a light blue, while the second one results in a gray selection color.


      Here's a sample code (select the table row or the menu):

      import javafx.application.Application;
      import javafx.beans.property.SimpleStringProperty;
      import javafx.beans.value.ObservableValue;
      import javafx.collections.FXCollections;
      import javafx.scene.Scene;
      import javafx.scene.control.*;
      import javafx.scene.layout.VBox;
      import javafx.stage.Stage;
      import javafx.util.Callback;


      public class TestApp5 extends Application {
          public static void main(String[] args) {
              launch();
          }
          @Override
          public void start(Stage stage) throws Exception {
              MenuBar menuBar = new MenuBar();
              Menu menu = new Menu("Menu");
              menu.getItems().add(new MenuItem("test"));
              menuBar.getMenus().add(menu);
              TableView<String> tableView = new TableView<String>();
              tableView.setItems(FXCollections.observableArrayList("String"));
              TableColumn<String, String> tableColumn = new TableColumn<String, String>();
              tableColumn.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<String, String>, ObservableValue<String>>() {
                  @Override
                  public ObservableValue<String> call(TableColumn.CellDataFeatures<String, String> stringStringCellDataFeatures) {

                      return new SimpleStringProperty(stringStringCellDataFeatures.getValue());
                  }
              });
              tableView.getColumns().add(tableColumn);
              VBox vBox = new VBox();
              vBox.getChildren().add(menuBar);
              vBox.getChildren().add(tableView);
              Scene scene = new Scene(vBox);
              scene.getStylesheets().add("/style.css");
              stage.setScene(scene);
              stage.show();
          }
      }

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              dgrieve David Grieve
              Reporter:
              cschudtjfx Christian Schudt (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:
                Imported: