X-Git-Url: http://gitweb.fperrin.net/?p=GpsPrune.git;a=blobdiff_plain;f=src%2Ftim%2Fprune%2Fload%2Fbabel%2FFilterDefinition.java;fp=src%2Ftim%2Fprune%2Fload%2Fbabel%2FFilterDefinition.java;h=84179080379c4cf1cfa833db3bf4ccf0a820fcb3;hp=0000000000000000000000000000000000000000;hb=ce6f2161b8596f7018d6a76bff79bc9e571f35fd;hpb=2d8cb72e84d5cc1089ce77baf1e34ea3ea2f8465 diff --git a/src/tim/prune/load/babel/FilterDefinition.java b/src/tim/prune/load/babel/FilterDefinition.java new file mode 100644 index 0000000..8417908 --- /dev/null +++ b/src/tim/prune/load/babel/FilterDefinition.java @@ -0,0 +1,59 @@ +package tim.prune.load.babel; + +import java.awt.event.KeyAdapter; +import java.awt.event.KeyEvent; +import java.awt.event.KeyListener; + +import javax.swing.JPanel; +import javax.swing.SwingUtilities; + +/** + * Superclass of all the filter definition panels, to be added in the cardset + * of the AddFilterDialog + */ +public abstract class FilterDefinition extends JPanel +{ + /** Parent dialog to inform of parameter changes */ + private AddFilterDialog _parentDialog = null; + /** Listener for key presses on the parameter entry fields */ + protected KeyListener _paramChangeListener = null; + + /** + * Constructor + */ + public FilterDefinition(AddFilterDialog inFilterDialog) + { + _parentDialog = inFilterDialog; + _paramChangeListener = new KeyAdapter() { + public void keyTyped(KeyEvent arg0) { + SwingUtilities.invokeLater(new Runnable() { + public void run() { + _parentDialog.filterParamsChanged(); + } + }); + } + }; + } + + /** + * @return true if the filter definition is valid + */ + public abstract boolean isFilterValid(); + + /** + * @return filter definition to pass to gpsbabel + */ + public String getString() + { + return "-x " + getFilterName() + getParameters(); + } + + /** @return filter name */ + protected abstract String getFilterName(); + + /** Construct the GUI elements and add them to the panel */ + protected abstract void makePanelContents(); + + /** @return filter parameters */ + protected abstract String getParameters(); +}