From: jprocter Date: Thu, 1 Mar 2012 13:47:14 +0000 (+0000) Subject: (JAL-893) update to VARNAv3.9-dev version X-Git-Tag: Jalview_2_9~549 X-Git-Url: http://source.jalview.org/gitweb/?p=jalview.git;a=commitdiff_plain;h=ca2d191924169cd2fa37a9eafcb7d4de41b28c53 (JAL-893) update to VARNAv3.9-dev version --- diff --git a/.classpath b/.classpath index a1787c4..ab032e0 100644 --- a/.classpath +++ b/.classpath @@ -42,8 +42,7 @@ - - + diff --git a/lib/VARNAv3-9-dev.jar b/lib/VARNAv3-9-dev.jar new file mode 100644 index 0000000..6ae57bf Binary files /dev/null and b/lib/VARNAv3-9-dev.jar differ diff --git a/lib/VARNAv3-9.jar b/lib/VARNAv3-9.jar deleted file mode 100644 index b1db0a0..0000000 Binary files a/lib/VARNAv3-9.jar and /dev/null differ diff --git a/nbproject/project.properties b/nbproject/project.properties index c4ed0c8..14cb70b 100644 --- a/nbproject/project.properties +++ b/nbproject/project.properties @@ -71,6 +71,7 @@ file.reference.wsdl4j.jar=lib/wsdl4j.jar file.reference.xercesImpl.jar=lib/xercesImpl.jar file.reference.xml-apis.jar=lib/xml-apis.jar file.reference.miglayout-4.0-swing.jar=lib/miglayout-4.0-swing.jar +file.reference.varna-3.9-dev.jar=lib/VARNAv3.9-dev.jar includes=** jar.compress=false javac.classpath=\ @@ -100,7 +101,8 @@ javac.classpath=\ ${file.reference.xml-apis.jar}:\ ${file.reference.xercesImpl.jar}:\ ${file.reference.wsdl4j.jar}:\ - ${file.reference.JmolApplet-12.2.4.jar} + ${file.reference.JmolApplet-12.2.4.jar} \ + ${file.reference.varna-3.9-dev.jar} # Space-separated list of extra javac options javac.compilerargs= javac.deprecation=false diff --git a/src/jalview/gui/AppVarnaBinding.java b/src/jalview/gui/AppVarnaBinding.java index d413c54..493864b 100644 --- a/src/jalview/gui/AppVarnaBinding.java +++ b/src/jalview/gui/AppVarnaBinding.java @@ -39,6 +39,7 @@ import java.awt.event.MouseListener; import java.io.File; import java.text.DateFormat; import java.util.ArrayList; +import java.util.Collection; import java.util.Date; import java.util.List; @@ -73,814 +74,871 @@ import fr.orsay.lri.varna.models.VARNAConfig; import fr.orsay.lri.varna.models.rna.Mapping; import fr.orsay.lri.varna.models.rna.RNA; -public class AppVarnaBinding extends jalview.ext.varna.JalviewVarnaBinding implements DropTargetListener, InterfaceVARNAListener, MouseListener { +public class AppVarnaBinding extends jalview.ext.varna.JalviewVarnaBinding + implements DropTargetListener, InterfaceVARNAListener, + MouseListener +{ - /** + /** * */ - //private static final long serialVersionUID = -790155708306987257L; - - private String DEFAULT_SEQUENCE = "CAGCACGACACUAGCAGUCAGUGUCAGACUGCAIACAGCACGACACUAGCAGUCAGUGUCAGACUGCAIACAGCACGACACUAGCAGUCAGUGUCAGACUGCAIA"; - private String DEFAULT_STRUCTURE1 = "..(((((...(((((...(((((...(((((.....)))))...))))).....(((((...(((((.....)))))...))))).....)))))...))))).."; - private String DEFAULT_STRUCTURE2 = "..(((((...(((((...(((((........(((((...(((((.....)))))...)))))..................))))).....)))))...))))).."; - public VARNAPanel vp; - - protected JPanel _tools = new JPanel(); - private JPanel _input = new JPanel(); - - private JPanel _seqPanel = new JPanel(); - private JPanel _strPanel = new JPanel(); - private JLabel _info = new JLabel(); - private JTextField _str = new JTextField(); - private JTextField _seq = new JTextField(); - private JLabel _strLabel = new JLabel(" Str:"); - private JLabel _seqLabel = new JLabel(" Seq:"); - private JButton _createButton = new JButton("Create"); - private JButton _updateButton = new JButton("Update"); - private JButton _deleteButton = new JButton("Delete"); - private JButton _duplicateButton = new JButton("Snapshot"); - - protected JPanel _listPanel = new JPanel(); - private ReorderableJList _sideList = null; - - - private static String errorOpt = "error"; - @SuppressWarnings("unused") - private boolean _error; - - private Color _backgroundColor = Color.white; - - private static int _nextID = 1; - @SuppressWarnings("unused") - private int _algoCode; - - private BackupHolder _rnaList; - - - /*public AppVarnaBinding() { - //super("VARNA in Jalview"); - //this.set_seq("ATGC"); - //this.set_str(".()."); - //RNAPanelDemoInit(); - - //initVarna("ATGCATGATATATATATAT","....((((...))))...."); - initVarna(this.DEFAULT_SEQUENCE,this.DEFAULT_STRUCTURE1); - }*/ - - public AppVarnaBinding(String seq,String struc){ - //super("VARNA in Jalview"); - initVarna(seq,struc); - } - - public AppVarnaBinding(ArrayList rnaList){ - //super("VARNA in Jalview"); - initVarnaEdit(rnaList); - } - - - - private void initVarna(String seq, String str){ - DefaultListModel dlm = new DefaultListModel(); - - DefaultListSelectionModel m = new DefaultListSelectionModel(); - m.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); - m.setLeadAnchorNotificationEnabled(false); - - _sideList = new ReorderableJList(); - _sideList.setModel(dlm); - _sideList.addMouseListener(this); - _sideList.setSelectionModel(m); - _sideList.setPreferredSize(new Dimension(100, 0)); - _sideList.addListSelectionListener( new ListSelectionListener(){ - public void valueChanged(ListSelectionEvent arg0) { - if (!_sideList.isSelectionEmpty() && !arg0.getValueIsAdjusting()) - { - FullBackup sel = (FullBackup) _sideList.getSelectedValue(); - Mapping map = Mapping.DefaultOutermostMapping(vp.getRNA().getSize(), sel.rna.getSize()); - vp.showRNAInterpolated(sel.rna,sel.config,map); - _seq.setText(sel.rna.getSeq()); - _str.setText(sel.rna.getStructDBN()); - } - } - }); - - _rnaList = new BackupHolder(dlm,_sideList); - RNA _RNA1 = new RNA("User defined 1"); - - try { - vp = new VARNAPanel("0","."); - _RNA1.setRNA(seq, str); - _RNA1.drawRNARadiate(vp.getConfig()); - } catch (ExceptionNonEqualLength e) { - vp.errorDialog(e); - } catch (ExceptionUnmatchedClosingParentheses e2) { - e2.printStackTrace(); - } catch (ExceptionFileFormatOrSyntax e3) { - e3.printStackTrace(); - } - vp.setPreferredSize(new Dimension(400, 400)); - _rnaList.add(vp.getConfig().clone(),_RNA1,generateDefaultName(),true); - - //TODO setBackground(_backgroundColor); - vp.setBackground(_backgroundColor); - - //TODO getContentPane().setLayout(new BorderLayout()); - //TODO getContentPane().add(vp, BorderLayout.CENTER); - - //setVisible(true); - vp.addVARNAListener(this); - } - - private void initVarnaEdit(ArrayList rnaInList) - { - DefaultListModel dlm = new DefaultListModel(); - - - int marginTools = 40; - - DefaultListSelectionModel m = new DefaultListSelectionModel(); - m.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); - m.setLeadAnchorNotificationEnabled(false); - - - _sideList = new ReorderableJList(); - _sideList.setModel(dlm); - _sideList.addMouseListener(this); - _sideList.setSelectionModel(m); - _sideList.setPreferredSize(new Dimension(100, 0)); - _sideList.addListSelectionListener( new ListSelectionListener(){ - public void valueChanged(ListSelectionEvent arg0) { - //System.out.println(arg0); - if (!_sideList.isSelectionEmpty() && !arg0.getValueIsAdjusting()) - { - FullBackup sel = (FullBackup) _sideList.getSelectedValue(); - Mapping map = Mapping.DefaultOutermostMapping(vp.getRNA().getSize(), sel.rna.getSize()); - vp.showRNAInterpolated(sel.rna,sel.config,map); - //_seq.setText(sel.rna.getSeq()); - _str.setText(sel.rna.getStructDBN()); - } - } - }); - _rnaList = new BackupHolder(dlm,_sideList); - - try { - vp = new VARNAPanel("0","."); - for(int i=0;i _rnas = new ArrayList(); - JList _l; - - public BackupHolder(DefaultListModel rnaList, JList l) - { - _rnaList = rnaList; - _l = l; - } - - public void add(VARNAConfig c, RNA r) - { - add(c, r, r.getName(),false); - } - - public void add(VARNAConfig c, RNA r,boolean select) - { - add(c, r, r.getName(),select); - } - - public void add(VARNAConfig c, RNA r, String name) - { - add(c, r, name,false); - } - public void add(VARNAConfig c, RNA r, String name, boolean select) - { - if (select){ - _l.removeSelectionInterval(0, _rnaList.size()); - } - if (name.equals("")) - { - name = generateDefaultName(); - } - FullBackup bck = new FullBackup(c,r,name); - _rnas.add(0, r); - _rnaList.add(0,bck); - if (select){ - _l.setSelectedIndex(0); - } - } - - public void remove(int i) - { - _rnas.remove(i); - _rnaList.remove(i); - - } - public DefaultListModel getModel() - { - return _rnaList; - } - public boolean contains(RNA r) - { - return _rnas.contains(r); - } - /*public int getSize() - { - return _rnaList.getSize(); - }*/ - public FullBackup getElementAt(int i) - { - return (FullBackup) _rnaList.getElementAt(i); - } - - public void removeSelected() - { - int i = _l.getSelectedIndex(); - if (i!=-1) - { - if (_rnaList.getSize()==1) - { - RNA r = new RNA(); - try { - r.setRNA(" ", "."); - } catch (ExceptionUnmatchedClosingParentheses e1) { - } catch (ExceptionFileFormatOrSyntax e1) { - } - vp.showRNA(r); - vp.repaint(); - } - else - { - int newi = i+1; - if (newi==_rnaList.getSize()) - { - newi = _rnaList.getSize()-2; - } - FullBackup bck = (FullBackup) _rnaList.getElementAt(newi); - _l.setSelectedValue(bck,true); - } - _rnaList.remove(i); - } - - } - } - - public void onLayoutChanged() { - // TODO Auto-generated method stub - - } - - public void onUINewStructure(VARNAConfig v, RNA r) { - _rnaList.add(v, r,"",true); - } - - public void onWarningEmitted(String s) { - // TODO Auto-generated method stub - - } - - public void mouseClicked(MouseEvent e) { - if(e.getClickCount() == 2){ - int index = _sideList.locationToIndex(e.getPoint()); - ListModel dlm = _sideList.getModel(); - FullBackup item = (FullBackup) dlm.getElementAt(index);; - _sideList.ensureIndexIsVisible(index); - /*TODO Object newName = JOptionPane.showInputDialog( - this, - "Specify a new name for this RNA", - "Rename RNA", - JOptionPane.QUESTION_MESSAGE, - (Icon)null, - null, - item.toString()); - if (newName!=null) - { - item.name = newName.toString(); - this._sideList.repaint(); - }*/ - } - } - - public void mouseEntered(MouseEvent arg0) { - // TODO Auto-generated method stub - - } - - public void mouseExited(MouseEvent arg0) { - // TODO Auto-generated method stub - - } - - public void mousePressed(MouseEvent arg0) { - // TODO Auto-generated method stub - - } - - public void mouseReleased(MouseEvent arg0) { - // TODO Auto-generated method stub - - } - - @Override - public Color getColour(int atomIndex, int pdbResNum, String chain, - String pdbId) { - // TODO Auto-generated method stub - return null; - } - - @Override - public String[] getPdbFile() { - // TODO Auto-generated method stub - return null; - } - - @Override - public void highlightAtom(int atomIndex, int pdbResNum, String chain, - String pdbId) { - // TODO Auto-generated method stub - - } - - @Override - public void mouseOverStructure(int atomIndex, String strInfo) { - // TODO Auto-generated method stub - - } - - @Override - public void releaseReferences(Object svl) { - // TODO Auto-generated method stub - - } - - @Override - public void updateColours(Object source) { - // TODO Auto-generated method stub - - } - - @Override - public void componentHidden(ComponentEvent e) { - // TODO Auto-generated method stub - - } - - @Override - public void componentMoved(ComponentEvent e) { - // TODO Auto-generated method stub - - } - - @Override - public void componentResized(ComponentEvent e) { - // TODO Auto-generated method stub - - } - - @Override - public void componentShown(ComponentEvent e) { - // TODO Auto-generated method stub - - } + // private static final long serialVersionUID = -790155708306987257L; + + private String DEFAULT_SEQUENCE = "CAGCACGACACUAGCAGUCAGUGUCAGACUGCAIACAGCACGACACUAGCAGUCAGUGUCAGACUGCAIACAGCACGACACUAGCAGUCAGUGUCAGACUGCAIA"; + + private String DEFAULT_STRUCTURE1 = "..(((((...(((((...(((((...(((((.....)))))...))))).....(((((...(((((.....)))))...))))).....)))))...))))).."; + + private String DEFAULT_STRUCTURE2 = "..(((((...(((((...(((((........(((((...(((((.....)))))...)))))..................))))).....)))))...))))).."; + + public VARNAPanel vp; + + protected JPanel _tools = new JPanel(); + + private JPanel _input = new JPanel(); + + private JPanel _seqPanel = new JPanel(); + + private JPanel _strPanel = new JPanel(); + + private JLabel _info = new JLabel(); + + private JTextField _str = new JTextField(); + + private JTextField _seq = new JTextField(); + + private JLabel _strLabel = new JLabel(" Str:"); + + private JLabel _seqLabel = new JLabel(" Seq:"); + + private JButton _createButton = new JButton("Create"); + + private JButton _updateButton = new JButton("Update"); + + private JButton _deleteButton = new JButton("Delete"); + + private JButton _duplicateButton = new JButton("Snapshot"); + + protected JPanel _listPanel = new JPanel(); + + private ReorderableJList _sideList = null; + + private static String errorOpt = "error"; + + @SuppressWarnings("unused") + private boolean _error; + + private Color _backgroundColor = Color.white; + + private static int _nextID = 1; + + @SuppressWarnings("unused") + private int _algoCode; + + private BackupHolder _rnaList; + + /* + * public AppVarnaBinding() { //super("VARNA in Jalview"); + * //this.set_seq("ATGC"); //this.set_str(".()."); //RNAPanelDemoInit(); + * + * //initVarna("ATGCATGATATATATATAT","....((((...))))...."); + * initVarna(this.DEFAULT_SEQUENCE,this.DEFAULT_STRUCTURE1); } + */ + + public AppVarnaBinding(String seq, String struc) + { + // super("VARNA in Jalview"); + initVarna(seq, struc); + } + + public AppVarnaBinding(ArrayList rnaList) + { + // super("VARNA in Jalview"); + initVarnaEdit(rnaList); + } + + private void initVarna(String seq, String str) + { + DefaultListModel dlm = new DefaultListModel(); + + DefaultListSelectionModel m = new DefaultListSelectionModel(); + m.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + m.setLeadAnchorNotificationEnabled(false); + + _sideList = new ReorderableJList(); + _sideList.setModel(dlm); + _sideList.addMouseListener(this); + _sideList.setSelectionModel(m); + _sideList.setPreferredSize(new Dimension(100, 0)); + _sideList.addListSelectionListener(new ListSelectionListener() + { + public void valueChanged(ListSelectionEvent arg0) + { + if (!_sideList.isSelectionEmpty() && !arg0.getValueIsAdjusting()) + { + FullBackup sel = (FullBackup) _sideList.getSelectedValue(); + Mapping map = Mapping.DefaultOutermostMapping(vp.getRNA() + .getSize(), sel.rna.getSize()); + vp.showRNAInterpolated(sel.rna, sel.config, map); + _seq.setText(sel.rna.getSeq()); + _str.setText(sel.rna.getStructDBN()); + } + } + }); + + _rnaList = new BackupHolder(dlm, _sideList); + RNA _RNA1 = new RNA("User defined 1"); + + try + { + vp = new VARNAPanel("0", "."); + _RNA1.setRNA(seq, str); + _RNA1.drawRNARadiate(vp.getConfig()); + } catch (ExceptionNonEqualLength e) + { + vp.errorDialog(e); + } catch (ExceptionUnmatchedClosingParentheses e2) + { + e2.printStackTrace(); + } catch (ExceptionFileFormatOrSyntax e3) + { + e3.printStackTrace(); + } + vp.setPreferredSize(new Dimension(400, 400)); + _rnaList.add(vp.getConfig().clone(), _RNA1, generateDefaultName(), true); + + // TODO setBackground(_backgroundColor); + vp.setBackground(_backgroundColor); + + // TODO getContentPane().setLayout(new BorderLayout()); + // TODO getContentPane().add(vp, BorderLayout.CENTER); + + // setVisible(true); + vp.addVARNAListener(this); + } + + private void initVarnaEdit(ArrayList rnaInList) + { + DefaultListModel dlm = new DefaultListModel(); + + int marginTools = 40; + + DefaultListSelectionModel m = new DefaultListSelectionModel(); + m.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + m.setLeadAnchorNotificationEnabled(false); + + _sideList = new ReorderableJList(); + _sideList.setModel(dlm); + _sideList.addMouseListener(this); + _sideList.setSelectionModel(m); + _sideList.setPreferredSize(new Dimension(100, 0)); + _sideList.addListSelectionListener(new ListSelectionListener() + { + public void valueChanged(ListSelectionEvent arg0) + { + // System.out.println(arg0); + if (!_sideList.isSelectionEmpty() && !arg0.getValueIsAdjusting()) + { + FullBackup sel = (FullBackup) _sideList.getSelectedValue(); + Mapping map = Mapping.DefaultOutermostMapping(vp.getRNA() + .getSize(), sel.rna.getSize()); + vp.showRNAInterpolated(sel.rna, sel.config, map); + // _seq.setText(sel.rna.getSeq()); + _str.setText(sel.rna.getStructDBN()); + } + } + }); + _rnaList = new BackupHolder(dlm, _sideList); + + try + { + vp = new VARNAPanel("0", "."); + for (int i = 0; i < rnaInList.size(); i++) + { + rnaInList.get(i).drawRNARadiate(vp.getConfig()); + } + } catch (ExceptionNonEqualLength e) + { + vp.errorDialog(e); + } + vp.setPreferredSize(new Dimension(400, 400)); + for (int i = 0; i < rnaInList.size(); i++) + { + if (i < rnaInList.size() - 1) + { + _rnaList.add(vp.getConfig().clone(), rnaInList.get(i), rnaInList + .get(i).getName()); + } + else + { + _rnaList.add(vp.getConfig().clone(), rnaInList.get(i), rnaInList + .get(i).getName(), true); + } + } + + /* + * _rnaList.add(vp.getConfig().clone(),_RNA2,generateDefaultName()); + * _rnaList.add(vp.getConfig().clone(),_RNA1,generateDefaultName(),true); + */ + + JScrollPane listScroller = new JScrollPane(_sideList); + listScroller.setPreferredSize(new Dimension(150, 0)); + + vp.setBackground(_backgroundColor); + + Font textFieldsFont = Font.decode("MonoSpaced-PLAIN-12"); + + // _seqLabel.setHorizontalTextPosition(JLabel.LEFT); + // _seqLabel.setPreferredSize(new Dimension(marginTools, 15)); + _seq.setFont(textFieldsFont); + _seq.setText(rnaInList.get(0).getSeq()); + + _updateButton.addActionListener(new ActionListener() + { + public void actionPerformed(ActionEvent e) + { + FullBackup sel = (FullBackup) _sideList.getSelectedValue(); + sel.rna.setSequence("A"); + } + }); + + // _seqPanel.setLayout(new BorderLayout()); + // _seqPanel.add(_seqLabel, BorderLayout.WEST); + // _seqPanel.add(_seq, BorderLayout.CENTER); + + _strLabel.setPreferredSize(new Dimension(marginTools, 15)); + _strLabel.setHorizontalTextPosition(JLabel.LEFT); + _str.setFont(textFieldsFont); + _strPanel.setLayout(new BorderLayout()); + _strPanel.add(_strLabel, BorderLayout.WEST); + _strPanel.add(_str, BorderLayout.CENTER); + + _input.setLayout(new GridLayout(1, 0)); + // _input.add(_seqPanel); + _input.add(_strPanel); + + JPanel goPanel = new JPanel(); + goPanel.setLayout(new BorderLayout()); + + _tools.setLayout(new BorderLayout()); + _tools.add(_input, BorderLayout.CENTER); + // _tools.add(_info, BorderLayout.SOUTH); + _tools.add(goPanel, BorderLayout.EAST); + + /* + * _deleteButton.addActionListener(new ActionListener() { public void + * actionPerformed(ActionEvent e) { _rnaList.removeSelected(); } }); + * _duplicateButton.addActionListener(new ActionListener() { public void + * actionPerformed(ActionEvent e) { + * _rnaList.add((VARNAConfig)vp.getConfig(). + * clone(),vp.getRNA().clone(),vp.getRNA + * ().getName()+"-"+DateFormat.getTimeInstance(DateFormat.LONG).format(new + * Date()),true); }}); + */ + goPanel.add(_updateButton, BorderLayout.CENTER); + + JPanel ops = new JPanel(); + ops.setLayout(new GridLayout(1, 2)); + ops.add(_deleteButton); + ops.add(_duplicateButton); + + JLabel j = new JLabel("Structures Manager", JLabel.CENTER); + _listPanel.setLayout(new BorderLayout()); + + _listPanel.add(ops, BorderLayout.SOUTH); + _listPanel.add(j, BorderLayout.NORTH); + _listPanel.add(listScroller, BorderLayout.CENTER); + + // JSplitPane split = new + // JSplitPane(JSplitPane.HORIZONTAL_SPLIT,true,_listPanel,vp); + /** + * TODO getContentPane().setLayout(new BorderLayout()); + * getContentPane().add(split, BorderLayout.CENTER); + * getContentPane().add(_tools, BorderLayout.NORTH); + */ + + // TODO setVisible(true); + DropTarget dt = new DropTarget(vp, this); + + vp.addVARNAListener(this); + } + + public JPanel getTools() + { + return _tools; + } + + public JPanel getListPanel() + { + return _listPanel; + } + + /** + * TODO: Is it effective to transfer the whole RNA? + * + * @return Currently selected RNA + */ + public RNA getSelectedRNA() + { + return _rnaList.getElementAt(_sideList.getSelectedIndex()).rna; + } + + /** + * Substitute currently selected RNA with the edited one + * + * @param rnaEdit + */ + public void updateSelectedRNA(RNA rnaEdit) + { + vp.repaint(); + vp.showRNA(rnaEdit); + } + + /* + * private void RNAPanelDemoInit() { DefaultListModel dlm = new + * DefaultListModel(); + * + * + * int marginTools = 40; + * + * DefaultListSelectionModel m = new DefaultListSelectionModel(); + * m.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + * m.setLeadAnchorNotificationEnabled(false); + * + * + * _sideList = new ReorderableJList(); _sideList.setModel(dlm); + * _sideList.addMouseListener(this); _sideList.setSelectionModel(m); + * _sideList.setPreferredSize(new Dimension(100, 0)); + * _sideList.addListSelectionListener( new ListSelectionListener(){ public + * void valueChanged(ListSelectionEvent arg0) { //System.out.println(arg0); if + * (!_sideList.isSelectionEmpty() && !arg0.getValueIsAdjusting()) { FullBackup + * sel = (FullBackup) _sideList.getSelectedValue(); Mapping map = + * Mapping.DefaultOutermostMapping(vp.getRNA().getSize(), sel.rna.getSize()); + * vp.showRNAInterpolated(sel.rna,sel.config,map); + * _seq.setText(sel.rna.getSeq()); _str.setText(sel.rna.getStructDBN()); } } + * }); + * + * _rnaList = new BackupHolder(dlm,_sideList); RNA _RNA1 = new + * RNA("User defined 1"); RNA _RNA2 = new RNA("User defined 2"); try { vp = + * new VARNAPanel("0","."); _RNA1.setRNA(DEFAULT_SEQUENCE, + * DEFAULT_STRUCTURE1); _RNA1.drawRNARadiate(vp.getConfig()); + * _RNA2.setRNA(DEFAULT_SEQUENCE, DEFAULT_STRUCTURE2); + * _RNA2.drawRNARadiate(vp.getConfig()); } catch (ExceptionNonEqualLength e) { + * vp.errorDialog(e); } catch (ExceptionUnmatchedClosingParentheses e2) { + * e2.printStackTrace(); } catch (ExceptionFileFormatOrSyntax e3) { + * e3.printStackTrace(); } vp.setPreferredSize(new Dimension(400, 400)); + * _rnaList.add(vp.getConfig().clone(),_RNA2,generateDefaultName()); + * _rnaList.add(vp.getConfig().clone(),_RNA1,generateDefaultName(),true); + * + * JScrollPane listScroller = new JScrollPane(_sideList); + * listScroller.setPreferredSize(new Dimension(150, 0)); + * + * setBackground(_backgroundColor); vp.setBackground(_backgroundColor); + * + * + * Font textFieldsFont = Font.decode("MonoSpaced-PLAIN-12"); + * + * _seqLabel.setHorizontalTextPosition(JLabel.LEFT); + * _seqLabel.setPreferredSize(new Dimension(marginTools, 15)); + * _seq.setFont(textFieldsFont); _seq.setText(DEFAULT_SEQUENCE); + * + * _createButton.addActionListener(new ActionListener() { public void + * actionPerformed(ActionEvent e) { try { RNA nRNA = new + * RNA(generateDefaultName()); nRNA.setRNA(_seq.getText(), _str.getText()); + * nRNA.drawRNARadiate(vp.getConfig()); _rnaList.add(new + * VARNAConfig(),nRNA,true); } catch (ExceptionUnmatchedClosingParentheses e1) + * { JOptionPane.showMessageDialog(vp, e1.getMessage(),"Error", + * JOptionPane.ERROR_MESSAGE); } catch (ExceptionFileFormatOrSyntax e1) { + * JOptionPane.showMessageDialog(vp, e1.getMessage(),"Error", + * JOptionPane.ERROR_MESSAGE); } } }); + * + * + * _seqPanel.setLayout(new BorderLayout()); _seqPanel.add(_seqLabel, + * BorderLayout.WEST); _seqPanel.add(_seq, BorderLayout.CENTER); + * + * _strLabel.setPreferredSize(new Dimension(marginTools, 15)); + * _strLabel.setHorizontalTextPosition(JLabel.LEFT); + * _str.setFont(textFieldsFont); _strPanel.setLayout(new BorderLayout()); + * _strPanel.add(_strLabel, BorderLayout.WEST); _strPanel.add(_str, + * BorderLayout.CENTER); + * + * _input.setLayout(new GridLayout(2, 0)); _input.add(_seqPanel); + * _input.add(_strPanel); + * + * JPanel goPanel = new JPanel(); goPanel.setLayout(new BorderLayout()); + * + * _tools.setLayout(new BorderLayout()); _tools.add(_input, + * BorderLayout.CENTER); _tools.add(_info, BorderLayout.SOUTH); + * _tools.add(goPanel, BorderLayout.EAST); + * + * _deleteButton.addActionListener(new ActionListener() { public void + * actionPerformed(ActionEvent e) { _rnaList.removeSelected(); } }); + * _duplicateButton.addActionListener(new ActionListener() { public void + * actionPerformed(ActionEvent e) { + * _rnaList.add((VARNAConfig)vp.getConfig().clone + * (),vp.getRNA().clone(),vp.getRNA + * ().getName()+"-"+DateFormat.getTimeInstance(DateFormat.LONG).format(new + * Date()),true); }}); + * + * JPanel ops = new JPanel(); ops.setLayout(new GridLayout(1,2)); + * ops.add(_deleteButton); ops.add(_duplicateButton); + * + * JLabel j = new JLabel("Structures Manager",JLabel.CENTER); + * _listPanel.setLayout(new BorderLayout()); + * + * _listPanel.add(ops,BorderLayout.SOUTH); + * _listPanel.add(j,BorderLayout.NORTH); + * _listPanel.add(listScroller,BorderLayout.CENTER); + * + * goPanel.add(_createButton, BorderLayout.CENTER); + * + * JSplitPane split = new + * JSplitPane(JSplitPane.HORIZONTAL_SPLIT,true,_listPanel,vp); + * getContentPane().setLayout(new BorderLayout()); getContentPane().add(split, + * BorderLayout.CENTER); getContentPane().add(_tools, BorderLayout.NORTH); + * + * setVisible(true); DropTarget dt = new DropTarget(vp, this); + * + * vp.addVARNAListener(this); } + */ + public static String generateDefaultName() + { + return "User file #" + _nextID++; + } + + public RNA getRNA() + { + return (RNA) _sideList.getSelectedValue(); + } + + public String[][] getParameterInfo() + { + String[][] info = + { + // Parameter Name Kind of Value Description, + { "sequenceDBN", "String", "A raw RNA sequence" }, + { "structureDBN", "String", + "An RNA structure in dot bracket notation (DBN)" }, + { errorOpt, "boolean", "To show errors" }, }; + return info; + } + + public void init() + { + vp.setBackground(_backgroundColor); + _error = true; + } + + @SuppressWarnings("unused") + private Color getSafeColor(String col, Color def) + { + Color result; + try + { + result = Color.decode(col); + } catch (Exception e) + { + try + { + result = Color.getColor(col, def); + } catch (Exception e2) + { + return def; + } + } + return result; + } + + public VARNAPanel get_varnaPanel() + { + return vp; + } + + public void set_varnaPanel(VARNAPanel surface) + { + vp = surface; + } + + public String get_seq() + { + return _seq.getText(); + } + + public void set_seq(String _seq) + { + this._seq.setText(_seq); + } + + public String get_str() + { + return _str.getText(); + } + + public void set_str(String _str) + { + this._str.setText(_str); + } + + public JLabel get_info() + { + return _info; + } + + public void set_info(JLabel _info) + { + this._info = _info; + } + + /* + * public static void main(String[] args) { AppVarnaBinding d = new + * AppVarnaBinding(); d.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + * d.pack(); d.setVisible(true); } + */ + + public void dragEnter(DropTargetDragEvent arg0) + { + // TODO Auto-generated method stub + + } + + public void dragExit(DropTargetEvent arg0) + { + // TODO Auto-generated method stub + + } + + public void dragOver(DropTargetDragEvent arg0) + { + // TODO Auto-generated method stub + + } + + public void drop(DropTargetDropEvent dtde) + { + try + { + Transferable tr = dtde.getTransferable(); + DataFlavor[] flavors = tr.getTransferDataFlavors(); + for (int i = 0; i < flavors.length; i++) + { + if (flavors[i].isFlavorJavaFileListType()) + { + dtde.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE); + Object ob = tr.getTransferData(flavors[i]); + if (ob instanceof List) + { + List list = (List) ob; + for (int j = 0; j < list.size(); j++) + { + Object o = list.get(j); + + if (dtde.getSource() instanceof DropTarget) + { + DropTarget dt = (DropTarget) dtde.getSource(); + Component c = dt.getComponent(); + if (c instanceof VARNAPanel) + { + String path = o.toString(); + VARNAPanel vp = (VARNAPanel) c; + try + { + FullBackup bck = VARNAPanel.importSession(path); + _rnaList.add(bck.config, bck.rna, bck.name, true); + } catch (ExceptionLoadingFailed e3) + { + int mn=1; + Collection mdls=fr.orsay.lri.varna.factories.RNAFactory.loadSecStr(path); + for (RNA r:mdls) + { + r.drawRNA(vp.getConfig()); + String name = r.getName(); + if (name.equals("")) + { + name = path.substring(path + .lastIndexOf(File.separatorChar) + 1); + } + if (mdls.size()>1) + { + name += " (Model "+mn+++")"; + } + _rnaList.add(vp.getConfig().clone(), r, name, true); + } + } + } + } + } + } + // If we made it this far, everything worked. + dtde.dropComplete(true); + return; + } + } + // Hmm, the user must not have dropped a file list + dtde.rejectDrop(); + } catch (Exception e) + { + e.printStackTrace(); + dtde.rejectDrop(); + } + + } + + public void dropActionChanged(DropTargetDragEvent arg0) + { + } + + private class BackupHolder + { + private DefaultListModel _rnaList; + + private ArrayList _rnas = new ArrayList(); + + JList _l; + + public BackupHolder(DefaultListModel rnaList, JList l) + { + _rnaList = rnaList; + _l = l; + } + + public void add(VARNAConfig c, RNA r) + { + add(c, r, r.getName(), false); + } + + public void add(VARNAConfig c, RNA r, boolean select) + { + add(c, r, r.getName(), select); + } + + public void add(VARNAConfig c, RNA r, String name) + { + add(c, r, name, false); + } + + public void add(VARNAConfig c, RNA r, String name, boolean select) + { + if (select) + { + _l.removeSelectionInterval(0, _rnaList.size()); + } + if (name.equals("")) + { + name = generateDefaultName(); + } + FullBackup bck = new FullBackup(c, r, name); + _rnas.add(0, r); + _rnaList.add(0, bck); + if (select) + { + _l.setSelectedIndex(0); + } + } + + public void remove(int i) + { + _rnas.remove(i); + _rnaList.remove(i); + + } + + public DefaultListModel getModel() + { + return _rnaList; + } + + public boolean contains(RNA r) + { + return _rnas.contains(r); + } + + /* + * public int getSize() { return _rnaList.getSize(); } + */ + public FullBackup getElementAt(int i) + { + return (FullBackup) _rnaList.getElementAt(i); + } + + public void removeSelected() + { + int i = _l.getSelectedIndex(); + if (i != -1) + { + if (_rnaList.getSize() == 1) + { + RNA r = new RNA(); + try + { + r.setRNA(" ", "."); + } catch (ExceptionUnmatchedClosingParentheses e1) + { + } catch (ExceptionFileFormatOrSyntax e1) + { + } + vp.showRNA(r); + vp.repaint(); + } + else + { + int newi = i + 1; + if (newi == _rnaList.getSize()) + { + newi = _rnaList.getSize() - 2; + } + FullBackup bck = (FullBackup) _rnaList.getElementAt(newi); + _l.setSelectedValue(bck, true); + } + _rnaList.remove(i); + } + + } + } + + public void onLayoutChanged() + { + // TODO Auto-generated method stub + + } + + public void onUINewStructure(VARNAConfig v, RNA r) + { + _rnaList.add(v, r, "", true); + } + + public void onWarningEmitted(String s) + { + // TODO Auto-generated method stub + + } + + public void mouseClicked(MouseEvent e) + { + if (e.getClickCount() == 2) + { + int index = _sideList.locationToIndex(e.getPoint()); + ListModel dlm = _sideList.getModel(); + FullBackup item = (FullBackup) dlm.getElementAt(index); + ; + _sideList.ensureIndexIsVisible(index); + /* + * TODO Object newName = JOptionPane.showInputDialog( this, + * "Specify a new name for this RNA", "Rename RNA", + * JOptionPane.QUESTION_MESSAGE, (Icon)null, null, item.toString()); if + * (newName!=null) { item.name = newName.toString(); + * this._sideList.repaint(); } + */ + } + } + + public void mouseEntered(MouseEvent arg0) + { + // TODO Auto-generated method stub + + } + + public void mouseExited(MouseEvent arg0) + { + // TODO Auto-generated method stub + + } + + public void mousePressed(MouseEvent arg0) + { + // TODO Auto-generated method stub + + } + + public void mouseReleased(MouseEvent arg0) + { + // TODO Auto-generated method stub + + } + + @Override + public Color getColour(int atomIndex, int pdbResNum, String chain, + String pdbId) + { + // TODO Auto-generated method stub + return null; + } + + @Override + public String[] getPdbFile() + { + // TODO Auto-generated method stub + return null; + } + + @Override + public void highlightAtom(int atomIndex, int pdbResNum, String chain, + String pdbId) + { + // TODO Auto-generated method stub + + } + + @Override + public void mouseOverStructure(int atomIndex, String strInfo) + { + // TODO Auto-generated method stub + + } + + @Override + public void releaseReferences(Object svl) + { + // TODO Auto-generated method stub + + } + + @Override + public void updateColours(Object source) + { + // TODO Auto-generated method stub + + } + + @Override + public void componentHidden(ComponentEvent e) + { + // TODO Auto-generated method stub + + } + + @Override + public void componentMoved(ComponentEvent e) + { + // TODO Auto-generated method stub + + } + + @Override + public void componentResized(ComponentEvent e) + { + // TODO Auto-generated method stub + + } + + @Override + public void componentShown(ComponentEvent e) + { + // TODO Auto-generated method stub + + } @Override public void onStructureRedrawn() { // TODO Auto-generated method stub - + } } - /* - public static void main(String[] args) - { - JTextField str = new JTextField("ATGC"); - - AppVarnaBinding vab = new AppVarnaBinding(); - vab.varnagui.set_seq(str); - vab.varnagui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - vab.varnagui.pack(); - vab.varnagui.setVisible(true); - } -} -*/ \ No newline at end of file + * public static void main(String[] args) { JTextField str = new + * JTextField("ATGC"); + * + * AppVarnaBinding vab = new AppVarnaBinding(); vab.varnagui.set_seq(str); + * vab.varnagui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + * vab.varnagui.pack(); vab.varnagui.setVisible(true); } } + */ \ No newline at end of file diff --git a/utils/InstallAnywhere/Jalview.iap_xml b/utils/InstallAnywhere/Jalview.iap_xml index 7cf223d..03bf6be 100755 --- a/utils/InstallAnywhere/Jalview.iap_xml +++ b/utils/InstallAnywhere/Jalview.iap_xml @@ -1501,6 +1501,53 @@ and any path to a file to save to the file]]> + + + + + false + + + true + + + true + + + + + + + + + false + + + + + + true + + + true + + + true + + + + + + 663408 + + + false + + + 0 + + + @@ -4156,6 +4203,7 @@ and any path to a file to read from that file]]> + @@ -4219,6 +4267,7 @@ and any path to a file to read from that file]]> +