1 Clazz.declarePackage ("jssun.font");
\r
2 Clazz.load (["jssun.font.EAttribute"], "jssun.font.AttributeValues", ["java.lang.Boolean", "$.Float", "$.InternalError", "$.Number", "$.StringBuilder", "java.util.HashMap", "java.awt.font.TextAttribute", "java.awt.geom.AffineTransform", "$.Point2D", "jssun.font.AttributeMap"], function () {
\r
3 c$ = Clazz.decorateAsClass (function () {
\r
6 this.family = "Default";
\r
12 this.transform = null;
\r
13 this.foreground = null;
\r
14 this.background = null;
\r
15 this.justification = 1;
\r
16 this.imHighlight = null;
\r
18 this.imUnderline = -1;
\r
19 this.superscript = 0;
\r
20 this.underline = -1;
\r
21 this.runDirection = -2;
\r
22 this.bidiEmbedding = 0;
\r
25 this.strikethrough = false;
\r
26 this.swapColors = false;
\r
27 this.baselineTransform = null;
\r
28 this.charTransform = null;
\r
29 Clazz.instantialize (this, arguments);
\r
30 }, jssun.font, "AttributeValues", null, Cloneable);
\r
31 Clazz.defineMethod (c$, "getFamily",
\r
35 Clazz.defineMethod (c$, "setFamily",
\r
38 this.update (jssun.font.EAttribute.EFAMILY);
\r
40 Clazz.defineMethod (c$, "getWeight",
\r
44 Clazz.defineMethod (c$, "setWeight",
\r
47 this.update (jssun.font.EAttribute.EWEIGHT);
\r
49 Clazz.defineMethod (c$, "getWidth",
\r
53 Clazz.defineMethod (c$, "setWidth",
\r
56 this.update (jssun.font.EAttribute.EWIDTH);
\r
58 Clazz.defineMethod (c$, "getPosture",
\r
60 return this.posture;
\r
62 Clazz.defineMethod (c$, "setPosture",
\r
65 this.update (jssun.font.EAttribute.EPOSTURE);
\r
67 Clazz.defineMethod (c$, "getSize",
\r
71 Clazz.defineMethod (c$, "setSize",
\r
74 this.update (jssun.font.EAttribute.ESIZE);
\r
76 Clazz.defineMethod (c$, "getTransform",
\r
78 return this.transform;
\r
80 Clazz.defineMethod (c$, "setTransform",
\r
82 this.transform = (f == null || f.isIdentity ()) ? jssun.font.AttributeValues.DEFAULT.transform : new java.awt.geom.AffineTransform (f);
\r
83 this.updateDerivedTransforms ();
\r
84 this.update (jssun.font.EAttribute.ETRANSFORM);
\r
85 }, "java.awt.geom.AffineTransform");
\r
86 Clazz.defineMethod (c$, "getSuperscript",
\r
88 return this.superscript;
\r
90 Clazz.defineMethod (c$, "setSuperscript",
\r
92 this.superscript = f;
\r
93 this.update (jssun.font.EAttribute.ESUPERSCRIPT);
\r
95 Clazz.defineMethod (c$, "getFont",
\r
99 Clazz.defineMethod (c$, "setFont",
\r
102 this.update (jssun.font.EAttribute.EFONT);
\r
103 }, "java.awt.Font");
\r
104 Clazz.defineMethod (c$, "getForeground",
\r
106 return this.foreground;
\r
108 Clazz.defineMethod (c$, "setForeground",
\r
110 this.foreground = f;
\r
111 this.update (jssun.font.EAttribute.EFOREGROUND);
\r
112 }, "java.awt.Paint");
\r
113 Clazz.defineMethod (c$, "getBackground",
\r
115 return this.background;
\r
117 Clazz.defineMethod (c$, "setBackground",
\r
119 this.background = f;
\r
120 this.update (jssun.font.EAttribute.EBACKGROUND);
\r
121 }, "java.awt.Paint");
\r
122 Clazz.defineMethod (c$, "getUnderline",
\r
124 return this.underline;
\r
126 Clazz.defineMethod (c$, "setUnderline",
\r
128 this.underline = f;
\r
129 this.update (jssun.font.EAttribute.EUNDERLINE);
\r
131 Clazz.defineMethod (c$, "getStrikethrough",
\r
133 return this.strikethrough;
\r
135 Clazz.defineMethod (c$, "setStrikethrough",
\r
137 this.strikethrough = f;
\r
138 this.update (jssun.font.EAttribute.ESTRIKETHROUGH);
\r
140 Clazz.defineMethod (c$, "getRunDirection",
\r
142 return this.runDirection;
\r
144 Clazz.defineMethod (c$, "setRunDirection",
\r
146 this.runDirection = f;
\r
147 this.update (jssun.font.EAttribute.ERUN_DIRECTION);
\r
149 Clazz.defineMethod (c$, "getBidiEmbedding",
\r
151 return this.bidiEmbedding;
\r
153 Clazz.defineMethod (c$, "setBidiEmbedding",
\r
155 this.bidiEmbedding = f;
\r
156 this.update (jssun.font.EAttribute.EBIDI_EMBEDDING);
\r
158 Clazz.defineMethod (c$, "getJustification",
\r
160 return this.justification;
\r
162 Clazz.defineMethod (c$, "setJustification",
\r
164 this.justification = f;
\r
165 this.update (jssun.font.EAttribute.EJUSTIFICATION);
\r
167 Clazz.defineMethod (c$, "getInputMethodHighlight",
\r
169 return this.imHighlight;
\r
171 Clazz.defineMethod (c$, "setInputMethodHighlight",
\r
173 this.imHighlight = f;
\r
174 this.update (jssun.font.EAttribute.EINPUT_METHOD_HIGHLIGHT);
\r
175 }, "java.text.Annotation");
\r
176 Clazz.defineMethod (c$, "getInputMethodUnderline",
\r
178 return this.imUnderline;
\r
180 Clazz.defineMethod (c$, "setInputMethodUnderline",
\r
182 this.imUnderline = f;
\r
183 this.update (jssun.font.EAttribute.EINPUT_METHOD_UNDERLINE);
\r
185 Clazz.defineMethod (c$, "getSwapColors",
\r
187 return this.swapColors;
\r
189 Clazz.defineMethod (c$, "setSwapColors",
\r
191 this.swapColors = f;
\r
192 this.update (jssun.font.EAttribute.ESWAP_COLORS);
\r
194 Clazz.defineMethod (c$, "getKerning",
\r
196 return this.kerning;
\r
198 Clazz.defineMethod (c$, "setKerning",
\r
201 this.update (jssun.font.EAttribute.EKERNING);
\r
203 Clazz.defineMethod (c$, "getTracking",
\r
205 return this.tracking;
\r
207 Clazz.defineMethod (c$, "setTracking",
\r
209 this.tracking = Clazz.floatToByte (f);
\r
210 this.update (jssun.font.EAttribute.ETRACKING);
\r
212 Clazz.defineMethod (c$, "getLigatures",
\r
214 return this.ligatures;
\r
216 Clazz.defineMethod (c$, "setLigatures",
\r
218 this.ligatures = f;
\r
219 this.update (jssun.font.EAttribute.ELIGATURES);
\r
221 Clazz.defineMethod (c$, "getBaselineTransform",
\r
223 return this.baselineTransform;
\r
225 Clazz.defineMethod (c$, "getCharTransform",
\r
227 return this.charTransform;
\r
229 c$.getMask = Clazz.defineMethod (c$, "getMask",
\r
232 }, "jssun.font.EAttribute");
\r
233 c$.getMask = Clazz.defineMethod (c$, "getMask",
\r
236 for (var a, $a = 0, $$a = atts; $a < $$a.length && ((a = $$a[$a]) || true); $a++) {
\r
241 Clazz.defineMethod (c$, "unsetDefault",
\r
243 this.defined &= this.nondefault;
\r
245 Clazz.defineMethod (c$, "defineAll",
\r
247 this.defined |= mask;
\r
248 if ((this.defined & jssun.font.EAttribute.EBASELINE_TRANSFORM.mask) != 0) {
\r
249 throw new InternalError ("can't define derived attribute");
\r
251 Clazz.defineMethod (c$, "allDefined",
\r
253 return (this.defined & mask) == mask;
\r
255 Clazz.defineMethod (c$, "anyDefined",
\r
257 return (this.defined & mask) != 0;
\r
259 Clazz.defineMethod (c$, "anyNonDefault",
\r
261 return (this.nondefault & mask) != 0;
\r
263 Clazz.defineMethod (c$, "isDefined",
\r
265 return (this.defined & a.mask) != 0;
\r
266 }, "jssun.font.EAttribute");
\r
267 Clazz.defineMethod (c$, "isNonDefault",
\r
269 return (this.nondefault & a.mask) != 0;
\r
270 }, "jssun.font.EAttribute");
\r
271 Clazz.defineMethod (c$, "setDefault",
\r
273 if (a.att == null) {
\r
274 throw new InternalError ("can't set default derived attribute: " + a);
\r
275 }this.i_set (a, jssun.font.AttributeValues.DEFAULT);
\r
276 this.defined |= a.mask;
\r
277 this.nondefault &= ~a.mask;
\r
278 }, "jssun.font.EAttribute");
\r
279 Clazz.defineMethod (c$, "unset",
\r
281 if (a.att == null) {
\r
282 throw new InternalError ("can't unset derived attribute: " + a);
\r
283 }this.i_set (a, jssun.font.AttributeValues.DEFAULT);
\r
284 this.defined &= ~a.mask;
\r
285 this.nondefault &= ~a.mask;
\r
286 }, "jssun.font.EAttribute");
\r
287 Clazz.defineMethod (c$, "set",
\r
288 function (a, src) {
\r
289 if (a.att == null) {
\r
290 throw new InternalError ("can't set derived attribute: " + a);
\r
291 }if (src == null || src === jssun.font.AttributeValues.DEFAULT) {
\r
292 this.setDefault (a);
\r
294 if ((src.defined & a.mask) != 0) {
\r
295 this.i_set (a, src);
\r
297 }}}, "jssun.font.EAttribute,jssun.font.AttributeValues");
\r
298 Clazz.defineMethod (c$, "set",
\r
300 if (a.att == null) {
\r
301 throw new InternalError ("can't set derived attribute: " + a);
\r
308 if (Clazz.exceptionOf (e, Exception)) {
\r
313 }this.setDefault (a);
\r
314 }, "jssun.font.EAttribute,~O");
\r
315 Clazz.defineMethod (c$, "get",
\r
317 if (a.att == null) {
\r
318 throw new InternalError ("can't get derived attribute: " + a);
\r
319 }if ((this.nondefault & a.mask) != 0) {
\r
320 return this.i_get (a);
\r
322 }, "jssun.font.EAttribute");
\r
323 Clazz.defineMethod (c$, "merge",
\r
325 return this.merge (map, jssun.font.AttributeValues.MASK_ALL);
\r
326 }, "java.util.Map");
\r
327 Clazz.defineMethod (c$, "merge",
\r
328 function (map, mask) {
\r
329 if (Clazz.instanceOf (map, jssun.font.AttributeMap) && (map).getValues () != null) {
\r
330 this.merge ((map).getValues (), mask);
\r
331 } else if (map != null && !map.isEmpty ()) {
\r
332 for (var e, $e = map.entrySet ().iterator (); $e.hasNext () && ((e = $e.next ()) || true);) {
\r
333 var ea = jssun.font.EAttribute.forAttribute (e.getKey ());
\r
334 if (ea != null && (mask & ea.mask) != 0) {
\r
335 this.set (ea, e.getValue ());
\r
338 }, "java.util.Map,~N");
\r
339 Clazz.defineMethod (c$, "merge",
\r
341 return this.merge (src, jssun.font.AttributeValues.MASK_ALL);
\r
342 }, "jssun.font.AttributeValues");
\r
343 Clazz.defineMethod (c$, "merge",
\r
344 function (src, mask) {
\r
345 var m = mask & src.defined;
\r
346 for (var ea, $ea = 0, $$ea = jssun.font.EAttribute.atts; $ea < $$ea.length && ((ea = $$ea[$ea]) || true); $ea++) {
\r
349 }if ((m & ea.mask) != 0) {
\r
351 this.i_set (ea, src);
\r
355 }, "jssun.font.AttributeValues,~N");
\r
356 c$.fromMap = Clazz.defineMethod (c$, "fromMap",
\r
358 return jssun.font.AttributeValues.fromMap (map, jssun.font.AttributeValues.MASK_ALL);
\r
359 }, "java.util.Map");
\r
360 c$.fromMap = Clazz.defineMethod (c$, "fromMap",
\r
361 function (map, mask) {
\r
362 return new jssun.font.AttributeValues ().merge (map, mask);
\r
363 }, "java.util.Map,~N");
\r
364 Clazz.defineMethod (c$, "toMap",
\r
366 if (fill == null) {
\r
367 fill = new java.util.HashMap ();
\r
368 }for (var m = this.defined, i = 0; m != 0; ++i) {
\r
369 var ea = jssun.font.EAttribute.atts[i];
\r
370 if ((m & ea.mask) != 0) {
\r
372 fill.put (ea.att, this.get (ea));
\r
375 }, "java.util.Map");
\r
376 c$.is16Hashtable = Clazz.defineMethod (c$, "is16Hashtable",
\r
378 return ht.containsKey ("sun.font.attributevalues.defined_key");
\r
379 }, "java.util.Hashtable");
\r
380 c$.fromSerializableHashtable = Clazz.defineMethod (c$, "fromSerializableHashtable",
\r
382 var result = new jssun.font.AttributeValues ();
\r
383 if (ht != null && !ht.isEmpty ()) {
\r
384 for (var e, $e = ht.entrySet ().iterator (); $e.hasNext () && ((e = $e.next ()) || true);) {
\r
385 var key = e.getKey ();
\r
386 var val = e.getValue ();
\r
387 if (key.equals ("sun.font.attributevalues.defined_key")) {
\r
388 result.defineAll ((val).intValue ());
\r
391 var ea = jssun.font.EAttribute.forAttribute (key);
\r
393 result.set (ea, val);
\r
395 if (Clazz.exceptionOf (ex, ClassCastException)) {
\r
402 }, "java.util.Hashtable");
\r
403 Clazz.overrideMethod (c$, "hashCode",
\r
405 return this.defined << 8 ^ this.nondefault;
\r
407 Clazz.defineMethod (c$, "equals",
\r
410 return this.equals (rhs);
\r
412 if (Clazz.exceptionOf (e, ClassCastException)) {
\r
419 Clazz.defineMethod (c$, "equals",
\r
421 if (rhs == null) return false;
\r
422 if (rhs === this) return true;
\r
423 return this.defined == rhs.defined && this.nondefault == rhs.nondefault && this.underline == rhs.underline && this.strikethrough == rhs.strikethrough && this.superscript == rhs.superscript && this.width == rhs.width && this.kerning == rhs.kerning && this.tracking == rhs.tracking && this.ligatures == rhs.ligatures && this.runDirection == rhs.runDirection && this.bidiEmbedding == rhs.bidiEmbedding && this.swapColors == rhs.swapColors && jssun.font.AttributeValues.equals (this.transform, rhs.transform) && jssun.font.AttributeValues.equals (new Float (this.justification), new Float (rhs.justification)) && this.size == rhs.size && this.weight == rhs.weight && this.posture == rhs.posture && jssun.font.AttributeValues.equals (this.family, rhs.family) && jssun.font.AttributeValues.equals (this.font, rhs.font) && this.imUnderline == rhs.imUnderline && jssun.font.AttributeValues.equals (this.imHighlight, rhs.imHighlight);
\r
424 }, "jssun.font.AttributeValues");
\r
425 Clazz.defineMethod (c$, "clone",
\r
428 var result = Clazz.superCall (this, jssun.font.AttributeValues, "clone", []);
\r
429 if (this.transform != null) {
\r
430 result.transform = new java.awt.geom.AffineTransform (this.transform);
\r
431 result.updateDerivedTransforms ();
\r
434 if (Clazz.exceptionOf (e, CloneNotSupportedException)) {
\r
441 Clazz.overrideMethod (c$, "toString",
\r
443 var b = new StringBuilder ();
\r
445 for (var m = this.defined, i = 0; m != 0; ++i) {
\r
446 var ea = jssun.font.EAttribute.atts[i];
\r
447 if ((m & ea.mask) != 0) {
\r
449 if (b.length () > 1) {
\r
454 case jssun.font.EAttribute.EFAMILY:
\r
456 b.append (this.family);
\r
459 case jssun.font.EAttribute.EWEIGHT:
\r
460 b.append (this.weight);
\r
462 case jssun.font.EAttribute.EWIDTH:
\r
463 b.append (this.width);
\r
465 case jssun.font.EAttribute.EPOSTURE:
\r
466 b.append (this.posture);
\r
468 case jssun.font.EAttribute.ESIZE:
\r
469 b.append (this.size);
\r
471 case jssun.font.EAttribute.ETRANSFORM:
\r
472 b.append (this.transform);
\r
474 case jssun.font.EAttribute.ESUPERSCRIPT:
\r
475 b.append ("" + this.superscript);
\r
477 case jssun.font.EAttribute.EFONT:
\r
478 b.append (this.font);
\r
480 case jssun.font.EAttribute.EUNDERLINE:
\r
481 b.append ("" + this.underline);
\r
483 case jssun.font.EAttribute.ESTRIKETHROUGH:
\r
484 b.append (this.strikethrough);
\r
486 case jssun.font.EAttribute.ERUN_DIRECTION:
\r
487 b.append ("" + this.runDirection);
\r
489 case jssun.font.EAttribute.EBIDI_EMBEDDING:
\r
490 b.append ("" + this.bidiEmbedding);
\r
492 case jssun.font.EAttribute.EJUSTIFICATION:
\r
493 b.append (this.justification);
\r
495 case jssun.font.EAttribute.EINPUT_METHOD_HIGHLIGHT:
\r
496 b.append (this.imHighlight);
\r
498 case jssun.font.EAttribute.EINPUT_METHOD_UNDERLINE:
\r
499 b.append ("" + this.imUnderline);
\r
501 case jssun.font.EAttribute.ESWAP_COLORS:
\r
502 b.append (this.swapColors);
\r
504 case jssun.font.EAttribute.EKERNING:
\r
505 b.append (this.kerning);
\r
507 case jssun.font.EAttribute.ELIGATURES:
\r
508 b.append (this.ligatures);
\r
510 case jssun.font.EAttribute.ETRACKING:
\r
511 b.append (this.tracking);
\r
514 throw new InternalError ();
\r
516 if ((this.nondefault & ea.mask) == 0) {
\r
519 b.append ("[btx=" + this.baselineTransform + ", ctx=" + this.charTransform + "]");
\r
521 return b.toString ();
\r
523 c$.equals = Clazz.defineMethod (c$, "equals",
\r
524 function (lhs, rhs) {
\r
525 return lhs == null ? rhs == null : lhs.equals (rhs);
\r
527 Clazz.defineMethod (c$, "update",
\r
529 this.defined |= a.mask;
\r
530 if (this.i_validate (a)) {
\r
531 if (this.i_equals (a, jssun.font.AttributeValues.DEFAULT)) {
\r
532 this.nondefault &= ~a.mask;
\r
534 this.nondefault |= a.mask;
\r
536 this.setDefault (a);
\r
537 }}, "jssun.font.EAttribute");
\r
538 Clazz.defineMethod (c$, "i_set",
\r
539 function (a, src) {
\r
541 case jssun.font.EAttribute.EFAMILY:
\r
542 this.family = src.family;
\r
544 case jssun.font.EAttribute.EWEIGHT:
\r
545 this.weight = src.weight;
\r
547 case jssun.font.EAttribute.EWIDTH:
\r
548 this.width = src.width;
\r
550 case jssun.font.EAttribute.EPOSTURE:
\r
551 this.posture = src.posture;
\r
553 case jssun.font.EAttribute.ESIZE:
\r
554 this.size = src.size;
\r
556 case jssun.font.EAttribute.ETRANSFORM:
\r
557 this.transform = src.transform;
\r
558 this.updateDerivedTransforms ();
\r
560 case jssun.font.EAttribute.ESUPERSCRIPT:
\r
561 this.superscript = src.superscript;
\r
563 case jssun.font.EAttribute.EFONT:
\r
564 this.font = src.font;
\r
566 case jssun.font.EAttribute.EUNDERLINE:
\r
567 this.underline = src.underline;
\r
569 case jssun.font.EAttribute.ESTRIKETHROUGH:
\r
570 this.strikethrough = src.strikethrough;
\r
572 case jssun.font.EAttribute.ERUN_DIRECTION:
\r
573 this.runDirection = src.runDirection;
\r
575 case jssun.font.EAttribute.EBIDI_EMBEDDING:
\r
576 this.bidiEmbedding = src.bidiEmbedding;
\r
578 case jssun.font.EAttribute.EJUSTIFICATION:
\r
579 this.justification = src.justification;
\r
581 case jssun.font.EAttribute.EINPUT_METHOD_HIGHLIGHT:
\r
582 this.imHighlight = src.imHighlight;
\r
584 case jssun.font.EAttribute.EINPUT_METHOD_UNDERLINE:
\r
585 this.imUnderline = src.imUnderline;
\r
587 case jssun.font.EAttribute.ESWAP_COLORS:
\r
588 this.swapColors = src.swapColors;
\r
590 case jssun.font.EAttribute.EKERNING:
\r
591 this.kerning = src.kerning;
\r
593 case jssun.font.EAttribute.ELIGATURES:
\r
594 this.ligatures = src.ligatures;
\r
596 case jssun.font.EAttribute.ETRACKING:
\r
597 this.tracking = src.tracking;
\r
600 throw new InternalError ();
\r
602 }, "jssun.font.EAttribute,jssun.font.AttributeValues");
\r
603 Clazz.defineMethod (c$, "i_equals",
\r
604 function (a, src) {
\r
606 case jssun.font.EAttribute.EFAMILY:
\r
607 return jssun.font.AttributeValues.equals (this.family, src.family);
\r
608 case jssun.font.EAttribute.EWEIGHT:
\r
609 return this.weight == src.weight;
\r
610 case jssun.font.EAttribute.EWIDTH:
\r
611 return this.width == src.width;
\r
612 case jssun.font.EAttribute.EPOSTURE:
\r
613 return this.posture == src.posture;
\r
614 case jssun.font.EAttribute.ESIZE:
\r
615 return this.size == src.size;
\r
616 case jssun.font.EAttribute.ETRANSFORM:
\r
617 return jssun.font.AttributeValues.equals (this.transform, src.transform);
\r
618 case jssun.font.EAttribute.ESUPERSCRIPT:
\r
619 return this.superscript == src.superscript;
\r
620 case jssun.font.EAttribute.EFONT:
\r
621 return jssun.font.AttributeValues.equals (this.font, src.font);
\r
622 case jssun.font.EAttribute.EUNDERLINE:
\r
623 return this.underline == src.underline;
\r
624 case jssun.font.EAttribute.ESTRIKETHROUGH:
\r
625 return this.strikethrough == src.strikethrough;
\r
626 case jssun.font.EAttribute.ERUN_DIRECTION:
\r
627 return this.runDirection == src.runDirection;
\r
628 case jssun.font.EAttribute.EBIDI_EMBEDDING:
\r
629 return this.bidiEmbedding == src.bidiEmbedding;
\r
630 case jssun.font.EAttribute.EJUSTIFICATION:
\r
631 return this.justification == src.justification;
\r
632 case jssun.font.EAttribute.EINPUT_METHOD_HIGHLIGHT:
\r
633 return jssun.font.AttributeValues.equals (this.imHighlight, src.imHighlight);
\r
634 case jssun.font.EAttribute.EINPUT_METHOD_UNDERLINE:
\r
635 return this.imUnderline == src.imUnderline;
\r
636 case jssun.font.EAttribute.ESWAP_COLORS:
\r
637 return this.swapColors == src.swapColors;
\r
638 case jssun.font.EAttribute.EKERNING:
\r
639 return this.kerning == src.kerning;
\r
640 case jssun.font.EAttribute.ELIGATURES:
\r
641 return this.ligatures == src.ligatures;
\r
642 case jssun.font.EAttribute.ETRACKING:
\r
643 return this.tracking == src.tracking;
\r
645 throw new InternalError ();
\r
647 }, "jssun.font.EAttribute,jssun.font.AttributeValues");
\r
648 Clazz.defineMethod (c$, "i_set",
\r
651 case jssun.font.EAttribute.EFAMILY:
\r
652 this.family = (o).trim ();
\r
654 case jssun.font.EAttribute.EWEIGHT:
\r
655 this.weight = (o).floatValue ();
\r
657 case jssun.font.EAttribute.EWIDTH:
\r
658 this.width = (o).floatValue ();
\r
660 case jssun.font.EAttribute.EPOSTURE:
\r
661 this.posture = (o).floatValue ();
\r
663 case jssun.font.EAttribute.ESIZE:
\r
664 this.size = (o).floatValue ();
\r
666 case jssun.font.EAttribute.ESUPERSCRIPT:
\r
667 this.superscript = (o).intValue ();
\r
669 case jssun.font.EAttribute.EFONT:
\r
672 case jssun.font.EAttribute.EUNDERLINE:
\r
673 this.underline = (o).intValue ();
\r
675 case jssun.font.EAttribute.ESTRIKETHROUGH:
\r
676 this.strikethrough = (o).booleanValue ();
\r
678 case jssun.font.EAttribute.ERUN_DIRECTION:
\r
680 if (Clazz.instanceOf (o, Boolean)) {
\r
681 this.runDirection = (java.awt.font.TextAttribute.RUN_DIRECTION_LTR.equals (o) ? 0 : 1);
\r
683 this.runDirection = (o).intValue ();
\r
685 case jssun.font.EAttribute.EBIDI_EMBEDDING:
\r
686 this.bidiEmbedding = (o).intValue ();
\r
688 case jssun.font.EAttribute.EJUSTIFICATION:
\r
689 this.justification = (o).floatValue ();
\r
691 case jssun.font.EAttribute.EINPUT_METHOD_UNDERLINE:
\r
692 this.imUnderline = (o).intValue ();
\r
694 case jssun.font.EAttribute.ESWAP_COLORS:
\r
695 this.swapColors = (o).booleanValue ();
\r
697 case jssun.font.EAttribute.EKERNING:
\r
698 this.kerning = (o).intValue ();
\r
700 case jssun.font.EAttribute.ELIGATURES:
\r
701 this.ligatures = (o).intValue ();
\r
703 case jssun.font.EAttribute.ETRACKING:
\r
704 this.tracking = (o).floatValue ();
\r
707 throw new InternalError ();
\r
709 }, "jssun.font.EAttribute,~O");
\r
710 Clazz.defineMethod (c$, "i_get",
\r
713 case jssun.font.EAttribute.EFAMILY:
\r
714 return this.family;
\r
715 case jssun.font.EAttribute.EWEIGHT:
\r
716 return Float.$valueOf (this.weight);
\r
717 case jssun.font.EAttribute.EWIDTH:
\r
718 return Float.$valueOf (this.width);
\r
719 case jssun.font.EAttribute.EPOSTURE:
\r
720 return Float.$valueOf (this.posture);
\r
721 case jssun.font.EAttribute.ESIZE:
\r
722 return Float.$valueOf (this.size);
\r
723 case jssun.font.EAttribute.ESUPERSCRIPT:
\r
724 return Integer.$valueOf (this.superscript);
\r
725 case jssun.font.EAttribute.EFONT:
\r
727 case jssun.font.EAttribute.EUNDERLINE:
\r
728 return Integer.$valueOf (this.underline);
\r
729 case jssun.font.EAttribute.ESTRIKETHROUGH:
\r
730 return Boolean.$valueOf (this.strikethrough);
\r
731 case jssun.font.EAttribute.ERUN_DIRECTION:
\r
733 switch (this.runDirection) {
\r
735 return java.awt.font.TextAttribute.RUN_DIRECTION_LTR;
\r
737 return java.awt.font.TextAttribute.RUN_DIRECTION_RTL;
\r
741 }case jssun.font.EAttribute.EBIDI_EMBEDDING:
\r
742 return Integer.$valueOf (this.bidiEmbedding);
\r
743 case jssun.font.EAttribute.EJUSTIFICATION:
\r
744 return Float.$valueOf (this.justification);
\r
745 case jssun.font.EAttribute.EINPUT_METHOD_HIGHLIGHT:
\r
746 return this.imHighlight;
\r
747 case jssun.font.EAttribute.EINPUT_METHOD_UNDERLINE:
\r
748 return Integer.$valueOf (this.imUnderline);
\r
749 case jssun.font.EAttribute.ESWAP_COLORS:
\r
750 return Boolean.$valueOf (this.swapColors);
\r
751 case jssun.font.EAttribute.EKERNING:
\r
752 return Integer.$valueOf (this.kerning);
\r
753 case jssun.font.EAttribute.ELIGATURES:
\r
754 return Integer.$valueOf (this.ligatures);
\r
755 case jssun.font.EAttribute.ETRACKING:
\r
756 return Float.$valueOf (this.tracking);
\r
758 throw new InternalError ();
\r
760 }, "jssun.font.EAttribute");
\r
761 Clazz.defineMethod (c$, "i_validate",
\r
764 case jssun.font.EAttribute.EFAMILY:
\r
765 if (this.family == null || this.family.length == 0) this.family = jssun.font.AttributeValues.DEFAULT.family;
\r
767 case jssun.font.EAttribute.EWEIGHT:
\r
768 return this.weight > 0 && this.weight < 10;
\r
769 case jssun.font.EAttribute.EWIDTH:
\r
770 return this.width >= .5 && this.width < 10;
\r
771 case jssun.font.EAttribute.EPOSTURE:
\r
772 return this.posture >= -1 && this.posture <= 1;
\r
773 case jssun.font.EAttribute.ESIZE:
\r
774 return this.size >= 0;
\r
775 case jssun.font.EAttribute.ETRANSFORM:
\r
776 if (this.transform != null && this.transform.isIdentity ()) this.transform = jssun.font.AttributeValues.DEFAULT.transform;
\r
778 case jssun.font.EAttribute.ESUPERSCRIPT:
\r
779 return this.superscript >= -7 && this.superscript <= 7;
\r
780 case jssun.font.EAttribute.EFONT:
\r
782 case jssun.font.EAttribute.ECHAR_REPLACEMENT:
\r
784 case jssun.font.EAttribute.EFOREGROUND:
\r
786 case jssun.font.EAttribute.EBACKGROUND:
\r
788 case jssun.font.EAttribute.EUNDERLINE:
\r
789 return this.underline >= -1 && this.underline < 6;
\r
790 case jssun.font.EAttribute.ESTRIKETHROUGH:
\r
792 case jssun.font.EAttribute.ERUN_DIRECTION:
\r
793 return this.runDirection >= -2 && this.runDirection <= 1;
\r
794 case jssun.font.EAttribute.EBIDI_EMBEDDING:
\r
795 return this.bidiEmbedding >= -61 && this.bidiEmbedding < 62;
\r
796 case jssun.font.EAttribute.EJUSTIFICATION:
\r
797 this.justification = Math.max (0, Math.min (this.justification, 1));
\r
799 case jssun.font.EAttribute.EINPUT_METHOD_HIGHLIGHT:
\r
801 case jssun.font.EAttribute.EINPUT_METHOD_UNDERLINE:
\r
802 return this.imUnderline >= -1 && this.imUnderline < 6;
\r
803 case jssun.font.EAttribute.ESWAP_COLORS:
\r
805 case jssun.font.EAttribute.ENUMERIC_SHAPING:
\r
807 case jssun.font.EAttribute.EKERNING:
\r
808 return this.kerning >= 0 && this.kerning <= 1;
\r
809 case jssun.font.EAttribute.ELIGATURES:
\r
810 return this.ligatures >= 0 && this.ligatures <= 1;
\r
811 case jssun.font.EAttribute.ETRACKING:
\r
812 return this.tracking >= -1 && this.tracking <= 10;
\r
814 throw new InternalError ("unknown attribute: " + a);
\r
816 }, "jssun.font.EAttribute");
\r
817 c$.getJustification = Clazz.defineMethod (c$, "getJustification",
\r
820 if (Clazz.instanceOf (map, jssun.font.AttributeMap) && (map).getValues () != null) {
\r
821 return (map).getValues ().justification;
\r
822 }var obj = map.get (java.awt.font.TextAttribute.JUSTIFICATION);
\r
823 if (obj != null && Clazz.instanceOf (obj, Number)) {
\r
824 return Math.max (0, Math.min (1, (obj).floatValue ()));
\r
825 }}return jssun.font.AttributeValues.DEFAULT.justification;
\r
826 }, "java.util.Map");
\r
827 Clazz.defineMethod (c$, "applyIMHighlight",
\r
831 c$.getBaselineTransform = Clazz.defineMethod (c$, "getBaselineTransform",
\r
835 if (Clazz.instanceOf (map, jssun.font.AttributeMap) && (map).getValues () != null) {
\r
836 av = (map).getValues ();
\r
837 } else if (map.get (java.awt.font.TextAttribute.TRANSFORM) != null) {
\r
838 av = jssun.font.AttributeValues.fromMap (map);
\r
840 return av.baselineTransform;
\r
842 }, "java.util.Map");
\r
843 c$.getCharTransform = Clazz.defineMethod (c$, "getCharTransform",
\r
847 if (Clazz.instanceOf (map, jssun.font.AttributeMap) && (map).getValues () != null) {
\r
848 av = (map).getValues ();
\r
849 } else if (map.get (java.awt.font.TextAttribute.TRANSFORM) != null) {
\r
850 av = jssun.font.AttributeValues.fromMap (map);
\r
852 return av.charTransform;
\r
854 }, "java.util.Map");
\r
855 Clazz.defineMethod (c$, "updateDerivedTransforms",
\r
857 if (this.transform == null) {
\r
858 this.baselineTransform = null;
\r
859 this.charTransform = null;
\r
861 this.charTransform = new java.awt.geom.AffineTransform (this.transform);
\r
862 this.baselineTransform = jssun.font.AttributeValues.extractXRotation (this.charTransform, true);
\r
863 if (this.charTransform.isIdentity ()) {
\r
864 this.charTransform = null;
\r
865 }if (this.baselineTransform.isIdentity ()) {
\r
866 this.baselineTransform = null;
\r
867 }}if (this.baselineTransform == null) {
\r
868 this.nondefault &= ~jssun.font.EAttribute.EBASELINE_TRANSFORM.mask;
\r
870 this.nondefault |= jssun.font.EAttribute.EBASELINE_TRANSFORM.mask;
\r
872 c$.extractXRotation = Clazz.defineMethod (c$, "extractXRotation",
\r
873 function (tx, andTranslation) {
\r
874 return jssun.font.AttributeValues.extractRotation ( new java.awt.geom.Point2D.Double (1, 0), tx, andTranslation);
\r
875 }, "java.awt.geom.AffineTransform,~B");
\r
876 c$.extractYRotation = Clazz.defineMethod (c$, "extractYRotation",
\r
877 function (tx, andTranslation) {
\r
878 return jssun.font.AttributeValues.extractRotation ( new java.awt.geom.Point2D.Double (0, 1), tx, andTranslation);
\r
879 }, "java.awt.geom.AffineTransform,~B");
\r
880 c$.extractRotation = Clazz.defineMethod (c$, "extractRotation",
\r
881 function (pt, tx, andTranslation) {
\r
882 tx.deltaTransform (pt, pt);
\r
883 var rtx = java.awt.geom.AffineTransform.getRotateInstance (pt.x, pt.y);
\r
885 var rtxi = rtx.createInverse ();
\r
886 var dx = tx.getTranslateX ();
\r
887 var dy = tx.getTranslateY ();
\r
888 tx.preConcatenate (rtxi);
\r
889 if (andTranslation) {
\r
890 if (dx != 0 || dy != 0) {
\r
891 tx.setTransform (tx.getScaleX (), tx.getShearY (), tx.getShearX (), tx.getScaleY (), 0, 0);
\r
892 rtx.setTransform (rtx.getScaleX (), rtx.getShearY (), rtx.getShearX (), rtx.getScaleY (), dx, dy);
\r
894 if (Clazz.exceptionOf (e, java.awt.geom.NoninvertibleTransformException)) {
\r
901 }, "java.awt.geom.Point2D.Double,java.awt.geom.AffineTransform,~B");
\r
902 c$.DEFAULT = c$.prototype.DEFAULT = new jssun.font.AttributeValues ();
\r
903 c$.MASK_ALL = c$.prototype.MASK_ALL = jssun.font.AttributeValues.getMask (jssun.font.EAttribute.getEnumConstants ());
\r
904 Clazz.defineStatics (c$,
\r
905 "DEFINED_KEY", "sun.font.attributevalues.defined_key");
\r