X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=srcjar%2Ffr%2Forsay%2Flri%2Fvarna%2Fapplications%2FnewGUI%2FVARNAGUIRenderer.java;fp=srcjar%2Ffr%2Forsay%2Flri%2Fvarna%2Fapplications%2FnewGUI%2FVARNAGUIRenderer.java;h=9ea6a4766b5b1c11d2ac8a8f23e4467dc0e12ff6;hb=65740880573a48adc758bec3939ece9d9ae104dd;hp=0000000000000000000000000000000000000000;hpb=71aa78b8a7d54e5aeb6b278310dfd735efb77477;p=jalview.git diff --git a/srcjar/fr/orsay/lri/varna/applications/newGUI/VARNAGUIRenderer.java b/srcjar/fr/orsay/lri/varna/applications/newGUI/VARNAGUIRenderer.java new file mode 100644 index 0000000..9ea6a47 --- /dev/null +++ b/srcjar/fr/orsay/lri/varna/applications/newGUI/VARNAGUIRenderer.java @@ -0,0 +1,141 @@ +package fr.orsay.lri.varna.applications.newGUI; + +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Component; +import java.awt.Dimension; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.io.File; + +import javax.swing.BorderFactory; +import javax.swing.JButton; +import javax.swing.JComponent; +import javax.swing.JLabel; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTree; +import javax.swing.UIManager; +import javax.swing.border.Border; +import javax.swing.plaf.basic.BasicTreeUI; +import javax.swing.tree.DefaultMutableTreeNode; +import javax.swing.tree.DefaultTreeCellRenderer; + +class VARNAGUIRenderer extends DefaultTreeCellRenderer { + + JTree _j; + VARNAGUITreeModel _m; + + private static VARNAGUIRenderer _default = new VARNAGUIRenderer(null,null); + + + + public VARNAGUIRenderer (JTree j, VARNAGUITreeModel m) + { + _j = j; + _m = m; + } + + public JComponent baseElements(JTree tree,VARNAGUITreeModel m, + Object value, boolean sel, boolean expanded, boolean leaf, + int row, boolean hasFocus) + { + JLabel initValue = (JLabel) super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus); + JPanel result = new JPanel(); + result.setLayout(new BorderLayout()); + initValue.setBorder(null); + if (hasFocus) + { + //renderer.setBackground(Color.blue); + result.setBorder(BorderFactory.createLineBorder(Color.blue)); + result.setBackground(UIManager.getColor("Tree.selectionBackground")); + initValue.setOpaque(true); + } + else + { + result.setBackground(Color.white); + result.setBorder(BorderFactory.createLineBorder(initValue.getBackground())); + + } + DefaultMutableTreeNode t = (DefaultMutableTreeNode)value; + Object o = t.getUserObject(); + if (!( o instanceof VARNAGUIModel)) + { + if (expanded) + { + initValue.setIcon(_default.getOpenIcon()); + } + else + { + initValue.setIcon(_default.getClosedIcon()); + } + result.add(initValue,BorderLayout.WEST); + JButton del = new JButton("X"); + del.addActionListener(new FolderCloses((String)o,tree,m)); + result.add(del,BorderLayout.EAST); + } + else + { + VARNAGUIModel mod = (VARNAGUIModel) o; + initValue.setIcon(_default.getLeafIcon()); + result.add(initValue,BorderLayout.WEST); + if (mod.hasChanged()) + { + JButton refresh = new JButton("Refresh"); + result.add(refresh,BorderLayout.EAST); + } + } + return result; + } + + public Component getDefaultTreeCellRendererComponent(JTree tree, + Object value, boolean sel, boolean expanded, boolean leaf, + int row, boolean hasFocus) + { + return super.getTreeCellRendererComponent(tree,value,sel,expanded,leaf,row,hasFocus); + } + + public Component getTreeCellRendererComponent(JTree tree, + Object value, boolean sel, boolean expanded, boolean leaf, + int row, boolean hasFocus) + { + + return baseElements(tree,_m,value,sel,expanded,leaf,row,hasFocus); + } + public Dimension getPreferredSize(int row) { + Dimension size = super.getPreferredSize(); + size.width = _j.getWidth(); + System.out.println(size); + return size; + } + + +// @Override +// public void setBounds(final int x, final int y, final int width, final int height) { +// super.setBounds(x, y, Math.min(_j.getWidth()-x, width), height); +// } + + + public class FolderCloses implements ActionListener{ + String _path; + JComponent _p; + VARNAGUITreeModel _m; + + public FolderCloses(String path, JComponent p, VARNAGUITreeModel m) + { + _path = path; + _p = p; + _m = m; + } + public void actionPerformed(ActionEvent e) { + if (JOptionPane.showConfirmDialog(_p, "This folder will cease to be watched. Confirm?", "Closing folder", JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION) + { + _m.removeFolder(_path); + System.out.println(_j); + _j.updateUI(); + } + } + + } +} \ No newline at end of file