import java.io.File;
import javax.swing.*;
import javax.swing.filechooser.*;

public class DRW_ASM_PRT_Filter extends FileFilter {
	// Accept all directories, prt, asm & drw files.
	public boolean accept(File f) {
		if (f.isDirectory()) {
            return true;
        }

        String ext = f.getName().toLowerCase();
		if (ext != null) {
            if (
				ext.endsWith(".drw")||
            	ext.endsWith(".drw.1")||ext.endsWith(".drw.2")||ext.endsWith(".drw.3")||
				ext.endsWith(".drw.4" )||ext.endsWith(".drw.5")||ext.endsWith(".drw.6")||ext.endsWith(".drw.7")||
				ext.endsWith(".drw.8" )||ext.endsWith(".drw.9")||ext.endsWith(".drw.10")||
				ext.endsWith(".drw.11")||ext.endsWith(".drw.12")||ext.endsWith(".drw.13")||
				ext.endsWith(".drw.14" )||ext.endsWith(".drw.15")||ext.endsWith(".drw.16")||ext.endsWith(".drw.17")||
				ext.endsWith(".drw.18" )||ext.endsWith(".drw.19")||ext.endsWith(".drw.20")||
				ext.endsWith(".drw.21")||ext.endsWith(".drw.22")||ext.endsWith(".drw.23")||
				ext.endsWith(".drw.24" )||ext.endsWith(".drw.25")||ext.endsWith(".drw.26")||ext.endsWith(".drw.27")||
				ext.endsWith(".drw.28" )||ext.endsWith(".drw.29")||ext.endsWith(".drw.30")||
				ext.endsWith(".drw.31")||ext.endsWith(".drw.32")||ext.endsWith(".drw.33")||
				ext.endsWith(".drw.34" )||ext.endsWith(".drw.35")||ext.endsWith(".drw.36")||ext.endsWith(".drw.37")||
				ext.endsWith(".drw.38" )||ext.endsWith(".drw.39")||ext.endsWith(".drw.40")||
				ext.endsWith(".drw.41")||ext.endsWith(".drw.42")||ext.endsWith(".drw.43")||
				ext.endsWith(".drw.44" )||ext.endsWith(".drw.45")||ext.endsWith(".drw.46")||ext.endsWith(".drw.47")||
				ext.endsWith(".drw.48" )||ext.endsWith(".drw.49")||ext.endsWith(".drw.50")||
				ext.endsWith(".drw.51")||ext.endsWith(".drw.52")||ext.endsWith(".drw.53")||
				ext.endsWith(".drw.54" )||ext.endsWith(".drw.55")||ext.endsWith(".drw.56")||ext.endsWith(".drw.57")||
				ext.endsWith(".drw.58" )||ext.endsWith(".drw.59")||ext.endsWith(".drw.60")||
				ext.endsWith(".drw.61")||ext.endsWith(".drw.62")||ext.endsWith(".drw.63")||
				ext.endsWith(".drw.64" )||ext.endsWith(".drw.65")||ext.endsWith(".drw.66")||ext.endsWith(".drw.67")||
				ext.endsWith(".drw.68" )||ext.endsWith(".drw.69")||ext.endsWith(".drw.70")||
				ext.endsWith(".drw.71")||ext.endsWith(".drw.72")||ext.endsWith(".drw.73")||
				ext.endsWith(".drw.74" )||ext.endsWith(".drw.75")||ext.endsWith(".drw.76")||ext.endsWith(".drw.77")||
				ext.endsWith(".drw.78" )||ext.endsWith(".drw.79")||ext.endsWith(".drw.80")||
				ext.endsWith(".drw.81")||ext.endsWith(".drw.82")||ext.endsWith(".drw.83")||
				ext.endsWith(".drw.84" )||ext.endsWith(".drw.85")||ext.endsWith(".drw.86")||ext.endsWith(".drw.87")||
				ext.endsWith(".drw.88" )||ext.endsWith(".drw.89")||ext.endsWith(".drw.90")||
				ext.endsWith(".drw.91")||ext.endsWith(".drw.92")||ext.endsWith(".drw.93")||
				ext.endsWith(".drw.94" )||ext.endsWith(".drw.95")||ext.endsWith(".drw.96")||ext.endsWith(".drw.97")||
				ext.endsWith(".drw.98" )||ext.endsWith(".drw.99")||
				ext.endsWith(".asm")||
            	ext.endsWith(".asm.1")||ext.endsWith(".asm.2")||ext.endsWith(".asm.3")||
				ext.endsWith(".asm.4" )||ext.endsWith(".asm.5")||ext.endsWith(".asm.6")||ext.endsWith(".asm.7")||
				ext.endsWith(".asm.8" )||ext.endsWith(".asm.9")||ext.endsWith(".asm.10")||
				ext.endsWith(".asm.11")||ext.endsWith(".asm.12")||ext.endsWith(".asm.13")||
				ext.endsWith(".asm.14" )||ext.endsWith(".asm.15")||ext.endsWith(".asm.16")||ext.endsWith(".asm.17")||
				ext.endsWith(".asm.18" )||ext.endsWith(".asm.19")||ext.endsWith(".asm.20")||
				ext.endsWith(".asm.21")||ext.endsWith(".asm.22")||ext.endsWith(".asm.23")||
				ext.endsWith(".asm.24" )||ext.endsWith(".asm.25")||ext.endsWith(".asm.26")||ext.endsWith(".asm.27")||
				ext.endsWith(".asm.28" )||ext.endsWith(".asm.29")||ext.endsWith(".asm.30")||
				ext.endsWith(".asm.31")||ext.endsWith(".asm.32")||ext.endsWith(".asm.33")||
				ext.endsWith(".asm.34" )||ext.endsWith(".asm.35")||ext.endsWith(".asm.36")||ext.endsWith(".asm.37")||
				ext.endsWith(".asm.38" )||ext.endsWith(".asm.39")||ext.endsWith(".asm.40")||
				ext.endsWith(".asm.41")||ext.endsWith(".asm.42")||ext.endsWith(".asm.43")||
				ext.endsWith(".asm.44" )||ext.endsWith(".asm.45")||ext.endsWith(".asm.46")||ext.endsWith(".asm.47")||
				ext.endsWith(".asm.48" )||ext.endsWith(".asm.49")||ext.endsWith(".asm.50")||
				ext.endsWith(".asm.51")||ext.endsWith(".asm.52")||ext.endsWith(".asm.53")||
				ext.endsWith(".asm.54" )||ext.endsWith(".asm.55")||ext.endsWith(".asm.56")||ext.endsWith(".asm.57")||
				ext.endsWith(".asm.58" )||ext.endsWith(".asm.59")||ext.endsWith(".asm.60")||
				ext.endsWith(".asm.61")||ext.endsWith(".asm.62")||ext.endsWith(".asm.63")||
				ext.endsWith(".asm.64" )||ext.endsWith(".asm.65")||ext.endsWith(".asm.66")||ext.endsWith(".asm.67")||
				ext.endsWith(".asm.68" )||ext.endsWith(".asm.69")||ext.endsWith(".asm.70")||
				ext.endsWith(".asm.71")||ext.endsWith(".asm.72")||ext.endsWith(".asm.73")||
				ext.endsWith(".asm.74" )||ext.endsWith(".asm.75")||ext.endsWith(".asm.76")||ext.endsWith(".asm.77")||
				ext.endsWith(".asm.78" )||ext.endsWith(".asm.79")||ext.endsWith(".asm.80")||
				ext.endsWith(".asm.81")||ext.endsWith(".asm.82")||ext.endsWith(".asm.83")||
				ext.endsWith(".asm.84" )||ext.endsWith(".asm.85")||ext.endsWith(".asm.86")||ext.endsWith(".asm.87")||
				ext.endsWith(".asm.88" )||ext.endsWith(".asm.89")||ext.endsWith(".asm.90")||
				ext.endsWith(".asm.91")||ext.endsWith(".asm.92")||ext.endsWith(".asm.93")||
				ext.endsWith(".asm.94" )||ext.endsWith(".asm.95")||ext.endsWith(".asm.96")||ext.endsWith(".asm.97")||
				ext.endsWith(".asm.98" )||ext.endsWith(".asm.99")||
				ext.endsWith(".prt")||
            	ext.endsWith(".prt.1")||ext.endsWith(".prt.2")||ext.endsWith(".prt.3")||
				ext.endsWith(".prt.4" )||ext.endsWith(".prt.5")||ext.endsWith(".prt.6")||ext.endsWith(".prt.7")||
				ext.endsWith(".prt.8" )||ext.endsWith(".prt.9")||ext.endsWith(".prt.10")||
				ext.endsWith(".prt.11")||ext.endsWith(".prt.12")||ext.endsWith(".prt.13")||
				ext.endsWith(".prt.14" )||ext.endsWith(".prt.15")||ext.endsWith(".prt.16")||ext.endsWith(".prt.17")||
				ext.endsWith(".prt.18" )||ext.endsWith(".prt.19")||ext.endsWith(".prt.20")||
				ext.endsWith(".prt.21")||ext.endsWith(".prt.22")||ext.endsWith(".prt.23")||
				ext.endsWith(".prt.24" )||ext.endsWith(".prt.25")||ext.endsWith(".prt.26")||ext.endsWith(".prt.27")||
				ext.endsWith(".prt.28" )||ext.endsWith(".prt.29")||ext.endsWith(".prt.30")||
				ext.endsWith(".prt.31")||ext.endsWith(".prt.32")||ext.endsWith(".prt.33")||
				ext.endsWith(".prt.34" )||ext.endsWith(".prt.35")||ext.endsWith(".prt.36")||ext.endsWith(".prt.37")||
				ext.endsWith(".prt.38" )||ext.endsWith(".prt.39")||ext.endsWith(".prt.40")||
				ext.endsWith(".prt.41")||ext.endsWith(".prt.42")||ext.endsWith(".prt.43")||
				ext.endsWith(".prt.44" )||ext.endsWith(".prt.45")||ext.endsWith(".prt.46")||ext.endsWith(".prt.47")||
				ext.endsWith(".prt.48" )||ext.endsWith(".prt.49")||ext.endsWith(".prt.50")||
				ext.endsWith(".prt.51")||ext.endsWith(".prt.52")||ext.endsWith(".prt.53")||
				ext.endsWith(".prt.54" )||ext.endsWith(".prt.55")||ext.endsWith(".prt.56")||ext.endsWith(".prt.57")||
				ext.endsWith(".prt.58" )||ext.endsWith(".prt.59")||ext.endsWith(".prt.60")||
				ext.endsWith(".prt.61")||ext.endsWith(".prt.62")||ext.endsWith(".prt.63")||
				ext.endsWith(".prt.64" )||ext.endsWith(".prt.65")||ext.endsWith(".prt.66")||ext.endsWith(".prt.67")||
				ext.endsWith(".prt.68" )||ext.endsWith(".prt.69")||ext.endsWith(".prt.70")||
				ext.endsWith(".prt.71")||ext.endsWith(".prt.72")||ext.endsWith(".prt.73")||
				ext.endsWith(".prt.74" )||ext.endsWith(".prt.75")||ext.endsWith(".prt.76")||ext.endsWith(".prt.77")||
				ext.endsWith(".prt.78" )||ext.endsWith(".prt.79")||ext.endsWith(".prt.80")||
				ext.endsWith(".prt.81")||ext.endsWith(".prt.82")||ext.endsWith(".prt.83")||
				ext.endsWith(".prt.84" )||ext.endsWith(".prt.85")||ext.endsWith(".prt.86")||ext.endsWith(".prt.87")||
				ext.endsWith(".prt.88" )||ext.endsWith(".prt.89")||ext.endsWith(".prt.90")||
				ext.endsWith(".prt.91")||ext.endsWith(".prt.92")||ext.endsWith(".prt.93")||
				ext.endsWith(".prt.94" )||ext.endsWith(".prt.95")||ext.endsWith(".prt.96")||ext.endsWith(".prt.97")||
				ext.endsWith(".prt.98" )||ext.endsWith(".prt.99")
				)
           	{
				return true;
			}
			else {
                return false;
            }
    	}

        return false;
    }

    public String getDescription() {
        return "DRW/ASM/PRT Files";
    }
}
