]> gitweb.fperrin.net Git - GpsPrune.git/blobdiff - tim/prune/load/babel/SimplifyFilter.java
Moved source into separate src directory due to popular request
[GpsPrune.git] / tim / prune / load / babel / SimplifyFilter.java
diff --git a/tim/prune/load/babel/SimplifyFilter.java b/tim/prune/load/babel/SimplifyFilter.java
deleted file mode 100644 (file)
index 1567c88..0000000
+++ /dev/null
@@ -1,147 +0,0 @@
-package tim.prune.load.babel;
-
-import java.awt.BorderLayout;
-import java.awt.Component;
-import java.awt.GridLayout;
-
-import javax.swing.Box;
-import javax.swing.BoxLayout;
-import javax.swing.ButtonGroup;
-import javax.swing.JComboBox;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.JRadioButton;
-
-import tim.prune.I18nManager;
-import tim.prune.data.UnitSetLibrary;
-import tim.prune.gui.DecimalNumberField;
-import tim.prune.gui.WholeNumberField;
-
-/**
- * Simplify filter for GPSBabel
- */
-public class SimplifyFilter extends FilterDefinition
-{
-       /** Constructor */
-       public SimplifyFilter(AddFilterDialog inFilterDialog)
-       {
-               super(inFilterDialog);
-               makePanelContents();
-       }
-
-       private WholeNumberField _maxPointsField = null;
-       private DecimalNumberField _distField = null;
-       private JComboBox<String> _distUnitsCombo = null;
-       private JRadioButton _crossTrackRadio = null;
-       private JRadioButton _lengthRadio = null;
-       private JRadioButton _relativeRadio = null;
-
-
-       /** @return filter name */
-       protected String getFilterName() {
-               return "simplify";
-       }
-
-       /** Make the panel contents */
-       protected void makePanelContents()
-       {
-               setLayout(new BorderLayout());
-               JPanel boxPanel = new JPanel();
-               boxPanel.setLayout(new BoxLayout(boxPanel, BoxLayout.Y_AXIS));
-               add(boxPanel, BorderLayout.NORTH);
-               JLabel topLabel = new JLabel(I18nManager.getText("dialog.gpsbabel.filter.simplify.intro"));
-               topLabel.setAlignmentX(Component.LEFT_ALIGNMENT);
-               boxPanel.add(topLabel);
-               boxPanel.add(Box.createVerticalStrut(18)); // spacer
-               // Main three-column grid
-               JPanel gridPanel = new JPanel();
-               gridPanel.setLayout(new GridLayout(0, 3, 4, 4));
-               gridPanel.add(new JLabel(I18nManager.getText("dialog.gpsbabel.filter.simplify.maxpoints")));
-               _maxPointsField = new WholeNumberField(6);
-               _maxPointsField.addKeyListener(_paramChangeListener);
-               gridPanel.add(_maxPointsField);
-               gridPanel.add(new JLabel(" "));
-               gridPanel.add(new JLabel(I18nManager.getText("dialog.gpsbabel.filter.simplify.maxerror")));
-               _distField = new DecimalNumberField();
-               _distField.addKeyListener(_paramChangeListener);
-               gridPanel.add(_distField);
-               _distUnitsCombo = new JComboBox<String>(new String[] {
-                       I18nManager.getText(UnitSetLibrary.UNITS_KILOMETRES.getNameKey()),
-                       I18nManager.getText(UnitSetLibrary.UNITS_MILES.getNameKey())
-               });
-               gridPanel.add(_distUnitsCombo);
-               // radio buttons
-               _crossTrackRadio = new JRadioButton(I18nManager.getText("dialog.gpsbabel.filter.simplify.crosstrack"));
-               _crossTrackRadio.setSelected(true);
-               _lengthRadio     = new JRadioButton(I18nManager.getText("dialog.gpsbabel.filter.simplify.length"));
-               _relativeRadio   = new JRadioButton(I18nManager.getText("dialog.gpsbabel.filter.simplify.relative"));
-               ButtonGroup radioGroup = new ButtonGroup();
-               radioGroup.add(_crossTrackRadio);
-               radioGroup.add(_lengthRadio);
-               radioGroup.add(_relativeRadio);
-               gridPanel.add(_crossTrackRadio);
-               gridPanel.add(_lengthRadio);
-               gridPanel.add(_relativeRadio);
-               gridPanel.setAlignmentX(Component.LEFT_ALIGNMENT);
-               boxPanel.add(gridPanel);
-       }
-
-       /**
-        * @return true if the filters are valid
-        */
-       public boolean isFilterValid()
-       {
-               final boolean countGiven = _maxPointsField.getText() != null && _maxPointsField.getText().trim().length() > 0;
-               final boolean distGiven = _distField.getText() != null && _distField.getText().trim().length() > 0;
-               if ((!countGiven && !distGiven) || (countGiven && distGiven)) {
-                       return false; // only one or the other allowed
-               }
-               if (countGiven && _maxPointsField.getValue() <= 1) {
-                       return false; // must have a decent max points
-               }
-               if (distGiven && _distField.getValue() <= 0.001) {
-                       return false; // no zero or negative distances allowed
-               }
-               // must be ok
-               return true;
-       }
-
-       /**
-        * @return filter parameters as a string, or null
-        */
-       protected String getParameters()
-       {
-               if (!isFilterValid()) return null;
-               StringBuilder builder = new StringBuilder();
-               // type
-               final boolean countGiven = _maxPointsField.getText() != null && _maxPointsField.getText().trim().length() > 0;
-               final boolean distGiven = _distField.getText() != null && _distField.getText().trim().length() > 0;
-               if (countGiven) {
-                       builder.append(",count=").append(_maxPointsField.getValue());
-               }
-               else if (distGiven)
-               {
-                       double dValue = 1.0;
-                       try {
-                               dValue = Double.parseDouble(_distField.getText());
-                       }
-                       catch (Exception e) {} // shouldn't happen, otherwise validation would have failed
-                       builder.append(",error=").append(dValue);
-                       // units of distance (miles by default)
-                       if (_distUnitsCombo.getSelectedIndex() == 0) {
-                               builder.append("k"); // nothing for miles
-                       }
-               }
-               // three options
-               if (_crossTrackRadio.isSelected()) {
-                       builder.append(",crosstrack"); // default, could not pass it
-               }
-               else if (_lengthRadio.isSelected()) {
-                       builder.append(",length");
-               }
-               else if (_relativeRadio.isSelected()) {
-                       builder.append(",relative");
-               }
-               return builder.toString();
-       }
-}