package edu.harvard.wcfia.yoshikoder.ui; import java.util.regex.Pattern; import edu.harvard.wcfia.yoshikoder.Yoshikoder; import edu.harvard.wcfia.yoshikoder.dictionary.CategoryNode; import edu.harvard.wcfia.yoshikoder.dictionary.PatternNode; import edu.harvard.wcfia.yoshikoder.dictionary.PatternNodeImpl; import edu.harvard.wcfia.yoshikoder.util.Messages; public class EditPatternPanel extends NewPatternPanel { protected PatternNode nodeToEdit; public EditPatternPanel(Yoshikoder yk, CategoryNode parentnode, PatternNode node) { super(yk, parentnode); nodeToEdit = node; // adjust UI name.setText(nodeToEdit.getName()); if (nodeToEdit.getScore() != null) score.setText(nodeToEdit.getScore().toString()); } public void commit() throws CommitException { // wrap all exceptions try { if (name.getText() == null || name.getText().length()==0){ throw new Exception(Messages.getString("noEntryName")); } Pattern p = yoshikoder.getDictionary().getPatternEngine() .makeRegexp(name.getText()); Double d = getScore(); PatternNode node = new PatternNodeImpl(name.getText(), d, p); if (!node.equals(nodeToEdit)){ yoshikoder.replaceNode(nodeToEdit, node); yoshikoder.setSelectedNode(node); yoshikoder.setUnsavedChanges(true); } } catch (Exception ex){ throw new CommitException(ex); } } }