Class LafWidgetRepository


  • public class LafWidgetRepository
    extends Object
    Repository of LAF widgets.
    • Field Detail

      • widgetClassesToIgnore

        protected Set<String> widgetClassesToIgnore
        Contains fully qualified class names of widgets that should not be installed on any components.
      • lafSupport

        protected LafWidgetSupport lafSupport
        Currently registered LAF support.
      • isCustomLafSupportSet

        protected boolean isCustomLafSupportSet
        Indicates whether the currently registered LAF support is custom (not LafWidgetSupport).
    • Method Detail

      • getRepository

        public static LafWidgetRepository getRepository()
        Returns the widget repository.
        Returns:
        Widget repository.
      • populateFrom

        protected void populateFrom​(URL url)
        Populates the repository from the specified URL. The URL should point to a properties file, the key being the fully-qualified class name of the widget implementation, the value being semicolon-separated fully-qualified class names of classes in UI component hierarchy. Sample property file:
         org.pushingpixels.lafwidget.text.PasswordStrengthCheckerWidget = javax.swing.JPasswordField
                     org.pushingpixels.lafwidget.text.LockBorderWidget = javax.swing.text.JTextComponent;javax.swing.JComboBox
         
        Parameters:
        url - URL that points to a properties file.
      • populate

        public void populate()
        Populates the widget repository. The classpath is scanned for all resources that match the name META-INF/lafwidget.properties.
        See Also:
        populateFrom(URL)
      • registerWidget

        public void registerWidget​(String widgetClassName,
                                   List<Class<?>> supportedClasses)
        Registers a new widget for the specified UI classes. The list should contain Class instances.
        Parameters:
        widgetClassName - Full-qualified class name for the widget.
        supportedClasses - Classes supported by the widget.
      • registerWidget

        public void registerWidget​(String widgetClassName,
                                   Class<?> supportedClass,
                                   boolean isExact)
        Registers a new widget for the specified UI class.
        Parameters:
        widgetClassName - Full-qualified class name for the widget.
        supportedClass - Class supported by the widget.
        isExact - if true, the widget will be available only for the components of the specified class. If false, the widget be available for the components of the specified class and all its descendants (as defined in the Class.isAssignableFrom(Class) ).
      • getMatchingWidgets

        public Set<LafWidget> getMatchingWidgets​(JComponent jcomp)
        Returns a set of widgets that match the specified component. The component hierarchy is scanned bottom-up and all matching widget classes are used to instantiate new instance of widgets. In case the isCustomLafSupportSet is false, only widgets that return false in LafWidget.requiresCustomLafSupport() are returned.
        Parameters:
        jcomp - UI component.
        Returns:
        Set of widgets that match the specified component.
      • unsetLafSupport

        public void unsetLafSupport()
        Unsets custom LAF support and reverts to the base LAF support.
      • getLafSupport

        public LafWidgetSupport getLafSupport()
        Returns the currently set LAF support. The result is guaranteed to be non-null.
        Returns:
        Currently set non-null LAF support.
      • getLabelBundle

        public static ResourceBundle getLabelBundle()
        Retrieves the current label bundle.
        Returns:
        The current label bundle.
        See Also:
        resetLabelBundle()
      • getLabelBundle

        public static ResourceBundle getLabelBundle​(Locale locale)
        Retrieves the label bundle for the specified locale.
        Parameters:
        locale - Locale.
        Returns:
        The label bundle for the specified locale.
      • resetLabelBundle

        public static void resetLabelBundle()
        Resets the current label bundle. Useful when the application changes Locale at runtime.
        See Also:
        getLabelBundle()
      • setLabelBundleClassLoader

        public static void setLabelBundleClassLoader​(ClassLoader labelBundleClassLoader)
        Sets the class loader for LABEL_BUNDLE.
        Parameters:
        labelBundleClassLoader - Class loader for LABEL_BUNDLE.
        Since:
        version 1.1
      • addToIgnoreWidgets

        public void addToIgnoreWidgets​(String widgetClassName)
        Marks widget with the specified class name to never be installed on any components.
        Parameters:
        widgetClassName - Fully qualified widget class name.