From: Pierre-Luc P. <pa...@us...> - 2004-02-23 20:00:41
|
Update of /cvsroot/gallery/gallery_remote/com/gallery/GalleryRemote In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14482/com/gallery/GalleryRemote Modified Files: DroppableTree.java MainFrame.java Log Message: 2004-02-23 Pierre-Luc Paour <ga...@pa...> (1.3.2-b4) * Fixed Linux tree display error. Thanks to "herk" for finding the problem. The album tree no longer has a horizontal scrollbar, but uses tooltips. The tooltips only appear if part of the name is obscured, ala Windows Tree Control. Index: DroppableTree.java =================================================================== RCS file: /cvsroot/gallery/gallery_remote/com/gallery/GalleryRemote/DroppableTree.java,v retrieving revision 1.3 retrieving revision 1.4 diff -w -u -r1.3 -r1.4 --- DroppableTree.java 27 Dec 2003 07:52:27 -0000 1.3 +++ DroppableTree.java 23 Feb 2004 18:27:05 -0000 1.4 @@ -26,7 +26,10 @@ import com.gallery.GalleryRemote.util.ImageUtils; import javax.swing.*; +import javax.swing.tree.TreeCellRenderer; +import javax.swing.tree.TreePath; import java.awt.*; +import java.awt.event.MouseEvent; import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.Transferable; import java.awt.datatransfer.UnsupportedFlavorException; @@ -277,4 +280,54 @@ return row; } + + public Point getToolTipLocation(MouseEvent event) { + try { + Point p = event.getPoint(); + int selRow = getRowForLocation(p.x, p.y); + + TreePath path = getPathForRow(selRow); + Rectangle pathBounds = getPathBounds(path); + + Point location = pathBounds.getLocation(); + location.translate(-4, 0); + return location; + } catch (Exception e) { + return null; + } + } + + public String getToolTipText(MouseEvent event) { + // this code is copied from JTree, to only show tooltip when longer than the tree + if(event != null) { + Point p = event.getPoint(); + int selRow = getRowForLocation(p.x, p.y); + TreeCellRenderer r = getCellRenderer(); + + if(selRow != -1 && r != null) { + TreePath path = getPathForRow(selRow); + Object lastPath = path.getLastPathComponent(); + Component rComponent = r.getTreeCellRendererComponent + (this, lastPath, isRowSelected(selRow), + isExpanded(selRow), getModel().isLeaf(lastPath), selRow, + true); + + Rectangle pathBounds = getPathBounds(path); + + if(rComponent instanceof JComponent && pathBounds.x + pathBounds.width > getParent().getWidth()) { + MouseEvent newEvent; + + p.translate(-pathBounds.x, -pathBounds.y); + newEvent = new MouseEvent(rComponent, event.getID(), + event.getWhen(), + event.getModifiers(), + p.x, p.y, event.getClickCount(), + event.isPopupTrigger()); + + return ((JComponent)rComponent).getToolTipText(newEvent); + } + } + } + return null; + } } \ No newline at end of file Index: MainFrame.java =================================================================== RCS file: /cvsroot/gallery/gallery_remote/com/gallery/GalleryRemote/MainFrame.java,v retrieving revision 1.111 retrieving revision 1.112 diff -w -u -r1.111 -r1.112 --- MainFrame.java 18 Feb 2004 00:07:17 -0000 1.111 +++ MainFrame.java 23 Feb 2004 18:27:05 -0000 1.112 @@ -256,8 +256,13 @@ jAlbumTree.setExpandsSelectedPaths(true); jAlbumTree.setEnabled(true); jAlbumTree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); - jAlbumTree.setCellRenderer(new AlbumTreeRenderer()); - ((JLabel) jAlbumTree.getCellRenderer()).setPreferredSize(new Dimension(GalleryRemote._().properties.getIntProperty("albumPictureDividerLocation"), -1)); + AlbumTreeRenderer albumTreeRenderer = new AlbumTreeRenderer(); + albumTreeRenderer.setLeafIcon(null); + albumTreeRenderer.setOpenIcon(null); + albumTreeRenderer.setClosedIcon(null); + jAlbumTree.setCellRenderer(albumTreeRenderer); + //((JLabel) jAlbumTree.getCellRenderer()).setPreferredSize(new Dimension(GalleryRemote._().properties.getIntProperty("albumPictureDividerLocation"), -1)); + ToolTipManager.sharedInstance().registerComponent(jAlbumTree); jPictureInspector.setMainFrame(this); jAlbumInspector.setMainFrame(this); @@ -994,6 +999,7 @@ jPictureScroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); jPictureScroll.setBorder(new TitledBorder(BorderFactory.createEmptyBorder(), GRI18n.getString(MODULE, "pictures"))); jAlbumScroll.setBorder(new TitledBorder(BorderFactory.createEmptyBorder(), GRI18n.getString(MODULE, "albums"))); + jAlbumScroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); setupKeyboardHandling(jPictureScroll); setupKeyboardHandling(jAlbumScroll); @@ -1908,8 +1914,10 @@ // setForeground(Color.black); } - setIcon(null); - setText(getText().trim()); + //setIcon(null); + String name = getText().trim(); + setText(name); + setToolTipText(name); return this; } |