class StrategyInfoLabel extends JLabel {

        private final int strategyIndex;

        public StrategyInfoLabel(int strategyIndex) {
            this.strategyIndex = strategyIndex;
            setIcon(INFO_LABELS_ICON);
            prepareRichTooltip();
        }

        public void refreshEnabledState() {
            AttributeRowsMergeStrategy strategy = getStrategy(strategyIndex);
            setEnabled(strategy != null && strategy.getDescription() != null && !strategy.getDescription().isEmpty());
        }

        private void prepareRichTooltip() {
            addMouseListener(new MouseAdapter() {

                RichTooltip richTooltip;

                @Override
                public void mouseEntered(MouseEvent e) {
                    if (isEnabled()) {
                        richTooltip = buildTooltip(getStrategy(strategyIndex));
                    }

                    if (richTooltip != null) {
                        richTooltip.showTooltip(StrategyInfoLabel.this);
                    }
                }

                @Override
                public void mouseExited(MouseEvent e) {<FILL_FUNCTION_BODY>}

                private RichTooltip buildTooltip(AttributeRowsMergeStrategy strategy) {
                    if (strategy.getDescription() != null && !strategy.getDescription().isEmpty()) {
                        RichTooltip tooltip = new RichTooltip(strategy.getName(), strategy.getDescription());
                        if (strategy.getIcon() != null) {
                            tooltip.setMainImage(ImageUtilities.icon2Image(strategy.getIcon()));
                        }
                        return tooltip;
                    } else {
                        return null;
                    }
                }
            });
        }
    }

                    if (richTooltip != null) {
                        richTooltip.hideTooltip();
                        richTooltip = null;
                    }
                
<methods>public void <init>() ,public void <init>(java.awt.LayoutManager) ,public void <init>(boolean) ,public void <init>(java.awt.LayoutManager, boolean) ,public javax.accessibility.AccessibleContext getAccessibleContext() ,public javax.swing.plaf.PanelUI getUI() ,public java.lang.String getUIClassID() ,public void setUI(javax.swing.plaf.PanelUI) ,public void updateUI() <variables>private static final java.lang.String uiClassID