[freenet-cvs] r15632 - in trunk/freenet/src/freenet: clients/http/bookmark node node/updater node/useralerts

bombe at freenetproject.org bombe at freenetproject.org
Mon Oct 29 09:24:33 UTC 2007


Author: bombe
Date: 2007-10-29 09:24:33 +0000 (Mon, 29 Oct 2007)
New Revision: 15632

Added:
   trunk/freenet/src/freenet/node/useralerts/AbstractUserAlert.java
Modified:
   trunk/freenet/src/freenet/clients/http/bookmark/BookmarkItem.java
   trunk/freenet/src/freenet/node/DarknetPeerNode.java
   trunk/freenet/src/freenet/node/IPDetectorPluginManager.java
   trunk/freenet/src/freenet/node/Node.java
   trunk/freenet/src/freenet/node/updater/UpdateOverMandatoryManager.java
   trunk/freenet/src/freenet/node/useralerts/BuildOldAgeUserAlert.java
   trunk/freenet/src/freenet/node/useralerts/ExtOldAgeUserAlert.java
   trunk/freenet/src/freenet/node/useralerts/IPUndetectedUserAlert.java
   trunk/freenet/src/freenet/node/useralerts/MeaningfulNodeNameUserAlert.java
   trunk/freenet/src/freenet/node/useralerts/N2NTMUserAlert.java
   trunk/freenet/src/freenet/node/useralerts/OpennetUserAlert.java
   trunk/freenet/src/freenet/node/useralerts/PeerManagerUserAlert.java
   trunk/freenet/src/freenet/node/useralerts/ProxyUserAlert.java
   trunk/freenet/src/freenet/node/useralerts/RevocationKeyFoundUserAlert.java
   trunk/freenet/src/freenet/node/useralerts/SimpleHTMLUserAlert.java
   trunk/freenet/src/freenet/node/useralerts/SimpleUserAlert.java
   trunk/freenet/src/freenet/node/useralerts/TimeSkewDetectedUserAlert.java
   trunk/freenet/src/freenet/node/useralerts/UpdatedVersionAvailableUserAlert.java
   trunk/freenet/src/freenet/node/useralerts/UserAlert.java
Log:
add user identifier object to UserAlert
add abstract base implementation of UserAlert

Modified: trunk/freenet/src/freenet/clients/http/bookmark/BookmarkItem.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/bookmark/BookmarkItem.java	2007-10-29 00:50:08 UTC (rev 15631)
+++ trunk/freenet/src/freenet/clients/http/bookmark/BookmarkItem.java	2007-10-29 09:24:33 UTC (rev 15632)
@@ -7,6 +7,7 @@
 import freenet.keys.USK;
 import freenet.l10n.L10n;
 import freenet.node.NodeClientCore;
+import freenet.node.useralerts.AbstractUserAlert;
 import freenet.node.useralerts.UserAlert;
 import freenet.node.useralerts.UserAlertManager;
 import freenet.support.HTMLEncoder;
@@ -39,12 +40,12 @@
 		alert = new BookmarkUpdatedUserAlert();
 	}
 
