001 package jigcell.compare.ui; 002 003 import java.net.URL; 004 import jigcell.compare.IComponentDescription; 005 006 /** 007 * Description for one of the Comparator components. The description is loaded from an URL and displayed as HTML text. 008 * 009 * <p> 010 * This code is licensed under the DARPA BioCOMP Open Source License. See LICENSE for more details. 011 * </p> 012 * 013 * @author Nicholas Allen 014 */ 015 016 public class HTMLComponentDescription implements IComponentDescription { 017 018 /** 019 * Width of the HTML viewer 020 */ 021 022 protected int width; 023 024 /** 025 * Cached copy of the description 026 */ 027 028 protected String resource; 029 030 /** 031 * Location of the component description 032 */ 033 034 protected URL location; 035 036 /** 037 * Creates a new component description. 038 * 039 * @param resource Description resource 040 * @param width Width of HTML viewer 041 */ 042 043 public HTMLComponentDescription (String resource, int width) { 044 this.resource = resource; 045 this.width = width; 046 } 047 048 /** 049 * Creates a new component description. 050 * 051 * @param location URL for resource 052 * @param width Width of HTML viewer 053 */ 054 055 public HTMLComponentDescription (URL location, int width) { 056 this.location = location; 057 this.width = width; 058 } 059 060 /** 061 * Creates a display for the component description. 062 */ 063 064 public synchronized Object createDisplay () { 065 return location == null ? InterfaceBuilder.createHTMLViewer (resource, width) : InterfaceBuilder.createHTMLViewer (location, width); 066 } 067 068 /** 069 * The location of the component description. 070 */ 071 072 public URL getLocation () { 073 return location; 074 } 075 076 /** 077 * Sets the location of the component description. 078 * 079 * @param location Location 080 */ 081 082 public synchronized void setLocation (URL location) { 083 this.location = location; 084 } 085 }