Registration point enhancements

This commit is contained in:
Jindra Petřík
2022-12-15 23:08:54 +01:00
parent 3c79d5d2b8
commit 5cb1aa885d
4 changed files with 39 additions and 17 deletions

View File

@@ -144,8 +144,8 @@ public class TransformPanel extends JPanel {
imagePanel.addBoundsChangeListener(new BoundsChangeListener() {
@Override
public void boundsChanged(Rectangle2D newBounds, Point2D registraionPoint) {
update(newBounds, registraionPoint);
public void boundsChanged(Rectangle2D newBounds, Point2D registraionPoint, RegistrationPointPosition registrationPointPosition) {
update(newBounds, registraionPoint, registrationPointPosition);
}
});
setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));
@@ -384,9 +384,10 @@ public class TransformPanel extends JPanel {
clearMatrixActionPerformed(null);
}
private void update(Rectangle2D bounds, Point2D registraionPoint) {
private void update(Rectangle2D bounds, Point2D registraionPoint, RegistrationPointPosition registrationPointPosition) {
this.bounds = bounds;
this.registrationPoint = registraionPoint;
this.registrationPointPanel.setSelectedPosition(registrationPointPosition);
if (!moveRelativeCheckBox.isSelected()) {
moveHorizontalTextField.setText(formatDouble(convertUnit(bounds.getX(), Unit.TWIP, (Unit) moveUnitComboBox.getSelectedItem())));
moveVerticalTextField.setText(formatDouble(convertUnit(bounds.getY(), Unit.TWIP, (Unit) moveUnitComboBox.getSelectedItem())));
@@ -548,12 +549,7 @@ public class TransformPanel extends JPanel {
}
private void registrationPointChangedActionPerformed(ActionEvent e) {
RegistrationPointPosition position = registrationPointPanel.getSelectedPosition();
Point2D newRegistrationPoint = new Point2D.Double(
bounds.getX() + bounds.getWidth() * position.getPositionX(),
bounds.getY() + bounds.getHeight() * position.getPositionY()
);
imagePanel.setRegistrationPoint(newRegistrationPoint);
imagePanel.setRegistrationPointPosition(registrationPointPanel.getSelectedPosition());
}
private void addJoinedRow(JPanel panel, int rownum, Component comp, int numCols) {
@@ -665,6 +661,13 @@ class RegistrationPointPanel extends JPanel {
public RegistrationPointPosition getSelectedPosition() {
return selectedPosition;
}
public void setSelectedPosition(RegistrationPointPosition selectedPosition) {
this.selectedPosition = selectedPosition;
repaint();
}
public RegistrationPointPanel(ActionListener listener) {
this.listener = listener;