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 */


Reply via email to