X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=forester%2Fjava%2Fsrc%2Forg%2Fforester%2Farchaeopteryx%2FNodeEditPanel.java;h=21aaea9ca54b747ba402173223c87da30df032d4;hb=3d5864a39739960c126f2ab5585162fd52d1f47d;hp=0917131350f46c179aa244d25414725ad0a41ac2;hpb=236967e4df09b7a3fd6659a8131aa97ef9906a28;p=jalview.git diff --git a/forester/java/src/org/forester/archaeopteryx/NodeEditPanel.java b/forester/java/src/org/forester/archaeopteryx/NodeEditPanel.java index 0917131..21aaea9 100644 --- a/forester/java/src/org/forester/archaeopteryx/NodeEditPanel.java +++ b/forester/java/src/org/forester/archaeopteryx/NodeEditPanel.java @@ -25,6 +25,9 @@ package org.forester.archaeopteryx; +import java.awt.Component; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.math.BigDecimal; @@ -35,11 +38,12 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import javax.swing.BoxLayout; +import javax.swing.JButton; import javax.swing.JEditorPane; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JScrollPane; -import javax.swing.JSplitPane; import javax.swing.JTree; import javax.swing.event.TreeSelectionEvent; import javax.swing.event.TreeSelectionListener; @@ -143,7 +147,9 @@ class NodeEditPanel extends JPanel { private final TreePanel _tree_panel; private final Map _map; - public NodeEditPanel( final PhylogenyNode phylogeny_node, final TreePanel tree_panel ) { + public NodeEditPanel( final PhylogenyNode phylogeny_node, + final TreePanel tree_panel, + final NodeFrame parent ) { _map = new HashMap(); _my_node = phylogeny_node; _tree_panel = tree_panel; @@ -159,17 +165,32 @@ class NodeEditPanel extends JPanel { getJTree().setToggleClickCount( 1 ); getJTree().setInvokesStopCellEditing( true ); final JScrollPane tree_view = new JScrollPane( getJTree() ); + + final JButton close_button = new JButton( "Close" ); + close_button.setToolTipText( "This only closes this window; to write values back to the phylogeny, press ENTER after editing a field." ); + close_button.setEnabled( true ); + + close_button.addActionListener( new ActionListener() { + public void actionPerformed( final ActionEvent e ) { + writeAll(); + parent.close(); + } + } ); + _pane = new JEditorPane(); _pane.setEditable( true ); - final JScrollPane data_view = new JScrollPane( _pane ); - final JSplitPane split_pane = new JSplitPane( JSplitPane.VERTICAL_SPLIT ); - split_pane.setTopComponent( tree_view ); - // split_pane.setBottomComponent( data_view ); - data_view.setMinimumSize( Constants.NODE_PANEL_SPLIT_MINIMUM_SIZE ); - tree_view.setMinimumSize( Constants.NODE_PANEL_SPLIT_MINIMUM_SIZE ); - // split_pane.setDividerLocation( 400 ); - split_pane.setPreferredSize( Constants.NODE_PANEL_SIZE ); - add( split_pane ); + tree_view.setMinimumSize( AptxConstants.NODE_PANEL_SPLIT_MINIMUM_SIZE ); + tree_view.setPreferredSize( AptxConstants.NODE_PANEL_SIZE ); + + close_button.setAlignmentX( Component.CENTER_ALIGNMENT ); + tree_view.setAlignmentX( Component.CENTER_ALIGNMENT ); + + final JPanel panel = new JPanel(); + panel.setLayout( new BoxLayout( panel, BoxLayout.Y_AXIS ) ); + panel.add( tree_view ); + panel.add( close_button ); + add( panel ); + getJTree().getSelectionModel().setSelectionMode( TreeSelectionModel.SINGLE_TREE_SELECTION ); getJTree().addKeyListener( new KeyListener() { @@ -210,8 +231,14 @@ class NodeEditPanel extends JPanel { if ( old_path != null ) { writeBack( ( DefaultMutableTreeNode ) old_path.getLastPathComponent() ); } + AptxUtil.lookAtRealBranchLengthsForAptxControlSettings( tree_panel.getPhylogeny(), + tree_panel.getControlPanel() ); + getTreePanel().repaint(); } } ); + + + } private void addBasics( final DefaultMutableTreeNode top, final PhylogenyNode phylogeny_node, final String name ) { @@ -1103,6 +1130,7 @@ class NodeEditPanel extends JPanel { default: throw new IllegalArgumentException( "unknown: " + tag ); } + getJTree().repaint(); getTreePanel().setEdited( true ); getTreePanel().repaint(); @@ -1113,6 +1141,7 @@ class NodeEditPanel extends JPanel { } void writeAll() { + //TODO this does not do what it should do. for( int i = 0; i < getJTree().getRowCount(); i++ ) { final TreePath p = getJTree().getPathForRow( i ); writeBack( ( DefaultMutableTreeNode ) p.getLastPathComponent() );