Verbesserung
Top-Thema
Wichtig
Kleinigkeit
Wichtig
Verbesserung
Wichtig
#24044
Hartcodierte Icon-Referenzen durch Theme-Variablen ersetzten
Es dürfen keine Icon-Referenzen auf Resource-Icons oder CSS-Icons existieren. Entsprechende Referenzen in Konfigurationen müssen ersetzt werden (WEB-INF/layout/**/*.xml, WEB-INF/model/**/*.xml, WEB-INF/conf/**/*.xml). Entsprechende Code-Konstanten müssen durch Icons-Konstanten ersetzt werden:
Statt:
#!java static final ThemeImage MY_IMAGE = ThemeImage.resourceIcon(".../.png");
Jetzt:
#!java public class Icons extends IconsBase { public static ThemeImage MY_IMAGE; static { initConstants(Icons.class); } }
Code-Migration
Diese Migration ist insofern optional, als dass sie nur durchgeführt werden muss, um eine Anwendung optimal theme-bar zu machen.
- Icon-Referenzen in Layout-XML, Model-XML und Anwendungskonfiguration durch Theme-Variablen ersetzten (statt /my/icon.png die Theme-Variabel theme:MY_ICON verwenden und einen entsprechenden <icon name="MY_ICON" value="/my/icon.png"/> in die `theme-settings.xml desjenigen Moduls machen, das das Icon definiert (sofern nicht schon vorhanden).
- Die Miration kann automatisiert werden durch Ausführen des Ant-Tasks z_migrate_icon_references im zu migrierenden Modul.
- Icon-Referenzen im Code durch Theme-Variablen bzw. Icon-Konstanten ersetzen.
- ThemeImage.icon(String), ThemeImage.resourceIcon(String) und ThemeImage.cssIcon(String) darf vom Anwendungscode nicht mehr direkt aufgerufen werden. Stattdessen eine ThemeImage-Pseudo-Konstante in einer Icons-Definitionsdatei erstellen.
Test
test.com.top_logic.layout.TestNoHardIconReferences