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

Custom Color Dialog's action button layout is violate human interface guidelines.

XMLWordPrintable

    • x86
    • os_x

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

      ADDITIONAL OS VERSION INFORMATION :
      macOS Sierra 10.12.5

      A DESCRIPTION OF THE PROBLEM :
      Violate the following guidelines.

      "Position buttons as expected. Any buttons in the bottom right of a dialog should dismiss the dialog. An action button, which initiates the dialog’s primary action, should be farthest to the right. A Cancel button should be to the immediate left of the action button. If a third dismissal button exists, it should be to the left of the Cancel button."

      * https://developer.apple.com/macos/human-interface-guidelines/windows-and-views/dialogs/

      Although you may think that this problem is functionally acceptable,
      On osx platform it seems to be a serious problem.
      At the Mac App Store review, there is a potential risk that the application will be rejected.

      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      Open Color Picker's custom color dialog

      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      Button order:

      CANCEL, USE, SAVE(Default Button)
      ACTUAL -
      Button order:

      SAVE(Default Button), USE, CANCEL



      REPRODUCIBILITY :
      This bug can be reproduced always.

      ---------- BEGIN SOURCE ----------
      import javafx.application.Application;
      import javafx.geometry.Insets;
      import javafx.scene.Scene;
      import javafx.scene.control.ColorPicker;
      import javafx.scene.layout.BorderPane;
      import javafx.stage.Stage;

      public class CustomColorTest extends Application{

      @Override
      public void start(Stage primaryStage) throws Exception {

      ColorPicker colorPicker = new ColorPicker();
      BorderPane root = new BorderPane(colorPicker);
      root.setPadding(new Insets(16));
      Scene scene = new Scene(root);
      primaryStage.setScene(scene);
      primaryStage.show();
      }

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

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

            Unassigned Unassigned
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: