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 SamplesTopologyJni.*;
19 public class SampleTopologyPrimitivesPanel extends SamplePanel
20 implements ActionListener,
24 //-----------------------------------------------------------//
26 //-----------------------------------------------------------//
27 static protected ResourceBundle resGui =
28 ResourceBundle.getBundle("SampleTopologyPrimitives");
30 static protected ImageIcon imgBox = new ImageIcon(resGui.getString("Icon-Box"));
31 static protected ImageIcon imgCylinder = new ImageIcon(resGui.getString("Icon-Cylinder"));
32 static protected ImageIcon imgCone = new ImageIcon(resGui.getString("Icon-Cone"));
33 static protected ImageIcon imgSphere = new ImageIcon(resGui.getString("Icon-Sphere"));
34 static protected ImageIcon imgTorus = new ImageIcon(resGui.getString("Icon-Torus"));
35 static protected ImageIcon imgWedge = new ImageIcon(resGui.getString("Icon-Wedge"));
36 static protected ImageIcon imgPrism = new ImageIcon(resGui.getString("Icon-Prism"));
37 static protected ImageIcon imgRevol = new ImageIcon(resGui.getString("Icon-Revol"));
38 static protected ImageIcon imgPipe = new ImageIcon(resGui.getString("Icon-Pipe"));
39 static protected ImageIcon imgThru = new ImageIcon(resGui.getString("Icon-Thru"));
40 static protected ImageIcon imgEvolved = new ImageIcon(resGui.getString("Icon-Evolved"));
41 static protected ImageIcon imgDraft = new ImageIcon(resGui.getString("Icon-Draft"));
44 //-----------------------------------------------------------//
46 //-----------------------------------------------------------//
47 private ViewPanel myView3d;
49 private static V3d_Viewer myViewer3d = null;
51 private static AIS_InteractiveContext myAISContext = null;
53 private int startX = 0, startY = 0;
54 private boolean Dragged = false;
57 //-----------------------------------------------------------//
59 //-----------------------------------------------------------//
60 public static V3d_Viewer getViewer3d()
65 public static AIS_InteractiveContext getAISContext()
71 //=======================================================================//
73 //=======================================================================//
74 public SampleTopologyPrimitivesPanel()
77 //------------------------------------------
78 myViewer3d.SetDefaultLights();
79 myViewer3d.SetLightOn();
81 if (myAISContext == null)
83 myAISContext = new AIS_InteractiveContext(myViewer3d);
84 myAISContext.SetDisplayMode(AIS_DisplayMode.AIS_Shaded, false);
88 //-----------------------------------------------------------------------//
89 public JPanel createViewPanel()
91 JPanel mainPanel = new JPanel();
92 mainPanel.setLayout(new GridBagLayout());
93 mainPanel.setBorder(BorderFactory.createEmptyBorder(0, 5, 5, 0));
96 //------------------------------------------
97 myViewer3d = SamplesTopologyPackage.CreateViewer("TopologyPrimitives");
99 myView3d = new ViewPanel() {
100 public ViewCanvas createViewPort()
102 return new CASCADEView3d(SampleTopologyPrimitivesPanel.getViewer3d()) {
103 public void setWindow3d(V3d_View view, int hiwin, int lowin) {
104 SamplesTopologyPackage.SetWindow(view, hiwin, lowin);
110 myView3d.addMouseListener(this);
111 myView3d.addMouseMotionListener(this);
115 //------------------------------------------
116 mainPanel.add(myView3d, new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0,
117 GridBagConstraints.CENTER, GridBagConstraints.BOTH,
118 new Insets(0, 0, 0, 0), 0, 0));
123 //-----------------------------------------------------------------------//
124 public Component createToolbar()
126 JToolBar tools = (JToolBar) super.createToolbar();
128 ButtonGroup group = new ButtonGroup();
129 Insets margin = new Insets(1, 1, 1, 1);
130 JToggleButton button;
132 button = new HeavyToggleButton(imgBox, false);
133 button.setToolTipText(resGui.getString("TT-Box"));
134 button.setActionCommand("Box");
135 button.addActionListener(this);
136 button.setMargin(margin);
140 button = new HeavyToggleButton(imgCylinder, false);
141 button.setToolTipText(resGui.getString("TT-Cylinder"));
142 button.setActionCommand("Cylinder");
143 button.addActionListener(this);
144 button.setMargin(margin);
148 button = new HeavyToggleButton(imgCone, false);
149 button.setToolTipText(resGui.getString("TT-Cone"));
150 button.setActionCommand("Cone");
151 button.addActionListener(this);
152 button.setMargin(margin);
156 button = new HeavyToggleButton(imgSphere, false);
157 button.setToolTipText(resGui.getString("TT-Sphere"));
158 button.setActionCommand("Sphere");
159 button.addActionListener(this);
160 button.setMargin(margin);
164 button = new HeavyToggleButton(imgTorus, false);
165 button.setToolTipText(resGui.getString("TT-Torus"));
166 button.setActionCommand("Torus");
167 button.addActionListener(this);
168 button.setMargin(margin);
172 button = new HeavyToggleButton(imgWedge, false);
173 button.setToolTipText(resGui.getString("TT-Wedge"));
174 button.setActionCommand("Wedge");
175 button.addActionListener(this);
176 button.setMargin(margin);
180 tools.addSeparator();;
182 button = new HeavyToggleButton(imgPrism, false);
183 button.setToolTipText(resGui.getString("TT-Prism"));
184 button.setActionCommand("Prism");
185 button.addActionListener(this);
186 button.setMargin(margin);
190 button = new HeavyToggleButton(imgRevol, false);
191 button.setToolTipText(resGui.getString("TT-Revol"));
192 button.setActionCommand("Revol");
193 button.addActionListener(this);
194 button.setMargin(margin);
198 button = new HeavyToggleButton(imgPipe, false);
199 button.setToolTipText(resGui.getString("TT-Pipe"));
200 button.setActionCommand("Pipe");
201 button.addActionListener(this);
202 button.setMargin(margin);
206 button = new HeavyToggleButton(imgThru, false);
207 button.setToolTipText(resGui.getString("TT-Thru"));
208 button.setActionCommand("Thru");
209 button.addActionListener(this);
210 button.setMargin(margin);
214 button = new HeavyToggleButton(imgEvolved, false);
215 button.setToolTipText(resGui.getString("TT-Evolved"));
216 button.setActionCommand("Evolved");
217 button.addActionListener(this);
218 button.setMargin(margin);
222 tools.addSeparator();;
224 button = new HeavyToggleButton(imgDraft, false);
225 button.setToolTipText(resGui.getString("TT-Draft"));
226 button.setActionCommand("Draft");
227 button.addActionListener(this);
228 button.setMargin(margin);
236 //=======================================================================//
238 //=======================================================================//
239 public void postProcess(TCollection_AsciiString message, String title)
241 myView3d.getViewPort().FitAll();
243 String text = message.ToCString().GetValue();
244 text += "\n-------------------- END ----------------------\n";
246 traceMessage(text, title);
249 //=======================================================================//
251 //=======================================================================//
254 TCollection_AsciiString message = new TCollection_AsciiString();
255 SamplesTopologyPackage.MakeBox(myAISContext, message);
257 postProcess(message, resGui.getString("Dlg-Box"));
261 //=======================================================================//
262 public void onCylinder()
264 TCollection_AsciiString message = new TCollection_AsciiString();
265 SamplesTopologyPackage.MakeCylinder(myAISContext, message);
267 postProcess(message, resGui.getString("Dlg-Cylinder"));
271 //=======================================================================//
274 TCollection_AsciiString message = new TCollection_AsciiString();
275 SamplesTopologyPackage.MakeCone(myAISContext, message);
277 postProcess(message, resGui.getString("Dlg-Cone"));
281 //=======================================================================//
282 public void onSphere()
284 TCollection_AsciiString message = new TCollection_AsciiString();
285 SamplesTopologyPackage.MakeSphere(myAISContext, message);
287 postProcess(message, resGui.getString("Dlg-Sphere"));
291 //=======================================================================//
292 public void onTorus()
294 TCollection_AsciiString message = new TCollection_AsciiString();
295 SamplesTopologyPackage.MakeTorus(myAISContext, message);
297 postProcess(message, resGui.getString("Dlg-Torus"));
301 //=======================================================================//
302 public void onWedge()
304 TCollection_AsciiString message = new TCollection_AsciiString();
305 SamplesTopologyPackage.MakeWedge(myAISContext, message);
307 postProcess(message, resGui.getString("Dlg-Wedge"));
311 //=======================================================================//
312 public void onPrism()
314 TCollection_AsciiString message = new TCollection_AsciiString();
315 SamplesTopologyPackage.MakePrism(myAISContext, message);
317 postProcess(message, resGui.getString("Dlg-Prism"));
321 //=======================================================================//
322 public void onRevol()
324 TCollection_AsciiString message = new TCollection_AsciiString();
325 SamplesTopologyPackage.MakeRevol(myAISContext, message);
327 postProcess(message, resGui.getString("Dlg-Revol"));
331 //=======================================================================//
334 TCollection_AsciiString message = new TCollection_AsciiString();
335 SamplesTopologyPackage.MakePipe(myAISContext, message);
337 postProcess(message, resGui.getString("Dlg-Pipe"));
341 //=======================================================================//
344 TCollection_AsciiString message = new TCollection_AsciiString();
345 SamplesTopologyPackage.MakeThru(myAISContext, message);
347 postProcess(message, resGui.getString("Dlg-Thru"));
351 //=======================================================================//
352 public void onEvolved()
354 TCollection_AsciiString message = new TCollection_AsciiString();
355 SamplesTopologyPackage.MakeEvolved(myAISContext, message);
357 postProcess(message, resGui.getString("Dlg-Evolved"));
361 //=======================================================================//
362 public void onDraft()
364 TCollection_AsciiString message = new TCollection_AsciiString();
365 SamplesTopologyPackage.MakeDraft(myAISContext, message);
367 postProcess(message, resGui.getString("Dlg-Draft"));
371 //=======================================================================//
372 // ActionListener interface
373 //=======================================================================//
374 public void actionPerformed(ActionEvent e)
376 String command = e.getActionCommand();
378 if (command.equals("Box")) onBox();
379 else if (command.equals("Cylinder")) onCylinder();
380 else if (command.equals("Cone")) onCone();
381 else if (command.equals("Sphere")) onSphere();
382 else if (command.equals("Torus")) onTorus();
383 else if (command.equals("Wedge")) onWedge();
384 else if (command.equals("Prism")) onPrism();
385 else if (command.equals("Revol")) onRevol();
386 else if (command.equals("Pipe")) onPipe();
387 else if (command.equals("Thru")) onThru();
388 else if (command.equals("Evolved")) onEvolved();
389 else if (command.equals("Draft")) onDraft();
392 //=======================================================================//
393 // MouseListener interface
394 //=======================================================================//
395 public void mouseClicked(MouseEvent e)
399 public void mousePressed(MouseEvent e)
401 if (SwingUtilities.isLeftMouseButton(e))
405 Object src = e.getSource();
409 V3d_View view3d = ((CASCADEView3d) myView3d.getViewPort()).getView();
411 myAISContext.MoveTo(startX, startY, view3d);
414 else if (SwingUtilities.isRightMouseButton(e))
416 if (e.getSource() == myView3d)
418 PopupMenu defPopup = myView3d.getDefaultPopup();
419 myView3d.add(defPopup);
420 defPopup.show(myView3d, e.getX(), e.getY() + 30);
425 public void mouseReleased(MouseEvent e)
427 if (SwingUtilities.isLeftMouseButton(e))
429 Object src = e.getSource();
435 V3d_View view3d = ((CASCADEView3d) myView3d.getViewPort()).getView();
439 myAISContext.ShiftSelect(startX, startY, e.getX(), e.getY(), view3d, true);
441 myAISContext.Select(startX, startY, e.getX(), e.getY(), view3d, true);
450 myAISContext.ShiftSelect(true);
452 myAISContext.Select(true);
459 public void mouseEntered(MouseEvent e)
463 public void mouseExited(MouseEvent e)
467 //=======================================================================//
468 // MouseMotionListener interface
469 //=======================================================================//
470 public void mouseDragged(MouseEvent e)
472 if (SwingUtilities.isLeftMouseButton(e) &&
473 e.getSource() == myView3d)
477 public void mouseMoved(MouseEvent e)
479 Object src = e.getSource();
483 V3d_View view3d = ((CASCADEView3d) myView3d.getViewPort()).getView();
484 if (myAISContext != null && view3d != null)
485 myAISContext.MoveTo(e.getX(), e.getY(), view3d);