X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Furls%2FUrlLinkDisplay.java;h=39d6b35d15a1172eecb3940a07ef52f889d8fdbc;hb=6a44ba8cd68f29329876560cfe24403fe3e7a565;hp=6a49f9ea1223d7b02337323fb4b4dd42a47338b7;hpb=44fc22cf950ff114ce3a5a07600e7a7eb5fd1216;p=jalview.git diff --git a/src/jalview/urls/UrlLinkDisplay.java b/src/jalview/urls/UrlLinkDisplay.java index 6a49f9e..39d6b35 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; @@ -35,48 +36,50 @@ import java.util.List; public class UrlLinkDisplay { - private String id; // id is not supplied to display, but used to identify - // entries when saved + // column positions + public static final int DATABASE = 0; - private String name; + public static final int NAME = 1; - private String url; + public static final int URL = 2; - private boolean isDefault; + public static final int SELECTED = 3; - private boolean isSelected; + public static final int PRIMARY = 4; + + public static final int ID = 5; // Headers for columns in table - private final static List colNames = new ArrayList() + @SuppressWarnings("serial") + private static final 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 URL = 1; + private String id; // id is not supplied to display, but used to identify + // entries when saved - public final static int SELECTED = 2; + private boolean isPrimary; - public final static int DEFAULT = 3; + private boolean isSelected; - public final static int ID = 4; + private UrlLink link; - public UrlLinkDisplay(String rowId, String rowName, String rowUrl, - boolean rowSelected, boolean rowDefault) + 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 +88,24 @@ public class UrlLinkDisplay return id; } - public String getName() + public String getDescription() + { + return link.getLabel(); + } + + public String getDBName() { - return name; + 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 +113,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 +145,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 +167,19 @@ 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); + // deliberate fall through + case DATABASE: + setDBName((String) value); break; default: // do nothing @@ -172,7 +195,16 @@ 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 + { + return index == SELECTED; + } } /** @@ -182,7 +214,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); } }