swing/src/net/sf/xframe/swing/table JXTableColumnModel.java,1.2,1.3 JXTableHeader.java,1.7,1.8 ColumnGroupHeader.java,1.2,1.3 KTable.java,1.3,1.4
Kurt Riede <[email protected]> Thu, 19 May 2005 00:09:36 +0000
| Newsgroups | gmane.text.xml.xframe.xsddoc.devel |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvsroot/xframe/swing/src/net/sf/xframe/swing/table
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10224/src/net/sf/xframe/swing/table
Modified Files:
JXTableColumnModel.java JXTableHeader.java
ColumnGroupHeader.java KTable.java
Log Message:
fix for bug [1200282] Header tooltips
Index: JXTableColumnModel.java
===================================================================
RCS file: /cvsroot/xframe/swing/src/net/sf/xframe/swing/table/JXTableColumnModel.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** JXTableColumnModel.java 2 Apr 2005 21:12:06 -0000 1.2
--- JXTableColumnModel.java 19 May 2005 00:09:28 -0000 1.3
***************
*** 172,176 ****
return lockedColumnModel.getColumnIndexAtX(xPosition);
} else {
! return scrollColumnModel.getColumnIndexAtX(xPosition - lockedColumnModel.getTotalColumnWidth());
}
}
--- 172,177 ----
return lockedColumnModel.getColumnIndexAtX(xPosition);
} else {
! return getFrozenColumns()
! + scrollColumnModel.getColumnIndexAtX(xPosition - lockedColumnModel.getTotalColumnWidth());
}
}
Index: ColumnGroupHeader.java
===================================================================
RCS file: /cvsroot/xframe/swing/src/net/sf/xframe/swing/table/ColumnGroupHeader.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** ColumnGroupHeader.java 12 Nov 2004 11:37:17 -0000 1.2
--- ColumnGroupHeader.java 19 May 2005 00:09:28 -0000 1.3
***************
*** 21,24 ****
--- 21,26 ----
package net.sf.xframe.swing.table;
+ import java.awt.Point;
+ import java.awt.event.MouseEvent;
import java.util.Enumeration;
import java.util.Vector;
***************
*** 28,31 ****
--- 30,35 ----
import javax.swing.table.TableColumnModel;
+ import net.sf.xframe.swing.JXTable;
+
/**
*
***************
*** 91,93 ****
--- 95,141 ----
return null;
}
+
+ /**
+ * Allows the renderer's tips to be used if there is text set.
+ * @param e the location of the event identifies the proper renderer and,
+ * therefore, the proper tip
+ * @return the tool tip for this component
+ */
+ public String getToolTipText(final MouseEvent e) {
+ final int x;
+ final KTable kTable1 = (KTable) getTable();
+ final JXTable jxTable = kTable1.getEnclosingJXTable();
+ if (kTable1.getType() == KTable.TYPE_LOCKED) {
+ x = e.getX();
+ } else {
+ x = e.getX() + jxTable.getLockedTable().getWidth();
+ }
+ System.out.println("ColumnGroupHeader.getToolTipText" + x + ", " + e.getY());
+ final MouseEvent event = new MouseEvent(jxTable.getTableHeader(), e.getID(), e.getWhen(), e.getModifiers(), x, e.getY(),
+ e.getClickCount(), e.isPopupTrigger(), e.getButton());
+ return jxTable.getTableHeader().getToolTipText(event);
+ }
+
+ /**
+ * Returns the tooltip location in this component's coordinate system.
+ * If <code>null</code> is returned, Swing will choose a location.
+ * The default implementation returns <code>null</code>.
+ *
+ * @param e the <code>MouseEvent</code> that caused the
+ * <code>ToolTipManager</code> to show the tooltip
+ * @return always returns <code>null</code>
+ */
+ public Point getToolTipLocation(final MouseEvent e) {
+ final int x;
+ final KTable kTable1 = (KTable) getTable();
+ final JXTable jxTable = kTable1.getEnclosingJXTable();
+ if (kTable1.getType() == KTable.TYPE_LOCKED) {
+ x = e.getX();
+ } else {
+ x = e.getX() + jxTable.getLockedTable().getWidth();
+ }
+ final MouseEvent event = new MouseEvent(jxTable.getTableHeader(), e.getID(), e.getWhen(), e.getModifiers(), x, e.getY(),
+ e.getClickCount(), e.isPopupTrigger(), e.getButton());
+ return jxTable.getTableHeader().getToolTipLocation(event);
+ }
}
Index: JXTableHeader.java
===================================================================
RCS file: /cvsroot/xframe/swing/src/net/sf/xframe/swing/table/JXTableHeader.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** JXTableHeader.java 6 Apr 2005 20:23:15 -0000 1.7
--- JXTableHeader.java 19 May 2005 00:09:28 -0000 1.8
***************
*** 21,24 ****
--- 21,25 ----
package net.sf.xframe.swing.table;
+ import java.awt.AWTEventMulticaster;
import java.awt.Font;
import java.awt.Point;
***************
*** 26,30 ****
--- 27,35 ----
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
+ import java.awt.event.MouseMotionListener;
+ import java.awt.event.MouseWheelEvent;
+ import java.awt.event.MouseWheelListener;
import java.util.Enumeration;
+ import java.util.EventListener;
import javax.accessibility.Accessible;
***************
*** 49,53 ****
* @author <a href=mailto:[email protected]>Kurt Riede</a>
*/
! public final class JXTableHeader extends JComponent implements TableColumnModelListener, Accessible {
/**
--- 54,58 ----
* @author <a href=mailto:[email protected]>Kurt Riede</a>
*/
! public class JXTableHeader extends JComponent implements TableColumnModelListener, Accessible {
/**
***************
*** 66,69 ****
--- 71,83 ----
private final JTableHeader scrollHeader;
+ /** Reference to the mouse listener. */
+ private transient MouseListener mouseListener;
+
+ /** Reference to the mouse motion listener. */
+ private transient MouseMotionListener mouseMotionListener;
+
+ /** Reference to the mouse wheel listener. */
+ private transient MouseWheelListener mouseWheelListener;
+
/**
* Constructs a <code>JXTableHeader</code> which is initialized with
***************
*** 75,79 ****
*/
public JXTableHeader(final TableColumnModel cm) {
! this(cm, new JTableHeader(), new JTableHeader(cm));
}
--- 89,93 ----
*/
public JXTableHeader(final TableColumnModel cm) {
! this(cm, new ColumnGroupHeader(null), new ColumnGroupHeader(null));
}
***************
*** 414,433 ****
/**
- * Allows the renderer's tips to be used if there is text set.
- * @param e the location of the event identifies the proper
- * renderer and, therefore, the proper tip
- * @return the tool tip for this component
- */
- public String getToolTipText(final MouseEvent e) {
- if (e.getY() < lockedHeader.getWidth()) {
- return lockedHeader.getToolTipText(e);
- } else {
- MouseEvent event = new MouseEvent(e.getComponent(), e.getID(), e.getWhen(), e.getModifiers(),
- e.getX(), e.getY(), e.getClickCount(), e.isPopupTrigger(), e.getButton());
- return scrollHeader.getToolTipText(event);
- }
- }
-
- /**
* Returns the look and feel (L&F) object that renders this component.
* @return the look and feel (L&F) object
--- 428,431 ----
***************
*** 702,704 ****
--- 700,1077 ----
return lockedHeader.getAccessibleContext();
}
+
+ /**
+ * Removes the specified mouse listener so that it no longer
+ * receives mouse events from this component. This method performs
+ * no function, nor does it throw an exception, if the listener
+ * specified by the argument was not previously added to this component.
+ * If listener <code>l</code> is <code>null</code>,
+ * no exception is thrown and no action is performed.
+ *
+ * @param l the mouse listener
+ * @see java.awt.event.MouseEvent
+ * @see java.awt.event.MouseListener
+ * @see #addMouseListener
+ * @see #getMouseListeners
+ * @see java.awt.Component#removeMouseListener(java.awt.event.MouseListener)
+ */
+ public synchronized void removeMouseListener(final MouseListener l) {
+ if (l == null) {
+ return;
+ }
+ mouseListener = AWTEventMulticaster.remove(mouseListener, l);
+ }
+
+ /**
+ * Returns an array of all the mouse listeners
+ * registered on this component.
+ *
+ * @return all of this component's <code>MouseListener</code>s
+ * or an empty array if no mouse
+ * listeners are currently registered
+ *
+ * @see #addMouseListener
+ * @see #removeMouseListener
+ * @since 1.4
+ * @see java.awt.Component#getMouseListeners()
+ */
+ public synchronized MouseListener[] getMouseListeners() {
+ return (MouseListener[]) getListeners(MouseListener.class);
+ }
+
+ /**
+ * Adds the specified mouse motion listener to receive mouse motion
+ * events from this component.
+ * If listener <code>l</code> is <code>null</code>,
+ * no exception is thrown and no action is performed.
+ *
+ * @param l the mouse motion listener
+ * @see java.awt.event.MouseEvent
+ * @see java.awt.event.MouseMotionListener
+ * @see #removeMouseMotionListener
+ * @see #getMouseMotionListeners
+ * @see java.awt.Component#addMouseMotionListener(java.awt.event.MouseMotionListener)
+ */
+ public synchronized void addMouseMotionListener(final MouseMotionListener l) {
+ if (l == null) {
+ return;
+ }
+ mouseMotionListener = AWTEventMulticaster.add(mouseMotionListener, l);
+ scrollHeader.addMouseMotionListener(new JXMouseMultiListener(l, KTable.TYPE_SCROLL));
+ lockedHeader.addMouseMotionListener(new JXMouseMultiListener(l, KTable.TYPE_LOCKED));
+ }
+
+ /**
+ * Removes the specified mouse motion listener so that it no longer
+ * receives mouse motion events from this component. This method performs
+ * no function, nor does it throw an exception, if the listener
+ * specified by the argument was not previously added to this component.
+ * If listener <code>l</code> is <code>null</code>,
+ * no exception is thrown and no action is performed.
+ *
+ * @param l the mouse motion listener
+ * @see java.awt.event.MouseEvent
+ * @see java.awt.event.MouseMotionListener
+ * @see #addMouseMotionListener
+ * @see #getMouseMotionListeners
+ * @see java.awt.Component#removeMouseMotionListener(java.awt.event.MouseMotionListener)
+ */
+ public synchronized void removeMouseMotionListener(final MouseMotionListener l) {
+ if (l == null) {
+ return;
+ }
+ mouseMotionListener = AWTEventMulticaster.remove(mouseMotionListener, l);
+ }
+
+ /**
+ * Returns an array of all the mouse motion listeners
+ * registered on this component.
+ *
+ * @return all of this component's <code>MouseMotionListener</code>s
+ * or an empty array if no mouse motion
+ * listeners are currently registered
+ *
+ * @see #addMouseMotionListener
+ * @see #removeMouseMotionListener
+ * @see java.awt.Component#getMouseMotionListeners()
+ */
+ public synchronized MouseMotionListener[] getMouseMotionListeners() {
+ return (MouseMotionListener[]) getListeners(MouseMotionListener.class);
+ }
+
+ /**
+ * Adds the specified mouse wheel listener to receive mouse wheel events
+ * from this component. Containers also receive mouse wheel events from
+ * sub-components.
+ * If l is null, no exception is thrown and no action is performed.
+ *
+ * @param l the mouse wheel listener.
+ * @see java.awt.event.MouseWheelEvent
+ * @see java.awt.event.MouseWheelListener
+ * @see #removeMouseWheelListener
+ * @see #getMouseWheelListeners
+ * @see java.awt.Component#addMouseWheelListener(java.awt.event.MouseWheelListener)
+ */
+ public synchronized void addMouseWheelListener(final MouseWheelListener l) {
+ if (l == null) {
+ return;
+ }
+ mouseWheelListener = AWTEventMulticaster.add(mouseWheelListener, l);
+ scrollHeader.addMouseWheelListener(new JXMouseMultiListener(l, KTable.TYPE_SCROLL));
+ lockedHeader.addMouseWheelListener(new JXMouseMultiListener(l, KTable.TYPE_LOCKED));
+ }
+
+ /**
+ * Removes the specified mouse wheel listener so that it no longer
+ * receives mouse wheel events from this component. This method performs
+ * no function, nor does it throw an exception, if the listener
+ * specified by the argument was not previously added to this component.
+ * If l is null, no exception is thrown and no action is performed.
+ *
+ * @param l the mouse wheel listener.
+ * @see java.awt.event.MouseWheelEvent
+ * @see java.awt.event.MouseWheelListener
+ * @see #addMouseWheelListener
+ * @see #getMouseWheelListeners
+ * @see java.awt.Component#removeMouseWheelListener(java.awt.event.MouseWheelListener)
+ */
+ public synchronized void removeMouseWheelListener(final MouseWheelListener l) {
+ if (l == null) {
+ return;
+ }
+ mouseWheelListener = AWTEventMulticaster.remove(mouseWheelListener, l);
+ }
+
+ /**
+ * Returns an array of all the mouse wheel listeners
+ * registered on this component.
+ *
+ * @return all of this component's <code>MouseWheelListener</code>s
+ * or an empty array if no mouse wheel
+ * listeners are currently registered
+ *
+ * @see #addMouseWheelListener
+ * @see #removeMouseWheelListener
+ * @see java.awt.Component#getMouseWheelListeners()
+ */
+ public synchronized MouseWheelListener[] getMouseWheelListeners() {
+ return (MouseWheelListener[]) getListeners(MouseWheelListener.class);
+ }
+
+ /**
+ * Returns an array of all the objects currently registered
+ * as <code><em>Foo</em>Listener</code>s
+ * upon this <code>Component</code>.
+ * <code><em>Foo</em>Listener</code>s are registered using the
+ * <code>add<em>Foo</em>Listener</code> method.
+ *
+ * <p>
+ * You can specify the <code>listenerType</code> argument
+ * with a class literal, such as
+ * <code><em>Foo</em>Listener.class</code>.
+ * For example, you can query a
+ * <code>Component</code> <code>c</code>
+ * for its mouse listeners with the following code:
+ *
+ * <pre>MouseListener[] mls = (MouseListener[])(c.getListeners(MouseListener.class));</pre>
+ *
+ * If no such listeners exist, this method returns an empty array.
+ *
+ * @param listenerType the type of listeners requested; this parameter
+ * should specify an interface that descends from
+ * <code>java.util.EventListener</code>
+ * @return an array of all objects registered as
+ * <code><em>Foo</em>Listener</code>s on this component,
+ * or an empty array if no such listeners have been added
+ *
+ * @see #getMouseListeners
+ */
+ public EventListener[] getListeners(final Class listenerType) {
+ final EventListener l;
+ if (listenerType == MouseListener.class) {
+ l = mouseListener;
+ } else if (listenerType == MouseMotionListener.class) {
+ l = mouseMotionListener;
+ } else if (listenerType == MouseWheelListener.class) {
+ l = mouseWheelListener;
+ } else {
+ return super.getListeners(listenerType);
+ }
+ return AWTEventMulticaster.getListeners(l, listenerType);
+ }
+
+ /**
+ * Internal mouse listener delegate for all three mouse listener interfaces.
+ */
+ private final class JXMouseMultiListener implements MouseListener, MouseMotionListener, MouseWheelListener {
+
+ /** Reference to the enclosing mouse listener. */
+ private final transient EventListener parentEventListener;
+
+ /** Type of tabel, can be {@link KTable#TYPE_LOCKED}, {@link KTable#TYPE_SCROLL} or {@link KTable#TYPE_NONE}. */
+ private final int tableType;
+
+ /**
+ * Constructor.
+ * @param l mouse listener of sourrounding JTable
+ * @param type table tye ({@link KTable#TYPE_LOCKED} or {@link KTable#TYPE_SCROLL})
+ */
+ private JXMouseMultiListener(final EventListener l, final int type) {
+ super();
+ parentEventListener = l;
+ tableType = type;
+ }
+
+ /**
+ * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)
+ */
+ public void mouseClicked(final MouseEvent e) {
+ ((MouseListener) parentEventListener).mouseClicked(translateMouseEvent(e));
+ }
+
+ /**
+ * @see java.awt.event.MouseListener#mouseEntered(java.awt.event.MouseEvent)
+ */
+ public void mouseEntered(final MouseEvent e) {
+ ((MouseListener) parentEventListener).mouseEntered(translateMouseEvent(e));
+ }
+
+ /**
+ * @see java.awt.event.MouseListener#mouseExited(java.awt.event.MouseEvent)
+ */
+ public void mouseExited(final MouseEvent e) {
+ ((MouseListener) parentEventListener).mouseExited(translateMouseEvent(e));
+ }
+
+ /**
+ * @see java.awt.event.MouseListener#mousePressed(java.awt.event.MouseEvent)
+ */
+ public void mousePressed(final MouseEvent e) {
+ ((MouseListener) parentEventListener).mousePressed(translateMouseEvent(e));
+ }
+
+ /**
+ * @see java.awt.event.MouseListener#mouseReleased(java.awt.event.MouseEvent)
+ */
+ public void mouseReleased(final MouseEvent e) {
+ ((MouseListener) parentEventListener).mouseReleased(translateMouseEvent(e));
+ }
+
+ /**
+ * @see java.awt.event.MouseMotionListener#mouseDragged(java.awt.event.MouseEvent)
+ */
+ public void mouseDragged(final MouseEvent e) {
+ ((MouseMotionListener) parentEventListener).mouseDragged(translateMouseEvent(e));
+ }
+
+ /**
+ * @see java.awt.event.MouseMotionListener#mouseMoved(java.awt.event.MouseEvent)
+ */
+ public void mouseMoved(final MouseEvent e) {
+ ((MouseMotionListener) parentEventListener).mouseMoved(translateMouseEvent(e));
+ }
+
+ /**
+ * @see java.awt.event.MouseWheelListener#mouseWheelMoved(java.awt.event.MouseWheelEvent)
+ */
+ public void mouseWheelMoved(final MouseWheelEvent e) {
+ ((MouseWheelListener) parentEventListener).mouseWheelMoved(translateMouseWheelEvent(e));
+ }
+
+ /**
+ * Translates the coordinates of a KTable's mouse event into
+ * coordinated of the surrounding JTable.
+ *
+ * @param e mouse event of KTable
+ * @return mouse event for JTable
+ */
+ private MouseEvent translateMouseEvent(final MouseEvent e) {
+ final int x;
+ if (tableType == KTable.TYPE_LOCKED) {
+ x = e.getX();
+ } else {
+ x = e.getX() + lockedHeader.getWidth();
+ }
+ return new MouseEvent(
+ table.getTableHeader(), e.getID(), e.getWhen(), e.getModifiers(), x, e.getY(),
+ e.getClickCount(), e.isPopupTrigger(), e.getButton());
+ }
+
+ /**
+ * Translates the coordinates of a KTable's mouse wheel event into
+ * coordinated of the surrounding JTable.
+ *
+ * @param e mouse event of KTable
+ * @return mouse event for JTable
+ */
+ private MouseWheelEvent translateMouseWheelEvent(final MouseWheelEvent e) {
+ final int x;
+ if (tableType == KTable.TYPE_LOCKED) {
+ x = e.getX();
+ } else {
+ x = e.getX() + lockedHeader.getWidth();
+ }
+ return new MouseWheelEvent(
+ e.getComponent(), e.getID(), e.getWhen(), e.getModifiers(), x, e.getY(),
+ e.getClickCount(), e.isPopupTrigger(), e.getScrollType(), e.getScrollAmount(), e.getWheelRotation());
+ }
+ }
+
+ /**
+ * Registers the text to display in a tool tip.
+ * The text displays when the cursor lingers over the component.
+ * <p>
+ * See <a href="http://java.sun.com/docs/books/tutorial/uiswing/components/tooltip.html">How to Use Tool Tips</a>
+ * in <em>The Java Tutorial</em>
+ * for further documentation.
+ *
+ * @param text the string to display; if the text is <code>null</code>,
+ * the tool tip is turned off for this component
+ * @see javax.swing.JComponent#TOOL_TIP_TEXT_KEY
+ */
+ public void setToolTipText(final String text) {
+ lockedHeader.setToolTipText(text);
+ scrollHeader.setToolTipText(text);
+ }
+
+ /**
+ * Returns the tooltip string that has been set with
+ * <code>setToolTipText</code>.
+ *
+ * @return the text of the tool tip
+ * @see javax.swing.JComponent#TOOL_TIP_TEXT_KEY
+ */
+ public String getToolTipText() {
+ return lockedHeader.getToolTipText();
+ }
+
+ /**
+ * Allows the renderer's tips to be used if there is text set.
+ * @param e the location of the event identifies the proper
+ * renderer and, therefore, the proper tip
+ * @return the tool tip for this component
+ */
+ public String getToolTipText(final MouseEvent e) {
+ System.out.println("getToolTipText" + e.getX() + ", " + e.getY());
+ if (e.getY() < lockedHeader.getWidth()) {
+ return lockedHeader.getToolTipText(e);
+ } else {
+ MouseEvent event = new MouseEvent(e.getComponent(), e.getID(), e.getWhen(), e.getModifiers(),
+ e.getX(), e.getY(), e.getClickCount(), e.isPopupTrigger(), e.getButton());
+ return scrollHeader.getToolTipText(event);
+ }
+ }
+
+ /**
+ * Returns the tooltip location in this component's coordinate system.
+ * If <code>null</code> is returned, Swing will choose a location.
+ * The default implementation returns <code>null</code>.
+ *
+ * @param event the <code>MouseEvent</code> that caused the
+ * <code>ToolTipManager</code> to show the tooltip
+ * @return always returns <code>null</code>
+ */
+ public Point getToolTipLocation(final MouseEvent event) {
+ return null;
+ }
}
\ No newline at end of file
Index: KTable.java
===================================================================
RCS file: /cvsroot/xframe/swing/src/net/sf/xframe/swing/table/KTable.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** KTable.java 9 Apr 2005 12:48:13 -0000 1.3
--- KTable.java 19 May 2005 00:09:29 -0000 1.4
***************
*** 22,29 ****
--- 22,31 ----
import java.awt.Component;
+ import java.awt.Point;
import java.awt.Rectangle;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.KeyEvent;
+ import java.awt.event.MouseEvent;
import java.text.MessageFormat;
import java.util.EventObject;
***************
*** 559,569 ****
* @param anchorSelected index of anchor selection
*/
! private static void changeTableColumnModels(
! final ListSelectionModel sm,
! final int index,
! final boolean toggle,
! final boolean extend,
! final boolean selected,
! final boolean anchorSelected) {
if (toggle) {
if (extend) {
--- 561,566 ----
* @param anchorSelected index of anchor selection
*/
! private static void changeTableColumnModels(final ListSelectionModel sm, final int index, final boolean toggle,
! final boolean extend, final boolean selected, final boolean anchorSelected) {
if (toggle) {
if (extend) {
***************
*** 621,623 ****
--- 618,662 ----
}
}
+
+ /**
+ * Allows the renderer's tips to be used if there is text set.
+ * @param e the location of the event identifies the proper renderer and,
+ * therefore, the proper tip
+ * @return the tool tip for this component
+ */
+ public String getToolTipText(final MouseEvent e) {
+ System.out.println("getToolTipText" + e.getX() + ", " + e.getY());
+ final int x;
+ final JXTable jxTable = getEnclosingJXTable();
+ if (type == TYPE_LOCKED) {
+ x = e.getX();
+ } else {
+ x = e.getX() + jxTable.getLockedTable().getWidth();
+ }
+ final MouseEvent event = new MouseEvent(e.getComponent(), e.getID(), e.getWhen(), e.getModifiers(), x, e.getY(),
+ e.getClickCount(), e.isPopupTrigger(), e.getButton());
+ return jxTable.getToolTipText(event);
+ }
+
+ /**
+ * Returns the tooltip location in this component's coordinate system.
+ * If <code>null</code> is returned, Swing will choose a location.
+ * The default implementation returns <code>null</code>.
+ *
+ * @param e the <code>MouseEvent</code> that caused the
+ * <code>ToolTipManager</code> to show the tooltip
+ * @return always returns <code>null</code>
+ */
+ public Point getToolTipLocation(final MouseEvent e) {
+ final int x;
+ final JXTable jxTable = getEnclosingJXTable();
+ if (type == TYPE_LOCKED) {
+ x = e.getX();
+ } else {
+ x = e.getX() + jxTable.getLockedTable().getWidth();
+ }
+ final MouseEvent event = new MouseEvent(e.getComponent(), e.getID(), e.getWhen(), e.getModifiers(), x, e.getY(),
+ e.getClickCount(), e.isPopupTrigger(), e.getButton());
+ return jxTable.getToolTipLocation(event);
+ }
}
-------------------------------------------------------
This SF.Net email is sponsored by Oracle Space Sweepstakes
Want to be the first software developer in space?
Enter now for the Oracle Space Sweepstakes!
http://ads.osdn.com/?ad_id=7412&alloc_id=16344&op=click