ThreadController.java :  » Image » jchannel » org » jchannel » client » controller » Java Open Source

Java Open Source » Image » jchannel 
jchannel » org » jchannel » client » controller » ThreadController.java
package org.jchannel.client.controller;

import java.util.List;

import com.google.gwt.user.client.rpc.AsyncCallback;

import org.jchannel.client.state.ThreadState;
import org.jchannel.client.state.TopicState;
import org.jchannel.client.ui.dialog.MessageDialog;

import org.jchannel.server.entity.Thread;

public final class ThreadController extends Controller {

  public static final ThreadController INSTANCE = new ThreadController();

  public void countPages(final String threadUuid) {
    SERVICE.countPosts(threadUuid,
            new AsyncCallback<Long>() {

              @Override
              public void onFailure(final Throwable t) {
                MessageDialog.INSTANCE.show("Error counting thread pages");
              }

              @Override
              public void onSuccess(final Long count) {
                int pages = (int) Math.ceil((double) count / (double) ThreadState.INSTANCE.getPageSize());

                ThreadState.INSTANCE.setPages(pages);
              }
            });
  }

  public void deleteThread(final String threadUuid) {
    SERVICE.deleteThread(threadUuid,
            new AsyncCallback<Void>() {

              @Override
              public void onFailure(final Throwable t) {
                MessageDialog.INSTANCE.show("Error deleting thread");
              }

              @Override
              public void onSuccess(final Void result) {
                TopicController.INSTANCE.countPages(TopicState.INSTANCE.getTopic().getShortName());

                findThreads(
                        TopicState.INSTANCE.getTopic().getShortName(),
                        TopicState.INSTANCE.getPage(),
                        TopicState.INSTANCE.getPageSize());

                MessageDialog.INSTANCE.show("Thread deleted");
              }
            });
  }

  public void findThread(final String threadUuid) {
    SERVICE.readThread(threadUuid,
            new AsyncCallback<Thread>() {

              @Override
              public void onFailure(final Throwable t) {
                MessageDialog.INSTANCE.show("Error finding thread");
              }

              @Override
              public void onSuccess(final Thread thread) {
                ThreadState.INSTANCE.setThread(thread);
              }
            });
  }

  public void findThreads(final String topicShortName, final int page, final int pageSize) {
    SERVICE.readThreads(topicShortName, page, pageSize,
            new AsyncCallback<List<Thread>>() {

              @Override
              public void onFailure(final Throwable t) {
                MessageDialog.INSTANCE.show("Error finding threads");
              }

              @Override
              public void onSuccess(final List<Thread> threads) {
                ThreadState.INSTANCE.setThreads(threads);
              }
            });
  }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.