001    package org.springframework.richclient.taskpane;
002    
003    import org.springframework.richclient.command.AbstractCommand;
004    import org.springframework.richclient.command.config.DefaultCommandButtonConfigurer;
005    import org.springframework.richclient.command.config.CommandFaceDescriptor;
006    import org.springframework.util.Assert;
007    import org.springframework.util.StringUtils;
008    
009    import javax.swing.*;
010    import javax.swing.plaf.ButtonUI;
011    
012    public class JTaskPaneCommandButtonConfigurer extends DefaultCommandButtonConfigurer
013    {
014        public void configure(AbstractButton button, AbstractCommand command, CommandFaceDescriptor faceDescriptor)
015        {
016    
017            Assert.notNull(button, "The button to configure cannot be null.");
018            Assert.notNull(faceDescriptor, "The command face descriptor cannot be null.");
019    
020            if (StringUtils.hasText(faceDescriptor.getDescription()))
021                button.setText(faceDescriptor.getDescription());
022            else
023                button.setText(faceDescriptor.getText());
024    
025            button.setToolTipText(faceDescriptor.getCaption());
026    
027            if (faceDescriptor.getLargeIcon() != null)
028                faceDescriptor.configureIconInfo(button, true);
029            else
030                faceDescriptor.configureIcon(button);
031            try
032            {
033                button.setUI((ButtonUI) Class.forName((String) UIManager.get("LinkButtonUI")).newInstance());
034            }
035            catch (Exception e)
036            {
037    
038            }
039        }
040    }