package net.codjo.control.gui.plugin; import net.codjo.control.common.message.ControlJobRequest; import net.codjo.control.common.message.TransferJobRequest; import net.codjo.i18n.common.Language; import net.codjo.i18n.common.TranslationManager; import net.codjo.mad.client.plugin.MadConnectionPlugin; import net.codjo.mad.gui.base.GuiConfiguration; import net.codjo.mad.gui.framework.GuiContext; import net.codjo.mad.gui.i18n.AbstractInternationalizableGuiPlugin; import net.codjo.mad.gui.request.RequestToolBar; import net.codjo.workflow.common.schedule.WorkflowConfiguration; import net.codjo.workflow.gui.plugin.WorkflowGuiPlugin; import javax.swing.ImageIcon; public final class ControlGuiPlugin extends AbstractInternationalizableGuiPlugin { private final MadConnectionPlugin madConnectionPlugin; private final Class mainClass; private final ControlGuiPluginConfiguration configuration = new ControlGuiPluginConfiguration(); public ControlGuiPlugin(MadConnectionPlugin madConnectionPlugin, WorkflowGuiPlugin workflowGuiPlugin) { this.madConnectionPlugin = madConnectionPlugin; this.mainClass = ControlGuiPlugin.class; workflowGuiPlugin.getConfiguration() .setTaskManagerJobIcon(ControlJobRequest.CONTROL_REQUEST_TYPE, new ImageIcon(getClass().getResource("/images/job.control.png"))); workflowGuiPlugin.getConfiguration() .setTaskManagerJobIcon(TransferJobRequest.QUARANTINE_TRANSFER_TYPE, new ImageIcon(getClass().getResource( "/images/job.quarantine-transfer.png"))); } @Override protected void registerLanguageBundles(TranslationManager translationManager) { translationManager.addBundle("net.codjo.control.common.i18n", Language.FR); translationManager.addBundle("net.codjo.control.common.i18n", Language.EN); translationManager.addBundle("net.codjo.control.gui.i18n", Language.FR); translationManager.addBundle("net.codjo.control.gui.i18n", Language.EN); } @Override public void initGui(GuiConfiguration guiConfiguration) throws Exception { super.initGui(guiConfiguration); QuarantineManager quarantineManager = new QuarantineManager(mainClass.getResource(configuration.getConfigurationFilePath()), madConnectionPlugin.getUserId(), configuration.getQuarantineWorkflowConfiguration()); quarantineManager.addMenuTo(this, guiConfiguration, guiConfiguration.getGuiContext()); } public ControlGuiPluginConfiguration getConfiguration() { return configuration; } public class ControlGuiPluginConfiguration { private String configurationFilePath = "/conf/quarantine.xml"; private WorkflowConfiguration quarantineWorkflowConfiguration = new WorkflowConfiguration(); public String getConfigurationFilePath() { return configurationFilePath; } public void setConfigurationFilePath(String configurationFilePath) { this.configurationFilePath = configurationFilePath; } public WorkflowConfiguration getQuarantineWorkflowConfiguration() { return quarantineWorkflowConfiguration; } } public static interface QuarantineToolbarCustomizer { public void customize(GuiContext ctxt, RequestToolBar requestToolBar); } }