import javax.swing.Icon;
import javax.swing.JButton;
import javax.swing.JComboBox;
+import javax.swing.JLabel;
/**
* A small panel that let you choose a zoom level or an actual zoom value (when
private JButton zoomOut;
private JButton snapWidth;
private JButton snapHeight;
+ private JLabel zoomLabel;
@SuppressWarnings("rawtypes") // JComboBox<?> is not java 1.6 compatible
private JComboBox zoombox;
}
});
+ zoomLabel = new JLabel();
+
setIcons(null, null, null, null);
setOrientation(vertical);
}
/**
* The zoom level.
* <p>
- * It usually returns 1 (default value), the value you passed yourself or 0
+ * It usually returns 1 (default value), the value you passed yourself or 1
* (a snap to width or snap to height was asked by the user).
* <p>
* Will cause a fire event if needed.
* the zoom level
*/
private void doSetZoom(double zoom) {
- if (snapMode == null) {
- zoomBoxModel.setSelectedItem(
- Integer.toString((int) Math.round(zoom * 100)) + " %");
+ if (zoom > 0) {
+ String zoomStr = Integer.toString((int) Math.round(zoom * 100))
+ + " %";
+ zoomLabel.setText(zoomStr);
+ if (snapMode == null) {
+ zoomBoxModel.setSelectedItem(zoomStr);
+ }
}
this.zoom = zoom;
*/
private void doSetSnapMode(Boolean snapToWidth) {
if (snapToWidth == null) {
- zoomBoxModel.setSelectedItem(
- Integer.toString((int) Math.round(zoom * 100)) + " %");
+ String zoomStr = Integer.toString((int) Math.round(zoom * 100))
+ + " %";
+ if (zoom > 0) {
+ zoomBoxModel.setSelectedItem(zoomStr);
+ }
} else {
for (ZoomLevel level : ZoomLevel.values()) {
if (level.getSnapToWidth() == snapToWidth) {
this.removeAll();
setLayout(layout);
- this.add(zoomIn);
if (vertical || small) {
+ this.add(zoomIn);
this.add(snapWidth);
this.add(snapHeight);
+ this.add(zoomOut);
+ this.add(zoomLabel);
} else {
+ this.add(zoomIn);
this.add(zoombox);
+ this.add(zoomOut);
}
- this.add(zoomOut);
this.revalidate();
this.repaint();