/** * */ package org.korsakow.ide.resources; import java.util.Hashtable; import javax.swing.Icon; import org.korsakow.domain.interf.IResource; import org.korsakow.ide.lang.LanguageBundle; import org.korsakow.ide.util.UIResourceManager; public enum ResourceType { SNU("org.korsakow.resource.Snu", LanguageBundle.getString("resource.snu.label"), UIResourceManager.ICON_SNU), VIDEO("org.korsakow.resource.Video", LanguageBundle.getString("resource.video.label"), UIResourceManager.ICON_VIDEO), SOUND("org.korsakow.resource.Sound", LanguageBundle.getString("resource.sound.label"), UIResourceManager.ICON_SOUND), PROJECT("org.korsakow.resource.Project", LanguageBundle.getString("resource.project.label"), UIResourceManager.ICON_PROJECT), WIDGET("org.korsakow.resource.Widget", LanguageBundle.getString("resource.widget.label"), UIResourceManager.ICON_WIDGET), INTERFACE("org.korsakow.resource.Interface", LanguageBundle.getString("resource.interface.label"), UIResourceManager.ICON_INTERFACE), RULE("org.korsakow.resource.Rule", LanguageBundle.getString("resource.rule.label"), UIResourceManager.ICON_RULE), PREDICATE("org.korsakow.resource.Predicate", LanguageBundle.getString("resource.predicate.label"), UIResourceManager.ICON_RULE), TRIGGER("org.korsakow.resource.Trigger", LanguageBundle.getString("resource.trigger.label"), UIResourceManager.ICON_RULE), IMAGE("org.korsakow.resource.Image", LanguageBundle.getString("resource.image.label"), UIResourceManager.ICON_IMAGE), TEXT("org.korsakow.resource.Text", LanguageBundle.getString("resource.text.label"), UIResourceManager.ICON_TEXT); private static Hashtable<String, ResourceType> byId = new Hashtable<String, ResourceType>(); public static ResourceType forId(String id) { if (byId.get(id)==null) { for (ResourceType type : ResourceType.values()) if (type.getTypeId().equals(id)) { byId.put(id, type); break; } } if (byId.get(id)==null) throw new IllegalArgumentException(id); return byId.get(id); } private String display; private String typeId; private String iconName; ResourceType(String typeId, String display, String iconName) { this.typeId = typeId; this.display = display; this.iconName = iconName; } public String getTypeId() { return typeId; } public Icon getIcon() { return UIResourceManager.getIcon(iconName); } public String getDisplayString() { return display; } public boolean isMedia() { switch (this) { case IMAGE: case VIDEO: case SOUND: case TEXT: return true; } return false; } public boolean isInstance( IResource obj ) { if ( obj == null ) return false; return forId( obj.getType() ) == this; } }