[Ultrapossum-cvs 298] demo/haviewer 1.17,1.18,haviewer.rb

アーカイブの一覧に戻る

Masato Taruishi taru****@sourc*****
2004年 7月 3日 (土) 18:28:08 JST


===================================================================
RCS file: demo/haviewer/haviewer.rb,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- demo/haviewer/haviewer.rb	2004/07/03 06:50:22	1.17
+++ demo/haviewer/haviewer.rb	2004/07/03 09:28:08	1.18
@@ -17,6 +17,21 @@
 
   class Signal
 
+   module SignalFactory
+     LMap = {
+       "JP" => Signal,
+       "UK" => Signal,
+       "AU" => Signal
+     }
+     LC = ENV["LANG"].gsub(/.*_([^.]+).*/, '\1')
+     def SignalFactory.create
+       s = LMap[LC].new if LMap[LC]
+       s = RightSignal.new if ! s
+       return s
+     end
+   end
+
+
     DarkGreen = "#005500"
     DarkYellow = "#555500"
     DarkRed = "#550000"
@@ -43,12 +58,16 @@
          "" => Off["G"] + Off["Y"] + Off["R"]
     }
 
+    def _signal(color)
+      Buf[color]
+    end
+
     def initialize(color="")
       @color = color
     end
 
     def to_s
-      return "<span background=\"#000000\">(#{Buf[@color]})</span>"
+      return "<span background=\"#000000\">(#{_signal(@color)})</span>"
     end
 
     def on(color="")
@@ -59,6 +78,18 @@
       on
     end
 
+    class RightSignal < Signal
+      Buf = {
+         Green => Off["R"] + Off["Y"] + On["G"],
+         Yellow => Off["R"] + On["Y"] + Off["G"],
+         Red => On["R"] + Off["Y"] + Off["G"],
+         "" => Off["R"] + Off["Y"] + Off["G"]
+      }
+      def _signal(color)
+        Buf[color]
+      end
+    end
+
   end
 
   class Host
@@ -72,7 +103,7 @@
       super();
       @host = host;
       @status = ""
-      @sign = Signal.new
+      @sign = Signal::SignalFactory.create
       @type = type
     end
 
@@ -201,8 +232,8 @@
   def initialize(glade)
     @glade = @glade = GladeXML.new(glade) {|handler| method(handler)}
     @treeview = @glade["treeview1"]
-    @master_icon = Signal.new
-    @slave_icon = Signal.new
+    @master_icon = Signal::SignalFactory.create
+    @slave_icon = Signal::SignalFactory.create
     @view = nil
     update
   end



Ultrapossum-cvs メーリングリストの案内
アーカイブの一覧に戻る