LogMediator kann jetzt einzelne Klassen unterscheiden
authorfelix <felix@a944a559-bf0e-0410-8ddc-85264b264b6c>
Thu, 17 May 2007 13:51:01 +0000 (13:51 +0000)
committerfelix <felix@a944a559-bf0e-0410-8ddc-85264b264b6c>
Thu, 17 May 2007 13:51:01 +0000 (13:51 +0000)
git-svn-id: https://www.internetallee.de/svn/bytewurf@32 a944a559-bf0e-0410-8ddc-85264b264b6c

projekte/netzschalter/src/de/bytewurf/projekte/netzschalter/Command.java
projekte/netzschalter/src/de/bytewurf/projekte/netzschalter/CommandPanel.java
projekte/netzschalter/src/de/bytewurf/projekte/netzschalter/ConfigPanel.java
projekte/netzschalter/src/de/bytewurf/projekte/netzschalter/LogMediator.java
projekte/netzschalter/src/de/bytewurf/projekte/netzschalter/NetzdosenApplet.java
projekte/netzschalter/src/de/bytewurf/projekte/netzschalter/NetzdosenLEDPanel.java
projekte/netzschalter/src/de/bytewurf/projekte/netzschalter/Oszilloskop.java
projekte/netzschalter/src/de/bytewurf/projekte/netzschalter/TextAreaLogger.java

index 60548c8..3816478 100644 (file)
@@ -25,6 +25,13 @@ public class Command {
                }
        }
        
