import java.awt.*;
|
import java.awt.event.*;
|
import javax.swing.*;
|
import javax.swing.event.*;
|
|
public class LinkerEditor extends ObjEditor implements ChangeListener, ObjectUI, ItemListener
|
{
|
LinkerEditor(cLinker inBP, GroupEditor callee)
|
{
|
super(inBP,callee);
|
|
objEditor = callee.GetEditor(); // new ObjEditor(inBP, this, callee);
|
|
linker = (cLinker) inBP;
|
// parent = p;
|
|
SetupUI2(callee.objEditor);
|
}
|
|
// TEMP
|
LinkerEditor(cLinker inClient, Object3D localCopy, GroupEditor callee)
|
{
|
this(inClient, localCopy, null, callee);
|
}
|
|
LinkerEditor(cLinker inBP, ObjectUI p, GroupEditor callee)
|
{
|
super(inBP,callee);
|
|
objEditor = callee.GetEditor(); // new ObjEditor(inBP, this, callee);
|
|
linker = inBP;
|
//parent = p;
|
|
SetupUI2(callee.objEditor);
|
}
|
|
LinkerEditor(cLinker inBP, Object3D copy, ObjectUI p, GroupEditor callee) // boolean ends)
|
{
|
//super(inBP, copy, callee);
|
super(inBP, copy, p, callee);
|
objEditor = this;
|
|
//objEditor = new ObjEditor(inBP, copy, this, callee);
|
// ?? super.parent = p;
|
linker = (cLinker) copy;
|
//parent = p;
|
|
//objEditor.SetupUI(false); // ?
|
//objEditor.SetupViews(); // ?
|
SetupUI2(objEditor);
|
}
|
|
void SetupUI2(ObjEditor oe)
|
{
|
super.SetupUI2(oe);
|
|
oe.aConstraints.gridwidth = 1;
|
oe.aConstraints.fill = 0;
|
oe.aConstraints.gridy += 1;
|
oe.ctrlPanel.add(radiusLabel = new JLabel("Radius"), oe.aConstraints, oe.ctrlPanel.getComponentCount()-2);
|
oe.aConstraints.fill = GridBagConstraints.HORIZONTAL; // 1;
|
oe.aConstraints.gridx += 1;
|
oe.aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
|
oe.ctrlPanel.add(radiusField = new NumberSlider(), oe.aConstraints, oe.ctrlPanel.getComponentCount()-2);
|
radiusField.setFloat(Math.abs(linker.height));
|
radiusField.addChangeListener(this);
|
oe.aConstraints.fill = 0;
|
oe.aConstraints.gridy += 1;
|
oe.aConstraints.gridwidth = 1;
|
oe.aConstraints.gridx = 0;
|
oe.ctrlPanel.add(distortionLabel = new JLabel("Distortion"), oe.aConstraints, oe.ctrlPanel.getComponentCount()-2);
|
oe.aConstraints.fill = GridBagConstraints.HORIZONTAL; // 1;
|
oe.aConstraints.gridx += 1;
|
oe.aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
|
oe.ctrlPanel.add(distortionField = new NumberSlider(), oe.aConstraints, oe.ctrlPanel.getComponentCount()-2);
|
distortionField.setFloat(Math.abs(linker.depth));
|
distortionField.addChangeListener(this);
|
oe.aConstraints.fill = 0;
|
oe.aConstraints.gridwidth = 1;
|
oe.aConstraints.gridy += 1;
|
oe.aConstraints.gridx = 0;
|
oe.aConstraints.gridwidth = 3;
|
oe.aConstraints.anchor = GridBagConstraints.WEST;
|
oe.ctrlPanel.add(boxMode = new JCheckBox("Box mode", (linker.height<0)), oe.aConstraints, oe.ctrlPanel.getComponentCount()-2);
|
boxMode.addItemListener(this);
|
oe.aConstraints.anchor = GridBagConstraints.EAST;
|
oe.aConstraints.gridwidth = 1;
|
}
|
|
void Clear()
|
{
|
objEditor.Clear();
|
|
linker = null;
|
}
|
|
public void itemStateChanged(ItemEvent e)
|
{
|
//System.out.println(e);
|
//if(e.getStateChange() == ItemEvent.SELECTED)
|
{
|
linker.height = -linker.height;
|
}
|
applySelf();
|
//super.applySelf();
|
objEditor.refreshContents();
|
}
|
|
public void stateChanged(ChangeEvent e)
|
{
|
//System.out.println("Biparam :: stateChanged");
|
if (e.getSource() == radiusField ||
|
e.getSource() == distortionField)
|
{
|
applySelf();
|
objEditor.refreshContents();
|
}
|
else
|
super.stateChanged(e);
|
}
|
|
/**/
|
public void applySelf()
|
{
|
if(linker.height < 0)
|
linker.height = -radiusField.getFloat();
|
else
|
linker.height = radiusField.getFloat();
|
|
linker.depth = distortionField.getFloat();
|
|
// june 2013 super.applySelf();
|
}
|
/**/
|
|
public void closeUI()
|
{
|
ObjEditor oe = objEditor;
|
|
radiusField.removeChangeListener(this);
|
distortionField.removeChangeListener(this);
|
oe.ctrlPanel.remove(radiusField);
|
oe.ctrlPanel.remove(radiusLabel);
|
oe.ctrlPanel.remove(distortionField);
|
oe.ctrlPanel.remove(distortionLabel);
|
boxMode.removeItemListener(this);
|
oe.ctrlPanel.remove(boxMode);
|
//oe.ctrlPanel.repaint();
|
|
super.closeUI();
|
}
|
|
public ObjEditor GetEditor()
|
{
|
return objEditor;
|
}
|
|
void refreshContents2()
|
{
|
objEditor.refreshContents();
|
}
|
|
cLinker linker;
|
JLabel radiusLabel;
|
NumberSlider radiusField;
|
JLabel distortionLabel;
|
NumberSlider distortionField;
|
JCheckBox boxMode;
|
|
//ObjectUI parent;
|
|
//ObjEditor objEditor;
|
}
|