< prev index next >

src/org/netbeans/jemmy/operators/JFileChooserOperator.java

Print this page

        

@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
  * published by the Free Software Foundation. Oracle designates this

@@ -41,10 +41,11 @@
 import javax.swing.JList;
 import javax.swing.JTable;
 import javax.swing.JTextField;
 import javax.swing.JToggleButton;
 import javax.swing.ListModel;
+import javax.swing.UIManager;
 import javax.swing.filechooser.FileFilter;
 import javax.swing.filechooser.FileSystemView;
 import javax.swing.filechooser.FileView;
 import javax.swing.plaf.FileChooserUI;
 import javax.swing.table.TableModel;

@@ -338,10 +339,17 @@
      * Returns either a JList or JTable, depending on the implementation.
      *
      * @return a component being used to display directory content.
      */
     public Component getFileList() {
+        int index = 0;
+        // In GTK and Motif L&F, there are two JLists, one is to list folders
+        // and second one one is to list files
+        if (UIManager.getLookAndFeel().getID().equals("Motif")
+                || UIManager.getLookAndFeel().getID().equals("GTK")) {
+            index =1;
+        }
         return innerSearcher.
                 findComponent(new ComponentChooser() {
                     @Override
                     public boolean checkComponent(Component comp) {
                         return (comp != null

@@ -355,11 +363,11 @@
 
                     @Override
                     public String toString() {
                         return "JFileChooserOperator.getFileList.ComponentChooser{description = " + getDescription() + '}';
                     }
-                });
+                }, index);
     }
 
     /**
      * Pushes approve button.
      */

@@ -431,11 +439,19 @@
      */
     public File goHome() {
         getQueueTool().waitEmpty();
         output.printTrace("Go home in JFileChooser\n    : "
                 + toStringSource());
-        JButtonOperator homeOper = new JButtonOperator(getHomeButton());
+        AbstractButtonOperator homeOper;
+        // In Windows and Windows Classic L&F, there is no 'Go Home' button,
+        // but there is a toggle button to go desktop. In Windows platform
+        // 'Go Home' button usually navigates to Desktop only.
+        if(UIManager.getLookAndFeel().getID().equals("Windows")) {
+            homeOper =new JToggleButtonOperator(this, 1);
+        } else {
+            homeOper = new JButtonOperator(getHomeButton());
+        }
         homeOper.copyEnvironment(this);
         homeOper.setOutput(output.createErrorOutput());
         homeOper.push();
         waitPainted(-1);
         return getCurrentDirectory();
< prev index next >