001    package org.shiftone.jrat.desktop.util;
002    
003    import org.jdesktop.swingx.JXTipOfTheDay;
004    import org.jdesktop.swingx.tips.TipLoader;
005    import org.jdesktop.swingx.tips.TipOfTheDayModel;
006    import org.shiftone.jrat.desktop.DesktopPreferences;
007    import org.shiftone.jrat.util.io.ResourceUtil;
008    
009    import java.awt.*;
010    import java.util.Random;
011    
012    /**
013     * @author (jeff@shiftone.org) Jeff Drost
014     */
015    public class Tips {
016    
017        private static final TipOfTheDayModel MODEL = TipLoader.load(
018                ResourceUtil.getResourceAsProperties(
019                        "org/shiftone/jrat/desktop/tips.properties"
020                )
021        );
022    
023        private static final JXTipOfTheDay TOTD = new JXTipOfTheDay(MODEL);
024    
025        public static void show(Component parent, boolean force) {
026            TOTD.setCurrentTip(new Random().nextInt(MODEL.getTipCount() - 1));
027            TOTD.showDialog(parent, new Choice(), force);
028        }
029    
030        private static class Choice implements JXTipOfTheDay.ShowOnStartupChoice {
031    
032            public void setShowingOnStartup(boolean showOnStartup) {
033                DesktopPreferences.setShowTipsOnStartup(showOnStartup);
034            }
035    
036            public boolean isShowingOnStartup() {
037                return DesktopPreferences.isShowTipsOnStartup();
038            }
039        }
040    }