]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.trend/test/org/simantics/trend/TestSetTrendConfig.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.trend / test / org / simantics / trend / TestSetTrendConfig.java
diff --git a/bundles/org.simantics.trend/test/org/simantics/trend/TestSetTrendConfig.java b/bundles/org.simantics.trend/test/org/simantics/trend/TestSetTrendConfig.java
new file mode 100644 (file)
index 0000000..23339f8
--- /dev/null
@@ -0,0 +1,104 @@
+package org.simantics.trend;\r
+\r
+import java.awt.BorderLayout;\r
+import java.awt.Dimension;\r
+import java.awt.event.WindowAdapter;\r
+import java.awt.event.WindowEvent;\r
+\r
+import javax.swing.JFrame;\r
+\r
+import org.simantics.g2d.canvas.impl.CanvasContext;\r
+import org.simantics.g2d.chassis.AWTChassis;\r
+import org.simantics.g2d.image.DefaultImages;\r
+import org.simantics.history.HistoryException;\r
+import org.simantics.history.HistoryManager;\r
+import org.simantics.history.util.subscription.SubscriptionItem;\r
+import org.simantics.trend.configuration.Scale;\r
+import org.simantics.trend.configuration.TrendItem;\r
+import org.simantics.trend.configuration.TrendSamplingFormats;\r
+import org.simantics.trend.configuration.TrendSpec;\r
+import org.simantics.trend.configuration.YAxisMode;\r
+import org.simantics.trend.impl.TrendNode;\r
+import org.simantics.trend.impl.TrendParticipant;\r
+import org.simantics.utils.datastructures.hints.IHintContext;\r
+import org.simantics.utils.threads.AWTThread;\r
+import org.simantics.utils.threads.IThreadWorkQueue;\r
+\r
+/**\r
+ * In thist\r
+ *\r
+ * @author toni.kalajainen@semantum.fi\r
+ */\r
+public class TestSetTrendConfig {\r
+       \r
+    public static void main(String[] args) throws Exception {\r
+        System.out.println(DefaultImages.HAND);\r
+        final TestData data = new TestData();\r
+        addSomeHistoryItems( data.historyManager );\r
+\r
+        final TrendSpec trendSpec = new TrendSpec();\r
+        trendSpec.init();\r
+        trendSpec.viewProfile.showMilestones = true;\r
+        trendSpec.name = "Multiple Y-Axis DemoTrend";\r
+        trendSpec.axisMode = YAxisMode.MultiAxis;        \r
+\r
+        trendSpec.items.add( new TrendItem( 1, "Sine", data.subscriptionId, "Sine", new Scale.Manual( -1, 1), TrendItem.Renderer.Analog ) );\r
+        trendSpec.items.add( new TrendItem( 2, "Ramp", data.subscriptionId,"Ramp", new Scale.Manual(-100,100), TrendItem.Renderer.Binary ) );\r
+        trendSpec.items.add( new TrendItem( 3, "Random", data.subscriptionId, "Random", new Scale.Auto(), TrendItem.Renderer.Analog ) );\r
+        trendSpec.viewProfile.profileName = "Profile";\r
+        trendSpec.viewProfile.timeWindow.timeWindowIncrement = 75.0;\r
+\r
+        // JFrame has double buffering enabled by default\r
+        JFrame frame = new JFrame("Demo Trend");\r
+        // Add a window listener for close button\r
+        frame.addWindowListener(new WindowAdapter() {\r
+            @Override\r
+            public void windowClosing(WindowEvent e) {\r
+                data.dispose();\r
+                System.exit(0);\r
+            }\r
+        });\r
+\r
+        data.solver.start();\r
+        \r
+        // This is an empty content area in the frame\r
+        AWTChassis chassis = new AWTChassis();\r
+\r
+        chassis.setPreferredSize(new Dimension(480, 320));\r
+        \r
+        frame.getContentPane().add(chassis, BorderLayout.CENTER);\r
+        frame.pack();\r
+\r
+        frame.setVisible(true);\r
+        chassis.requestFocus();\r
+\r
+        IThreadWorkQueue thread  = AWTThread.getThreadAccess();\r
+\r
+        long startTime = System.currentTimeMillis();\r
+        CanvasContext    ctx     = TrendInitializer.createDefaultCanvas(thread, data.historyManager, data.collector, data.solver, trendSpec);\r
+        @SuppressWarnings("unused")\r
+        TrendNode node = TrendInitializer.getTrendNode( ctx );\r
+        long endTime = System.currentTimeMillis();\r
+        long elapsedTime = endTime - startTime;\r
+        System.out.println( elapsedTime );\r
+        \r
+        ctx.getAtMostOneItemOfClass(TrendParticipant.class).setHintAsync(TrendParticipant.KEY_TREND_DRAW_INTERVAL, 1000L);\r
+                \r
+        @SuppressWarnings("unused")\r
+        IHintContext     hintCtx = ctx.getDefaultHintContext();\r
+\r
+        chassis.setCanvasContext(ctx);\r
+    }\r
+\r
+       static void addSomeHistoryItems(HistoryManager history) throws HistoryException {\r
+               String subscriptionId = "abc";\r
+               for (int i=0; i<2000; i++) {\r
+                   SubscriptionItem[] hi = null;\r
+                       String id = "id"+i;\r
+                       hi = SubscriptionItem.createItems( id, subscriptionId, TrendSamplingFormats.createAnalogSamplingFormats(0, 0, "") );\r
+                       history.create(hi);\r
+               }\r
+       }\r
+    \r
+    \r
+}\r