+++ /dev/null
-/*
- VARNA is a tool for the automated drawing, visualization and annotation of the secondary structure of RNA, designed as a companion software for web servers and databases.
- Copyright (C) 2008 Kevin Darty, Alain Denise and Yann Ponty.
- electronic mail : Yann.Ponty@lri.fr
- paper mail : LRI, bat 490 Université Paris-Sud 91405 Orsay Cedex France
-
- This file is part of VARNA version 3.1.
- VARNA version 3.1 is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
-
- VARNA version 3.1 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
- without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- See the GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License along with VARNA version 3.1.
- If not, see http://www.gnu.org/licenses.
- */
-package fr.orsay.lri.varna.applications.fragseq;
-
-import java.awt.BorderLayout;
-import java.awt.Color;
-import java.awt.Component;
-import java.awt.Dimension;
-import java.awt.GridLayout;
-import java.awt.datatransfer.DataFlavor;
-import java.awt.datatransfer.Transferable;
-import java.awt.datatransfer.UnsupportedFlavorException;
-import java.awt.dnd.DropTarget;
-import java.awt.dnd.DropTargetDragEvent;
-import java.awt.dnd.DropTargetDropEvent;
-import java.awt.dnd.DropTargetEvent;
-import java.awt.dnd.DropTargetListener;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.awt.event.ComponentEvent;
-import java.awt.event.ComponentListener;
-import java.awt.event.FocusEvent;
-import java.awt.event.FocusListener;
-import java.awt.event.MouseEvent;
-import java.awt.event.MouseListener;
-import java.awt.event.WindowEvent;
-import java.awt.event.WindowListener;
-import java.io.IOException;
-import java.util.ArrayList;
-
-import javax.swing.BorderFactory;
-import javax.swing.ButtonGroup;
-import javax.swing.DefaultListSelectionModel;
-import javax.swing.JButton;
-import javax.swing.JComboBox;
-import javax.swing.JComponent;
-import javax.swing.JFileChooser;
-import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JList;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-import javax.swing.JRadioButton;
-import javax.swing.JScrollPane;
-import javax.swing.JSplitPane;
-import javax.swing.JTextPane;
-import javax.swing.JToolBar;
-import javax.swing.JTree;
-import javax.swing.ListSelectionModel;
-import javax.swing.LookAndFeel;
-import javax.swing.SwingUtilities;
-import javax.swing.TransferHandler;
-import javax.swing.UIManager;
-import javax.swing.UIManager.LookAndFeelInfo;
-import javax.swing.UnsupportedLookAndFeelException;
-import javax.swing.event.TreeModelEvent;
-import javax.swing.event.TreeModelListener;
-import javax.swing.event.TreeSelectionEvent;
-import javax.swing.event.TreeSelectionListener;
-import javax.swing.tree.DefaultMutableTreeNode;
-import javax.swing.tree.ExpandVetoException;
-import javax.swing.tree.TreePath;
-import javax.swing.tree.TreeSelectionModel;
-
-import fr.orsay.lri.varna.VARNAPanel;
-import fr.orsay.lri.varna.applications.BasicINI;
-import fr.orsay.lri.varna.exceptions.ExceptionLoadingFailed;
-import fr.orsay.lri.varna.exceptions.ExceptionNonEqualLength;
-import fr.orsay.lri.varna.models.FullBackup;
-
-
-public class FragSeqGUI extends JFrame implements TreeModelListener, MouseListener,DropTargetListener, WindowListener, ComponentListener, ActionListener, TreeSelectionListener {
-
- private enum Commands
- {
- NEW_FOLDER,
- ADD_PANEL_UP,
- ADD_PANEL_DOWN,
- REMOVE_PANEL_UP,
- REMOVE_PANEL_DOWN,
- SORT_ID,
- SORT_FILENAME,
- REFRESH_ALL,
- CHANGE_LNF,
- TEST_XML,
- };
-
-
- /**
- *
- */
- private static final long serialVersionUID = -790155708306987257L;
-
-
-
- private String _INIFilename = "FragSeqUI.ini";
- private boolean redrawOnSlide = false;
- private int dividerWidth = 5;
-
- private JPanel _varnaUpperPanels = new JPanel();
- private JPanel _varnaLowerPanels = new JPanel();
-
- private JPanel _listPanel = new JPanel();
- private JPanel _infoPanel = new JPanel();
- private FragSeqTree _sideList = null;
-
-
- private FragSeqTreeModel _treeModel;
- private JToolBar _toolbar = new JToolBar();
- private JFileChooser _choice = new JFileChooser();
-
- private JScrollPane _listScroller;
-
- private JList _selectedElems;
- private JSplitPane _splitLeft;
- private JSplitPane _splitRight;
- private JSplitPane _splitVARNA;
-
- private JComboBox _lnf;
-
-
- public FragSeqGUI() {
- super("VARNA Explorer");
- RNAPanelDemoInit();
- }
-
-
- private void RNAPanelDemoInit()
- {
- JFrame.setDefaultLookAndFeelDecorated(true);
- this.addWindowListener(this);
-
- _selectedElems = new JList();
-
- _lnf = new JComboBox(UIManager.getInstalledLookAndFeels());
-
- // Initializing Custom Tree Model
- _treeModel = new FragSeqTreeModel();
- _treeModel.addTreeModelListener(this);
-
- _sideList = new FragSeqTree(_treeModel);
- _sideList.addMouseListener(this);
- _sideList.setLargeModel(true);
- _sideList.setEditable(true);
- _sideList.addTreeWillExpandListener(_treeModel);
- FragSeqCellRenderer renderer = new FragSeqCellRenderer(_sideList,_treeModel);
- //_sideList.setUI(new CustomTreeUI());
- _sideList.setCellRenderer(renderer);
- _sideList.setCellEditor(new FragSeqCellEditor(_sideList,renderer,_treeModel));
- TreeSelectionModel m = _sideList.getSelectionModel();
- m.setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
- _sideList.setSelectionModel(m);
- m.addTreeSelectionListener(this);
- _sideList.setShowsRootHandles(true);
- _sideList.setDragEnabled(true);
- _sideList.setRootVisible(false);
- _sideList.setTransferHandler(new TransferHandler(null)
- {
- public int getSourceActions(JComponent c) {
- return COPY_OR_MOVE;
- }
- protected Transferable createTransferable(JComponent c) {
- JTree tree = (JTree) c;
- TreePath tp =tree.getSelectionPath();
- if (tp!=null)
- {
- DefaultMutableTreeNode node = (DefaultMutableTreeNode) tp.getLastPathComponent();
- if (node.getUserObject() instanceof FragSeqRNASecStrModel) {
- return new Transferable(){
- public DataFlavor[] getTransferDataFlavors() {
- DataFlavor[] dt = {FragSeqRNASecStrModel.Flavor};
- return dt;
- }
- public Object getTransferData(DataFlavor df)
- throws UnsupportedFlavorException, IOException {
- if (!isDataFlavorSupported(df))
- throw new UnsupportedFlavorException(df);
- DefaultMutableTreeNode node = (DefaultMutableTreeNode) _sideList.getSelectionPath().getLastPathComponent();
- return node.getUserObject();
- }
- public boolean isDataFlavorSupported(DataFlavor df) {
- return FragSeqRNASecStrModel.Flavor.equals(df);
- }
- };
- } else if (node.getUserObject() instanceof FragSeqAnnotationDataModel) {
- return new Transferable(){
- public DataFlavor[] getTransferDataFlavors() {
- DataFlavor[] dt = { FragSeqAnnotationDataModel.Flavor};
- return dt;
- }
- public Object getTransferData(DataFlavor df)
- throws UnsupportedFlavorException, IOException {
- if (!isDataFlavorSupported(df))
- throw new UnsupportedFlavorException(df);
- DefaultMutableTreeNode node = (DefaultMutableTreeNode) _sideList.getSelectionPath().getLastPathComponent();
- return node.getUserObject();
- }
- public boolean isDataFlavorSupported(DataFlavor df) {
- return FragSeqAnnotationDataModel.Flavor.equals(df);
- }
- };
- } else {
- return null;
- }
- }
- return null;
- }
- });
-
- // Various buttons
- JButton refreshAllFoldersButton = new JButton("Refresh All");
- refreshAllFoldersButton.setActionCommand(""+Commands.REFRESH_ALL);
- refreshAllFoldersButton.addActionListener(this);
-
- JButton watchFolderButton = new JButton("Add folder");
- watchFolderButton.setActionCommand("" +Commands.NEW_FOLDER);
- watchFolderButton.addActionListener(this);
-
- JButton addUpperButton = new JButton("+Up");
- addUpperButton.setActionCommand(""+Commands.ADD_PANEL_UP);
- addUpperButton.addActionListener(this);
-
- JButton removeUpperButton = new JButton("-Up");
- removeUpperButton.setActionCommand(""+Commands.REMOVE_PANEL_UP);
- removeUpperButton.addActionListener(this);
-
- JButton addLowerButton = new JButton("+Down");
- addLowerButton.setActionCommand(""+Commands.ADD_PANEL_DOWN);
- addLowerButton.addActionListener(this);
-
- JButton removeLowerButton = new JButton("-Down");
- removeLowerButton.setActionCommand(""+Commands.REMOVE_PANEL_DOWN);
- removeLowerButton.addActionListener(this);
-
- JButton changeLNFButton = new JButton("Change");
- changeLNFButton.setActionCommand(""+Commands.CHANGE_LNF);
- changeLNFButton.addActionListener(this);
-
- JButton XMLButton = new JButton("Test XML");
- XMLButton.setActionCommand(""+Commands.TEST_XML);
- XMLButton.addActionListener(this);
-
- _toolbar.setFloatable(false);
- _toolbar.add(refreshAllFoldersButton);
- _toolbar.addSeparator();
- _toolbar.add(addUpperButton);
- _toolbar.add(removeUpperButton);
- _toolbar.add(addLowerButton);
- _toolbar.add(removeLowerButton);
- _toolbar.addSeparator();
- _toolbar.add(XMLButton);
- _toolbar.addSeparator();
- _toolbar.add(_lnf);
- _toolbar.add(changeLNFButton);
-
- // Scroller for File tree
- _listScroller = new JScrollPane(_sideList,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
- _listScroller.setPreferredSize(new Dimension(300, 200));
- _listScroller.addComponentListener(this);
-
-
- _listPanel.setLayout(new BorderLayout());
-
- _listPanel.add(_listScroller,BorderLayout.CENTER);
- _listPanel.add(_selectedElems,BorderLayout.SOUTH);
- _listPanel.setBorder(BorderFactory.createTitledBorder("Structures"));
- _listPanel.setPreferredSize(new Dimension(300, 0));
-
- _varnaUpperPanels.setLayout(new GridLayout());
- _varnaUpperPanels.setPreferredSize(new Dimension(800, 600));
-
- _varnaLowerPanels.setLayout(new GridLayout());
- _varnaLowerPanels.setPreferredSize(new Dimension(800, 000));
-
- JRadioButton sortFileName = new JRadioButton("Directory");
- sortFileName.setActionCommand("sortfilename");
- sortFileName.setSelected(true);
- sortFileName.setOpaque(false);
- sortFileName.setActionCommand(""+Commands.SORT_FILENAME);
- sortFileName.addActionListener(this);
- JRadioButton sortID = new JRadioButton("ID");
- sortID.setActionCommand("sortid");
- sortID.setOpaque(false);
- sortID.setActionCommand(""+Commands.SORT_ID);
- sortID.addActionListener(this);
-
- ButtonGroup group = new ButtonGroup();
- group.add(sortFileName);
- group.add(sortID);
-
- JToolBar listTools = new JToolBar();
- listTools.setFloatable(false);
- listTools.add(watchFolderButton);
- listTools.addSeparator();
- listTools.add(new JLabel("Sort by"));
- listTools.add(sortFileName);
- listTools.add(sortID);
-
- JPanel sidePanel = new JPanel();
- sidePanel.setLayout(new BorderLayout());
- sidePanel.add(listTools,BorderLayout.NORTH);
- sidePanel.add(_listPanel,BorderLayout.CENTER);
-
-
- JPanel mainVARNAPanel = new JPanel();
- mainVARNAPanel.setLayout(new BorderLayout());
- _splitVARNA = new JSplitPane(JSplitPane.VERTICAL_SPLIT,redrawOnSlide,_varnaUpperPanels,_varnaLowerPanels);
- _splitVARNA.setDividerSize(dividerWidth);
- _splitVARNA.setResizeWeight(1.0);
- _splitLeft = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,redrawOnSlide,sidePanel,_splitVARNA);
- _splitLeft.setResizeWeight(0.1);
- _splitLeft.setDividerSize(dividerWidth);
- _splitRight = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,redrawOnSlide,_splitLeft,_infoPanel);
- _splitRight.setResizeWeight(0.85);
- _splitRight.setDividerSize(dividerWidth);
-
- _infoPanel.setLayout(new GridLayout(0,1));
-
- this.restoreConfig();
- this.getContentPane().setLayout(new BorderLayout());
- this.getContentPane().add(_splitRight, BorderLayout.CENTER);
- this.getContentPane().add(_toolbar, BorderLayout.NORTH);
- addUpperPanel();
- addUpperPanel();
- this.setVisible(true);
- }
-
- public FragSeqGUI getSelf()
- {
- return this;
- }
-
- public VARNAHolder createIntegratedPanel(int height)
- {
- VARNAHolder vh = new VARNAHolder(this);
- _varnaPanels.add(vh);
- return vh;
- }
-
-
- public void removeUpperPanel()
- {
- if (_varnaUpperPanels.getComponentCount()>1)
- {
- VARNAHolder vh = (VARNAHolder) _varnaUpperPanels.getComponent(_varnaUpperPanels.getComponentCount()-1);
- _infoPanel.remove(vh.getInfoPane());
- _varnaUpperPanels.remove(vh);
- _splitLeft.validate();
- _splitRight.validate();
- }
- }
-
- public void addUpperPanel()
- {
- VARNAHolder vh = createIntegratedPanel(100);
- _varnaUpperPanels.add(vh);
- _infoPanel.add(vh.getInfoPane());
- _splitRight.validate();
- _splitLeft.validate();
- }
-
-
- public void removeLowerPanel()
- {
- if (_varnaLowerPanels.getComponentCount()>0)
- {
- _varnaLowerPanels.remove(_varnaLowerPanels.getComponentCount()-1);
- if (_varnaLowerPanels.getComponentCount()==0)
- {
- _splitVARNA.setDividerLocation(1.0);
- _splitVARNA.validate();
- _splitVARNA.repaint();
- }
- _splitLeft.validate();
- }
- }
-
- public void addLowerPanel()
- {
- if (_varnaLowerPanels.getComponentCount()==0)
- {
- _splitVARNA.setDividerLocation(0.7);
- _splitVARNA.validate();
- }
- _varnaLowerPanels.add(createIntegratedPanel(400));
- _splitLeft.validate();
- }
-
-
- public void treeNodesChanged(TreeModelEvent e) {
- DefaultMutableTreeNode node;
- node = (DefaultMutableTreeNode)
- (e.getTreePath().getLastPathComponent());
-
- /*
- * If the event lists children, then the changed
- * node is the child of the node we have already
- * gotten. Otherwise, the changed node and the
- * specified node are the same.
- */
- try {
- int index = e.getChildIndices()[0];
- node = (DefaultMutableTreeNode)
- (node.getChildAt(index));
- } catch (NullPointerException exc) {}
-
- }
-
-
-
-
- public void addFolder(String path) {
- addFolder( path, true);
- }
-
- public void addFolder(String path,
- boolean shouldBeVisible)
- {
- DefaultMutableTreeNode childNode = _treeModel.addFolder(path);
-
- if ((childNode!=null) && shouldBeVisible ) {
- System.out.println(" Expanding: "+childNode.getUserObject());
- TreePath tp = new TreePath(childNode.getPath());
- _sideList.scrollPathToVisible(tp);
- _sideList.expandRow(_sideList.getRowForPath(tp));
- _sideList.updateUI();
- _sideList.validate();
- }
- }
-
- public void treeNodesInserted(TreeModelEvent e) {
- System.out.println(e);
-
- }
-
- public void treeNodesRemoved(TreeModelEvent e) {
- // TODO Auto-generated method stub
-
- }
-
- public void treeStructureChanged(TreeModelEvent e) {
- // TODO Auto-generated method stub
-
- }
-
- public void mouseClicked(MouseEvent e) {
- // TODO Auto-generated method stub
-
- }
-
- public void mousePressed(MouseEvent e) {
-
- }
-
- int index = 0;
-
- public void mouseReleased(MouseEvent e) {
- // TODO Auto-generated method stub
- if (e.getSource() == this._sideList)
- {
- if (e.getClickCount() == 1)
- {
- /*TreePath t = _sideList.getSelectionPath();
- if (t!=null)
- {
- DefaultMutableTreeNode node = (DefaultMutableTreeNode) t.getLastPathComponent();
- if (node.getUserObject() instanceof FragSeqFileModel)
- {
- int row = _sideList.getRowForPath(t);
- System.out.println("[A]"+row);
- if (!_sideList.isExpanded(row))
- {
- try {
- _sideList.fireTreeWillExpand(t);
- _sideList.expandPath(t);
- } catch (ExpandVetoException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- }
- }
- else
- {
- try {
- _sideList.fireTreeWillCollapse(t);
- _sideList.collapsePath(t);
- } catch (ExpandVetoException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- }
- }
- }
- }*/
- }
- else if (e.getClickCount() == 2)
- {
- TreePath t = _sideList.getSelectionPath();
- if (t!= null)
- {
- DefaultMutableTreeNode node = (DefaultMutableTreeNode) t.getLastPathComponent();
- if (node.getUserObject() instanceof FragSeqFileModel)
- {
- if (!_sideList.isExpanded(t))
- {
- try {
- _sideList.fireTreeWillExpand(t);
- _sideList.expandPath(t);
- } catch (ExpandVetoException e1) {
- e1.printStackTrace();
- }
- }
- else
- {
- try {
- _sideList.fireTreeWillCollapse(t);
- _sideList.collapsePath(t);
- } catch (ExpandVetoException e1) {
- e1.printStackTrace();
- }
- }
- }
- else if (node.getUserObject() instanceof FragSeqModel)
- {
- FragSeqModel model = (FragSeqModel) node.getUserObject();
-
- // Figuring out which panel to add object to...
- int res;
- if (model instanceof FragSeqRNASecStrModel)
- {
- res = index % (_varnaUpperPanels.getComponentCount()+_varnaLowerPanels.getComponentCount());
- }
- else
- {
- res = (index+_varnaUpperPanels.getComponentCount()+_varnaLowerPanels.getComponentCount()-1) % (_varnaUpperPanels.getComponentCount()+_varnaLowerPanels.getComponentCount());
- }
- Component c = null;
- if (res<_varnaUpperPanels.getComponentCount())
- {
- c = (VARNAHolder)_varnaUpperPanels.getComponent(res);
- }
- else
- {
- res -= _varnaUpperPanels.getComponentCount();
- c = (VARNAHolder)_varnaLowerPanels.getComponent(res);
- }
-
- if (c instanceof VARNAHolder)
- {
- VARNAHolder h = (VARNAHolder) c;
- if (model instanceof FragSeqRNASecStrModel)
- {
- h.setSecStrModel((FragSeqRNASecStrModel)model);
- index ++;
- }
- else if (model instanceof FragSeqAnnotationDataModel)
- {
- h.setDataModel((FragSeqAnnotationDataModel)model);
- }
- }
- }
- }
- }
- }
- }
-
-
-
-
- class VARNAHolder extends JPanel
- {
- VARNAPanel vp;
- FragSeqRNASecStrModel _m;
- FragSeqAnnotationDataModel _data;
- JPanel _infoPanel;
- JTextPane _infoTxt;
-
-
- public VARNAHolder(DropTargetListener f)
- {
- super();
- vp = new VARNAPanel();
- vp.addFocusListener(new FocusListener(){
- public void focusGained(FocusEvent e) {
- //focus(_m);
- }
- public void focusLost(FocusEvent e) {
- }});
- vp.setPreferredSize(new Dimension(800, 400));
-
- _infoTxt = new JTextPane();
- _infoTxt.setPreferredSize(new Dimension(200,0));
- _infoTxt.setContentType("text/html");
-
- JScrollPane scroll = new JScrollPane(_infoTxt,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
-
- _infoPanel = new JPanel();
- _infoPanel.setLayout(new BorderLayout());
- _infoPanel.setPreferredSize(new Dimension(200,0));
- _infoPanel.setBorder(BorderFactory.createTitledBorder("Info"));
- _infoPanel.add(scroll,BorderLayout.CENTER);
- _infoPanel.validate();
-
- this.setLayout(new BorderLayout());
- this.setPreferredSize(new Dimension(300,600));
- this.setBorder(BorderFactory.createTitledBorder("None"));
- this.add(vp, BorderLayout.CENTER);
-
- DropTarget dt = new DropTarget(vp, f);
- }
-
- VARNAPanel getVARNAPanel()
- {
- return vp;
- }
- void setSecStrModel(FragSeqRNASecStrModel m)
- {
- _m = m;
- vp.showRNAInterpolated(m.getRNA());
- setBorder(BorderFactory.createTitledBorder(m.toString()));
- _infoTxt.setText(m.getRNA().getHTMLDescription());
- _infoPanel.setBorder(BorderFactory.createTitledBorder("Info ("+_m+")"));
- vp.requestFocus();
- }
- void setDataModel(FragSeqAnnotationDataModel data)
- {
- _data = data;
- data.applyTo(vp.getRNA());
- vp.repaint();
- vp.requestFocus();
- }
- FragSeqModel getModel()
- {
- setBorder(BorderFactory.createTitledBorder(_m.toString()));
- return _m;
- }
- public void setInfoTxt(String s)
- {
- _infoTxt.setText(vp.getRNA().getHTMLDescription());
- _infoTxt.validate();
- }
- public JPanel getInfoPane()
- {
- return _infoPanel;
- }
-
- }
-
-
- private ArrayList<VARNAHolder> _varnaPanels = new ArrayList<VARNAHolder>();
-
- private VARNAHolder getHolder(Component vp)
- {
- if (vp instanceof VARNAHolder)
- {
- int i= _varnaPanels.indexOf(vp);
- if (i!=-1)
- {
- return _varnaPanels.get(i);
- }
- }
- if (vp instanceof VARNAPanel)
- {
- for (VARNAHolder vh: _varnaPanels)
- {
- if (vh.getVARNAPanel()==vp)
- return vh;
- }
- }
- return null;
- }
-
-
-
- public void mouseEntered(MouseEvent e) {
- // TODO Auto-generated method stub
-
- }
-
- public void mouseExited(MouseEvent e) {
- // TODO Auto-generated method stub
-
- }
-
- 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) {
-
- }
-
- public void drop(DropTargetDropEvent arg0) {
- try {
-
- DropTarget o = (DropTarget)arg0.getSource();
- if (o.getComponent() instanceof VARNAPanel)
- {
- VARNAHolder h = getHolder(o.getComponent());
- if (h!=null)
- {
- System.out.println("[X]");
- Transferable t = arg0.getTransferable();
- if (t.isDataFlavorSupported(FragSeqRNASecStrModel.Flavor))
- {
- Object data = t.getTransferData(FragSeqRNASecStrModel.Flavor);
- if (data instanceof FragSeqRNASecStrModel)
- {
- h.setSecStrModel((FragSeqRNASecStrModel) data);
- }
- }
- else if (t.isDataFlavorSupported(FragSeqAnnotationDataModel.Flavor))
- {
- System.out.println("[Y]");
- Object data = t.getTransferData(FragSeqAnnotationDataModel.Flavor);
- if (data instanceof FragSeqAnnotationDataModel)
- {
- FragSeqAnnotationDataModel d = (FragSeqAnnotationDataModel) data;
- h.setDataModel(d);
- }
- }
- }
- }
- } catch (UnsupportedFlavorException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
-
- public void dropActionChanged(DropTargetDragEvent arg0) {
- // TODO Auto-generated method stub
-
- }
-
- public void windowOpened(WindowEvent e) {
- // TODO Auto-generated method stub
-
- }
-
- public void windowClosing(WindowEvent e) {
- saveConfig();
- System.exit(0);
- }
-
- public void windowClosed(WindowEvent e) {
- // TODO Auto-generated method stub
-
- }
-
- public void windowIconified(WindowEvent e) {
- // TODO Auto-generated method stub
-
- }
-
- public void windowDeiconified(WindowEvent e) {
- // TODO Auto-generated method stub
-
- }
-
- public void windowActivated(WindowEvent e) {
- // TODO Auto-generated method stub
-
- }
-
- public void windowDeactivated(WindowEvent e) {
- // TODO Auto-generated method stub
-
- }
-
- private void restoreConfig()
- {
- BasicINI config = BasicINI.loadINI(_INIFilename);
- ArrayList<String> vals = config.getItemList("folders");
- System.out.print("[C]"+vals);
-
- for(String path:vals)
- {
- System.out.println("Loading folder "+path);
- addFolder(path);
- }
- _sideList.validate();
- _listScroller.validate();
- }
-
- private void saveConfig()
- {
- BasicINI data = new BasicINI();
- int i=0;
- for (String folderPath: _treeModel.getFolders())
- {
- data.addItem("folders", "val"+i, folderPath);
- i++;
- }
- BasicINI.saveINI(data, _INIFilename);
- }
-
-
- public void componentResized(ComponentEvent e) {
- _sideList.validate();
- }
-
-
- public void componentMoved(ComponentEvent e) {
- // TODO Auto-generated method stub
-
- }
-
-
- public void componentShown(ComponentEvent e) {
- // TODO Auto-generated method stub
-
- }
-
-
- public void componentHidden(ComponentEvent e) {
- // TODO Auto-generated method stub
-
- }
-
-
- public void actionPerformed(ActionEvent e) {
- String cmd = e.getActionCommand();
- System.out.println(cmd);
- if (cmd.equals(""+Commands.NEW_FOLDER))
- {
- _choice.setDialogTitle("Watch new folder...");
- _choice.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
- _choice.setAcceptAllFileFilterUsed(false);
- try {
- if (_choice.showOpenDialog(getSelf()) == JFileChooser.APPROVE_OPTION) {
- addFolder(_choice.getSelectedFile().getCanonicalPath());
- }
- else {
- System.out.println("No Selection ");
- }
- } catch (IOException e1) {
- e1.printStackTrace();
- }
- }
- else if (cmd.equals(""+Commands.ADD_PANEL_DOWN))
- {
- addLowerPanel();
- }
- else if (cmd.equals(""+Commands.ADD_PANEL_UP))
- {
- addUpperPanel();
- }
- else if (cmd.equals(""+Commands.REMOVE_PANEL_DOWN))
- {
- removeLowerPanel();
- }
- else if (cmd.equals(""+Commands.REMOVE_PANEL_UP))
- {
- removeUpperPanel();
- }
- else if (cmd.equals(""+Commands.SORT_FILENAME))
- {
- _sideList.switchToPath();
- }
- else if (cmd.equals(""+Commands.SORT_ID))
- {
- _sideList.switchToID();
- }
- else if (cmd.equals(""+Commands.TEST_XML))
- {
- String path = "temp.xml";
- VARNAHolder vh = (VARNAHolder) _varnaUpperPanels.getComponent(0);
- vh.vp.toXML(path);
- try {
- FullBackup b = vh.vp.importSession(path);
- VARNAHolder vh2 = (VARNAHolder) _varnaUpperPanels.getComponent(1);
- vh2.vp.setConfig(b.config);
- vh2.vp.showRNAInterpolated(b.rna);
- vh2.vp.repaint();
- } catch (ExceptionLoadingFailed e1) {
- e1.printStackTrace();
- }
- }
- else if (cmd.equals(""+Commands.CHANGE_LNF))
- {
- try {
-
- Object o = _lnf.getModel().getSelectedItem();
- System.out.println(o);
- UIManager.setLookAndFeel(((LookAndFeelInfo)_lnf.getModel().getSelectedItem()).getClassName());
- SwingUtilities.updateComponentTreeUI(this);
- this.pack();
- } catch (UnsupportedLookAndFeelException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- } catch (ClassNotFoundException e2) {
- // TODO Auto-generated catch block
- e2.printStackTrace();
- } catch (InstantiationException e3) {
- // TODO Auto-generated catch block
- e3.printStackTrace();
- } catch (IllegalAccessException e4) {
- // TODO Auto-generated catch block
- e4.printStackTrace();
- }
- }
- else
- {
- JOptionPane.showMessageDialog(this, "Command '"+cmd+"' not implemented yet.");
- }
- }
-
-
- public void valueChanged(TreeSelectionEvent e) {
- int[] t = _sideList.getSelectionRows();
- if (t==null)
- {
- System.out.print("null");
- }
- else
- {
- System.out.print("[");
- for(int i=0;i<t.length;i++)
- {
- System.out.print(t[i]+",");
- }
- System.out.println("]");
- }
- }
-
-
- public static void main(String[] args) {
- FragSeqGUI d = new FragSeqGUI();
- d.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- d.pack();
- d.setVisible(true);
- }
-
-
-}
-