&& (getY(dragNodeIdx) < dragNode.maxY + dragNode.baseY)) {
&& (getY(dragNodeIdx) < dragNode.maxY + dragNode.baseY) && (dragNode.ofsY != null)) {
            public void mouseDragged(MouseEvent e) {                int x = e.getX();                int y = e.getY();                if ((x == oldx) && (y == oldy))		    return;		// move the selected node one dot by one dot. (Why? Hiroo)                if (x - oldx > 0) { // X+		    while ((x - nodeX[dragNodeIdx] > DELTA)			   && (getX(dragNodeIdx) < dragNode.maxX)) {			if (dragNode.invertX)			    dragNode.ofsX.set(dragNode.ofsX.get() - 1);			else			    dragNode.ofsX.set(dragNode.ofsX.get() + 1);			paintComponent(null);		    }		} else if (x - oldx < 0) {	// X-		    while ((x - nodeX[dragNodeIdx] < -DELTA)			   && (getX(dragNodeIdx) > dragNode.minX)) {			if (dragNode.invertX)			    dragNode.ofsX.set(dragNode.ofsX.get() + 1);			else			    dragNode.ofsX.set(dragNode.ofsX.get() - 1);			paintComponent(null);		    }		}                if (y - oldy < 0) { // Y-		    while ((y - nodeY[dragNodeIdx] < -DELTA)			   && (getY(dragNodeIdx) < dragNode.maxY + dragNode.baseY)) {			dragNode.ofsY.set(dragNode.ofsY.get() + 1);			paintComponent(null);		    }		} else if (y - oldy > 0) { // Y+		    while ((y - nodeY[dragNodeIdx] > DELTA)			   && (getY(dragNodeIdx) > dragNode.minY + dragNode.baseY)) {			dragNode.ofsY.set(dragNode.ofsY.get() - 1);			paintComponent(null);		    }		}		oldx = x;		oldy = y;		// update JTextField                int j = 0;                for (int i = 0; i < nodes.length; i++) {		    if (nodes[i].minX != nodes[i].maxX) {			if (i == dragNodeIdx) {			    values[j].setText(new Integer(nodes[i].ofsX.get()).toString());			    //break; // added by hiroo			    //bk: this break here is wrong, code below might			    //improperly not execute.			}			j++;		    }		    if (nodes[i].minY != nodes[i].maxY) {			if (i == dragNodeIdx) {			    values[j].setText(new Integer(nodes[i].ofsY.get()).toString());			    break; // added by hiroo			}			j++;		    }		}                repaint();	    }