package edu.harvard.wcfia.yoshikoder.ui; import edu.harvard.wcfia.yoshikoder.Yoshikoder; import edu.harvard.wcfia.yoshikoder.dictionary.CategoryNode; import edu.harvard.wcfia.yoshikoder.dictionary.CategoryNodeImpl; import edu.harvard.wcfia.yoshikoder.util.Messages; public class EditCategoryPanel extends NewCategoryPanel { protected CategoryNode nodeToEdit; public EditCategoryPanel(Yoshikoder yk, CategoryNode parentnode, CategoryNode node) { super(yk, parentnode); nodeToEdit = node; // adjust UI name.setText(nodeToEdit.getName()); description.setText(nodeToEdit.getDescription()); 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")); } String desc = description.getText(); Double d = getScore(); CategoryNode node = new CategoryNodeImpl(name.getText(), d, desc); if (!nodeToEdit.equals(node)){ yoshikoder.replaceNode(nodeToEdit, node); yoshikoder.setSelectedNode(node); yoshikoder.setUnsavedChanges(true); } } catch (Exception ex){ throw new CommitException(ex); } } }