home *** CD-ROM | disk | FTP | other *** search
- package sun.activator.plugin.win32;
-
- import java.awt.Frame;
- import java.awt.Panel;
- import java.lang.reflect.Field;
- import java.lang.reflect.InvocationTargetException;
- import java.lang.reflect.Method;
- import java.net.URL;
- import java.util.Hashtable;
- import sun.activator.plugin.URLDecoder;
-
- abstract class PluginObject {
- PluginFrame frame = null;
- PluginPanel panel = null;
- URL documentURL;
- // $FF: renamed from: id int
- int field_0 = -1;
- boolean javaEnabled = true;
- Hashtable atts = new Hashtable(20);
- int handle = 0;
-
- PluginObject(String[] var1, String[] var2, int var3, boolean var4) {
- for(int var5 = 0; var5 < var1.length; ++var5) {
- this.atts.put(var1[var5].toLowerCase(), var2[var5]);
- }
-
- this.field_0 = var3;
- this.javaEnabled = var4;
- }
-
- PluginFrame createFrame(int var1, int var2, int var3, int var4) {
- return new PluginFrame(var1, var2, var3, var4);
- }
-
- abstract PluginPanel createPanel(URL var1, boolean var2);
-
- Frame getFrame() {
- return this.frame;
- }
-
- Object getLiveConnectObject() {
- try {
- Object var1 = null;
- synchronized(this){}
-
- try {
- while(this.panel == null) {
- this.wait();
- }
- } catch (Throwable var5) {
- throw var5;
- }
-
- for(var1 = this.panel.getJavaObject(); var1 == null; var1 = this.panel.getJavaObject()) {
- Thread.sleep(200L);
- }
-
- return var1;
- } catch (Exception var6) {
- System.err.println("Exception: " + var6);
- return null;
- }
- }
-
- public String getParameter(String var1) {
- return (String)this.atts.get(var1.toLowerCase());
- }
-
- Object getPluginField(String var1) {
- try {
- Object var2 = this.getLiveConnectObject();
- Class var3 = var2.getClass();
- Field[] var4 = var3.getFields();
-
- for(int var5 = 0; var5 < var4.length; ++var5) {
- String var6 = var4[var5].getName();
- if (var6.equals(var1)) {
- return var4[var5].get(var2);
- }
- }
- } catch (IllegalAccessException var7) {
- System.err.println("Illegal Access Exception: " + var7);
- } catch (Exception var8) {
- System.err.println("Exception: " + var8);
- }
-
- return null;
- }
-
- Object invokePluginMethod(String var1, String[] var2) {
- try {
- Object var3 = this.getLiveConnectObject();
- Class var4 = var3.getClass();
- Method[] var5 = var4.getMethods();
-
- for(int var6 = 0; var6 < var5.length; ++var6) {
- String var7 = var5[var6].getName();
- if (var7.equals(var1)) {
- Class[] var8 = var5[var6].getParameterTypes();
- if (var2 == null || var8 == null || var8.length == var2.length) {
- Object[] var9 = null;
- if (var2 != null && var2.length > 0) {
- var9 = new Object[var2.length];
- }
-
- for(int var10 = 0; var2 != null && var10 < var2.length; ++var10) {
- String var11 = var8[var10].getName();
- if (!var11.equals("java.lang.Integer") && !var11.equals("int")) {
- if (!var11.equals("java.lang.Float") && !var11.equals("float")) {
- if (!var11.equals("java.lang.Double") && !var11.equals("double")) {
- if (!var11.equals("java.lang.Byte") && !var11.equals("byte")) {
- if (!var11.equals("java.lang.Long") && !var11.equals("long")) {
- if (!var11.equals("java.lang.Short") && !var11.equals("short")) {
- if (!var11.equals("java.lang.Character") && !var11.equals("char")) {
- if (!var11.equals("java.lang.Boolean") && !var11.equals("boolean")) {
- var9[var10] = var2[var10];
- } else {
- var9[var10] = Boolean.valueOf(var2[var10]);
- }
- } else {
- var9[var10] = new Character(var2[var10].charAt(0));
- }
- } else {
- var9[var10] = Short.valueOf(var2[var10]);
- }
- } else {
- var9[var10] = Long.valueOf(var2[var10]);
- }
- } else {
- var9[var10] = Byte.valueOf(var2[var10]);
- }
- } else {
- var9[var10] = Double.valueOf(var2[var10]);
- }
- } else {
- var9[var10] = Float.valueOf(var2[var10]);
- }
- } else {
- var9[var10] = Integer.valueOf(var2[var10]);
- }
- }
-
- return var5[var6].invoke(var3, var9);
- }
- }
- }
- } catch (IllegalAccessException var12) {
- System.err.println("Illegal Access Exception: " + var12);
- } catch (IllegalArgumentException var13) {
- System.err.println("Illegal Argument Exception: " + var13);
- } catch (InvocationTargetException var14) {
- System.err.println("Invocation Target Exception: " + var14);
- } catch (Exception var15) {
- System.err.println("Exception: " + var15);
- }
-
- return null;
- }
-
- boolean isActive() {
- boolean var1 = false;
- if (this.panel != null) {
- var1 = this.panel.isActive();
- }
-
- return var1;
- }
-
- synchronized void setDocumentURL(String var1) {
- var1 = URLDecoder.decode(var1);
-
- try {
- this.documentURL = new URL(var1);
- if (this.panel == null) {
- this.panel = this.createPanel(this.documentURL, this.javaEnabled);
- this.notifyAll();
- }
-
- this.startPlugin();
- } catch (Throwable var3) {
- var3.printStackTrace();
- }
-
- }
-
- void setPluginField(String var1, String var2) {
- try {
- Object var3 = this.getLiveConnectObject();
- Class var4 = var3.getClass();
- Field[] var5 = var4.getFields();
-
- for(int var6 = 0; var6 < var5.length; ++var6) {
- String var7 = var5[var6].getName();
- if (var7.equals(var1)) {
- String var8 = var5[var6].getType().getName();
- if (var8.equals("int")) {
- var5[var6].setInt(var3, Integer.valueOf(var2));
- return;
- }
-
- if (var8.equals("float")) {
- var5[var6].setFloat(var3, Float.valueOf(var2));
- return;
- }
-
- if (var8.equals("double")) {
- var5[var6].setDouble(var3, Double.valueOf(var2));
- return;
- }
-
- if (var8.equals("byte")) {
- var5[var6].setByte(var3, Byte.valueOf(var2));
- return;
- }
-
- if (var8.equals("long")) {
- var5[var6].setLong(var3, Long.valueOf(var2));
- return;
- }
-
- if (var8.equals("short")) {
- var5[var6].setShort(var3, Short.valueOf(var2));
- return;
- }
-
- if (var8.equals("char")) {
- var5[var6].setChar(var3, var2.charAt(0));
- return;
- }
-
- if (var8.equals("boolean")) {
- var5[var6].setBoolean(var3, Boolean.valueOf(var2));
- return;
- }
-
- Object var9;
- if (var8.equals("java.lang.Integer")) {
- var9 = Integer.valueOf(var2);
- } else if (var8.equals("java.lang.Float")) {
- var9 = Float.valueOf(var2);
- } else if (var8.equals("java.lang.Double")) {
- var9 = Double.valueOf(var2);
- } else if (var8.equals("java.lang.Byte")) {
- var9 = Byte.valueOf(var2);
- } else if (var8.equals("java.lang.Long")) {
- var9 = Long.valueOf(var2);
- } else if (var8.equals("java.lang.Short")) {
- var9 = Short.valueOf(var2);
- } else if (var8.equals("java.lang.Character")) {
- var9 = new Character(var2.charAt(0));
- } else if (var8.equals("java.lang.Boolean")) {
- var9 = Boolean.valueOf(var2);
- } else {
- var9 = var2;
- }
-
- var5[var6].set(var3, var9);
- return;
- }
- }
- } catch (IllegalArgumentException var10) {
- System.err.println("Illegal Argument Exception: " + var10);
- } catch (IllegalAccessException var11) {
- System.err.println("Illegal Access Exception: " + var11);
- } catch (Exception var12) {
- System.err.println("Exception: " + var12);
- }
-
- }
-
- Frame setWindow(int var1) {
- if (this.handle == var1) {
- return this.frame;
- } else {
- if (this.frame != null) {
- if (this.panel != null) {
- this.frame.remove(this.panel.getPanel());
- }
-
- this.frame.dispose();
- }
-
- this.frame = null;
- this.handle = var1;
- if (var1 != 0) {
- this.frame = this.createFrame(var1, this.field_0, Integer.parseInt(this.getParameter("width")), Integer.parseInt(this.getParameter("height")));
- this.startPlugin();
- }
-
- return this.frame;
- }
- }
-
- void startPlugin() {
- if (this.frame != null && this.panel != null) {
- Panel var1 = this.panel.getPanel();
- if (var1 != null) {
- this.frame.add(var1);
- this.frame.setVisible(true);
- }
-
- this.panel.startPanel();
- }
-
- }
-
- void stopPlugin() {
- if (this.panel != null) {
- if (this.frame != null) {
- this.frame.setVisible(false);
- }
-
- if (this.panel.isActive()) {
- this.panel.stopPanel();
- }
-
- if (this.frame != null) {
- Panel var1 = this.panel.getPanel();
- this.frame.remove(var1);
- this.frame.dispose();
- this.frame = null;
- }
- }
-
- }
- }
-