import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.HashMap;
private Map<String, FeatureMatcherSetI> originalFilters;
+ private List<String> originalVisibleGroups;
+
+ private List<String> originalHiddenGroups;
+
final JInternalFrame frame;
JScrollPane scrollPane = new JScrollPane();
originalFilters = new HashMap<>(fr.getFeatureFilters()); // shallow copy
+ originalVisibleGroups = new ArrayList<>(fr.getGroups(true));
+
+ originalHiddenGroups = new ArrayList<>(fr.getGroups(false));
+
try
{
jbInit();
@Override
public void actionPerformed(ActionEvent e)
{
- fr.setTransparency(originalTransparency);
- fr.setFeatureFilters(originalFilters);
- updateFeatureRenderer(originalData);
- close();
+ cancel();
}
});
this.add(settingsPane);
}
+ /**
+ * Restores feature type and group visibility, and any filters and
+ * transparency setting, to the values when this dialog was opened. Note this
+ * won't affect any feature types or groups which were added while the dialog
+ * was open.
+ */
+ void cancel()
+ {
+ fr.setTransparency(originalTransparency);
+ fr.setFeatureFilters(originalFilters);
+ fr.setGroupVisibility(originalVisibleGroups, true);
+ fr.setGroupVisibility(originalHiddenGroups, false);
+ updateFeatureRenderer(originalData);
+ close();
+ }
+
// ///////////////////////////////////////////////////////////////////////
// http://java.sun.com/docs/books/tutorial/uiswing/components/table.html
// ///////////////////////////////////////////////////////////////////////