/* * (C) 2004 - Geotechnical Software Services * * This code is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This code is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this program; if not, write to the Free * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, * MA 02111-1307, USA. */ import java.awt.*; import javax.swing.*; import no.geosoft.cc.geometry.Geometry; import no.geosoft.cc.graphics.*; /** * G demo program. Demonstrates: * * <ul> * <li> The effect of using world coordinates * <li> Default zoom interaction * </ul> * * @author <a href="mailto:info@geosoft.no">GeoSoft</a> */ public class Demo1a extends JFrame { public Demo1a() { super ("G Graphics Library - Demo 1a"); setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); // Create the graphic canvas GWindow window = new GWindow(new Color (210, 235, 255)); getContentPane().add (window.getCanvas()); // Create scene with default viewport and world extent settings GScene scene = new GScene (window); scene.setWorldExtent (0.0, 0.0, 1.0, 1.0); // Create the graphics object and add to the scene GObject object = new HelloWorld(); scene.add (object); pack(); setSize (new Dimension (500, 500)); setVisible (true); window.startInteraction (new ZoomInteraction (scene)); } /** * Defines the geometry and presentation for the sample * graphic object. */ public class HelloWorld extends GObject { private GSegment star_; public HelloWorld() { star_ = new GSegment(); GStyle starStyle = new GStyle(); starStyle.setForegroundColor (new Color (255, 0, 0)); starStyle.setBackgroundColor (new Color (255, 255, 0)); starStyle.setLineWidth (3); setStyle (starStyle); addSegment (star_); GText text = new GText ("HelloWorld", GPosition.MIDDLE); GStyle textStyle = new GStyle(); textStyle.setForegroundColor (new Color (100, 100, 150)); textStyle.setBackgroundColor (null); textStyle.setFont (new Font ("Dialog", Font.BOLD, 48)); text.setStyle (textStyle); star_.setText (text); } /** * This method is called whenever the canvas needs to redraw this * object. For efficiency, prepare as much of the graphic object * up front (such as sub object, segment and style setup) and * set geometry only in this method. */ public void draw() { star_.setGeometryXy (Geometry.createStar (0.5, 0.5, 0.4, 0.2, 15)); } } public static void main (String[] args) { new Demo1a(); } }