SubstanceIcon should not implement UIResource marker interface. Instead, it should follow the core Swing approach from javax.swing.plaf.XYZUIResource - classes that accept a "core" object and delegate all relevant method calls to it, while exposing it as a UIResource.
This will allow using icons generated by Ibis in two ways:
As internal / transient icons added by Substance and removed when it is unset.
As application-specific icons in the apps that "survive" calls to SwingUtilities.updateComponentTreeUI methods and others that update UI delegates.
SubstanceIcon should not implement UIResource marker interface. Instead, it should follow the core Swing approach from javax.swing.plaf.XYZUIResource - classes that accept a "core" object and delegate all relevant method calls to it, while exposing it as a UIResource.
This will allow using icons generated by Ibis in two ways: