Migrated to Zutil UserMessage class

This commit is contained in:
Ziver Koc 2021-02-17 22:28:27 +01:00
parent 1e0ec282ca
commit 0a1ce4fe60
12 changed files with 98 additions and 187 deletions

View file

@ -12,10 +12,6 @@ allprojects {
mavenLocal()
mavenCentral()
jcenter()
maven {
url 'https://jitpack.io' // Needed for ffmpeg4j project
}
}
}

View file

@ -45,7 +45,7 @@ public class HalContext {
private static HashMap<String,String> registeredConf = new HashMap<>();
private static Properties fileConf = new Properties();
private static Properties dbConf = new Properties();;
private static Properties dbConf = new Properties();
static {
@ -209,7 +209,7 @@ public class HalContext {
return value;
}
public static String getStringProperty(String key, String defaultValue){
if (!HalContext.containsProperty(key))
if (!containsProperty(key))
return defaultValue;
return getStringProperty(key);
}
@ -222,7 +222,7 @@ public class HalContext {
return Integer.parseInt(value);
}
public static int getIntegerProperty(String key, int defaultValue){
if (!HalContext.containsProperty(key))
if (!containsProperty(key))
return defaultValue;
return getIntegerProperty(key);
}
@ -231,7 +231,7 @@ public class HalContext {
return Boolean.parseBoolean(getStringProperty(key));
}
public static boolean getBooleanProperty(String key, boolean defaultValue) {
if (!HalContext.containsProperty(key))
if (!containsProperty(key))
return defaultValue;
return getBooleanProperty(key);
}
@ -258,5 +258,4 @@ public class HalContext {
HalContext.db = db;
}
}

View file

@ -4,9 +4,6 @@ import se.hal.HalContext;
import se.hal.intf.HalDaemon;
import se.hal.intf.HalSensorConfig.AggregationMethod;
import se.hal.page.HalAlertManager;
import se.hal.page.HalAlertManager.AlertLevel;
import se.hal.page.HalAlertManager.AlertTTL;
import se.hal.page.HalAlertManager.HalAlert;
import se.hal.struct.Sensor;
import se.hal.util.UTCTimePeriod;
import se.hal.util.UTCTimeUtility;
@ -14,6 +11,8 @@ import zutil.db.DBConnection;
import zutil.db.SQLResultHandler;
import zutil.db.handler.SimpleSQLResult;
import zutil.log.LogUtil;
import zutil.ui.UserMessageManager;
import zutil.ui.UserMessageManager.*;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
@ -41,7 +40,7 @@ public class SensorDataAggregatorDaemon implements HalDaemon {
YEAR
}
private HashMap<Long, HalAlert> alertMap = new HashMap<>();
private HashMap<Long, UserMessage> alertMap = new HashMap<>();
public void initiate(ScheduledExecutorService executor){
@ -114,10 +113,10 @@ public class SensorDataAggregatorDaemon implements HalDaemon {
if (alertMap.containsKey(sensor.getId()))
alertMap.get(sensor.getId()).dismiss();
HalAlert alert = new HalAlert(AlertLevel.WARNING,
UserMessage alert = new UserMessage(UserMessageManager.MessageLevel.WARNING,
"Sensor \"" + sensor.getName() + "\" stopped responding",
"at <span class=\"timestamp\">"+dbMaxRawTimestamp+"</span>",
AlertTTL.DISMISSED);
MessageTTL.DISMISSED);
alertMap.put(sensor.getId(), alert);
HalAlertManager.getInstance().addAlert(alert);
}

View file

@ -3,9 +3,6 @@ package se.hal.page;
import se.hal.ControllerManager;
import se.hal.HalContext;
import se.hal.intf.HalWebPage;
import se.hal.page.HalAlertManager.AlertLevel;
import se.hal.page.HalAlertManager.AlertTTL;
import se.hal.page.HalAlertManager.HalAlert;
import se.hal.struct.ClassConfigurationData;
import se.hal.struct.Event;
import se.hal.struct.User;
@ -14,11 +11,13 @@ import zutil.db.DBConnection;
import zutil.io.file.FileUtil;
import zutil.log.LogUtil;
import zutil.parser.Templator;
import zutil.ui.UserMessageManager.*;
import java.util.ArrayList;
import java.util.Map;
import java.util.logging.Logger;
public class EventConfigWebPage extends HalWebPage {
private static final Logger logger = LogUtil.getLogger();
private static final String TEMPLATE = HalContext.RESOURCE_WEB_ROOT + "/event_config.tmpl";
@ -62,8 +61,8 @@ public class EventConfigWebPage extends HalWebPage {
event.save(db);
ControllerManager.getInstance().register(event);
HalAlertManager.getInstance().addAlert(new HalAlert(
AlertLevel.SUCCESS, "Successfully created new event: " + event.getName(), AlertTTL.ONE_VIEW));
HalAlertManager.getInstance().addAlert(new UserMessage(
MessageLevel.SUCCESS, "Successfully created new event: " + event.getName(), MessageTTL.ONE_VIEW));
break;
case "modify_local_event":
@ -76,12 +75,12 @@ public class EventConfigWebPage extends HalWebPage {
event.getDeviceConfigurator().setValues(request).applyConfiguration();
event.save(db);
HalAlertManager.getInstance().addAlert(new HalAlert(
AlertLevel.SUCCESS, "Successfully saved event: "+event.getName(), AlertTTL.ONE_VIEW));
HalAlertManager.getInstance().addAlert(new UserMessage(
MessageLevel.SUCCESS, "Successfully saved event: "+event.getName(), MessageTTL.ONE_VIEW));
} else {
logger.warning("Unknown event id: " + id);
HalAlertManager.getInstance().addAlert(new HalAlert(
AlertLevel.ERROR, "Unknown event id: " + id, AlertTTL.ONE_VIEW));
HalAlertManager.getInstance().addAlert(new UserMessage(
MessageLevel.ERROR, "Unknown event id: " + id, MessageTTL.ONE_VIEW));
}
break;
@ -92,12 +91,12 @@ public class EventConfigWebPage extends HalWebPage {
ControllerManager.getInstance().deregister(event);
event.delete(db);
HalAlertManager.getInstance().addAlert(new HalAlert(
AlertLevel.SUCCESS, "Successfully removed event: "+event.getName(), AlertTTL.ONE_VIEW));
HalAlertManager.getInstance().addAlert(new UserMessage(
MessageLevel.SUCCESS, "Successfully removed event: "+event.getName(), MessageTTL.ONE_VIEW));
} else {
logger.warning("Unknown event id: " + id);
HalAlertManager.getInstance().addAlert(new HalAlert(
AlertLevel.ERROR, "Unknown event id: "+id, AlertTTL.ONE_VIEW));
HalAlertManager.getInstance().addAlert(new UserMessage(
MessageLevel.ERROR, "Unknown event id: "+id, MessageTTL.ONE_VIEW));
}
break;

View file

@ -7,6 +7,8 @@ import zutil.net.http.HttpHeader;
import zutil.net.http.HttpPage;
import zutil.net.http.HttpPrintStream;
import zutil.parser.Templator;
import zutil.ui.UserMessageManager;
import zutil.ui.UserMessageManager.UserMessage;
import java.io.IOException;
import java.util.*;
@ -19,50 +21,31 @@ public class HalAlertManager implements HttpPage {
private static final String PAGE_NAME = "alert";
private static HalAlertManager instance;
public enum AlertLevel{
ERROR,
WARNING,
SUCCESS,
INFO
}
public enum AlertTTL{
ONE_VIEW,
DISMISSED
}
private List<HalAlert> alerts = new LinkedList<>();
private UserMessageManager messageManager = new UserMessageManager();
private HalAlertManager(){}
public String getUrl(){
return "/" + PAGE_NAME;
}
public void addAlert(HalAlert alert) {
alerts.remove(alert); // We don't want to flood the user with duplicate alerts
alerts.add(alert);
public void addAlert(UserMessage alert) {
messageManager.add(alert);
}
public Templator generateAlerts() {
try {
// clone alert list and update ttl of alerts
List<HalAlert> alertsClone = new ArrayList<>(alerts.size());
for(Iterator<HalAlert> it = alerts.iterator(); it.hasNext(); ) {
HalAlert alert = it.next();
alertsClone.add(alert);
alert.ttl--;
if (alert.ttl <= 0) { // if alert is to old, remove it
logger.fine("Alert dismissed with end of life, alert id: "+ alert.id);
it.remove();
}
List<UserMessage> messages = messageManager.getMessages();
for (UserMessage msg : messages) {
msg.decreaseTTL();
}
Templator tmpl = new Templator(FileUtil.find(TEMPLATE));
tmpl.set("serviceUrl", getUrl());
tmpl.set("alerts", alertsClone);
tmpl.set("alerts", messages);
return tmpl;
} catch (IOException e) {
logger.log(Level.SEVERE, null, e);
@ -82,14 +65,9 @@ public class HalAlertManager implements HttpPage {
// parse alert id
int id = Integer.parseInt(request.get("id"));
// Find alert
for(Iterator<HalAlert> it = alerts.iterator(); it.hasNext(); ) {
HalAlert alert = it.next();
if (alert.getId() == id) {
logger.fine("User dismissed alert id: "+ id);
it.remove();
break;
}
}
UserMessage msg = messageManager.get(id);
if (msg != null)
msg.dismiss();
}
}
}
@ -102,63 +80,4 @@ public class HalAlertManager implements HttpPage {
public static HalAlertManager getInstance(){
return instance;
}
public static class HalAlert {
private static int nextId = 0;
private int id;
private AlertLevel level;
private String title;
private String msg;
private int ttl;
public HalAlert(AlertLevel level, String title, AlertTTL ttl) {
this(level, title, null, ttl);
}
public HalAlert(AlertLevel level, String title, String msg, AlertTTL ttl) {
this.id = nextId++;
this.level = level;
this.title = title;
this.msg = msg;
setTTL(ttl);
}
public int getId() {
return id;
}
public AlertLevel getLevel() {
return level;
}
public boolean isError(){ return level == AlertLevel.ERROR; }
public boolean isWarning(){ return level == AlertLevel.WARNING; }
public boolean isSuccess(){ return level == AlertLevel.SUCCESS; }
public boolean isInfo(){ return level == AlertLevel.INFO; }
public String getTitle() {
return title;
}
public String getMessage() {
return msg;
}
public void setTTL(AlertTTL ttl) {
switch (ttl){
case ONE_VIEW: this.ttl = 1; break;
case DISMISSED: this.ttl = Integer.MAX_VALUE; break;
}
}
public void dismiss(){
ttl = -1;
}
@Override
public boolean equals(Object obj) {
if (obj instanceof HalAlert)
return level == ((HalAlert) obj).level &&
title.equals(((HalAlert) obj).title);
return super.equals(obj);
}
}
}

View file

@ -4,14 +4,14 @@ import se.hal.ControllerManager;
import se.hal.HalContext;
import se.hal.HalServer;
import se.hal.intf.HalWebPage;
import se.hal.page.HalAlertManager.AlertLevel;
import se.hal.page.HalAlertManager.AlertTTL;
import se.hal.page.HalAlertManager.HalAlert;
import zutil.io.file.FileUtil;
import zutil.parser.Templator;
import zutil.ui.UserMessageManager;
import java.util.Map;
import static zutil.ui.UserMessageManager.*;
public class PluginConfigWebPage extends HalWebPage {
private static final String TEMPLATE = HalContext.RESOURCE_WEB_ROOT + "/plugin_config.tmpl";
@ -33,8 +33,8 @@ public class PluginConfigWebPage extends HalWebPage {
HalServer.enablePlugin(name,
(request.containsKey("enabled") && "on".equals(request.get("enabled"))));
HalAlertManager.getInstance().addAlert(new HalAlert(
AlertLevel.SUCCESS, "Successfully updated plugin " + name + ", change will take affect after restart.", AlertTTL.ONE_VIEW));
HalAlertManager.getInstance().addAlert(new UserMessage(
MessageLevel.SUCCESS, "Successfully updated plugin " + name + ", change will take affect after restart.", MessageTTL.ONE_VIEW));
}
Templator tmpl = new Templator(FileUtil.find(TEMPLATE));

View file

@ -3,9 +3,6 @@ package se.hal.page;
import se.hal.ControllerManager;
import se.hal.HalContext;
import se.hal.intf.HalWebPage;
import se.hal.page.HalAlertManager.AlertLevel;
import se.hal.page.HalAlertManager.AlertTTL;
import se.hal.page.HalAlertManager.HalAlert;
import se.hal.struct.ClassConfigurationData;
import se.hal.struct.Sensor;
import se.hal.struct.User;
@ -19,6 +16,8 @@ import java.util.ArrayList;
import java.util.Map;
import java.util.logging.Logger;
import static zutil.ui.UserMessageManager.*;
public class SensorConfigWebPage extends HalWebPage {
private static final Logger logger = LogUtil.getLogger();
private static final String TEMPLATE = HalContext.RESOURCE_WEB_ROOT + "/sensor_config.tmpl";
@ -64,8 +63,8 @@ public class SensorConfigWebPage extends HalWebPage {
sensor.save(db);
ControllerManager.getInstance().register(sensor);
HalAlertManager.getInstance().addAlert(new HalAlert(
AlertLevel.SUCCESS, "Successfully created new sensor: "+sensor.getName(), AlertTTL.ONE_VIEW));
HalAlertManager.getInstance().addAlert(new UserMessage(
MessageLevel.SUCCESS, "Successfully created new sensor: "+sensor.getName(), MessageTTL.ONE_VIEW));
break;
case "modify_local_sensor":
@ -78,12 +77,12 @@ public class SensorConfigWebPage extends HalWebPage {
sensor.getDeviceConfigurator().setValues(request).applyConfiguration();
sensor.save(db);
HalAlertManager.getInstance().addAlert(new HalAlert(
AlertLevel.SUCCESS, "Successfully saved sensor: "+sensor.getName(), AlertTTL.ONE_VIEW));
HalAlertManager.getInstance().addAlert(new UserMessage(
MessageLevel.SUCCESS, "Successfully saved sensor: "+sensor.getName(), MessageTTL.ONE_VIEW));
} else {
logger.warning("Unknown sensor id: " + id);
HalAlertManager.getInstance().addAlert(new HalAlert(
AlertLevel.ERROR, "Unknown sensor id: " + id, AlertTTL.ONE_VIEW));
HalAlertManager.getInstance().addAlert(new UserMessage(
MessageLevel.ERROR, "Unknown sensor id: " + id, MessageTTL.ONE_VIEW));
}
break;
@ -94,12 +93,12 @@ public class SensorConfigWebPage extends HalWebPage {
ControllerManager.getInstance().deregister(sensor);
sensor.delete(db);
HalAlertManager.getInstance().addAlert(new HalAlert(
AlertLevel.SUCCESS, "Successfully removed sensor: "+sensor.getName(), AlertTTL.ONE_VIEW));
HalAlertManager.getInstance().addAlert(new UserMessage(
MessageLevel.SUCCESS, "Successfully removed sensor: "+sensor.getName(), MessageTTL.ONE_VIEW));
} else {
logger.warning("Unknown sensor id: " + id);
HalAlertManager.getInstance().addAlert(new HalAlert(
AlertLevel.ERROR, "Unknown sensor id: " + id, AlertTTL.ONE_VIEW));
HalAlertManager.getInstance().addAlert(new UserMessage(
MessageLevel.ERROR, "Unknown sensor id: " + id, MessageTTL.ONE_VIEW));
}
break;
@ -116,8 +115,8 @@ public class SensorConfigWebPage extends HalWebPage {
user.setExternal(true);
user.save(db);
HalAlertManager.getInstance().addAlert(new HalAlert(
AlertLevel.SUCCESS, "Successfully created new external user with host: "+user.getHostname(), AlertTTL.ONE_VIEW));
HalAlertManager.getInstance().addAlert(new UserMessage(
MessageLevel.SUCCESS, "Successfully created new external user with host: "+user.getHostname(), MessageTTL.ONE_VIEW));
break;
case "modify_external_user":
@ -128,12 +127,12 @@ public class SensorConfigWebPage extends HalWebPage {
user.setPort(Integer.parseInt(request.get("port")));
user.save(db);
HalAlertManager.getInstance().addAlert(new HalAlert(
AlertLevel.SUCCESS, "Successfully saved external user with host: "+user.getHostname(), AlertTTL.ONE_VIEW));
HalAlertManager.getInstance().addAlert(new UserMessage(
MessageLevel.SUCCESS, "Successfully saved external user with host: "+user.getHostname(), MessageTTL.ONE_VIEW));
} else {
logger.warning("Unknown user id: " + id);
HalAlertManager.getInstance().addAlert(new HalAlert(
AlertLevel.ERROR, "Unknown user id: " + id, AlertTTL.ONE_VIEW));
HalAlertManager.getInstance().addAlert(new UserMessage(
MessageLevel.ERROR, "Unknown user id: " + id, MessageTTL.ONE_VIEW));
}
break;
case "remove_external_user":
@ -142,12 +141,12 @@ public class SensorConfigWebPage extends HalWebPage {
logger.info("Removing external user: " + user.getHostname());
user.delete(db);
HalAlertManager.getInstance().addAlert(new HalAlert(
AlertLevel.SUCCESS, "Successfully removed user with host: "+user.getHostname(), AlertTTL.ONE_VIEW));
HalAlertManager.getInstance().addAlert(new UserMessage(
MessageLevel.SUCCESS, "Successfully removed user with host: "+user.getHostname(), MessageTTL.ONE_VIEW));
} else {
logger.warning("Unknown user id: " + id);
HalAlertManager.getInstance().addAlert(new HalAlert(
AlertLevel.ERROR, "Unknown user id: "+id, AlertTTL.ONE_VIEW));
HalAlertManager.getInstance().addAlert(new UserMessage(
MessageLevel.ERROR, "Unknown user id: "+id, MessageTTL.ONE_VIEW));
}
break;
@ -159,12 +158,12 @@ public class SensorConfigWebPage extends HalWebPage {
sensor.setSynced(Boolean.parseBoolean(request.get("sync")));
sensor.save(db);
HalAlertManager.getInstance().addAlert(new HalAlert(
AlertLevel.SUCCESS, "Successfully saved external sensor: "+sensor.getName(), AlertTTL.ONE_VIEW));
HalAlertManager.getInstance().addAlert(new UserMessage(
MessageLevel.SUCCESS, "Successfully saved external sensor: "+sensor.getName(), MessageTTL.ONE_VIEW));
} else {
logger.warning("Unknown user id: " + id);
HalAlertManager.getInstance().addAlert(new HalAlert(
AlertLevel.ERROR, "Unknown sensor id: "+id, AlertTTL.ONE_VIEW));
HalAlertManager.getInstance().addAlert(new UserMessage(
MessageLevel.ERROR, "Unknown sensor id: "+id, MessageTTL.ONE_VIEW));
}
break;
}

View file

@ -12,11 +12,14 @@ import zutil.db.DBConnection;
import zutil.io.file.FileUtil;
import zutil.log.LogUtil;
import zutil.parser.Templator;
import zutil.ui.UserMessageManager;
import java.util.ArrayList;
import java.util.Map;
import java.util.logging.Logger;
import static zutil.ui.UserMessageManager.*;
public class TriggerWebPage extends HalWebPage {
private static final Logger logger = LogUtil.getLogger();
private static final String TEMPLATE = HalContext.RESOURCE_WEB_ROOT + "/trigger.tmpl";
@ -77,8 +80,8 @@ public class TriggerWebPage extends HalWebPage {
case "create_trigger":
if (flow == null){
logger.warning("Invalid flow id: " + request.get("flow-id"));
HalAlertManager.getInstance().addAlert(new HalAlertManager.HalAlert(
HalAlertManager.AlertLevel.ERROR, "Invalid flow id: " + request.get("flow-id"), HalAlertManager.AlertTTL.ONE_VIEW));
HalAlertManager.getInstance().addAlert(new UserMessage(
MessageLevel.ERROR, "Invalid flow id: " + request.get("flow-id"), MessageTTL.ONE_VIEW));
break;
}
@ -105,8 +108,8 @@ public class TriggerWebPage extends HalWebPage {
// Triggers
case "create_action":
if (flow == null){
HalAlertManager.getInstance().addAlert(new HalAlertManager.HalAlert(
HalAlertManager.AlertLevel.ERROR, "Invalid flow id", HalAlertManager.AlertTTL.ONE_VIEW));
HalAlertManager.getInstance().addAlert(new UserMessage(
MessageLevel.ERROR, "Invalid flow id", MessageTTL.ONE_VIEW));
break;
}

View file

@ -2,18 +2,18 @@ package se.hal.page;
import se.hal.HalContext;
import se.hal.intf.HalWebPage;
import se.hal.page.HalAlertManager.AlertLevel;
import se.hal.page.HalAlertManager.AlertTTL;
import se.hal.page.HalAlertManager.HalAlert;
import se.hal.struct.User;
import zutil.db.DBConnection;
import zutil.io.file.FileUtil;
import zutil.log.LogUtil;
import zutil.parser.Templator;
import zutil.ui.UserMessageManager;
import java.util.Map;
import java.util.logging.Logger;
import static zutil.ui.UserMessageManager.*;
public class UserConfigWebPage extends HalWebPage {
private static final Logger logger = LogUtil.getLogger();
private static final String TEMPLATE = HalContext.RESOURCE_WEB_ROOT + "/user_config.tmpl";
@ -50,8 +50,8 @@ public class UserConfigWebPage extends HalWebPage {
localUser.setAddress(request.get("address"));
localUser.save(db);
HalAlertManager.getInstance().addAlert(new HalAlert(
AlertLevel.SUCCESS, "Successfully saved profile changes", AlertTTL.ONE_VIEW));
HalAlertManager.getInstance().addAlert(new UserMessage(
MessageLevel.SUCCESS, "Successfully saved profile changes", MessageTTL.ONE_VIEW));
break;
}
}

View file

@ -1,12 +1,4 @@
repositories {
maven {
url 'https://jitpack.io' // Needed for ffmpeg4j project
}
}
dependencies {
implementation project(':hal-core')
implementation 'com.github.Manevolent:ffmpeg4j:4.1-1.4.4-2' // https://github.com/Manevolent/ffmpeg4j
//implementation 'net.bramp.ffmpeg:ffmpeg:0.6.2' // https://github.com/bramp/ffmpeg-cli-wrapper
}

View file

@ -36,11 +36,14 @@ import zutil.db.DBConnection;
import zutil.io.file.FileUtil;
import zutil.log.LogUtil;
import zutil.parser.Templator;
import zutil.ui.UserMessageManager;
import java.util.ArrayList;
import java.util.Map;
import java.util.logging.Logger;
import static zutil.ui.UserMessageManager.*;
public class CameraConfigWebPage extends HalWebPage {
private static final Logger logger = LogUtil.getLogger();
private static final String TEMPLATE = HalContext.RESOURCE_WEB_ROOT + "/camera_config.tmpl";
@ -83,8 +86,8 @@ public class CameraConfigWebPage extends HalWebPage {
camera.save(db);
//ControllerManager.getInstance().register(camera);
HalAlertManager.getInstance().addAlert(new HalAlertManager.HalAlert(
HalAlertManager.AlertLevel.SUCCESS, "Successfully created new camera: " + camera.getName(), HalAlertManager.AlertTTL.ONE_VIEW));
HalAlertManager.getInstance().addAlert(new UserMessage(
MessageLevel.SUCCESS, "Successfully created new camera: " + camera.getName(), MessageTTL.ONE_VIEW));
break;
case "modify_camera":
@ -97,12 +100,12 @@ public class CameraConfigWebPage extends HalWebPage {
camera.getDeviceConfigurator().setValues(request).applyConfiguration();
camera.save(db);
HalAlertManager.getInstance().addAlert(new HalAlertManager.HalAlert(
HalAlertManager.AlertLevel.SUCCESS, "Successfully saved camera: "+camera.getName(), HalAlertManager.AlertTTL.ONE_VIEW));
HalAlertManager.getInstance().addAlert(new UserMessage(
MessageLevel.SUCCESS, "Successfully saved camera: "+camera.getName(), MessageTTL.ONE_VIEW));
} else {
logger.warning("Unknown camera id: " + id);
HalAlertManager.getInstance().addAlert(new HalAlertManager.HalAlert(
HalAlertManager.AlertLevel.ERROR, "Unknown camera id: " + id, HalAlertManager.AlertTTL.ONE_VIEW));
HalAlertManager.getInstance().addAlert(new UserMessage(
MessageLevel.ERROR, "Unknown camera id: " + id, MessageTTL.ONE_VIEW));
}
break;
@ -113,12 +116,12 @@ public class CameraConfigWebPage extends HalWebPage {
//ControllerManager.getInstance().deregister(camera);
camera.delete(db);
HalAlertManager.getInstance().addAlert(new HalAlertManager.HalAlert(
HalAlertManager.AlertLevel.SUCCESS, "Successfully removed camera: "+camera.getName(), HalAlertManager.AlertTTL.ONE_VIEW));
HalAlertManager.getInstance().addAlert(new UserMessage(
MessageLevel.SUCCESS, "Successfully removed camera: "+camera.getName(), MessageTTL.ONE_VIEW));
} else {
logger.warning("Unknown camera id: " + id);
HalAlertManager.getInstance().addAlert(new HalAlertManager.HalAlert(
HalAlertManager.AlertLevel.ERROR, "Unknown camera id: "+id, HalAlertManager.AlertTTL.ONE_VIEW));
HalAlertManager.getInstance().addAlert(new UserMessage(
MessageLevel.ERROR, "Unknown camera id: "+id, MessageTTL.ONE_VIEW));
}
break;
}

View file

@ -31,13 +31,12 @@ import se.hal.plugin.powerchallenge.daemon.PCDataSynchronizationDaemon.SensorDat
import se.hal.plugin.powerchallenge.daemon.PCDataSynchronizationDaemon.SensorDataListDTO;
import se.hal.intf.HalDaemon;
import se.hal.page.HalAlertManager;
import se.hal.page.HalAlertManager.AlertTTL;
import se.hal.page.HalAlertManager.HalAlert;
import se.hal.struct.Sensor;
import se.hal.struct.User;
import zutil.db.DBConnection;
import zutil.log.LogUtil;
import zutil.parser.json.JSONParser;
import zutil.ui.UserMessageManager;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
@ -51,6 +50,8 @@ import java.util.concurrent.TimeUnit;
import java.util.logging.Level;
import java.util.logging.Logger;
import static zutil.ui.UserMessageManager.*;
public class PCDataSynchronizationClient implements HalDaemon {
private static final Logger logger = LogUtil.getLogger();
private static final long SYNC_INTERVAL = 5 * 60 * 1000; // 5 min
@ -157,8 +158,8 @@ public class PCDataSynchronizationClient implements HalDaemon {
} catch (NoRouteToHostException|UnknownHostException|ConnectException|SocketTimeoutException e) {
logger.warning("Unable to connect to "+ user.getHostname()+":"+user.getPort() +", "+ e.getMessage());
HalAlertManager.getInstance().addAlert(new HalAlert(HalAlertManager.AlertLevel.WARNING,
"Unable to connect to user with host: "+user.getHostname(), AlertTTL.DISMISSED));
HalAlertManager.getInstance().addAlert(new UserMessage(MessageLevel.WARNING,
"Unable to connect to user with host: "+user.getHostname(), MessageTTL.DISMISSED));
} catch (Exception e) {
logger.log(Level.SEVERE, null, e);
}
@ -170,8 +171,9 @@ public class PCDataSynchronizationClient implements HalDaemon {
}
/////////////// DTO ///////////////////////
// ----------------------------------------------------
// DTO
// ----------------------------------------------------
/**
* Request Peer information and isAvailable sensors