JAL-1807 update
[jalviewjs.git] / site / swingjs / j2s / javax / swing / filechooser / FileNameExtensionFilter.js
1 Clazz.declarePackage ("javax.swing.filechooser");
2 Clazz.load (["javax.swing.filechooser.FileFilter"], "javax.swing.filechooser.FileNameExtensionFilter", ["java.lang.IllegalArgumentException", "java.util.Arrays"], function () {
3 c$ = Clazz.decorateAsClass (function () {
4 this.description = null;
5 this.extensions = null;
6 this.lowerCaseExtensions = null;
7 Clazz.instantialize (this, arguments);
8 }, javax.swing.filechooser, "FileNameExtensionFilter", javax.swing.filechooser.FileFilter);
9 Clazz.makeConstructor (c$, 
10 function (description, extensions) {
11 Clazz.superConstructor (this, javax.swing.filechooser.FileNameExtensionFilter, []);
12 if (extensions == null || extensions.length == 0) {
13 throw  new IllegalArgumentException ("Extensions must be non-null and not empty");
14 }this.description = description;
15 this.extensions =  new Array (extensions.length);
16 this.lowerCaseExtensions =  new Array (extensions.length);
17 for (var i = 0; i < extensions.length; i++) {
18 if (extensions[i] == null || extensions[i].length == 0) {
19 throw  new IllegalArgumentException ("Each extension must be non-null and not empty");
20 }this.extensions[i] = extensions[i];
21 this.lowerCaseExtensions[i] = extensions[i].toLowerCase ();
22 }
23 }, "~S,~A");
24 Clazz.overrideMethod (c$, "accept", 
25 function (f) {
26 if (f != null) {
27 if (f.isDirectory ()) {
28 return true;
29 }var fileName = f.getName ();
30 var i = fileName.lastIndexOf ('.');
31 if (i > 0 && i < fileName.length - 1) {
32 var desiredExtension = fileName.substring (i + 1).toLowerCase ();
33 for (var extension, $extension = 0, $$extension = this.lowerCaseExtensions; $extension < $$extension.length && ((extension = $$extension[$extension]) || true); $extension++) {
34 if (desiredExtension.equals (extension)) {
35 return true;
36 }}
37 }}return false;
38 }, "java.io.File");
39 Clazz.overrideMethod (c$, "getDescription", 
40 function () {
41 return this.description;
42 });
43 Clazz.defineMethod (c$, "getExtensions", 
44 function () {
45 var result =  new Array (this.extensions.length);
46 System.arraycopy (this.extensions, 0, result, 0, this.extensions.length);
47 return result;
48 });
49 Clazz.defineMethod (c$, "toString", 
50 function () {
51 return Clazz.superCall (this, javax.swing.filechooser.FileNameExtensionFilter, "toString", []) + "[description=" + this.getDescription () + " extensions=" + java.util.Arrays.asList (this.getExtensions ()) + "]";
52 });
53 });