package de.onyxbits.dummydroid; import java.awt.BorderLayout; import java.util.Arrays; import java.util.List; import javax.swing.BorderFactory; import javax.swing.JScrollPane; import javax.swing.JTextArea; /** * One per line string lists. * * @author patrick * */ public abstract class ListForm extends AbstractForm { /** * */ private static final long serialVersionUID = 1L; private JTextArea list; public ListForm(NavigateAction forwardAction, NavigateAction backwardAction) { super(forwardAction, backwardAction); list = new JTextArea(); list.setBorder(BorderFactory.createEmptyBorder(4,4,4,4)); setLayout(new BorderLayout()); add(new JScrollPane(list),BorderLayout.CENTER); } protected abstract List<String> getItems(); protected List<String> getContent() { return Arrays.asList(list.getText().split("\n")); } @Override public void edit(FormData formData) { super.edit(formData); StringBuilder sb = new StringBuilder(); for (String s : getItems()) { sb.append(s); sb.append("\n"); } list.setText(sb.toString()); list.setCaretPosition(0); } }