2 //Title: OpenCASCADE Samples
4 //Copyright: Copyright (c) 1999
5 //Author: User Interface Group (Nizhny Novgorod)
6 //Company: Matra Datavision
11 import java.awt.event.*;
14 import jcas.Standard_CString;
15 import CASCADESamplesJni.*;
16 import SampleAISBasicJni.*;
19 public class SampleAISBasicPanel extends SamplePanel
20 implements ActionListener,
24 //-----------------------------------------------------------//
26 //-----------------------------------------------------------//
27 static protected ResourceBundle resGui =
28 ResourceBundle.getBundle("SampleAISBasic");
30 static private ImageIcon imgCircle = new ImageIcon(resGui.getString("Icon-Circle"));
31 static private ImageIcon imgLine = new ImageIcon(resGui.getString("Icon-Line"));
32 static private ImageIcon imgSphere = new ImageIcon(resGui.getString("Icon-Sphere"));
33 static private ImageIcon imgCylinder = new ImageIcon(resGui.getString("Icon-Cylinder"));
35 private HTMLFrame myHtmlFrame = null;
37 //-----------------------------------------------------------//
39 //-----------------------------------------------------------//
40 private ViewPanel myView3d;
42 private static V3d_Viewer myViewer3d = null;
44 private static AIS_InteractiveContext myAISContext = null;
46 private int startX = 0, startY = 0;
47 private boolean Dragged = false;
50 //-----------------------------------------------------------//
52 //-----------------------------------------------------------//
53 public static V3d_Viewer getViewer3d()
58 public static AIS_InteractiveContext getAISContext()
64 //=======================================================================//
66 //=======================================================================//
67 public SampleAISBasicPanel()
70 //------------------------------------------
71 myViewer3d.SetDefaultLights();
72 myViewer3d.SetLightOn();
74 if (myAISContext == null)
75 myAISContext = new AIS_InteractiveContext(myViewer3d);
77 SampleAISBasicPackage.DisplayTrihedron(myAISContext);
80 //-----------------------------------------------------------------------//
81 public JPanel createViewPanel()
83 JPanel mainPanel = new JPanel();
84 mainPanel.setLayout(new GridBagLayout());
85 mainPanel.setBorder(BorderFactory.createEmptyBorder(0, 5, 5, 0));
87 // Set the local system units
88 //------------------------------------------
89 UnitsAPI.SetLocalSystem(UnitsAPI_SystemUnits.UnitsAPI_MDTV);
93 //------------------------------------------
94 myViewer3d = SampleAISBasicPackage.CreateViewer("AISBasic");
96 myView3d = new ViewPanel() {
97 public ViewCanvas createViewPort() {
98 return new CASCADEView3d(SampleAISBasicPanel.getViewer3d()) {
99 public void setWindow3d(V3d_View view, int hiwin, int lowin) {
100 SampleAISBasicPackage.SetWindow(view, hiwin, lowin);
106 myView3d.addMouseListener(this);
107 myView3d.addMouseMotionListener(this);
111 //------------------------------------------
112 mainPanel.add(myView3d, new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0,
113 GridBagConstraints.CENTER, GridBagConstraints.BOTH,
114 new Insets(0, 0, 0, 0), 0, 0));
119 //-----------------------------------------------------------------------//
120 public Component createToolbar()
122 JToolBar tools = (JToolBar) super.createToolbar();
124 Insets margin = new Insets(1, 1, 1, 1);
127 button = new HeavyButton(imgCircle);
128 button.setToolTipText(resGui.getString("Help-Circle"));
129 button.setActionCommand("Circle");
130 button.addActionListener(this);
131 button.setMargin(margin);
134 button = new HeavyButton(imgLine);
135 button.setToolTipText(resGui.getString("Help-Line"));
136 button.setActionCommand("Line");
137 button.addActionListener(this);
138 button.setMargin(margin);
141 button = new HeavyButton(imgSphere);
142 button.setToolTipText(resGui.getString("Help-Sphere"));
143 button.setActionCommand("Sphere");
144 button.addActionListener(this);
145 button.setMargin(margin);
148 button = new HeavyButton(imgCylinder);
149 button.setToolTipText(resGui.getString("Help-Cylinder"));
150 button.setActionCommand("Cylinder");
151 button.addActionListener(this);
152 button.setMargin(margin);
159 //=======================================================================//
161 //=======================================================================//
162 public void onCircle()
164 TCollection_AsciiString message = new TCollection_AsciiString();
165 SampleAISBasicPackage.DisplayCircle(myAISContext, message);
167 traceMessage(message.ToCString().GetValue(), resGui.getString("Dlg-Circle"));
170 //=======================================================================//
173 TCollection_AsciiString message = new TCollection_AsciiString();
174 SampleAISBasicPackage.DisplayLine(myAISContext, message);
176 traceMessage(message.ToCString().GetValue(), resGui.getString("Dlg-Line"));
179 //=======================================================================//
180 public void onSphere()
182 TCollection_AsciiString message = new TCollection_AsciiString();
183 SampleAISBasicPackage.DisplaySphere(myAISContext, message);
185 traceMessage(message.ToCString().GetValue(), resGui.getString("Dlg-Sphere"));
188 //=======================================================================//
189 public void onCylinder()
191 TCollection_AsciiString message = new TCollection_AsciiString();
192 SampleAISBasicPackage.DisplayCylinder(myAISContext, message);
194 traceMessage(message.ToCString().GetValue(), resGui.getString("Dlg-Cylinder"));
197 //=======================================================================//
198 // ActionListener interface
199 //=======================================================================//
200 public void actionPerformed(ActionEvent e)
202 String command = e.getActionCommand();
204 if (command.equals("Circle")) onCircle();
205 else if (command.equals("Line")) onLine();
206 else if (command.equals("Sphere")) onSphere();
207 else if (command.equals("Cylinder")) onCylinder();
210 //=======================================================================//
211 // MouseListener interface
212 //=======================================================================//
213 public void mouseClicked(MouseEvent e)
217 public void mousePressed(MouseEvent e)
219 if (SwingUtilities.isLeftMouseButton(e))
223 Object src = e.getSource();
227 V3d_View view3d = ((CASCADEView3d) myView3d.getViewPort()).getView();
229 myAISContext.MoveTo(startX, startY, view3d);
232 else if (SwingUtilities.isRightMouseButton(e))
234 if (e.getSource() == myView3d)
236 PopupMenu defPopup = myView3d.getDefaultPopup();
237 myView3d.add(defPopup);
238 defPopup.show(myView3d, e.getX(), e.getY() + 30);
243 public void mouseReleased(MouseEvent e)
245 if (SwingUtilities.isLeftMouseButton(e))
247 Object src = e.getSource();
253 V3d_View view3d = ((CASCADEView3d) myView3d.getViewPort()).getView();
257 myAISContext.ShiftSelect(startX, startY, e.getX(), e.getY(), view3d, true);
259 myAISContext.Select(startX, startY, e.getX(), e.getY(), view3d, true);
268 myAISContext.ShiftSelect(true);
270 myAISContext.Select(true);
277 public void mouseEntered(MouseEvent e)
281 public void mouseExited(MouseEvent e)
285 //=======================================================================//
286 // MouseMotionListener interface
287 //=======================================================================//
288 public void mouseDragged(MouseEvent e)
290 if (SwingUtilities.isLeftMouseButton(e) &&
291 e.getSource() == myView3d)
295 public void mouseMoved(MouseEvent e)
297 Object src = e.getSource();
301 V3d_View view3d = ((CASCADEView3d) myView3d.getViewPort()).getView();
302 if (myAISContext != null && view3d != null)
303 myAISContext.MoveTo(e.getX(), e.getY(), view3d);