public FilePanel()

in taverna-external-tool-activity-ui/src/main/java/org/apache/taverna/activities/externaltool/views/FilePanel.java [50:122]


	public FilePanel(final ExternalToolConfigView view,
			final List<ExternalToolFileViewer> viewList,
			String fileHeader, String typeHeader, final String portPrefix,
			final String description, String addText) {
		super();
		this.view = view;
		this.setLayout(new BorderLayout());
		final JPanel fileEditPanel = new JPanel(new GridBagLayout());

		final GridBagConstraints fileConstraint = new GridBagConstraints();
		fileConstraint.insets = new Insets(5, 5, 5, 5);
		fileConstraint.anchor = GridBagConstraints.FIRST_LINE_START;
		fileConstraint.gridx = 0;
		fileConstraint.gridy = 0;
		fileConstraint.weightx = 0.1;
		fileConstraint.fill = GridBagConstraints.BOTH;
		
		final String[] elementLabels = new String[] {"Taverna port name",
				"Use port name for file",
				fileHeader,
				typeHeader
		};

		fileConstraint.gridx = 0;
		synchronized (viewList) {
			for (ExternalToolFileViewer outputView : viewList) {
				addFileViewer(viewList, this, fileEditPanel,
						outputView, elementLabels);
			}
		}
		JButton addFilePortButton = new DeselectingButton(addText,
				new AbstractAction() {
			public void actionPerformed(ActionEvent e) {

				int portNumber = 1;

				String name2 = portPrefix + portNumber++;
				boolean nameExists = true;
				while (nameExists == true) {
					nameExists = view.portNameExists(name2);
					if (nameExists) {
						name2 = portPrefix + portNumber++;
					}
				}

				ExternalToolFileViewer newViewer = new ExternalToolFileViewer(
						name2);
				synchronized (viewList) {
					viewList.add(newViewer);
					addFileViewer(viewList, FilePanel.this, fileEditPanel,
							newViewer, elementLabels);
					fileEditPanel.revalidate();
					fileEditPanel.repaint();
				}
			}

		});
		JTextArea descriptionText = new ReadOnlyTextArea(description);
		descriptionText.setEditable(false);
		descriptionText.setFocusable(false);
		descriptionText.setBorder(new EmptyBorder(5, 5, 10, 5));

		this.add(descriptionText, BorderLayout.NORTH);

		this.add(new JScrollPane(fileEditPanel), BorderLayout.CENTER);

		JPanel buttonPanel = new JPanel(new BorderLayout());

		buttonPanel.add(addFilePortButton, BorderLayout.EAST);

		this.add(buttonPanel, BorderLayout.SOUTH);
	
	}