in taverna-external-tool-activity-ui/src/main/java/org/apache/taverna/activities/externaltool/views/ExternalToolConfigView.java [286:538]
private void initialise(ExternalToolActivityConfigurationBean configuration) {
CSH.setHelpIDString(
this,
"net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ExternalToolConfigView");
this.configuration = configuration;
setBorder(javax.swing.BorderFactory.createTitledBorder(null, null,
javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,
javax.swing.border.TitledBorder.DEFAULT_POSITION,
new java.awt.Font("Lucida Grande", 1, 12)));
tabbedPane = new JTabbedPane();
if (invocationPanel != null) {
invocationPanel.stopObserving();
}
if (!isFromRepository()) {
ToolDescription toolDescription = configuration
.getToolDescription();
nameField.setText(toolDescription.getTooldescid());
if (toolDescription.getGroup() != null) {
groupField.setText(toolDescription.getGroup());
}
descriptionArea.setText(toolDescription.getDescription());
stringReplacementViewList = new ArrayList<ExternalToolStringReplacementViewer>();
inputFileViewList = new ArrayList<ExternalToolFileViewer>();
fileListViewList = new ArrayList<ExternalToolFileViewer>();
outputViewList = new ArrayList<ExternalToolFileViewer>();
staticUrlViewList = new ArrayList<ExternalToolStaticUrlViewer>();
staticStringViewList = new ArrayList<ExternalToolStaticStringViewer>();
/* runtimeEnvironmentViewList = new ArrayList<ExternalToolRuntimeEnvironmentViewer>();*/
for (Entry<String, ScriptInput> entry : toolDescription
.getInputs().entrySet()) {
String name = entry.getKey();
ScriptInputUser si = (ScriptInputUser) entry.getValue();
if (Tools.isStringReplacement(si)) {
final ExternalToolStringReplacementViewer inputView = new ExternalToolStringReplacementViewer(
name, si);
stringReplacementViewList.add(inputView);
}
}
Collections.sort(stringReplacementViewList,
new Comparator<ExternalToolStringReplacementViewer>() {
@Override
public int compare(
ExternalToolStringReplacementViewer o1,
ExternalToolStringReplacementViewer o2) {
return o1.getName().compareTo(o2.getName());
}
});
for (Entry<String, ScriptInput> entry : toolDescription
.getInputs().entrySet()) {
String name = entry.getKey();
ScriptInputUser si = (ScriptInputUser) entry.getValue();
if (Tools.isInputFile(si)) {
final ExternalToolFileViewer inputView = new ExternalToolFileViewer(
name, si.getTag(), si.isBinary());
inputFileViewList.add(inputView);
}
}
Collections.sort(inputFileViewList,
new Comparator<ExternalToolFileViewer>() {
@Override
public int compare(ExternalToolFileViewer o1,
ExternalToolFileViewer o2) {
return o1.getName().compareTo(o2.getName());
}
});
for (Entry<String, ScriptInput> entry : toolDescription
.getInputs().entrySet()) {
String name = entry.getKey();
ScriptInputUser si = (ScriptInputUser) entry.getValue();
if (Tools.isFileList(si)) {
final ExternalToolFileViewer inputView = new ExternalToolFileViewer(
name, si.getTag(), si.isBinary());
fileListViewList.add(inputView);
}
}
Collections.sort(fileListViewList,
new Comparator<ExternalToolFileViewer>() {
@Override
public int compare(ExternalToolFileViewer o1,
ExternalToolFileViewer o2) {
return o1.getName().compareTo(o2.getName());
}
});
for (Entry<String, ScriptOutput> entry : toolDescription
.getOutputs().entrySet()) {
ScriptOutput so = entry.getValue();
final ExternalToolFileViewer outputView = new ExternalToolFileViewer(
entry.getKey(), so.getPath(), so.isBinary());
outputViewList.add(outputView);
}
Collections.sort(outputViewList,
new Comparator<ExternalToolFileViewer>() {
@Override
public int compare(ExternalToolFileViewer o1,
ExternalToolFileViewer o2) {
return o1.getName().compareTo(o2.getName());
}
});
for (ScriptInputStatic siss : toolDescription.getStatic_inputs()) {
if ((siss.getUrl() == null) && siss.isFile()) {
final ExternalToolStaticStringViewer staticView = new ExternalToolStaticStringViewer(
siss);
staticStringViewList.add(staticView);
}
}
Collections.sort(staticStringViewList,
new Comparator<ExternalToolStaticStringViewer>() {
@Override
public int compare(ExternalToolStaticStringViewer o1,
ExternalToolStaticStringViewer o2) {
return o1.getContent().compareTo(o2.getContent());
}
});
for (ScriptInputStatic sis : toolDescription.getStatic_inputs()) {
if ((sis.getUrl() != null) && sis.isFile()) {
final ExternalToolStaticUrlViewer staticView = new ExternalToolStaticUrlViewer(
sis);
staticUrlViewList.add(staticView);
}
}
Collections.sort(staticUrlViewList,
new Comparator<ExternalToolStaticUrlViewer>() {
@Override
public int compare(ExternalToolStaticUrlViewer o1,
ExternalToolStaticUrlViewer o2) {
return o1.getContent().compareTo(o2.getContent());
}
});
/* for (RuntimeEnvironmentConstraint rec : toolDescription.getREs()) {
final ExternalToolRuntimeEnvironmentViewer newView = new ExternalToolRuntimeEnvironmentViewer(
rec.getID(), rec.getRelation());
runtimeEnvironmentViewList.add(newView);
}
Collections.sort(runtimeEnvironmentViewList,
new Comparator<ExternalToolRuntimeEnvironmentViewer>() {
@Override
public int compare(
ExternalToolRuntimeEnvironmentViewer o1,
ExternalToolRuntimeEnvironmentViewer o2) {
return o1.getId().compareTo(o2.getId());
}
});*/
scriptTextArea = new JTextPane();
new LinePainter(scriptTextArea, LINE_COLOR);
final KeywordDocument doc = new KeywordDocument(
new HashSet<String>());
// NOTE: Due to T2-1145 - always set editor kit BEFORE setDocument
scriptTextArea.setEditorKit(new NoWrapEditorKit());
scriptTextArea.setFont(new Font("Monospaced", Font.PLAIN, 14));
scriptTextArea.setDocument(doc);
scriptTextArea.setText(toolDescription.getCommand());
scriptTextArea.setCaretPosition(0);
scriptTextArea.setPreferredSize(new Dimension(200, 100));
tabbedPane.addTab("Command", new ScriptPanel(this, scriptTextArea, stdInCheckBox, stdOutCheckBox, stdErrCheckBox, returnCodesField));
tabbedPane.addTab("String replacements",
new StringReplacementPanel(this, stringReplacementViewList));
tabbedPane.addTab(
"File inputs",
new FilePanel(this, inputFileViewList, "To file", "File type",
"in", FILE_INPUT_DESCRIPTION, "Add file input"));
tabbedPane.addTab(
"File outputs",
new FilePanel(this, outputViewList, "From file", "File type",
"out", FILE_OUTPUT_DESCRIPTION, "Add file output"));
advancedPanel = new JPanel();
advancedPanel.setLayout(new GridBagLayout());
GridBagConstraints advancedConstraint = new GridBagConstraints();
advancedConstraint.anchor = GridBagConstraints.FIRST_LINE_START;
advancedConstraint.gridx = 0;
advancedConstraint.gridy = 0;
advancedConstraint.fill = GridBagConstraints.BOTH;
advancedConstraint.weighty = 0.1;
advancedConstraint.weightx = 0.1;
advancedTab = new JTabbedPane();
advancedTab.addTab("Strings", new StaticStringPanel(staticStringViewList));
advancedTab.addTab("URLs", new StaticUrlPanel(staticUrlViewList));
advancedTab.addTab(
"File lists",
new FilePanel(this, fileListViewList,
"To file containing list", "Individual file type",
"in", FILE_LIST_DESCRIPTION, "Add file list"));
annotationPanel = new AnnotationPanel(nameField, descriptionArea, groupField);
advancedTab.addTab("Annotation", annotationPanel);
final ToolXMLPanel toolXMLPanel = new ToolXMLPanel(configuration.getToolDescription());
advancedTab.addTab("XML", toolXMLPanel);
advancedTab.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
if (advancedTab.getSelectedComponent() == toolXMLPanel) {
toolXMLPanel.regenerateTree(makeConfiguration().getToolDescription());
}
}});
tabbedPane.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
if ((tabbedPane.getSelectedComponent() == advancedPanel) &&
(advancedTab.getSelectedComponent() == toolXMLPanel)) {
toolXMLPanel.regenerateTree(makeConfiguration().getToolDescription());
}
}
});
/* advancedTab.addTab("Runtime environments",
createRuntimeEnvironmentPanel(runtimeEnvironmentViewList));*/
advancedPanel.add(advancedTab, advancedConstraint);
tabbedPane.addTab("Advanced", advancedPanel);
}
invocationPanel = new InvocationPanel(configuration);
tabbedPane.addTab("Location", invocationPanel);
if (isFromRepository()) {
tabbedPane.addTab("Edit", new EditablePanel(this));
}
GridBagConstraints outerConstraint = new GridBagConstraints();
outerConstraint.anchor = GridBagConstraints.FIRST_LINE_START;
outerConstraint.gridx = 0;
outerConstraint.gridy = 0;
outerConstraint.fill = GridBagConstraints.BOTH;
outerConstraint.weighty = 0.1;
outerConstraint.weightx = 0.1;
add(tabbedPane, outerConstraint);
setPreferredSize(new Dimension(700, 500));
this.validate();
}