in taverna-external-tool-activity-ui/src/main/java/org/apache/taverna/activities/externaltool/views/LoadDescriptionAction.java [53:104]
public void actionPerformed(ActionEvent e) {
String descriptionsString = FileTools.readStringFromFile(
this.scriptPanel, "Load tool description",
".xml");
if (descriptionsString != null) {
String errorMessage = null;
try {
Document doc = ScriptPanel.builder
.build(new StringReader(descriptionsString));
List<ToolDescription> descriptions = ToolDescriptionParser.readDescriptionsFromStream(new StringBufferInputStream(descriptionsString));
if (descriptions.isEmpty()) {
JOptionPane.showMessageDialog(this.scriptPanel, "No tool descriptions found", "File content", JOptionPane.ERROR_MESSAGE);
return;
}
if (descriptions.size() == 1) {
view.getConfiguration().setToolDescription(descriptions.get(0));
view.refreshConfiguration(view.getConfiguration());
return;
}
List<String> descriptionNames = new ArrayList();
for (ToolDescription ud : descriptions) {
descriptionNames.add(ud.getTooldescid());
}
Collections.sort(descriptionNames);
String chosenName = (String) JOptionPane.showInputDialog(this.scriptPanel, "Please select a tool description",
"Select tool description", JOptionPane.PLAIN_MESSAGE, null, descriptionNames.toArray(), descriptionNames.get(0));
if (chosenName != null) {
for (ToolDescription ud : descriptions) {
if (ud.getTooldescid().equals(chosenName)) {
view.getConfiguration().setToolDescription(ud);
view.refreshConfiguration(view.getConfiguration());
return;
}
}
}
} catch (JDOMException e1) {
errorMessage = e1.getMessage();
} catch (IOException e1) {
errorMessage = e1.getMessage();
} catch (Exception e1) {
errorMessage = e1.getMessage();
}
if (errorMessage != null) {
JOptionPane.showMessageDialog(null, errorMessage,
"Tool description load error",
JOptionPane.ERROR_MESSAGE);
}
}
}