package fitnesse.revisioncontrol.svn.client; import fitnesse.html.HtmlTag; import fitnesse.revisioncontrol.ActionStyle; import static fitnesse.revisioncontrol.ActionStyle.*; import fitnesse.revisioncontrol.RevisionControlHtmlUtils; import org.tmatesoft.svn.core.wc.SVNEventAction; import java.util.HashMap; import java.util.Map; public class SVNEventActionTags { private static Map<SVNEventAction, HtmlTag> tagsByAction = new HashMap<SVNEventAction, HtmlTag>(); static { registerActionTag(SVNEventAction.PROGRESS, "Progress", ALERT); registerActionTag(SVNEventAction.ADD, "Added", OK); registerActionTag(SVNEventAction.COPY, "Copied", OK); registerActionTag(SVNEventAction.DELETE, "Deleted", OK); registerActionTag(SVNEventAction.RESTORE, "Restored", OK); registerActionTag(SVNEventAction.REVERT, "Reverted", OK); registerActionTag(SVNEventAction.FAILED_REVERT, "Revert failed", ALERT); registerActionTag(SVNEventAction.RESOLVED, "Resolved", OK); registerActionTag(SVNEventAction.SKIP, "Skipped", WARNING); registerActionTag(SVNEventAction.UPDATE_DELETE, "Deleted", OK); registerActionTag(SVNEventAction.UPDATE_ADD, "Added", OK); registerActionTag(SVNEventAction.UPDATE_UPDATE, "Updated", OK); tagsByAction.put(SVNEventAction.UPDATE_NONE, RevisionControlHtmlUtils.makeTextTag(" ")); tagsByAction.put(SVNEventAction.UPDATE_COMPLETED, RevisionControlHtmlUtils.makeTextTag(" ")); registerActionTag(SVNEventAction.UPDATE_EXTERNAL, "Externally updated", OK); registerActionTag(SVNEventAction.UPDATE_REPLACE, "Replaced", OK); registerActionTag(SVNEventAction.UPDATE_EXISTS, "Existing", WARNING); registerActionTag(SVNEventAction.STATUS_COMPLETED, "Completed", OK); registerActionTag(SVNEventAction.STATUS_EXTERNAL, "External", OK); registerActionTag(SVNEventAction.COMMIT_MODIFIED, "Modified", OK); registerActionTag(SVNEventAction.COMMIT_ADDED, "Added", OK); registerActionTag(SVNEventAction.COMMIT_DELETED, "Deleted", OK); registerActionTag(SVNEventAction.COMMIT_REPLACED, "Replaced", OK); registerActionTag(SVNEventAction.COMMIT_DELTA_SENT, "Delta sent", OK); registerActionTag(SVNEventAction.COMMIT_COMPLETED, "Completed", OK); registerActionTag(SVNEventAction.CHANGELIST_SET, "Added to changelist", OK); registerActionTag(SVNEventAction.CHANGELIST_MOVED, "Moved changelists", OK); registerActionTag(SVNEventAction.CHANGELIST_CLEAR, "Removed from changelist", OK); registerActionTag(SVNEventAction.ANNOTATE, "Annotating", OK); registerActionTag(SVNEventAction.LOCKED, "Locked", OK); registerActionTag(SVNEventAction.UNLOCKED, "Unlocked", OK); registerActionTag(SVNEventAction.LOCK_FAILED, "Lock Failed", ALERT); registerActionTag(SVNEventAction.UNLOCK_FAILED, "Unlock Failed", ALERT); registerActionTag(SVNEventAction.MERGE_BEGIN, "Merge began", OK); registerActionTag(SVNEventAction.FOREIGN_MERGE_BEGIN, "Foreign merge began", OK); registerActionTag(SVNEventAction.UPGRADE, "Working copy upgraded", OK); registerActionTag(SVNEventAction.PROPERTY_ADD, "Property Added", OK); registerActionTag(SVNEventAction.PROPERTY_MODIFY, "Property Modified", OK); registerActionTag(SVNEventAction.PROPERTY_DELETE, "Property Deleted", OK); registerActionTag(SVNEventAction.PROPERTY_DELETE_NONEXISTENT, "Property Non Existent", WARNING); registerActionTag(SVNEventAction.REVPROPER_SET, "Revision Property Set", OK); registerActionTag(SVNEventAction.REVPROP_DELETE, "Revision Property Deleted", OK); registerActionTag(SVNEventAction.MERGE_COMPLETE, "Merge Completed", OK); registerActionTag(SVNEventAction.TREE_CONFLICT, "Tree Coflict", ALERT); registerActionTag(SVNEventAction.FAILED_EXTERNAL, "Failed External", ALERT); } private static void registerActionTag(SVNEventAction action, String description, ActionStyle style) { tagsByAction.put(action, RevisionControlHtmlUtils.makeTextTag(description, style.getStyle())); } public static void verifyActionKnown(SVNEventAction action) { if (tagsByAction.get(action) == null) System.err.println("\n" + "###########################################################################\n" + "########### " + action + " not recognized! The fitnesse svn integration and svnkit are not compatible!\n" + "###########################################################################\n" + "\n"); } public static Map<SVNEventAction, HtmlTag> getTagsByType() { return tagsByAction; } public static HtmlTag getTag(SVNEventAction action) { verifyActionKnown(action); return tagsByAction.get(action); } }