/**
* Enumeration of the various states an application can be in, and the associated icon.
*/
package com.mindprod.vercheck;
import javax.swing.ImageIcon;
import java.io.Serializable;
import java.net.URL;
/**
* Possible states an app can have vis a vis update available
*
* @author Roedy Green, Canadian Mind Products
* @version 1.0 Created by IntelliJ IDEA.
*/
public enum AppState implements Serializable
{
/**
* empty slot
*/
EMPTY( "verempty", "empty.png" ),
/**
* not checked yet
*/
UNKNOWN( "verunknown", "unknown.png" ),
/**
* in process of being checked
*/
CHECKING( "verchecking", "checking.png" ),
/**
* new version available, marker missing or does not match.
*/
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
*/
BROKENLINK( "verbroken", "brokenlink.png" ),
/**
* Entry has invalid data fields.
*/
INVALID( "verinvalid", "invalid.png" );
/**
* Defining a layout version for a class. Watch the spelling and keywords!
*/
public static final long serialVersionUID = 2L;
/**
* icon for this enum
*/
private final ImageIcon icon;
/**
* 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;
}
/**
* 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( String shortName, String png )
{
this.shortName = shortName;
final URL url = VerCheck.class.getResource( "image/" + png );
this.icon = new ImageIcon( url );
}
}