[#2151] Update the ruler unit upon a unit change in prefs
This commit is contained in:
parent
6084ba6512
commit
b1cf701448
@ -97,6 +97,7 @@ public class PreferencesDialog extends JDialog {
|
||||
if (parent != null) {
|
||||
parent.getRocketPanel().updateExtras();
|
||||
parent.getRocketPanel().updateFigures();
|
||||
parent.getRocketPanel().updateRulers();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
@ -271,6 +271,15 @@ public class RocketPanel extends JPanel implements TreeSelectionListener, Change
|
||||
figure3d.updateFigure();
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates the rulers of the rocket panel to the currently selected default unit.
|
||||
*/
|
||||
public void updateRulers() {
|
||||
scrollPane.updateRulerUnit();
|
||||
scrollPane.revalidate();
|
||||
scrollPane.repaint();
|
||||
}
|
||||
|
||||
private void go3D() {
|
||||
if (is3d)
|
||||
return;
|
||||
|
@ -15,6 +15,7 @@ import java.awt.event.MouseEvent;
|
||||
import java.awt.event.MouseListener;
|
||||
import java.awt.event.MouseMotionListener;
|
||||
import java.awt.geom.Point2D;
|
||||
import java.util.EventObject;
|
||||
|
||||
import javax.swing.BorderFactory;
|
||||
import javax.swing.JComponent;
|
||||
@ -56,6 +57,7 @@ public class ScaleScrollPane extends JScrollPane
|
||||
private final AbstractScaleFigure figure;
|
||||
|
||||
private DoubleModel rulerUnit;
|
||||
private UnitSelector unitSelector;
|
||||
private Ruler horizontalRuler;
|
||||
private Ruler verticalRuler;
|
||||
|
||||
@ -83,7 +85,7 @@ public class ScaleScrollPane extends JScrollPane
|
||||
|
||||
this.component = component;
|
||||
this.figure = (AbstractScaleFigure) component;
|
||||
|
||||
|
||||
rulerUnit = new DoubleModel(0.0, UnitGroup.UNITS_LENGTH);
|
||||
rulerUnit.addChangeListener(new ChangeListener() {
|
||||
@Override
|
||||
@ -95,10 +97,10 @@ public class ScaleScrollPane extends JScrollPane
|
||||
verticalRuler = new Ruler(Ruler.VERTICAL);
|
||||
this.setColumnHeaderView(horizontalRuler);
|
||||
this.setRowHeaderView(verticalRuler);
|
||||
|
||||
UnitSelector selector = new UnitSelector(rulerUnit);
|
||||
selector.setFont(new Font("SansSerif", Font.PLAIN, 8));
|
||||
this.setCorner(JScrollPane.UPPER_LEFT_CORNER, selector);
|
||||
|
||||
unitSelector = new UnitSelector(rulerUnit);
|
||||
unitSelector.setFont(new Font("SansSerif", Font.PLAIN, 8));
|
||||
this.setCorner(JScrollPane.UPPER_LEFT_CORNER, unitSelector);
|
||||
|
||||
this.setBorder(BorderFactory.createLineBorder(Color.LIGHT_GRAY));
|
||||
|
||||
@ -176,6 +178,14 @@ public class ScaleScrollPane extends JScrollPane
|
||||
public Unit getCurrentUnit() {
|
||||
return rulerUnit.getCurrentUnit();
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates the units of the ruler to the default units of the current unit group.
|
||||
*/
|
||||
public void updateRulerUnit() {
|
||||
rulerUnit.setCurrentUnit(UnitGroup.UNITS_LENGTH.getDefaultUnit());
|
||||
unitSelector.stateChanged(new EventObject(this));
|
||||
}
|
||||
|
||||
public String toViewportString(){
|
||||
Rectangle view = this.getViewport().getViewRect();
|
||||
|
Loading…
x
Reference in New Issue
Block a user