/* * codjo.net * * Common Apache License 2.0 */ package net.codjo.control.gui.plugin; import net.codjo.agent.UserId; import net.codjo.control.gui.data.QuarantineGuiData; import net.codjo.control.gui.data.QuarantineGuiDataList; import net.codjo.mad.gui.base.GuiConfiguration; import net.codjo.mad.gui.framework.GuiContext; import net.codjo.workflow.common.schedule.WorkflowConfiguration; import net.codjo.xml.XmlException; import net.codjo.xml.easyxml.EasyXMLMapper; import java.io.IOException; import java.net.URL; /** * */ class QuarantineManager { private QuarantineGuiDataList list; private final UserId userId; QuarantineManager(URL quarantineFile, UserId userId) throws IOException, XmlException { this(quarantineFile, userId, new WorkflowConfiguration()); } QuarantineManager(URL quarantineFile, UserId userId, WorkflowConfiguration workflowConfiguration) throws IOException, XmlException { URL rulesFile = QuarantineManager.class.getResource("QuarantineGuiDataRules.xml"); EasyXMLMapper easyXMLMapper = new EasyXMLMapper(quarantineFile, rulesFile); list = (QuarantineGuiDataList)easyXMLMapper.load(); for (QuarantineGuiData data : getList().getDataList()) { data.setWorkflowConfiguration(workflowConfiguration); } list.compileDataList(); this.userId = userId; } public QuarantineGuiDataList getList() { return list; } public void addMenuTo(ControlGuiPlugin guiPlugin, GuiConfiguration configuration, GuiContext actionCtxt) { for (QuarantineGuiData data : getList().getDataList()) { DefaultQuarantineAction action = new DefaultQuarantineAction(actionCtxt, data, userId); configuration.registerAction(guiPlugin, data.getName(), action); } } }