package pl.net.bluesoft.rnd.processtool.ui.utils; import org.apache.commons.lang3.StringUtils; import pl.net.bluesoft.rnd.processtool.ProcessToolContext; import com.vaadin.ui.Window; /** * Util witch provides tools to support javascript queues refresher * * @author mpawlak@bluesoft.net.pl * */ public class QueuesPanelRefresherUtil { /** Refresh interval in seconds */ private static final String REFRESHER_INTERVAL_SETTINGS_KEY = "refresher.interval"; public static String getQueueTaskId(String taskName) { /* remove whitespaces */ String fixedTaskName = StringUtils.trimToEmpty(taskName).replace(".", "-").replace(" ", "-"); return "user-task-name-"+fixedTaskName; } public static String getQueueProcessQueueId(String queueId) { /* remove whitespaces */ String fixedQueueId= StringUtils.trimToEmpty(queueId).replace(".", "-").replace(" ", "-"); return "user-queue-name-"+fixedQueueId; } public static String getSubstitutedQueueTaskId(String taskName, String userLogin) { /* remove whitespaces */ String fixedTaskName = StringUtils.trimToEmpty(taskName).replace(".", "-").replace(" ", "-"); return "substituted-"+userLogin+"-user-task-name-"+fixedTaskName; } public static String getSubstitutedRootNodeId(String userLogin) { return "substituted-"+userLogin+"-user-root-node"; } public static String getSubstitutedQueueProcessQueueId(String queueId, String userLogin) { /* remove whitespaces */ String fixedQueueId= StringUtils.trimToEmpty(queueId).replace(".", "-").replace(" ", "-"); return "substituted-"+userLogin+"-user-queue-name-"+fixedQueueId; } /** Register button with given button id */ public static void registerUser(Window mainWindow, String userLogin) { mainWindow.executeJavaScript("setCurrentUser('"+userLogin+"');"); } /** Change refresh interval in seconds */ public static void changeRefreshInterval(Window mainWindow, int seconds) { mainWindow.executeJavaScript("setRefreshInterval("+seconds*1000+");"); } public static void unregisterUser(Window mainWindow, String login) { mainWindow.executeJavaScript("clearRefreshCurrentUser();"); } public static void changeRefresherInterval(Window mainWindow) { String refreshInterval = ProcessToolContext.Util.getThreadProcessToolContext().getSetting(REFRESHER_INTERVAL_SETTINGS_KEY); if(refreshInterval == null || refreshInterval.isEmpty()) return; Integer interval = Integer.parseInt(refreshInterval); QueuesPanelRefresherUtil.changeRefreshInterval(mainWindow, interval); } }