001    package echopoint.style.echo;
002    
003    import echopoint.style.AbstractStyle;
004    import static echopoint.style.echo.ResourceImages.InputFieldBackground;
005    import static echopoint.style.echo.ResourceImages.InputFieldBackgroundHightlight;
006    import static echopoint.style.echo.ResourceImages.InputFieldBackgroundPressed;
007    import static echopoint.util.ColorKit.makeColor;
008    import nextapp.echo.app.Border;
009    import nextapp.echo.app.Extent;
010    import nextapp.echo.app.FillImage;
011    import nextapp.echo.app.Insets;
012    import static nextapp.echo.app.button.AbstractButton.*;
013    
014    /**
015     * The default style to associate with button components.
016     *
017     * @author Rakesh Vidyadharan 2009-05-24
018     * @version $Id: AbstractButtonStyle.java 208 2009-05-25 02:40:35Z sptrakesh $
019     */
020    public class AbstractButtonStyle extends AbstractStyle
021    {
022      private static final long serialVersionUID = 1l;
023    
024      /**
025       * The border colour to use for the button.
026       *
027       * {@value}
028       */
029      public static final String BORDER = "#709bcd";
030    
031      /**
032       * The rollover border colour to apply to the button.
033       *
034       * {@value}
035       */
036      public static final String ROLLOVER_BORDER = "#bcd6f4";
037    
038      /**
039       * The foreground colour to use when the button is disabled.
040       *
041       * {@value}
042       */
043      public static final String DISABLED_FOREGROUND = "#93bed5";
044    
045      /** {@inheritDoc} */
046      @Override
047      protected void init()
048      {
049        super.init();
050    
051        set( PROPERTY_BACKGROUND_IMAGE, new FillImage( InputFieldBackground,
052            new Extent( 0 ), new Extent( 50, Extent.PERCENT ),
053            FillImage.REPEAT ) );
054    
055        set( PROPERTY_BORDER,
056            new Border( 1, makeColor( BORDER ), Border.STYLE_OUTSET ) );
057        set( PROPERTY_DISABLED_FOREGROUND, makeColor( DISABLED_FOREGROUND ) );
058        set( PROPERTY_INSETS, new Insets( 1, 4 ) );
059    
060        set( PROPERTY_PRESSED_BACKGROUND_IMAGE, new FillImage(
061            InputFieldBackgroundPressed, new Extent( 0 ),
062            new Extent( 50, Extent.PERCENT ), FillImage.REPEAT ) );
063    
064        set( PROPERTY_PRESSED_BORDER,
065            new Border( 1, makeColor( BORDER ), Border.STYLE_INSET ) );
066        set( PROPERTY_PRESSED_ENABLED, true );
067    
068        set( PROPERTY_ROLLOVER_BACKGROUND_IMAGE, new FillImage(
069            InputFieldBackgroundHightlight, new Extent( 0 ),
070            new Extent( 50, Extent.PERCENT ), FillImage.REPEAT ) );
071    
072        set( PROPERTY_ROLLOVER_BORDER,
073            new Border( 1, makeColor( ROLLOVER_BORDER ), Border.STYLE_OUTSET ) );
074        set( PROPERTY_ROLLOVER_ENABLED, true );
075      }
076    }