View Javadoc

1   // Copyright 2005, FreeHEP.
2   package hep.wired.heprep.interaction;
3   
4   import java.awt.*;
5   import java.awt.event.*;
6   import java.awt.geom.*;
7   import javax.swing.*;
8   
9   import org.freehep.application.Application;
10  
11  import hep.wired.services.GraphicsPanel;
12  import hep.wired.services.RecordPlot;
13  import hep.wired.services.InteractionHandler;
14  import hep.wired.image.WiredBaseImage;
15  import hep.wired.interaction.DragToScale;
16  import hep.wired.interaction.DragRectangleToScale;
17  import hep.wired.interaction.DragAngledRectangleToScale;
18  import hep.wired.interaction.DragBallToRotate;
19  import hep.wired.interaction.DragToRotate;
20  import hep.wired.interaction.DragToTranslate;
21  
22  import hep.wired.heprep.plugin.WiredPlugin;
23  import hep.wired.heprep.graphicspanel.ControlPanel;
24  
25  /***
26   *
27   * @author Mark Donszelmann
28   * @version $Id: Interaction.java 2092 2005-07-22 19:05:19Z duns $
29   */
30  public class Interaction extends RoutingInteractionHandler {
31  
32      private static Interaction instance;
33      private InteractionPanel panel;
34      
35      private Interaction() {
36          super("Interaction");
37  
38          panel = new InteractionPanel();
39  
40          // Scaling        
41          InteractionHandler dragToScale = new DragToScale();
42          add(dragToScale, true);
43          panel.addInteraction(dragToScale, true);
44          
45          // FIXME, NPE when this is not called.
46          panel.setInteractionHandler(dragToScale);
47          
48          InteractionHandler dragRectangleToScale = new DragRectangleToScale();
49          add(dragRectangleToScale, false);
50          panel.addInteraction(dragRectangleToScale, false);
51    
52          InteractionHandler dragAngledRectangleToScale = new DragAngledRectangleToScale();
53          add(dragAngledRectangleToScale, false);
54          panel.addInteraction(dragAngledRectangleToScale, false);
55          
56          // Rotation
57          InteractionHandler dragBallToRotate = new DragBallToRotate();
58          add(dragBallToRotate, false);
59          panel.addInteraction(dragBallToRotate, false);
60          
61          InteractionHandler dragToRotate = new DragToRotate();
62          add(dragToRotate, false);
63          panel.addInteraction(dragToRotate, false);
64  
65          // Translation
66          InteractionHandler dragToTranslate = new DragToTranslate();
67          add(dragToTranslate, false);
68          panel.addInteraction(dragToTranslate, false);
69          
70          panel.addInteraction(null, false);        
71      }
72  
73      public static Interaction getInstance() {
74          if (instance == null) {
75              instance = new Interaction();
76          }
77          return instance;
78      }
79  
80      public ControlPanel getPanel() {
81          return panel;
82      }
83  
84      public Icon getIcon(int size) {
85          return WiredBaseImage.getIcon("Scale%w", size);
86      }    
87  
88      public String getDescription() {
89          return "General Interaction.";
90      }
91  
92      public String toString() {
93          return "Interaction";
94      }
95  }