package com.opendoorlogistics.studio.scripts.editor.adapters; import java.awt.Component; import java.awt.Dimension; import java.util.List; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; import com.opendoorlogistics.core.scripts.elements.UserFormula; import com.opendoorlogistics.core.utils.ui.OkCancelDialog; import com.opendoorlogistics.utils.ui.ListPanel; public class UserFormulaEditor { public static JPanel createUserFormulaListPanel(final List<UserFormula> formula) { return new ListPanel<UserFormula>(formula, "user formula") { @Override protected UserFormula createNewItem() { return editItem(new UserFormula("funcname() = X")); } @Override protected UserFormula editItem(final UserFormula item) { final JTextArea textArea = new JTextArea(item.getValue()); textArea.setEditable(true); textArea.setLineWrap(true); OkCancelDialog dlg = new OkCancelDialog() { @Override protected Component createMainComponent(boolean inWindowsBuilder) { return new JScrollPane(textArea); } }; dlg.setMinimumSize(new Dimension(800, 400)); dlg.setLocationRelativeTo(this); dlg.setTitle("Enter formula text"); if (dlg.showModal() == OkCancelDialog.OK_OPTION) { item.setValue(textArea.getText()); return item; } return null; } }; } }