Changeset 36:e587ea35dc35


Ignore:
Timestamp:
Jan 7, 2008, 6:56:19 PM (17 years ago)
Author:
fnevgeny
Branch:
default
Phase:
public
Message:

Tracker added.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • source/class/pf/ui/canvas/Plotter.js

    r30 r36  
    4545        this.setCursor("crosshair");
    4646       
    47         v = new Array;
     47        var v = new Array;
    4848        v.xmin = 0.1;
    4949        v.xmax = 0.9;
    5050        v.ymin = 0.1;
    5151        v.ymax = 0.9;
    52         w = new Array;
    53         v.xmin = 0.0;
    54         v.xmax = 1.0;
    55         v.ymin = 0.0;
    56         v.ymax = 1.0;
     52        var w = new Array;
     53        w.xmin = 0.0;
     54        w.xmax = 1.0;
     55        w.ymin = 0.0;
     56        w.ymax = 1.0;
    5757       
    5858        this.v = v;
    5959        this.w = w;
     60
     61        var tracker = new qx.ui.basic.Atom("X:<br>Y:");
     62        tracker.setBorder("groove");
     63        tracker.hide();
     64        tracker.dp = aPoint();
     65        tracker.vp = aPoint();
     66        tracker.wp = aPoint();
     67        this.add(tracker);
     68        this.tracker = tracker;
     69       
     70        this.setHorizontalChildrenAlign("left");
     71        this.setVerticalChildrenAlign("top");
     72       
     73        this.addEventListener("mousemove", function(ev) {
     74                var tracker = this.tracker;
     75                var el = this.getElement();
     76                tracker.dp.x = ev.getPageX() -
     77                    qx.html.Location.getClientInnerLeft(el) - 1;
     78                tracker.dp.y = ev.getPageY() -
     79                    qx.html.Location.getClientInnerTop(el) - 1;
     80                this.dPoint2vPoint(tracker.dp, tracker.vp);
     81                this.vPoint2wPoint(tracker.vp, tracker.wp);
     82                tracker.setLabel("X: " + NumPrint(tracker.wp.x) +
     83                    "<br>Y: " + NumPrint(tracker.wp.y));
     84                tracker.setLeft(tracker.dp.x + 12);
     85                tracker.setTop(tracker.dp.y - 12);
     86            }, this);
     87       
     88        this.addEventListener("mouseover", function(ev) {
     89                this.tracker.show();
     90            }, this);
     91       
     92        this.addEventListener("mouseout", function(ev) {
     93                this.tracker.hide();
     94            }, this);
    6095    },
    6196   
     
    71106        },
    72107       
     108        dPoint2vPoint: function(dp, vp)
     109        {
     110            var width  = this.getWidthValue();
     111            var height = this.getHeightValue();
     112           
     113            vp.x = dp.x/width;
     114            vp.y = 1.0 - dp.y/height;
     115        },
     116       
    73117        wPoint2vPoint: function(wp, vp)
    74118        {
     
    78122            vp.x = v.xmin + (wp.x - w.xmin)/(w.xmax - w.xmin)*(v.xmax - v.xmin);
    79123            vp.y = v.ymin + (wp.y - w.ymin)/(w.ymax - w.ymin)*(v.ymax - v.ymin);
     124        },
     125       
     126        vPoint2wPoint: function(vp, wp)
     127        {
     128            var v = this.v;
     129            var w = this.w;
     130           
     131            wp.x = w.xmin + (vp.x - v.xmin)/(v.xmax - v.xmin)*(w.xmax - w.xmin);
     132            wp.y = w.ymin + (vp.y - v.ymin)/(v.ymax - v.ymin)*(w.ymax - w.ymin);
    80133        },
    81134       
Note: See TracChangeset for help on using the changeset viewer.