import java.awt.BorderLayout;\r
import java.awt.Font;\r
import java.awt.Color;\r
-import org.biojava.dasobert.dasregistry.DasSource;\r
-import org.biojava.dasobert.dasregistry.DasCoordinateSystem;\r
\r
public class FeatureSettings extends JPanel\r
{\r
if (af.getViewport().featuresDisplayed == null || fr.renderOrder==null)\r
fr.findAllFeatures();\r
\r
-\r
setTableData();\r
\r
frame = new JInternalFrame();\r
frame.setLayer(JLayeredPane.PALETTE_LAYER);\r
}\r
\r
- public void setTableData()\r
+ synchronized public void setTableData()\r
{\r
alignmentHasFeatures = false;\r
\r
{\r
visible = ( (Boolean) fr.featureGroups.get(group)).booleanValue();\r
}\r
- else\r
- {\r
- fr.featureGroups.put(group, new Boolean(visible));\r
+\r
if (groupPanel == null)\r
{\r
groupPanel = new JPanel();\r
}\r
\r
+ boolean alreadyAdded = false;\r
+ for(int g=0; g<groupPanel.getComponentCount(); g++)\r
+ {\r
+ if(((JCheckBox)groupPanel.getComponent(g))\r
+ .getText().equals(group))\r
+ {\r
+ alreadyAdded = true;\r
+ break;\r
+ }\r
+ }\r
+\r
+ if(alreadyAdded)\r
+ continue;\r
+\r
+ fr.featureGroups.put(group, new Boolean(visible));\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
groupPanel.add(check);\r
}\r
- }\r
-\r
}\r
\r
if (!allFeatures.contains(tmpfeatures[index].getType()))\r
{\r
Vector selectedSources = dassourceBrowser.getSelectedSources();\r
\r
- int uniprotCount = 0;\r
- for(int i=0; i<selectedSources.size(); i++)\r
+ SequenceI [] dataset, seqs ;\r
+ int iSize;\r
+\r
+ if(af.getViewport().getSelectionGroup()!=null\r
+ && af.getViewport().getSelectionGroup().getSize(false)>0)\r
{\r
- DasSource source = (DasSource)selectedSources.elementAt(i);\r
- DasCoordinateSystem [] coords = source.getCoordinateSystem();\r
- for(int c=0; c<coords.length; c++)\r
- {\r
- if (coords[c].getName().equalsIgnoreCase("UniProt"))\r
- {\r
- uniprotCount++;\r
- break;\r
- }\r
- }\r
+ iSize = af.getViewport().getSelectionGroup().getSize(false);\r
+ dataset = new SequenceI[iSize];\r
+ seqs = af.getViewport().getSelectionGroup().\r
+ getSequencesInOrder(\r
+ af.getViewport().getAlignment());\r
+ }\r
+ else\r
+ {\r
+ iSize = af.getViewport().getAlignment().getHeight();\r
+ seqs = af.getViewport().getAlignment().getSequencesArray();\r
}\r
\r
- System.out.println("User selection is "\r
- + (((float)uniprotCount/(float)selectedSources.size())*100)\r
- +" % Uniprot");\r
+ dataset = new SequenceI[iSize];\r
+ for (int i = 0; i < iSize; i++)\r
+ {\r
+ dataset[i] = seqs[i].getDatasetSequence();\r
+ }\r
\r
- new jalview.io.DasSequenceFeatureFetcher(af.getViewport().getAlignment(),\r
- af,\r
- selectedSources);\r
+ new jalview.io.DasSequenceFeatureFetcher(\r
+ dataset,\r
+ af,\r
+ selectedSources);\r
\r
af.getViewport().setShowSequenceFeatures(true);\r
af.showSeqFeatures.setSelected(true);\r