1 /*
2 * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. Oracle designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
450 }
451
452 /**
453 * set the entry of the new dir with f
454 */
455 @SuppressWarnings("deprecation")
456 void setFilterEntry(String d, String f) {
457 File fe = new File(d);
458
459 if (fe.isDirectory() && fe.canRead()) {
460 // Fixed 6260659: File Name set programmatically in FileDialog is overridden during navigation, XToolkit
461 // Here we restoring Motif behaviour
462 setSelectionField(target.getFile());
463
464 if (f.equals("")) {
465 f = "*";
466 setFilterField(f);
467 } else {
468 setFilterField(f);
469 }
470 String l[];
471
472 if (f.equals("*")) {
473 l = fe.list();
474 } else {
475 // REMIND: fileDialogFilter is not implemented yet
476 FileDialogFilter ff = new FileDialogFilter(f);
477 l = fe.list(ff);
478 }
479 // Fixed 6358953: handling was added in case of I/O error happens
480 if (l == null) {
481 this.dir = getParentDirectory();
482 return;
483 }
484 directoryList.clear();
485 fileList.clear();
486 directoryList.setVisible(false);
487 fileList.setVisible(false);
488
489 directoryList.addItem("..");
490 Arrays.sort(l);
807 if (b == true){
808 // See 6240074 for more information
809 choicePeer.addXChoicePeerListener(this);
810 KeyboardFocusManager.getCurrentKeyboardFocusManager()
811 .addKeyEventDispatcher(this);
812 }else{
813 // See 6240074 for more information
814 choicePeer.removeXChoicePeerListener();
815 KeyboardFocusManager.getCurrentKeyboardFocusManager()
816 .removeKeyEventDispatcher(this);
817 }
818
819 selectionField.requestFocusInWindow();
820 }
821
822 /*
823 * Adding items to the path choice based on the text string
824 * See 6240074 for more information
825 */
826 public void addItemsToPathChoice(String text){
827 String dirList[] = getDirList(text);
828 for (int i = 0; i < dirList.length; i++) pathChoice.addItem(dirList[i]);
829 }
830
831 /*
832 * Refresh the unfurled choice at the time of the opening choice according to the text of the path field
833 * See 6240074 for more information
834 */
835 public void unfurledChoiceOpening(ListHelper choiceHelper){
836
837 // When the unfurled choice is opening the first time, we need only to add elements, otherwise we've got exception
838 if (choiceHelper.getItemCount() == 0){
839 addItemsToPathChoice(pathField.getText());
840 return;
841 }
842
843 // If the set of the directories the exactly same as the used to be then dummy
844 if (pathChoice.getItem(0).equals(pathField.getText()))
845 return;
846
847 pathChoice.removeAll();
|
1 /*
2 * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. Oracle designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
450 }
451
452 /**
453 * set the entry of the new dir with f
454 */
455 @SuppressWarnings("deprecation")
456 void setFilterEntry(String d, String f) {
457 File fe = new File(d);
458
459 if (fe.isDirectory() && fe.canRead()) {
460 // Fixed 6260659: File Name set programmatically in FileDialog is overridden during navigation, XToolkit
461 // Here we restoring Motif behaviour
462 setSelectionField(target.getFile());
463
464 if (f.equals("")) {
465 f = "*";
466 setFilterField(f);
467 } else {
468 setFilterField(f);
469 }
470 String[] l;
471
472 if (f.equals("*")) {
473 l = fe.list();
474 } else {
475 // REMIND: fileDialogFilter is not implemented yet
476 FileDialogFilter ff = new FileDialogFilter(f);
477 l = fe.list(ff);
478 }
479 // Fixed 6358953: handling was added in case of I/O error happens
480 if (l == null) {
481 this.dir = getParentDirectory();
482 return;
483 }
484 directoryList.clear();
485 fileList.clear();
486 directoryList.setVisible(false);
487 fileList.setVisible(false);
488
489 directoryList.addItem("..");
490 Arrays.sort(l);
807 if (b == true){
808 // See 6240074 for more information
809 choicePeer.addXChoicePeerListener(this);
810 KeyboardFocusManager.getCurrentKeyboardFocusManager()
811 .addKeyEventDispatcher(this);
812 }else{
813 // See 6240074 for more information
814 choicePeer.removeXChoicePeerListener();
815 KeyboardFocusManager.getCurrentKeyboardFocusManager()
816 .removeKeyEventDispatcher(this);
817 }
818
819 selectionField.requestFocusInWindow();
820 }
821
822 /*
823 * Adding items to the path choice based on the text string
824 * See 6240074 for more information
825 */
826 public void addItemsToPathChoice(String text){
827 String[] dirList = getDirList(text);
828 for (int i = 0; i < dirList.length; i++) pathChoice.addItem(dirList[i]);
829 }
830
831 /*
832 * Refresh the unfurled choice at the time of the opening choice according to the text of the path field
833 * See 6240074 for more information
834 */
835 public void unfurledChoiceOpening(ListHelper choiceHelper){
836
837 // When the unfurled choice is opening the first time, we need only to add elements, otherwise we've got exception
838 if (choiceHelper.getItemCount() == 0){
839 addItemsToPathChoice(pathField.getText());
840 return;
841 }
842
843 // If the set of the directories the exactly same as the used to be then dummy
844 if (pathChoice.getItem(0).equals(pathField.getText()))
845 return;
846
847 pathChoice.removeAll();
|