org.C2C.client.TaskManager.java Source code

Java tutorial

Introduction

Here is the source code for org.C2C.client.TaskManager.java

Source

/**
 * Copyright 2014-2015 C2C Software, LLC. All rights reserved. C2C SOFTWARE
 * PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 */
package org.C2C.client;

import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.ui.DialogBox;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

/**
 * Class TaskManager
 *
 * @author C2C Software, LLC
 */
public class TaskManager {

    private static Map<Integer, Task> TASKS = new HashMap<Integer, Task>();
    public static boolean TRANSFERING = false;
    public static boolean NEW_TASK_AVAILABLE = false;
    protected static Integer ACTIVE_COUNT = 0;
    public static Integer PENDING_COUNT = 0;
    public static boolean DEBUG = false;
    static Timer timer;
    static int TASK_MANAGER_EXEC_TIME = 50;

    public static void ADD_TASK(Task task) {
        if (timer == null) {
            timer = new Timer() {
                @Override
                public void run() {
                    if (!TaskManager.TRANSFERING) {
                        CallManager.TICKS++;
                        TaskManager.RUN();
                    }
                }
            };
            timer.scheduleRepeating(TASK_MANAGER_EXEC_TIME);
        }

        TASKS.put(new Integer(task.getId()), task);
        ACTIVE_COUNT++;
        if (task instanceof TaskObject) {
            if (!(task instanceof TaskEmpty)) {
                PENDING_COUNT++;
            }
        }

    }

    public static void ADD_TASK_OBJECT(String tid, String className) {
        TaskObject taskObject = new TaskObject();
        taskObject.m_newInstanceRequired = false;
        taskObject.setObjectType(className);
        taskObject.setCompleted(true);
        taskObject.setExecuted(true);
        Integer itid = Integer.parseInt(tid);
        TASKS.remove(Integer.parseInt(taskObject.getId()));
        taskObject.setId(itid.toString());
        TASKS.put(itid, taskObject);
    }

    public static Task GET_TASK_BY_ID(String id) {
        return TASKS.get(new Integer(id));
    }

    public static Map<Integer, Task> GET_TASKS() {
        return TASKS;
    }

    public static void RUN() {
        DialogBox dialogbox = new DialogBox(false);
        dialogbox.setStyleName("demo-DialogBox");
        dialogbox.setText("RUNX " + ACTIVE_COUNT + ", ");
        dialogbox.show();
        if (ACTIVE_COUNT <= 0 /*|| !CallManager.IS_LOGGEDIN*/) {
            return;
        }
        dialogbox.setText("RUNY");
        dialogbox.show();
        String toServer = "";
        Task prev = null;
        Map<Integer, Task> tasks = GET_TASKS();
        Set<Integer> keySet = tasks.keySet();
        for (Integer key : keySet) {
            final Task tsk = tasks.get(key);
            if (!tsk.isCompleted()) {
                if (tsk instanceof TaskEmpty) {
                    if (tsk.isActiveTaskChild()) {
                        if (!toServer.isEmpty()) {
                            prev.addListener(new TaskCompletedListener() {
                                public void completed(Task task) {

                                    String s = tsk.run();

                                }
                            });
                        } else {
                            tsk.run();
                        }
                    }
                } else {
                    String runRes = "";
                    runRes = tsk.run();
                    toServer = toServer.concat(runRes);

                    prev = tsk;

                }
            }
        }
        if (!toServer.isEmpty()) {
            //WindowManager.getInstance().setStatusBarText(toServer.length()+"");
            CallManager.SEND_TO_SERVER(toServer);
        }
    }
}