package jalview.gui; import jalview.datamodel.*; import javax.swing.*; import javax.swing.event.*; import java.awt.*; import java.util.*; import javax.swing.BorderFactory; import java.awt.event.*; import javax.swing.table.*; public class FeatureSettings extends JPanel { Vector allFeatures; final FeatureRenderer fr; final AlignmentPanel ap; Object [][] originalData; public FeatureSettings(AlignViewport av, final AlignmentPanel ap) { this.ap = ap; fr = ap.seqPanel.seqCanvas.getFeatureRenderer(); av.alignment.getSequences(); final JInternalFrame frame = new JInternalFrame(); frame.setContentPane(this); Desktop.addInternalFrame(frame, "Sequence Feature Settings", 500, 300); allFeatures = new Vector(); Vector features; Enumeration e; SequenceFeature sf; for(int i=0; i< av.alignment.getHeight(); i++) { features = av.alignment.getSequenceAt(i).getSequenceFeatures(); if(features==null) continue; e = features.elements(); while(e.hasMoreElements()) { sf = (SequenceFeature)e.nextElement(); if(!allFeatures.contains(sf.getType())) { allFeatures.addElement(sf.getType()); } } } if(allFeatures.size()<1) { try{ frame.setClosed(true); }catch(Exception ex){} return; } int fSize = allFeatures.size(); String type; Object [][] data = new Object[fSize][3]; originalData = new Object[fSize][3]; for(int i=0; i