Added filter check boxes to limit the displayed components based on fitting with...
[debian/openrocket] / core / src / net / sf / openrocket / gui / dialogs / preset / ComponentPresetRowFilter.java
1 package net.sf.openrocket.gui.dialogs.preset;
2
3 import javax.swing.RowFilter;
4 import javax.swing.table.TableModel;
5
6 import net.sf.openrocket.unit.Value;
7
8 public class ComponentPresetRowFilter extends RowFilter<TableModel, Object> {
9         
10         private final double value;
11         private final int column;
12         // FIXME - what should epsilon be?
13         private final double epsilon = .0002;
14         
15         ComponentPresetRowFilter( double value, int column ) {
16                 this.value = value;
17                 this.column = column;
18         }
19
20         @Override
21         public boolean include( RowFilter.Entry<? extends TableModel, ? extends Object> entry) {
22                 Object o = entry.getValue(column);
23                 if ( o instanceof Value ) {
24                         Value v = (Value)o;
25                         return Math.abs( value - v.getValue() ) < epsilon;
26                 }
27                 if ( o instanceof Double ) {
28                         Double d = (Double) o;
29                         return Math.abs( value - d ) < epsilon;
30                 }
31                 return true;
32         }
33
34 }