mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-07 18:30:55 +03:00
346 lines
11 KiB
Java
Executable File
346 lines
11 KiB
Java
Executable File
|
|
//Title: Viewer3D Sample
|
|
//Version:
|
|
//Copyright: Copyright (c) 1999
|
|
//Author: User Interface group
|
|
//Company: Matra Datavision
|
|
//Description:
|
|
|
|
|
|
import java.awt.*;
|
|
import java.awt.event.*;
|
|
import javax.swing.*;
|
|
import util.*;
|
|
import CASCADESamplesJni.*;
|
|
import SampleAISDisplayModeJni.*;
|
|
// import SampleAISDisplayModeJni.SampleAISDisplayModePackage;
|
|
import jcas.Standard_Real;
|
|
|
|
|
|
public class AttributesPanel extends JPanel
|
|
implements ActionListener
|
|
{
|
|
SamplePanel myDocument = null;
|
|
AIS_InteractiveContext myAISContext = null;
|
|
|
|
//=======================================================================//
|
|
// Construction
|
|
//=======================================================================//
|
|
public AttributesPanel(SamplePanel aDoc, AIS_InteractiveContext aContext)
|
|
{
|
|
myDocument = aDoc;
|
|
myAISContext = aContext;
|
|
|
|
try
|
|
{
|
|
jbInit();
|
|
}
|
|
catch(Exception ex)
|
|
{
|
|
ex.printStackTrace();
|
|
}
|
|
}
|
|
|
|
void jbInit() throws Exception
|
|
{
|
|
setLayout(new GridLayout(0, 1));
|
|
setBounds(10, 10, 10, 10);
|
|
|
|
JButton button;
|
|
|
|
button = new JButton("WireFrame");
|
|
button.addActionListener(this);
|
|
button.setActionCommand("WireFrame");
|
|
add(button);
|
|
|
|
button = new JButton("Shading");
|
|
button.addActionListener(this);
|
|
button.setActionCommand("Shading");
|
|
add(button);
|
|
|
|
button = new JButton("Color...");
|
|
button.addActionListener(this);
|
|
button.setActionCommand("Color");
|
|
add(button);
|
|
|
|
button = new JButton("Brass");
|
|
button.addActionListener(this);
|
|
button.setActionCommand("Brass");
|
|
add(button);
|
|
|
|
button = new JButton("Bronze");
|
|
button.addActionListener(this);
|
|
button.setActionCommand("Bronze");
|
|
add(button);
|
|
|
|
button = new JButton("Copper");
|
|
button.addActionListener(this);
|
|
button.setActionCommand("Copper");
|
|
add(button);
|
|
|
|
button = new JButton("Gold");
|
|
button.addActionListener(this);
|
|
button.setActionCommand("Gold");
|
|
add(button);
|
|
|
|
button = new JButton("Pewter");
|
|
button.addActionListener(this);
|
|
button.setActionCommand("Pewter");
|
|
add(button);
|
|
|
|
button = new JButton("Plaster");
|
|
button.addActionListener(this);
|
|
button.setActionCommand("Plaster");
|
|
add(button);
|
|
|
|
button = new JButton("Plastic");
|
|
button.addActionListener(this);
|
|
button.setActionCommand("Plastic");
|
|
add(button);
|
|
|
|
button = new JButton("Silver");
|
|
button.addActionListener(this);
|
|
button.setActionCommand("Silver");
|
|
add(button);
|
|
|
|
button = new JButton("Steel");
|
|
button.addActionListener(this);
|
|
button.setActionCommand("Steel");
|
|
add(button);
|
|
|
|
button = new JButton("Stone");
|
|
button.addActionListener(this);
|
|
button.setActionCommand("Stone");
|
|
add(button);
|
|
|
|
button = new JButton("Shiny Plastic");
|
|
button.addActionListener(this);
|
|
button.setActionCommand("ShinyPlastic");
|
|
add(button);
|
|
|
|
button = new JButton("Satin");
|
|
button.addActionListener(this);
|
|
button.setActionCommand("Satin");
|
|
add(button);
|
|
|
|
button = new JButton("Transparency...");
|
|
button.addActionListener(this);
|
|
button.setActionCommand("Transparency");
|
|
add(button);
|
|
}
|
|
|
|
|
|
//=======================================================================//
|
|
// Commands
|
|
//=======================================================================//
|
|
private void onWireFrame()
|
|
{
|
|
TCollection_AsciiString message = new TCollection_AsciiString();
|
|
SampleAISDisplayModePackage.SetObjectDisplayMode(myAISContext, (short)0, message);
|
|
|
|
myDocument.traceMessage(message.ToCString().GetValue(), "Wireframe");
|
|
}
|
|
|
|
//=======================================================================//
|
|
private void onShading()
|
|
{
|
|
TCollection_AsciiString message = new TCollection_AsciiString();
|
|
SampleAISDisplayModePackage.SetObjectDisplayMode(myAISContext, (short)1, message);
|
|
|
|
myDocument.traceMessage(message.ToCString().GetValue(), "Shading");
|
|
}
|
|
|
|
//=======================================================================//
|
|
private void onColor()
|
|
{
|
|
Quantity_Color aColor = SampleAISDisplayModePackage.GetObjectColor(myAISContext);
|
|
int red = (int) (aColor.Red()*255);
|
|
int green = (int) (aColor.Green()*255);
|
|
int blue = (int) (aColor.Blue()*255);
|
|
Color theColor = new Color(red, green, blue);
|
|
|
|
Color theNewColor = JColorChooser.showDialog(SamplesStarter.getFrame(),
|
|
"Choose the color", theColor);
|
|
|
|
if (theNewColor != null)
|
|
{
|
|
Quantity_Color aNewColor = new Quantity_Color(theNewColor.getRed()/255.,
|
|
theNewColor.getGreen()/255.,
|
|
theNewColor.getBlue()/255.,
|
|
Quantity_TypeOfColor.Quantity_TOC_RGB);
|
|
TCollection_AsciiString message = new TCollection_AsciiString();
|
|
SampleAISDisplayModePackage.SetObjectColor(myAISContext, aNewColor, message);
|
|
|
|
myDocument.traceMessage(message.ToCString().GetValue(), "Setting Color");
|
|
}
|
|
}
|
|
|
|
//=======================================================================//
|
|
private void onBrass()
|
|
{
|
|
TCollection_AsciiString message = new TCollection_AsciiString();
|
|
SampleAISDisplayModePackage.SetObjectMaterial(myAISContext,
|
|
Graphic3d_NameOfMaterial.Graphic3d_NOM_BRASS, message);
|
|
|
|
myDocument.traceMessage(message.ToCString().GetValue(), "Setting Material");
|
|
}
|
|
|
|
//=======================================================================//
|
|
private void onBronze()
|
|
{
|
|
TCollection_AsciiString message = new TCollection_AsciiString();
|
|
SampleAISDisplayModePackage.SetObjectMaterial(myAISContext,
|
|
Graphic3d_NameOfMaterial.Graphic3d_NOM_BRONZE, message);
|
|
|
|
myDocument.traceMessage(message.ToCString().GetValue(), "Setting Material");
|
|
}
|
|
|
|
//=======================================================================//
|
|
private void onCopper()
|
|
{
|
|
TCollection_AsciiString message = new TCollection_AsciiString();
|
|
SampleAISDisplayModePackage.SetObjectMaterial(myAISContext,
|
|
Graphic3d_NameOfMaterial.Graphic3d_NOM_COPPER, message);
|
|
|
|
myDocument.traceMessage(message.ToCString().GetValue(), "Setting Material");
|
|
}
|
|
|
|
//=======================================================================//
|
|
private void onGold()
|
|
{
|
|
TCollection_AsciiString message = new TCollection_AsciiString();
|
|
SampleAISDisplayModePackage.SetObjectMaterial(myAISContext,
|
|
Graphic3d_NameOfMaterial.Graphic3d_NOM_GOLD, message);
|
|
|
|
myDocument.traceMessage(message.ToCString().GetValue(), "Setting Material");
|
|
}
|
|
|
|
//=======================================================================//
|
|
private void onPewter()
|
|
{
|
|
TCollection_AsciiString message = new TCollection_AsciiString();
|
|
SampleAISDisplayModePackage.SetObjectMaterial(myAISContext,
|
|
Graphic3d_NameOfMaterial.Graphic3d_NOM_PEWTER, message);
|
|
|
|
myDocument.traceMessage(message.ToCString().GetValue(), "Setting Material");
|
|
}
|
|
|
|
//=======================================================================//
|
|
private void onPlaster()
|
|
{
|
|
TCollection_AsciiString message = new TCollection_AsciiString();
|
|
SampleAISDisplayModePackage.SetObjectMaterial(myAISContext,
|
|
Graphic3d_NameOfMaterial.Graphic3d_NOM_PLASTER, message);
|
|
|
|
myDocument.traceMessage(message.ToCString().GetValue(), "Setting Material");
|
|
}
|
|
|
|
//=======================================================================//
|
|
private void onPlastic()
|
|
{
|
|
TCollection_AsciiString message = new TCollection_AsciiString();
|
|
SampleAISDisplayModePackage.SetObjectMaterial(myAISContext,
|
|
Graphic3d_NameOfMaterial.Graphic3d_NOM_PLASTIC, message);
|
|
|
|
myDocument.traceMessage(message.ToCString().GetValue(), "Setting Material");
|
|
}
|
|
|
|
//=======================================================================//
|
|
private void onSilver()
|
|
{
|
|
TCollection_AsciiString message = new TCollection_AsciiString();
|
|
SampleAISDisplayModePackage.SetObjectMaterial(myAISContext,
|
|
Graphic3d_NameOfMaterial.Graphic3d_NOM_SILVER, message);
|
|
|
|
myDocument.traceMessage(message.ToCString().GetValue(), "Setting Material");
|
|
}
|
|
|
|
//=======================================================================//
|
|
private void onSteel()
|
|
{
|
|
TCollection_AsciiString message = new TCollection_AsciiString();
|
|
SampleAISDisplayModePackage.SetObjectMaterial(myAISContext,
|
|
Graphic3d_NameOfMaterial.Graphic3d_NOM_STEEL, message);
|
|
|
|
myDocument.traceMessage(message.ToCString().GetValue(), "Setting Material");
|
|
}
|
|
|
|
//=======================================================================//
|
|
private void onStone()
|
|
{
|
|
TCollection_AsciiString message = new TCollection_AsciiString();
|
|
SampleAISDisplayModePackage.SetObjectMaterial(myAISContext,
|
|
Graphic3d_NameOfMaterial.Graphic3d_NOM_STONE, message);
|
|
|
|
myDocument.traceMessage(message.ToCString().GetValue(), "Setting Material");
|
|
}
|
|
|
|
//=======================================================================//
|
|
private void onShinyPlastic()
|
|
{
|
|
TCollection_AsciiString message = new TCollection_AsciiString();
|
|
SampleAISDisplayModePackage.SetObjectMaterial(myAISContext,
|
|
Graphic3d_NameOfMaterial.Graphic3d_NOM_SHINY_PLASTIC, message);
|
|
|
|
myDocument.traceMessage(message.ToCString().GetValue(), "Setting Material");
|
|
}
|
|
|
|
//=======================================================================//
|
|
private void onSatin()
|
|
{
|
|
TCollection_AsciiString message = new TCollection_AsciiString();
|
|
SampleAISDisplayModePackage.SetObjectMaterial(myAISContext,
|
|
Graphic3d_NameOfMaterial.Graphic3d_NOM_SATIN, message);
|
|
|
|
myDocument.traceMessage(message.ToCString().GetValue(), "Setting Material");
|
|
}
|
|
|
|
//=======================================================================//
|
|
private void onTransparency()
|
|
{
|
|
double aValue = SampleAISDisplayModePackage.GetObjectTransparency(myAISContext);
|
|
|
|
TransparencyDlg aDlg = new TransparencyDlg(SamplesStarter.getFrame(), aValue);
|
|
Position.centerWindow(aDlg);
|
|
aDlg.show();
|
|
|
|
if (aDlg.isOK())
|
|
{
|
|
TCollection_AsciiString message = new TCollection_AsciiString();
|
|
SampleAISDisplayModePackage.SetObjectTransparency(myAISContext, aDlg.getValue(), message);
|
|
|
|
myDocument.traceMessage(message.ToCString().GetValue(), "Setting Transparency");
|
|
}
|
|
}
|
|
|
|
|
|
//=======================================================================//
|
|
// Action listener interface
|
|
//=======================================================================//
|
|
public void actionPerformed(ActionEvent event)
|
|
{
|
|
String nameAction = event.getActionCommand();
|
|
|
|
if (myAISContext.NbCurrents() > 0)
|
|
{
|
|
if (nameAction.equals("WireFrame")) onWireFrame();
|
|
else if (nameAction.equals("Shading")) onShading();
|
|
else if (nameAction.equals("Color")) onColor();
|
|
else if (nameAction.equals("Brass")) onBrass();
|
|
else if (nameAction.equals("Bronze")) onBronze();
|
|
else if (nameAction.equals("Copper")) onCopper();
|
|
else if (nameAction.equals("Gold")) onGold();
|
|
else if (nameAction.equals("Pewter")) onPewter();
|
|
else if (nameAction.equals("Plaster")) onPlaster();
|
|
else if (nameAction.equals("Plastic")) onPlastic();
|
|
else if (nameAction.equals("Silver")) onSilver();
|
|
else if (nameAction.equals("Steel")) onSteel();
|
|
else if (nameAction.equals("Stone")) onStone();
|
|
else if (nameAction.equals("ShinyPlastic")) onShinyPlastic();
|
|
else if (nameAction.equals("Satin")) onSatin();
|
|
else if (nameAction.equals("Transparency")) onTransparency();
|
|
}
|
|
}
|
|
|
|
}
|