package jalview.urls;
import jalview.util.MessageManager;
+import jalview.util.UrlLink;
import java.util.ArrayList;
import java.util.List;
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<String> colNames = new ArrayList<String>()
{
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"));
}
};
public final static int SELECTED = 2;
- public final static int DEFAULT = 3;
+ public final static int PRIMARY = 3;
public final static int ID = 4;
- public UrlLinkDisplay(String rowId, String rowName, String rowUrl,
+ 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
public String getName()
{
- return name;
+ return link.getLabel();
}
public String getUrl()
{
- return url;
+ return link.getUrlWithToken();
}
- public boolean getIsDefault()
+ public boolean getIsPrimary()
{
- return isDefault;
+ return isPrimary;
}
public boolean getIsSelected()
return isSelected;
}
+ public void setName(String name)
+ {
+ link.setLabel(name);
+ }
+
public void setUrl(String rowUrl)
{
- url = rowUrl;
+ link = new UrlLink(getName(), rowUrl);
}
public void setIsDefault(boolean rowDefault)
{
- isDefault = rowDefault;
+ isPrimary = rowDefault;
}
public void setIsSelected(boolean rowSelected)
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 getName();
default:
return null;
}
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;
+ setName((String) value);
break;
default:
// do nothing
*/
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;
+ }
}
/**