-	private class BookmarkUpdatedUserAlert implements UserAlert {
+	private class BookmarkUpdatedUserAlert extends AbstractUserAlert {
 
-		public boolean userCanDismiss() {
-			return true;
+		public BookmarkUpdatedUserAlert() {
+			super(true, null, null, null, UserAlert.MINOR, false, null, true, null);
 		}
-
+		
 		public String getTitle() {
 			return l10n("bookmarkUpdatedTitle", "name", name);
 		}
@@ -61,10 +62,6 @@
 			return n;
 		}
 
-		public short getPriorityClass() {
-			return UserAlert.MINOR;
-		}
-
 		public boolean isValid() {
 			synchronized (BookmarkItem.this) {
 				return updated;
@@ -81,10 +78,6 @@
 			return l10n("deleteBookmarkUpdateNotification");
 		}
 
-		public boolean shouldUnregisterOnDismiss() {
-			return true;
-		}
-
 		public void onDismiss() {
 			disableBookmark();
 		}

Modified: trunk/freenet/src/freenet/node/DarknetPeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/DarknetPeerNode.java	2007-10-29 00:50:08 UTC (rev 15631)
+++ trunk/freenet/src/freenet/node/DarknetPeerNode.java	2007-10-29 09:24:33 UTC (rev 15632)
@@ -29,6 +29,7 @@
 import freenet.io.xfer.BulkTransmitter;
 import freenet.io.xfer.PartiallyReceivedBulk;
 import freenet.l10n.L10n;
+import freenet.node.useralerts.AbstractUserAlert;
 import freenet.node.useralerts.N2NTMUserAlert;
 import freenet.node.useralerts.UserAlert;
 import freenet.support.Base64;
@@ -903,7 +904,7 @@
 		}
 
 		protected void onReceiveFailure() {
-			UserAlert alert = new UserAlert() {
+			UserAlert alert = new AbstractUserAlert() {
 				public String dismissButtonText() {
 					return L10n.getString("UserAlert.hide");
 				}
@@ -999,7 +1000,7 @@
 		}
 
 		private void onReceiveSuccess() {
-			UserAlert alert = new UserAlert() {
+			UserAlert alert = new AbstractUserAlert() {
 				public String dismissButtonText() {
 					return L10n.getString("UserAlert.hide");
 				}
@@ -1099,7 +1100,7 @@
 		
 		/** Ask the user whether (s)he wants to download a file from a direct peer */
 		public UserAlert askUserUserAlert() {
-			return new UserAlert() {
+			return new AbstractUserAlert() {
 				public String dismissButtonText() {
 					return null; // Cannot hide, but can reject
 				}

Modified: trunk/freenet/src/freenet/node/IPDetectorPluginManager.java
===================================================================
--- trunk/freenet/src/freenet/node/IPDetectorPluginManager.java	2007-10-29 00:50:08 UTC (rev 15631)
+++ trunk/freenet/src/freenet/node/IPDetectorPluginManager.java	2007-10-29 09:24:33 UTC (rev 15632)
@@ -11,6 +11,7 @@
 import freenet.io.comm.FreenetInetAddress;
 import freenet.io.comm.Peer;
 import freenet.l10n.L10n;
+import freenet.node.useralerts.AbstractUserAlert;
 import freenet.node.useralerts.ProxyUserAlert;
 import freenet.node.useralerts.UserAlert;
 import freenet.pluginmanager.DetectedIP;
@@ -31,28 +32,18 @@
  */
 public class IPDetectorPluginManager implements ForwardPortCallback {
 	
-	public class MyUserAlert implements UserAlert {
+	public class MyUserAlert extends AbstractUserAlert {
 
-		final short code;
 		final boolean suggestPortForward;
-		final String text;
-		final String title;
-		private boolean isValid = true;
 		
 		public MyUserAlert(String title, String text, boolean suggestPortForward, short code) {
-			this.title = title;
-			this.text = text;
+			super(false, title, text, null, code, true, L10n.getString("UserAlert.hide"), false, null);
 			this.suggestPortForward = suggestPortForward;
-			this.code = code;
 		}
 
-		public String dismissButtonText() {
-			return "Hide";
-		}
-
 		public HTMLNode getHTMLText() {
 			HTMLNode div = new HTMLNode("div");
-			div.addChild("#", text);
+			div.addChild("#", super.getText());
 			if(suggestPortForward) {
 				L10n.addL10nSubstitution(div, "IPDetectorPluginManager.suggestForwardPortWithLink", new String[] { "link", "/link", "port" },
 						new String[] { "<a href=\"/?_CHECKED_HTTP_=http://wiki.freenetproject.org/FirewallAndRouterIssues\">", "</a>", Integer.toString(node.getDarknetPortNumber()) });
@@ -60,14 +51,10 @@
 			return div;
 		}
 
-		public short getPriorityClass() {
-			return code;
-		}
-
 		public String getText() {
-			if(!suggestPortForward) return text;
+			if(!suggestPortForward) return super.getText();
 			StringBuffer sb = new StringBuffer();
-			sb.append(text);
+			sb.append(super.getText());
 			// FIXME we should support any number of ports, UDP or TCP, and pick them up from the node as we do with the forwarding plugin ... that would be a bit of a pain for L10n though ...
 			int darknetPort = node.getDarknetPortNumber();
 			int opennetPort = node.getOpennetFNPPort();
@@ -82,26 +69,14 @@
 			return sb.toString();
 		}
 
-		public String getTitle() {
-			return title;
-		}
-
-		public boolean isValid() {
-			return isValid;
-		}
-
 		public void isValid(boolean validity) {
-			isValid = validity;
+			valid = validity;
 		}
 
 		public void onDismiss() {
-			isValid = false;
+			valid = false;
 		}
 
-		public boolean shouldUnregisterOnDismiss() {
-			return false;
-		}
-
 		public boolean userCanDismiss() {
 			return !suggestPortForward;
 		}

Modified: trunk/freenet/src/freenet/node/Node.java
===================================================================
--- trunk/freenet/src/freenet/node/Node.java	2007-10-29 00:50:08 UTC (rev 15631)
+++ trunk/freenet/src/freenet/node/Node.java	2007-10-29 09:24:33 UTC (rev 15632)
@@ -75,6 +75,7 @@
 import freenet.keys.SSKVerifyException;
 import freenet.l10n.L10n;
 import freenet.node.updater.NodeUpdateManager;
+import freenet.node.useralerts.AbstractUserAlert;
 import freenet.node.useralerts.BuildOldAgeUserAlert;
 import freenet.node.useralerts.ExtOldAgeUserAlert;
 import freenet.node.useralerts.MeaningfulNodeNameUserAlert;
@@ -1443,13 +1444,8 @@
 			
 			if(spuriousOOMs) {
 				System.err.println("Please upgrade to at least sun jvm 1.4.2_13, 1.5.0_10 or 1.6 (recommended). This version is buggy and may cause spurious OutOfMemoryErrors.");
-				clientCore.alerts.register(new UserAlert() {
+				clientCore.alerts.register(new AbstractUserAlert(false, null, null, null, UserAlert.ERROR, true, null, false, null) {
 
-					public String dismissButtonText() {
-						// Not dismissable
-						return null;
-					}
-
 					public HTMLNode getHTMLText() {
 						HTMLNode n = new HTMLNode("div");
 						L10n.addL10nSubstitution(n, "Node.buggyJVMWithLink", 
@@ -1459,10 +1455,6 @@
 						return n;
 					}
 
-					public short getPriorityClass() {
-						return UserAlert.ERROR;
-					}
-
 					public String getText() {
 						return l10n("buggyJVM", "version", System.getProperty("java.vm.version"));
 					}
@@ -1471,27 +1463,10 @@
 						return l10n("buggyJVMTitle");
 					}
 
-					public boolean isValid() {
-						return true;
-					}
-
 					public void isValid(boolean validity) {
 						// Ignore
 					}
 
-					public void onDismiss() {
-						// Ignore
-					}
-
-					public boolean shouldUnregisterOnDismiss() {
-						return false;
-					}
-
-					public boolean userCanDismiss() {
-						// Cannot be dismissed
-						return false;
-					}
-					
 				});
 			}
 			
@@ -1518,12 +1493,8 @@
 				if((assumeKernel == null) || (assumeKernel.length() == 0) || (!(assumeKernel.startsWith("2.2") || assumeKernel.startsWith("2.4")))) {
 					System.err.println(l10n("deadlockWarning"));
 					Logger.error(this, l10n("deadlockWarning"));
-					clientCore.alerts.register(new UserAlert() {
+					clientCore.alerts.register(new AbstractUserAlert(false, null, null, null, UserAlert.CRITICAL_ERROR, true, null, false, null) {
 						
-						public boolean userCanDismiss() {
-							return false;
-						}
-						
 						public String getTitle() {
 							return l10n("deadlockTitle");
 						}
@@ -1536,31 +1507,10 @@
 							return new HTMLNode("div", l10n("deadlockWarning"));
 						}
 						
-						public short getPriorityClass() {
-							return UserAlert.CRITICAL_ERROR;
-						}
-						
-						public boolean isValid() {
-							return true;
-						}
-						
 						public void isValid(boolean validity) {
 							// Not clearable.
 						}
 						
-						public String dismissButtonText() {
-							// Not dismissable.
-							return null;
-						}
-						
-						public boolean shouldUnregisterOnDismiss() {
-							// Not dismissable.
-							return false;
-						}
-						
-						public void onDismiss() {
-							// Not dismissable.
-						}
 					});
 				}
 			}

Modified: trunk/freenet/src/freenet/node/updater/UpdateOverMandatoryManager.java
===================================================================
--- trunk/freenet/src/freenet/node/updater/UpdateOverMandatoryManager.java	2007-10-29 00:50:08 UTC (rev 15631)
+++ trunk/freenet/src/freenet/node/updater/UpdateOverMandatoryManager.java	2007-10-29 09:24:33 UTC (rev 15632)
@@ -38,6 +38,7 @@
 import freenet.node.PeerNode;
 import freenet.node.RequestStarter;
 import freenet.node.Version;
+import freenet.node.useralerts.AbstractUserAlert;
 import freenet.node.useralerts.UserAlert;
 import freenet.support.HTMLNode;
 import freenet.support.Logger;
@@ -302,13 +303,12 @@
 		updateManager.node.clientCore.alerts.register(alert);
 	}
 
-	class PeersSayKeyBlownAlert implements UserAlert {
+	class PeersSayKeyBlownAlert extends AbstractUserAlert {
 
-		public String dismissButtonText() {
-			// Cannot dismiss
-			return null;
+		public PeersSayKeyBlownAlert() {
+			super(false, null, null, null, UserAlert.CRITICAL_ERROR, true, null, false, null);
 		}
-
+		
 		public HTMLNode getHTMLText() {
 			HTMLNode div = new HTMLNode("div");
 			
@@ -360,10 +360,6 @@
 			return L10n.getString("PeersSayKeyBlownAlert."+key, pattern, value);
 		}
 		
-		public short getPriorityClass() {
-			return UserAlert.CRITICAL_ERROR;
-		}
-
 		public String getText() {
 			StringBuffer sb = new StringBuffer();
 			sb.append(l10n("intro")).append("\n\n");
@@ -411,28 +407,10 @@
 			return l10n("titleWithCount", "count", Integer.toString(nodesSayKeyRevoked.size()));
 		}
 
-		public boolean isValid() {
-			return true;
-		}
-
 		public void isValid(boolean validity) {
 			// Do nothing
 		}
 
-		public void onDismiss() {
-			// Do nothing
-		}
-
-		public boolean shouldUnregisterOnDismiss() {
-			// Can't dismiss
-			return false;
-		}
-
-		public boolean userCanDismiss() {
-			// Can't dismiss
-			return false;
-		}
-		
 	}
 
 	public PeerNode[][] getNodesSayBlown() {

Added: trunk/freenet/src/freenet/node/useralerts/AbstractUserAlert.java
===================================================================
--- trunk/freenet/src/freenet/node/useralerts/AbstractUserAlert.java	                        (rev 0)
+++ trunk/freenet/src/freenet/node/useralerts/AbstractUserAlert.java	2007-10-29 09:24:33 UTC (rev 15632)
@@ -0,0 +1,143 @@
+/*
+ * freenet - AbstractUserAlert.java Copyright © 2007 David Roden
+ * 
+ * This program is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation; either version 2 of the License, or (at your option) any later
+ * version.
+ * 
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ * details.
+ * 
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+ * Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+package freenet.node.useralerts;
+
+import freenet.support.HTMLNode;
+
+/**
+ * Abstract base implementation of a {@link UserAlert}.
+ * 
+ * @author David &lsquo;Bombe&rsquo; Roden &lt;bombe at freenetproject.org&gt;
+ * @version $Id$
+ */
+public abstract class AbstractUserAlert implements UserAlert {
+
+	private final boolean userCanDismiss;
+	private final String title;
+	private final String text;
+	private final HTMLNode htmlText;
+	private final short priorityClass;
+	protected boolean valid;
+	private final String dismissButtonText;
+	private final boolean shouldUnregisterOnDismiss;
+	private final Object userIdentifier;
+
+	protected AbstractUserAlert() {
+		this.userCanDismiss = false;
+		this.title = null;
+		this.text = null;
+		this.htmlText = null;
+		this.priorityClass = 0;
+		this.valid = true;
+		this.dismissButtonText = null;
+		this.shouldUnregisterOnDismiss = false;
+		this.userIdentifier = null;
+	}
+
+	protected AbstractUserAlert(boolean userCanDismiss, String title, String text, HTMLNode htmlText, short priorityClass, boolean valid, String dismissButtonText, boolean shouldUnregisterOnDismiss, Object userIdentifier) {
+		this.userCanDismiss = userCanDismiss;
+		this.title = title;
+		this.text = text;
+		this.htmlText = htmlText;
+		this.priorityClass = priorityClass;
+		this.valid = valid;
+		this.dismissButtonText = dismissButtonText;
+		this.shouldUnregisterOnDismiss = shouldUnregisterOnDismiss;
+		this.userIdentifier = userIdentifier;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	public boolean userCanDismiss() {
+		return userCanDismiss;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	public String getTitle() {
+		return title;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	public String getText() {
+		return text;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	public HTMLNode getHTMLText() {
+		return htmlText;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	public short getPriorityClass() {
+		return priorityClass;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	public boolean isValid() {
+		return valid;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	public void isValid(boolean valid) {
+		if (userCanDismiss()) {
+			this.valid = valid;
+		}
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	public String dismissButtonText() {
+		return dismissButtonText;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	public boolean shouldUnregisterOnDismiss() {
+		return shouldUnregisterOnDismiss;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	public void onDismiss() {
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	public Object getUserIdentifier() {
+		return userIdentifier;
+	}
+
+}


Property changes on: trunk/freenet/src/freenet/node/useralerts/AbstractUserAlert.java
___________________________________________________________________
Name: svn:keywords
   + Id

Modified: trunk/freenet/src/freenet/node/useralerts/BuildOldAgeUserAlert.java
===================================================================
--- trunk/freenet/src/freenet/node/useralerts/BuildOldAgeUserAlert.java	2007-10-29 00:50:08 UTC (rev 15631)
+++ trunk/freenet/src/freenet/node/useralerts/BuildOldAgeUserAlert.java	2007-10-29 09:24:33 UTC (rev 15632)
@@ -6,14 +6,13 @@
 import freenet.l10n.L10n;
 import freenet.support.HTMLNode;
 
-public class BuildOldAgeUserAlert implements UserAlert {
-	private boolean isValid=true;
+public class BuildOldAgeUserAlert extends AbstractUserAlert {
 	public int lastGoodVersion = 0;
 	
-	public boolean userCanDismiss() {
-		return false;
+	public BuildOldAgeUserAlert() {
+		super(false, null, null, null, UserAlert.ERROR, true, L10n.getString("UserAlert.hide"), false, null);
 	}
-
+	
 	public String getTitle() {
 		return l10n("tooOldTitle");
 	}
@@ -37,29 +36,10 @@
 		return new HTMLNode("div", getText());
 	}
 
-	public short getPriorityClass() {
-		return UserAlert.ERROR;
-	}
-
 	public boolean isValid() {
-	  if(lastGoodVersion == 0)
-	    return false;
-		return isValid;
+		if (lastGoodVersion == 0)
+			return false;
+		return super.isValid();
 	}
-	
-	public void isValid(boolean b){
-		if(userCanDismiss()) isValid=b;
-	}
-	
-	public String dismissButtonText(){
-		return L10n.getString("UserAlert.hide");
-	}
-	
-	public boolean shouldUnregisterOnDismiss() {
-		return false;
-	}
-	
-	public void onDismiss() {
-		// do nothing on alert dismissal
-	}
+
 }

Modified: trunk/freenet/src/freenet/node/useralerts/ExtOldAgeUserAlert.java
===================================================================
--- trunk/freenet/src/freenet/node/useralerts/ExtOldAgeUserAlert.java	2007-10-29 00:50:08 UTC (rev 15631)
+++ trunk/freenet/src/freenet/node/useralerts/ExtOldAgeUserAlert.java	2007-10-29 09:24:33 UTC (rev 15632)
@@ -3,13 +3,15 @@
 import freenet.l10n.L10n;
 import freenet.support.HTMLNode;
 
-public class ExtOldAgeUserAlert implements UserAlert {
-	private boolean isValid=true;
+public class ExtOldAgeUserAlert extends AbstractUserAlert {
 	
-	public boolean userCanDismiss() {
-		return true;
+	/**
+	 * Creates a new alert.
+	 */
+	public ExtOldAgeUserAlert() {
+		super(true, null, null, null, UserAlert.ERROR, true, L10n.getString("UserAlert.hide"), true, null);
 	}
-
+	
 	public String getTitle() {
 		return l10n("extTooOldTitle");
 	}
@@ -26,27 +28,4 @@
 		return new HTMLNode("div", getText());
 	}
 
-	public short getPriorityClass() {
-		return UserAlert.ERROR;
-	}
-
-	public boolean isValid() {
-		return isValid;
-	}
-	
-	public void isValid(boolean b){
-		if(userCanDismiss()) isValid=b;
-	}
-	
-	public String dismissButtonText(){
-		return L10n.getString("UserAlert.hide");
-	}
-	
-	public boolean shouldUnregisterOnDismiss() {
-		return true;
-	}
-	
-	public void onDismiss() {
-		// do nothing on alert dismissal
-	}
 }

Modified: trunk/freenet/src/freenet/node/useralerts/IPUndetectedUserAlert.java
===================================================================
--- trunk/freenet/src/freenet/node/useralerts/IPUndetectedUserAlert.java	2007-10-29 00:50:08 UTC (rev 15631)
+++ trunk/freenet/src/freenet/node/useralerts/IPUndetectedUserAlert.java	2007-10-29 09:24:33 UTC (rev 15632)
@@ -9,19 +9,15 @@
 import freenet.node.Node;
 import freenet.support.HTMLNode;
 
-public class IPUndetectedUserAlert implements UserAlert {
+public class IPUndetectedUserAlert extends AbstractUserAlert {
 	
 	public IPUndetectedUserAlert(Node n) {
+		super(true, null, null, null, (short) 0, true, L10n.getString("UserAlert.hide"), false, null);
 		this.node = n;
 	}
 	
-	boolean isValid=true;
 	final Node node;
 	
-	public boolean userCanDismiss() {
-		return true;
-	}
-
 	public String getTitle() {
 		return l10n("unknownAddressTitle");
 	}
@@ -95,24 +91,5 @@
 		else
 			return UserAlert.ERROR;
 	}
-	
-	public boolean isValid() {
-		return isValid;
-	}
-	
-	public void isValid(boolean validity){
-		if(userCanDismiss()) isValid=validity;
-	}
-	
-	public String dismissButtonText(){
-		return L10n.getString("UserAlert.hide");
-	}
-	
-	public boolean shouldUnregisterOnDismiss() {
-		return false;
-	}
-	
-	public void onDismiss() {
-		// do nothing on alert dismissal
-	}
+
 }

Modified: trunk/freenet/src/freenet/node/useralerts/MeaningfulNodeNameUserAlert.java
===================================================================
--- trunk/freenet/src/freenet/node/useralerts/MeaningfulNodeNameUserAlert.java	2007-10-29 00:50:08 UTC (rev 15631)
+++ trunk/freenet/src/freenet/node/useralerts/MeaningfulNodeNameUserAlert.java	2007-10-29 09:24:33 UTC (rev 15632)
@@ -9,18 +9,14 @@
 import freenet.node.Node;
 import freenet.support.HTMLNode;
 
-public class MeaningfulNodeNameUserAlert implements UserAlert {
-	private boolean isValid=true;
+public class MeaningfulNodeNameUserAlert extends AbstractUserAlert {
 	private final Node node;
 
 	public MeaningfulNodeNameUserAlert(Node n) {
+		super(true, null, null, null, UserAlert.WARNING, true, L10n.getString("UserAlert.hide"), false, null);
 		this.node = n;
 	}
 	
-	public boolean userCanDismiss() {
-		return true;
-	}
-
 	public String getTitle() {
 		return l10n("noNodeNickTitle");
 	}
@@ -55,27 +51,4 @@
 		return alertNode;
 	}
 
-	public short getPriorityClass() {
-		return UserAlert.WARNING;
-	}
-	
-	public boolean isValid() {
-		return isValid;
-	}
-	
-	public void isValid(boolean b){
-		if(userCanDismiss()) isValid=b;
-	}
-	
-	public String dismissButtonText(){
-		return L10n.getString("UserAlert.hide");
-	}
-	
-	public boolean shouldUnregisterOnDismiss() {
-		return false;
-	}
-	
-	public void onDismiss() {
-		// do nothing on alert dismissal
-	}
 }

Modified: trunk/freenet/src/freenet/node/useralerts/N2NTMUserAlert.java
===================================================================
--- trunk/freenet/src/freenet/node/useralerts/N2NTMUserAlert.java	2007-10-29 00:50:08 UTC (rev 15631)
+++ trunk/freenet/src/freenet/node/useralerts/N2NTMUserAlert.java	2007-10-29 09:24:33 UTC (rev 15632)
@@ -11,8 +11,7 @@
 import freenet.support.HTMLNode;
 
 // Node To Node Text Message User Alert
-public class N2NTMUserAlert implements UserAlert {
-	private boolean isValid=true;
+public class N2NTMUserAlert extends AbstractUserAlert {
 	private DarknetPeerNode sourcePeerNode;
 	private String sourceNodename;
 	private String messageText;
@@ -22,6 +21,7 @@
 	private long receivedTime;
 
 	public N2NTMUserAlert(DarknetPeerNode sourcePeerNode, String source, String target, String message, int fileNumber, long composedTime, long  sentTime, long receivedTime) {
+		super(true, null, null, null, UserAlert.MINOR, true, null, true, null);
 		this.sourcePeerNode = sourcePeerNode;
 		this.sourceNodename = source;
 		this.messageText = message;
@@ -29,13 +29,8 @@
 		this.composedTime = composedTime;
 		this.sentTime = sentTime;
 		this.receivedTime = receivedTime;
-		isValid=true;
 	}
 	
-	public boolean userCanDismiss() {
-		return true;
-	}
-
 	public String getTitle() {
 		return l10n("title", new String[] { "number", "peername", "peer" },
 				new String[] { Integer.toString(fileNumber), sourcePeerNode.getName(), sourcePeerNode.getPeer().toString() });
@@ -65,18 +60,6 @@
 		return alertNode;
 	}
 
-	public short getPriorityClass() {
-		return UserAlert.MINOR;
-	}
-
-	public boolean isValid() {
-		return isValid;
-	}
-	
-	public void isValid(boolean b){
-		if(userCanDismiss()) isValid=b;
-	}
-	
 	public String dismissButtonText(){
 		return l10n("delete");
 	}
@@ -89,10 +72,6 @@
 		return L10n.getString("N2NTMUserAlert."+key, patterns, values);
 	}
 
-	public boolean shouldUnregisterOnDismiss() {
-		return true;
-	}
-	
 	public void onDismiss() {
 		sourcePeerNode.deleteExtraPeerDataFile(fileNumber);
 	}

Modified: trunk/freenet/src/freenet/node/useralerts/OpennetUserAlert.java
===================================================================
--- trunk/freenet/src/freenet/node/useralerts/OpennetUserAlert.java	2007-10-29 00:50:08 UTC (rev 15631)
+++ trunk/freenet/src/freenet/node/useralerts/OpennetUserAlert.java	2007-10-29 09:24:33 UTC (rev 15632)
@@ -4,55 +4,17 @@
 import freenet.node.Node;
 import freenet.support.HTMLNode;
 
-public class OpennetUserAlert implements UserAlert {
+public class OpennetUserAlert extends AbstractUserAlert {
 
 	private final Node node;
 	
 	public OpennetUserAlert(Node node) {
+		super(false, L10n.getString("OpennetUserAlert.warningTitle"), L10n.getString("OpennetUserAlert.warning"), new HTMLNode("#", L10n.getString("OpennetUserAlert.warning")), UserAlert.WARNING, false, null, false, null);
 		this.node = node;
 	}
 	
-	public String dismissButtonText() {
-		// Not dismissable
-		return null;
-	}
-
-	public HTMLNode getHTMLText() {
-		return new HTMLNode("#", getText());
-	}
-
-	public short getPriorityClass() {
-		return UserAlert.WARNING;
-	}
-
-	public String getText() {
-		return L10n.getString("OpennetUserAlert.warning");
-	}
-
-	public String getTitle() {
-		return L10n.getString("OpennetUserAlert.warningTitle");
-	}
-
 	public boolean isValid() {
 		return node.isOpennetEnabled();
 	}
 
-	public void isValid(boolean validity) {
-		// Ignore
-	}
-
-	public void onDismiss() {
-		// Can't dismiss
-	}
-
-	public boolean shouldUnregisterOnDismiss() {
-		// Can't dismiss
-		return false;
-	}
-
-	public boolean userCanDismiss() {
-		// Can't dismiss
-		return false;
-	}
-
 }

Modified: trunk/freenet/src/freenet/node/useralerts/PeerManagerUserAlert.java
===================================================================
--- trunk/freenet/src/freenet/node/useralerts/PeerManagerUserAlert.java	2007-10-29 00:50:08 UTC (rev 15631)
+++ trunk/freenet/src/freenet/node/useralerts/PeerManagerUserAlert.java	2007-10-29 09:24:33 UTC (rev 15632)
@@ -7,7 +7,7 @@
 import freenet.node.NodeStats;
 import freenet.support.HTMLNode;
 
-public class PeerManagerUserAlert implements UserAlert {
+public class PeerManagerUserAlert extends AbstractUserAlert {
 
 	final NodeStats n;
 	public int conns = 0;
@@ -16,7 +16,6 @@
 	public int clockProblem = 0;
 	public int connError = 0;
 	public int disconnDarknetPeers = 0;
-	boolean isValid=true;
 	int bwlimitDelayTime = 1;
 	int nodeAveragePingTime = 1;
 	long oldestNeverConnectedPeerAge = 0;
@@ -48,13 +47,10 @@
 	public static final long MAX_OLDEST_NEVER_CONNECTED_PEER_AGE_ALERT_THRESHOLD = ((long) 2)*7*24*60*60*1000;  // 2 weeks
 	
 	public PeerManagerUserAlert(NodeStats n) {
+		super(false, null, null, null, (short) 0, true, L10n.getString("UserAlert.hide"), false, null);
 		this.n = n;
 	}
 	
-	public boolean userCanDismiss() {
-		return false;
-	}
-
 	public String getTitle() {
 		if(peers == 0)
 			return l10n("noPeersTitle");
@@ -241,22 +237,7 @@
 				(n.bwlimitDelayAlertRelevant && (bwlimitDelayTime > NodeStats.MAX_BWLIMIT_DELAY_TIME_ALERT_THRESHOLD)) ||
 				(n.nodeAveragePingAlertRelevant && (nodeAveragePingTime > NodeStats.MAX_NODE_AVERAGE_PING_TIME_ALERT_THRESHOLD)) ||
 				(oldestNeverConnectedPeerAge > MAX_OLDEST_NEVER_CONNECTED_PEER_AGE_ALERT_THRESHOLD)) &&
-				isValid;
+				super.isValid();
 	}
 	
-	public void isValid(boolean b){
-		if(userCanDismiss()) isValid=b;
-	}
-	
-	public String dismissButtonText(){
-		return L10n.getString("UserAlert.hide");
-	}
-	
-	public boolean shouldUnregisterOnDismiss() {
-		return false;
-	}
-	
-	public void onDismiss() {
-		// do nothing on alert dismissal
-	}
 }

Modified: trunk/freenet/src/freenet/node/useralerts/ProxyUserAlert.java
===================================================================
--- trunk/freenet/src/freenet/node/useralerts/ProxyUserAlert.java	2007-10-29 00:50:08 UTC (rev 15631)
+++ trunk/freenet/src/freenet/node/useralerts/ProxyUserAlert.java	2007-10-29 09:24:33 UTC (rev 15632)
@@ -66,4 +66,11 @@
 		if(alert != null) alert.onDismiss();
 	}
 
+	/**
+	 * {@inheritDoc}
+	 */
+	public Object getUserIdentifier() {
+		return alert.getUserIdentifier();
+	}
+
 }

Modified: trunk/freenet/src/freenet/node/useralerts/RevocationKeyFoundUserAlert.java
===================================================================
--- trunk/freenet/src/freenet/node/useralerts/RevocationKeyFoundUserAlert.java	2007-10-29 00:50:08 UTC (rev 15631)
+++ trunk/freenet/src/freenet/node/useralerts/RevocationKeyFoundUserAlert.java	2007-10-29 09:24:33 UTC (rev 15632)
@@ -6,51 +6,16 @@
 import freenet.l10n.L10n;
 import freenet.support.HTMLNode;
 
-public class RevocationKeyFoundUserAlert implements UserAlert {
+public class RevocationKeyFoundUserAlert extends AbstractUserAlert {
 	private final String msg;
 	
 	public RevocationKeyFoundUserAlert(String msg){
+		super(false, L10n.getString("RevocationKeyFoundUserAlert.title"), L10n.getString("RevocationKeyFoundUserAlert.text", "message", msg), new HTMLNode("#", L10n.getString("RevocationKeyFoundUserAlert.text", "message", msg)), UserAlert.CRITICAL_ERROR, true, null, false, null);
 		this.msg=msg;
 	}
 	
-	public boolean userCanDismiss() {
-		return false;
-	}
-
-	public String getTitle() {
-		return L10n.getString("RevocationKeyFoundUserAlert.title");
-	}
-
-	public String getText() {
-		//TODO: reformulate : maybe put the GPG key fingerprint of "trusted devs"
-		return L10n.getString("RevocationKeyFoundUserAlert.text", "message", msg);
-	}
-
-	public HTMLNode getHTMLText() {
-		return new HTMLNode("div", getText());
-	}
-
-	public short getPriorityClass() {
-		return UserAlert.CRITICAL_ERROR;
-	}
-	
-	public boolean isValid() {
-		return true;
-	}
-	
 	public void isValid(boolean b){
 		// We ignore it : it's ALWAYS valid !
 	}
 	
-	public String dismissButtonText(){
-		return null; // can't be dismissed
-	}
-	
-	public boolean shouldUnregisterOnDismiss() {
-		return false;
-	}
-	
-	public void onDismiss() {
-		// do nothing on alert dismissal
-	}
 }

Modified: trunk/freenet/src/freenet/node/useralerts/SimpleHTMLUserAlert.java
===================================================================
--- trunk/freenet/src/freenet/node/useralerts/SimpleHTMLUserAlert.java	2007-10-29 00:50:08 UTC (rev 15631)
+++ trunk/freenet/src/freenet/node/useralerts/SimpleHTMLUserAlert.java	2007-10-29 09:24:33 UTC (rev 15632)
@@ -3,58 +3,14 @@
 import freenet.l10n.L10n;
 import freenet.support.HTMLNode;
 
-public class SimpleHTMLUserAlert implements UserAlert {
+public class SimpleHTMLUserAlert extends AbstractUserAlert {
 
-	final boolean canDismiss;
-	final String title;
-	final HTMLNode content;
-	final short type;
-	
 	public SimpleHTMLUserAlert(boolean canDismiss, String title, HTMLNode content, short type) {
-		this.canDismiss = canDismiss;
-		this.title = title;
-		this.content = content;
-		this.type = type;
+		super(canDismiss, title, content.getContent(), content, type, true, L10n.getString("UserAlert.hide"), true, null);
 	}
 
-	public boolean userCanDismiss() {
-		return canDismiss;
-	}
-
-	public String getTitle() {
-		return title;
-	}
-
-	public String getText() {
-		return content.getContent();
-	}
-
-	public HTMLNode getHTMLText() {
-		return content;
-	}
-
-	public short getPriorityClass() {
-		return type;
-	}
-
-	public boolean isValid() {
-		return true;
-	}
-
 	public void isValid(boolean validity) {
 		// Do nothing
 	}
 
-	public String dismissButtonText() {
-		return L10n.getString("UserAlert.hide");
-	}
-
-	public boolean shouldUnregisterOnDismiss() {
-		return true;
-	}
-	
-	public void onDismiss() {
-		// do nothing on alert dismissal
-	}
-	
 }

Modified: trunk/freenet/src/freenet/node/useralerts/SimpleUserAlert.java
===================================================================
--- trunk/freenet/src/freenet/node/useralerts/SimpleUserAlert.java	2007-10-29 00:50:08 UTC (rev 15631)
+++ trunk/freenet/src/freenet/node/useralerts/SimpleUserAlert.java	2007-10-29 09:24:33 UTC (rev 15632)
@@ -6,57 +6,18 @@
 import freenet.l10n.L10n;
 import freenet.support.HTMLNode;
 
-public class SimpleUserAlert implements UserAlert {
+public class SimpleUserAlert extends AbstractUserAlert {
 
-	final boolean canDismiss;
-	final String title;
-	final String text;
-	final short type;
-	
 	public SimpleUserAlert(boolean canDismiss, String title, String text, short type) {
-		this.canDismiss = canDismiss;
-		this.title = title;
-		this.text = text;
-		this.type = type;
+		this(canDismiss, title, text, type, null);
 	}
-
-	public boolean userCanDismiss() {
-		return canDismiss;
+	
+	public SimpleUserAlert(boolean canDismiss, String title, String text, short type, Object userIdentifier) {
+		super(canDismiss, title, text, new HTMLNode("div", text), type, true, L10n.getString("UserAlert.hide"), true, userIdentifier);
 	}
 
-	public String getTitle() {
-		return title;
-	}
-
-	public String getText() {
-		return text;
-	}
-
-	public HTMLNode getHTMLText() {
-		return new HTMLNode("div", text);
-	}
-
-	public short getPriorityClass() {
-		return type;
-	}
-
-	public boolean isValid() {
-		return true;
-	}
-
 	public void isValid(boolean validity) {
 		// Do nothing
 	}
 
-	public String dismissButtonText() {
-		return L10n.getString("UserAlert.hide");
-	}
-
-	public boolean shouldUnregisterOnDismiss() {
-		return true;
-	}
-	
-	public void onDismiss() {
-		// do nothing on alert dismissal
-	}
 }

Modified: trunk/freenet/src/freenet/node/useralerts/TimeSkewDetectedUserAlert.java
===================================================================
--- trunk/freenet/src/freenet/node/useralerts/TimeSkewDetectedUserAlert.java	2007-10-29 00:50:08 UTC (rev 15631)
+++ trunk/freenet/src/freenet/node/useralerts/TimeSkewDetectedUserAlert.java	2007-10-29 09:24:33 UTC (rev 15632)
@@ -14,13 +14,15 @@
  *
  * @author Florent Daigni&egrave;re &lt;nextgens at freenetproject.org&gt;
  */
-public class TimeSkewDetectedUserAlert implements UserAlert {
-	private boolean isValid=false;
+public class TimeSkewDetectedUserAlert extends AbstractUserAlert {
 	
-	public boolean userCanDismiss() {
-		return false;
+	/**
+	 * 
+	 */
+	public TimeSkewDetectedUserAlert() {
+		super(false, null, null, null, UserAlert.CRITICAL_ERROR, false, L10n.getString("UserAlert.hide"), false, null);
 	}
-
+	
 	public String getTitle() {
 		return l10n("title");
 	}
@@ -37,27 +39,4 @@
 		return new HTMLNode("div", getText());
 	}
 
-	public short getPriorityClass() {
-		return UserAlert.CRITICAL_ERROR;
-	}
-
-	public boolean isValid() {
-		return isValid;
-	}
-	
-	public void isValid(boolean b){
-		if(userCanDismiss()) isValid=b;
-	}
-	
-	public String dismissButtonText(){
-		return L10n.getString("UserAlert.hide");
-	}
-	
-	public boolean shouldUnregisterOnDismiss() {
-		return false;
-	}
-	
-	public void onDismiss() {
-		// can't happen!
-	}
 }

Modified: trunk/freenet/src/freenet/node/useralerts/UpdatedVersionAvailableUserAlert.java
===================================================================
--- trunk/freenet/src/freenet/node/useralerts/UpdatedVersionAvailableUserAlert.java	2007-10-29 00:50:08 UTC (rev 15631)
+++ trunk/freenet/src/freenet/node/useralerts/UpdatedVersionAvailableUserAlert.java	2007-10-29 09:24:33 UTC (rev 15632)
@@ -9,17 +9,14 @@
 import freenet.support.HTMLNode;
 import freenet.support.TimeUtil;
 
-public class UpdatedVersionAvailableUserAlert implements UserAlert {
+public class UpdatedVersionAvailableUserAlert extends AbstractUserAlert {
 	private final NodeUpdateManager updater;
 
 	public UpdatedVersionAvailableUserAlert(NodeUpdateManager updater){
+		super(false, null, null, null, (short) 0, false, L10n.getString("UserAlert.hide"), false, null);
 		this.updater = updater;
 	}
 	
-	public boolean userCanDismiss() {
-		return false;
-	}
-
 	public String getTitle() {
 		return l10n("title");
 	}
@@ -148,15 +145,4 @@
 		// Ignore
 	}
 	
-	public String dismissButtonText(){
-		return L10n.getString("UserAlert.hide");
-	}
-	
-	public boolean shouldUnregisterOnDismiss() {
-		return false;
-	}
-	
-	public void onDismiss() {
-		// Ignore
-	}
 }

Modified: trunk/freenet/src/freenet/node/useralerts/UserAlert.java
===================================================================
--- trunk/freenet/src/freenet/node/useralerts/UserAlert.java	2007-10-29 00:50:08 UTC (rev 15631)
+++ trunk/freenet/src/freenet/node/useralerts/UserAlert.java	2007-10-29 09:24:33 UTC (rev 15632)
@@ -50,6 +50,13 @@
 	 */
 	public void onDismiss();
 	
+	/**
+	 * Returns a user-specified object that can be used to identify this alert.
+	 * 
+	 * @return The user-specified identifier object
+	 */
+	public Object getUserIdentifier();
+	
 	/** An error which prevents normal operation */
 	public final static short CRITICAL_ERROR = 0;
 	/** An error which prevents normal operation but might be temporary */




More information about the cvs mailing list