public FormulaTools(String name, String prefix, String[] formula,
			boolean numChangeable, List<Parameter> params,
			List<Parameter> sysParams) {
		setLayout(new BorderLayout());
		setBorder(new TitledBorder(name));
		this.params = params;
		this.sysParams = sysParams;
		if (formula == null) {
			formula = new String[] { "0" };
		}
		if (numChangeable) {
			numSpinner = new IntSpinner(this, formula.length, 1, 10, 1);
		} else {
			numField = new JTextField("" + formula.length);
			numField.setEditable(false);
		}
		area.setEditable(false);
		area.addMouseListener(ml);
		editBtn.addActionListener(this);

		JPanel cp = new JPanel();
		cp.add(new JLabel("Number of " + name + ": "));
		if (numChangeable)
			cp.add(numSpinner);
		else
			cp.add(numField);
		cp.add(editBtn);

		add(new JScrollPane(area));
		add(cp, BorderLayout.NORTH);

		this.formula = formula;
		this.prefix = prefix;
		this.name = name;
		display();
	}