+       Command(byte[] commandBytes) {
+               if (commandBytes == null)
+                       throw new IllegalArgumentException("Es muss ein Array mit bytes übergeben werden");
+               
+               this.commandBytes = commandBytes;
+       }
+       
        public String toString() {
                StringBuffer result = new StringBuffer();
                for (int i = 0; i < commandBytes.length; i++) {
index b4eb294..58bfd66 100644 (file)
@@ -87,11 +87,12 @@ public class CommandPanel extends JPanel {
                try {
                        cmd = new Command(commandText);
                } catch (RuntimeException e) {
-                       LogMediator.getInstance().log("Kann \"" + commandText + "\" nicht in Command wandeln.");
+                       LogMediator.getInstance(this.getClass()).log("Kann \"" + commandText + "\" nicht in Command wandeln.");
                        return;
                }
-               LogMediator.getInstance().log("Sende " + cmd);
-               answers.append(++commandCounter + ": " + cmd + "\n");
+               LogMediator.getInstance(this.getClass()).log("Sende " + cmd);
+               byte[] answerBytes = netzdose.sendCommand(cmd);
+               answers.append(++commandCounter + ": " + new Command(answerBytes).toString() + "\n");
                command.setText("");
        }
        
index 2965f61..cd8e088 100644 (file)
@@ -77,7 +77,7 @@ public class ConfigPanel extends JPanel {
                        hostConfig.setPortB(portBNumber);
                        netzdose.setHostConfig(hostConfig);
                } catch (NumberFormatException e) {
-                       LogMediator.getInstance().log(
+                       LogMediator.getInstance(this.getClass()).log(
                                        "Kann portnummer nicht parsen." + e.toString());
                }
        }
index b0e2f1b..65b9c7a 100644 (file)
@@ -6,6 +6,7 @@
  */
 package de.bytewurf.projekte.netzschalter;
 
+import java.util.Hashtable;
 import java.util.Iterator;
 import java.util.WeakHashMap;
 
@@ -13,13 +14,33 @@ import java.util.WeakHashMap;
  * @author felix
  */
 public class LogMediator {
-       private static LogMediator singleton = new LogMediator();
-       private WeakHashMap observers = new WeakHashMap();
+       private static Hashtable loggers = new Hashtable();
+       private static WeakHashMap observers = new WeakHashMap();
+       private final String logName;
+       
+       private LogMediator(String logName) {
+               this.logName = logName;
+       }
+
+       public static synchronized LogMediator getInstance() {
+               return getInstance("_default");
+       }
+       
+       public static synchronized LogMediator getInstance(Class logClass) {
+               return getInstance(logClass.getName());
+       }
 
-       public static LogMediator getInstance() {
-               return singleton;
+       private static synchronized LogMediator getInstance(String logName) {
+               if (loggers.contains(logName)) 
+                       return (LogMediator) loggers.get(logName);
+               
+               LogMediator defaultLogger = new LogMediator(logName);
+               loggers.put(logName, defaultLogger);
+               return defaultLogger;
        }
        
+       
+       
        public void addObserver(Loggable o) {
                observers.put(o,"OK");
        }
@@ -28,7 +49,7 @@ public class LogMediator {
                for (Iterator iterator = observers.keySet().iterator(); iterator.hasNext();) {
                        Loggable observer = (Loggable) iterator.next();
                        if (observer != null) 
-                               observer.log(message);
+                               observer.log(logName + ": " + message);
                }
        }
 }
index e03ea29..d002ad6 100644 (file)
@@ -34,6 +34,11 @@ public class NetzdosenApplet extends Applet {
 
        public void init() {
                netzdose = new NetzdosenMockup();
+               HostConfig hostConfig = new HostConfig();
+               hostConfig.setHostname(getCodeBase().getHost());
+               hostConfig.setPortA(10001);
+               hostConfig.setPortB(123);
+               netzdose.setHostConfig(hostConfig);
 
                setLayout(new BorderLayout());
 
@@ -54,6 +59,7 @@ public class NetzdosenApplet extends Applet {
                add(splitPane);
                
                this.setPreferredSize(new Dimension(800,600));
+               LogMediator.getInstance(this.getClass()).log("Ready.");
 
        }
 }
index db437bd..8a771b3 100644 (file)
@@ -53,7 +53,7 @@ public class NetzdosenLEDPanel extends JPanel {
                }
 
                public void actionPerformed(ActionEvent e) {
-                       LogMediator.getInstance().log(
+                       LogMediator.getInstance(this.getClass()).log(
                                        "vorher "
                                                        + relaisNumber
                                                        + " = "
@@ -62,7 +62,7 @@ public class NetzdosenLEDPanel extends JPanel {
                        netzdose.setRelais(relaisNumber,
                                        button.isSelected() ? NetzdoseKonstanten.STATE_ON
                                                        : NetzdoseKonstanten.STATE_OFF);
-                       LogMediator.getInstance().log(
+                       LogMediator.getInstance(this.getClass()).log(
                                        "toggled "
                                                        + relaisNumber
                                                        + " = "
index 62fb41e..6d098d4 100644 (file)
@@ -46,7 +46,10 @@ public class Oszilloskop extends JPanel {
                setBackground(Color.black);
                g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                                RenderingHints.VALUE_ANTIALIAS_ON);
-               g.setPaint(Color.red);
+               g.setPaint(new Color(50, 80, 50));
+               g.fillRect(border_x, border_y, (int) size.getWidth() - 2 * border_x,
+                               (int) size.getHeight() - 2 * border_y);
+               g.setPaint(Color.lightGray);
                g.drawRect(border_x, border_y, (int) size.getWidth() - 2 * border_x,
                                (int) size.getHeight() - 2 * border_y);
 
@@ -55,9 +58,9 @@ public class Oszilloskop extends JPanel {
                                min = getMin();
                                max = getMax();
                        }
-                       LogMediator.getInstance().log("Min: " + min + " Max: " + max);
+                       LogMediator.getInstance(this.getClass()).log("Min: " + min + " Max: " + max);
 
-                       double factor_x = (size.getWidth() - border_x * 2.0) / data.length;
+                       double factor_x = (size.getWidth() - border_x * 2.0) / (data.length-1);
                        double factor_y = (size.getHeight() - border_y * 2.0) / (max - min);
 
                        g.setPaint(Color.green);