Project

General

Profile

Defect #750 » patch.txt

the patch containing the fix - H Hardut, 10/31/2013 06:21 PM

 
1
### Eclipse Workspace Patch 1.0
2
#P web_client_utils
3
Index: src/com/servoy/plugins/BehaviorProvider.java
4
===================================================================
5
--- src/com/servoy/plugins/BehaviorProvider.java	(revision 54)
6
+++ src/com/servoy/plugins/BehaviorProvider.java	(working copy)
7
@@ -9,6 +9,7 @@
8
 
9
 package com.servoy.plugins;
10
 
11
+import java.lang.reflect.Method;
12
 import java.util.ArrayList;
13
 import java.util.List;
14
 import java.util.Map;
15
@@ -26,6 +27,7 @@
16
 import org.mozilla.javascript.Function;
17
 
18
 import com.servoy.j2db.scripting.FunctionDefinition;
19
+import com.servoy.j2db.server.headlessclient.IPageContributor;
20
 import com.servoy.j2db.server.headlessclient.IWebClientPluginAccess;
21
 import com.servoy.j2db.server.headlessclient.dataui.WebEventExecutor;
22
 import com.servoy.j2db.util.Utils;
23
@@ -183,41 +185,69 @@
24
     }
25
 
26
 	public void addCssReference(String url) {
27
-		app.getPageContributor().addBehavior(CALLBACK_BEHAVIOR, this);
28
-		if (url != null && !cssReferences.contains(url)) cssReferences.add(url);
29
+		if(!executeGlobalMethod("addGlobalCSSResourceReference", String.class, url)) {
30
+			app.getPageContributor().addBehavior(CALLBACK_BEHAVIOR, this);
31
+			if (url != null && !cssReferences.contains(url)) cssReferences.add(url);
32
+		}
33
 	}
34
 
35
 	public void addJsReference(String url) {
36
-		app.getPageContributor().addBehavior(CALLBACK_BEHAVIOR, this);
37
-		if (url != null && !jsReferences.contains(url)) jsReferences.add(url);
38
+		if(!executeGlobalMethod("addGlobalJSResourceReference", String.class, url)) {
39
+			app.getPageContributor().addBehavior(CALLBACK_BEHAVIOR, this);
40
+			if (url != null && !jsReferences.contains(url)) jsReferences.add(url);
41
+		}
42
 	}
43
 
44
 	public void addCssReference(ResourceReference url) {
45
-		app.getPageContributor().addBehavior(CALLBACK_BEHAVIOR, this);
46
-		if (url != null && !cssReferences.contains(url)) cssReferences.add(url);
47
+		if(!executeGlobalMethod("addGlobalCSSResourceReference", ResourceReference.class, url)) {
48
+			app.getPageContributor().addBehavior(CALLBACK_BEHAVIOR, this);
49
+			if (url != null && !cssReferences.contains(url)) cssReferences.add(url);
50
+		}
51
 	}
52
 
53
 	public void addJsReference(ResourceReference url) {
54
-		app.getPageContributor().addBehavior(CALLBACK_BEHAVIOR, this);
55
-		if (url != null && !jsReferences.contains(url)) jsReferences.add(url);
56
+		if(!executeGlobalMethod("addGlobalJSResourceReference", ResourceReference.class, url)) {
57
+			app.getPageContributor().addBehavior(CALLBACK_BEHAVIOR, this);
58
+			if (url != null && !jsReferences.contains(url)) jsReferences.add(url);
59
+		}
60
 	}
61
 
62
 	public void removeCssReference(ResourceReference url) {
63
-		cssReferences.remove(url);
64
+		if(!executeGlobalMethod("removeGlobalResourceReference", ResourceReference.class, url)) {
65
+			cssReferences.remove(url);
66
+		}
67
 	}
68
 
69
 	public void removeCssReference(String url) {
70
-		 cssReferences.remove(url);
71
+		if(!executeGlobalMethod("removeGlobalResourceReference", String.class, url)) {
72
+			cssReferences.remove(url);
73
+		}
74
 	}
75
 
76
 	public void removeJsReference(ResourceReference url) {
77
-		jsReferences.remove(url);		
78
+		if(!executeGlobalMethod("removeGlobalResourceReference", ResourceReference.class, url)) {
79
+			jsReferences.remove(url);
80
+		}
81
 	}
82
 
83
 	public void removeJsReference(String url) {
84
-		jsReferences.remove(url);
85
+		if(!executeGlobalMethod("removeGlobalResourceReference", String.class, url)) {
86
+			jsReferences.remove(url);
87
+		}
88
 	}
89
     
90
+	private boolean executeGlobalMethod(String methodName, Class<?> parameterType, Object url) {
91
+		try {
92
+			IPageContributor pageContributor = app.getPageContributor();
93
+			Class<? extends IPageContributor> clazz = pageContributor.getClass();
94
+			Method m = clazz.getDeclaredMethod(methodName, new Class[]{ parameterType });
95
+			m.invoke(pageContributor, new Object[] { url });
96
+			return true;
97
+		} catch (Exception e) {
98
+			return false;
99
+		}
100
+	}
101
+	
102
 	/*
103
 	public interface ILatestPageBehaviorListener extends IBehaviorListener
104
 	{
(1-1/2)