Author: dandre
Date: Sat Nov 2 19:14:35 2013
New Revision: 4651
Log:
try to improve popup location.
Modified:
trunk/AncestrisCore/modules.views.tree/src/genj/tree/TreeView.java
Modified: trunk/AncestrisCore/modules.views.tree/src/genj/tree/TreeView.java
==============================================================================
--- trunk/AncestrisCore/modules.views.tree/src/genj/tree/TreeView.java
(original)
+++ trunk/AncestrisCore/modules.views.tree/src/genj/tree/TreeView.java Sat Nov
2 19:14:35 2013
@@ -935,35 +935,54 @@
* fake set tt text to let tooltip manager hide or show tt
* the get ttlocation must return null if no entity can be found. if
not tt show a blank component
*/
- String tttext = null;
+ private Entity oldTTEntity = null;
@Override
public String getToolTipText(MouseEvent event) {
if (!showPopup()){
- tttext = null;
+ oldTTEntity = null;
return null;
}
- Point pos = TreeView.this.getMousePosition();
- Entity entity = null;
- if (pos != null)
- entity = getEntityAt(pos);
- tt.setEntity(entity);
- if (entity == null) {
- tttext = null;
- return null;
+ Entity entity = getEntityForEvent(event);
+ if (entity != oldTTEntity){
+ ttPosition = null;
+ oldTTEntity = entity;
}
- tttext = entity.getId();
- return tttext;
+ tt.setEntity(oldTTEntity);
+ if (oldTTEntity == null)
+ return null;
+ else
+ return oldTTEntity.getId();
+ }
+
+ /**
+ * Helper to find entity for a MouseEvent position in Content
coordinate
+ * @param event
+ * @return Entity
+ */
+ private Entity getEntityForEvent(MouseEvent event){
+ // check node
+ Entity entity = null;
+ Point p = view2model(event.getPoint());
+ Object content = model.getContentAt(p.x, p.y);
+ // nothing?
+ if (content != null && content instanceof Entity) {
+ entity = (Entity) content;
+ }
+ return entity;
}
+ private Point ttPosition = null;
@Override
public Point getToolTipLocation(MouseEvent event) {
- if (!showPopup())
- return null;
- if (tttext == null)
+ if (!showPopup() || oldTTEntity == null)
return null;
- return new Point(event.getX()-5, event.getY()-5);
+
+ if (ttPosition == null){
+ ttPosition = new Point(event.getX()-5, event.getY()+2);
+ }
+ return ttPosition;
}
-
+
/**
* @param e
*/
---------------------------------------------------------------------
Site Web Ancestris : http://www.ancestris.org
<*> Pour vous desinscrire de cette liste, envoyez un mail a :
[email protected]
<*> Pour obtenir de l'aide sur les commandes de la liste :
[email protected]
Pour obtenir tous les messages lies a ce fil de discussion, cliquez sur le
lien ci-dessous, cela ouvrira votre logiciel de messagerie. Il vous suffira
d'envoyer le message :
[email protected]