/* * [AppState.java] * * Summary: Enumeration of the various states an application can be in, and the associated icon. * * Copyright: (c) 2009-2017 Roedy Green, Canadian Mind Products, http://mindprod.com * * Licence: This software may be copied and used freely for any purpose but military. * http://mindprod.com/contact/nonmil.html * * Requires: JDK 1.8+ * * Created with: JetBrains IntelliJ IDEA IDE http://www.jetbrains.com/idea/ * * Version History: * 3.8 2009-03-31 change order of fields in defaults.csv. */ package com.mindprod.vercheck; import javax.swing.ImageIcon; import java.io.Serializable; import java.net.URL; /** * Enumeration of the various states an application can be in, and the associated icon. * * @author Roedy Green, Canadian Mind Products * @version 3.8 2009-03-31 change order of fields in defaults.csv. * @since 2009 */ public enum AppState implements Serializable { /** * empty slot */ EMPTY( "verempty", "empty.png" ), /** * not checked yet */ UNTESTED( "verunknown", "unknown.png" ), /** * in process of being checked */ CHECKING( "verchecking", "checking.png" ), /** * new version available, marker missing or does not match. */ RECENTLY_CHANGED( "verdarkleaf", "changed.png" ), /** * released in last week, but unchanged since marker. */ UNCHANGED_RELEASED_IN_LAST_WEEK( "verleaf", "recentlychanged.png" ), /** * released a week to a month ago, but unchanged since marker. */ UNCHANGED_RELEASED_IN_LAST_MONTH( "vergreen", "unchangedgreen.png" ), /** * released a month to a year ago, but unchanged since marker. */ UNCHANGED_RELEASED_MORE_THAN_A_MONTH_AGO( "verorange", "unchangedorange.png" ), /** * released over a year ago, unchanged since marker. */ UNCHANGED_RELEASED_MORE_THAN_A_YEAR_AGO( "verred", "unchangedred.png" ), /** * could not contact website, so status is unknown. This is not German. It means version-broken. */ NO_CONNECTION( "verbroken", "brokenlink.png" ), /** * Entry has invalid data fields. */ INVALID( "verinvalid", "invalid.png" ); /** * Defining a layout version for a class. Watch the spelling and keywords! */ private static final long serialVersionUID = 3L; /** * icon for this enum */ private final ImageIcon icon; /** * short name for enum, used as HTML class name */ private final String shortName; /** * constructor * * @param shortName used as class in HTML export * @param png name of icon png */ AppState( final String shortName, final String png ) { this.shortName = shortName; final URL url = AppState.class.getResource( "image/" + png ); assert url != null : "missing image in resource image/" + png; this.icon = new ImageIcon( url ); } /** * get icon corresponding to this enum * * @return 16x16 or smaller ImageIcon. */ public ImageIcon getIcon() { return icon; } /** * get short name of enum constant, used an HTML class * * @return short name. */ public String getShortName() { return shortName; } }