2013-10-10

Tooltips vom Converter bei ADF af:inputText Feldern unterdrücken

Eigentlich machen die Tooltips von Convertern auf Eingabefeldern ja durchaus Sinn, denn sie helfen dabei, mögliche Fehleingaben zu verhindern.
Wenn der Kunde aber wünscht "...bitte nicht anzeigen, die Benutzer wissen, was sie da eintragen..." ist uns das Befehl.

Dieses Posting im Oracle Forum zeigt den Weg, wie es auf af:inputDate Feldern mit dem automatisch gesetzten convertDateTime Converter funktioniert: https://forums.oracle.com/message/10101349#10101349

Das funktioniert analog natürlich auch z.B. für ein af:inputText Feld, auf dem ein Converter manuell eingestellt wurde!

1.) Javascript Funktion in den Code

<?xml version='1.0' encoding='UTF-8'?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1"
          xmlns:af="http://xmlns.oracle.com/adf/faces/rich"
          xmlns:f="http://java.sun.com/jsf/core"
          xmlns:c="http://java.sun.com/jsp/jstl/core">

  <af:resource type="javascript">
     function blockHint(event) {
        var source = event.getSource();
        source.getPeer().ShouldShowHint = function() {
            return false;
        }

     }
  </af:resource>

...

2.) Funktion innerhalb des af:inputText mit einem af:clientListener auf den Typ focus aufrufen lassen.

...
<af:inputText id="it6"
              simple="true"
              rows="1"
              columns="#{row.length.value}"
              maximumLength="#{row.length.value}"
              value="#{row.zahl}"
              contentStyle="text-align:right;">
   <af:clientListener method="blockHint"

                      type="focus"/>
   <f:convertNumber pattern="#"
                    type="number"/>
</af:inputText>

...

Fertig.