]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.g2d/src/org/simantics/g2d/example/chassis/WindowExample.java
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.g2d / src / org / simantics / g2d / example / chassis / WindowExample.java
1 /*******************************************************************************
2  * Copyright (c) 2007, 2010 Association for Decentralized Information Management
3  * in Industry THTH ry.
4  * All rights reserved. This program and the accompanying materials
5  * are made available under the terms of the Eclipse Public License v1.0
6  * which accompanies this distribution, and is available at
7  * http://www.eclipse.org/legal/epl-v10.html
8  *
9  * Contributors:
10  *     VTT Technical Research Centre of Finland - initial API and implementation
11  *******************************************************************************/
12 package org.simantics.g2d.example.chassis;
13
14 import java.awt.BorderLayout;
15 import java.awt.Dimension;
16 import java.awt.event.WindowAdapter;
17 import java.awt.event.WindowEvent;
18
19 import javax.swing.JFrame;
20
21 import org.simantics.g2d.canvas.impl.CanvasContext;
22 import org.simantics.g2d.chassis.AWTChassis;
23 import org.simantics.g2d.diagram.DiagramHints;
24 import org.simantics.g2d.diagram.IDiagram;
25 import org.simantics.g2d.example.TestCanvas;
26 import org.simantics.g2d.image.DefaultImages;
27 import org.simantics.g2d.routing.RouterFactory;
28 import org.simantics.utils.datastructures.hints.IHintContext;
29 import org.simantics.utils.threads.AWTThread;
30 import org.simantics.utils.threads.IThreadWorkQueue;
31
32 /**
33  * Run this example with VM args: -Dsun.java2d.opengl=true
34  * @author Toni Kalajainen
35  */
36 public class WindowExample {
37
38     public static void main(String[] args) {
39         System.out.println(DefaultImages.HAND);
40
41         // JFrame has double buffering enabled by default
42         JFrame frame = new JFrame("Hello World");
43         // Add a window listener for close button
44         frame.addWindowListener(new WindowAdapter() {
45             @Override
46             public void windowClosing(WindowEvent e) {
47                 System.exit(0);
48             }
49         });
50         // This is an empty content area in the frame
51         AWTChassis chassis = new AWTChassis();
52
53         chassis.setPreferredSize(new Dimension(480, 320));
54
55         // There is a background painter in canvas context (==it is opaque)
56         chassis.setOpaque(true);
57         frame.getContentPane().add(chassis, BorderLayout.CENTER);
58         frame.pack();
59
60         frame.setVisible(true);
61         chassis.requestFocus();
62
63         IThreadWorkQueue thread  = AWTThread.getThreadAccess();
64         CanvasContext    ctx     = TestCanvas.createDefaultCanvas(thread);
65         IHintContext     hintCtx = ctx.getDefaultHintContext();
66         IDiagram         diagram = TestCanvas.createAnchorTestDiagram();
67
68         hintCtx.setHint(DiagramHints.KEY_DIAGRAM, diagram);
69         diagram.setHint(DiagramHints.ROUTE_ALGORITHM, RouterFactory.create(true));
70         chassis.setCanvasContext(ctx);
71     }
72
73 }