public void actionPerformed()

in taverna-wsdl-activity-ui/src/main/java/org/apache/taverna/activities/wsdl/actions/AbstractAddXMLSplitterAction.java [87:133]


	public void actionPerformed(ActionEvent ev) {
		List<String> possibilities;
		Map<String, TypeDescriptor> typeDescriptors;
		try {
			typeDescriptors = getTypeDescriptors();
		} catch (UnknownOperationException ex) {
			logger.error("Can't find operation for activity "
					+ activity, ex);
			return;
		} catch (IOException | ParserConfigurationException | WSDLException | SAXException | JDOMException ex) {
			logger.error("Can't read definition for activity "
					+ activity, ex);
			return;
		}

		typeDescriptors = filterDescriptors(typeDescriptors);

		possibilities = new ArrayList<String>(typeDescriptors.keySet());
		if (possibilities.isEmpty()) {
			logger.warn("No type descriptors found for activity " + activity);
			return;
		}
		Collections.sort(possibilities);

		String portName = (String) JOptionPane.showInputDialog(owner,
				"Select the port to add the splitter to",
				"Add output XML splitter", JOptionPane.PLAIN_MESSAGE, null,
				possibilities.toArray(), possibilities.get(0));

		Workflow workflow = selectionManager.getSelectedWorkflow();
		Profile profile = selectionManager.getSelectedProfile();
		TypeDescriptor typeDescriptorForPort = typeDescriptors
				.get(portName);

		if (typeDescriptorForPort instanceof ArrayTypeDescriptor
				|| typeDescriptorForPort instanceof ComplexTypeDescriptor) {
			AddXMLSplitterEdit edit = new AddXMLSplitterEdit(workflow, profile,
					activity, typeDescriptorForPort, portName, isInput());
			try {
				editManager.doDataflowEdit(workflow.getParent(), edit);
			} catch (EditException ex) {
				logger.error("Could not perform edit to add " + portName, ex);
			}
		} else {
			logger.warn("Unknown typedescriptor for " + portName);
		}
	}