Der Tooltip für abgeschnittenen Text in einer Tabellenzelle zur Zeit nur angezeigt, wenn es nicht möglich ist, die Spalte zu ändern. Dies geschieht absichtlich, weil der Tooltip sehr nervig sein kann. Der Code verantwortlich dafür ist, in der Datei Table.js:
scout.Table.prototype._isTruncatedCellTooltipEnabled = function(column) {
return !this.headerVisible || column.fixedWidth;
};
Wenn Sie dieses Verhalten nicht gefällt, können Sie die JavaScript-Code anpassen können. Es gibt im Wesentlichen zwei Möglichkeiten, dies zu tun:
- Ersetzen Sie die ursprüngliche Funktion
- die Tabelle erweitern und die Funktion außer Kraft setzen
Mit dem ersten Ansatz ersetzen Sie die eigentliche Funktion, so jedes Mal ein Scout. Tabelle wird erstellt, diese Funktion wird verwendet. Bei der zweiten Methode müssen Sie sicherstellen, dass Ihre neue Tabelle verwendet wird. Dazu müssen Sie eine Zuordnung zwischen dem Objekttyp und dem Konstruktor angeben, die immer dann verwendet wird, wenn ein Objekt mit scout.create (objectType) erstellt werden soll. Dies geschieht normalerweise per Konvention. Wenn Sie also scout.create ('Table') schreiben, wird eine neue Scout.Table erstellt. Da Sie jetzt eine benutzerdefinierte Tabelle erstellen möchten, müssen Sie die Zuordnung zu scout.objectFactories hinzufügen.
Für mich fühlt sich der erste Ansatz eher wie Patching, während der zweite eine sauberere Lösung ist. Der Vorteil der zweiten Lösung besteht darin, dass das ursprüngliche Objekt unberührt bleibt und Sie zumindest theoretisch noch normale Tabellen erstellen können. Deshalb schlage ich vor, den zweiten Ansatz zu verwenden. Aber am Ende ist es wahrscheinlich eine Frage des Geschmacks.
In beiden Fällen müssen Sie eine oder mehrere JavaScript-Dateien erstellen, sie in Ihrem Projekt-module.js registrieren und dieses Modul in Ihre index.html einbinden. Die Dateien könnten wie folgt aussehen:
Ansatz 1:
Patches.js
scout.Table.prototype._isTruncatedCellTooltipEnabled = function(column) {
return true;
};
Ansatz 2
CustomTable.js
scout.CustomTable = function() {
scout.CustomTable.parent.call(this);
};
scout.inherits(scout.CustomTable, scout.Table);
/**
* @override
*/
scout.CustomTable.prototype._isTruncatedCellTooltipEnabled = function(column) {
return true;
};
objectFactories.js
scout.objectFactories = $.extend(scout.objectFactories, {
'Table': function() {
return new scout.CustomTable();
}
});
Denken Sie daran: Der Scout JavaScript-Code nicht api ist und können sich jederzeit ändern. Sie werden keine Kompilierungsfehler erhalten, wenn die Funktion so umbenannt wird, wie Sie es von Java gewohnt sind. Bevor Sie also eine Menge benutzerdefinierten JavaScript-Code hinzufügen, um das Standardverhalten anzupassen, sollten Sie zuerst einen Fehler beheben, damit er in Scout behoben werden kann. Es könnte auch anderen helfen.