@Override
        public void process(WatchedEvent event) {
            System.out.println("[" + Thread.currentThread() + "event : "
                    + event);
            switch (event.getType()) {
                case None:
                    switch (event.getState()) {
                        case Disconnected:
                        case Expired:
                            System.out.println("[" + Thread.currentThread()
                                    + "Session has expired");
                            synchronized (lock) {
                                dead = true;
                                lock.notifyAll();
                            }
                            break;
                        case SyncConnected:
                            System.out.println("[" + Thread.currentThread()
                                    + "Connected to the server");
                            synchronized (lock) {
                                dead = false;
                                lock.notifyAll();
                                // populateView();
                            }
                            break;
                    }
                    zk.register(this);
                    break;
                case NodeCreated:
                    System.out.println("Node " + event.getPath() + " created");
                    // FLE+
                    // nodeDataChanged(event.getPath());
                    break;
                case NodeChildrenChanged:
                    System.out.println("Children changed for node "
                            + event.getPath());
                    populateChildren(event.getPath());
                    break;
                case NodeDeleted:
                    System.out.println("Node " + event.getPath() + " deleted");
                    nodeDeleted(event.getPath());
                    break;
                case NodeDataChanged:
                    System.out.println("Data changed for node "
                            + event.getPath());
                    nodeDataChanged(event.getPath());
                    break;
            }
        }