+ tmpfeatures = av.alignment.getSequenceAt(i).getDatasetSequence().getSequenceFeatures();\r
+ int index = 0;\r
+ while (index < tmpfeatures.length)\r
+ {\r
+ if(tmpfeatures[index].getFeatureGroup()!=null)\r
+ {\r
+ group = tmpfeatures[index].featureGroup;\r
+ if(!allGroups.contains(group))\r
+ {\r
+ allGroups.addElement(group);\r
+\r
+ boolean visible = true;\r
+ if (fr.featureGroups.containsKey(group))\r
+ {\r
+ visible = ( (Boolean) fr.featureGroups.get(group)).booleanValue();\r
+ }\r
+\r
+ fr.featureGroups.put(group, new Boolean(visible));\r
+\r
+ if (groupPanel == null)\r
+ {\r
+ groupPanel = new JPanel();\r
+ }\r
+\r
+ final JCheckBox check = new JCheckBox(group, visible);\r
+ check.setFont(new Font("Serif", Font.BOLD, 12));\r
+ check.addItemListener(new ItemListener()\r
+ {\r
+ public void itemStateChanged(ItemEvent evt)\r
+ {\r
+ fr.featureGroups.put(check.getText(),\r
+ new Boolean(check.isSelected()));\r
+ ap.seqPanel.seqCanvas.repaint();\r
+ if (ap.overviewPanel != null)\r
+ ap.overviewPanel.updateOverviewImage();\r
+\r
+ resetTable(true);\r
+ }\r
+ });\r
+ groupPanel.add(check);\r
+\r
+ }\r
+\r
+ }\r
+\r
+ if (!allFeatures.contains(tmpfeatures[index].getType()))\r