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