代码拉取完成,页面将自动刷新
module Zhouxi
module ADM
@dialog = UI::HtmlDialog.new(
{
:dialog_title => "Hash index",
:scrollable => true,
:resizable => false,
:width => 300,
:height => 300,
:left => 85,
:top => 100,
:style => UI::HtmlDialog::STYLE_DIALOG
})
def self.update_html(tgt)
html= "
<!DOCTYPE html><HTML>
<BODY onload=set_hgt()>
<style type=text/css>
table#hash {
font-family: verdana,arial,sans-serif;
font-size:12px;
border: 1px solid black;
border-collapse:collapse;
width:100%;
}
td:hover {background-color:#eeeeee;}
td {
draggable=false;
border: 1px solid black;
text-indent:10px;
height:20px;
}
td#dic:hover {
background-color:#dddddd;
}
td#dic {
text-align:center;
background-color:#ddffff;
}
td#del:hover {background-color:#ffaaaa;}
td#del {
text-indent:0;
user-select:none;
text-align:center;
cursor:pointer;
width:15px;}
td#set:hover {background-color:#aaffff;}
td#set {
text-indent:0;
user-select:none;
text-align:center;
width:15px;
cursor:pointer;
}
td#add:hover {background-color:#aaffff;}
td#add {
text-indent:0;
user-select:none;
text-align:center;
width:40px;
cursor:pointer;
}
p {
font-family: verdana,arial,sans-serif;
font-size:12px;
letter-spacing:3px;
text-align:center;
background-color:#ffdfdf;
}
</style>
<script>
function add_new(){
var arr = new Array();
arr[0] = document.getElementById('the_id').innerHTML;
arr[1] = document.getElementById('new_name').innerHTML;
arr[2] = document.getElementById('new_key').innerHTML;
arr[3] = document.getElementById('new_val').innerHTML;
sketchup.set_dic(arr);
}
function del_line(){
var arr = new Array();
tg = event.target.parentNode;
arr[0] = document.getElementById('the_id').innerHTML;
arr[1] = tg.parentNode.firstChild.firstChild.innerHTML;
arr[2] = tg.childNodes[1].innerHTML;
sketchup.del_line(arr);
}
function del_dic(){
var arr = new Array();
arr[0] = document.getElementById('the_id').innerHTML;
arr[1] = event.target.previousSibling.innerHTML;
sketchup.del_dic(arr);
}
function change_kv(){
var arr = new Array();
tg = event.target.parentNode;
arr[0] = document.getElementById('the_id').innerHTML;
arr[1] = tg.parentNode.firstChild.firstChild.innerHTML;
arr[2] = tg.childNodes[1].innerHTML;
arr[3] = tg.childNodes[2].innerHTML;
sketchup.set_dic(arr);
}
function set_hgt(){
var hgt = document.body.clientHeight + 60
sketchup.set_hgt(hgt)
}
</script>
<p id=the_id>元素ID: #{tgt.entityID}</p>
"
dics = tgt.attribute_dictionaries
if dics != nil
dics.each{ |d|
html += "<table id=hash><tr><td id=dic colspan=3>#{d.name.to_s}</td><td id=del contenteditable=false onclick=del_dic()>-</td></tr>"
d.each{ |k,v| html += "<tr contenteditable=true><td id=set contenteditable=false onclick=change_kv()>+</td><td>#{k}</td><td>#{v}</td><td id=del contenteditable=false onclick=del_line()>-</td></tr>"}
html += "</table><br>"
}
end
html += "<p>添加哈希表</p>
<table id=hash contenteditable=true>
<tr><td colspan=2 id=new_name onclick=this.innerHTML=''>哈希表名</td><td id=add rowspan=2 onclick=add_new()>Add</td></tr>
<tr><td id=new_key onclick=this.innerHTML=''>键名</td><td id=new_val onclick=this.innerHTML=''>赋值</td></tr>
</table><br></BODY></html>"
@dialog.set_html(html)
@dialog.show if !@dialog.visible?
end
@dialog.add_action_callback("set_dic") { |action_context, arr|
id = arr[0].gsub(/元素ID:/,"").to_i
tgt = Sketchup.active_model.find_entity_by_id(id)
arr[1].gsub!(/<br>/,"")
tgt.set_attribute(arr[1],arr[2],arr[3])
update_html(tgt)
}
@dialog.add_action_callback("del_line") { |action_context, arr|
id = arr[0].gsub(/元素ID:/,"").to_i
tgt = Sketchup.active_model.find_entity_by_id(id)
tgt.delete_attribute(arr[1],arr[2])
update_html(tgt)
}
@dialog.add_action_callback("del_dic") { |action_context, arr|
id = arr[0].gsub(/元素ID:/,"").to_i
tgt = Sketchup.active_model.find_entity_by_id(id)
tgt.delete_attribute(arr[1])
update_html(tgt)
}
@dialog.add_action_callback("set_hgt") { |action_context, hgt|
@dialog.set_size(300, hgt)
}
tgt = Sketchup.active_model.selection[0]
update_html(tgt) if tgt
#Toolbar
toolbar = UI::Toolbar.new "ADM"
cmd = UI::Command.new("ADM") {
tgt = Sketchup.active_model.selection[0]
update_html(tgt) if tgt
}
cmd.small_icon = "icon.svg"
cmd.large_icon = "icon.svg"
cmd.status_bar_text = ("Atribute Dictionaries Manager")
cmd.tooltip = "ADM"
toolbar = toolbar.add_item cmd
toolbar.show
end
end
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。