package info.u250.c2d.box2deditor.ui.controls;
import info.u250.c2d.box2deditor.adapter.PulleyJointDefModel;
import info.u250.c2d.box2deditor.gdx.support.Geometry;
import info.u250.c2d.box2deditor.ui.Binder;
import java.awt.GridBagConstraints;
import java.awt.Insets;
import javax.swing.JCheckBox;
import javax.swing.JComponent;
import javax.swing.JLabel;
import javax.swing.JSpinner;
import javax.swing.SpinnerNumberModel;
public class PulleyJointDefPropertiesPanel extends JointDefPropertiesPanel{
public PulleyJointDefPropertiesPanel() {
JLabel lblLocalanchorax = new JLabel("localAnchorA-x:");
GridBagConstraints gbc_lblLocalanchorax = new GridBagConstraints();
gbc_lblLocalanchorax.insets = new Insets(0, 0, 5, 5);
gbc_lblLocalanchorax.gridx = 0;
gbc_lblLocalanchorax.gridy = 6;
getPanel().add(lblLocalanchorax, gbc_lblLocalanchorax);
spinnerLocalAnchorAX = new JSpinner();
spinnerLocalAnchorAX.setModel(new SpinnerNumberModel(new Float(0), null, null, new Float(1)));
GridBagConstraints gbc_spinnerLocalAnchorAX = new GridBagConstraints();
gbc_spinnerLocalAnchorAX.insets = new Insets(0, 0, 5, 0);
gbc_spinnerLocalAnchorAX.fill = GridBagConstraints.HORIZONTAL;
gbc_spinnerLocalAnchorAX.gridx = 1;
gbc_spinnerLocalAnchorAX.gridy = 6;
getPanel().add(spinnerLocalAnchorAX, gbc_spinnerLocalAnchorAX);
JLabel lblLocalanchoray = new JLabel("localAnchorA-y:");
GridBagConstraints gbc_lblLocalanchoray = new GridBagConstraints();
gbc_lblLocalanchoray.insets = new Insets(0, 0, 5, 5);
gbc_lblLocalanchoray.gridx = 0;
gbc_lblLocalanchoray.gridy = 7;
getPanel().add(lblLocalanchoray, gbc_lblLocalanchoray);
spinnerLocalAnchorAY = new JSpinner();
spinnerLocalAnchorAY.setModel(new SpinnerNumberModel(new Float(0), null, null, new Float(1)));
GridBagConstraints gbc_spinnerLocalAnchorAY = new GridBagConstraints();
gbc_spinnerLocalAnchorAY.fill = GridBagConstraints.HORIZONTAL;
gbc_spinnerLocalAnchorAY.insets = new Insets(0, 0, 5, 0);
gbc_spinnerLocalAnchorAY.gridx = 1;
gbc_spinnerLocalAnchorAY.gridy = 7;
getPanel().add(spinnerLocalAnchorAY, gbc_spinnerLocalAnchorAY);
chckbxSetToZero = new JCheckBox("Set To Zero");
GridBagConstraints gbc_chckbxSetToZero = new GridBagConstraints();
gbc_chckbxSetToZero.anchor = GridBagConstraints.WEST;
gbc_chckbxSetToZero.insets = new Insets(0, 0, 5, 0);
gbc_chckbxSetToZero.gridx = 1;
gbc_chckbxSetToZero.gridy = 8;
getPanel().add(chckbxSetToZero, gbc_chckbxSetToZero);
JLabel lblLocalanchorbx = new JLabel("localAnchorB-x:");
GridBagConstraints gbc_lblLocalanchorbx = new GridBagConstraints();
gbc_lblLocalanchorbx.insets = new Insets(0, 0, 5, 5);
gbc_lblLocalanchorbx.gridx = 0;
gbc_lblLocalanchorbx.gridy = 9;
getPanel().add(lblLocalanchorbx, gbc_lblLocalanchorbx);
spinnerLocalAnchorBx = new JSpinner();
spinnerLocalAnchorBx.setModel(new SpinnerNumberModel(new Float(0), null, null, new Float(1)));
GridBagConstraints gbc_spinnerLocalAnchorBx = new GridBagConstraints();
gbc_spinnerLocalAnchorBx.fill = GridBagConstraints.HORIZONTAL;
gbc_spinnerLocalAnchorBx.insets = new Insets(0, 0, 5, 0);
gbc_spinnerLocalAnchorBx.gridx = 1;
gbc_spinnerLocalAnchorBx.gridy = 9;
getPanel().add(spinnerLocalAnchorBx, gbc_spinnerLocalAnchorBx);
JLabel lblLocalanchorby = new JLabel("localAnchorB-y:");
GridBagConstraints gbc_lblLocalanchorby = new GridBagConstraints();
gbc_lblLocalanchorby.insets = new Insets(0, 0, 5, 5);
gbc_lblLocalanchorby.gridx = 0;
gbc_lblLocalanchorby.gridy = 10;
getPanel().add(lblLocalanchorby, gbc_lblLocalanchorby);
spinnerLocalAnchorBy = new JSpinner();
spinnerLocalAnchorBy.setModel(new SpinnerNumberModel(new Float(0), null, null, new Float(1)));
GridBagConstraints gbc_spinnerLocalAnchorBy = new GridBagConstraints();
gbc_spinnerLocalAnchorBy.fill = GridBagConstraints.HORIZONTAL;
gbc_spinnerLocalAnchorBy.insets = new Insets(0, 0, 5, 0);
gbc_spinnerLocalAnchorBy.gridx = 1;
gbc_spinnerLocalAnchorBy.gridy = 10;
getPanel().add(spinnerLocalAnchorBy, gbc_spinnerLocalAnchorBy);
chckbxSetToZero_1 = new JCheckBox("Set To Zero");
GridBagConstraints gbc_chckbxSetToZero_1 = new GridBagConstraints();
gbc_chckbxSetToZero_1.anchor = GridBagConstraints.WEST;
gbc_chckbxSetToZero_1.insets = new Insets(0, 0, 5, 0);
gbc_chckbxSetToZero_1.gridx = 1;
gbc_chckbxSetToZero_1.gridy = 11;
getPanel().add(chckbxSetToZero_1, gbc_chckbxSetToZero_1);
lblGroundanchorax = new JLabel("groundAnchorAx:");
GridBagConstraints gbc_lblGroundanchorax = new GridBagConstraints();
gbc_lblGroundanchorax.insets = new Insets(0, 0, 5, 5);
gbc_lblGroundanchorax.gridx = 0;
gbc_lblGroundanchorax.gridy = 12;
getPanel().add(lblGroundanchorax, gbc_lblGroundanchorax);
spinnerGroundAnchorAx = new JSpinner();
spinnerGroundAnchorAx.setModel(new SpinnerNumberModel(new Float(0), null, null, new Float(1)));
GridBagConstraints gbc_spinnerGroundAnchorAx = new GridBagConstraints();
gbc_spinnerGroundAnchorAx.fill = GridBagConstraints.HORIZONTAL;
gbc_spinnerGroundAnchorAx.insets = new Insets(0, 0, 5, 0);
gbc_spinnerGroundAnchorAx.gridx = 1;
gbc_spinnerGroundAnchorAx.gridy = 12;
getPanel().add(spinnerGroundAnchorAx, gbc_spinnerGroundAnchorAx);
chckbxAlignBodya = new JCheckBox("Align AnchorA");
GridBagConstraints gbc_chckbxAlignBodya = new GridBagConstraints();
gbc_chckbxAlignBodya.anchor = GridBagConstraints.WEST;
gbc_chckbxAlignBodya.insets = new Insets(0, 0, 5, 0);
gbc_chckbxAlignBodya.gridx = 1;
gbc_chckbxAlignBodya.gridy = 13;
getPanel().add(chckbxAlignBodya, gbc_chckbxAlignBodya);
lblGroundanchoray = new JLabel("groundAnchorAy:");
GridBagConstraints gbc_lblGroundanchoray = new GridBagConstraints();
gbc_lblGroundanchoray.insets = new Insets(0, 0, 5, 5);
gbc_lblGroundanchoray.gridx = 0;
gbc_lblGroundanchoray.gridy = 14;
getPanel().add(lblGroundanchoray, gbc_lblGroundanchoray);
spinnerGroundAnchorAy = new JSpinner();
spinnerGroundAnchorAy.setModel(new SpinnerNumberModel(new Float(0), null, null, new Float(1)));
GridBagConstraints gbc_spinnerGroundAnchorAy = new GridBagConstraints();
gbc_spinnerGroundAnchorAy.fill = GridBagConstraints.HORIZONTAL;
gbc_spinnerGroundAnchorAy.insets = new Insets(0, 0, 5, 0);
gbc_spinnerGroundAnchorAy.gridx = 1;
gbc_spinnerGroundAnchorAy.gridy = 14;
getPanel().add(spinnerGroundAnchorAy, gbc_spinnerGroundAnchorAy);
lblGroundanchorbx = new JLabel("groundAnchorBx:");
GridBagConstraints gbc_lblGroundanchorbx = new GridBagConstraints();
gbc_lblGroundanchorbx.insets = new Insets(0, 0, 5, 5);
gbc_lblGroundanchorbx.gridx = 0;
gbc_lblGroundanchorbx.gridy = 15;
getPanel().add(lblGroundanchorbx, gbc_lblGroundanchorbx);
spinnerGroundAnchorBx = new JSpinner();
spinnerGroundAnchorBx.setModel(new SpinnerNumberModel(new Float(0), null, null, new Float(1)));
GridBagConstraints gbc_spinnerGroundAnchorBx = new GridBagConstraints();
gbc_spinnerGroundAnchorBx.fill = GridBagConstraints.HORIZONTAL;
gbc_spinnerGroundAnchorBx.insets = new Insets(0, 0, 5, 0);
gbc_spinnerGroundAnchorBx.gridx = 1;
gbc_spinnerGroundAnchorBx.gridy = 15;
getPanel().add(spinnerGroundAnchorBx, gbc_spinnerGroundAnchorBx);
chckbxAlignBodyb = new JCheckBox("Align AnchorB");
GridBagConstraints gbc_chckbxAlignBodyb = new GridBagConstraints();
gbc_chckbxAlignBodyb.anchor = GridBagConstraints.WEST;
gbc_chckbxAlignBodyb.insets = new Insets(0, 0, 5, 0);
gbc_chckbxAlignBodyb.gridx = 1;
gbc_chckbxAlignBodyb.gridy = 16;
getPanel().add(chckbxAlignBodyb, gbc_chckbxAlignBodyb);
lblGroundanchorby = new JLabel("groundAnchorBy:");
GridBagConstraints gbc_lblGroundanchorby = new GridBagConstraints();
gbc_lblGroundanchorby.insets = new Insets(0, 0, 5, 5);
gbc_lblGroundanchorby.gridx = 0;
gbc_lblGroundanchorby.gridy = 17;
getPanel().add(lblGroundanchorby, gbc_lblGroundanchorby);
spinnerGroundAnchorBy = new JSpinner();
spinnerGroundAnchorBy.setModel(new SpinnerNumberModel(new Float(0), null, null, new Float(1)));
GridBagConstraints gbc_spinnerGroundAnchorBy = new GridBagConstraints();
gbc_spinnerGroundAnchorBy.fill = GridBagConstraints.HORIZONTAL;
gbc_spinnerGroundAnchorBy.insets = new Insets(0, 0, 5, 0);
gbc_spinnerGroundAnchorBy.gridx = 1;
gbc_spinnerGroundAnchorBy.gridy = 17;
getPanel().add(spinnerGroundAnchorBy, gbc_spinnerGroundAnchorBy);
lblLengtha = new JLabel("lengthA:");
GridBagConstraints gbc_lblLengtha = new GridBagConstraints();
gbc_lblLengtha.insets = new Insets(0, 0, 5, 5);
gbc_lblLengtha.gridx = 0;
gbc_lblLengtha.gridy = 18;
getPanel().add(lblLengtha, gbc_lblLengtha);
spinnerLengthA = new JSpinner();
spinnerLengthA.setEnabled(false);
spinnerLengthA.setModel(new SpinnerNumberModel(new Float(0), null, null, new Float(1)));
GridBagConstraints gbc_spinnerLengthA = new GridBagConstraints();
gbc_spinnerLengthA.fill = GridBagConstraints.HORIZONTAL;
gbc_spinnerLengthA.insets = new Insets(0, 0, 5, 0);
gbc_spinnerLengthA.gridx = 1;
gbc_spinnerLengthA.gridy = 18;
getPanel().add(spinnerLengthA, gbc_spinnerLengthA);
lblLengthb = new JLabel("lengthB:");
GridBagConstraints gbc_lblLengthb = new GridBagConstraints();
gbc_lblLengthb.insets = new Insets(0, 0, 5, 5);
gbc_lblLengthb.gridx = 0;
gbc_lblLengthb.gridy = 19;
getPanel().add(lblLengthb, gbc_lblLengthb);
spinnerLengthB = new JSpinner();
spinnerLengthB.setEnabled(false);
spinnerLengthB.setModel(new SpinnerNumberModel(new Float(0), null, null, new Float(1)));
GridBagConstraints gbc_spinnerLengthB = new GridBagConstraints();
gbc_spinnerLengthB.fill = GridBagConstraints.HORIZONTAL;
gbc_spinnerLengthB.insets = new Insets(0, 0, 5, 0);
gbc_spinnerLengthB.gridx = 1;
gbc_spinnerLengthB.gridy = 19;
getPanel().add(spinnerLengthB, gbc_spinnerLengthB);
lblRatio = new JLabel("ratio:");
GridBagConstraints gbc_lblRatio = new GridBagConstraints();
gbc_lblRatio.insets = new Insets(0, 0, 5, 5);
gbc_lblRatio.gridx = 0;
gbc_lblRatio.gridy = 20;
getPanel().add(lblRatio, gbc_lblRatio);
spinnerRatio = new JSpinner();
spinnerRatio.setModel(new SpinnerNumberModel(new Float(0), null, null, new Float(1)));
GridBagConstraints gbc_spinnerRatio = new GridBagConstraints();
gbc_spinnerRatio.fill = GridBagConstraints.HORIZONTAL;
gbc_spinnerRatio.insets = new Insets(0, 0, 5, 0);
gbc_spinnerRatio.gridx = 1;
gbc_spinnerRatio.gridy = 20;
getPanel().add(spinnerRatio, gbc_spinnerRatio);
}
private static final long serialVersionUID = -2033825670615410634L;
private JSpinner spinnerLocalAnchorAX;
private JSpinner spinnerLocalAnchorBy;
private JSpinner spinnerLocalAnchorBx;
private JSpinner spinnerLocalAnchorAY;
private JLabel lblGroundanchorax;
private JSpinner spinnerGroundAnchorAx;
private JLabel lblGroundanchoray;
private JSpinner spinnerGroundAnchorAy;
private JLabel lblGroundanchorbx;
private JSpinner spinnerGroundAnchorBx;
private JLabel lblGroundanchorby;
private JSpinner spinnerGroundAnchorBy;
private JLabel lblLengtha;
private JSpinner spinnerLengthA;
private JLabel lblLengthb;
private JSpinner spinnerLengthB;
private JLabel lblRatio;
private JSpinner spinnerRatio;
private JCheckBox chckbxSetToZero;
private JCheckBox chckbxSetToZero_1;
private JCheckBox chckbxAlignBodya;
private JCheckBox chckbxAlignBodyb;
@Override
public Class<PulleyJointDefModel> getType() {
return PulleyJointDefModel.class;
}
@Override
public void doBinder() {
super.doBinder();
PulleyJointDefModel model = PulleyJointDefModel.class.cast(object);
bind(model.localAnchorA,"x",spinnerLocalAnchorAX);
bind(model.localAnchorA,"y",spinnerLocalAnchorAY);
bind(model.localAnchorB,"x",spinnerLocalAnchorBx);
bind(model.localAnchorB,"y",spinnerLocalAnchorBy);
bind(model.groundAnchorA,"x",spinnerGroundAnchorAx);
bind(model.groundAnchorA,"y",spinnerGroundAnchorAy);
bind(model.groundAnchorB,"x",spinnerGroundAnchorBx);
bind(model.groundAnchorB,"y",spinnerGroundAnchorBy);
bind(model,"ratio",spinnerRatio);
bind(model,"setBodyAZero",chckbxSetToZero);
bind(model,"setBodyBZero",chckbxSetToZero_1);
bind(model,"groundAAlignAnchorA",chckbxAlignBodya);
bind(model,"groundBAlignAnchorB",chckbxAlignBodyb);
}
@Override
public Binder getBinder(Object obj, String name, final JComponent widget) {
return new Binder(obj,name,widget) {
@Override
protected void postSolve() {
PulleyJointDefModel model = PulleyJointDefModel.class.cast(object);
Geometry.ajustJoint(model);
spinnerLengthA.setValue(model.lengthA);
spinnerLengthB.setValue(model.lengthB);
spinnerLocalAnchorAX.setValue(model.localAnchorA.x);
spinnerLocalAnchorAY.setValue(model.localAnchorA.y);
spinnerLocalAnchorBx.setValue(model.localAnchorB.x);
spinnerLocalAnchorBy.setValue(model.localAnchorB.y);
spinnerGroundAnchorAx.setValue(model.groundAnchorA.x);
spinnerGroundAnchorBx.setValue(model.groundAnchorB.x);
}
};
}
}