DAS feature retrieval updated
authoramwaterhouse <Andrew Waterhouse>
Thu, 13 Jul 2006 17:01:38 +0000 (17:01 +0000)
committeramwaterhouse <Andrew Waterhouse>
Thu, 13 Jul 2006 17:01:38 +0000 (17:01 +0000)
src/jalview/gui/AlignFrame.java
src/jalview/gui/AnnotationPanel.java
src/jalview/gui/DasSourceBrowser.java
src/jalview/gui/FeatureSettings.java
src/jalview/jbgui/GAlignFrame.java
src/jalview/jbgui/GDasSourceBrowser.java

index e59ee59..c1f088b 100755 (executable)
@@ -203,6 +203,8 @@ public class AlignFrame
     {\r
       alignPanel.seqPanel.seqCanvas.fr.featuresAdded();\r
       alignPanel.repaint();\r
+      if(featureSettings!=null)\r
+        featureSettings.setTableData();\r
     }\r
   }\r
 \r
@@ -1459,31 +1461,15 @@ public class AlignFrame
   }\r
 \r
 \r
-  public void dbRefs_actionPerformed(ActionEvent e)\r
-  {\r
-    new DBRefFetcher(viewport.alignment, this);\r
-  }\r
-\r
-  public void defaultDASSource_actionPerformed(ActionEvent e)\r
-  {\r
-    new DasSequenceFeatureFetcher(viewport.alignment, this);\r
-    viewport.setShowSequenceFeatures(true);\r
-    showSeqFeatures.setSelected(true);\r
-  }\r
-\r
-  public void modifyDASSource_actionPerformed(ActionEvent e)\r
-  {\r
-    DasSourceBrowser dsb = new DasSourceBrowser();\r
-    JInternalFrame frame = new JInternalFrame();\r
-    frame.setContentPane(dsb);\r
-    Desktop.addInternalFrame(frame, "Modify DAS Source",\r
-        600,370);\r
-  }\r
-\r
-\r
+  FeatureSettings featureSettings;\r
   public void featureSettings_actionPerformed(ActionEvent e)\r
   {\r
-    new FeatureSettings(viewport, alignPanel);\r
+    if(featureSettings !=null )\r
+    {\r
+      featureSettings.close();\r
+      featureSettings = null;\r
+    }\r
+    featureSettings = new FeatureSettings(this);\r
   }\r
 \r
   /**\r
index b0027a8..30d9068 100755 (executable)
@@ -1027,8 +1027,7 @@ public class AnnotationPanel extends JPanel implements MouseListener,
 \r
       if(sRes==0)\r
       {\r
-        sRes++;\r
-        x+=av.charWidth;\r
+        x++;\r
       }\r
 \r
       int y1=y, y2=y;\r
index afacb41..bacb383 100755 (executable)
@@ -240,6 +240,7 @@ public class DasSourceBrowser extends GDasSourceBrowser
 \r
   public void run()\r
   {\r
+    System.out.println("das source browser running");\r
     addLocal.setVisible(false);\r
     refresh.setVisible(false);\r
     progressBar.setVisible(true);\r
@@ -252,6 +253,25 @@ public class DasSourceBrowser extends GDasSourceBrowser
     init();\r
   }\r
 \r
+  public Vector getSelectedSources()\r
+  {\r
+    Vector selected = new Vector();\r
+    for (int r = 0; r < selectedSources.size(); r++)\r
+    {\r
+        for (int i = 0; i < dasSources.length; i++)\r
+        {\r
+          if (dasSources[i].getNickname().equals(\r
+              selectedSources.elementAt(r)))\r
+          {\r
+            selected.addElement(dasSources[i]);\r
+            break;\r
+          }\r
+        }\r
+    }\r
+\r
+    return selected;\r
+  }\r
+\r
   public DasSource[] getDASSource()\r
   {\r
     if(dasSources==null)\r
@@ -552,12 +572,19 @@ public class DasSourceBrowser extends GDasSourceBrowser
     ArrayList selected = new ArrayList();\r
     DasSource ds;\r
 \r
+    //The features filter is not visible, but we must still\r
+    //filter the das source list here.\r
+    //July 2006 - only 6 sources fo not serve features\r
+    Object [] dummyFeatureList = new Object[]{"features"};\r
+\r
     // capabilities.get\r
     for (int i = 0; i < dSize; i++)\r
     {\r
       ds = dasSources[i];\r
 \r
-      if (!selectedInList(filter3, ds.getLabels()))\r
+      if (!selectedInList(dummyFeatureList, ds.getCapabilities())\r
+      ||  !selectedInList(filter3.getSelectedValues(),\r
+                          ds.getLabels()))\r
       {\r
         continue;\r
       }\r
@@ -565,9 +592,13 @@ public class DasSourceBrowser extends GDasSourceBrowser
       DasCoordinateSystem[] dcs = ds.getCoordinateSystem();\r
       for (int j = 0; j < dcs.length; j++)\r
       {\r
-        if (selectedInList(filter1, new String[]\r
+        if (selectedInList(dummyFeatureList,ds.getCapabilities())\r
+        &&\r
+            selectedInList(filter1.getSelectedValues(),\r
+                           new String[]\r
                            {dcs[j].getName()})\r
-            && selectedInList(filter2, new String[]\r
+            && selectedInList(filter2.getSelectedValues(),\r
+                              new String[]\r
                               {dcs[j].getCategory()}))\r
         {\r
           names.add(ds.getNickname());\r
@@ -589,9 +620,8 @@ public class DasSourceBrowser extends GDasSourceBrowser
     refreshTableData(data);\r
   }\r
 \r
-  boolean selectedInList(JList list, String[] items)\r
+  boolean selectedInList(Object [] selection, String[] items)\r
   {\r
-    Object[] selection = list.getSelectedValues();\r
     for (int i = 0; i < selection.length; i++)\r
     {\r
       if (selection[i].equals("Any"))\r
@@ -638,7 +668,7 @@ public class DasSourceBrowser extends GDasSourceBrowser
      }\r
   }\r
 \r
-  void saveProperties(Properties properties)\r
+  public void saveProperties(Properties properties)\r
   {\r
     properties.setProperty("DAS_REGISTRY_URL", registryURL.getText());\r
 \r
index 4139645..b720008 100755 (executable)
@@ -28,130 +28,64 @@ import java.awt.event.*;
 import javax.swing.table.*;\r
 import java.io.*;\r
 import jalview.io.JalviewFileChooser;\r
+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
+  DasSourceBrowser dassourceBrowser;\r
+  JPanel settingsPane = new JPanel();\r
+  JPanel dasSettingsPane = new JPanel();\r
 \r
   final FeatureRenderer fr;\r
-  final AlignmentPanel ap;\r
-  final AlignViewport av;\r
+  final AlignFrame af;\r
   Object [][] originalData;\r
   final JInternalFrame frame;\r
   JScrollPane scrollPane = new JScrollPane();\r
   JTable table;\r
   JPanel groupPanel;\r
+  JSlider transparency = new JSlider();\r
 \r
+  JPanel transPanel = new JPanel(new FlowLayout());\r
   boolean alignmentHasFeatures = false;\r
 \r
-  public FeatureSettings(AlignViewport av, final AlignmentPanel ap)\r
+  public FeatureSettings(AlignFrame af)\r
   {\r
-    this.ap = ap;\r
-    this.av = av;\r
-    fr = ap.seqPanel.seqCanvas.getFeatureRenderer();\r
-    if (av.featuresDisplayed == null || fr.renderOrder==null)\r
-       fr.findAllFeatures();\r
+    this.af = af;\r
+    fr = af.getFeatureRenderer();\r
 \r
-    frame = new JInternalFrame();\r
-    frame.setContentPane(this);\r
-    Desktop.addInternalFrame(frame, "Sequence Feature Settings", 400, 300);\r
-    frame.setLayer(JLayeredPane.PALETTE_LAYER);\r
+    transparency.setMaximum( 100 - (int)(fr.transparency*100) ) ;\r
 \r
-    setTableData();\r
+   try\r
+   {\r
+     jbInit();\r
+   }\r
+   catch (Exception ex)\r
+   {\r
+     ex.printStackTrace();\r
+   }\r
 \r
-    final JSlider transparency = new JSlider(0, 70, 100 - (int)(fr.transparency*100)   );\r
-    transparency.addChangeListener(new ChangeListener()\r
-    {\r
-      public void stateChanged(ChangeEvent evt)\r
-      {\r
-        fr.setTransparency( (float) (100 - transparency.getValue()) / 100f);\r
-        ap.repaint();\r
-      }\r
-    });\r
+    dassourceBrowser = new DasSourceBrowser();\r
+    dasSettingsPane.add(dassourceBrowser, BorderLayout.CENTER);\r
 \r
-    JPanel transPanel = new JPanel(new FlowLayout());\r
-    transPanel.add(new JLabel("Transparency"));\r
-    transPanel.add(transparency);\r
-    JButton button = new JButton("Invert Selection");\r
-    transPanel.add(button);\r
-    button.addActionListener(new ActionListener()\r
-        {\r
-          public void actionPerformed(ActionEvent evt)\r
-          {\r
-            invertSelection();\r
-          }\r
-        });\r
-\r
-    //////////////////////////////////////////////\r
-    //We're going to need those OK cancel buttons\r
-    JPanel buttonPanel = new JPanel(new FlowLayout());\r
-    button = new JButton("OK");\r
-    button.addActionListener(new ActionListener()\r
-    {\r
-      public void actionPerformed(ActionEvent evt)\r
-      {\r
-        try\r
-        {\r
-          frame.setClosed(true);\r
-        }\r
-        catch (Exception exe)\r
-        {}\r
-      }\r
-    });\r
-    buttonPanel.add(button);\r
-    button = new JButton("Cancel");\r
-    button.addActionListener(new ActionListener()\r
-    {\r
-      public void actionPerformed(ActionEvent evt)\r
-      {\r
-        try\r
-        {\r
-          updateFeatureRenderer(originalData);\r
-          frame.setClosed(true);\r
-        }\r
-        catch (Exception exe)\r
-        {}\r
-      }\r
-    });\r
-    buttonPanel.add(button);\r
 \r
-    button = new JButton("Load Colours");\r
-    button.addActionListener(new ActionListener()\r
-    {\r
-      public void actionPerformed(ActionEvent evt)\r
-      {\r
-        load();\r
-      }\r
-    });\r
-    buttonPanel.add(button);\r
-    button = new JButton("Save Colours");\r
-    button.addActionListener(new ActionListener()\r
-    {\r
-      public void actionPerformed(ActionEvent evt)\r
-      {\r
-        save();\r
-      }\r
-    });\r
-    buttonPanel.add(button);\r
 \r
-    this.setLayout(new BorderLayout());\r
-    JPanel bigPanel = new JPanel(new BorderLayout());\r
-    bigPanel.add(transPanel, BorderLayout.SOUTH);\r
-    bigPanel.add(scrollPane, BorderLayout.CENTER);\r
-    if(groupPanel!=null)\r
-    {\r
-      groupPanel.setLayout(\r
-          new GridLayout(fr.featureGroups.size() / 4 + 1, 4));\r
+    if (af.getViewport().featuresDisplayed == null || fr.renderOrder==null)\r
+       fr.findAllFeatures();\r
 \r
-      groupPanel.validate();\r
-      bigPanel.add(groupPanel, BorderLayout.NORTH);\r
-    }\r
-    add(bigPanel, BorderLayout.CENTER);\r
-    add(buttonPanel, BorderLayout.SOUTH);\r
 \r
+    setTableData();\r
 \r
+    frame = new JInternalFrame();\r
+    frame.setContentPane(this);\r
+    Desktop.addInternalFrame(frame, "Sequence Feature Settings", 400, 450);\r
+    frame.setLayer(JLayeredPane.PALETTE_LAYER);\r
   }\r
 \r
-  void setTableData()\r
+  public void setTableData()\r
   {\r
     alignmentHasFeatures = false;\r
 \r
@@ -163,14 +97,14 @@ public class FeatureSettings extends JPanel
     SequenceFeature[] tmpfeatures;\r
     String group;\r
 \r
-    for (int i = 0; i < av.alignment.getHeight(); i++)\r
+    for (int i = 0; i < af.getViewport().alignment.getHeight(); i++)\r
     {\r
-      if (av.alignment.getSequenceAt(i).getDatasetSequence().getSequenceFeatures() == null)\r
+      if (af.getViewport().alignment.getSequenceAt(i).getDatasetSequence().getSequenceFeatures() == null)\r
         continue;\r
 \r
       alignmentHasFeatures = true;\r
 \r
-      tmpfeatures = av.alignment.getSequenceAt(i).getDatasetSequence().getSequenceFeatures();\r
+      tmpfeatures = af.getViewport().alignment.getSequenceAt(i).getDatasetSequence().getSequenceFeatures();\r
 \r
       int index = 0;\r
       while (index < tmpfeatures.length)\r
@@ -193,31 +127,31 @@ public class FeatureSettings extends JPanel
              {\r
                visible = ( (Boolean) fr.featureGroups.get(group)).booleanValue();\r
              }\r
-\r
-             fr.featureGroups.put(group, new Boolean(visible));\r
-\r
-             if (groupPanel == null)\r
+             else\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
+               fr.featureGroups.put(group, new Boolean(visible));\r
+               if (groupPanel == null)\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
+                 groupPanel = new JPanel();\r
                }\r
-             });\r
-             groupPanel.add(check);\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
+                   af.alignPanel.seqPanel.seqCanvas.repaint();\r
+                   if (af.alignPanel.overviewPanel != null)\r
+                     af.alignPanel.overviewPanel.updateOverviewImage();\r
+\r
+                   resetTable(true);\r
+                 }\r
+               });\r
+               groupPanel.add(check);\r
+             }\r
            }\r
 \r
        }\r
@@ -233,20 +167,20 @@ public class FeatureSettings extends JPanel
 \r
     if(!alignmentHasFeatures)\r
      {\r
-       try\r
-       { frame.setClosed(true);  }\r
-       catch (Exception ex){}\r
-\r
-       JOptionPane.showInternalMessageDialog(\r
-           Desktop.desktop, "No features have been added to this alignment!",\r
-           "No Sequence Features", JOptionPane.WARNING_MESSAGE);\r
-\r
-       return;\r
+    //   try\r
+     //  { frame.setClosed(true);  }\r
+    //   catch (Exception ex){}\r
+\r
+    //   JOptionPane.showInternalMessageDialog(\r
+    ///       Desktop.desktop, "No features have been added to this alignment!",\r
+    //\r
+   //    return;\r
      }\r
 \r
      resetTable(false);\r
   }\r
 \r
+\r
   void resetTable(boolean groupsChanged)\r
   {\r
    SequenceFeature [] tmpfeatures;\r
@@ -255,12 +189,13 @@ public class FeatureSettings extends JPanel
 \r
    //Find out which features should be visible depending on which groups\r
    //are selected / deselected\r
-    for (int i = 0; i < av.alignment.getHeight(); i++)\r
+    for (int i = 0; i < af.getViewport().alignment.getHeight(); i++)\r
     {\r
-        if (av.alignment.getSequenceAt(i).getDatasetSequence().getSequenceFeatures() == null)\r
+\r
+        tmpfeatures = af.getViewport().alignment.getSequenceAt(i).getDatasetSequence().getSequenceFeatures();\r
+        if (tmpfeatures == null)\r
           continue;\r
 \r
-        tmpfeatures = av.alignment.getSequenceAt(i).getDatasetSequence().getSequenceFeatures();\r
         int index = 0;\r
         while (index < tmpfeatures.length)\r
         {\r
@@ -302,7 +237,7 @@ public class FeatureSettings extends JPanel
 \r
            data[dataIndex][0] = type;\r
            data[dataIndex][1] = fr.getColour(type);\r
-           data[dataIndex][2] = new Boolean(av.featuresDisplayed.containsKey(type));\r
+           data[dataIndex][2] = new Boolean(af.getViewport().featuresDisplayed.containsKey(type));\r
            dataIndex++;\r
            visibleChecks.removeElement(type);\r
       }\r
@@ -376,6 +311,15 @@ public class FeatureSettings extends JPanel
           }\r
     });\r
 \r
+    if (groupPanel != null)\r
+    {\r
+      groupPanel.setLayout(\r
+          new GridLayout(fr.featureGroups.size() / 4 + 1, 4));\r
+\r
+      groupPanel.validate();\r
+      bigPanel.add(groupPanel, BorderLayout.NORTH);\r
+    }\r
+\r
     updateFeatureRenderer(data);\r
 \r
   }\r
@@ -412,11 +356,11 @@ public class FeatureSettings extends JPanel
          }\r
 \r
          setTableData();\r
-         ap.repaint();\r
+         af.alignPanel.repaint();\r
        }\r
        catch (Exception ex)\r
        {\r
-         System.out.println("Error loading User ColourFile\n" + ex);\r
+         System.out.println("Error loading User Colour File\n" + ex);\r
        }\r
      }\r
   }\r
@@ -472,20 +416,179 @@ public class FeatureSettings extends JPanel
           new Boolean(!value.booleanValue()),\r
                        i,2);\r
     }\r
+  }\r
+\r
+  public void close()\r
+  {\r
+    try\r
+    {\r
+      frame.setClosed(true);\r
+    }\r
+    catch (Exception exe)\r
+    {}\r
 \r
   }\r
 \r
   public void updateFeatureRenderer(Object [][] data)\r
   {\r
     fr.setFeaturePriority( data );\r
-    ap.repaint();\r
+    af.alignPanel.repaint();\r
 \r
-    if(ap.overviewPanel!=null)\r
-      ap.overviewPanel.updateOverviewImage();\r
+    if(af.alignPanel.overviewPanel!=null)\r
+      af.alignPanel.overviewPanel.updateOverviewImage();\r
   }\r
 \r
   int selectedRow =-1;\r
+  JTabbedPane tabbedPane = new JTabbedPane();\r
+  BorderLayout borderLayout1 = new BorderLayout();\r
+  BorderLayout borderLayout2 = new BorderLayout();\r
+  BorderLayout borderLayout3 = new BorderLayout();\r
+  JPanel bigPanel = new JPanel();\r
+  BorderLayout borderLayout4 = new BorderLayout();\r
+  JButton invert = new JButton();\r
+  JPanel buttonPanel = new JPanel();\r
+  JButton cancel = new JButton();\r
+  JButton ok = new JButton();\r
+  JButton loadColours = new JButton();\r
+  JButton saveColours = new JButton();\r
+  JPanel dasButtonPanel = new JPanel();\r
+  JButton fetchDAS = new JButton();\r
+  JButton saveDAS = new JButton();\r
+  private void jbInit()\r
+      throws Exception\r
+  {\r
+    this.setLayout(borderLayout1);\r
+    settingsPane.setLayout(borderLayout2);\r
+    dasSettingsPane.setLayout(borderLayout3);\r
+    bigPanel.setLayout(borderLayout4);\r
+    invert.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));\r
+    invert.setText("Invert Selection");\r
+    invert.addActionListener(new ActionListener()\r
+    {\r
+      public void actionPerformed(ActionEvent e)\r
+      {\r
+        invertSelection();\r
+      }\r
+    });\r
+    cancel.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));\r
+    cancel.setText("Cancel");\r
+    cancel.addActionListener(new ActionListener()\r
+    {\r
+      public void actionPerformed(ActionEvent e)\r
+      {\r
+          updateFeatureRenderer(originalData);\r
+          close();\r
+      }\r
+    });\r
+    ok.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));\r
+    ok.setText("OK");\r
+    ok.addActionListener(new ActionListener()\r
+    {\r
+      public void actionPerformed(ActionEvent e)\r
+      {\r
+        close();\r
+      }\r
+    });\r
+    loadColours.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));\r
+    loadColours.setText("Load Colours");\r
+    loadColours.addActionListener(new ActionListener()\r
+    {\r
+      public void actionPerformed(ActionEvent e)\r
+      {\r
+        load();\r
+      }\r
+    });\r
+    saveColours.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));\r
+    saveColours.setText("Save Colours");\r
+    saveColours.addActionListener(new ActionListener()\r
+    {\r
+      public void actionPerformed(ActionEvent e)\r
+      {\r
+        save();\r
+      }\r
+    });\r
+    transparency.addChangeListener(new ChangeListener()\r
+    {\r
+      public void stateChanged(ChangeEvent evt)\r
+      {\r
+        fr.setTransparency( (float) (100 - transparency.getValue()) / 100f);\r
+        af.alignPanel.repaint();\r
+      }\r
+    });\r
+\r
 \r
+    transparency.setMaximum(70);\r
+    fetchDAS.setText("Fetch DAS Features");\r
+    fetchDAS.addActionListener(new ActionListener()\r
+    {\r
+      public void actionPerformed(ActionEvent e)\r
+      {\r
+        fetchDAS_actionPerformed(e);\r
+      }\r
+    });\r
+    saveDAS.setText("Save as default");\r
+    saveDAS.addActionListener(new ActionListener()\r
+    {\r
+      public void actionPerformed(ActionEvent e)\r
+      {\r
+        saveDAS_actionPerformed(e);\r
+      }\r
+    });\r
+    dasButtonPanel.setBorder(BorderFactory.createEtchedBorder());\r
+    dasSettingsPane.setBorder(null);\r
+    this.add(tabbedPane, java.awt.BorderLayout.CENTER);\r
+    tabbedPane.addTab("Display Settings", settingsPane );\r
+    tabbedPane.addTab("DAS Settings", dasSettingsPane);\r
+    bigPanel.add(transPanel, java.awt.BorderLayout.SOUTH);\r
+    transPanel.add(transparency);\r
+    transPanel.add(invert);\r
+    buttonPanel.add(ok);\r
+    buttonPanel.add(cancel);\r
+    buttonPanel.add(loadColours);\r
+    buttonPanel.add(saveColours);\r
+    bigPanel.add(scrollPane, java.awt.BorderLayout.CENTER);\r
+    dasSettingsPane.add(dasButtonPanel, java.awt.BorderLayout.SOUTH);\r
+    dasButtonPanel.add(fetchDAS);\r
+    dasButtonPanel.add(saveDAS);\r
+    settingsPane.add(bigPanel, java.awt.BorderLayout.CENTER);\r
+    settingsPane.add(buttonPanel, java.awt.BorderLayout.SOUTH);\r
+  }\r
+\r
+  public void fetchDAS_actionPerformed(ActionEvent e)\r
+  {\r
+    Vector selectedSources = dassourceBrowser.getSelectedSources();\r
+\r
+    int uniprotCount = 0;\r
+    for(int i=0; i<selectedSources.size(); i++)\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
+    }\r
+\r
+    System.out.println("User selection is "\r
+                       + (((float)uniprotCount/(float)selectedSources.size())*100)\r
+                       +" % Uniprot");\r
+\r
+   new jalview.io.DasSequenceFeatureFetcher(af.getViewport().getAlignment(),\r
+                                             af,\r
+                                            selectedSources);\r
+\r
+    af.getViewport().setShowSequenceFeatures(true);\r
+    af.showSeqFeatures.setSelected(true);\r
+  }\r
+\r
+  public void saveDAS_actionPerformed(ActionEvent e)\r
+  {\r
+    dassourceBrowser.saveProperties(jalview.bin.Cache.applicationProperties);\r
+  }\r
 \r
   /////////////////////////////////////////////////////////////////////////\r
   // http://java.sun.com/docs/books/tutorial/uiswing/components/table.html\r
index 4f9a713..56b07d6 100755 (executable)
@@ -127,12 +127,8 @@ public class GAlignFrame
   JMenuItem addFromURL = new JMenuItem();\r
   JMenuItem exportAnnotations = new JMenuItem();\r
   JMenuItem exportFeatures = new JMenuItem();\r
-  JMenuItem dbRefs = new JMenuItem();\r
   protected JPanel statusPanel = new JPanel();\r
   GridLayout gridLayout1 = new GridLayout();\r
-  JMenu jMenu3 = new JMenu();\r
-  JMenuItem defaultDASSource = new JMenuItem();\r
-  JMenuItem modifyDASSource = new JMenuItem();\r
   public GAlignFrame()\r
   {\r
 \r
@@ -1029,32 +1025,7 @@ public class GAlignFrame
         exportAnnotations_actionPerformed(e);\r
       }\r
     });\r
-    dbRefs.setText("Fetch DB Refs");\r
-    dbRefs.addActionListener(new ActionListener()\r
-    {\r
-      public void actionPerformed(ActionEvent e)\r
-      {\r
-        dbRefs_actionPerformed(e);\r
-      }\r
-    });\r
     statusPanel.setLayout(gridLayout1);\r
-    jMenu3.setText("Fetch Sequence Features");\r
-    defaultDASSource.setText("Use Default DAS Source");\r
-    defaultDASSource.addActionListener(new ActionListener()\r
-    {\r
-      public void actionPerformed(ActionEvent e)\r
-      {\r
-        defaultDASSource_actionPerformed(e);\r
-      }\r
-    });\r
-    modifyDASSource.setText("Modify DAS Source...");\r
-    modifyDASSource.addActionListener(new ActionListener()\r
-    {\r
-      public void actionPerformed(ActionEvent e)\r
-      {\r
-        modifyDASSource_actionPerformed(e);\r
-      }\r
-    });\r
     alignFrameMenuBar.add(fileMenu);\r
     alignFrameMenuBar.add(editMenu);\r
     alignFrameMenuBar.add(searchMenu);\r
@@ -1111,8 +1082,6 @@ public class GAlignFrame
     viewMenu.add(renderGapsMenuItem);\r
     viewMenu.add(annotationPanelMenuItem);\r
     viewMenu.addSeparator();\r
-    viewMenu.add(dbRefs);\r
-    viewMenu.add(jMenu3);\r
     viewMenu.add(showSeqFeatures);\r
     viewMenu.add(featureSettings);\r
     viewMenu.addSeparator();\r
@@ -1164,8 +1133,6 @@ public class GAlignFrame
     addSequenceMenu.add(addFromURL);\r
     this.getContentPane().add(statusPanel, java.awt.BorderLayout.SOUTH);\r
     statusPanel.add(statusBar, null);\r
-    jMenu3.add(defaultDASSource);\r
-    jMenu3.add(modifyDASSource);\r
   }\r
 \r
   protected void outputText_actionPerformed(ActionEvent e)\r
@@ -1515,21 +1482,4 @@ public class GAlignFrame
   {\r
 \r
   }\r
-\r
-  public void dbRefs_actionPerformed(ActionEvent e)\r
-  {\r
-\r
-  }\r
-\r
-  public void defaultDASSource_actionPerformed(ActionEvent e)\r
-  {\r
-\r
-  }\r
-\r
-  public void modifyDASSource_actionPerformed(ActionEvent e)\r
-  {\r
-\r
-  }\r
-\r
-\r
 }\r
index 4e5480d..c77627a 100755 (executable)
@@ -107,24 +107,26 @@ public class GDasSourceBrowser
     this.add(fullDetailsScrollpane, new GridBagConstraints(2, 0, 3, 1, 1.0, 1.0\r
         , GridBagConstraints.CENTER, GridBagConstraints.BOTH,\r
         new Insets(3, 0, 0, 3), 240, 130));\r
-    this.add(scrollPane, new GridBagConstraints(0, 0, 2, 1, 1.0, 1.0\r
-                                                , GridBagConstraints.CENTER,\r
-                                                GridBagConstraints.BOTH,\r
-                                                new Insets(3, 2, 0, 0), 150,\r
-                                                130));\r
     this.add(jScrollPane3, new GridBagConstraints(2, 1, 1, 1, 1.0, 1.0\r
                                                   , GridBagConstraints.CENTER,\r
                                                   GridBagConstraints.BOTH,\r
-                                                  new Insets(0, 0, 0, 0), 80, 0));\r
+                                                  new Insets(0, 0, 0, 0), 80,\r
+                                                  60));\r
     this.add(jScrollPane4, new GridBagConstraints(4, 1, 1, 1, 1.0, 1.0\r
                                                   , GridBagConstraints.CENTER,\r
                                                   GridBagConstraints.BOTH,\r
-                                                  new Insets(0, 0, 0, 9), 80, 0));\r
+                                                  new Insets(0, 0, 0, 0), 80,\r
+                                                  60));\r
     this.add(jScrollPane2, new GridBagConstraints(0, 1, 2, 1, 1.0, 1.0\r
                                                   , GridBagConstraints.CENTER,\r
                                                   GridBagConstraints.BOTH,\r
                                                   new Insets(0, 0, 0, 0), 80,\r
                                                   60));\r
+    this.add(scrollPane, new GridBagConstraints(0, 0, 2, 1, 1.0, 1.0\r
+                                                , GridBagConstraints.CENTER,\r
+                                                GridBagConstraints.BOTH,\r
+                                                new Insets(3, 2, 0, 0), 150,\r
+                                                130));\r
   }\r
 \r
   protected JTable table = new JTable();\r