I'd separate the movement logic into another class. It looks like you have some data-driven behaviour in there (mostXPositionThreshold, leastXPositionThreshold) which could be moved into a HorizontalPingPong movement class or something (maybe use one class for horizontal and vertical ping-pong movement).
Limiting movement speed to 1 pixel at a time (you check for exact pixel positions at least once, e.g.
if(position.getX() == leastXPositionThreshold)
{
runOnce = false;
movementRightFlag = true;
}
is going to cause problems later on. Always check >= or <=
Then you ruin everything by hardcoding the number 50 :(