20 import ca.uqac.lif.cep.Connector;
21 import ca.uqac.lif.cep.functions.ApplyFunction;
22 import ca.uqac.lif.cep.functions.Cumulate;
23 import ca.uqac.lif.cep.functions.CumulativeFunction;
24 import ca.uqac.lif.cep.functions.TurnInto;
25 import ca.uqac.lif.cep.mtnp.DrawPlot;
26 import ca.uqac.lif.cep.mtnp.UpdateTableStream;
27 import ca.uqac.lif.cep.tmf.Fork;
28 import ca.uqac.lif.cep.tmf.Pump;
29 import ca.uqac.lif.cep.tmf.QueueSource;
30 import ca.uqac.lif.cep.tmf.VariableStutter;
31 import ca.uqac.lif.cep.widgets.ToImageIcon;
32 import ca.uqac.lif.cep.widgets.WidgetSink;
33 import ca.uqac.lif.cep.util.Numbers;
34 import ca.uqac.lif.mtnp.plot.gral.Scatterplot;
35 import java.awt.FlowLayout;
36 import javax.swing.JFrame;
37 import javax.swing.JLabel;
38 import javax.swing.JPanel;
43 public static void main(String[] args)
45 QueueSource values =
new QueueSource();
46 values.setEvents(0, 10, -5, 0, -7, 0);
47 QueueSource numbers =
new QueueSource();
48 numbers.setEvents(5, 5, 3, 5, 5, 5);
50 VariableStutter vs =
new VariableStutter();
51 Connector.connect(values, 0, vs, 0);
52 Connector.connect(numbers, 0, vs, 1);
53 Fork fork =
new Fork(2);
54 Connector.connect(vs, fork);
55 TurnInto one =
new TurnInto(1);
56 Connector.connect(fork, 0, one, 0);
57 Cumulate sum_one =
new Cumulate(
new CumulativeFunction<Number>(Numbers.addition));
58 Connector.connect(one, sum_one);
59 Cumulate sum_values =
new Cumulate(
new CumulativeFunction<Number>(Numbers.addition));
60 Connector.connect(fork, 1, sum_values, 0);
61 UpdateTableStream uts =
new UpdateTableStream(
"T",
"V");
62 Connector.connect(sum_one, 0, uts, 0);
63 Connector.connect(sum_values, 0, uts, 1);
64 DrawPlot plot =
new DrawPlot(
new Scatterplot());
65 Connector.connect(uts, plot);
66 ApplyFunction to_icon =
new ApplyFunction(ToImageIcon.instance);
67 Connector.connect(plot, to_icon);
68 Pump pump =
new Pump();
69 Connector.connect(to_icon, pump);
72 JFrame frame =
new JFrame(
"My plot");
73 JPanel panel =
new JPanel(
new FlowLayout(FlowLayout.CENTER));
75 frame.setSize(800, 600);
76 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
77 JLabel label =
new JLabel();
79 WidgetSink sink =
new WidgetSink(label);
80 Connector.connect(pump, sink);
81 frame.setVisible(
true);