.. | .. |
---|
5 | 5 | |
---|
6 | 6 | import java.io.*; |
---|
7 | 7 | |
---|
| 8 | +import java.util.ArrayList; |
---|
8 | 9 | import javax.swing.UIManager; |
---|
9 | 10 | import javax.swing.plaf.metal.MetalLookAndFeel; |
---|
10 | 11 | import javax.swing.plaf.ColorUIResource; |
---|
.. | .. |
---|
14 | 15 | |
---|
15 | 16 | //import com.jamonapi.*; |
---|
16 | 17 | public class Grafreed extends Applet implements ActionListener |
---|
17 | | -{ |
---|
18 | | - static boolean NIMBUSLAF = true; |
---|
19 | | - |
---|
| 18 | +{ |
---|
20 | 19 | static int RENDERME = 0; |
---|
21 | 20 | |
---|
22 | 21 | static boolean epsequal = false; |
---|
.. | .. |
---|
62 | 61 | |
---|
63 | 62 | static void ParseFileSystem(java.io.File dir, iResourceCallBack callback, String prefix) |
---|
64 | 63 | { |
---|
65 | | - callback.CallBack(RemovePrefix(dir.toString(),prefix).split("/")); |
---|
| 64 | + callback.ResourceCallBack(RemovePrefix(dir.toString(),prefix).split("/")); |
---|
66 | 65 | File[] listFiles = dir.listFiles(); |
---|
67 | 66 | if (listFiles != null) |
---|
68 | 67 | { |
---|
.. | .. |
---|
75 | 74 | |
---|
76 | 75 | static interface iResourceCallBack |
---|
77 | 76 | { |
---|
78 | | - void CallBack(String[] path); |
---|
| 77 | + void ResourceCallBack(String[] path); |
---|
79 | 78 | } |
---|
80 | 79 | |
---|
81 | 80 | static void ParseResources(String path, iResourceCallBack callback) |
---|
.. | .. |
---|
94 | 93 | String name = entries.nextElement().getName(); |
---|
95 | 94 | |
---|
96 | 95 | if (name.startsWith(path + "/")) |
---|
97 | | - callback.CallBack(RemovePrefix(name, path).split("/")); |
---|
| 96 | + callback.ResourceCallBack(RemovePrefix(name, path + "/").split("/")); |
---|
98 | 97 | } |
---|
99 | 98 | jar.close(); |
---|
100 | 99 | } catch (Exception ex) |
---|
.. | .. |
---|
110 | 109 | try |
---|
111 | 110 | { |
---|
112 | 111 | java.io.File apps = new java.io.File(url.toURI()); |
---|
113 | | - ParseFileSystem(apps, callback, RemovePrefix(url.toString(), "file:")); |
---|
| 112 | + ParseFileSystem(apps, callback, RemovePrefix(url.toString() + "/", "file:")); |
---|
114 | 113 | // for (java.io.File app : apps.listFiles()) |
---|
115 | 114 | // { |
---|
116 | 115 | // //System.out.println(RemovePrefix(app.toString(), RemovePrefix(url.toString(), "file:") + "/")); |
---|
.. | .. |
---|
676 | 675 | |
---|
677 | 676 | public static void main(String argv[]) |
---|
678 | 677 | { |
---|
679 | | - String osArch = System.getProperty("os.arch"); |
---|
| 678 | + String osArch = System.getProperty("os.arch"); |
---|
| 679 | + if (Globals.DEBUG) |
---|
680 | 680 | System.out.println("os.arch = " + osArch); |
---|
681 | 681 | |
---|
682 | 682 | if (argv.length == 0) |
---|
.. | .. |
---|
881 | 881 | // try{Thread.sleep(5000);}catch(Exception e){} |
---|
882 | 882 | // PlayAudio("/Users/nbriere/Downloads/Footsteps-6.wav", 4, 1); |
---|
883 | 883 | |
---|
884 | | - |
---|
885 | 884 | /**/ |
---|
886 | | - if (NIMBUSLAF) |
---|
| 885 | + if (Globals.NIMBUSLAF) |
---|
887 | 886 | { |
---|
888 | 887 | try |
---|
889 | 888 | { |
---|
890 | | - Object o = UIManager.getInstalledLookAndFeels(); |
---|
| 889 | + //Object o = UIManager.getInstalledLookAndFeels(); |
---|
891 | 890 | |
---|
892 | 891 | javax.swing.plaf.metal.MetalLookAndFeel.setCurrentTheme(new javax.swing.plaf.metal.DefaultMetalTheme()); |
---|
893 | 892 | //MetalLookAndFeel.setCurrentTheme(new Theme(Constants.beigeTheme)); |
---|
894 | | - UIManager.setLookAndFeel(new javax.swing.plaf.metal.MetalLookAndFeel()); |
---|
| 893 | + //UIManager.setLookAndFeel(new javax.swing.plaf.metal.MetalLookAndFeel()); |
---|
895 | 894 | |
---|
896 | 895 | UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel"); |
---|
897 | 896 | //UIManager.setLookAndFeel("com.apple.laf.AquaLookAndFeel"); |
---|
898 | 897 | //UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel"); |
---|
899 | 898 | //UIManager.put("nimbusBase", new Color(0,0,0)); |
---|
| 899 | + |
---|
| 900 | + javax.swing.UIDefaults ui = UIManager.getDefaults(); |
---|
| 901 | + |
---|
| 902 | + ui.put("TabbedPane.tabInsets", new javax.swing.plaf.InsetsUIResource(0,8,0,0)); |
---|
| 903 | + |
---|
| 904 | + for (java.util.Enumeration e = ui.keys(); e.hasMoreElements();) |
---|
| 905 | + { |
---|
| 906 | + Object key = e.nextElement(); |
---|
| 907 | + System.out.println(key + " --> " + ui.get(key)); |
---|
| 908 | + } |
---|
900 | 909 | } |
---|
901 | 910 | catch (Exception e) |
---|
902 | 911 | { |
---|
.. | .. |
---|
906 | 915 | { |
---|
907 | 916 | try |
---|
908 | 917 | { |
---|
909 | | - MetalLookAndFeel.setCurrentTheme(new DefaultMetalTheme()); |
---|
910 | | - MetalLookAndFeel.setCurrentTheme(new Theme(Constants.yellowTheme)); |
---|
| 918 | + //Object o = UIManager.getInstalledLookAndFeels(); |
---|
| 919 | + |
---|
| 920 | + MetalLookAndFeel.setCurrentTheme(new javax.swing.plaf.metal.DefaultMetalTheme()); |
---|
| 921 | + //MetalLookAndFeel.setCurrentTheme(new Theme(Constants.yellowTheme)); |
---|
| 922 | + //UIManager.put("ScrollBar.background", new javax.swing.plaf.ColorUIResource(100,0,0)); |
---|
| 923 | + UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel"); |
---|
| 924 | + |
---|
| 925 | + javax.swing.UIDefaults ui = UIManager.getDefaults(); |
---|
| 926 | + |
---|
| 927 | + Object x = ui.get("TabbedPane.background"); |
---|
| 928 | + |
---|
911 | 929 | UIManager.setLookAndFeel(new MetalLookAndFeel()); |
---|
912 | | - //UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel"); |
---|
913 | 930 | //UIManager.setLookAndFeel("com.apple.laf.AquaLookAndFeel"); |
---|
| 931 | + //UIManager.setLookAndFeel("javax.swing.plaf.nimbus.NimbusLookAndFeel"); |
---|
914 | 932 | //UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel"); |
---|
| 933 | + |
---|
| 934 | + ui = UIManager.getDefaults(); |
---|
| 935 | + |
---|
| 936 | + x = ui.get("RadioButton.icon"); |
---|
| 937 | + |
---|
| 938 | + ArrayList gradient = new java.util.ArrayList(5); |
---|
| 939 | + gradient.add(1.0); |
---|
| 940 | + gradient.add(0.0); |
---|
| 941 | + gradient.add(new javax.swing.plaf.ColorUIResource(255,255,255)); |
---|
| 942 | + gradient.add(new javax.swing.plaf.ColorUIResource(192,192,192)); |
---|
| 943 | + gradient.add(new javax.swing.plaf.ColorUIResource(0,0,0)); |
---|
| 944 | + |
---|
| 945 | + ui.put("Button.gradient", gradient); |
---|
| 946 | + |
---|
| 947 | + //ui.put("RadioButton.icon", new CheckBox()); //ObjEditor.GetIcon("icons/white-sphere-icon.png"))); |
---|
| 948 | + ui.put("CheckBox.icon", new CheckBox()); //ObjEditor.GetIcon("icons/white-sphere-icon.png"))); |
---|
| 949 | + //ui.put("CheckBoxMenuItem.checkIcon", ObjEditor.GetIcon("icons/white-sphere-icon.png")); |
---|
| 950 | + |
---|
| 951 | + ui.put("Slider.foreground", new javax.swing.plaf.ColorUIResource(0,0,0)); |
---|
| 952 | + ui.put("Slider.horizontalThumbIcon", ObjEditor.GetIcon("icons/white-sphere-icon.png")); |
---|
| 953 | + |
---|
| 954 | + /* |
---|
| 955 | +TabbedPane.unselectedBackground Color |
---|
| 956 | +TabbedPane.unselectedTabBackground Color |
---|
| 957 | +TabbedPane.unselectedTabForeground Color |
---|
| 958 | +TabbedPane.unselectedTabHighlight Color |
---|
| 959 | +TabbedPane.unselectedTabShadow |
---|
| 960 | + */ |
---|
| 961 | +// ui.put("TabbedPane.contentAreaColor", new javax.swing.plaf.ColorUIResource(0,100,0)); |
---|
| 962 | + //ui.put("TabbedPane.selected", new javax.swing.plaf.ColorUIResource(200,0,200)); |
---|
| 963 | + |
---|
| 964 | + ui.put("TabbedPane.background", new javax.swing.plaf.ColorUIResource(150,150,150)); |
---|
| 965 | + ui.put("TabbedPane.foreground", new javax.swing.plaf.ColorUIResource(50,50,50)); |
---|
| 966 | + ui.put("TabbedPane.light", new javax.swing.plaf.ColorUIResource(255,255,255)); |
---|
| 967 | + ui.put("TabbedPane.selectedForeground", new javax.swing.plaf.ColorUIResource(0,0,0)); |
---|
| 968 | + ui.put("TabbedPane.selectHighlight", new javax.swing.plaf.ColorUIResource(255,255,255)); |
---|
| 969 | + ui.put("TabbedPane.darkShadow", new javax.swing.plaf.ColorUIResource(0,0,0)); |
---|
| 970 | + |
---|
| 971 | +// ui.put("TabbedPane.shadow", new javax.swing.plaf.ColorUIResource(200,0,0)); |
---|
| 972 | +// ui.put("TabbedPane.tabAreaBackground", new javax.swing.plaf.ColorUIResource(0,200,0)); |
---|
| 973 | +// ui.put("TabbedPane.unselectedBackground", new javax.swing.plaf.ColorUIResource(200,200,0)); |
---|
| 974 | +// ui.put("TabbedPane.unselectedTabBackground", new javax.swing.plaf.ColorUIResource(0,0,200)); |
---|
| 975 | +// ui.put("TabbedPane.unselectedTabForeground", new javax.swing.plaf.ColorUIResource(200,0,200)); |
---|
| 976 | +// ui.put("TabbedPane.unselectedTabHighlight", new javax.swing.plaf.ColorUIResource(0,200,200)); |
---|
| 977 | +// ui.put("TabbedPane.unselectedTabShadow", new javax.swing.plaf.ColorUIResource(200,200,200)); |
---|
| 978 | + |
---|
| 979 | + ui.put("TabbedPane.textIconGap", 0); |
---|
| 980 | + ui.put("TabbedPane.contentBorderInsets", new javax.swing.plaf.InsetsUIResource(0,0,0,0)); |
---|
| 981 | + ui.put("TabbedPane.tabAreaInsets", new javax.swing.plaf.InsetsUIResource(1,1,0,0)); |
---|
| 982 | + ui.put("TabbedPane.tabInsets", new javax.swing.plaf.InsetsUIResource(0,8,0,0)); |
---|
| 983 | + |
---|
| 984 | + Object openIcon2 = ui.get("Tree.openIcon"); |
---|
| 985 | + |
---|
| 986 | + ui.put("Tree.openIcon", ObjEditor.GetIcon("icons/folderopen.png")); |
---|
| 987 | + ui.put("Tree.closedIcon", ObjEditor.GetIcon("icons/folderclose.png")); |
---|
| 988 | + ui.put("Tree.leafIcon", ObjEditor.GetIcon("icons/file.png")); |
---|
| 989 | + |
---|
| 990 | + //javax.swing.plaf.metal.MetalIconFactory.getHorizontalSliderThumbIcon(). |
---|
| 991 | + Object o = ui.get("Slider.horizontalThumbIcon"); |
---|
| 992 | + |
---|
| 993 | + gradient = new java.util.ArrayList(5); |
---|
| 994 | + gradient.add(1.0); |
---|
| 995 | + gradient.add(0.0); |
---|
| 996 | + gradient.add(new javax.swing.plaf.ColorUIResource(192,192,192)); |
---|
| 997 | + gradient.add(new javax.swing.plaf.ColorUIResource(255,255,255)); |
---|
| 998 | + gradient.add(new javax.swing.plaf.ColorUIResource(0,0,0)); |
---|
| 999 | + |
---|
| 1000 | + ui.put("ToggleButton.gradient", gradient); |
---|
| 1001 | + //ui.put("Button[MouseOver].backgroundPainter", new com.sun.java.swing.plaf.nimbus.ButtonPainter()); |
---|
| 1002 | + //ui.put("Button.highlight", new javax.swing.plaf.ColorUIResource(155,155,155)); |
---|
| 1003 | + |
---|
| 1004 | + for (java.util.Enumeration e = ui.keys(); e.hasMoreElements();) |
---|
| 1005 | + { |
---|
| 1006 | + Object key = e.nextElement(); |
---|
| 1007 | + //System.out.println(key + " --> " + ui.get(key)); |
---|
| 1008 | + } |
---|
915 | 1009 | } catch (Exception e) |
---|
916 | 1010 | { |
---|
917 | 1011 | } |
---|
.. | .. |
---|
922 | 1016 | |
---|
923 | 1017 | //Monitor mon=MonitorFactory.start("myFirstMonitor"); |
---|
924 | 1018 | standAlone = true; |
---|
925 | | - grafreed = new Grafreed(); |
---|
| 1019 | + |
---|
| 1020 | + grafreed = new Grafreed(); |
---|
| 1021 | + |
---|
926 | 1022 | grafreed.materials = ReadGFD(grafreed.getClass().getClassLoader().getResourceAsStream("gfd/materials.gfd")); |
---|
927 | 1023 | |
---|
928 | 1024 | grafreed.universe = new cGroup(); |
---|
929 | 1025 | grafreed.universe.name = "Grafreed"; |
---|
930 | 1026 | grafreed.universe.material = new cMaterial(); |
---|
| 1027 | + grafreed.universe.skyboxname = "cubemaps/penguins-skyboxes/yonder"; |
---|
| 1028 | + grafreed.universe.skyboxext = "jpg"; |
---|
| 1029 | + |
---|
931 | 1030 | // theApplet3D.universe.textures = CameraPane.DEFAULT_TEXTURE; |
---|
932 | 1031 | |
---|
933 | 1032 | grafreed.universe.root = true; |
---|
.. | .. |
---|
935 | 1034 | //mon.stop(); |
---|
936 | 1035 | //System.out.println(mon); |
---|
937 | 1036 | //timeflow.app.TimeflowAppLauncher.GetTimeFlow(); |
---|
| 1037 | + |
---|
| 1038 | + javax.swing.ToolTipManager.sharedInstance().setEnabled(Globals.TOOLTIPS); |
---|
938 | 1039 | } |
---|
939 | 1040 | |
---|
| 1041 | + static class CheckBox extends javax.swing.plaf.metal.MetalCheckBoxIcon |
---|
| 1042 | + { |
---|
| 1043 | + java.awt.image.BufferedImage image; |
---|
| 1044 | + |
---|
| 1045 | + CheckBox() |
---|
| 1046 | + { |
---|
| 1047 | + try |
---|
| 1048 | + { |
---|
| 1049 | + image = javax.imageio.ImageIO.read(ObjEditor.class.getClassLoader().getResourceAsStream("icons/checkbox.png")); |
---|
| 1050 | + } |
---|
| 1051 | + catch (Exception e) |
---|
| 1052 | + { |
---|
| 1053 | + } |
---|
| 1054 | + } |
---|
| 1055 | + |
---|
| 1056 | + protected void drawCheck(Component c, Graphics g, int x, int y) |
---|
| 1057 | + { |
---|
| 1058 | + super.drawCheck(c, g, x, y); |
---|
| 1059 | + } |
---|
| 1060 | + |
---|
| 1061 | + public void paintIcon(Component c, Graphics g, int x, int y) |
---|
| 1062 | + { |
---|
| 1063 | + g.drawImage(image, x-1, y-1, 19, 19, null); |
---|
| 1064 | + super.paintIcon(c, g, x+2, y+2); |
---|
| 1065 | + } |
---|
| 1066 | + } |
---|
| 1067 | + |
---|
940 | 1068 | static Object3D materials; |
---|
941 | 1069 | |
---|
942 | 1070 | static Object3D ReadGFD(java.io.InputStream istream) |
---|
.. | .. |
---|
950 | 1078 | java.io.ObjectInputStream p = new java.io.ObjectInputStream(zstream); |
---|
951 | 1079 | |
---|
952 | 1080 | readobj = (Object3D) p.readObject(); |
---|
| 1081 | + p.close(); |
---|
| 1082 | + zstream.close(); |
---|
953 | 1083 | istream.close(); |
---|
954 | 1084 | |
---|
955 | 1085 | readobj.ResetDisplayList(); |
---|
.. | .. |
---|
963 | 1093 | java.io.ObjectInputStream p = new java.io.ObjectInputStream(istream); |
---|
964 | 1094 | |
---|
965 | 1095 | readobj = (Object3D) p.readObject(); |
---|
| 1096 | + p.close(); |
---|
966 | 1097 | istream.close(); |
---|
967 | 1098 | |
---|
968 | 1099 | readobj.ResetDisplayList(); |
---|
.. | .. |
---|
1096 | 1227 | |
---|
1097 | 1228 | static public Object clone(Object o) |
---|
1098 | 1229 | { |
---|
| 1230 | + if (o instanceof Object3D) |
---|
| 1231 | + { |
---|
| 1232 | + assert(((Object3D)o).parent == null); |
---|
| 1233 | + } |
---|
| 1234 | + |
---|
1099 | 1235 | if (o == null) |
---|
1100 | 1236 | return null; |
---|
1101 | 1237 | |
---|