X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Furls%2FUrlLinkDisplay.java;h=0eabff7292076a4f45a6c50e51c909837d6c1942;hb=3917b8cc08f85090d44dfa599c715a2ec7ef5b41;hp=6a49f9ea1223d7b02337323fb4b4dd42a47338b7;hpb=44fc22cf950ff114ce3a5a07600e7a7eb5fd1216;p=jalview.git diff --git a/src/jalview/urls/UrlLinkDisplay.java b/src/jalview/urls/UrlLinkDisplay.java index 6a49f9e..0eabff7 100644 --- a/src/jalview/urls/UrlLinkDisplay.java +++ b/src/jalview/urls/UrlLinkDisplay.java @@ -22,6 +22,7 @@ package jalview.urls; import jalview.util.MessageManager; +import jalview.util.UrlLink; import java.util.ArrayList; import java.util.List; @@ -38,45 +39,46 @@ public class UrlLinkDisplay private String id; // id is not supplied to display, but used to identify // entries when saved - private String name; - - private String url; - - private boolean isDefault; + private boolean isPrimary; private boolean isSelected; + private UrlLink link; + // Headers for columns in table private final static List colNames = new ArrayList() { { + add(MessageManager.formatMessage("label.database")); add(MessageManager.formatMessage("label.name")); add(MessageManager.formatMessage("label.url")); add(MessageManager.formatMessage("label.inmenu")); - add(MessageManager.formatMessage("label.default")); + add(MessageManager.formatMessage("label.primary")); add(MessageManager.formatMessage("label.id")); } }; // column positions - public final static int NAME = 0; + public final static int DATABASE = 0; - public final static int URL = 1; + public final static int NAME = 1; - public final static int SELECTED = 2; + public final static int URL = 2; - public final static int DEFAULT = 3; + public final static int SELECTED = 3; - public final static int ID = 4; + public final static int PRIMARY = 4; - public UrlLinkDisplay(String rowId, String rowName, String rowUrl, + public final static int ID = 5; + + public UrlLinkDisplay(String rowId, UrlLink rowLink, boolean rowSelected, boolean rowDefault) { id = rowId; - name = rowName; - url = rowUrl; - isDefault = rowDefault; + isPrimary = rowDefault; isSelected = rowSelected; + + link = rowLink; } // getters/setters @@ -85,19 +87,24 @@ public class UrlLinkDisplay return id; } - public String getName() + public String getDescription() { - return name; + return link.getLabel(); + } + + public String getDBName() + { + return link.getTarget(); } public String getUrl() { - return url; + return link.getUrlWithToken(); } - public boolean getIsDefault() + public boolean getIsPrimary() { - return isDefault; + return isPrimary; } public boolean getIsSelected() @@ -105,14 +112,24 @@ public class UrlLinkDisplay return isSelected; } + public void setDBName(String name) + { + link.setTarget(name); + } + public void setUrl(String rowUrl) { - url = rowUrl; + link = new UrlLink(getDescription(), rowUrl, getDBName()); + } + + public void setDescription(String desc) + { + link.setLabel(desc); } public void setIsDefault(boolean rowDefault) { - isDefault = rowDefault; + isPrimary = rowDefault; } public void setIsSelected(boolean rowSelected) @@ -127,13 +144,15 @@ public class UrlLinkDisplay case ID: return id; case URL: - return url; - case DEFAULT: - return isDefault; + return getUrl(); + case PRIMARY: + return isPrimary; case SELECTED: return isSelected; case NAME: - return name; + return getDescription(); + case DATABASE: + return getDBName(); default: return null; } @@ -147,16 +166,18 @@ public class UrlLinkDisplay id = (String) value; break; case URL: - url = (String) value; + setUrl((String) value); break; - case DEFAULT: - isDefault = (boolean) value; + case PRIMARY: + isPrimary = (boolean) value; break; case SELECTED: isSelected = (boolean) value; break; case NAME: - name = (String) value; + setDescription((String) value); + case DATABASE: + setDBName((String) value); break; default: // do nothing @@ -172,7 +193,20 @@ public class UrlLinkDisplay */ public boolean isEditable(int index) { - return ((index == DEFAULT) || (index == SELECTED)); + if (index == PRIMARY) + { + // primary link must not be a $DB_ACCESSION$ link + // so only allow editing if it is not + return (!link.usesDBAccession()); + } + else if (index == SELECTED) + { + return true; + } + else + { + return false; + } } /** @@ -182,7 +216,7 @@ public class UrlLinkDisplay */ public static List getDisplayColumnNames() { - // Display names between NAME and ID (excludes ID) - return colNames.subList(NAME, ID); + // Display names between DESCRIPTION and ID (excludes ID) + return colNames.subList(DATABASE, ID); } }