Revision: 587
Author: allain.lalonde
Date: Mon Jul 27 13:48:11 2009
Log: Refactoring the ExampleRunner for clarity.
http://code.google.com/p/piccolo2d/source/detail?r=587

Modified:
   
/piccolo2d.java/trunk/examples/src/main/java/edu/umd/cs/piccolo/examples/ExampleRunner.java

=======================================
---  
/piccolo2d.java/trunk/examples/src/main/java/edu/umd/cs/piccolo/examples/ExampleRunner.java
      
Fri Jan 23 12:27:47 2009
+++  
/piccolo2d.java/trunk/examples/src/main/java/edu/umd/cs/piccolo/examples/ExampleRunner.java
      
Mon Jul 27 13:48:11 2009
@@ -37,6 +37,7 @@
  import javax.swing.JButton;
  import javax.swing.JCheckBox;
  import javax.swing.JFrame;
+import javax.swing.JOptionPane;
  import javax.swing.JPanel;

  import edu.umd.cs.piccolo.util.PDebug;
@@ -57,303 +58,63 @@

      public void createExampleButtons() {
          Container c = getContentPane();
-        Container p = new JPanel();
-
-        p = new JPanel(new GridLayout(0, 1));
-        c.add(BorderLayout.NORTH, p);
-
-        p.add(new JCheckBox(new AbstractAction("Print Frame Rates to  
Console") {
+        JPanel panel = new JPanel(new GridLayout(0, 1));
+        c.add(BorderLayout.NORTH, panel);
+
+        panel.add(new JCheckBox(new AbstractAction("Print Frame Rates to  
Console") {
              public void actionPerformed(ActionEvent e) {
                  PDebug.debugPrintFrameRate = !PDebug.debugPrintFrameRate;
              }
          }));

-        p.add(new JCheckBox(new AbstractAction("Show Region Managment") {
+        panel.add(new JCheckBox(new AbstractAction("Show Region  
Managment") {
              public void actionPerformed(ActionEvent e) {
                  PDebug.debugRegionManagement  
= !PDebug.debugRegionManagement;
              }
          }));

-        p.add(new JCheckBox(new AbstractAction("Show Full Bounds") {
+        panel.add(new JCheckBox(new AbstractAction("Show Full Bounds") {
              public void actionPerformed(ActionEvent e) {
                  PDebug.debugFullBounds = !PDebug.debugFullBounds;
              }
          }));

-        p = new JPanel(new GridLayout(0, 2));
-        c.add(BorderLayout.CENTER, p);
-
-        p.add(new JButton(new AbstractAction("ActivityExample") {
-            public void actionPerformed(ActionEvent e) {
-                PFrame example = new ActivityExample();
-                 
example.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
-            }
-        }));
-
-        p.add(new JButton(new AbstractAction("AngleNodeExample") {
-            public void actionPerformed(ActionEvent e) {
-                PFrame example = new AngleNodeExample();
-                 
example.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
-            }
-        }));
-
-        p.add(new JButton(new AbstractAction("BirdsEyeViewExample") {
-            public void actionPerformed(ActionEvent e) {
-                PFrame example = new BirdsEyeViewExample();
-                 
example.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
-            }
-        }));
-
-        p.add(new JButton(new AbstractAction("CameraExample") {
-            public void actionPerformed(ActionEvent e) {
-                PFrame example = new CameraExample();
-                 
example.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
-            }
-        }));
-
-        p.add(new JButton(new AbstractAction("CenterExample") {
-            public void actionPerformed(ActionEvent e) {
-                PFrame example = new CenterExample();
-                 
example.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
-            }
-        }));
-
-        p.add(new JButton(new AbstractAction("ChartLabelExample") {
-            public void actionPerformed(ActionEvent e) {
-                PFrame example = new ChartLabelExample();
-                 
example.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
-            }
-        }));
-
-        p.add(new JButton(new AbstractAction("ClipExample") {
-            public void actionPerformed(ActionEvent e) {
-                PFrame example = new ClipExample();
-                 
example.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
-            }
-        }));
-
-        p.add(new JButton(new AbstractAction("CompositeExample") {
-            public void actionPerformed(ActionEvent e) {
-                PFrame example = new CompositeExample();
-                 
example.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
-            }
-        }));
-
-        p.add(new JButton(new AbstractAction("DynamicExample") {
-            public void actionPerformed(ActionEvent e) {
-                PFrame example = new DynamicExample();
-                 
example.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
-            }
-        }));
-
-        p.add(new JButton(new AbstractAction("EventHandlerExample") {
-            public void actionPerformed(ActionEvent e) {
-                PFrame example = new EventHandlerExample();
-                 
example.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
-            }
-        }));
-
-        p.add(new JButton(new AbstractAction("FullScreenNodeExample") {
-            public void actionPerformed(ActionEvent e) {
-                PFrame example = new FullScreenNodeExample();
-                 
example.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
-            }
-        }));
-
-        p.add(new JButton(new AbstractAction("GraphEditorExample") {
-            public void actionPerformed(ActionEvent e) {
-                PFrame example = new GraphEditorExample();
-                 
example.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
-            }
-        }));
-        p.add(new JButton(new AbstractAction("GridExample") {
-            public void actionPerformed(ActionEvent e) {
-                PFrame example = new GridExample();
-                 
example.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
-            }
-        }));
-
-        p.add(new JButton(new AbstractAction("GroupExample") {
-            public void actionPerformed(ActionEvent e) {
-                PFrame example = new GroupExample();
-                 
example.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
-            }
-        }));
-
-        p.add(new JButton(new AbstractAction("HandleExample") {
-            public void actionPerformed(ActionEvent e) {
-                PFrame example = new HandleExample();
-                 
example.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
-            }
-        }));
-
-        p.add(new JButton(new AbstractAction("HierarchyZoomExample") {
-            public void actionPerformed(ActionEvent e) {
-                PFrame example = new HierarchyZoomExample();
-                 
example.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
-            }
-        }));
-
-        p.add(new JButton(new AbstractAction("KeyEventFocusExample") {
-            public void actionPerformed(ActionEvent e) {
-                PFrame example = new KeyEventFocusExample();
-                 
example.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
-            }
-        }));
-
-        p.add(new JButton(new AbstractAction("LayoutExample") {
-            public void actionPerformed(ActionEvent e) {
-                PFrame example = new LayoutExample();
-                 
example.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
-            }
-        }));
-
-        p.add(new JButton(new AbstractAction("LensExample") {
-            public void actionPerformed(ActionEvent e) {
-                PFrame example = new LensExample();
-                 
example.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
-            }
-        }));
-
-        p.add(new JButton(new AbstractAction("NavigationExample") {
-            public void actionPerformed(ActionEvent e) {
-                PFrame example = new NavigationExample();
-                 
example.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
-            }
-        }));
-
-        p.add(new JButton(new AbstractAction("NodeCacheExample") {
-            public void actionPerformed(ActionEvent e) {
-                PFrame example = new NodeCacheExample();
-                 
example.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
-            }
-        }));
-
-        p.add(new JButton(new AbstractAction("NodeEventExample") {
-            public void actionPerformed(ActionEvent e) {
-                PFrame example = new NodeEventExample();
-                 
example.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
-            }
-        }));
-
-        p.add(new JButton(new AbstractAction("NodeExample") {
-            public void actionPerformed(ActionEvent e) {
-                PFrame example = new NodeExample();
-                 
example.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
-            }
-        }));
-
-        p.add(new JButton(new AbstractAction("NodeLinkExample") {
-            public void actionPerformed(ActionEvent e) {
-                PFrame example = new NodeLinkExample();
-                 
example.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
-            }
-        }));
-
-        p.add(new JButton(new AbstractAction("PanToExample") {
-            public void actionPerformed(ActionEvent e) {
-                PFrame example = new PanToExample();
-                 
example.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
-            }
-        }));
-
-        p.add(new JButton(new AbstractAction("PathExample") {
-            public void actionPerformed(ActionEvent e) {
-                PFrame example = new PathExample();
-                 
example.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
-            }
-        }));
-
-        p.add(new JButton(new AbstractAction("PositionExample") {
-            public void actionPerformed(ActionEvent e) {
-                PFrame example = new PositionExample();
-                 
example.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
-            }
-        }));
-
-        p.add(new JButton(new  
AbstractAction("PositionPathActivityExample") {
-            public void actionPerformed(ActionEvent e) {
-                PFrame example = new PositionPathActivityExample();
-                 
example.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
-            }
-        }));
-
-        p.add(new JButton(new AbstractAction("PulseExample") {
-            public void actionPerformed(ActionEvent e) {
-                PFrame example = new PulseExample();
-                 
example.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
-            }
-        }));
-
-        p.add(new JButton(new AbstractAction("ScrollingExample") {
-            public void actionPerformed(ActionEvent e) {
-                PFrame example = new ScrollingExample();
-                 
example.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
-            }
-        }));
-
-        p.add(new JButton(new AbstractAction("SelectionExample") {
-            public void actionPerformed(ActionEvent e) {
-                PFrame example = new SelectionExample();
-                 
example.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
-            }
-        }));
-
-        p.add(new JButton(new AbstractAction("SquiggleExample") {
-            public void actionPerformed(ActionEvent e) {
-                PFrame example = new SquiggleExample();
-                 
example.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
-            }
-        }));
-
-        p.add(new JButton(new AbstractAction("StickyExample") {
-            public void actionPerformed(ActionEvent e) {
-                PFrame example = new StickyExample();
-                 
example.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
-            }
-        }));
-
-        p.add(new JButton(new AbstractAction("StickyHandleLayerExample") {
-            public void actionPerformed(ActionEvent e) {
-                PFrame example = new StickyHandleLayerExample();
-                 
example.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
-            }
-        }));
-
-        p.add(new JButton(new AbstractAction("StrokeExample") {
-            public void actionPerformed(ActionEvent e) {
-                PFrame example = new StrokeExample();
-                 
example.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
-            }
-        }));
-
-        p.add(new JButton(new AbstractAction("TextExample") {
-            public void actionPerformed(ActionEvent e) {
-                PFrame example = new TextExample();
-                 
example.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
-            }
-        }));
-
-        p.add(new JButton(new AbstractAction("Tooltip Example") {
-            public void actionPerformed(ActionEvent e) {
-                PFrame example = new TooltipExample();
-                 
example.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
-            }
-        }));
-
-        p.add(new JButton(new AbstractAction("TwoCanvasExample") {
-            public void actionPerformed(ActionEvent e) {
-                PFrame example = new TwoCanvasExample();
-                 
example.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
-            }
-        }));
-
-        p.add(new JButton(new AbstractAction("WaitForActivitiesExample") {
-            public void actionPerformed(ActionEvent e) {
-                PFrame example = new WaitForActivitiesExample();
-                 
example.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
-            }
-        }));
+        panel = new JPanel(new GridLayout(0, 2));
+        c.add(BorderLayout.CENTER, panel);
+
+        addExampleButtons(panel, new Class[] { ActivityExample.class,  
AngleNodeExample.class,
+                BirdsEyeViewExample.class, CameraExample.class,  
CenterExample.class, ChartLabelExample.class,
+                ClipExample.class, CompositeExample.class,  
DynamicExample.class, EventHandlerExample.class,
+                FullScreenNodeExample.class, GraphEditorExample.class,  
GraphEditorExample.class, GridExample.class,
+                GroupExample.class, HandleExample.class,  
HierarchyZoomExample.class, KeyEventFocusExample.class,
+                LayoutExample.class, LensExample.class,  
NavigationExample.class, NodeCacheExample.class,
+                NodeEventExample.class, NodeEventExample.class,  
NodeLinkExample.class, PanToExample.class,
+                PathExample.class, PositionExample.class,  
PositionPathActivityExample.class, PulseExample.class,
+                ScrollingExample.class, SelectionExample.class,  
SquiggleExample.class, StickyExample.class,
+                StickyHandleLayerExample.class, StrokeExample.class,  
TextExample.class, TooltipExample.class,
+                TwoCanvasExample.class, WaitForActivitiesExample.class });
+    }
+
+    private void addExampleButtons(JPanel panel, Class[] exampleClasses) {
+        for (int i = 0; i < exampleClasses.length; i++) {
+            panel.add(buildExampleButton(exampleClasses[i]));
+        }
+    }
+
+    private JButton buildExampleButton(final Class exampleClass) {
+        String fullClassName = exampleClass.getName();
+        String simpleClassName =  
fullClassName.substring(fullClassName.lastIndexOf('.') + 1);
+        return new JButton(new AbstractAction(simpleClassName) {
+            public void actionPerformed(ActionEvent event) {
+                try {
+                    PFrame example = (PFrame) exampleClass.newInstance();
+                     
example.setDefaultCloseOperation(PFrame.DISPOSE_ON_CLOSE);
+                }
+                catch (Exception e) {
+                    JOptionPane.showMessageDialog(ExampleRunner.this, "A  
problem was encountered running the example");
+                }
+            }
+        });
      }

      public static void main(String[] args) {

--~--~---------~--~----~------------~-------~--~----~
Piccolo2D Developers Group: http://groups.google.com/group/piccolo2d-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to