+++ /dev/null
-package tim.prune.save;
-
-import java.awt.Color;
-import java.awt.Dimension;
-import java.awt.Graphics;
-
-import javax.swing.JPanel;
-
-import tim.prune.I18nManager;
-
-/**
- * GUI component to display an image preview for the POV export
- * and for the image export
- */
-public class ImagePreviewPanel extends JPanel
-{
- /** Base image */
- private GroutedImage _baseImage = null;
- /** Loading flag */
- private boolean _loading = false;
-
- /** String to show before image is loaded */
- private static final String LOADING_STRING = I18nManager.getText("details.photo.loading") + " ...";
- /** Colour to use if there aren't any tiles at all (same as colour of POV export without image) */
- private static final Color EMPTY_IMAGE_COLOUR = new Color(0.5f, 0.75f, 0.8f);
-
-
- /** Set the base image */
- public void setImage(GroutedImage inImage)
- {
- _baseImage = inImage;
- _loading = false;
- repaint();
- }
-
- /** Inform that a load is starting */
- public void startLoading()
- {
- _baseImage = null;
- _loading = true;
- repaint();
- }
-
- /** Get minimum size */
- public Dimension getMinimumSize() {
- return new Dimension(200, 200);
- }
- /** Preferred size */
- public Dimension getPreferredSize() {
- return getMinimumSize();
- }
-
- /**
- * Override paint method
- * @see javax.swing.JComponent#paint(java.awt.Graphics)
- */
- public void paint(Graphics inG)
- {
- super.paint(inG);
- if (_loading)
- {
- inG.setColor(Color.BLACK);
- inG.drawString(LOADING_STRING, 10, 30);
- }
- else if (_baseImage != null)
- {
- final int width = getWidth();
- final int height = getHeight();
- final int previewSize = Math.min(width, height);
- if (previewSize > 1)
- {
- if (_baseImage.isValid())
- {
- inG.drawImage(_baseImage.getImage(),
- (width-previewSize)/2, (height-previewSize)/2, previewSize, previewSize, this);
- }
- else
- {
- // No content found at all
- inG.setColor(EMPTY_IMAGE_COLOUR);
- inG.fillRect((width-previewSize)/2, (height-previewSize)/2, previewSize, previewSize);
- }
- // draw frame around it to make it more obvious
- inG.setColor(Color.BLACK);
- inG.drawRect((width-previewSize)/2, (height-previewSize)/2, previewSize-1, previewSize-1);
- }
- }
- }
-
- /**
- * @return true if there is an image to use and it contains map tiles
- */
- public boolean getTilesFound()
- {
- return _baseImage != null && _baseImage.isValid() && _baseImage.getImageSize() > 1
- && _baseImage.getNumTilesUsed() > 0;
- }
-}