Further structure accessing feature
[jalview.git] / src / jalview / gui / AppVarna.java
1 /*
2  * Jalview - A Sequence Alignment Editor and Viewer (Version 2.6)
3  * Copyright (C) 2010 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle
4  * 
5  * This file is part of Jalview.
6  * 
7  * Jalview is free software: you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License 
9  * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
10  * 
11  * Jalview is distributed in the hope that it will be useful, but 
12  * WITHOUT ANY WARRANTY; without even the implied warranty 
13  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
14  * PURPOSE.  See the GNU General Public License for more details.
15  * 
16  * You should have received a copy of the GNU General Public License along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
17  */
18 package jalview.gui;
19
20 import java.util.*;
21 import java.awt.*;
22 import javax.swing.*;
23 import javax.swing.event.*;
24
25 import java.awt.event.*;
26 import java.io.*;
27
28 import jalview.api.SequenceStructureBinding;
29 import jalview.bin.Cache;
30 import jalview.datamodel.*;
31 import jalview.gui.ViewSelectionMenu.ViewSetProvider;
32 import jalview.structure.*;
33 import jalview.io.*;
34 import jalview.schemes.*;
35
36 public class AppVarna extends JInternalFrame // implements Runnable,SequenceStructureBinding, ViewSetProvider
37
38 {
39   AppVarnaBinding vab;
40
41   JPanel varnaPanel;
42   
43   String name;
44
45   //JSplitPane splitPane;
46
47   //RenderPanel renderPanel;
48
49   //AlignmentPanel ap;
50
51   //Vector atomsPicked = new Vector();
52   
53   public AppVarna(){
54           vab = new AppVarnaBinding(); 
55           initVarna();
56   }
57   
58   public AppVarna(String seq,String struc,String name){
59           vab = new AppVarnaBinding(seq,struc);
60           name=this.name;
61           initVarna();    
62   }
63   
64   public void initVarna(){
65           //TODO: Why is it not possible to include varnaPanel in the AppVarna-Jframe?
66           //vab.setFinishedInit(false);
67           varnaPanel=vab.get_varnaPanel();
68           //varnaPanel.setVisible(true);
69           //getContentPane().setLayout(new BorderLayout());
70           //getContentPane().add(varnaPanel, BorderLayout.CENTER);
71           //setVisible(true);
72           //jalview.gui.Desktop.addInternalFrame(this,name,getBounds().width, getBounds().height);  
73           showPanel(true);
74   }
75   
76   public void showPanel(boolean show){
77           vab.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
78           vab.pack();
79           vab.setVisible(show);
80             
81           //varnaPanel.setVisible(show);
82   }
83   
84   private boolean _started = false;
85
86   public void run(){
87           _started = true;
88           
89           try
90       {
91         initVarna();
92       } catch (OutOfMemoryError oomerror)
93       {
94         new OOMWarning("When trying to open the Varna viewer!", oomerror);
95       } catch (Exception ex)
96       {
97         Cache.log.error("Couldn't open Varna viewer!", ex);
98       }
99   }
100   
101
102 }