diff -ur rubywebdialogs-0.1.1.tar.gz/rubywebdialogs/lib/ruby.lib.rb rubywebdialogs-0.1.2.tar.gz/rubywebdialogs/lib/ruby.lib.rb
--- rubywebdialogs-0.1.1.tar.gz/rubywebdialogs/lib/ruby.lib.rb 2004-12-05 13:58:40.000000000 +0100
+++ rubywebdialogs-0.1.2.tar.gz/rubywebdialogs/lib/ruby.lib.rb 2004-12-17 12:40:15.000000000 +0100
@@ -792,6 +792,7 @@
set_trace_func lambda { |event, file, line, id, binding, classname|
$stderr.printf "%8s %s:%-2d %10s %8s\n", event, file, line, id, classname
}
+
if block_given?
res = yield
diff -ur rubywebdialogs-0.1.1.tar.gz/rubywebdialogs/lib/rwd.lib.rb rubywebdialogs-0.1.2.tar.gz/rubywebdialogs/lib/rwd.lib.rb
--- rubywebdialogs-0.1.1.tar.gz/rubywebdialogs/lib/rwd.lib.rb 2004-12-05 13:58:40.000000000 +0100
+++ rubywebdialogs-0.1.2.tar.gz/rubywebdialogs/lib/rwd.lib.rb 2004-12-17 12:40:15.000000000 +0100
@@ -40,11 +40,9 @@
Format = "\n<!-- %-10s %-10s -->\t"
unless rcfile.nil?
- $stderr.puts "Reading #{rcfile} ..."
+ puts "Reading #{rcfile} ..."
Hash.file(rcfile).each do |k, v|
- #$stderr.puts "Setting #{k} to \"#{v}\" ..."
-
ENV[k] = v unless ENV.include?(k)
end
end
@@ -276,7 +274,23 @@
when "list" then res << "<ul #{align}>"
when "item" then res << "<li #{align}>"
when "empty" then res << "<p><br>"
- when "image" then res << "<img src=´#{@args["src"]}´ alt=´#{@args["alt"]}´>"
+ when "image"
+ width = "width=´#{@args["width"]}" if @args.include?("width")
+ height = "height=´#{@args["height"]}´" if @args.include?("height")
+
+ res << "<img src=´#{@args["src"]}´ alt=´#{@args["alt"]}´ #{width} #{height}>"
+ when "progressbar"
+ width = 200
+
+ res << "<table>"
+ res << " <tr>"
+ res << " <td colspan=´2´><img src=´rwd_pixel.gif´ height=´1´ width=´#{width+5}´></td>"
+ res << " </tr>"
+ res << " <tr>"
+ res << " <td bgcolor=´#DDDDDD´><img src=´rwd_pixel.gif´ height=´10´ width=´#{(width*@args["value"].to_f).to_i}´></td>"
+ res << " <td bgcolor=´#EEEEEE´><img src=´rwd_pixel.gif´ height=´10´ width=´#{(width*(1.0-@args["value"].to_f)).to_i}´></td>"
+ res << " </tr>"
+ res << "</table>"
when "br" then res << "<br>"
when "hr" then res << "<hr>"
when "b" then res << "<b>"
@@ -344,6 +358,10 @@
res << "<input type=´submit´ value=´Back´ onclick=´document.bodyform.rwd_action.value=\"rwd_back\";´>"
firstaction << "rwd_back" if firstaction.empty?
oneormorefields << "true"
+ when "cancel"
+ res << "<input type=´submit´ value=´Cancel´ onclick=´document.bodyform.rwd_action.value=\"rwd_cancel\";´>"
+ firstaction << "rwd_cancel" if firstaction.empty?
+ oneormorefields << "true"
when "help"
res << "<input type=´submit´ value=´Help´ onclick=´document.bodyform.rwd_action.value=\"rwd_help\";´>"
firstaction << "rwd_help" if firstaction.empty?
@@ -356,9 +374,13 @@
res << "<input type=´submit´ value=´Close´ onclick=´window.close();´>"
firstaction << "rwd_quit" if firstaction.empty?
oneormorefields << "true"
+ when "main"
+ res << "<input type=´submit´ value=´Main´ onclick=´document.bodyform.rwd_action.value=\"rwd_main\";´>"
+ firstaction << "rwd_main" if firstaction.empty?
+ oneormorefields << "true"
when "reset"
res << "<input type=´reset´ value=´Reset´>"
- firstaction << "rwd_quit" if firstaction.empty?
+ firstaction << "rwd_quit" if firstaction.empty? # ???
oneormorefields << "true"
when "closewindow"
#res << "<script type=´text/javascript´>\n" # ???
@@ -467,6 +489,7 @@
when "item" then res << "</li>"
when "empty" then res << "</p>"
when "image" then res << ""
+ when "progressbar" then res << ""
when "br" then res << ""
when "hr" then res << ""
when "b" then res << "</b>"
@@ -488,9 +511,11 @@
when "option" then res << "</option>"
when "button" then res << ""
when "back" then res << ""
+ when "cancel" then res << ""
when "help" then res << ""
when "quit" then res << ""
when "close" then res << ""
+ when "main" then res << ""
when "reset" then res << ""
when "closewindow" then res << ""
when "tabs"
@@ -606,7 +631,7 @@
@helprwd = (@@helpwindows[rwd][window] or "").dup
end
- def render(pda, vars=Hash.new, switches=Hash.new, help=false, tab="")
+ def render(pda, action=nil, vars=Hash.new, switches=Hash.new, help=false, tab="")
varshtml = Hash.new
varsstring = Hash.new
oneormorefields = ""
@@ -661,6 +686,8 @@
focus = "document.bodyform.elements[0].focus();"
end
+ firstaction = action if windowobject.args.keys.include?("refresh") unless action.nil?
+
html.gsub!(/\$RWD_FIRSTACTION\$/ , firstaction)
html.gsub!(/\$RWD_FOCUS\$/ , focus)
@@ -670,13 +697,34 @@
class RWDMessage < RWDWindow
def initialize(msg)
- super("<window title=´RWD Message´ nobackbuttons noclosebutton><vertical><p>#{msg}</p><back/></vertical></window>")
+ super("<window title=´RWD Message´ nobackbuttons noclosebutton><p>#{msg}</p><back/></window>")
end
end
class RWDError < RWDWindow
def initialize(msg)
- super("<window title=´RWD Error´ nobackbuttons noclosebutton><vertical><p><b>Error:</b> #{msg}</p><back/></vertical></window>")
+ super("<window title=´RWD Error´ nobackbuttons noclosebutton><p><b>Error:</b> #{msg}</p><back/></window>")
+ end
+end
+
+class RWDProgressBar < RWDWindow
+ def initialize(refresh, progress)
+ s = ""
+ s << "<window title=´RWD Progress´ nobackbuttons noclosebutton refresh=´#{refresh}´>"
+ if progress.length == 1
+ progress.each do |caption, value|
+ s << "<p>#{caption}</p><progressbar value=´#{value}´/><p>#{(100*value).to_i}%%</p>"
+ end
+ else
+ s << "<table>"
+ progress.each do |caption, value|
+ s << "<row><p align=´left´>#{caption}</p><progressbar value=´#{value}´/><p align=´right´>#{(100*value).to_i}%%</p></row>"
+ end
+ s << "</table>"
+ end
+ s << "<cancel/>"
+ s << "</window>"
+ super(s)
end
end
@@ -729,7 +777,7 @@
help = false
back = false
tab = ""
- @rwd_msg = nil
+ @rwd_msgtype = nil
@rwd_download = nil
@rwd_download_file = nil
@@ -751,10 +799,12 @@
# Stack handling for rwd_action, rwd_window and rwd_tab.
- @rwd_action = vars["rwd_action"]
+ @rwd_action = vars["rwd_action"] if vars.include?("rwd_action")
@rwd_action, @rwd_args = @rwd_action.split(/\//, 2) unless @rwd_action.nil?
@rwd_action, rest = @rwd_action.split(/\?/) unless @rwd_action.nil?
+ @rwd_refresh_action = (@rwd_action or @rwd_refresh_action or "main")
+
unless rest.nil?
rest.each do |s|
k, v = s.split(/=/, 2)
@@ -762,6 +812,12 @@
end
end
+ if @rwd_action == "rwd_cancel"
+ @rwd_progress_thread.kill unless @rwd_progress_thread.nil?
+ @rwd_progress_thread = nil
+ @rwd_action = "rwd_back"
+ end
+
if @rwd_action =~ /^rwd_tab_/
@rwd_tab = @rwd_action.sub(/^rwd_tab_/, "")
@rwd_history[-1][3] = @rwd_tab
@@ -820,12 +876,12 @@
# History stuff
- @rwd_history = [["main", nil, "main", nil]] if @rwd_action == "main"
- @rwd_history = [["main", nil, "main", nil]] if @rwd_history.empty?
+ @rwd_history = [["main", [], "main", ""]] if @rwd_action == "main"
+ @rwd_history = [["main", [], "main", ""]] if @rwd_history.empty?
a = [@rwd_action, @rwd_args, @rwd_window, @rwd_tab]
- @rwd_history.push a if (@rwd_history[-1] != a or not @rwd_msg.nil?)
+ @rwd_history.push a if (@rwd_history[-1] != a or not @rwd_msgtype.nil?)
end
end
@@ -842,6 +898,7 @@
puts "Pre: #{key} -> #{value.inspect}" if $rwd_debug
end
+
# Answer to browser.
if done
@@ -853,14 +910,18 @@
download << @rwd_download
downloadfile << @rwd_download_file
else
- if not @rwd_msg.nil?
+ if not @rwd_msgtype.nil?
res << RWDMessage.new(@rwd_msg).render(pda) if @rwd_msgtype == "message"
res << RWDError.new(@rwd_msg).render(pda) if @rwd_msgtype == "error"
else
- puts "Window: #{@rwd_window}" if $rwd_debug
- puts "Tab: #{@rwd_tab}" if $rwd_debug
+ if not @rwd_progress_thread.nil?
+ res << RWDProgressBar.new(@rwd_progress_refresh, @rwd_progress_progress).render(pda, @rwd_refresh_action)
+ else
+ puts "Window: #{@rwd_window}" if $rwd_debug
+ puts "Tab: #{@rwd_tab}" if $rwd_debug
- res << RWDWindow.new(@rwd_xml, @rwd_window).render(pda, vars, @rwd_switches, help, @rwd_tab)
+ res << RWDWindow.new(@rwd_xml, @rwd_window).render(pda, @rwd_refresh_action, vars, @rwd_switches, help, @rwd_tab)
+ end
end
end
end
@@ -872,16 +933,48 @@
@rwd_history[-1][2] == @rwd_window
end
- def message(msg)
+ def message(msg, &block)
@rwd_msg = msg
@rwd_msgtype = "message"
end
- def error(msg)
+ def error(msg, &block)
@rwd_msg = msg
@rwd_msgtype = "error"
end
+ def progressbar(refresh, *progress)
+ @rwd_progress_refresh = (refresh or 1)
+ @rwd_progress_progress = []
+
+ while not progress.empty?
+ s = (progress.shift or "")
+ if s.kind_of?(Array)
+ caption, value = s
+ value = (value or 0.0).to_f
+ else
+ caption = s
+ value = (progress.shift or 0.0).to_f
+ end
+
+ @rwd_progress_progress << [caption, value]
+ end
+
+ if @rwd_progress_thread.nil?
+ @rwd_progress_progress.each do |a|
+ a[1] = 0.0
+ end
+
+ @rwd_progress_thread =
+ Thread.new do
+ yield
+ end
+ Thread.pass
+ end
+
+ @rwd_progress_thread = nil unless @rwd_progress_thread.alive?
+ end
+
def download(data, filename="")
@rwd_download = data
@rwd_download_file = filename
@@ -996,12 +1089,12 @@
#if ENV["RWDBROWSER"].downcase =~ /iexplore/ # ???
#@ie = IE.new("http://localhost:#{port}/")
#else
- browser = ENV["RWDBROWSER"]
+ browser = ENV["RWDBROWSER"].dup
url = "http://localhost:%s/" % [port]
if cygwin?
browser.gsub!(/\\/, "/")
- browser.gsub!(/ /, "\ ")
+ browser.gsub!(/ /, "\\ ")
end
re = /[$%]1\b/
@@ -1010,7 +1103,7 @@
command.gsub!(/%port%/, port.to_s)
- system(command)
+ system(command) or puts "Starting of the browser failed, or the browser terminated abnormally.\nCommand => #{command}"
#end
puts "The browser has terminated."
@@ -1187,8 +1280,9 @@
<head>
<title>%TITLE%</title>
- <!-- <meta http-equiv=´Content-Type´ content=´text/html; charset=ISO-8859-15´> -->
+ <meta http-equiv=´Content-Type´ content=´text/html; charset=%CHARSET%´>
<meta http-equiv=´Content-Style-Type´ content=´text/css´>
+ <meta http-equiv=´Refresh´ content=´%REFRESH%, javascript:document.bodyform.submit();´>
<link rel=´shortcut icon´ href=´%LOGO%´>
@@ -1498,8 +1592,9 @@
<head>
<title>%TITLE%</title>
- <!-- <meta http-equiv=´Content-Type´ content=´text/html; charset=ISO-8859-15´> -->
+ <meta http-equiv=´Content-Type´ content=´text/html; charset=%CHARSET%´>
<meta http-equiv=´Content-Style-Type´ content=´text/css´>
+ <meta http-equiv=´Refresh´ content=´%REFRESH%, javascript:document.bodyform.submit();´>
<link rel=´shortcut icon´ href=´%LOGO%´>
@@ -1663,7 +1758,8 @@
<head>
<title>%TITLE%</title>
- <!-- <meta http-equiv=´Content-Type´ content=´text/html; charset=ISO-8859-15´> -->
+ <meta http-equiv=´Content-Type´ content=´text/html; charset=%CHARSET%´>
+ <meta http-equiv=´Refresh´ content=´%REFRESH%, javascript:document.bodyform.submit();´>
<link rel=´shortcut icon´ href=´%LOGO%´>
diff -ur rubywebdialogs-0.1.1.tar.gz/rubywebdialogs/lib/tree.lib.rb rubywebdialogs-0.1.2.tar.gz/rubywebdialogs/lib/tree.lib.rb
--- rubywebdialogs-0.1.1.tar.gz/rubywebdialogs/lib/tree.lib.rb 2004-12-05 13:58:40.000000000 +0100
+++ rubywebdialogs-0.1.2.tar.gz/rubywebdialogs/lib/tree.lib.rb 2004-12-17 12:40:15.000000000 +0100
@@ -65,7 +65,7 @@
attr_writer :parent
attr_reader :children
attr_writer :children
- attr_writer :closed
+ attr_reader :closed
attr_writer :closed
attr_reader :text
attr_writer :text