Unterschiede

Hier werden die Unterschiede zwischen der gewählten und der aktuellen Version gezeigt.

swt-jface:text-user-drawn 2008/04/10 11:40 swt-jface:text-user-drawn 2020/01/22 20:59 aktuell
Zeile 1: Zeile 1:
====== Text-Control, selbst gezeichnet ====== ====== Text-Control, selbst gezeichnet ======
 +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:\\
 +\\
 +<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>
public void setUneditable(final Text text, final boolean uneditable) { public void setUneditable(final Text text, final boolean uneditable) {
  if (WidgetUtils.canBeUsed(text)) {            if (WidgetUtils.canBeUsed(text)) {         
      text.setData(FormToolkit.KEY_DRAW_BORDER, !uneditable);       text.setData(FormToolkit.KEY_DRAW_BORDER, !uneditable);
-      text.setData(UNEDITABLE_FLAG_KEY, uneditable); // mark control+      text.setData(UNEDITABLE_FLAG_KEY, uneditable);
      text.setEditable(!uneditable);       text.setEditable(!uneditable);
       
-      final String painterAddedKey = "painterAddedKey"; //$NON-NLS-1$+      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 22: 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 45: Zeile 68:
      };       };
  }   }
-  return m_uneditableBorderPaintListener; +  return uneditableBorderPaintListener;
-+
- +
-private Color getUneditableTextBorderColor() { +
-  final String colorKey = "COLOR_NONEDITABLE_TEXT_BOREDER"; //$NON-NLS-1$ +
- +
-  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 69: Zeile 74:
Verwendung:\\ Verwendung:\\
<code> <code>
-Text myText = new Text();+Text myText = ...
setUneditable(myText, true); setUneditable(myText, true);
</code> </code>

Eigene Werkzeuge
Werkzeuge

gratis Counter by GOWEB
seit 9.10.2007