+++ /dev/null
-package tim.prune.save;
-
-import java.awt.BorderLayout;
-import java.awt.GridLayout;
-
-import javax.swing.BorderFactory;
-import javax.swing.JCheckBox;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.border.EtchedBorder;
-
-import tim.prune.I18nManager;
-import tim.prune.data.TrackInfo;
-
-/**
- * GUI element to allow the selection of point types for saving,
- * including checkboxes for track points, waypoints, photo points, audio points
- * and also a checkbox for the current selection
- */
-public class PointTypeSelector extends JPanel
-{
- /** Array of checkboxes */
- private JCheckBox[] _checkboxes = new JCheckBox[5];
- /** Grid panel for top row */
- private JPanel _gridPanel = null;
-
-
- /**
- * Constructor
- */
- public PointTypeSelector()
- {
- createComponents();
- setBorder(BorderFactory.createCompoundBorder(
- BorderFactory.createEtchedBorder(EtchedBorder.LOWERED), BorderFactory.createEmptyBorder(4, 4, 4, 4))
- );
- }
-
- /**
- * Create the GUI components
- */
- private void createComponents()
- {
- setLayout(new BorderLayout());
- add(new JLabel(I18nManager.getText("dialog.pointtype.desc")), BorderLayout.NORTH);
- // panel for the checkboxes
- _gridPanel = new JPanel();
- _gridPanel.setLayout(new GridLayout(0, 3, 15, 3));
- final String[] keys = {"track", "waypoint", "photo", "audio"};
- for (int i=0; i<4; i++)
- {
- _checkboxes[i] = new JCheckBox(I18nManager.getText("dialog.pointtype." + keys[i]));
- _checkboxes[i].setSelected(true);
- if (i<3) {_gridPanel.add(_checkboxes[i]);}
- }
- add(_gridPanel, BorderLayout.CENTER);
- _checkboxes[4] = new JCheckBox(I18nManager.getText("dialog.pointtype.selection"));
- add(_checkboxes[4], BorderLayout.SOUTH);
- }
-
-
- /**
- * Initialize the checkboxes from the given data
- * @param inTrackInfo TrackInfo object
- */
- public void init(TrackInfo inTrackInfo)
- {
- // Get whether track has track points, waypoints, photos
- boolean[] dataFlags = {inTrackInfo.getTrack().hasTrackPoints(),
- inTrackInfo.getTrack().hasWaypoints(),
- inTrackInfo.getPhotoList().getNumPhotos() > 0,
- inTrackInfo.getAudioList().getNumAudios() > 0
- };
- // Rearrange grid to just show the appropriate entries
- final boolean[] showFlags = {true, true, dataFlags[2] || !dataFlags[3], dataFlags[3]};
- _gridPanel.removeAll();
- for (int i=0; i<4; i++) {
- if (showFlags[i]) {_gridPanel.add(_checkboxes[i]);}
- }
- // Enable or disable checkboxes according to data present
- for (int i=0; i<4; i++)
- {
- if (dataFlags[i]) {
- if (!_checkboxes[i].isEnabled()) {_checkboxes[i].setSelected(true);}
- _checkboxes[i].setEnabled(true);
- }
- else {
- _checkboxes[i].setSelected(false);
- _checkboxes[i].setEnabled(false);
- }
- }
- _checkboxes[4].setEnabled(inTrackInfo.getSelection().hasRangeSelected());
- _checkboxes[4].setSelected(false);
- }
-
- /**
- * @return true if trackpoints selected
- */
- public boolean getTrackpointsSelected()
- {
- return _checkboxes[0].isSelected();
- }
-
- /**
- * @return true if waypoints selected
- */
- public boolean getWaypointsSelected()
- {
- return _checkboxes[1].isSelected();
- }
-
- /**
- * @return true if photo points selected
- */
- public boolean getPhotopointsSelected()
- {
- return _checkboxes[2].isSelected();
- }
-
- /**
- * @return true if audio points selected
- */
- public boolean getAudiopointsSelected()
- {
- return _checkboxes[3].isSelected();
- }
-
- /**
- * @return true if only the current selection should be saved
- */
- public boolean getJustSelection()
- {
- return _checkboxes[4].isSelected();
- }
-
- /**
- * @return true if at least one type selected
- */
- public boolean getAnythingSelected()
- {
- return getTrackpointsSelected() || getWaypointsSelected()
- || getPhotopointsSelected() || getAudiopointsSelected();
- }
-}