Unterschiede
Hier werden die Unterschiede zwischen der gewählten und der aktuellen Version gezeigt.
| swt-jface:text-user-drawn 2008/07/25 08:04 | swt-jface:text-user-drawn 2020/01/22 20:59 aktuell | ||
|---|---|---|---|
| Zeile 2: | Zeile 2: | ||
| Ein recht großes Manke des SWT-Text-Controls ist, dass der enthaltenden Text im Zustand //disabled// nicht kopiert werden kann. | Ein recht großes Manke des SWT-Text-Controls ist, dass der enthaltenden Text im Zustand //disabled// nicht kopiert werden kann. | ||
| Ferner ist der Text grau und somit recht schlecht lesbar. Der folgende Code behebt diese beiden Nachteile:\\ | Ferner ist der Text grau und somit recht schlecht lesbar. Der folgende Code behebt diese beiden Nachteile:\\ | ||
| + | \\ | ||
| + | <html> | ||
| + | <script type="text/javascript"><!-- | ||
| + | google_ad_client="pub-9681858985507948"; | ||
| + | google_ad_width = 468; | ||
| + | google_ad_height = 60; | ||
| + | google_ad_format = "468x60_as"; | ||
| + | google_ad_type = "text"; | ||
| + | google_ad_channel = ""; | ||
| + | google_color_border = "cccccc"; | ||
| + | google_color_bg = "FFFFFF"; | ||
| + | google_color_link = "1d2d8c"; | ||
| + | google_color_text = "000000"; | ||
| + | google_color_url = "1d2d8c"; | ||
| + | //--> | ||
| + | </script> | ||
| + | <script type="text/javascript" | ||
| + | src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> | ||
| + | </script> | ||
| + | </html> | ||
| \\ | \\ | ||
| <code java> | <code java> | ||
| Zeile 10: | Zeile 30: | ||
| text.setEditable(!uneditable); | text.setEditable(!uneditable); | ||
| - | final String painterAddedKey = "painterAddedKey"; | + | final String painterAddedKey = "KEY_PAINTER_ADDED"; |
| final Composite pComp = text.getParent(); | final Composite pComp = text.getParent(); | ||
| if (uneditable && null == pComp.getData(painterAddedKey)) { | if (uneditable && null == pComp.getData(painterAddedKey)) { | ||
| Zeile 25: | Zeile 45: | ||
| private PaintListener getUneditableBorderPaintListener() { | private PaintListener getUneditableBorderPaintListener() { | ||
| - | if (m_uneditableBorderPaintListener == null) { | + | if (uneditableBorderPaintListener == null) { |
| - | m_uneditableBorderPaintListener = new PaintListener() { | + | uneditableBorderPaintListener = new PaintListener() { |
| public void paintControl(PaintEvent event) { | public void paintControl(PaintEvent event) { | ||
| Composite composite = (Composite) event.widget; | Composite composite = (Composite) event.widget; | ||
| Control[] children = composite.getChildren(); | Control[] children = composite.getChildren(); | ||
| GC gc = event.gc; | GC gc = event.gc; | ||
| - | gc.setForeground(getUneditableTextBorderColor()); | + | gc.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_GRAY); |
| for (int i = 0; i < children.length; i++) { | for (int i = 0; i < children.length; i++) { | ||
| Zeile 48: | Zeile 68: | ||
| }; | }; | ||
| } | } | ||
| - | return m_uneditableBorderPaintListener; | + | return uneditableBorderPaintListener; |
| - | } | + | |
| - | + | ||
| - | private Color getUneditableTextBorderColor() { | + | |
| - | final String colorKey = "COLOR_NONEDITABLE_TEXT_BOREDER"; | + | |
| - | + | ||
| - | Color borderColor = getFormToolkit().getColors().getColor(colorKey); | + | |
| - | if (null == borderColor) { | + | |
| - | Color origBorderColor = getFormToolkit().getColors().getBorderColor(); | + | |
| - | int r = brighter(origBorderColor.getRed(), 2, 3); | + | |
| - | int g = brighter(origBorderColor.getGreen(), 2, 3); | + | |
| - | int b = brighter(origBorderColor.getBlue(), 2, 3); | + | |
| - | borderColor = getFormToolkit().getColors().createColor(colorKey, r, g, b); | + | |
| - | } | + | |
| - | return borderColor; | + | |
| - | } | + | |
| - | + | ||
| - | private int brighter(final int color, final int x, final int y) { | + | |
| - | return (255 - color) * x / y + color; | + | |
| } | } | ||
| </code> | </code> | ||
| Zeile 72: | Zeile 74: | ||
| Verwendung:\\ | Verwendung:\\ | ||
| <code> | <code> | ||
| - | Text myText = new Text(); | + | Text myText = ... |
| setUneditable(myText, true); | setUneditable(myText, true); | ||
| </code> | </code> | ||