9fd9a79bf6d1136dff3ad574e2fe02f695b6e303
[jalviewjs.git] / site / swingjs / j2s / jssun / java2d / StateTrackableDelegate.js
1 Clazz.declarePackage ("jssun.java2d");\r
2 Clazz.load (["jssun.java2d.StateTrackable"], "jssun.java2d.StateTrackableDelegate", ["java.lang.IllegalStateException", "$.InternalError", "jssun.java2d.StateTracker"], function () {\r
3 c$ = Clazz.decorateAsClass (function () {\r
4 this.theState = null;\r
5 this.theTracker = null;\r
6 this.numDynamicAgents = 0;\r
7 Clazz.instantialize (this, arguments);\r
8 }, jssun.java2d, "StateTrackableDelegate", null, jssun.java2d.StateTrackable);\r
9 c$.createInstance = Clazz.defineMethod (c$, "createInstance", \r
10 function (state) {\r
11 switch (state) {\r
12 case jssun.java2d.StateTrackable.State.UNTRACKABLE:\r
13 return jssun.java2d.StateTrackableDelegate.UNTRACKABLE_DELEGATE;\r
14 case jssun.java2d.StateTrackable.State.STABLE:\r
15 return  new jssun.java2d.StateTrackableDelegate (jssun.java2d.StateTrackable.State.STABLE);\r
16 case jssun.java2d.StateTrackable.State.DYNAMIC:\r
17 return  new jssun.java2d.StateTrackableDelegate (jssun.java2d.StateTrackable.State.DYNAMIC);\r
18 case jssun.java2d.StateTrackable.State.IMMUTABLE:\r
19 return jssun.java2d.StateTrackableDelegate.IMMUTABLE_DELEGATE;\r
20 default:\r
21 throw  new InternalError ("unknown state");\r
22 }\r
23 }, "jssun.java2d.StateTrackable.State");\r
24 Clazz.makeConstructor (c$, \r
25  function (state) {\r
26 this.theState = state;\r
27 }, "jssun.java2d.StateTrackable.State");\r
28 Clazz.overrideMethod (c$, "getState", \r
29 function () {\r
30 return this.theState;\r
31 });\r
32 Clazz.overrideMethod (c$, "getStateTracker", \r
33 function () {\r
34 var st = this.theTracker;\r
35 if (st == null) {\r
36 switch (this.theState) {\r
37 case jssun.java2d.StateTrackable.State.IMMUTABLE:\r
38 st = jssun.java2d.StateTracker.ALWAYS_CURRENT;\r
39 break;\r
40 case jssun.java2d.StateTrackable.State.STABLE:\r
41 st = ((Clazz.isClassDefined ("jssun.java2d.StateTrackableDelegate$1") ? 0 : jssun.java2d.StateTrackableDelegate.$StateTrackableDelegate$1$ ()), Clazz.innerTypeInstance (jssun.java2d.StateTrackableDelegate$1, this, null));\r
42 break;\r
43 case jssun.java2d.StateTrackable.State.DYNAMIC:\r
44 case jssun.java2d.StateTrackable.State.UNTRACKABLE:\r
45 st = jssun.java2d.StateTracker.NEVER_CURRENT;\r
46 break;\r
47 }\r
48 this.theTracker = st;\r
49 }return st;\r
50 });\r
51 Clazz.defineMethod (c$, "setImmutable", \r
52 function () {\r
53 if (this.theState === jssun.java2d.StateTrackable.State.UNTRACKABLE || this.theState === jssun.java2d.StateTrackable.State.DYNAMIC) {\r
54 throw  new IllegalStateException ("UNTRACKABLE or DYNAMIC objects cannot become IMMUTABLE");\r
55 }this.theState = jssun.java2d.StateTrackable.State.IMMUTABLE;\r
56 this.theTracker = null;\r
57 });\r
58 Clazz.defineMethod (c$, "setUntrackable", \r
59 function () {\r
60 if (this.theState === jssun.java2d.StateTrackable.State.IMMUTABLE) {\r
61 throw  new IllegalStateException ("IMMUTABLE objects cannot become UNTRACKABLE");\r
62 }this.theState = jssun.java2d.StateTrackable.State.UNTRACKABLE;\r
63 this.theTracker = null;\r
64 });\r
65 Clazz.defineMethod (c$, "addDynamicAgent", \r
66 function () {\r
67 if (this.theState === jssun.java2d.StateTrackable.State.IMMUTABLE) {\r
68 throw  new IllegalStateException ("Cannot change state from IMMUTABLE");\r
69 }++this.numDynamicAgents;\r
70 if (this.theState === jssun.java2d.StateTrackable.State.STABLE) {\r
71 this.theState = jssun.java2d.StateTrackable.State.DYNAMIC;\r
72 this.theTracker = null;\r
73 }});\r
74 Clazz.defineMethod (c$, "removeDynamicAgent", \r
75 function () {\r
76 if (--this.numDynamicAgents == 0 && this.theState === jssun.java2d.StateTrackable.State.DYNAMIC) {\r
77 this.theState = jssun.java2d.StateTrackable.State.STABLE;\r
78 this.theTracker = null;\r
79 }});\r
80 Clazz.defineMethod (c$, "markDirty", \r
81 function () {\r
82 this.theTracker = null;\r
83 });\r
84 c$.$StateTrackableDelegate$1$ = function () {\r
85 Clazz.pu$h(self.c$);\r
86 c$ = Clazz.declareAnonymous (jssun.java2d, "StateTrackableDelegate$1", null, jssun.java2d.StateTracker);\r
87 Clazz.overrideMethod (c$, "isCurrent", \r
88 function () {\r
89 return (this.b$["jssun.java2d.StateTrackableDelegate"].theTracker === this);\r
90 });\r
91 c$ = Clazz.p0p ();\r
92 };\r
93 c$.UNTRACKABLE_DELEGATE = c$.prototype.UNTRACKABLE_DELEGATE =  new jssun.java2d.StateTrackableDelegate (jssun.java2d.StateTrackable.State.UNTRACKABLE);\r
94 c$.IMMUTABLE_DELEGATE = c$.prototype.IMMUTABLE_DELEGATE =  new jssun.java2d.StateTrackableDelegate (jssun.java2d.StateTrackable.State.IMMUTABLE);\r
95 });\r