As an attachment the project. Uses a regular Table but TreeTable should work similarly. I had to made changes to the client-side implementation of Table (VMyScrollTable). See line 4126:

			private Event event;
			private Timer timer = new Timer() {
				@Override
				public void run() {
					handleBrowserEvent(event);
				}
			};

			/*
			 * React on click that occur on content cells only
			 */
			public void onBrowserEvent(Event event) {
				if (enabled) {
					int type = event.getTypeInt();
					if (Event.ONMOUSEUP == type) {
						this.event = event;
						timer.schedule(200);
					} else if (Event.ONDBLCLICK == type) {
						this.event = null;
						timer.cancel();
					} else {
						handleBrowserEvent(event);
					}
				}
				super.onBrowserEvent(event);
			}

			public void handleBrowserEvent(Event event) {

In the above, click events are delayed to avoid normal click events when user does a double click actually.