fixed swing/fx threading issues by adding view timer abstraction and factory