1 | static JTextPane verticallyCenterTextPane(final JTextPane tp) { |
2 | swing { |
3 | tp.setEditorKit(new MyEditorKit); // TODO: rename classes |
4 | } |
5 | ret tp; |
6 | } |
7 | |
8 | sclass MyEditorKit extends StyledEditorKit { |
9 | public ViewFactory getViewFactory() { |
10 | return new StyledViewFactory(); |
11 | } |
12 | |
13 | static class StyledViewFactory implements ViewFactory { |
14 | public View create(Element elem) { |
15 | String kind = elem.getName(); |
16 | if (kind != null) { |
17 | if (kind.equals(AbstractDocument.ContentElementName)) { |
18 | |
19 | return new LabelView(elem); |
20 | } else if (kind.equals(AbstractDocument.ParagraphElementName)) { |
21 | return new ParagraphView(elem); |
22 | } else if (kind.equals(AbstractDocument.SectionElementName)) { |
23 | |
24 | return new CenteredBoxView(elem, View.Y_AXIS); |
25 | } else if (kind.equals(StyleConstants.ComponentElementName)) { |
26 | return new ComponentView(elem); |
27 | } else if (kind.equals(StyleConstants.IconElementName)) { |
28 | |
29 | return new IconView(elem); |
30 | } |
31 | } |
32 | |
33 | return new LabelView(elem); |
34 | } |
35 | } |
36 | } |
37 | |
38 | sclass CenteredBoxView extends BoxView { |
39 | public CenteredBoxView(Element elem, int axis) { |
40 | super(elem,axis); |
41 | } |
42 | protected void layoutMajorAxis(int targetSpan, int axis, int[] offsets, int[] spans) { |
43 | super.layoutMajorAxis(targetSpan,axis,offsets,spans); |
44 | int textBlockHeight = 0; |
45 | int offset = 0; |
46 | |
47 | for (int i = 0; i < spans.length; i++) { |
48 | |
49 | textBlockHeight = spans[i]; |
50 | } |
51 | offset = (targetSpan - textBlockHeight) / 2; |
52 | for (int i = 0; i < offsets.length; i++) { |
53 | offsets[i] += offset; |
54 | } |
55 | } |
56 | } |
download show line numbers debug dex old transpilations
Travelled to 13 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, gwrvuhgaqvyk, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tslmcundralx, tvejysmllsmz, vouqrxazstgt
No comments. add comment
Snippet ID: | #1010263 |
Snippet name: | verticallyCenterTextPane [quite complicated, seems to work, but breaks horizontal center, better use jFullCenter] |
Eternal ID of this version: | #1010263/5 |
Text MD5: | d1628f370288f659047495564921c0b2 |
Author: | stefan |
Category: | javax / gui |
Type: | JavaX fragment (include) |
Public (visible to everyone): | Yes |
Archived (hidden from active list): | No |
Created/modified: | 2017-09-07 19:42:28 |
Source code size: | 1861 bytes / 56 lines |
Pitched / IR pitched: | No / No |
Views / Downloads: | 406 / 485 |
Version history: | 4 change(s) |
Referenced in: | [show references] |