();
@@ -182,16 +157,16 @@ public void run() {
menu.loadFiles(ISAcreatorCLArgs.isatabDir(), true);
}
- } else {
+ } else {
//the ISAtab files were not given as parameter, show main menu
menu.changeView(menu.getMainMenuGUI());
- }
+ }
- } else{
+ } else {
//mode is not GS
- if (ISAcreatorCLArgs.isatabDir()!=null){
+ if (ISAcreatorCLArgs.isatabDir() != null) {
menu.loadFiles(ISAcreatorCLArgs.isatabDir(), true);
- }else {
+ } else {
menu.changeView(menu.getMainMenuGUI());
}
}
@@ -202,7 +177,7 @@ public void run() {
}
}
- );
+ );
}
}
);
@@ -221,22 +196,22 @@ public File[] getPreviousFiles() {
previousFiles = f.listFiles();
- if (previousFiles.length==0){
+ if (previousFiles.length == 0) {
String configurationFilesLocation = PropertyFileIO.retrieveDefaultSettings().getProperty("configurationFilesLocation");
String tmpDirectory = GeneralUtils.createTmpDirectory("Configurations");
- String downloadedFile = tmpDirectory+"config.zip";
+ String downloadedFile = tmpDirectory + "config.zip";
boolean downloaded = DownloadUtils.downloadFile(configurationFilesLocation, downloadedFile);
- System.out.println("downloadedFile="+downloadedFile);
- ISAcreator.DEFAULT_CONFIGURATIONS_DIRECTORY = tmpDirectory;
- try{
+ System.out.println("downloadedFile=" + downloadedFile);
+ ISAcreator.DEFAULT_CONFIGURATIONS_DIRECTORY = tmpDirectory;
+ try {
String unzipped = GeneralUtils.unzip(downloadedFile);
- System.out.println("Configurations downloaded and unzipped ="+unzipped);
+ System.out.println("Configurations downloaded and unzipped =" + unzipped);
f = new File(ISAcreator.DEFAULT_CONFIGURATIONS_DIRECTORY);
previousFiles = f.listFiles();
- }catch(IOException ex){
+ } catch (IOException ex) {
ex.printStackTrace();
}
@@ -264,22 +239,6 @@ public void setListRenderer() {
previousFileList.setCellRenderer(new ImportFilesListCellRenderer(listImage));
}
- public ImageIcon getSearchButton() {
- return searchButton;
- }
-
- public ImageIcon getSearchButtonOver() {
- return searchButtonOver;
- }
-
- public ImageIcon getLoadButton() {
- return loadButton;
- }
-
- public ImageIcon getLoadButtonOver() {
- return loadButtonOver;
- }
-
@Override
public ImageIcon getLeftFilterImage() {
return filterLeft;
@@ -291,6 +250,4 @@ public ImageIcon getRightFilterImage() {
}
-
-
}
diff --git a/src/main/java/org/isatools/isacreator/gui/menu/ImportFilesMenu.java b/src/main/java/org/isatools/isacreator/gui/menu/ImportFilesMenu.java
index 9897945c..332d1f2d 100644
--- a/src/main/java/org/isatools/isacreator/gui/menu/ImportFilesMenu.java
+++ b/src/main/java/org/isatools/isacreator/gui/menu/ImportFilesMenu.java
@@ -43,6 +43,8 @@ The ISA Team and the ISA software suite have been funded by the EU Carcinogenomi
import org.isatools.errorreporter.model.FileType;
import org.isatools.errorreporter.model.ISAFileErrorReport;
import org.isatools.isacreator.common.UIHelper;
+import org.isatools.isacreator.common.button.ButtonType;
+import org.isatools.isacreator.common.button.FlatButton;
import org.isatools.isacreator.gui.ISAcreator;
import org.isatools.isacreator.gui.io.importisa.ISAtabFilesImporterFromGUI;
import org.isatools.isacreator.io.importisa.ISAtabImporter;
@@ -51,9 +53,10 @@ The ISA Team and the ISA software suite have been funded by the EU Carcinogenomi
import org.jdesktop.fuse.InjectedResource;
import javax.swing.*;
+import javax.swing.border.EmptyBorder;
import java.awt.*;
-import java.awt.event.MouseAdapter;
-import java.awt.event.MouseEvent;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
@@ -70,16 +73,14 @@ public class ImportFilesMenu extends AbstractImportFilesMenu {
private static Logger log = Logger.getLogger(ImportFilesMenu.class);
@InjectedResource
- private ImageIcon panelHeader, listImage, searchButton, searchButtonOver,
- loadButton, loadButtonOver, backButton, backButtonOver, filterLeft, filterRight;
+ private ImageIcon panelHeader, listImage, backButton, backButtonOver, filterLeft, filterRight;
- private JLabel back;
- private Container loadingImagePanel;
+ private JButton back;
+ private JPanel loadingImagePanel;
public ImportFilesMenu(ISAcreatorMenu menu) {
super(menu, false);
- setPreferredSize(new Dimension(400, 400));
}
public JPanel createAlternativeExitDisplay() {
@@ -87,28 +88,16 @@ public JPanel createAlternativeExitDisplay() {
JPanel previousButtonPanel = new JPanel(new GridLayout(1, 1));
previousButtonPanel.setOpaque(false);
- back = new JLabel(backButton, JLabel.LEFT);
- back.addMouseListener(new MouseAdapter() {
-
- public void mousePressed(MouseEvent event) {
-
+ back = new FlatButton(ButtonType.GREY, "Back", UIHelper.DARK_GREEN_COLOR);
+ back.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent actionEvent) {
if (problemScroll != null)
problemScroll.setVisible(false);
ApplicationManager.getCurrentApplicationInstance().setGlassPanelContents(menu.getMainMenuGUI());
}
-
- public void mouseEntered(MouseEvent event) {
- back.setIcon(backButtonOver);
- }
-
- public void mouseExited(MouseEvent event) {
- back.setIcon(backButton);
- }
});
- back.setOpaque(false);
-
previousButtonPanel.add(back);
return previousButtonPanel;
@@ -122,7 +111,7 @@ public void getSelectedFileAndLoad() {
if (candidate.getName()
.equals(previousFileList.getSelectedValue()
.toString())) {
- getSelectedFileAndLoad(candidate,true);
+ getSelectedFileAndLoad(candidate, true);
}
}
}
@@ -130,7 +119,7 @@ public void getSelectedFileAndLoad() {
public void getSelectedFileAndLoad(File candidate, boolean loadingImagePane) {
- if (loadingImagePane){
+ if (loadingImagePane) {
showLoadingImagePane();
}
ApplicationManager.setCurrentLocalISATABFolder(candidate.getAbsolutePath());
@@ -147,31 +136,27 @@ public void showLoadingImagePane() {
}
- private Container createLoadingImagePanel() {
+ private JPanel createLoadingImagePanel() {
+
if (loadingImagePanel == null) {
- loadingImagePanel = UIHelper.wrapComponentInPanel(new JLabel(loadISAanimation));
+ loadingImagePanel = new JPanel();
+ loadingImagePanel.setLayout(new BoxLayout(loadingImagePanel, BoxLayout.PAGE_AXIS));
+ loadingImagePanel.setPreferredSize(new Dimension(400, 400));
+ loadingImagePanel.setOpaque(false);
+ JPanel loadingImageContainer = UIHelper.wrapComponentInPanel(new JLabel(loadISAanimation));
+ loadingImageContainer.setSize(new Dimension(125, 256));
+ loadingImagePanel.add(loadingImageContainer);
+
+ JPanel infoContainer = UIHelper.wrapComponentInPanel(
+ UIHelper.createLabel("In this version of the tool, we automatically upgrade elements annotated with ontology terms from using ontology accessions to using URIs. " +
+ "This is an artifact of the upgrades to BioPortal's new REST web services (version 4).
Loading might take a little bit longer than normal during this upgrade for some ISA-TAB datasets.
", UIHelper.VER_12_BOLD, UIHelper.ASPHALT));
+
+ infoContainer.setBorder(new EmptyBorder(0, 50, 50, 0));
+ loadingImagePanel.add(infoContainer);
}
return loadingImagePanel;
}
-
- public ImageIcon getSearchButton() {
- return searchButton;
- }
-
- public ImageIcon getSearchButtonOver() {
- return searchButtonOver;
- }
-
- public ImageIcon getLoadButton() {
- return loadButton;
- }
-
- public ImageIcon getLoadButtonOver() {
- return loadButtonOver;
- }
-
-
public void loadFile(final String dir) {
@@ -194,6 +179,7 @@ public void run() {
ISAcreatorProperties.setProperty(ISAcreatorProperties.CURRENT_ISATAB, new File(dir).getAbsolutePath());
+
} else if (successfulImport) {
log.error("The following problems were encountered when importing the ISAtab files in " + dir);
@@ -267,7 +253,7 @@ public void run() {
createErrorView(reports, false);
} finally {
- if (loadingImagePanel != null){
+ if (loadingImagePanel != null) {
menu.remove(loadingImagePanel);
}
menu.hideGlassPane();
@@ -275,6 +261,8 @@ public void run() {
}
}
});
+
+
performer.start();
}
diff --git a/src/main/java/org/isatools/isacreator/gui/menu/MainMenu.java b/src/main/java/org/isatools/isacreator/gui/menu/MainMenu.java
index b0a9d476..bccd7ea5 100644
--- a/src/main/java/org/isatools/isacreator/gui/menu/MainMenu.java
+++ b/src/main/java/org/isatools/isacreator/gui/menu/MainMenu.java
@@ -37,6 +37,7 @@ The ISA Team and the ISA software suite have been funded by the EU Carcinogenomi
package org.isatools.isacreator.gui.menu;
+import org.isatools.isacreator.common.CommonMouseAdapter;
import org.isatools.isacreator.gui.modeselection.Mode;
import org.isatools.isacreator.io.UserProfileManager;
import org.isatools.isacreator.managers.ApplicationManager;
@@ -98,19 +99,22 @@ public void createGUI() {
newISA = new JLabel(createNew,
JLabel.LEFT);
- newISA.addMouseListener(new MouseAdapter() {
+ newISA.addMouseListener(new CommonMouseAdapter() {
public void mousePressed(MouseEvent event) {
+ super.mousePressed(event);
newISA.setIcon(createNew);
confirmExitPanel.setVisible(false);
menu.changeView(menu.getCreateISAMenuGUI());
}
public void mouseEntered(MouseEvent event) {
+ super.mouseEntered(event);
newISA.setIcon(createNewOver);
}
public void mouseExited(MouseEvent event) {
+ super.mouseExited(event);
newISA.setIcon(createNew);
}
});
@@ -119,9 +123,10 @@ public void mouseExited(MouseEvent event) {
loadPrev = new JLabel(loadExisting,
JLabel.LEFT);
- loadPrev.addMouseListener(new MouseAdapter() {
+ loadPrev.addMouseListener(new CommonMouseAdapter() {
public void mousePressed(MouseEvent event) {
+ super.mousePressed(event);
loadPrev.setIcon(loadExisting);
confirmExitPanel.setVisible(false);
menu.getImportISAGUI().getPreviousFiles();
@@ -129,10 +134,12 @@ public void mousePressed(MouseEvent event) {
}
public void mouseEntered(MouseEvent event) {
+ super.mouseEntered(event);
loadPrev.setIcon(loadExistingOver);
}
public void mouseExited(MouseEvent event) {
+ super.mouseExited(event);
loadPrev.setIcon(loadExisting);
}
});
@@ -141,9 +148,10 @@ public void mouseExited(MouseEvent event) {
merge = new JLabel(mergeFiles,
JLabel.LEFT);
- merge.addMouseListener(new MouseAdapter() {
+ merge.addMouseListener(new CommonMouseAdapter() {
public void mousePressed(MouseEvent event) {
+ super.mousePressed(event);
merge.setIcon(mergeFiles);
confirmExitPanel.setVisible(false);
menu.getMergeStudiesGUI().createGUI();
@@ -152,10 +160,12 @@ public void mousePressed(MouseEvent event) {
}
public void mouseEntered(MouseEvent event) {
+ super.mouseEntered(event);
merge.setIcon(mergeFilesOver);
}
public void mouseExited(MouseEvent event) {
+ super.mouseExited(event);
merge.setIcon(mergeFiles);
}
});
@@ -165,9 +175,10 @@ public void mouseExited(MouseEvent event) {
if (ApplicationManager.getCurrentApplicationInstance().getMode() == Mode.NORMAL_MODE) {
settingsButton = new JLabel(settings,
JLabel.LEFT);
- settingsButton.addMouseListener(new MouseAdapter() {
+ settingsButton.addMouseListener(new CommonMouseAdapter() {
public void mousePressed(MouseEvent event) {
+ super.mousePressed(event);
settingsButton.setIcon(settings);
confirmExitPanel.setVisible(false);
menu.getSettings().createGUI();
@@ -176,10 +187,12 @@ public void mousePressed(MouseEvent event) {
}
public void mouseEntered(MouseEvent event) {
+ super.mouseEntered(event);
settingsButton.setIcon(settingsOver);
}
public void mouseExited(MouseEvent event) {
+ super.mouseExited(event);
settingsButton.setIcon(settings);
}
});
@@ -189,9 +202,10 @@ public void mouseExited(MouseEvent event) {
loadAnotherConfiguration = new JLabel(loadConfiguration,
JLabel.LEFT);
- loadAnotherConfiguration.addMouseListener(new MouseAdapter() {
+ loadAnotherConfiguration.addMouseListener(new CommonMouseAdapter() {
public void mousePressed(MouseEvent event) {
+ super.mousePressed(event);
loadAnotherConfiguration.setIcon(loadConfiguration);
confirmExitPanel.setVisible(false);
menu.getImportConfigurationGUI().getPreviousFiles();
@@ -199,10 +213,12 @@ public void mousePressed(MouseEvent event) {
}
public void mouseEntered(MouseEvent event) {
+ super.mouseEntered(event);
loadAnotherConfiguration.setIcon(loadConfigurationOver);
}
public void mouseExited(MouseEvent event) {
+ super.mouseExited(event);
loadAnotherConfiguration.setIcon(loadConfiguration);
}
});
@@ -211,9 +227,10 @@ public void mouseExited(MouseEvent event) {
logoutButton = new JLabel(logout,
JLabel.LEFT);
- logoutButton.addMouseListener(new MouseAdapter() {
+ logoutButton.addMouseListener(new CommonMouseAdapter() {
public void mousePressed(MouseEvent event) {
+ super.mousePressed(event);
logoutButton.setIcon(MainMenu.this.logout);
confirmExitPanel.setVisible(false);
UserProfileManager.setCurrentUser(null);
@@ -221,10 +238,12 @@ public void mousePressed(MouseEvent event) {
}
public void mouseEntered(MouseEvent event) {
+ super.mouseEntered(event);
logoutButton.setIcon(logoutOver);
}
public void mouseExited(MouseEvent event) {
+ super.mouseExited(event);
logoutButton.setIcon(MainMenu.this.logout);
}
});
@@ -233,18 +252,21 @@ public void mouseExited(MouseEvent event) {
final JLabel exitProgram = new JLabel(exit,
JLabel.LEFT);
- exitProgram.addMouseListener(new MouseAdapter() {
+ exitProgram.addMouseListener(new CommonMouseAdapter() {
public void mousePressed(MouseEvent event) {
+ super.mousePressed(event);
exitProgram.setIcon(exit);
confirmExitPanel.setVisible(true);
}
public void mouseEntered(MouseEvent event) {
+ super.mouseEntered(event);
exitProgram.setIcon(exitOver);
}
public void mouseExited(MouseEvent event) {
+ super.mouseExited(event);
exitProgram.setIcon(exit);
}
});
diff --git a/src/main/java/org/isatools/isacreator/gui/reference/DataEntryReferenceObject.java b/src/main/java/org/isatools/isacreator/gui/reference/DataEntryReferenceObject.java
index 65580823..cbf2e329 100644
--- a/src/main/java/org/isatools/isacreator/gui/reference/DataEntryReferenceObject.java
+++ b/src/main/java/org/isatools/isacreator/gui/reference/DataEntryReferenceObject.java
@@ -74,7 +74,6 @@ private void createSectionDefinitionsFromField() {
if (!sectionDefinition.containsKey(section)) {
sectionDefinition.put(section, new ListOrderedSet());
}
-
sectionDefinition.get(section).add(fieldName);
}
}
@@ -90,6 +89,10 @@ public Map getFieldDefinition() {
return fieldDefinition;
}
+ public void addFieldObject(FieldObject fieldObject) {
+ fieldDefinition.put(fieldObject.getFieldName(), fieldObject);
+ }
+
public Set getFieldsForSection(InvestigationFileSection section) {
return getSectionDefinition().get(section);
}
@@ -113,24 +116,30 @@ public FieldObject getFieldDefinition(String fieldName) {
public Set getOntologyTerms(InvestigationFileSection section) {
Set ontologyFields = new HashSet();
-
if (sectionDefinition != null) {
if (sectionDefinition.get(section) != null) {
+ ontologyFields = getOntologyTerms(sectionDefinition.get(section));
+ }
+ }
- fieldsToIgnore = filterFields(sectionDefinition.get(section), "term accession", "term source");
+ return ontologyFields;
+ }
+
+ public Set getOntologyTerms(Set fields) {
+ Set ontologyFields = new HashSet();
- for (String ontologyTerm : fieldsToIgnore) {
+ fieldsToIgnore = filterFields(fields, "term accession", "term source");
- String toAdd = ontologyTerm.substring(0, ontologyTerm.toLowerCase().indexOf("term")).trim();
+ for (String ontologyTerm : fieldsToIgnore) {
- // if the field edited was a comment, it will include an unclosed square bracket after running the
- // previous function. So, we should close it.
- if (toAdd.contains("[")) {
- toAdd += "]";
- }
- ontologyFields.add(toAdd);
- }
+ String toAdd = ontologyTerm.substring(0, ontologyTerm.toLowerCase().indexOf("term")).trim();
+
+ // if the field edited was a comment, it will include an unclosed square bracket after running the
+ // previous function. So, we should close it.
+ if (toAdd.contains("[")) {
+ toAdd += "]";
}
+ ontologyFields.add(toAdd);
}
return ontologyFields;
diff --git a/src/main/java/org/isatools/isacreator/io/IOUtils.java b/src/main/java/org/isatools/isacreator/io/IOUtils.java
index 170d36ae..c77a8bc9 100644
--- a/src/main/java/org/isatools/isacreator/io/IOUtils.java
+++ b/src/main/java/org/isatools/isacreator/io/IOUtils.java
@@ -2,6 +2,7 @@
import org.isatools.isacreator.ontologymanager.OntologyManager;
import org.isatools.isacreator.ontologymanager.common.OntologyTerm;
+import org.isatools.isacreator.settings.ISAcreatorProperties;
import java.util.HashMap;
import java.util.HashSet;
@@ -22,11 +23,31 @@ public class IOUtils {
public static final String SOURCE_REF = "term source";
public static final String ACCESSION = "term accession";
+
+ /**
+ *
+ * Given the full header (e.g. Characteristics[OBI:organism]) returns the header value inside the square brackets (e.g. OBI:organism).
+ *
+ * @param header
+ * @return
+ */
+ public static String getHeaderValue(String header){
+ if (header.contains("["))
+ return header.substring(header.indexOf('[') + 1, header.indexOf("]"));
+ return null;
+ }
+
+ public static String getHeaderName(String header){
+ if (header.contains("["))
+ return header.substring(0, header.indexOf('['));
+ return null;
+ }
+
/**
* Ontology terms are detected when there is a presence of 3 values in the field set with the same base name and
* the words "Term Accession Number" & "Term Source Ref" are found.
*
- * @param fieldNames - field names for the section @see Set
+ * @param fieldNames - field names for the ISA section @see Set
* @return Map from hashcode for field to a Map indicating which fields are source refs, terms and term accessions.
*/
public static Map> getOntologyTerms(Set fieldNames) {
@@ -92,7 +113,8 @@ public static Map processOntologyField(Map ontol
int numberAdded = 0;
for (String ontologyTerm : ontologies) {
- OntologyTerm oo = OntologyManager.getOntologySelectionHistory().get(ontologyTerm);
+
+ OntologyTerm oo = OntologyManager.getOntologyTerm(ontologyTerm);
if (oo != null) {
tmpTerm += oo.getOntologyTermName();
@@ -124,7 +146,8 @@ public static Map processOntologyField(Map ontol
} else if (term != null && term.contains(":")) {
System.out.println("Getting ontology object for " + term);
- OntologyTerm oo = OntologyManager.getOntologySelectionHistory().get(term);
+
+ OntologyTerm oo = OntologyManager.getOntologyTerm(term);
System.out.println("oo = " + oo);
tmpTerm = term;
@@ -133,14 +156,18 @@ public static Map processOntologyField(Map ontol
if (oo != null && oo.getOntologyTermName() != null) {
tmpTerm = oo.getOntologyTermName();
- tmpAccession = oo.getOntologyTermAccession();
+ tmpAccession = ISAcreatorProperties.getProperty("ontologyTermURI").equals("true") ? oo.getOntologyTermURI() : oo.getOntologyTermAccession();
tmpSourceRefs = oo.getOntologySource();
System.out.println("Got ontology term... good times. Term is now " + tmpTerm);
} else {
if (term.contains(":")) {
String[] termAndSource = term.split(":");
- tmpSourceRefs = termAndSource[0];
+ if (ISAcreatorProperties.getOntologyTermURIProperty()){
+ tmpSourceRefs = "";
+ } else {
+ tmpSourceRefs = termAndSource[0];
+ }
if (termAndSource.length == 2) {
tmpTerm = termAndSource[1];
} else {
diff --git a/src/main/java/org/isatools/isacreator/io/UserProfile.java b/src/main/java/org/isatools/isacreator/io/UserProfile.java
index b7d02f0d..c2e76b9b 100755
--- a/src/main/java/org/isatools/isacreator/io/UserProfile.java
+++ b/src/main/java/org/isatools/isacreator/io/UserProfile.java
@@ -230,8 +230,8 @@ public void setUsedOntologySources(
this.usedOntologySources = usedOntologySources;
}
- public void setUserHistory(Map userHistory) {
- this.userHistory = userHistory;
+ public void addToUserHistory(String k, OntologyTerm v){
+ userHistory.put(k, v);
}
public FTPManager getFtpManager() {
diff --git a/src/main/java/org/isatools/isacreator/io/UserProfileManager.java b/src/main/java/org/isatools/isacreator/io/UserProfileManager.java
index 4e8da182..c4867ddb 100644
--- a/src/main/java/org/isatools/isacreator/io/UserProfileManager.java
+++ b/src/main/java/org/isatools/isacreator/io/UserProfileManager.java
@@ -39,7 +39,6 @@ The ISA Team and the ISA software suite have been funded by the EU Carcinogenomi
import org.apache.log4j.Logger;
import org.isatools.isacreator.common.EncryptedObject;
-import org.isatools.isacreator.gui.ISAcreator;
import org.isatools.isacreator.managers.ApplicationManager;
import org.isatools.isacreator.model.*;
import org.isatools.isacreator.ontologymanager.OntologyManager;
@@ -58,6 +57,7 @@ The ISA Team and the ISA software suite have been funded by the EU Carcinogenomi
import java.security.spec.InvalidKeySpecException;
import java.util.ArrayList;
import java.util.List;
+import java.util.Set;
/**
@@ -247,7 +247,7 @@ public static void updateUserProfileInformation(UserProfile up) {
up.setFtpManager(Spreadsheet.fileSelectEditor.getFTPManager());
// update used ontology sources
- for (OntologySourceRefObject osro : OntologyManager.getOntologiesUsed()) {
+ for (OntologySourceRefObject osro : OntologyManager.getOntologySources()) {
up.addOntologyReference(osro);
}
}
@@ -258,7 +258,10 @@ public static void updateUserProfiles() {
for (UserProfile up : UserProfileManager.getUserProfiles()) {
if (up.getUsername()!=null && up.getUsername().equals(UserProfileManager.getCurrentUser().getUsername())) {
- up.setUserHistory(OntologyManager.getOntologySelectionHistory());
+ Set keySet = OntologyManager.getOntologyTermsKeySet();
+ for(String key: keySet){
+ up.addToUserHistory(key, OntologyManager.getOntologyTerm(key));
+ }
updateUserProfileInformation(up);
break;
}
diff --git a/src/main/java/org/isatools/isacreator/io/exportisa/ISAFileOutput.java b/src/main/java/org/isatools/isacreator/io/exportisa/ISAFileOutput.java
index 6ef47e81..50158649 100644
--- a/src/main/java/org/isatools/isacreator/io/exportisa/ISAFileOutput.java
+++ b/src/main/java/org/isatools/isacreator/io/exportisa/ISAFileOutput.java
@@ -37,13 +37,14 @@ The ISA Team and the ISA software suite have been funded by the EU Carcinogenomi
package org.isatools.isacreator.io.exportisa;
-import org.apache.axis.utils.StringUtils;
-import org.isatools.isacreator.api.utils.SpreadsheetUtils;
+import org.apache.commons.lang.StringUtils;
import org.isatools.isacreator.gui.DataEntryForm;
import org.isatools.isacreator.io.exportisa.exportadaptors.ISASectionExportAdaptor;
import org.isatools.isacreator.io.importisa.investigationproperties.InvestigationFileSection;
import org.isatools.isacreator.managers.ApplicationManager;
-import org.isatools.isacreator.model.*;
+import org.isatools.isacreator.model.Assay;
+import org.isatools.isacreator.model.Investigation;
+import org.isatools.isacreator.model.Study;
import org.isatools.isacreator.ontologymanager.OntologyManager;
import org.isatools.isacreator.ontologymanager.OntologySourceRefObject;
@@ -52,6 +53,7 @@ The ISA Team and the ISA software suite have been funded by the EU Carcinogenomi
import java.io.PrintStream;
import java.util.ArrayList;
import java.util.List;
+import java.util.Set;
/**
* Created by the ISA team
@@ -72,19 +74,21 @@ public String getOntologiesUsedOutput() {
};
String toReturn = "ONTOLOGY SOURCE REFERENCE\n";
+ Set ontologiesUsed = OntologyManager.getOntologiesUsed();
+
for (int i = 0; i < headerTerms.length; i++) {
StringBuffer line = new StringBuffer(headerTerms[i] + "\t");
String val = "";
- for (OntologySourceRefObject anOntologiesUsed : OntologyManager.getOntologiesUsed()) {
+ for (OntologySourceRefObject anOntologyUsed : ontologiesUsed) {
if (headerTerms[i].equals("Term Source Name")) {
- val = anOntologiesUsed.getSourceName();
+ val = anOntologyUsed.getSourceName();
} else if (headerTerms[i].equals("Term Source File")) {
- val = anOntologiesUsed.getSourceFile();
+ val = anOntologyUsed.getSourceFile();
} else if (headerTerms[i].equals("Term Source Version")) {
- val = anOntologiesUsed.getSourceVersion();
+ val = anOntologyUsed.getSourceVersion();
} else if (headerTerms[i].equals("Term Source Description")) {
- val = anOntologiesUsed.getSourceDescription();
+ val = anOntologyUsed.getSourceDescription();
}
addToLine(line, StringUtils.isEmpty(val) ? " " : val);
diff --git a/src/main/java/org/isatools/isacreator/io/exportisa/exportadaptors/ISASectionExportAdaptor.java b/src/main/java/org/isatools/isacreator/io/exportisa/exportadaptors/ISASectionExportAdaptor.java
index c6b64b58..9a8b5203 100644
--- a/src/main/java/org/isatools/isacreator/io/exportisa/exportadaptors/ISASectionExportAdaptor.java
+++ b/src/main/java/org/isatools/isacreator/io/exportisa/exportadaptors/ISASectionExportAdaptor.java
@@ -89,8 +89,7 @@ private static void processSectionOntologyFields(ISASection isaSection) {
Map processedOntologyField = IOUtils.processOntologyField(ontologyField, isaSection.getFieldValues());
for (String key : processedOntologyField.keySet()) {
-
- if (!processedOntologyField.get(key).isEmpty()) {
+ if (processedOntologyField.get(key)!=null && !processedOntologyField.get(key).isEmpty()) {
isaSection.getFieldValues().put(key, processedOntologyField.get(key));
}
}
diff --git a/src/main/java/org/isatools/isacreator/io/importisa/ISAtabImporter.java b/src/main/java/org/isatools/isacreator/io/importisa/ISAtabImporter.java
index a6ac1a16..bc4da980 100644
--- a/src/main/java/org/isatools/isacreator/io/importisa/ISAtabImporter.java
+++ b/src/main/java/org/isatools/isacreator/io/importisa/ISAtabImporter.java
@@ -66,16 +66,18 @@ public ISAtabImporter() {
* @return list of ISAFileErrorReports
*/
public List getMessages() {
+
return errors;
+
}
public String getMessagesAsString() {
StringBuilder builder = new StringBuilder();
for (ISAFileErrorReport errorReport : errors) {
- builder.append("Error filename: " + errorReport.getFileName());
+ builder.append("Error filename: ").append(errorReport.getFileName());
builder.append("\n Error messages: ");
for (ErrorMessage error : errorReport.getMessages()) {
- builder.append("\n" + error.getMessage());
+ builder.append("\n").append(error.getMessage());
}
}
return builder.toString();
@@ -114,11 +116,13 @@ protected boolean commonImportFile(String parentDir) {
File[] isaDirectorFiles = investigationFile.listFiles();
- for (File isaFile : isaDirectorFiles) {
- if (isaFile.getName().toLowerCase().startsWith("i_")) {
- investigationFileFound = true;
- investigationFile = isaFile;
- break;
+ if (isaDirectorFiles != null) {
+ for (File isaFile : isaDirectorFiles) {
+ if (isaFile.getName().toLowerCase().startsWith("i_")) {
+ investigationFileFound = true;
+ investigationFile = isaFile;
+ break;
+ }
}
}
@@ -137,6 +141,7 @@ protected boolean commonImportFile(String parentDir) {
InvestigationImport investigationFileImporter = new InvestigationImport();
Pair>>>> investigationFileImport = investigationFileImporter.importInvestigationFile(investigationFile);
+
messages.addAll(investigationFileImporter.getMessages());
if (investigationFileImport.fst) {
@@ -191,10 +196,6 @@ protected boolean commonImportFile(String parentDir) {
ISAFileErrorReport investigationErrorReport = new ISAFileErrorReport(investigationFile.getName(), FileType.INVESTIGATION, messages);
errors.add(investigationErrorReport);
}
- } else {
- //if (isacreator!=null){
- // investigation.setLastConfigurationUsed(isacreator.getLoadedConfiguration());
- //}
}
} else {
@@ -205,6 +206,13 @@ protected boolean commonImportFile(String parentDir) {
return false;
}
+
+ System.out.println("********************\n"+OntologyManager.getURIMappingInfo());
+ String mappingInfo = OntologyManager.getURIMappingInfoHTML();
+ if (mappingInfo!=null && !mappingInfo.equals(""))
+ messages.add(new ErrorMessage(ErrorLevel.INFO, mappingInfo));
+
+
} catch (IOException e) {
messages.add(new ErrorMessage(ErrorLevel.ERROR, e.getMessage()));
@@ -248,13 +256,14 @@ protected boolean processInvestigation(String parentDirectoryPath) {
if (builtReference != null) {
study.setStudySamples(new Assay(study.getStudySampleFileIdentifier(), builtReference));
- OntologyManager.addToOntologySelectionHistory(builtReference.getReferencedOntologyTerms());
+ OntologyManager.addToOntologyTerms(builtReference.getReferencedOntologyTerms());
}
} catch (MalformedInvestigationException mie) {
+ mie.printStackTrace();
messages.add(new ErrorMessage(ErrorLevel.ERROR, mie.getMessage()));
} catch (Exception e) {
-
+ e.printStackTrace();
messages.add(new ErrorMessage(ErrorLevel.ERROR, e.getMessage()));
} finally {
@@ -286,7 +295,7 @@ protected boolean processInvestigation(String parentDirectoryPath) {
assay.getAssayReference(), assayTableReferenceObject);
if (builtReference != null) {
assay.setTableReferenceObject(builtReference);
- OntologyManager.getOntologySelectionHistory().putAll(builtReference.getReferencedOntologyTerms());
+ OntologyManager.addToOntologyTerms(builtReference.getReferencedOntologyTerms());
}
} catch (IOException e) {
messages.add(new ErrorMessage(ErrorLevel.ERROR, e.getMessage()));
@@ -354,7 +363,7 @@ protected FileType inferISAFileType(Assay assay) {
private void assignOntologiesToSession(List ontologiesUsed) {
for (OntologyTerm oo : ontologiesUsed) {
if (!oo.getOntologyTermName().trim().equals("")) {
- OntologyManager.addToUserHistory(oo);
+ OntologyManager.addToOntologyTerms(oo);
}
}
}
diff --git a/src/main/java/org/isatools/isacreator/io/importisa/InvestigationImport.java b/src/main/java/org/isatools/isacreator/io/importisa/InvestigationImport.java
index 2d6abfc8..5592dbf6 100644
--- a/src/main/java/org/isatools/isacreator/io/importisa/InvestigationImport.java
+++ b/src/main/java/org/isatools/isacreator/io/importisa/InvestigationImport.java
@@ -127,9 +127,10 @@ public Pair());
}
@@ -212,10 +213,20 @@ private boolean isValidInvestigationSections(OrderedMap loadFile(File investigationFile) throws IOException {
-
+ List fileContents = new ArrayList();
if (investigationFile.exists()) {
CSVReader csvReader = new CSVReader(new FileReader(investigationFile), TAB_DELIM);
- return csvReader.readAll();
+
+ String[] line;
+ while((line = csvReader.readNext()) != null) {
+ if(line.length > 0) {
+ if(!line[0].startsWith("#")) {
+ fileContents.add(line);
+ }
+ }
+ }
+
+ return fileContents;
} else {
throw new FileNotFoundException("The specified file " + investigationFile.getName() + "does not exist in " + investigationFile.getAbsolutePath());
}
diff --git a/src/main/java/org/isatools/isacreator/io/importisa/SpreadsheetImport.java b/src/main/java/org/isatools/isacreator/io/importisa/SpreadsheetImport.java
index 15d6c918..27d2f8ca 100644
--- a/src/main/java/org/isatools/isacreator/io/importisa/SpreadsheetImport.java
+++ b/src/main/java/org/isatools/isacreator/io/importisa/SpreadsheetImport.java
@@ -5,6 +5,7 @@
import org.isatools.isacreator.configuration.DataTypes;
import org.isatools.isacreator.configuration.FieldObject;
import org.isatools.isacreator.io.importisa.errorhandling.exceptions.MalformedInvestigationException;
+import org.isatools.isacreator.managers.ConfigurationManager;
import org.isatools.isacreator.spreadsheet.model.TableReferenceObject;
import org.isatools.isacreator.utils.GeneralUtils;
@@ -25,8 +26,6 @@
public class SpreadsheetImport {
- private Set messages;
-
/**
* Create tablemodel for item!
*
@@ -39,7 +38,6 @@ public class SpreadsheetImport {
*/
public TableReferenceObject loadInTables(String fileName,
TableReferenceObject defaultTableRef) throws IOException, MalformedInvestigationException {
- messages = new HashSet();
File f = new File(fileName);
@@ -53,8 +51,20 @@ public TableReferenceObject loadInTables(String fileName,
while ((nextLine = reader.readNext()) != null) {
if (count == 0) {
colHeaders = nextLine;
- tro = reformTableDefinition(fileName, nextLine,
- defaultTableRef);
+ try {
+ tro = reformTableDefinition(fileName, nextLine,
+ defaultTableRef);
+ } catch (MalformedInvestigationException mie) {
+
+ System.err.println(mie.toString());
+ TableReferenceObject generic_tro = ConfigurationManager.selectTROForUserSelection("*", "*");
+ if (generic_tro != null && defaultTableRef != generic_tro) {
+ tro = reformTableDefinition(fileName, nextLine, generic_tro);
+ } else {
+ throw mie;
+ }
+ }
+
Vector preDefinedHeaders = new Vector();
preDefinedHeaders.add("Row No.");
@@ -100,7 +110,6 @@ private TableReferenceObject reformTableDefinition(String tableName,
// way of storing previously seen protocol to determine where the parameters are which associated with it.
int previousProtocol = -1;
-
// way of storing previously read characteristic, factor, or parameter to determine what type it is
String previousCharFactParam = null;
int expectedNextUnitLocation = -1;
@@ -112,12 +121,16 @@ private TableReferenceObject reformTableDefinition(String tableName,
positionInheaders++;
String fieldAsLowercase = columnHeader.toLowerCase();
-
if (expectedNextUnitLocation == positionInheaders) {
if (fieldAsLowercase.contains("unit")) {
// add two fields...one accepting string values and the unit, also accepting string values :o)
- FieldObject newFo = new FieldObject(count,
- previousCharFactParam, "", DataTypes.STRING, "", false, false, false);
+
+ FieldObject newFo = startReference.getFieldByName(previousCharFactParam);
+ if (newFo == null) {
+ newFo = new FieldObject(count,
+ previousCharFactParam, "", DataTypes.STRING, "", false, false, false);
+ }
+
tro.addField(newFo);
if (tro.getColumnDependencies().get(count) == null) {
@@ -129,7 +142,12 @@ private TableReferenceObject reformTableDefinition(String tableName,
count++;
- newFo = new FieldObject(count, columnHeader, "", DataTypes.ONTOLOGY_TERM, "", false, false, false);
+ // get the unit for this factor.
+ newFo = startReference.getNextUnitField(previousCharFactParam);
+
+ if (newFo == null) {
+ newFo = new FieldObject(count, columnHeader, "", DataTypes.ONTOLOGY_TERM, "", false, false, false);
+ }
tro.addField(newFo);
tro.getColumnDependencies().get(parentColPos).add(count);
@@ -140,9 +158,13 @@ private TableReferenceObject reformTableDefinition(String tableName,
// AND ATTACH UNIT TO FIELD VIA THE MAPPING IN THE TABLE CLASS
} else {
// add a field accepting ontology terms
- FieldObject newFo = new FieldObject(count,
- previousCharFactParam, "", DataTypes.ONTOLOGY_TERM, "",
- false, false, false);
+ FieldObject newFo = startReference.getFieldByName(previousCharFactParam);
+
+ if (newFo == null) {
+ newFo = new FieldObject(count,
+ previousCharFactParam, "", DataTypes.ONTOLOGY_TERM, "",
+ false, false, false);
+ }
tro.addField(newFo);
parentColPos = count;
@@ -167,10 +189,6 @@ private TableReferenceObject reformTableDefinition(String tableName,
FieldObject field = startReference.getFieldByName(columnHeader);
if (field != null) {
- tro.addField(field);
- count++;
- } else {
- // doesn't exist
if ((fieldAsLowercase.contains("factor value") ||
@@ -179,8 +197,19 @@ private TableReferenceObject reformTableDefinition(String tableName,
previousCharFactParam = columnHeader;
expectedNextUnitLocation = positionInheaders + 1;
+ } else {
+ tro.addField(field);
}
+ count++;
+ } else {
+ if ((fieldAsLowercase.contains("factor value") ||
+ fieldAsLowercase.contains("characteristics") ||
+ fieldAsLowercase.contains("parameter value")) && !fieldAsLowercase.contains("comment")) {
+
+ previousCharFactParam = columnHeader;
+ expectedNextUnitLocation = positionInheaders + 1;
+ }
if (fieldAsLowercase.equals("performer") ||
fieldAsLowercase.contains("comment") ||
fieldAsLowercase.equals("provider")) {
@@ -221,8 +250,12 @@ private TableReferenceObject reformTableDefinition(String tableName,
if (expectedNextUnitLocation != -1) {
// add last factor/characteristic to the table
- FieldObject newFo = new FieldObject(count, previousCharFactParam,
- "", DataTypes.ONTOLOGY_TERM, "", false, false, false);
+
+ FieldObject newFo = startReference.getFieldByName(previousCharFactParam);
+ if (newFo == null) {
+ newFo = new FieldObject(count,
+ previousCharFactParam, "", DataTypes.ONTOLOGY_TERM, "", false, false, false);
+ }
tro.addField(newFo);
}
@@ -237,16 +270,17 @@ private TableReferenceObject reformTableDefinition(String tableName,
int headerCount = invalidHeaders.size();
for (String s : invalidHeaders) {
invalidHeaderNames += s;
- if (headerCount < invalidHeaders.size() - 1) {
+
+ if (headerCount != invalidHeaders.size() - 1) {
invalidHeaderNames += ", ";
}
headerCount++;
}
- String colText = invalidHeaders.size() > 1 ? invalidHeaders.size() + "The columns" : "The column ";
- String linkText = invalidHeaders.size() > 1 ? invalidHeaders.size() + " are " : " is ";
+ String colText = invalidHeaders.size() > 1 ? "The columns " : "The column ";
+ String linkText = invalidHeaders.size() > 1 ? " are " : " is ";
- throw new MalformedInvestigationException(colText + invalidHeaderNames + linkText + " not supported in this assay");
+ throw new MalformedInvestigationException(colText + invalidHeaderNames + linkText + "not supported in this assay");
}
return tro;
diff --git a/src/main/java/org/isatools/isacreator/io/importisa/StructureToInvestigationMapper.java b/src/main/java/org/isatools/isacreator/io/importisa/StructureToInvestigationMapper.java
index 0f06b2be..cceb119c 100644
--- a/src/main/java/org/isatools/isacreator/io/importisa/StructureToInvestigationMapper.java
+++ b/src/main/java/org/isatools/isacreator/io/importisa/StructureToInvestigationMapper.java
@@ -49,6 +49,7 @@ The ISA Team and the ISA software suite have been funded by the EU Carcinogenomi
import org.isatools.isacreator.ontologymanager.OntologyManager;
import org.isatools.isacreator.ontologymanager.OntologySourceRefObject;
import org.isatools.isacreator.ontologymanager.common.OntologyTerm;
+import org.isatools.isacreator.settings.ISAcreatorProperties;
import org.isatools.isacreator.utils.GeneralUtils;
import uk.ac.ebi.utils.collections.Pair;
@@ -106,7 +107,7 @@ public Pair createInvestigationFromDataStructure(
}
private Investigation processInvestigation(OrderedMap>> investigationSections) {
- List ontologySources = new ArrayList();
+ Set ontologySources = new HashSet();
List contacts = new ArrayList();
List publications = new ArrayList();
@@ -125,7 +126,7 @@ private Investigation processInvestigation(OrderedMap, List> processedFactorsSection = processOntologySourceReferences(investigationSections.get(investigationSection));
sectionFields.put(investigationSection, processedFactorsSection.fst);
- ontologySources = processedFactorsSection.snd;
+ ontologySources = new HashSet(processedFactorsSection.snd);
} else if (investigationSection == InvestigationFileSection.INVESTIGATION_PUBLICATIONS_SECTION) {
@@ -143,7 +144,7 @@ private Investigation processInvestigation(OrderedMap, List> processedStudyDesignSection = processStudyDesigns(studySections.get(studySection));
sectionFields.put(studySection, processedStudyDesignSection.fst);
+
studyDesigns = processedStudyDesignSection.snd;
} else if (studySection == InvestigationFileSection.STUDY_ASSAYS) {
@@ -240,6 +242,7 @@ private Study processStudy(OrderedMap, List> processOntologySourceRe
Map record = getRecord(ontologySection, recordIndex);
if (!isNullRecord(record)) {
ontologySource.addToFields(record);
+ ontologySource.completeFields();
ontologySources.add(ontologySource);
}
}
@@ -361,6 +365,7 @@ private Pair, List> processStudyDesigns(OrderedMap, List> processFactors(OrderedMap record) {
}
/**
- *
* @param fieldBeingCombined
* @param term
* @param accession
@@ -627,8 +636,17 @@ private String groupElements(String fieldBeingCombined, String term,
if (!term.trim().equals("") &&
!sourceRef.trim().equals("")) {
- ontologyTermsDefined.add(new OntologyTerm(
- term, accession, null, getOntologySource(sourceRef)));
+
+ if (accession.contains("http://"))
+ ontologyTermsDefined.add(new OntologyTerm(
+ term, accession, accession, getOntologySource(sourceRef)));
+ else {
+ OntologyTerm ot = new OntologyTerm(term, accession, null, getOntologySource(sourceRef));
+ ontologyTermsDefined.add(ot);
+ if (!(ISAcreatorProperties.getOntologyTermURIProperty() && ot.getOntologyTermURI()!=null && !ot.getOntologyTermURI().equals("")))
+ toReturn = term;
+ OntologyManager.addToOntologyTerms(ot);
+ }
}
}
@@ -639,6 +657,7 @@ private String groupElements(String fieldBeingCombined, String term,
/**
* It returns an OntologySourceRefObject given an ontology abbreviation
+ *
* @param source
* @return
*/
@@ -647,7 +666,8 @@ private OntologySourceRefObject getOntologySource(String source) {
}
/**
- * Checks for duplicate assay names across all studies.
+ * Checks for duplicate assay names across all studies.
+ *
* @param investigation
* @return
*/
@@ -683,7 +703,7 @@ private boolean validateInvestigationFile(Investigation investigation) {
// build up set of ontology sources that have been defined
Set definedOntologySources = new HashSet();
- for (OntologySourceRefObject osro : OntologyManager.getOntologiesUsed()) {
+ for (OntologySourceRefObject osro : OntologyManager.getOntologySources()) {
definedOntologySources.add(osro.getSourceName());
}
@@ -693,8 +713,8 @@ private boolean validateInvestigationFile(Investigation investigation) {
for (OntologyTerm oo : ontologyTermsDefined) {
if (!definedOntologySources.contains(oo.getOntologySource()) &&
!oo.getOntologySource().equals("")) {
- System.out.println(oo.getUniqueId());
- if (!GeneralUtils.isValueURL(oo.getUniqueId())) {
+ System.out.println(oo.getShortForm());
+ if (!GeneralUtils.isValueURL(oo.getShortForm())) {
missingOntologyObjects.add(oo.getOntologySource());
}
}
diff --git a/src/main/java/org/isatools/isacreator/launch/ISAcreatorGUIProperties.java b/src/main/java/org/isatools/isacreator/launch/ISAcreatorGUIProperties.java
index d74fa525..d1d3703e 100644
--- a/src/main/java/org/isatools/isacreator/launch/ISAcreatorGUIProperties.java
+++ b/src/main/java/org/isatools/isacreator/launch/ISAcreatorGUIProperties.java
@@ -48,69 +48,68 @@ public static void setProperties(){
ResourceInjector.addModule("org.jdesktop.fuse.swing.SwingModule");
ResourceInjector.get("archiveoutput-package.style").load(
- ArchiveOutputWindow.class.getResource("/dependency-injections/archiveoutput-package.properties"));
+ ISAcreatorApplication.class.getResource("/dependency-injections/archiveoutput-package.properties"));
ResourceInjector.get("gui-package.style").load(
- ISAcreator.class.getResource("/dependency-injections/gui-package.properties"));
+ ISAcreatorApplication.class.getResource("/dependency-injections/gui-package.properties"));
ResourceInjector.get("common-package.style").load(
- ISAcreator.class.getResource("/dependency-injections/common-package.properties"));
+ ISAcreatorApplication.class.getResource("/dependency-injections/common-package.properties"));
ResourceInjector.get("filechooser-package.style").load(
- ISAcreator.class.getResource("/dependency-injections/filechooser-package.properties"));
+ ISAcreatorApplication.class.getResource("/dependency-injections/filechooser-package.properties"));
ResourceInjector.get("longtexteditor-package.style").load(
- ISAcreator.class.getResource("/dependency-injections/longtexteditor-package.properties"));
+ ISAcreatorApplication.class.getResource("/dependency-injections/longtexteditor-package.properties"));
ResourceInjector.get("mergeutil-package.style").load(
- ISAcreator.class.getResource("/dependency-injections/mergeutil-package.properties"));
+ ISAcreatorApplication.class.getResource("/dependency-injections/mergeutil-package.properties"));
ResourceInjector.get("publicationlocator-package.style").load(
- ISAcreator.class.getResource("/dependency-injections/publicationlocator-package.properties"));
+ ISAcreatorApplication.class.getResource("/dependency-injections/publicationlocator-package.properties"));
ResourceInjector.get("wizard-package.style").load(
- ISAcreator.class.getResource("/dependency-injections/wizard-package.properties"));
+ ISAcreatorApplication.class.getResource("/dependency-injections/wizard-package.properties"));
ResourceInjector.get("formatmappingutility-package.style").load(
- ISAcreator.class.getResource("/dependency-injections/formatmappingutility-package.properties"));
+ ISAcreatorApplication.class.getResource("/dependency-injections/formatmappingutility-package.properties"));
ResourceInjector.get("arraydesignbrowser-package.style").load(
- ISAcreator.class.getResource("/dependency-injections/arraydesignbrowser-package.properties"));
+ ISAcreatorApplication.class.getResource("/dependency-injections/arraydesignbrowser-package.properties"));
ResourceInjector.get("effects-package.style").load(
- ISAcreator.class.getResource("/dependency-injections/effects-package.properties"));
+ ISAcreatorApplication.class.getResource("/dependency-injections/effects-package.properties"));
ResourceInjector.get("assayselection-package.style").load(
- ISAcreator.class.getResource("/dependency-injections/assayselection-package.properties"));
- ResourceInjector.get("calendar-package.style").load(
- ISAcreator.class.getResource("/dependency-injections/calendar-package.properties"));
+ ISAcreatorApplication.class.getResource("/dependency-injections/assayselection-package.properties"));
+
ResourceInjector.get("validateconvert-package.style").load(
- ISAcreator.class.getResource("/dependency-injections/validator-package.properties"));
+ ISAcreatorApplication.class.getResource("/dependency-injections/validator-package.properties"));
ResourceInjector.get("autofilteringlist-package.style").load(
- FilterableListCellRenderer.class.getResource("/dependency-injections/autofilteringlist-package.properties"));
-
- ResourceInjector.get("calendar-package.style").load(
- CalendarGUI.class.getResource("/dependency-injections/calendar-package.properties"));
+ ISAcreatorApplication.class.getResource("/dependency-injections/autofilteringlist-package.properties"));
ResourceInjector.get("common-package.style").load(
- ArchiveOutputWindow.class.getResource("/dependency-injections/common-package.properties"));
+ ISAcreatorApplication.class.getResource("/dependency-injections/common-package.properties"));
ResourceInjector.get("factorlevelentry-package.style").load(
- FactorLevelEntryGUI.class.getResource("/dependency-injections/factorlevelentry-package.properties"));
+ ISAcreatorApplication.class.getResource("/dependency-injections/factorlevelentry-package.properties"));
ResourceInjector.get("gui-package.style").load(
- AssayInformationPanel.class.getResource("/dependency-injections/gui-package.properties"));
+ ISAcreatorApplication.class.getResource("/dependency-injections/gui-package.properties"));
ResourceInjector.get("gui-package.style").load(
- ModeSelector.class.getResource("/dependency-injections/gui-package.properties"));
+ ISAcreatorApplication.class.getResource("/dependency-injections/gui-package.properties"));
ResourceInjector.get("ontologiser-generator-package.style").load(
- OntologyHelpPane.class.getResource("/dependency-injections/ontologiser-generator-package.properties"));
+ ISAcreatorApplication.class.getResource("/dependency-injections/ontologiser-generator-package.properties"));
ResourceInjector.get("formatmappingutility-package.style").load(
- OntologyHelpPane.class.getResource("/dependency-injections/formatmappingutility-package.properties"));
+ ISAcreatorApplication.class.getResource("/dependency-injections/formatmappingutility-package.properties"));
ResourceInjector.get("common-package.style").load(
- OntologyHelpPane.class.getResource("/dependency-injections/common-package.properties"));
+ ISAcreatorApplication.class.getResource("/dependency-injections/common-package.properties"));
ResourceInjector.get("ontologyselectiontool-package.style").load(
- OntologyHelpPane.class.getResource("/dependency-injections/ontologyselectiontool-package.properties"));
+ ISAcreatorApplication.class.getResource("/dependency-injections/ontologyselectiontool-package.properties"));
ResourceInjector.get("ontologyselectiontool-package.style").load(
- OntologySelectionTool.class.getResource("/dependency-injections/ontologyselectiontool-package.properties"));
+ ISAcreatorApplication.class.getResource("/dependency-injections/ontologyselectiontool-package.properties"));
ResourceInjector.get("common-package.style").load(
- OntologySelectionTool.class.getResource("/dependency-injections/common-package.properties"));
- ResourceInjector.get("effects-package.style").load(OntologySelectionTool.class.getResource
- ("/dependency-injections/effects-package.properties"));
+ ISAcreatorApplication.class.getResource("/dependency-injections/common-package.properties"));
+ ResourceInjector.get("effects-package.style").load(
+ ISAcreatorApplication.class.getResource("/dependency-injections/effects-package.properties"));
ResourceInjector.get("sample-selection-package.style").load(
- ProtocolSelectorListCellRenderer.class.getResource("/dependency-injections/autofilterfield-package.properties"));
+ ISAcreatorApplication.class.getResource("/dependency-injections/autofilterfield-package.properties"));
+
+ ResourceInjector.get("orcidlookup-package.style").load(
+ ISAcreatorApplication.class.getResource("/dependency-injections/orcidlookup-package.properties"));
}
diff --git a/src/main/java/org/isatools/isacreator/longtexteditor/TextEditor.java b/src/main/java/org/isatools/isacreator/longtexteditor/TextEditor.java
index 3b10f620..359e05d7 100644
--- a/src/main/java/org/isatools/isacreator/longtexteditor/TextEditor.java
+++ b/src/main/java/org/isatools/isacreator/longtexteditor/TextEditor.java
@@ -37,8 +37,9 @@ The ISA Team and the ISA software suite have been funded by the EU Carcinogenomi
package org.isatools.isacreator.longtexteditor;
-import org.isatools.isacreator.common.Globals;
import org.isatools.isacreator.common.UIHelper;
+import org.isatools.isacreator.common.button.ButtonType;
+import org.isatools.isacreator.common.button.FlatButton;
import org.isatools.isacreator.effects.FooterPanel;
import org.isatools.isacreator.effects.HUDTitleBar;
import org.jdesktop.fuse.InjectedResource;
@@ -47,10 +48,7 @@ The ISA Team and the ISA software suite have been funded by the EU Carcinogenomi
import javax.swing.*;
import javax.swing.border.EtchedBorder;
import java.awt.*;
-import java.awt.event.MouseAdapter;
-import java.awt.event.MouseEvent;
-import java.awt.event.WindowEvent;
-import java.awt.event.WindowListener;
+import java.awt.event.*;
/**
* TextEditor widget to allow users to edit large bits of text in a light, convenient interface.
@@ -113,21 +111,12 @@ public void createGUI() {
JPanel buttonContainer = new JPanel(new BorderLayout());
buttonContainer.setBackground(UIHelper.BG_COLOR);
- final JLabel ok = new JLabel(Globals.OK_ICON, JLabel.RIGHT);
- ok.addMouseListener(new MouseAdapter() {
-
- public void mousePressed(MouseEvent event) {
+ JButton ok = new FlatButton(ButtonType.GREEN, "Confirm");
+ ok.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent actionEvent) {
firePropertyChange("enteredText", "OLD_VALUE", textEditor.getEnteredText());
setVisible(false);
}
-
- public void mouseEntered(MouseEvent event) {
- ok.setIcon(Globals.OK_OVER_ICON);
- }
-
- public void mouseExited(MouseEvent event) {
- ok.setIcon(Globals.OK_ICON);
- }
});
buttonContainer.add(ok, BorderLayout.EAST);
diff --git a/src/main/java/org/isatools/isacreator/managers/ConfigurationManager.java b/src/main/java/org/isatools/isacreator/managers/ConfigurationManager.java
index 6cbd211b..ad26f226 100644
--- a/src/main/java/org/isatools/isacreator/managers/ConfigurationManager.java
+++ b/src/main/java/org/isatools/isacreator/managers/ConfigurationManager.java
@@ -28,10 +28,10 @@ public class ConfigurationManager {
*/
public static void loadConfigurations(String configDirectory) {
if (configDirectory != null) {
- ConfigXMLParser cp = new ConfigXMLParser(configDirectory);
- cp.loadConfiguration();
- mappings = cp.getMappings();
- assayDefinitions = cp.getTables();
+ ConfigXMLParser configXMLParser = new ConfigXMLParser(configDirectory);
+ configXMLParser.loadConfiguration();
+ mappings = configXMLParser.getMappings();
+ assayDefinitions = configXMLParser.getTables();
}
}
@@ -110,6 +110,21 @@ public static Map> getAllowedTechnologiesPerEndpoint() {
return measToAllowedTechs;
}
+
+ public static TableReferenceObject searchMappingsForMatch(String measurementEndpoint, String technologyType) {
+ for (MappingObject mo : getMappings()) {
+ if (mo.getMeasurementEndpointType().equalsIgnoreCase(measurementEndpoint) &&
+ mo.getTechnologyType().equalsIgnoreCase(technologyType)) {
+ for (TableReferenceObject tro : assayDefinitions) {
+ if (tro.getTableName().equalsIgnoreCase(mo.getAssayName())) {
+ return tro;
+ }
+ }
+ }
+ }
+ return null;
+ }
+
/**
* Select the TableReferenceObject which is required for a given measurement endpoint
* and technology type using the MappingObject.
@@ -124,18 +139,16 @@ public static TableReferenceObject selectTROForUserSelection(
measurementEndpoint = getTrimmedName(measurementEndpoint);
techType = getTrimmedName(techType);
- for (MappingObject mo : getMappings()) {
- if (mo.getMeasurementEndpointType().equalsIgnoreCase(measurementEndpoint) &&
- mo.getTechnologyType().equalsIgnoreCase(techType)) {
- for (TableReferenceObject tro : assayDefinitions) {
- if (tro.getTableName().equalsIgnoreCase(mo.getAssayName())) {
- return tro;
- }
- }
- }
+
+ TableReferenceObject matchedReferenceObject = searchMappingsForMatch(measurementEndpoint, techType);
+
+
+ // attempt use of wildcard configuration for loading.
+ if(matchedReferenceObject == null) {
+ matchedReferenceObject = searchMappingsForMatch("*", "*");
}
- return null;
+ return matchedReferenceObject;
}
private static String getTrimmedName(String string) {
diff --git a/src/main/java/org/isatools/isacreator/mergeutil/MergeFilesUI.java b/src/main/java/org/isatools/isacreator/mergeutil/MergeFilesUI.java
index 2f3ff93e..dbdabdad 100644
--- a/src/main/java/org/isatools/isacreator/mergeutil/MergeFilesUI.java
+++ b/src/main/java/org/isatools/isacreator/mergeutil/MergeFilesUI.java
@@ -38,23 +38,21 @@ The ISA Team and the ISA software suite have been funded by the EU Carcinogenomi
package org.isatools.isacreator.mergeutil;
import com.explodingpixels.macwidgets.IAppWidgetFactory;
-import org.isatools.isacreator.common.DropDownComponent;
-import org.isatools.isacreator.common.FileSelectionPanel;
-import org.isatools.isacreator.common.HistoryComponent;
-import org.isatools.isacreator.common.UIHelper;
+import org.isatools.isacreator.common.*;
import org.isatools.isacreator.effects.InfiniteProgressPanel;
import org.isatools.isacreator.effects.borders.RoundedBorder;
import org.isatools.isacreator.effects.components.RoundedJTextField;
import org.isatools.isacreator.gui.AbstractDataEntryEnvironment;
-import org.isatools.isacreator.io.importisa.ISAtabImporter;
-import org.isatools.isacreator.gui.io.importisa.ISAtabFilesImporterFromGUI;
-import org.isatools.isacreator.managers.ApplicationManager;
import org.isatools.isacreator.gui.DataEntryEnvironment;
import org.isatools.isacreator.gui.ISAcreator;
+import org.isatools.isacreator.gui.io.importisa.ISAtabFilesImporterFromGUI;
import org.isatools.isacreator.gui.menu.ISAcreatorMenu;
+import org.isatools.isacreator.io.importisa.ISAtabImporter;
+import org.isatools.isacreator.managers.ApplicationManager;
import org.isatools.isacreator.model.Investigation;
import org.isatools.isacreator.model.Study;
import org.isatools.isacreator.ontologymanager.OntologyManager;
+import org.isatools.isacreator.ontologymanager.common.OntologyTerm;
import org.isatools.isacreator.visualization.ExperimentVisualization;
import org.jdesktop.fuse.InjectedResource;
import org.jdesktop.fuse.ResourceInjector;
@@ -62,8 +60,13 @@ The ISA Team and the ISA software suite have been funded by the EU Carcinogenomi
import javax.swing.*;
import javax.swing.border.TitledBorder;
import java.awt.*;
-import java.awt.event.*;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseListener;
import java.io.File;
+import java.util.Collection;
+import java.util.HashSet;
import java.util.Stack;
@@ -172,17 +175,20 @@ private JLayeredPane createSelectFilesPanel() {
final MouseListener[] listeners = new MouseListener[2];
- listeners[0] = new MouseAdapter() {
+ listeners[0] = new CommonMouseAdapter() {
public void mouseEntered(MouseEvent mouseEvent) {
+ super.mousePressed(mouseEvent);
backButton.setIcon(backOver);
}
public void mouseExited(MouseEvent mouseEvent) {
+ super.mouseExited(mouseEvent);
backButton.setIcon(back);
}
public void mousePressed(MouseEvent mouseEvent) {
+ super.mousePressed(mouseEvent);
backButton.setIcon(back);
SwingUtilities.invokeLater(new Runnable() {
public void run() {
@@ -197,18 +203,21 @@ public void run() {
assignListenerToLabel(backButton, listeners[0]);
- listeners[1] = new MouseAdapter() {
+ listeners[1] = new CommonMouseAdapter() {
public void mouseEntered(MouseEvent mouseEvent) {
+ super.mouseEntered(mouseEvent);
nextButton.setIcon(nextOver);
}
public void mouseExited(MouseEvent mouseEvent) {
+ super.mouseExited(mouseEvent);
nextButton.setIcon(next);
}
public void mousePressed(MouseEvent mouseEvent) {
+ super.mousePressed(mouseEvent);
nextButton.setIcon(next);
String isatab1Path = isatab1.getSelectedFilePath().trim();
@@ -504,9 +513,10 @@ private JLayeredPane createInvestigationDefinitionPanel(final Investigation inv1
final MouseListener[] listeners = new MouseListener[2];
- listeners[0] = new MouseAdapter() {
+ listeners[0] = new CommonMouseAdapter() {
public void mousePressed(MouseEvent event) {
+ super.mousePressed(event);
// go back to the create isatab menu
SwingUtilities.invokeLater(new Runnable() {
public void run() {
@@ -519,10 +529,12 @@ public void run() {
}
public void mouseEntered(MouseEvent event) {
+ super.mouseEntered(event);
backButton.setIcon(backOver);
}
public void mouseExited(MouseEvent event) {
+ super.mouseExited(event);
backButton.setIcon(back);
}
};
@@ -535,10 +547,10 @@ public void mouseExited(MouseEvent event) {
assignListenerToLabel(backButton, listeners[0]);
- listeners[1] = new MouseAdapter() {
+ listeners[1] = new CommonMouseAdapter() {
public void mousePressed(MouseEvent event) {
-
+ super.mousePressed(event);
if (!invTitle.getText().trim().equals("")) {
invTitle.setBackground(UIHelper.BG_COLOR);
if (!invDescription.getText().trim()
@@ -574,10 +586,12 @@ public void run() {
}
public void mouseEntered(MouseEvent event) {
+ super.mouseEntered(event);
nextButton.setIcon(nextOver);
}
public void mouseExited(MouseEvent event) {
+ super.mouseExited(event);
nextButton.setIcon(next);
}
};
@@ -616,21 +630,24 @@ public void run() {
final Investigation inv1 = importISA1.getInvestigation();
+ //Keep the terms used in inv1
+ Collection terms = new HashSet(OntologyManager.getOntologyTermsValues());
+
+ //clear the terms used
+ OntologyManager.clearOntologyTerms();
+
ISAtabImporter importISA2 = new ISAtabFilesImporterFromGUI(ApplicationManager.getCurrentApplicationInstance());
- importISA2.importFile(ISA2 + File.separator);
+ boolean successfulImportISA2 = importISA2.importFile(ISA2 + File.separator);
- if (!importISA2.importFile(ISA2 + File.separator)) {
+ if (!successfulImportISA2) {
// status.setText(importISA2.getProblemLog());
return;
}
final Investigation inv2 = importISA2.getInvestigation();
- // add all ontologies used to inv 1
- OntologyManager.addToUsedOntologySources(inv1.getInvestigationId(),
- OntologyManager.getOntologiesUsed(inv2.getInvestigationId()));
-
- OntologyManager.clearUsedOntologies(inv2.getInvestigationId());
+ // add all terms used by inv2 to those used by inv 1
+ OntologyManager.addToOntologyTerms(terms);
// add all publications and contacts...
inv1.addToPublications(inv2.getPublications());
@@ -697,17 +714,20 @@ private JLayeredPane visualizeCurrentStudy(final Investigation inv1) {
final MouseListener[] listeners = new MouseListener[2];
- listeners[0] = new MouseAdapter() {
+ listeners[0] = new CommonMouseAdapter() {
public void mouseEntered(MouseEvent mouseEvent) {
+ super.mouseEntered(mouseEvent);
backButton.setIcon(backOver);
}
public void mouseExited(MouseEvent mouseEvent) {
+ super.mouseExited(mouseEvent);
backButton.setIcon(back);
}
public void mousePressed(MouseEvent mouseEvent) {
+ super.mousePressed(mouseEvent);
// go back to define assay page.
// output files to default directory, and then in last page offer users ability to load the file straight away
HistoryComponent hc = previousPage.pop();
@@ -720,17 +740,20 @@ public void mousePressed(MouseEvent mouseEvent) {
assignListenerToLabel(backButton, listeners[0]);
- listeners[1] = new MouseAdapter() {
+ listeners[1] = new CommonMouseAdapter() {
public void mouseEntered(MouseEvent mouseEvent) {
+ super.mouseEntered(mouseEvent);
nextButton.setIcon(nextOver);
}
public void mouseExited(MouseEvent mouseEvent) {
+ super.mouseExited(mouseEvent);
nextButton.setIcon(next);
}
public void mousePressed(MouseEvent mouseEvent) {
+ super.mousePressed(mouseEvent);
// go back to define assay page.
previousPage.push(new HistoryComponent(finalPane, listeners));
setCurrentPage(showDonePage(inv1));
@@ -756,17 +779,20 @@ private JLayeredPane showDonePage(final Investigation inv1) {
final MouseListener[] listeners = new MouseListener[2];
backButton.setIcon(back);
- listeners[0] = new MouseAdapter() {
+ listeners[0] = new CommonMouseAdapter() {
public void mouseEntered(MouseEvent mouseEvent) {
+ super.mouseEntered(mouseEvent);
backButton.setIcon(backOver);
}
public void mouseExited(MouseEvent mouseEvent) {
+ super.mouseExited(mouseEvent);
backButton.setIcon(back);
}
public void mousePressed(MouseEvent mouseEvent) {
+ super.mousePressed(mouseEvent);
SwingUtilities.invokeLater(new Runnable() {
public void run() {
HistoryComponent hc = previousPage.pop();
@@ -781,17 +807,20 @@ public void run() {
assignListenerToLabel(backButton, listeners[0]);
- listeners[1] = new MouseAdapter() {
+ listeners[1] = new CommonMouseAdapter() {
public void mouseEntered(MouseEvent mouseEvent) {
+ super.mouseEntered(mouseEvent);
nextButton.setIcon(nextOver);
}
public void mouseExited(MouseEvent mouseEvent) {
+ super.mouseExited(mouseEvent);
nextButton.setIcon(next);
}
public void mousePressed(MouseEvent mouseEvent) {
+ super.mousePressed(mouseEvent);
// go back to define assay page.
SwingUtilities.invokeLater(new Runnable() {
public void run() {
diff --git a/src/main/java/org/isatools/isacreator/model/Assay.java b/src/main/java/org/isatools/isacreator/model/Assay.java
index cbc7272c..4058dba0 100755
--- a/src/main/java/org/isatools/isacreator/model/Assay.java
+++ b/src/main/java/org/isatools/isacreator/model/Assay.java
@@ -40,6 +40,9 @@ The ISA Team and the ISA software suite have been funded by the EU Carcinogenomi
import org.isatools.isacreator.configuration.MappingObject;
import org.isatools.isacreator.gui.StudySubData;
import org.isatools.isacreator.managers.ConfigurationManager;
+import org.isatools.isacreator.ontologymanager.OntologyManager;
+import org.isatools.isacreator.ontologymanager.OntologySourceRefObject;
+import org.isatools.isacreator.ontologymanager.common.OntologyTerm;
import org.isatools.isacreator.spreadsheet.model.TableReferenceObject;
@@ -120,6 +123,25 @@ public Assay(String assayReference, String measurementEndpoint,
fieldValues.put(TECHNOLOGY_TYPE_TERM_ACCESSION, mappingObject!=null? mappingObject.getTechnologyAccession(): "");
fieldValues.put(TECHNOLOGY_TYPE_TERM_SOURCE_REF, mappingObject!=null? mappingObject.getTechnologySource(): "" );
fieldValues.put(ASSAY_PLATFORM, assayPlatform);
+
+ if (mappingObject!=null){
+ OntologyTerm ot = null;
+ OntologySourceRefObject ontologySourceRefObject = null;
+ if (!mappingObject.getMeasurementAccession().equals("")){
+ ontologySourceRefObject = OntologyManager.getOntologySourceReferenceObjectByAbbreviation(mappingObject.getMeasurementSource());
+ if (ontologySourceRefObject==null)
+ ontologySourceRefObject = new OntologySourceRefObject(mappingObject.getMeasurementSource());
+ ot = new OntologyTerm(mappingObject.getMeasurementEndpointType(), mappingObject.getMeasurementAccession(), mappingObject.getMeasurementAccession(), ontologySourceRefObject);
+ OntologyManager.addToOntologyTerms(ot);
+ }
+ if (!mappingObject.getTechnologyAccession().equals("")){
+ ontologySourceRefObject = OntologyManager.getOntologySourceReferenceObjectByAbbreviation(mappingObject.getTechnologySource());
+ if (ontologySourceRefObject==null)
+ ontologySourceRefObject = new OntologySourceRefObject(mappingObject.getTechnologySource());
+ ot = new OntologyTerm(mappingObject.getTechnologyType(), mappingObject.getTechnologyAccession(), mappingObject.getTechnologyAccession(), ontologySourceRefObject);
+ OntologyManager.addToOntologyTerms(ot);
+ }
+ }
}
diff --git a/src/main/java/org/isatools/isacreator/model/Investigation.java b/src/main/java/org/isatools/isacreator/model/Investigation.java
index 894babc0..1b1e923b 100755
--- a/src/main/java/org/isatools/isacreator/model/Investigation.java
+++ b/src/main/java/org/isatools/isacreator/model/Investigation.java
@@ -118,7 +118,6 @@ private void initialise() {
assays = new HashMap();
contacts = new ArrayList();
publications = new ArrayList();
- OntologyManager.newInvestigation(getInvestigationId().equals("") ? "investigation-" + System.currentTimeMillis() : getInvestigationId());
}
@Override
diff --git a/src/main/java/org/isatools/isacreator/ontologiser/adaptors/InvestigationAdaptor.java b/src/main/java/org/isatools/isacreator/ontologiser/adaptors/InvestigationAdaptor.java
index cf9128ad..9174c0be 100644
--- a/src/main/java/org/isatools/isacreator/ontologiser/adaptors/InvestigationAdaptor.java
+++ b/src/main/java/org/isatools/isacreator/ontologiser/adaptors/InvestigationAdaptor.java
@@ -3,8 +3,8 @@
import org.isatools.isacreator.api.utils.InvestigationUtils;
import org.isatools.isacreator.api.utils.SpreadsheetUtils;
import org.isatools.isacreator.configuration.Ontology;
-import org.isatools.isacreator.managers.ApplicationManager;
import org.isatools.isacreator.gui.AssaySpreadsheet;
+import org.isatools.isacreator.managers.ApplicationManager;
import org.isatools.isacreator.model.Assay;
import org.isatools.isacreator.model.Investigation;
import org.isatools.isacreator.model.Study;
@@ -55,17 +55,14 @@ public void replaceTerms(Set annotations) {
OntologySourceRefObject ontologySourceRefObject = OntologyUtils.convertOntologyToOntologySourceReferenceObject(sourceOntology);
- // adding ontology source in case it has not already been added
- OntologyManager.addToUsedOntologySources("annotator", ontologySourceRefObject);
-
OntologyTerm ontologyTerm = annotation.getAssignedOntology().getOntologyTerm();
// add the term to the ontology history.
- OntologyTerm ontologyObject = new OntologyTerm(ontologyTerm.getOntologyTermName(), ontologyTerm.getOntologyTermAccession(), ontologyTerm.getOntologyPurl(), ontologySourceRefObject);
+ OntologyTerm ontologyObject = new OntologyTerm(ontologyTerm.getOntologyTermName(), ontologyTerm.getOntologyTermAccession(), ontologyTerm.getOntologyTermURI(), ontologySourceRefObject);
mappingsForReplacement.put(annotation.getFreeTextTerm(), ontologyObject);
- OntologyManager.addToUserHistory(ontologyObject);
+ OntologyManager.addToOntologyTerms(ontologyObject);
}
}
diff --git a/src/main/java/org/isatools/isacreator/ontologiser/logic/impl/AnnotatorSearchClient.java b/src/main/java/org/isatools/isacreator/ontologiser/logic/impl/AnnotatorSearchClient.java
index c10279c0..acb6a8f7 100644
--- a/src/main/java/org/isatools/isacreator/ontologiser/logic/impl/AnnotatorSearchClient.java
+++ b/src/main/java/org/isatools/isacreator/ontologiser/logic/impl/AnnotatorSearchClient.java
@@ -3,11 +3,10 @@
import org.apache.commons.httpclient.HostConfiguration;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.PostMethod;
+import org.isatools.isacreator.configuration.Ontology;
import org.isatools.isacreator.ontologymanager.bioportal.io.AcceptedOntologies;
-import org.isatools.isacreator.ontologymanager.bioportal.io.AcceptedOntology;
+import org.isatools.isacreator.ontologymanager.bioportal.jsonresulthandlers.BioPortalAnnotatorResultHandler;
import org.isatools.isacreator.ontologymanager.bioportal.model.AnnotatorResult;
-import org.isatools.isacreator.ontologymanager.bioportal.utils.BioPortalXMLModifier;
-import org.isatools.isacreator.ontologymanager.bioportal.xmlresulthandlers.BioPortalAnnotatorResultHandler;
import uk.ac.ebi.utils.io.DownloadUtils;
import java.io.File;
@@ -27,29 +26,29 @@
*/
public class AnnotatorSearchClient {
- public static final String BASE_QUERY_URL = "http://rest.bioontology.org/obs/annotator";
+ public static final String BASE_QUERY_URL = "http://data.bioontology.org/annotator";
public Map> searchForTerms(Set terms) {
- return searchForTerms(terms, AcceptedOntologies.getAllowedOntologyIds(new HashSet()), true);
+ return searchForTerms(terms, AcceptedOntologies.getAllowedOntologyAcronyms(new HashSet()), true);
}
public Map> searchForTerms(Set terms, String ontologiesToSearchOn, boolean wholeWordOnly) {
try {
+ String flattenedTerms = flattenSetToString(terms);
+
HttpClient client = new HttpClient();
PostMethod method = new PostMethod(BASE_QUERY_URL);
// Configure the form parameters
method.addParameter("wholeWordOnly", wholeWordOnly ? " true" : "false");
- method.addParameter("scored", "true");
- method.addParameter("ontologiesToKeepInResult", ontologiesToSearchOn);
- method.addParameter("isVirtualOntologyId", "true");
- method.addParameter("withSynonyms", "true");
- method.addParameter("textToAnnotate", flattenSetToString(terms));
+
+ method.addParameter("ontologies", ontologiesToSearchOn);
+ method.addParameter("text", flattenedTerms);
method.addParameter("apikey", "fd88ee35-6995-475d-b15a-85f1b9dd7a42");
try {
HostConfiguration configuration = new HostConfiguration();
- configuration.setHost("http://rest.bioontology.org");
+ configuration.setHost("http://data.bioontology.org");
configuration.setProxy(System.getProperty("http.proxyHost"), Integer.valueOf(System.getProperty("http.proxyPort")));
client.setHostConfiguration(configuration);
} catch (Exception e) {
@@ -61,7 +60,7 @@ public Map> searchForTerms(Set term
String contents = method.getResponseBodyAsString();
method.releaseConnection();
- return processContent(contents, terms);
+ return processContent(contents, flattenedTerms, terms);
}
} catch (Exception e) {
e.printStackTrace();
@@ -70,28 +69,11 @@ public Map> searchForTerms(Set term
return null;
}
- private Map> processContent(String content, Set terms) throws FileNotFoundException {
-
- File fileWithNameSpace = BioPortalXMLModifier.addNameSpaceToFile(
- createFileForContent(content), "http://bioontology.org/bioportal/annotator#", "");
-
+ private Map> processContent(String content, String originalText, Set terms) {
BioPortalAnnotatorResultHandler handler = new BioPortalAnnotatorResultHandler();
-
- System.out.println("File saved in " + fileWithNameSpace.getAbsolutePath());
-
- return handler.getSearchResults(fileWithNameSpace.getAbsolutePath(), terms);
+ return handler.getSearchResults(content, originalText, terms);
}
- private File createFileForContent(String content) throws FileNotFoundException {
- File toSaveAs = new File(DownloadUtils.DOWNLOAD_FILE_LOC + "annotator-result" + DownloadUtils.XML_EXT);
- PrintStream ps = new PrintStream(toSaveAs);
- ps.print(content);
- ps.close();
-
- return toSaveAs;
- }
-
-
private String flattenSetToString(Set terms) {
StringBuilder buffer = new StringBuilder();
for (String term : terms) {
diff --git a/src/main/java/org/isatools/isacreator/ontologiser/ui/OntologiserAnnotationPane.java b/src/main/java/org/isatools/isacreator/ontologiser/ui/OntologiserAnnotationPane.java
index 58864a41..36274c09 100644
--- a/src/main/java/org/isatools/isacreator/ontologiser/ui/OntologiserAnnotationPane.java
+++ b/src/main/java/org/isatools/isacreator/ontologiser/ui/OntologiserAnnotationPane.java
@@ -48,7 +48,7 @@ The ISA Team and the ISA software suite have been funded by the EU Carcinogenomi
import org.isatools.isacreator.ontologiser.model.SuggestedAnnotation;
import org.isatools.isacreator.ontologiser.ui.listrenderer.OntologyAssignedListRenderer;
import org.isatools.isacreator.ontologiser.ui.listrenderer.ScoringConfidenceListRenderer;
-import org.isatools.isacreator.ontologymanager.BioPortalClient;
+import org.isatools.isacreator.ontologymanager.BioPortal4Client;
import org.isatools.isacreator.ontologymanager.OntologyService;
import org.isatools.isacreator.ontologymanager.bioportal.model.AnnotatorResult;
import org.isatools.isacreator.ontologyselectiontool.ViewTermDefinitionUI;
@@ -94,7 +94,7 @@ public class OntologiserAnnotationPane extends JPanel {
private static OntologyService ontologyService;
static {
- ontologyService = new BioPortalClient();
+ ontologyService = new BioPortal4Client();
}
public OntologiserAnnotationPane(Map> searchMatches) {
@@ -153,13 +153,13 @@ public void propertyChange(PropertyChangeEvent propertyChangeEvent) {
setAnnotation(selectedItem, currentlySelectedOntologyTerm);
- System.out.println("Term purl " + selectedItem.getAnnotatorResult().getOntologyTerm().getOntologyPurl() +
+ System.out.println("Term purl " + selectedItem.getAnnotatorResult().getOntologyTerm().getOntologyTermURI() +
" Name = " + selectedItem.getAnnotatorResult().getOntologyTerm().getOntologyTermName());
definitionUI.setContent(
new OntologyBranch(selectedItem.getAnnotatorResult().getOntologyTerm().getOntologyTermAccession(),
selectedItem.getAnnotatorResult().getOntologyTerm().getOntologyTermName()),
- selectedItem.getAnnotatorResult().getOntologySource().getOntologyVersion(), ontologyService);
+ selectedItem.getAnnotatorResult().getOntologySource().getOntologyID(), ontologyService);
repaint();
// should clear other selections to ensure that other suggested terms are not mapping to the ontology result too
@@ -173,7 +173,7 @@ public void propertyChange(PropertyChangeEvent propertyChangeEvent) {
listPanel.add(suggestedTermListContainer);
definitionUI.setBorder(new TitledBorder(new RoundedBorder(UIHelper.LIGHT_GREEN_COLOR, 6), "Definition",
- TitledBorder.DEFAULT_POSITION, TitledBorder.DEFAULT_JUSTIFICATION, UIHelper.VER_11_BOLD, UIHelper.DARK_GREEN_COLOR));
+ TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, UIHelper.VER_11_BOLD, UIHelper.DARK_GREEN_COLOR));
listPanel.add(definitionUI);
diff --git a/src/main/java/org/isatools/isacreator/ontologiser/ui/OntologiserUI.java b/src/main/java/org/isatools/isacreator/ontologiser/ui/OntologiserUI.java
index bebf849b..8891687e 100644
--- a/src/main/java/org/isatools/isacreator/ontologiser/ui/OntologiserUI.java
+++ b/src/main/java/org/isatools/isacreator/ontologiser/ui/OntologiserUI.java
@@ -37,6 +37,8 @@ The ISA Team and the ISA software suite have been funded by the EU Carcinogenomi
package org.isatools.isacreator.ontologiser.ui;
import org.isatools.isacreator.common.UIHelper;
+import org.isatools.isacreator.common.button.ButtonType;
+import org.isatools.isacreator.common.button.FlatButton;
import org.isatools.isacreator.common.dialog.ConfirmationDialog;
import org.isatools.isacreator.gui.ISAcreator;
import org.isatools.isacreator.ontologiser.adaptors.ContentAdaptor;
@@ -48,7 +50,10 @@ The ISA Team and the ISA software suite have been funded by the EU Carcinogenomi
import javax.swing.*;
import javax.swing.border.EmptyBorder;
import javax.swing.border.EtchedBorder;
+import javax.swing.border.LineBorder;
import java.awt.*;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.beans.PropertyChangeEvent;
@@ -92,8 +97,7 @@ public class OntologiserUI extends JDialog {
@InjectedResource
private ImageIcon termTaggerLogo, termTaggerIcon, termTaggerIconOver, visualiseInactiveIcon, visualiseIcon, visualiseIconOver,
- suggestInactiveIcon, suggestIcon, suggestIconOver, clearAllInactiveIcon, clearAllIcon, clearAllIconOver, helpIcon, helpIconOver, closeWindowIcon,
- closeWindowIconOver, doneIcon, doneIconOver, buttonPanelFiller, working;
+ suggestInactiveIcon, suggestIcon, suggestIconOver, clearAllInactiveIcon, clearAllIcon, clearAllIconOver, helpIcon, helpIconOver, working;
private OntologiserAnnotationPane annotationPane;
private OntologyHelpPane helpPane;
@@ -276,22 +280,12 @@ public void run() {
}
private Container createSouthPanel() {
- Box southPanel = Box.createHorizontalBox();
+ JPanel southPanel = new JPanel(new BorderLayout());
+ southPanel.setBorder(new LineBorder(Color.white, 4));
- final JLabel closeButton = new JLabel(closeWindowIcon);
- closeButton.addMouseListener(new MouseAdapter() {
- @Override
- public void mouseEntered(MouseEvent mouseEvent) {
- closeButton.setIcon(closeWindowIconOver);
- }
-
- @Override
- public void mouseExited(MouseEvent mouseEvent) {
- closeButton.setIcon(closeWindowIcon);
- }
-
- @Override
- public void mousePressed(MouseEvent mouseEvent) {
+ JButton closeButton = new FlatButton(ButtonType.RED, "Close");
+ closeButton.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent actionEvent) {
if (confirmChoice == null || !confirmChoice.isShowing()) {
confirmChoice = new ConfirmationDialog();
@@ -321,21 +315,10 @@ public void run() {
}
});
- final JLabel export = new JLabel(doneIcon);
- export.addMouseListener(new MouseAdapter() {
- @Override
- public void mouseEntered(MouseEvent mouseEvent) {
- export.setIcon(doneIconOver);
- }
-
- @Override
- public void mouseExited(MouseEvent mouseEvent) {
- export.setIcon(doneIcon);
- }
-
- @Override
- public void mousePressed(MouseEvent mouseEvent) {
+ JButton export = new FlatButton(ButtonType.GREEN, "Apply Annotations");
+ export.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent actionEvent) {
Thread performer = new Thread(new Runnable() {
public void run() {
if (annotationPane != null) {
@@ -352,9 +335,10 @@ public void run() {
}
});
- southPanel.add(closeButton);
- southPanel.add(new JLabel(buttonPanelFiller));
- southPanel.add(export);
+
+ southPanel.add(closeButton, BorderLayout.WEST);
+
+ southPanel.add(export, BorderLayout.EAST);
return southPanel;
}
diff --git a/src/main/java/org/isatools/isacreator/ontologybrowsingutils/WSOntologyTreeCreator.java b/src/main/java/org/isatools/isacreator/ontologybrowsingutils/WSOntologyTreeCreator.java
index a08406db..32b6ffa9 100644
--- a/src/main/java/org/isatools/isacreator/ontologybrowsingutils/WSOntologyTreeCreator.java
+++ b/src/main/java/org/isatools/isacreator/ontologybrowsingutils/WSOntologyTreeCreator.java
@@ -39,10 +39,8 @@ The ISA Team and the ISA software suite have been funded by the EU Carcinogenomi
import org.isatools.isacreator.configuration.Ontology;
import org.isatools.isacreator.configuration.OntologyBranch;
import org.isatools.isacreator.configuration.RecommendedOntology;
-import org.isatools.isacreator.ontologymanager.BioPortalClient;
-import org.isatools.isacreator.ontologymanager.OLSClient;
+import org.isatools.isacreator.ontologymanager.BioPortal4Client;
import org.isatools.isacreator.ontologymanager.OntologyService;
-import org.isatools.isacreator.ontologymanager.bioportal.model.OntologyPortal;
import org.isatools.isacreator.ontologymanager.common.OntologyTerm;
import org.isatools.isacreator.ontologymanager.utils.OntologyUtils;
import org.isatools.isacreator.utils.StringProcessing;
@@ -77,7 +75,7 @@ public class WSOntologyTreeCreator implements OntologyTreeCreator, TreeSelection
private Container browser;
private static OntologyService bioportalClient;
- private static OntologyService olsClient;
+
private JTree tree;
public WSOntologyTreeCreator(Container browser, JTree tree) {
@@ -85,8 +83,7 @@ public WSOntologyTreeCreator(Container browser, JTree tree) {
this.tree = tree;
observers = new ArrayList();
- bioportalClient = new BioPortalClient();
- olsClient = new OLSClient();
+ bioportalClient = new BioPortal4Client();
}
public DefaultMutableTreeNode createTree(Map ontologies) throws FileNotFoundException {
@@ -167,12 +164,8 @@ private void initiateOntologyVisualization() {
}
if (!addedTerms) {
- if (service instanceof BioPortalClient) {
addInformationToTree(ontologyNode, "Problem loading " + recommendedOntology.getOntology().getOntologyAbbreviation() + " (version "
+ recommendedOntology.getOntology().getOntologyVersion() + ") from BioPortal!");
- } else {
- addInformationToTree(ontologyNode, "Problem loading " + recommendedOntology.getOntology().getOntologyAbbreviation() + " from OLS");
- }
}
}
updateTree();
@@ -185,11 +178,11 @@ private void initiateOntologyVisualization() {
}
private OntologyService getCorrectOntologyService(Ontology ontology) {
- return OntologyUtils.getSourceOntologyPortal(ontology) == OntologyPortal.OLS ? olsClient : bioportalClient;
+ return bioportalClient;
}
private String getCorrectQueryString(OntologyService service, Ontology ontology) {
- return service instanceof BioPortalClient ? ontology.getOntologyVersion() : ontology.getOntologyAbbreviation();
+ return ontology.getOntologyVersion();
}
public void updateTree() {
@@ -247,9 +240,7 @@ private void addTermToTree(DefaultMutableTreeNode parent, OntologyTerm ontologyT
DefaultMutableTreeNode childNode =
new DefaultMutableTreeNode(new OntologyTreeItem(
- new OntologyBranch((OntologyUtils.getSourceOntologyPortal(ontology) == OntologyPortal.OLS)
- ? ontologyTerm.getOntologySource() + ":" + ontologyTerm.getOntologyTermAccession()
- : ontologyTerm.getOntologyTermAccession(), ontologyTerm.getOntologyTermName()), ontology));
+ new OntologyBranch(ontologyTerm.getOntologyTermAccession(), ontologyTerm.getOntologyTermName()), ontology));
if (parent == null) {
parent = rootNode;
@@ -288,9 +279,7 @@ public void expandTreeToReachTerm(OntologyTerm term) {
OntologyService service = getCorrectOntologyService(ontology);
- Map nodeParentsFromRoot = service.getAllTermParents((OntologyUtils.getSourceOntologyPortal(ontology) == OntologyPortal.OLS)
- ? term.getOntologySource() + ":" + term.getOntologyTermAccession()
- : term.getOntologyTermAccession(), service instanceof OLSClient ? term.getOntologySource() : term.getOntologySourceInformation().getSourceVersion());
+ Map nodeParentsFromRoot = service.getAllTermParents(term.getOntologyTermAccession(), term.getOntologySourceInformation().getSourceVersion());
TreePath lastPath = null;
for (OntologyTerm node : nodeParentsFromRoot.values()) {
diff --git a/src/main/java/org/isatools/isacreator/ontologymanager/BioPortal4Client.java b/src/main/java/org/isatools/isacreator/ontologymanager/BioPortal4Client.java
new file mode 100644
index 00000000..08da64c4
--- /dev/null
+++ b/src/main/java/org/isatools/isacreator/ontologymanager/BioPortal4Client.java
@@ -0,0 +1,160 @@
+package org.isatools.isacreator.ontologymanager;
+
+import org.apache.log4j.Logger;
+import org.isatools.isacreator.configuration.Ontology;
+import org.isatools.isacreator.configuration.RecommendedOntology;
+import org.isatools.isacreator.ontologymanager.bioportal.io.AcceptedOntologies;
+import org.isatools.isacreator.ontologymanager.bioportal.jsonresulthandlers.BioPortalSearchResultHandler;
+import org.isatools.isacreator.ontologymanager.common.OntologyTerm;
+
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+import java.util.*;
+
+/**
+ * Created by eamonnmaguire on 17/12/2013.
+ */
+public class BioPortal4Client implements OntologyService {
+
+ private static final Logger log = Logger.getLogger(BioPortal4Client.class);
+
+ public static final String DIRECT_ONTOLOGY_URL = "http://bioportal.bioontology.org/ontologies/";
+ public static final String REST_URL = "http://data.bioontology.org/";
+
+ private BioPortalSearchResultHandler handler;
+
+ private Map> cachedNodeChildrenQueries;
+
+ public BioPortal4Client() {
+ this.handler = new BioPortalSearchResultHandler();
+ this.cachedNodeChildrenQueries = new HashMap>();
+ }
+
+ public Map getOntologyNames() {
+ return AcceptedOntologies.getOntologySourceToNames();
+ }
+
+ /**
+ * Retrieves an OntologyTerm given the URI of a term and the ontology bioPortal URI
+ * @param termId
+ * @param ontology
+ * @return
+ */
+ public OntologyTerm getTerm(String termId, String ontology) {
+ return handler.getTermMetadata(termId, ontology);
+ }
+
+ public Map> exactSearch(String term, String ontology) {
+ return handler.getSearchResults(term, ontology, null, true);
+ }
+
+ public Map getTermMetadata(String termId, String ontology) {
+ return handler.getTermMetadata(termId, ontology).getComments();
+ }
+
+ public Map> getTermsByPartialNameFromSource(String term, String source, boolean reverseOrder) {
+
+ term = correctTermForHTTPTransport(term);
+
+ Map> searchResult = handler.getSearchResults(term, source, null);
+
+ return convertStringKeyMapToOntologySourceRefKeyMap(searchResult);
+ }
+
+ public Map> getTermsByPartialNameFromSource(String term, List recommendedOntology) {
+ term = correctTermForHTTPTransport(term);
+
+ // need to accommodate more complicated search strings in the case where the recommended source contains the branch
+ // to search under as well!
+ Map> result = new HashMap>();
+
+ // need to do a loop over all branches and do a single query on those recommended ontologies only defined
+ // by the source, not the branch.
+ for (RecommendedOntology ro : recommendedOntology) {
+
+ if (ro.getOntology() != null) {
+
+ String subtree = null;
+ if (ro.getBranchToSearchUnder() != null && !ro.getBranchToSearchUnder().getBranchIdentifier().equals("")) {
+ subtree = ro.getBranchToSearchUnder().getBranchIdentifier();
+ }
+
+ Map> searchResult = handler.getSearchResults(term, ro.getOntology().getOntologyAbbreviation(), subtree);
+
+ if (searchResult != null) {
+ result.putAll(convertStringKeyMapToOntologySourceRefKeyMap(searchResult));
+ }
+ }
+ }
+ return result;
+ }
+
+ public Map getOntologyVersions() {
+
+ return AcceptedOntologies.getOntologySourceToVersion();
+ }
+
+ public Map getOntologyRoots(String ontologyAbbreviation) {
+// http://data.bioontology.org/ontologies/EFO/classes/roots
+ if (!cachedNodeChildrenQueries.containsKey(ontologyAbbreviation)) {
+ cachedNodeChildrenQueries.put(ontologyAbbreviation, handler.getOntologyRoots(ontologyAbbreviation));
+ }
+ return cachedNodeChildrenQueries.get(ontologyAbbreviation);
+ }
+
+ public Map getTermParent(String termAccession, String ontology) {
+
+ return null;
+ }
+
+ public Map getTermChildren(String termAccession, String ontologyAbbreviation) {
+ String uniqueReferenceId = ontologyAbbreviation + "-" + termAccession + "-children";
+ if (!cachedNodeChildrenQueries.containsKey(uniqueReferenceId)) {
+ cachedNodeChildrenQueries.put(uniqueReferenceId, handler.getTermChildren(termAccession, ontologyAbbreviation));
+ }
+ return cachedNodeChildrenQueries.get(uniqueReferenceId);
+ }
+
+ public Map getAllTermParents(String termAccession, String ontologyAbbreviation) {
+
+ String uniqueReferenceId = ontologyAbbreviation + "-" + termAccession + "-parents";
+ if (!cachedNodeChildrenQueries.containsKey(uniqueReferenceId)) {
+ cachedNodeChildrenQueries.put(uniqueReferenceId, handler.getTermParents(termAccession, ontologyAbbreviation));
+ }
+ return cachedNodeChildrenQueries.get(uniqueReferenceId);
+
+ }
+
+ public Collection getAllOntologies() {
+ return handler.getAllOntologies().values();
+ }
+
+ private Map> convertStringKeyMapToOntologySourceRefKeyMap(Map> toConvert) {
+
+ Map> convertedMap = new HashMap>();
+ for (String ontologyId : toConvert.keySet()) {
+ Ontology ontology = AcceptedOntologies.getAcceptedOntologies().get(ontologyId);
+ if (ontology != null) {
+ OntologySourceRefObject osro = new OntologySourceRefObject(ontology.getOntologyAbbreviation(),
+ ontologyId, ontology.getOntologyVersion(), ontology.getOntologyDisplayLabel());
+
+ convertedMap.put(osro, new ArrayList());
+
+ for (OntologyTerm ontologyTerm : toConvert.get(ontologyId)) {
+ ontologyTerm.setOntologySourceInformation(osro);
+ convertedMap.get(osro).add(ontologyTerm);
+ }
+
+ }
+ }
+ return convertedMap;
+ }
+
+ private String correctTermForHTTPTransport(String term) {
+ try {
+ return URLEncoder.encode(term, "UTF-8");
+ } catch (UnsupportedEncodingException e) {
+ return term;
+ }
+ }
+}
diff --git a/src/main/java/org/isatools/isacreator/ontologymanager/BioPortalClient.java b/src/main/java/org/isatools/isacreator/ontologymanager/BioPortalClient.java
index 70bfc69a..a64a2bbf 100644
--- a/src/main/java/org/isatools/isacreator/ontologymanager/BioPortalClient.java
+++ b/src/main/java/org/isatools/isacreator/ontologymanager/BioPortalClient.java
@@ -36,13 +36,10 @@ The ISA Team and the ISA software suite have been funded by the EU Carcinogenomi
*/
package org.isatools.isacreator.ontologymanager;
-import bioontology.bioportal.classBean.schema.SuccessDocument;
import org.apache.commons.collections15.map.ListOrderedMap;
import org.apache.log4j.Logger;
import org.isatools.isacreator.configuration.Ontology;
import org.isatools.isacreator.configuration.RecommendedOntology;
-import org.isatools.isacreator.ontologymanager.bioportal.io.AcceptedOntologies;
-import org.isatools.isacreator.ontologymanager.bioportal.io.AcceptedOntology;
import org.isatools.isacreator.ontologymanager.bioportal.utils.BioPortalXMLModifier;
import org.isatools.isacreator.ontologymanager.bioportal.xmlresulthandlers.BioPortalClassBeanResultHandler;
import org.isatools.isacreator.ontologymanager.bioportal.xmlresulthandlers.BioPortalOntologyListResultHandler;
@@ -69,10 +66,13 @@ public class BioPortalClient implements OntologyService {
private Set noChildren;
- private List ontologies;
+ private static List ontologies;
+
+ //
+ private static Map ontologyNames = new HashMap();
+ private static Map ontologyVersions = new HashMap();
+ private static Map ontologyFiles = new HashMap();
- private Map ontologySources;
- private Map ontologyVersions;
private Map searchResults;
private Map> cachedNodeChildrenQueries;
@@ -83,18 +83,13 @@ public class BioPortalClient implements OntologyService {
* Constructor
*/
public BioPortalClient() {
- ontologySources = new HashMap();
- ontologyVersions = new HashMap