package nl.fontys.sofa.limo.view.node.root;
import java.io.IOException;
import javax.swing.JOptionPane;
import nl.fontys.sofa.limo.api.exception.ServiceNotFoundException;
import nl.fontys.sofa.limo.api.service.provider.ProcedureCategoryService;
import nl.fontys.sofa.limo.domain.component.procedure.ProcedureCategory;
import nl.fontys.sofa.limo.view.custom.panel.NameDescriptionDialogInputPanel;
import nl.fontys.sofa.limo.view.util.LIMOResourceBundle;
import org.openide.nodes.Children;
import org.openide.util.Lookup;
import org.openide.util.datatransfer.NewType;
/**
* Root node for ProcedureCategory.
*
* @author Sebastiaan Heijmann
*/
public class ProcedureCategoryRootNode extends AbstractRootNode {
private final ProcedureCategoryService service;
/**
* Constructor creates a new ProcedureCategoryRootNode.
*
* @param children the children of the rootnode.
* @throws ServiceNotFoundException
*/
public ProcedureCategoryRootNode(Children children) throws ServiceNotFoundException {
super(children);
service = Lookup.getDefault().lookup(ProcedureCategoryService.class);
}
@Override
Class getBeanClass() {
return ProcedureCategory.class;
}
@Override
Class getServiceClass() {
return ProcedureCategoryService.class;
}
@Override
public NewType[] getNewTypes() {
return new NewType[]{new NewType() {
@Override
public String getName() {
return LIMOResourceBundle.getString("PROCEDURE_CATEGORY");
}
@Override
public void create() throws IOException {
NameDescriptionDialogInputPanel inputPane = new NameDescriptionDialogInputPanel();
int result = JOptionPane.showConfirmDialog(null, inputPane, LIMOResourceBundle.getString("ADD_PROCEDURE_CATEGORY"), JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE, null);
String name = inputPane.getNameFieldValue();
String description = inputPane.getDescriptionFieldValue();
if (result == JOptionPane.OK_OPTION && !name.isEmpty()) {
ProcedureCategory pc = new ProcedureCategory();
pc.setName(name);
pc.setDescription(description);
service.insert(pc);
}
}
}};
}
}