package com.github.signed.integration.camel.gui.swing; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JPanel; import javax.swing.SwingWorker; import com.github.signed.integration.camel.TemplateTrigger; import com.github.signed.integration.camel.gui.UserCommand; public class TemplateTriggerSwing implements TemplateTrigger { private final JPanel panel = new JPanel(); private final JButton trigger; public TemplateTriggerSwing(String text) { trigger = new JButton(text); panel.add(trigger); } @Override public void onTrigger(final UserCommand command) { trigger.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { new SwingWorker<Void, Void>() { @Override protected Void doInBackground() throws Exception { command.given(); return null; } }.execute(); } }); } public void addTo(JPanel parent) { parent.add(panel); } }