]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.trend/example/org/simantics/trend/DemoTrend.java
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.trend / example / org / simantics / trend / DemoTrend.java
index 97ef30209d133e8b4bf771b075ecded53b35a88e..b2b5f0b3c4ead396e0be9c18d7958ed2356a2b93 100644 (file)
-/*******************************************************************************\r
- * Copyright (c) 2007, 2011 Association for Decentralized Information Management in\r
- * Industry THTH ry.\r
- * All rights reserved. This program and the accompanying materials\r
- * are made available under the terms of the Eclipse Public License v1.0\r
- * which accompanies this distribution, and is available at\r
- * http://www.eclipse.org/legal/epl-v10.html\r
- *\r
- * Contributors:\r
- *     VTT Technical Research Centre of Finland - initial API and implementation\r
- *******************************************************************************/\r
-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
-import java.io.File;\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.impl.FileHistory;\r
-import org.simantics.trend.configuration.Scale;\r
-import org.simantics.trend.configuration.TrendItem;\r
-import org.simantics.trend.configuration.TrendSpec;\r
-import org.simantics.trend.configuration.YAxisMode;\r
-import org.simantics.trend.impl.Milestone;\r
-import org.simantics.trend.impl.MilestoneSpec;\r
-import org.simantics.trend.impl.TrendNode;\r
-import org.simantics.trend.impl.TrendParticipant;\r
-import org.simantics.utils.FileUtils;\r
-import org.simantics.utils.datastructures.hints.IHintContext;\r
-import org.simantics.utils.threads.AWTThread;\r
-import org.simantics.utils.threads.IThreadWorkQueue;\r
-\r
-public class DemoTrend {\r
-\r
-    public static void main(String[] args) throws Exception {\r
-        System.out.println(DefaultImages.HAND);\r
-\r
-        // Initialize file history\r
-        final File workarea = FileUtils.createTmpDir();\r
-        final TestData data = new TestData(workarea);\r
-        FileHistory fh = ((FileHistory)data.historyManager);\r
-        fh.asyncUsage = false;\r
-        // Memory history\r
-        //final TestData data = new TestData();\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.timeWindowLength = 180.0;\r
-//        trendSpec.viewProfile.timeWindow.timeWindowStart = 0.0;\r
-        trendSpec.viewProfile.timeWindow.timeWindowIncrement = 75.0;\r
-\r
-        // Alternative spec - Switch with Spacebarman button\r
-//        TrendSpec altSpec = new TrendSpec();\r
-//        altSpec.init();\r
-//        altSpec.viewProfile.showMilestones = true;\r
-//        altSpec.name = "Single Axis";\r
-//        altSpec.axisMode = YAxisMode.SingleAxis;\r
-//        altSpec.items.add( new TrendItem( 1, "Sine", data.subscriptionId,"Sine", new Scale.Auto(), TrendItem.Renderer.Analog, 0, 1 ) );\r
-//        altSpec.items.add( new TrendItem( 2, "Ramp", data.subscriptionId,"Ramp", new Scale.Auto(), TrendItem.Renderer.Binary ) );\r
-//        //altSpec.items.add( new TrendItem( "Random", data.subscriptionId,"Random", new Scale.FitAll(), TrendItem.Renderer.Analog, 0, 1, DrawMode.Deviation ) );             \r
-//        altSpec.viewProfile.profileName = "Profile";\r
-//        //altSpec.viewProfile.timeWindow.timeWindowLength = 30.0;\r
-//        //altSpec.viewProfile.timeWindow.timeWindowStart = 0.0;\r
-//        altSpec.viewProfile.timeWindow.timeWindowIncrement = 25.0;\r
-\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
-        \r
-\r
-        // This is an empty content area in the frame\r
-        final 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
-        final CanvasContext    ctx     = TrendInitializer.createDefaultCanvas(thread, data.historyManager, data.collector, data.solver, trendSpec);\r
-        TrendNode               node    = TrendInitializer.getTrendNode( ctx );\r
-        \r
-        \r
-        ctx.getAtMostOneItemOfClass(TrendParticipant.class).setHintAsync(TrendParticipant.KEY_TREND_DRAW_INTERVAL, 1000L);\r
-        \r
-        MilestoneSpec milestones = new MilestoneSpec();\r
-        milestones.init();\r
-        Milestone m1 = new Milestone("1", "1", "Event 1", 50);\r
-        Milestone m2 = new Milestone("2", "2", "Event 2", 60);\r
-        Milestone m3 = new Milestone("3", "3", "Event 3", 80);\r
-        Milestone m4 = new Milestone("4", "4", "Event 4", 90);\r
-        milestones.milestones.add( m1 );\r
-        milestones.milestones.add( m2 );\r
-        milestones.milestones.add( m3 );\r
-        milestones.milestones.add( m4 );\r
-        milestones.baseline = 2;\r
-        node.setMilestones( milestones );\r
-        \r
-        @SuppressWarnings("unused")\r
-        IHintContext     hintCtx = ctx.getDefaultHintContext();\r
-\r
-        thread.asyncExec(new Runnable() {\r
-            @Override\r
-            public void run() {\r
-                chassis.setCanvasContext(ctx);\r
-            }\r
-        });\r
-    }\r
-\r
-}\r
+/*******************************************************************************
+ * Copyright (c) 2007, 2011 Association for Decentralized Information Management in
+ * Industry THTH ry.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     VTT Technical Research Centre of Finland - initial API and implementation
+ *******************************************************************************/
+package org.simantics.trend;
+
+import java.awt.BorderLayout;
+import java.awt.Dimension;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+import java.io.File;
+
+import javax.swing.JFrame;
+
+import org.simantics.g2d.canvas.impl.CanvasContext;
+import org.simantics.g2d.chassis.AWTChassis;
+import org.simantics.g2d.image.DefaultImages;
+import org.simantics.history.impl.FileHistory;
+import org.simantics.trend.configuration.Scale;
+import org.simantics.trend.configuration.TrendItem;
+import org.simantics.trend.configuration.TrendSpec;
+import org.simantics.trend.configuration.YAxisMode;
+import org.simantics.trend.impl.Milestone;
+import org.simantics.trend.impl.MilestoneSpec;
+import org.simantics.trend.impl.TrendNode;
+import org.simantics.trend.impl.TrendParticipant;
+import org.simantics.utils.FileUtils;
+import org.simantics.utils.datastructures.hints.IHintContext;
+import org.simantics.utils.threads.AWTThread;
+import org.simantics.utils.threads.IThreadWorkQueue;
+
+public class DemoTrend {
+
+    public static void main(String[] args) throws Exception {
+        System.out.println(DefaultImages.HAND);
+
+        // Initialize file history
+        final File workarea = FileUtils.createTmpDir();
+        final TestData data = new TestData(workarea);
+        FileHistory fh = ((FileHistory)data.historyManager);
+        fh.asyncUsage = false;
+        // Memory history
+        //final TestData data = new TestData();
+
+        final TrendSpec trendSpec = new TrendSpec();
+        trendSpec.init();
+        trendSpec.viewProfile.showMilestones = true;
+        trendSpec.name = "Multiple Y-Axis DemoTrend";
+        trendSpec.axisMode = YAxisMode.MultiAxis;        
+
+        trendSpec.items.add( new TrendItem( 1, "Sine", data.subscriptionId, "Sine", new Scale.Manual( -1, 1), TrendItem.Renderer.Analog ) );
+        trendSpec.items.add( new TrendItem( 2, "Ramp", data.subscriptionId,"Ramp", new Scale.Manual(-100,100), TrendItem.Renderer.Binary ) );
+        trendSpec.items.add( new TrendItem( 3, "Random", data.subscriptionId, "Random", new Scale.Auto(), TrendItem.Renderer.Analog ) );
+        trendSpec.viewProfile.profileName = "Profile";
+//        trendSpec.viewProfile.timeWindow.timeWindowLength = 180.0;
+//        trendSpec.viewProfile.timeWindow.timeWindowStart = 0.0;
+        trendSpec.viewProfile.timeWindow.timeWindowIncrement = 75.0;
+
+        // Alternative spec - Switch with Spacebarman button
+//        TrendSpec altSpec = new TrendSpec();
+//        altSpec.init();
+//        altSpec.viewProfile.showMilestones = true;
+//        altSpec.name = "Single Axis";
+//        altSpec.axisMode = YAxisMode.SingleAxis;
+//        altSpec.items.add( new TrendItem( 1, "Sine", data.subscriptionId,"Sine", new Scale.Auto(), TrendItem.Renderer.Analog, 0, 1 ) );
+//        altSpec.items.add( new TrendItem( 2, "Ramp", data.subscriptionId,"Ramp", new Scale.Auto(), TrendItem.Renderer.Binary ) );
+//        //altSpec.items.add( new TrendItem( "Random", data.subscriptionId,"Random", new Scale.FitAll(), TrendItem.Renderer.Analog, 0, 1, DrawMode.Deviation ) );             
+//        altSpec.viewProfile.profileName = "Profile";
+//        //altSpec.viewProfile.timeWindow.timeWindowLength = 30.0;
+//        //altSpec.viewProfile.timeWindow.timeWindowStart = 0.0;
+//        altSpec.viewProfile.timeWindow.timeWindowIncrement = 25.0;
+
+
+        // JFrame has double buffering enabled by default
+        JFrame frame = new JFrame("Demo Trend");
+        // Add a window listener for close button
+        frame.addWindowListener(new WindowAdapter() {
+            @Override
+            public void windowClosing(WindowEvent e) {
+                data.dispose();
+                System.exit(0);
+            }
+        });
+
+        data.solver.start();
+        
+        
+
+        // This is an empty content area in the frame
+        final AWTChassis chassis = new AWTChassis();
+
+        chassis.setPreferredSize(new Dimension(480, 320));
+        
+        frame.getContentPane().add(chassis, BorderLayout.CENTER);
+        frame.pack();
+
+        frame.setVisible(true);
+        chassis.requestFocus();
+
+        IThreadWorkQueue thread  = AWTThread.getThreadAccess();
+
+        final CanvasContext    ctx     = TrendInitializer.createDefaultCanvas(thread, data.historyManager, data.collector, data.solver, trendSpec);
+        TrendNode               node    = TrendInitializer.getTrendNode( ctx );
+        
+        
+        ctx.getAtMostOneItemOfClass(TrendParticipant.class).setHintAsync(TrendParticipant.KEY_TREND_DRAW_INTERVAL, 1000L);
+        
+        MilestoneSpec milestones = new MilestoneSpec();
+        milestones.init();
+        Milestone m1 = new Milestone("1", "1", "Event 1", 50);
+        Milestone m2 = new Milestone("2", "2", "Event 2", 60);
+        Milestone m3 = new Milestone("3", "3", "Event 3", 80);
+        Milestone m4 = new Milestone("4", "4", "Event 4", 90);
+        milestones.milestones.add( m1 );
+        milestones.milestones.add( m2 );
+        milestones.milestones.add( m3 );
+        milestones.milestones.add( m4 );
+        milestones.baseline = 2;
+        node.setMilestones( milestones );
+        
+        @SuppressWarnings("unused")
+        IHintContext     hintCtx = ctx.getDefaultHintContext();
+
+        thread.asyncExec(new Runnable() {
+            @Override
+            public void run() {
+                chassis.setCanvasContext(ctx);
+            }
+        });
+    }
+
+}