本文整理汇总了Python中pyasm.widget.IconWdg.add_behavior方法的典型用法代码示例。如果您正苦于以下问题:Python IconWdg.add_behavior方法的具体用法?Python IconWdg.add_behavior怎么用?Python IconWdg.add_behavior使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pyasm.widget.IconWdg
的用法示例。
在下文中一共展示了IconWdg.add_behavior方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: get_display
# 需要导入模块: from pyasm.widget import IconWdg [as 别名]
# 或者: from pyasm.widget.IconWdg import add_behavior [as 别名]
def get_display(my):
web = WebContainer.get_web()
top = my.top
top.add_class("spt_ace_editor_top")
script = my.kwargs.get("custom_script")
if script:
language = script.get_value("language")
else:
language = my.kwargs.get("language")
if not language:
language = 'javascript'
code = my.kwargs.get("code")
if not code:
code = ""
show_options = my.kwargs.get("show_options")
if show_options in ['false', False]:
show_options = False
else:
show_options = True
options_div = DivWdg()
top.add(options_div)
if not show_options:
options_div.add_style("display: none")
options_div.add_color("background", "background3")
options_div.add_border()
options_div.add_style("text-align: center")
options_div.add_style("padding: 2px")
select = SelectWdg("language")
select.add_style("width: 100px")
select.add_style("display: inline")
options_div.add(select)
select.add_class("spt_language")
select.set_option("values", "javascript|python|expression|xml")
select.add_behavior( {
'type': 'change',
'editor_id': my.get_editor_id(),
'cbjs_action': '''
spt.ace_editor.set_editor(bvr.editor_id);
var value = bvr.src_el.value;
spt.ace_editor.set_language(value);
//register_change(bvr);
'''
} )
select = SelectWdg("font_size")
select.add_style("width: 100px")
select.add_style("display: inline")
options_div.add(select)
select.set_option("labels", "8 pt|9 pt|10 pt|11 pt|12 pt|14 pt|16 pt")
select.set_option("values", "8 pt|9pt|10pt|11pt|12pt|14pt|16pt")
select.set_value("10pt")
select.add_behavior( {
'type': 'click_up',
'editor_id': my.get_editor_id(),
'cbjs_action': '''
spt.ace_editor.set_editor(bvr.editor_id);
var editor = spt.ace_editor.editor;
var editor_id = spt.ace_editor.editor_id;
var value = bvr.src_el.value;
$(editor_id).setStyle("font-size", value)
//editor.resize();
'''
} )
select = SelectWdg("keybinding")
select.add_style("width: 100px")
#options_div.add(select)
select.set_option("labels", "Ace|Vim|Emacs")
select.set_option("values", "ace|vim|emacs")
select.set_value("10pt")
select.add_behavior( {
'type': 'change',
'editor_id': my.get_editor_id(),
'cbjs_action': '''
spt.ace_editor.set_editor(bvr.editor_id);
var editor = spt.ace_editor.editor;
var editor_id = spt.ace_editor.editor_id;
var vim = require("ace/keyboard/keybinding/vim").Vim;
editor.setKeyboardHandler(vim)
'''
} )
editor_div = DivWdg()
top.add(editor_div)
#.........这里部分代码省略.........
示例2: get_display
# 需要导入模块: from pyasm.widget import IconWdg [as 别名]
# 或者: from pyasm.widget.IconWdg import add_behavior [as 别名]
def get_display(self):
self.sobject_data = {}
top = self.top
top.add_style
top.add_class("spt_gallery_top")
inner = DivWdg()
top.add(inner)
# make the whole Gallery unselectable
inner.add_class('unselectable')
inner.add_style("position: fixed")
inner.add_style("top: 0px")
inner.add_style("left: 0px")
inner.add_style("width: 100%")
#inner.add_style("height: 100%")
inner.add_style("bottom: 0px")
inner.add_style("padding-bottom: 40px")
#inner.add_style("background: rgba(0,0,0,0.5)")
inner.add_style("background: rgba(0,0,0,1)")
inner.add_style("z-index: 2000")
width = self.kwargs.get("width")
height = self.kwargs.get("height")
# default to top.
align = self.kwargs.get("align")
if not align:
align = "top"
if not width:
width = 1300
else:
width = int(width)
paths = self.get_paths(file_type='main')
# icon type may be too small
thumb_paths = self.get_paths(file_type='web')
descriptions = []
for path in paths:
sobject = self.sobject_data.get(path)
if not sobject:
descriptions.append("")
else:
description = sobject.get("description")
if not description:
description = ""
descriptions.append(description)
total_width = width * len(paths)
inner.add_behavior( {
'type': 'load',
'width': width,
'total_width': total_width,
'descriptions': descriptions,
'cbjs_action': '''
spt.gallery = {};
// 1250 is defined also in the css styles
spt.gallery.portrait = window.innerWidth < 1250;
spt.gallery.portrait = false
spt.gallery.top = bvr.src_el;
spt.gallery.content = spt.gallery.top.getElement(".spt_gallery_content");
spt.gallery.content.setStyle('opacity','0.1')
spt.gallery.desc_el = spt.gallery.top.getElement(".spt_gallery_description");
//window.addEvent('domready', function() {
setTimeout(function() {
// set the img h or w directly
var items = bvr.src_el.getElements('.spt_gallery_item img');
// fade in
spt.gallery.content.set('tween', {duration: 250}).fade('in');
/*
for (var k=0; k < items.length; k++) {
var sizes = items[k].getSize();
var item_h = sizes.y;
var item_w = sizes.x;
if (item_h >= item_w){
//items[k].setStyle('width', 'auto');
//items[k].setStyle('height', '100%');
}
else {
//items[k].setStyle('width','auto');
//items[k].setStyle('height','100%');
}
}
*/
}, 50)
#.........这里部分代码省略.........
示例3: get_display
# 需要导入模块: from pyasm.widget import IconWdg [as 别名]
# 或者: from pyasm.widget.IconWdg import add_behavior [as 别名]
def get_display(my):
widget = my.widget
widget.set_box_shadow()
widget.add_class("spt_dialog_top")
widget.add_class("spt_popup")
z_index = my.kwargs.get("z_index")
if not z_index:
z_index = "500"
widget.add_style("z-index: %s" % z_index)
web = WebContainer.get_web()
widget.set_id(my.name)
widget.add_attr("spt_dialog_id", my.name);
if my.kwargs.get("display") not in [True, "true"]:
widget.add_style("display: none")
widget.add_style("position: absolute")
widget.add_behavior( {
'type': 'listen',
'event_name': '%s|dialog_close' % my.name,
'cbjs_action': my.get_cancel_script()
} )
offset = my.kwargs.get("offset")
if not offset:
offset = my.offset
show_header = True
show_resize = False
drag_div = DivWdg()
if show_header:
widget.add(drag_div)
show_pointer = my.kwargs.get("show_pointer")
if show_pointer not in [False, 'false']:
from tactic.ui.container import ArrowWdg
offset_x = 15 - offset.get('x')
offset_y = offset.get("y")
arrow = ArrowWdg(
offset_x=offset_x,
offset_y=offset_y,
color=widget.get_color("background", -10)
)
arrow.add_class("spt_popup_pointer")
arrow.add_style("z-index: 10")
widget.add(arrow)
# create the 'close' button ...
close_wdg = SpanWdg()
close_wdg.add( IconWdg("Close", "BS_REMOVE") )
close_wdg.add_style("float: right")
close_wdg.add_class("hand")
close_wdg.add_style("margin: 3px 1px 3px 1px")
close_wdg.add_behavior({
'type': 'click_up',
'cbjs_action': my.get_cancel_script()
})
drag_div.add(close_wdg)
anchor_wdg = SpanWdg()
drag_div.add(anchor_wdg)
anchor_wdg.add_style("margin: 5px 5px 3px 1px")
anchor_wdg.add( IconWdg("Anchor Dialog", "BS_PUSHPIN") )
anchor_wdg.add_style("float: right")
anchor_wdg.add_class("hand")
anchor_wdg.add_behavior({
'type': 'click_up',
'cbjs_action': '''
var top = bvr.src_el.getParent(".spt_dialog_top");
var position = top.getStyle("position");
if (position == 'fixed') {
top.setStyle("position", "absolute");
bvr.src_el.setStyle("opacity", "1.0");
}
else {
top.setStyle("position", "fixed");
bvr.src_el.setStyle("opacity", "0.5");
}
#.........这里部分代码省略.........
示例4: get_display
# 需要导入模块: from pyasm.widget import IconWdg [as 别名]
# 或者: from pyasm.widget.IconWdg import add_behavior [as 别名]
def get_display(my):
div = DivWdg()
if not Container.get_dict("JSLibraries", "spt_popup"):
div.add_style("position: fixed")
div.add_style("top: 0px")
div.add_style("left: 0px")
div.add_style("opacity: 0.4")
div.add_style("background", "#000")
div.add_style("padding: 100px")
div.add_style("height: 100%")
div.add_style("width: 100%")
div.add_class("spt_popup_background")
div.add_style("display: none")
div.add_behavior( {
'type': 'click_up',
'cbjs_action': '''
spt.hide(bvr.src_el);
'''
} )
Container.put("PopupWdg:background", True)
# This is the absolute outside of a popup, including the drop shadow
widget = DivWdg()
div.add(widget)
widget.add_class("spt_popup")
if not Container.get_dict("JSLibraries", "spt_popup"):
widget.add_behavior( {
'type': 'load',
'cbjs_action': my.get_onload_js()
} )
width = my.kwargs.get("width")
if not width:
width = 10
#widget.add_behavior( {
# 'type': 'load',
# 'cbjs_action': 'bvr.src_el.makeResizable({handle:bvr.src_el.getElement(".spt_popup_resize")})'
#} )
web = WebContainer.get_web()
widget.set_id(my.name)
if my.kwargs.get("display") == "true":
pass
else:
widget.add_style("display: none")
widget.add_style("position: absolute")
widget.add_style("left: 400px")
widget.add_style("top: 100px")
widget.add_border()
widget.add_color("background", "background")
#widget.set_box_shadow(color="#000")
widget.set_box_shadow()
table = Table()
table.add_behavior( {
'type': 'load',
'width': width,
'cbjs_action': '''
bvr.src_el.setStyle("width", bvr.width)
var popup = bvr.src_el.getParent(".spt_popup");
var window_size = $(window).getSize();
var size = bvr.src_el.getSize();
var left = window_size.x/2 - size.x/2;
var top = window_size.y/2 - size.y/2;
popup.setStyle("left", left);
//popup.setStyle("top", top);
'''
} )
table.add_row()
"""
# Qt doesn't support shadows very well
if web.get_browser() == 'Qtx':
# dynamically add css files
table.add_class("css_shadow_table")
td = table.add_cell()
td.add_class("css_shadow_td css_shadow_top_left SPT_POPUP_SHADOW")
#.........这里部分代码省略.........
示例5: get_display
# 需要导入模块: from pyasm.widget import IconWdg [as 别名]
# 或者: from pyasm.widget.IconWdg import add_behavior [as 别名]
def get_display(my):
my.collection_key = my.kwargs.get("collection_key")
collection = Search.get_by_search_key(my.collection_key)
top = my.top
my.kwargs["scale"] = 75;
my.kwargs["show_scale"] = False;
my.kwargs["expand_mode"] = "plain"
from tile_layout_wdg import TileLayoutWdg
tile = TileLayoutWdg(
**my.kwargs
)
parent_dict = my.kwargs.get("parent_dict")
has_parent=False
if parent_dict:
has_parent = True
path = my.kwargs.get("path")
if collection and path:
title_div = DivWdg()
top.add(title_div)
title_div.add_style("float: left")
title_div.add_style("margin: 15px 0px 15px 30px")
asset_lib_span_div = SpanWdg()
title_div.add(asset_lib_span_div)
icon = IconWdg(name="Asset Library", icon="BS_FOLDER_OPEN")
asset_lib_span_div.add(icon)
asset_lib_span_div.add(" <a><b>Asset Library</b></a> ")
path = path.strip("/")
parts = path.split("/")
for idx, part in enumerate(parts):
title_div.add(" / ")
# the last spt_collection_link does not need a search_key
if has_parent and (idx is not len(parts) - 1):
search_key = parent_dict.get(part)
title_div.add(" <a class='spt_collection_link' search_key=%s><b>%s</b></a> " % (search_key, part))
else:
title_div.add(" <a class='spt_collection_link'><b>%s</b></a> " % part)
title_div.add_style("margin-top: 10px")
# Adding behavior to collections link
parts = my.kwargs.get("search_type").split("/")
collection_type = "%s/%s_in_%s" % (parts[0], parts[1], parts[1])
exists = SearchType.get(collection_type, no_exception=True)
if not exists:
title_div.add("SearchType %s is not registered." % collection_type)
return top
# These behaviors are only activated if the view is within collection layout,
# "is_new_tab" is a kwargs set to true, if opening a new tab
if not my.kwargs.get("is_new_tab"):
icon.add_class("hand")
icon.add_behavior( {
'type': 'mouseover',
'cbjs_action': '''
bvr.src_el.setStyle('opacity', 1.0);
'''
} )
icon.add_behavior( {
'type': 'mouseout',
'cbjs_action': '''
bvr.src_el.setStyle('opacity', 0.6);
'''
} )
# make icon and All Assets title clickable to return to view all assets
asset_lib_span_div.add_class("hand")
asset_lib_span_div.add_behavior( {
'type': 'click_up',
'cbjs_action': '''
var top = bvr.src_el.getParent(".spt_collection_top");
var content = top.getElements(".spt_collection_content");
spt.panel.refresh(top);
'''
} )
title_div.add_class("hand")
title_div.add_relay_behavior( {
'type': 'mouseup',
'search_type': my.kwargs.get("search_type"),
'collection_type': collection_type,
'bvr_match_class': 'spt_collection_link',
'cbjs_action': '''
var top = bvr.src_el.getParent(".spt_collection_top");
var content = top.getElement(".spt_collection_content");
var collection_key = bvr.src_el.getAttribute("search_key");
#.........这里部分代码省略.........
示例6: get_display
# 需要导入模块: from pyasm.widget import IconWdg [as 别名]
# 或者: from pyasm.widget.IconWdg import add_behavior [as 别名]
def get_display(my):
search_key = my.kwargs.get("search_key")
msg = None
base_search_type = SearchKey.extract_search_type(search_key)
sobject = SearchKey.get_by_search_key(search_key)
process_div = DivWdg()
process_div.add_style('padding-top: 10px')
if base_search_type in ['sthpw/task', 'sthpw/note']:
my.process = sobject.get_value('process')
my.context = sobject.get_value('context')
if not my.process:
my.process = ''
parent = sobject.get_parent()
if parent:
search_key = SearchKey.get_by_sobject(parent)
else:
msg = "Parent for [%s] not found"%search_key
else:
my.process = my.kwargs.get('process')
top = my.top
top.add_class('spt_simple_checkin')
top.add_color("background", "background")
top.add_styles("position: relative")
content = DivWdg(msg)
top.add(content)
#content.add_border()
#content.add_color("background", "background3")
#content.add_color("color", "background3")
content.add_style("width: 600px")
content.add_styles("margin-left: auto; margin-right: auto;")
content.add_style("height: 200px")
from tactic.ui.widget import CheckinWdg
content.add_behavior( {
'type': 'load',
'cbjs_action': CheckinWdg.get_onload_js()
} )
button_div = DivWdg()
content.add(process_div)
content.add(button_div)
button = IconWdg(title="Check-In", icon=IconWdg.CHECK_IN_3D_LG)
title = Common.get_display_title(my.checkin_action)
button.add_attr('title', title)
button_div.add(button)
button_div.set_box_shadow("1px 1px 1px 1px")
button_div.add_style("width: 60px")
button_div.add_style("height: 60px")
button_div.add_style("float: left")
button_div.add_style("background: white")
button_div.add_class("hand")
button_div.add_style("padding: 2px 3px 0 0")
button_div.add_style("margin: 20px 60px 20px 200px")
button_div.add_style("text-align: center")
button_div.add("Check-in")
# to be consistent with Check-in New File
if my.process:
checkin_process = my.process
else:
# Dont' specify, the user can choose later in check-in widget
checkin_process = ''
button.add_behavior( {
'type': 'click_up',
'search_key': search_key,
'process': checkin_process,
'context': my.context,
'cbjs_action': '''
var class_name = 'tactic.ui.widget.CheckinWdg';
var applet = spt.Applet.get();
spt.app_busy.show("Choose file(s) to check in")
var current_dir = null;
var is_sandbox = false;
var refresh = false
var values = spt.checkin.browse_folder(current_dir, is_sandbox, refresh);
if (!values) {
spt.app_busy.hide();
return;
}
var file_paths = values.file_paths;
#.........这里部分代码省略.........
示例7: get_tables_wdg
# 需要导入模块: from pyasm.widget import IconWdg [as 别名]
# 或者: from pyasm.widget.IconWdg import add_behavior [as 别名]
def get_tables_wdg(self):
div = DivWdg()
div.set_name("Tables")
div.add("In order to fully register a database, you must bind it to a TACTIC project")
div.add("<br/>")
project_code = "mongodb"
database = "test_database"
db_resource = DbResource(
server='localhost',
vendor='MongoDb',
database=database
)
try:
connect = DbContainer.get(db_resource)
except Exception as e:
div.add("Could not connect")
div.add_style("padding: 30px")
div.add("<br/>"*2)
div.add(str(e))
return div
# Bind project to this resource
database_text = TextWdg("database")
div.add("Database: ")
div.add(database_text)
div.add("<br/>"*2)
project_text = TextWdg("project")
div.add("Project Code: ")
div.add(project_text)
div.add("<br/>")
div.add("<hr/>")
# connect and introspect the tables in this database
tables = connect.get_tables()
table = Table()
div.add(table)
table.set_max_width()
for table_name in tables:
table.add_row()
search_type = "table/%s?project=%s" % (table_name, project_code)
td = table.add_cell()
icon = IconWdg("View Table", IconWdg.FOLDER_GO)
td.add(icon)
icon.add_behavior( {
'type': 'click_up',
'search_type': search_type,
'cbjs_action': '''
var class_name = 'tactic.ui.panel.ViewPanelWdg';
var kwargs = {
search_type: bvr.search_type
}
spt.panel.load_popup("table", class_name, kwargs);
'''
} )
td = table.add_cell()
td.add(table_name)
td = table.add_cell()
search = Search(search_type)
count = search.get_count()
td.add(" %s item/s" % count)
columns = search.get_columns()
td = table.add_cell()
td.add(columns)
# search_type
td = table.add_cell()
text = TextWdg("search_type")
td.add(text)
new_search_type = "%s/%s" % (project_code, table_name)
text.set_value(new_search_type)
register_div = DivWdg()
div.add(register_div)
register_div.add_style("padding: 20px")
#.........这里部分代码省略.........
示例8: get_display
# 需要导入模块: from pyasm.widget import IconWdg [as 别名]
# 或者: from pyasm.widget.IconWdg import add_behavior [as 别名]
def get_display(self):
element_data_dict = {}
config = self.get_config()
element_names = config.get_element_names()
content_wdg = DivWdg()
content_wdg.add_class("spt_simple_search_top")
onload_js = DivWdg()
content_wdg.add(onload_js)
onload_js.add_behavior( {
'type': 'load',
'cbjs_action': self.get_onload_js()
} )
if not element_names:
element_names = ['keywords']
self.set_content(content_wdg)
# this is somewhat duplicated logic from alter_search, but since this is called
# in ViewPanelWdg, it's a diff instance and needs to retrieve again
filter_data = FilterData.get()
filter_view = self.kwargs.get("filter_view")
if filter_view:
search = Search("config/widget_config")
search.add_filter("view", filter_view)
search.add_filter("category", "search_filter")
search.add_filter("search_type", self.search_type)
filter_config = search.get_sobject()
if filter_config:
filter_xml = filter_config.get_xml_value("config")
filter_value = filter_xml.get_value("config/filter/values")
if filter_value:
data_list = jsonloads(filter_value)
else:
data_list = filter_data.get_values_by_prefix(self.prefix)
for data in data_list:
handler = data.get("handler")
element_name = data.get("element_name")
if not element_name:
continue
element_data_dict[element_name] = data
elements_wdg = DivWdg()
content_wdg.add(elements_wdg)
elements_wdg.add_color("color", "color")
elements_wdg.add_style("padding-top: 10px")
elements_wdg.add_style("padding-bottom: 15px")
#elements_wdg.add_color("background", "background3", 0)
elements_wdg.add_color("background", "background", -3)
elements_wdg.add_border()
if len(element_names) == 1:
elements_wdg.add_style("border-width: 0px 0px 0px 0px" )
elements_wdg.add_style("padding-right: 50px" )
else:
elements_wdg.add_style("border-width: 0px 0px 0px 0px" )
table = Table()
table.add_color("color", "color")
elements_wdg.add(table)
table.add_class("spt_simple_search_table")
columns = self.kwargs.get("columns")
if not columns:
columns = 2
else:
columns = int(columns)
num_rows = int(len(element_names)/columns)+1
tot_rows = int(len(element_names)/columns)+1
project_code = Project.get_project_code()
# self.search_type could be the same as self.base_search_type
full_search_type = SearchType.build_search_type(self.search_type, project_code)
visible_rows = self.kwargs.get("visible_rows")
if visible_rows:
visible_rows = int(visible_rows)
num_rows = visible_rows
else:
visible_rows = 0
titles = config.get_element_titles()
#.........这里部分代码省略.........