+++ /dev/null
-package tim.prune.gui;
-
-import java.awt.BorderLayout;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-
-import javax.swing.BorderFactory;
-import javax.swing.JButton;
-import javax.swing.JDialog;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.border.EtchedBorder;
-
-import tim.prune.I18nManager;
-import tim.prune.data.Track;
-import tim.prune.gui.map.MapSource;
-import tim.prune.gui.map.MapSourceLibrary;
-import tim.prune.save.BaseImageConfigDialog;
-import tim.prune.save.BaseImageConsumer;
-import tim.prune.save.MapGrouter;
-import tim.prune.threedee.ImageDefinition;
-
-/**
- * Panel used to show the current base image details
- * and an edit button to change the definition
- */
-public class BaseImageDefinitionPanel extends JPanel implements BaseImageConsumer
-{
- /** Parent object (if any) */
- private BaseImageConsumer _parent = null;
- /** Label to describe the current settings */
- private JLabel _baseImageLabel = null;
- /** Button for changing the definition */
- private JButton _editButton = null;
- /** Dialog called by the "Edit" button to change the settings */
- private BaseImageConfigDialog _baseImageConfig = null;
-
-
- /**
- * Constructor
- * @param inParent parent object to inform about changes
- * @param inParentDialog parent dialog
- * @param inTrack track object
- */
- public BaseImageDefinitionPanel(BaseImageConsumer inParent, JDialog inParentDialog,
- Track inTrack)
- {
- _parent = inParent;
- _baseImageConfig = new BaseImageConfigDialog(this, inParentDialog, inTrack);
-
- // Etched border
- setBorder(BorderFactory.createCompoundBorder(
- BorderFactory.createEtchedBorder(EtchedBorder.LOWERED), BorderFactory.createEmptyBorder(4, 4, 4, 4))
- );
- setLayout(new BorderLayout());
-
- // GUI components
- JPanel subPanel = new JPanel();
- subPanel.setLayout(new BorderLayout(10, 4));
- subPanel.add(new JLabel(I18nManager.getText("dialog.exportpov.baseimage") + ": "), BorderLayout.WEST);
- _baseImageLabel = new JLabel("Typical sourcename");
- subPanel.add(_baseImageLabel, BorderLayout.CENTER);
- _editButton = new JButton(I18nManager.getText("button.edit"));
- _editButton.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent event) {
- changeBaseImage();
- }
- });
- subPanel.add(_editButton, BorderLayout.EAST);
- add(subPanel, BorderLayout.NORTH);
- }
-
- /**
- * @param inDefinition image definition from interactive step
- */
- public void initImageParameters(ImageDefinition inDefinition)
- {
- _baseImageConfig.setImageDefinition(inDefinition);
- }
-
- /**
- * Change the base image by calling the BaseImageConfigDialog
- */
- private void changeBaseImage()
- {
- // Check if there is a cache to use
- if (BaseImageConfigDialog.isImagePossible())
- {
- // Show new dialog to choose image details
- _baseImageConfig.begin();
- }
- // TODO: What if it isn't possible? Should the caller show the error message?
- //else {
- // _app.showErrorMessage(getNameKey(), "dialog.exportimage.noimagepossible");
- //}
- }
-
- /**
- * Callback from base image config dialog
- */
- public void baseImageChanged()
- {
- updateBaseImageDetails();
- if (_parent != null) {
- _parent.baseImageChanged();
- }
- }
-
- /**
- * Update the description label according to the selected base image details
- */
- public void updateBaseImageDetails()
- {
- String desc = null;
- ImageDefinition imageDef = _baseImageConfig.getImageDefinition();
- // Check if selected zoom level is suitable or not, if not then set image to no
- if (imageDef.getUseImage() && !_baseImageConfig.isSelectedZoomValid()) {
- imageDef.setUseImage(false, imageDef.getSourceIndex(), 5);
- }
- // Make a description for the label
- if (imageDef.getUseImage())
- {
- MapSource source = MapSourceLibrary.getSource(imageDef.getSourceIndex());
- if (source != null)
- {
- desc = source.getName() + " (" + imageDef.getZoom() + ")";
- }
- }
- if (desc == null) {
- desc = I18nManager.getText("dialog.about.no");
- }
- _baseImageLabel.setText(desc);
- _editButton.setEnabled(BaseImageConfigDialog.isImagePossible());
- }
-
- /**
- * @return the grouter object for reuse of the prepared images
- */
- public MapGrouter getGrouter()
- {
- return _baseImageConfig.getGrouter();
- }
-
- /**
- * @return image definition
- */
- public ImageDefinition getImageDefinition() {
- return _baseImageConfig.getImageDefinition();
- }
-
- /**
- * @return true if any tiles were found
- */
- public boolean getFoundData() {
- return _baseImageConfig.getFoundData();
- }
-}