49a078b4eb2f0429877ffca15c68c6435dec50a3
[jalviewjs.git] / site / swingjs / j2s / jssun / swing / SwingUtilities2.js
1 Clazz.declarePackage ("jssun.swing");\r
2 Clazz.load (["java.lang.Enum", "java.awt.font.FontRenderContext", "jssun.swing.StringUIClientPropertyKey"], "jssun.swing.SwingUtilities2", ["java.lang.Boolean", "$.StringBuffer", "java.awt.Graphics2D", "$.RenderingHints", "javax.swing.SwingUtilities", "$.UIManager"], function () {\r
3 c$ = Clazz.declareType (jssun.swing, "SwingUtilities2");\r
4 c$.drawTextAntialiased = Clazz.defineMethod (c$, "drawTextAntialiased", \r
5 function (c) {\r
6 if (c != null) {\r
7 return c.getClientProperty (jssun.swing.SwingUtilities2.AA_TEXT_PROPERTY_KEY);\r
8 }return null;\r
9 }, "javax.swing.JComponent");\r
10 c$.getLeftSideBearing = Clazz.defineMethod (c$, "getLeftSideBearing", \r
11 function (c, fm, string) {\r
12 if ((string == null) || (string.length == 0)) {\r
13 return 0;\r
14 }return jssun.swing.SwingUtilities2.getLeftSideBearing (c, fm, string.charAt (0));\r
15 }, "javax.swing.JComponent,java.awt.FontMetrics,~S");\r
16 c$.getLeftSideBearing = Clazz.defineMethod (c$, "getLeftSideBearing", \r
17 function (c, fm, firstChar) {\r
18 return 0;\r
19 }, "javax.swing.JComponent,java.awt.FontMetrics,~S");\r
20 c$.getRightSideBearing = Clazz.defineMethod (c$, "getRightSideBearing", \r
21 function (c, fm, string) {\r
22 if ((string == null) || (string.length == 0)) {\r
23 return 0;\r
24 }return jssun.swing.SwingUtilities2.getRightSideBearing (c, fm, string.charAt (string.length - 1));\r
25 }, "javax.swing.JComponent,java.awt.FontMetrics,~S");\r
26 c$.getRightSideBearing = Clazz.defineMethod (c$, "getRightSideBearing", \r
27 function (c, fm, lastChar) {\r
28 return 0;\r
29 }, "javax.swing.JComponent,java.awt.FontMetrics,~S");\r
30 c$.getFontMetrics = Clazz.defineMethod (c$, "getFontMetrics", \r
31 function (c, g) {\r
32 return jssun.swing.SwingUtilities2.getFontMetrics (c, g, g.getFont ());\r
33 }, "javax.swing.JComponent,java.awt.Graphics");\r
34 c$.getFontMetrics = Clazz.defineMethod (c$, "getFontMetrics", \r
35 function (c, g, font) {\r
36 if (c != null) {\r
37 return c.getFontMetrics (font);\r
38 }return null;\r
39 }, "javax.swing.JComponent,java.awt.Graphics,java.awt.Font");\r
40 c$.stringWidth = Clazz.defineMethod (c$, "stringWidth", \r
41 function (c, fm, string) {\r
42 if (string == null || string.equals ("")) {\r
43 return 0;\r
44 }return fm.stringWidth (string);\r
45 }, "javax.swing.JComponent,java.awt.FontMetrics,~S");\r
46 c$.drawString = Clazz.defineMethod (c$, "drawString", \r
47 function (c, g, text, x, y) {\r
48 if (text == null || text.length <= 0) {\r
49 return;\r
50 }var info = jssun.swing.SwingUtilities2.drawTextAntialiased (c);\r
51 if (info != null && (Clazz.instanceOf (g, java.awt.Graphics2D))) {\r
52 var g2 = g;\r
53 var oldContrast = null;\r
54 var oldAAValue = g2.getRenderingHint (java.awt.RenderingHints.KEY_TEXT_ANTIALIASING);\r
55 if (info.aaHint !== oldAAValue) {\r
56 g2.setRenderingHint (java.awt.RenderingHints.KEY_TEXT_ANTIALIASING, info.aaHint);\r
57 } else {\r
58 oldAAValue = null;\r
59 }if (info.lcdContrastHint != null) {\r
60 oldContrast = g2.getRenderingHint (java.awt.RenderingHints.KEY_TEXT_LCD_CONTRAST);\r
61 if (info.lcdContrastHint.equals (oldContrast)) {\r
62 oldContrast = null;\r
63 } else {\r
64 g2.setRenderingHint (java.awt.RenderingHints.KEY_TEXT_LCD_CONTRAST, info.lcdContrastHint);\r
65 }}g.drawString (text, x, y);\r
66 if (oldAAValue != null) {\r
67 g2.setRenderingHint (java.awt.RenderingHints.KEY_TEXT_ANTIALIASING, oldAAValue);\r
68 }if (oldContrast != null) {\r
69 g2.setRenderingHint (java.awt.RenderingHints.KEY_TEXT_LCD_CONTRAST, oldContrast);\r
70 }} else {\r
71 g.drawString (text, x, y);\r
72 }}, "javax.swing.JComponent,java.awt.Graphics,~S,~N,~N");\r
73 c$.loc2IndexFileList = Clazz.defineMethod (c$, "loc2IndexFileList", \r
74 function (list, point) {\r
75 var index = list.locationToIndex (point);\r
76 if (index != -1) {\r
77 var bySize = list.getClientProperty ("List.isFileList");\r
78 if (Clazz.instanceOf (bySize, Boolean) && (bySize).booleanValue () && !jssun.swing.SwingUtilities2.pointIsInActualBounds (list, index, point)) {\r
79 index = -1;\r
80 }}return index;\r
81 }, "javax.swing.JList,java.awt.Point");\r
82 c$.pointIsInActualBounds = Clazz.defineMethod (c$, "pointIsInActualBounds", \r
83  function (list, index, point) {\r
84 var renderer = list.getCellRenderer ();\r
85 var dataModel = list.getModel ();\r
86 var value = dataModel.getElementAt (index);\r
87 var item = renderer.getListCellRendererComponent (list, value, index, false, false);\r
88 var itemSize = item.getPreferredSize ();\r
89 var cellBounds = list.getCellBounds (index, index);\r
90 if (!item.getComponentOrientation ().isLeftToRight ()) {\r
91 cellBounds.x += (cellBounds.width - itemSize.width);\r
92 }cellBounds.width = itemSize.width;\r
93 return cellBounds.contains (point);\r
94 }, "javax.swing.JList,~N,java.awt.Point");\r
95 c$.pointOutsidePrefSize = Clazz.defineMethod (c$, "pointOutsidePrefSize", \r
96 function (table, row, column, p) {\r
97 if (table.convertColumnIndexToModel (column) != 0 || row == -1) {\r
98 return true;\r
99 }var tcr = table.getCellRenderer (row, column);\r
100 var value = table.getValueAt (row, column);\r
101 var cell = tcr.getTableCellRendererComponent (table, value, false, false, row, column);\r
102 var itemSize = cell.getPreferredSize ();\r
103 var cellBounds = table.getCellRect (row, column, false);\r
104 cellBounds.width = itemSize.width;\r
105 cellBounds.height = itemSize.height;\r
106 if (p.x > cellBounds.x + cellBounds.width || p.y > cellBounds.y + cellBounds.height) {\r
107 return true;\r
108 }return false;\r
109 }, "javax.swing.JTable,~N,~N,java.awt.Point");\r
110 c$.setLeadAnchorWithoutSelection = Clazz.defineMethod (c$, "setLeadAnchorWithoutSelection", \r
111 function (model, lead, anchor) {\r
112 if (anchor == -1) {\r
113 anchor = lead;\r
114 }if (lead == -1) {\r
115 model.setAnchorSelectionIndex (-1);\r
116 model.setLeadSelectionIndex (-1);\r
117 } else {\r
118 if (model.isSelectedIndex (lead)) {\r
119 model.addSelectionInterval (lead, lead);\r
120 } else {\r
121 model.removeSelectionInterval (lead, lead);\r
122 }model.setAnchorSelectionIndex (anchor);\r
123 }}, "javax.swing.ListSelectionModel,~N,~N");\r
124 c$.shouldIgnore = Clazz.defineMethod (c$, "shouldIgnore", \r
125 function (me, c) {\r
126 return c == null || !c.isEnabled () || !javax.swing.SwingUtilities.isLeftMouseButton (me) || me.isConsumed ();\r
127 }, "java.awt.event.MouseEvent,javax.swing.JComponent");\r
128 c$.adjustFocus = Clazz.defineMethod (c$, "adjustFocus", \r
129 function (c) {\r
130 if (!c.hasFocus () && c.isRequestFocusEnabled ()) {\r
131 c.requestFocus ();\r
132 }}, "javax.swing.JComponent");\r
133 c$.getGraphics2D = Clazz.defineMethod (c$, "getGraphics2D", \r
134 function (g) {\r
135 if (Clazz.instanceOf (g, java.awt.Graphics2D)) {\r
136 return g;\r
137 } else {\r
138 return null;\r
139 }}, "java.awt.Graphics");\r
140 c$.isPrinting = Clazz.defineMethod (c$, "isPrinting", \r
141 function (g) {\r
142 return false;\r
143 }, "java.awt.Graphics");\r
144 c$.useSelectedTextColor = Clazz.defineMethod (c$, "useSelectedTextColor", \r
145 function (h, c) {\r
146 var painter = h.getPainter ();\r
147 var painterClass = painter.getClass ().getName ();\r
148 if (painterClass.indexOf ("javax.swing.text.DefaultHighlighter") != 0 && painterClass.indexOf ("com.sun.java.swing.plaf.windows.WindowsTextUI") != 0) {\r
149 return false;\r
150 }try {\r
151 var defPainter = painter;\r
152 if (defPainter.getColor () != null && !defPainter.getColor ().equals (c.getSelectionColor ())) {\r
153 return false;\r
154 }} catch (e) {\r
155 if (Clazz.exceptionOf (e, ClassCastException)) {\r
156 return false;\r
157 } else {\r
158 throw e;\r
159 }\r
160 }\r
161 return true;\r
162 }, "javax.swing.text.Highlighter.Highlight,javax.swing.text.JTextComponent");\r
163 c$.canAccessSystemClipboard = Clazz.defineMethod (c$, "canAccessSystemClipboard", \r
164 function () {\r
165 var canAccess = false;\r
166 return canAccess;\r
167 });\r
168 c$.canCurrentEventAccessSystemClipboard = Clazz.defineMethod (c$, "canCurrentEventAccessSystemClipboard", \r
169 function () {\r
170 return false;\r
171 });\r
172 c$.displayPropertiesToCSS = Clazz.defineMethod (c$, "displayPropertiesToCSS", \r
173 function (font, fg) {\r
174 var rule =  new StringBuffer ("body {");\r
175 if (font != null) {\r
176 rule.append (" font-family: ");\r
177 rule.append (font.getFamily ());\r
178 rule.append (" ; ");\r
179 rule.append (" font-size: ");\r
180 rule.append ("" + font.getSize ());\r
181 rule.append ("pt ;");\r
182 if (font.isBold ()) {\r
183 rule.append (" font-weight: 700 ; ");\r
184 }if (font.isItalic ()) {\r
185 rule.append (" font-style: italic ; ");\r
186 }}if (fg != null) {\r
187 rule.append (" color: #");\r
188 if (fg.getRed () < 16) {\r
189 rule.append ('0');\r
190 }rule.append (Integer.toHexString (fg.getRed ()));\r
191 if (fg.getGreen () < 16) {\r
192 rule.append ('0');\r
193 }rule.append (Integer.toHexString (fg.getGreen ()));\r
194 if (fg.getBlue () < 16) {\r
195 rule.append ('0');\r
196 }rule.append (Integer.toHexString (fg.getBlue ()));\r
197 rule.append (" ; ");\r
198 }rule.append (" }");\r
199 return rule.toString ();\r
200 }, "java.awt.Font,java.awt.Color");\r
201 c$.makeIcon = Clazz.defineMethod (c$, "makeIcon", \r
202 function (baseClass, rootClass, imageFile) {\r
203 return null;\r
204 }, "Class,Class,~S");\r
205 c$.isLocalDisplay = Clazz.defineMethod (c$, "isLocalDisplay", \r
206 function () {\r
207 return true;\r
208 });\r
209 c$.getUIDefaultsInt = Clazz.defineMethod (c$, "getUIDefaultsInt", \r
210 function (key) {\r
211 return jssun.swing.SwingUtilities2.getUIDefaultsInt (key, 0);\r
212 }, "~O");\r
213 c$.getUIDefaultsInt = Clazz.defineMethod (c$, "getUIDefaultsInt", \r
214 function (key, l) {\r
215 return jssun.swing.SwingUtilities2.getUIDefaultsInt (key, l, 0);\r
216 }, "~O,java.util.Locale");\r
217 c$.getUIDefaultsInt = Clazz.defineMethod (c$, "getUIDefaultsInt", \r
218 function (key, defaultValue) {\r
219 return jssun.swing.SwingUtilities2.getUIDefaultsInt (key, null, defaultValue);\r
220 }, "~O,~N");\r
221 c$.getUIDefaultsInt = Clazz.defineMethod (c$, "getUIDefaultsInt", \r
222 function (key, l, defaultValue) {\r
223 var value = javax.swing.UIManager.get (key, l);\r
224 if (Clazz.instanceOf (value, Integer)) {\r
225 return (value).intValue ();\r
226 }if (Clazz.instanceOf (value, String)) {\r
227 try {\r
228 return Integer.parseInt (value);\r
229 } catch (nfe) {\r
230 if (Clazz.exceptionOf (nfe, NumberFormatException)) {\r
231 } else {\r
232 throw nfe;\r
233 }\r
234 }\r
235 }return defaultValue;\r
236 }, "~O,java.util.Locale,~N");\r
237 c$.liesIn = Clazz.defineMethod (c$, "liesIn", \r
238  function (rect, p, horizontal, ltr, three) {\r
239 var p0;\r
240 var pComp;\r
241 var length;\r
242 var forward;\r
243 if (horizontal) {\r
244 p0 = rect.x;\r
245 pComp = p.x;\r
246 length = rect.width;\r
247 forward = ltr;\r
248 } else {\r
249 p0 = rect.y;\r
250 pComp = p.y;\r
251 length = rect.height;\r
252 forward = true;\r
253 }if (three) {\r
254 var boundary = (length >= 30) ? 10 : Clazz.doubleToInt (length / 3);\r
255 if (pComp < p0 + boundary) {\r
256 return forward ? jssun.swing.SwingUtilities2.Section.LEADING : jssun.swing.SwingUtilities2.Section.TRAILING;\r
257 } else if (pComp >= p0 + length - boundary) {\r
258 return forward ? jssun.swing.SwingUtilities2.Section.TRAILING : jssun.swing.SwingUtilities2.Section.LEADING;\r
259 }return jssun.swing.SwingUtilities2.Section.MIDDLE;\r
260 } else {\r
261 var middle = p0 + Clazz.doubleToInt (length / 2);\r
262 if (forward) {\r
263 return pComp >= middle ? jssun.swing.SwingUtilities2.Section.TRAILING : jssun.swing.SwingUtilities2.Section.LEADING;\r
264 } else {\r
265 return pComp < middle ? jssun.swing.SwingUtilities2.Section.TRAILING : jssun.swing.SwingUtilities2.Section.LEADING;\r
266 }}}, "java.awt.Rectangle,java.awt.Point,~B,~B,~B");\r
267 c$.liesInHorizontal = Clazz.defineMethod (c$, "liesInHorizontal", \r
268 function (rect, p, ltr, three) {\r
269 return jssun.swing.SwingUtilities2.liesIn (rect, p, true, ltr, three);\r
270 }, "java.awt.Rectangle,java.awt.Point,~B,~B");\r
271 c$.liesInVertical = Clazz.defineMethod (c$, "liesInVertical", \r
272 function (rect, p, three) {\r
273 return jssun.swing.SwingUtilities2.liesIn (rect, p, false, false, three);\r
274 }, "java.awt.Rectangle,java.awt.Point,~B");\r
275 Clazz.pu$h(self.c$);\r
276 c$ = Clazz.declareType (jssun.swing.SwingUtilities2, "Section", Enum);\r
277 Clazz.defineEnumConstant (c$, "LEADING", 0, []);\r
278 Clazz.defineEnumConstant (c$, "MIDDLE", 1, []);\r
279 Clazz.defineEnumConstant (c$, "TRAILING", 2, []);\r
280 c$ = Clazz.p0p ();\r
281 Clazz.pu$h(self.c$);\r
282 c$ = Clazz.decorateAsClass (function () {\r
283 this.aaHint = null;\r
284 this.lcdContrastHint = null;\r
285 this.frc = null;\r
286 Clazz.instantialize (this, arguments);\r
287 }, jssun.swing.SwingUtilities2, "AATextInfo");\r
288 c$.getAATextInfo = Clazz.defineMethod (c$, "getAATextInfo", \r
289 function (a) {\r
290 return null;\r
291 }, "~B");\r
292 c$ = Clazz.p0p ();\r
293 c$.LAF_STATE_KEY = c$.prototype.LAF_STATE_KEY =  new Clazz._O ();\r
294 c$.DEFAULT_FRC = c$.prototype.DEFAULT_FRC =  new java.awt.font.FontRenderContext (null, false, false);\r
295 c$.AA_TEXT_PROPERTY_KEY = c$.prototype.AA_TEXT_PROPERTY_KEY =  new Clazz._O ();\r
296 c$.SKIP_CLICK_COUNT = c$.prototype.SKIP_CLICK_COUNT =  new Clazz._O ();\r
297 c$.COMPONENT_UI_PROPERTY_KEY = c$.prototype.COMPONENT_UI_PROPERTY_KEY =  new Clazz._O ();\r
298 c$.BASICMENUITEMUI_MAX_TEXT_OFFSET = c$.prototype.BASICMENUITEMUI_MAX_TEXT_OFFSET =  new jssun.swing.StringUIClientPropertyKey ("maxTextOffset");\r
299 });\r