Esempio n. 1
0
    def get_search_wdg(self):
        filter_div = DivWdg()
        filter_div.add_style("width: 100px")

        buttons_list = [
            {'label': 'Run Search', 'tip': 'Run search with this criteria' },
        ]

        txt_btn_set = TextBtnSetWdg( position='', buttons=buttons_list, spacing=6, size='large', side_padding=4 )
        run_search_bvr = {
            'type':         'click_up',
            'cbjs_action':  '''
                spt.app_busy.show('Search ...', 'Searching Active Directory for matching users.');
                setTimeout( function() {
                var top = bvr.src_el.getParent('.ad_search_wdg_top');
                var values = spt.api.Utility.get_input_values(top);
                spt.panel.refresh(top, values);
                spt.app_busy.hide();
                }, 100);
            '''
        }
        txt_btn_set.get_btn_by_label('Run Search').add_behavior( run_search_bvr )
        #filter_div.add( txt_btn_set )

        div = DivWdg()
        div.add_behavior(run_search_bvr)
        button = ProdIconButtonWdg("Run Search")
        button.add_behavior(run_search_bvr)

        div.add(button)
        filter_div.add(div)
        return filter_div
Esempio n. 2
0
    def get_search_wdg(my):
        filter_div = DivWdg()

        #my.main_src_el_id = my.kwargs.get('main_src_el_id')
        buttons_list = [{
            'label': 'Run Local Search',
            'tip': 'Run search with this criteria'
        }, {
            'label': 'Clear',
            'tip': 'Clear all search criteria',
            'bvr': {
                'cbjs_action':
                'spt.api.Utility.clear_inputs(bvr.src_el.getParent(".spt_search"))'
            }
        }]

        txt_btn_set = TextBtnSetWdg(buttons=buttons_list,
                                    spacing=6,
                                    size='small',
                                    side_padding=4)
        run_search_bvr = {
            'type': 'click_up',
            'cbjs_action': 'spt.dg_table.local_search_cbk(evt, bvr);',
            'panel_id': my.prefix,
            'prefix_namespace': my.prefix_namespace
        }
        txt_btn_set.get_btn_by_label('Run Local Search').add_behavior(
            run_search_bvr)

        filter_div.add(txt_btn_set)
        return filter_div
Esempio n. 3
0
    def get_action_html(my):
        search_key = SearchKey.get_by_sobject(my.sobjects[0])
        behavior_submit = {
            'type': 'click_up',
            'cb_fire_named_event': 'append_pressed',
            'element_names': my.element_names,
            'search_key': search_key,
            'input_prefix': my.input_prefix

        }
        behavior_cancel = {
            'type': 'click_up',
            'cb_fire_named_event': 'preclose_edit_popup',
            'cbjs_postaction': "spt.popup.destroy( spt.popup.get_popup( $('edit_popup') ) );"
        }
        button_list = [{'label':  "%s/Close" % my.mode.capitalize(),
            'bvr': behavior_submit},
            {'label':  "Cancel", 'bvr': behavior_cancel}]        
        edit_close = TextBtnSetWdg( buttons=button_list, spacing =6, size='large', \
                align='center',side_padding=10)
        
       
        div = DivWdg()
        div.add_styles('height: 35px; margin-top: 10px;')
       
        div.center()
        div.add(edit_close)

        return div
Esempio n. 4
0
    def get_search_wdg(self):
        filter_div = DivWdg()

        buttons_list = [
            {
                'label': 'Run Search',
                'tip': 'Run search with this criteria'
            },
            #{'label': 'Terminal View', 'tip': 'Launch Terminal View' },
            #{'label': 'Clear', 'tip': 'Clear all search criteria',
            #    'bvr': {'cbjs_action': 'spt.api.Utility.clear_inputs(bvr.src_el.getParent(".spt_search"))'} }
        ]

        txt_btn_set = TextBtnSetWdg(position='',
                                    buttons=buttons_list,
                                    spacing=6,
                                    size='small',
                                    side_padding=4)

        # handle the search button
        run_search_bvr = {
            'type': 'click_up',
            'cbjs_action': '''
            spt.dg_table.search_cbk(evt, bvr);
            //setTimeout( function() {
            //var top = bvr.src_el.getParent(".spt_table_search");
            //spt.panel.refresh(top);
            //}, 10);
            ''',
            'panel_id': self.prefix
        }
        txt_btn_set.get_btn_by_label('Run Search').add_behavior(run_search_bvr)

        # handle the terminal button
        #terminal_bvr = {
        #    'type':         'click_up',
        #    'cbjs_action':  '''
        #    bvr.script_code = '784MMS';
        #    spt.CustomProject.custom_script(evt, bvr);
        #    ''',
        #}
        #txt_btn_set.get_btn_by_label('Terminal View').add_behavior( terminal_bvr )

        filter_div.add(txt_btn_set)
        return filter_div
Esempio n. 5
0
    def get_search_wdg(self):
        filter_div = DivWdg()
        filter_div.add_style("width: 100px")

        buttons_list = [
            {
                'label': 'Run Search',
                'tip': 'Run search with this criteria'
            },
        ]

        txt_btn_set = TextBtnSetWdg(position='',
                                    buttons=buttons_list,
                                    spacing=6,
                                    size='large',
                                    side_padding=4)
        run_search_bvr = {
            'type':
            'click_up',
            'cbjs_action':
            '''
                spt.app_busy.show('Search ...', 'Searching Active Directory for matching users.');
                setTimeout( function() {
                var top = bvr.src_el.getParent('.ad_search_wdg_top');
                var values = spt.api.Utility.get_input_values(top);
                spt.panel.refresh(top, values);
                spt.app_busy.hide();
                }, 100);
            '''
        }
        txt_btn_set.get_btn_by_label('Run Search').add_behavior(run_search_bvr)
        #filter_div.add( txt_btn_set )

        div = DivWdg()
        div.add_behavior(run_search_bvr)
        button = ProdIconButtonWdg("Run Search")
        button.add_behavior(run_search_bvr)

        div.add(button)
        filter_div.add(div)
        return filter_div
Esempio n. 6
0
    def get_search_wdg(self):
        filter_div = DivWdg()

        buttons_list = [
                {'label': 'Run Search', 'tip': 'Run search with this criteria' },
                #{'label': 'Terminal View', 'tip': 'Launch Terminal View' },
                #{'label': 'Clear', 'tip': 'Clear all search criteria',
                #    'bvr': {'cbjs_action': 'spt.api.Utility.clear_inputs(bvr.src_el.getParent(".spt_search"))'} }
        ]

        txt_btn_set = TextBtnSetWdg( position='', buttons=buttons_list, spacing=6, size='small', side_padding=4 )

        # handle the search button
        run_search_bvr = {
            'type':         'click_up',
            'cbjs_action':  '''
            spt.dg_table.search_cbk(evt, bvr);
            //setTimeout( function() {
            //var top = bvr.src_el.getParent(".spt_table_search");
            //spt.panel.refresh(top);
            //}, 10);
            ''',
            'panel_id':     self.prefix
        }
        txt_btn_set.get_btn_by_label('Run Search').add_behavior( run_search_bvr )

        # handle the terminal button
        #terminal_bvr = {
        #    'type':         'click_up',
        #    'cbjs_action':  '''
        #    bvr.script_code = '784MMS';
        #    spt.CustomProject.custom_script(evt, bvr);
        #    ''',
        #}
        #txt_btn_set.get_btn_by_label('Terminal View').add_behavior( terminal_bvr )



        filter_div.add( txt_btn_set )
        return filter_div
Esempio n. 7
0
    def get_search_wdg(my):
        filter_div = DivWdg()

        #my.main_src_el_id = my.kwargs.get('main_src_el_id')
        buttons_list = [
                {'label': 'Run Local Search', 'tip': 'Run search with this criteria' },
                {'label': 'Clear', 'tip': 'Clear all search criteria',
                    'bvr': {'cbjs_action': 'spt.api.Utility.clear_inputs(bvr.src_el.getParent(".spt_search"))'} }
        ]

        txt_btn_set = TextBtnSetWdg( buttons=buttons_list, spacing=6, size='small', side_padding=4 )
        run_search_bvr = {
            'type':         'click_up',
            'cbjs_action':  'spt.dg_table.local_search_cbk(evt, bvr);',
            'panel_id':     my.prefix,
            'prefix_namespace': my.prefix_namespace
            
        }
        txt_btn_set.get_btn_by_label('Run Local Search').add_behavior( run_search_bvr )

        filter_div.add( txt_btn_set )
        return filter_div
Esempio n. 8
0
    def get_search_wdg(my):
        filter_div = DivWdg()

        # my.main_src_el_id = my.kwargs.get('main_src_el_id')
        buttons_list = [
            {"label": "Run Local Search", "tip": "Run search with this criteria"},
            {
                "label": "Clear",
                "tip": "Clear all search criteria",
                "bvr": {"cbjs_action": 'spt.api.Utility.clear_inputs(bvr.src_el.getParent(".spt_search"))'},
            },
        ]

        txt_btn_set = TextBtnSetWdg(buttons=buttons_list, spacing=6, size="small", side_padding=4)
        run_search_bvr = {
            "type": "click_up",
            "cbjs_action": "spt.dg_table.local_search_cbk(evt, bvr);",
            "panel_id": my.prefix,
            "prefix_namespace": my.prefix_namespace,
        }
        txt_btn_set.get_btn_by_label("Run Local Search").add_behavior(run_search_bvr)

        filter_div.add(txt_btn_set)
        return filter_div
Esempio n. 9
0
    def get_example_display(my):

        div = DivWdg()
        div.add_styles("background: grey; padding: 10px; width: 450px;")
        div.add("<br/><br/>")

        from tactic.ui.container import RoundedCornerDivWdg
        rc_wdg = RoundedCornerDivWdg(corner_size=10)
        # rc_wdg.set_dimensions(width_str="100%", content_height_str='100%', height_str="100%")
        rs0_wdg = ResizeScrollWdg(
            width=300,
            height=200,
            scroll_bar_size_str='thin',
            scroll_expansion='inside',
            # max_content_w=500, max_content_h=400,
            set_max_to_content_size=True,
            min_content_w=100,
            min_content_h=50)
        rs0_wdg.add(my.get_popwin_oversize_content())

        rc_wdg.add(rs0_wdg)
        div.add(rc_wdg)

        div.add("<br/><br/>")

        div.add(
            "<p style='color: black;'>Resize/Scroll Widget example ...</p>")
        rs_wdg = ResizeScrollWdg(width=300,
                                 height=200,
                                 scroll_bar_size_str='thin',
                                 scroll_expansion='inside')
        rs_wdg.add(my.get_popwin_oversize_content())
        div.add(rs_wdg)

        div.add("<br/><br/>")

        div.add( "<p style='color: black;'>Resize/Scroll Widget example WITH NO RESIZE CAPABILITY" \
                 " (just scroll bars) ...</p>" )
        rs2_wdg = ResizeScrollWdg(width=300,
                                  height=200,
                                  scroll_bar_size_str='thin',
                                  scroll_expansion='inside',
                                  no_resize=True)
        rs2_wdg.add(my.get_popwin_oversize_content())
        div.add(rs2_wdg)

        div.add("<br/><br/>")

        popwin_id = "NewPopupWindowTest"
        popwin_title = "New Popup Window Widget Test"
        popwin = PopWindowWdg(top_id=popwin_id,
                              title=popwin_title,
                              width=150,
                              height=150)
        popwin.add(my.get_popwin_oversize_content())
        div.add(popwin)
        pwin_launch = DivWdg()

        pwin_launch.add_styles(
            "cursor: pointer; background-color: red; color: black; border: 1px solid black; width: 100px; height: 50px;"
        )
        pwin_launch.add_behavior({
            'type':
            'click_up',
            'cbjs_action':
            'spt.popup.open("' + popwin_id + '");'
        })
        pwin_launch.add("Click to launch New Popup Window")
        div.add(pwin_launch)

        div.add("<br/><br/>")

        test_div = DivWdg()
        test_div.add_styles(
            "background: black; padding: 10px; width: 350px; text-align: center;"
        )

        test_div.add(
            SpanWdg("This black DIV has<br/>text-align set to center"))

        my_table = Table()
        my_table.add_row()
        my_table.add_cell("This").add_styles(
            "border: 1px solid white; padding: 4px;")
        my_table.add_cell("that").add_styles(
            "border: 1px solid white; padding: 4px;")
        my_table.add_cell("and").add_styles(
            "border: 1px solid white; padding: 4px;")
        my_table.add_cell("The").add_styles(
            "border: 1px solid white; padding: 4px;")
        my_table.add_cell("other").add_styles(
            "border: 1px solid white; padding: 4px;")

        test_div.add("<br/><br/>")
        test_div.add(my_table)

        test_div.add("<br/><br/>")
        tmp_div = DivWdg()
        tmp_div.add_styles(
            "width: 200px; background-color: green; color: black; padding: 10px;"
        )
        tmp_div.add("I am a DIV without my margins set")
        test_div.add(tmp_div)

        test_div.add("<br/><br/>")
        tmp_div = DivWdg()
        tmp_div.add_styles(
            "width: 200px; background-color: green; color: black; padding: 10px;"
        )
        tmp_div.center()
        tmp_div.add(
            "I am a DIV with my margins<br/>set using HtmlElement.center()")
        test_div.add(tmp_div)

        test_div.add("<br/><br/>")
        buttons_list = [{
            'label': "Insert",
            'tip': "This is an insert",
            'bvr': {
                'cbjs_action': 'alert("Insert!");'
            }
        }, {
            'label': 'Cancel',
            'tip': 'Cancel',
            'bvr': {
                'cbjs_action': 'alert("Cancel!");'
            }
        }]
        buttons = TextBtnSetWdg(float="",
                                align="center",
                                buttons=buttons_list,
                                spacing=6,
                                size='medium',
                                side_padding=4)
        test_div.add(buttons)

        div.add(test_div)

        div.add("<br/><br/>")
        div.add("<br/><br/>")

        buttons_list = [
            {
                'label': 'One',
                'tip': 'Button One',
                'bvr': {
                    'cbjs_action': 'alert("First button!");'
                }
            },
            {
                'label': 'Two',
                'tip': 'Button Two',
                'bvr': {
                    'cbjs_action': 'alert("Second button!");'
                }
            },
            {
                'label': 'Three',
                'tip': 'Button Three',
                'bvr': {
                    'cbjs_action': 'alert("Third button!");'
                }
            },
            {
                'label': 'Four',
                'tip': 'Button Four',
                'bvr': {
                    'cbjs_action': 'alert("Fourth button!");'
                }
            },
        ]

        txt_btn_set = TextBtnSetWdg(float='right',
                                    buttons=buttons_list,
                                    spacing=6,
                                    size='large',
                                    side_padding=4)
        txt_btn_set.get_btn_by_label('Three').add_behavior({
            'type':
            'click_up',
            'modkeys':
            'SHIFT',
            'cbjs_action':
            'alert("SHIFT happened!");'
        })
        div.add(txt_btn_set)

        div.add("<br/><br/>")
        div.add("<br/><br/>")

        d1 = my.get_simple_div(
            "Drop Zone (runs cbjs_action of drag-drop element on drop)", None)
        d1.set_attr("SPT_ACCEPT_DROP", "Qweejibo")
        d1.add_behavior({
            'type': 'hover',
            'mod_styles': 'background-color: green;'
        })

        table1 = Table()
        tr = table1.add_row()
        tr.add_behavior({
            'type': 'hover',
            'mod_styles': 'background-color: #f11; color: green'
        })

        td = table1.add_cell('what')
        #td.add_behavior( { 'type': 'hover', 'mod_styles': 'background-color: orange;' } )
        td = table1.add_cell('is')
        #td.add_behavior( { 'type': 'hover', 'mod_styles': 'background-color: green;' } )
        div.add(table1)

        # d2 = my.get_simple_div( "Pick Up!", "white" )
        d2 = my.get_simple_div("Override with 'accept_drop' behavior!", None)
        d2.add_looks("menu")

        # NOTE: with 'accept_drop' behavior you do not need to set the "SPT_ACCEPT_DROP" attribute on the
        #       given drop-on element, just need to add the same value to a 'drop_code' attribute in the
        #       'accept_drop' bvr spec (doing this will automatically add it to the SPT_ACCEPT_DROP at
        #       behavior construction time
        # so we do not need this here --> d2.set_attr("SPT_ACCEPT_DROP","Qweejibo")
        d2.add_behavior({
            'type': 'accept_drop',
            'cbjs_action': 'log.debug("Override #1 on Qweejibo");',
            'drop_code': 'Qweejibo'
        })
        d2.add_behavior({
            'type': 'accept_drop',
            'cbjs_action': '''
                log.debug("Override #2 on Qweejibo");
                var el = bvr._drop_source_bvr.src_el;
                el.setStyle("background-color", "white");
            ''',
            'drop_code': 'Qweejibo'
        })

        d2.add_behavior({'type': 'hover', 'add_looks': 'menu_hover'})
        d2.add_behavior({
            'type': 'hover',
            'mod_styles': 'border: 1px solid red;',
            'drag_drop_codes': 'Qweejibo',
        })

        div.add(d1)
        div.add("<br/>")
        div.add(d2)

        div.add("<br/><br/>")
        div.add("<br/><br/>")

        btn = DivWdg()
        btn.add("TEST JS LOG TIME")
        btn.add_styles(
            "padding: 4px; width: 150px; cursor: pointer; background: red; color: white; "
            + "border: 1px solid white;")
        btn.add_behavior({
            'type': 'click',
            'cbjs_action': 'spt.js_log.test_perf();'
        })

        div.add(btn)
        div.add("<br/><br/>")

        dragme = DivWdg()
        dragme.add_styles( "background: blue; padding: 10px; width: 200px; border: 1px solid black; " \
                           "position: absolute; top: 200px; left: 400px; cursor: default;" )
        dragme.add("Click me OR Drag me!")

        # dragme.add_behavior( { 'type': 'drag', 'drag_el': '@', 'use_default_cbs': 'true',
        #                        'cbjs_action_onnomotion': 'alert("I\'ve been clicked!");' } )

        dragme.add_behavior({
            'type':
            'smart_drag',
            'drag_el':
            '@',
            'use_copy':
            'true',
            'use_delta':
            'true',
            'dx':
            1,
            'dy':
            1,
            'drop_code':
            'Qweejibo',
            'copy_styles':
            'background: red; opacity: .3;',
            'cbjs_action':
            'alert("Got Qweejibo");',
            'cbjs_action_onnomotion':
            'alert("I\'ve been clicked!");'
        })

        div.add(dragme)
        div.add("<br/><br/>")

        select = SelectWdg("OnChangeTestSelectWidget")
        select.add_behavior({
            'type':
            'change',
            'cbjs_preaction':
            '''
                alert("Click OK then see Web Client Output Log for 'change' behavior activity");
                log.debug("[preaction] My value is now: "+bvr.src_el.value);
                ''',
            'cbjs_action':
            'log.debug("[action] My value is now: "+bvr.src_el.value);',
            'cbjs_postaction':
            'log.debug("[postaction] My value is now: "+bvr.src_el.value);'
        })
        select.add_behavior({
            'type':
            'change',
            'cbjs_action':
            'log.debug("ORIG - stacked change behavior #2!");'
        })
        select.add_behavior({
            'type':
            'change',
            'cbjs_action':
            'log.debug("ORIG - stacked change behavior #3!");'
        })
        select.add_behavior({
            'type':
            'change',
            'cbjs_action':
            'log.debug("ORIG - stacked change behavior #4!");'
        })
        select.set_option("values", "One|Day|In|Your|Life")
        select.set_value("Life")

        # Test for set_behavior override with stacked onchange behaviors ...
        '''
        select.set_behavior( {'type': 'change', 'cbjs_action': 'alert("This is what me gots: "+bvr.src_el.value);'} );
        select.add_behavior( {'type': 'change', 'cbjs_action': 'log.debug("OVERRIDE - stacked change behavior #5!");'} );
        select.add_behavior( {'type': 'change', 'cbjs_action': 'log.debug("OVERRIDE - stacked change behavior #6!");'} );
        '''

        div.add(select)

        div.add("<br/><br/>")

        click_core_div = DivWdg()
        click_core_div.add_styles(
            "background-color: blue; color: white; border: 1px solid black; padding: 10px"
        )
        click_core_div.add_styles("cursor: pointer;")
        click_core_div.add("Click me for preaction, action, postaction test")
        click_core_div.add_behavior({
            'type':
            'click',
            'cbjs_preaction':
            '''
                alert("Click OK then see Web output log for 'click' behavior activity");
                log.debug("Click pre-action");
            ''',
            'cbjs_action':
            'log.debug("Click action");',
            'cbjs_postaction':
            'log.debug("Click post-action");'
        })

        div.add(click_core_div)

        div.add("<br/><br/>")
        override = DivWdg()
        override.add_styles(
            "padding: 4px; background: white; color: black; border: 1px solid black; cursor: pointer;"
        )
        override.add("Set Behavior Override Test")

        bvr = {
            'type': 'click',
            'modkeys': 'SHIFT',
            'cbjs_action': 'alert("Load ONE");'
        }
        override.add_behavior(bvr)

        bvr = {
            'type': 'click',
            'modkeys': 'SHIFT',
            'cbjs_action': 'alert("Load ONE OVERRIDDEN!");'
        }
        override.set_behavior(bvr)

        div.add(override)

        div.add("<br/><br/>")

        div1 = DivWdg()
        div1.add_styles(
            "background: #444477; border: solid 1px black; padding: 10px;")
        div1.add("Div1")
        div1.set_id("Div_1")

        div2 = DivWdg()
        div2.add_styles(
            "background: #4444BB; border: solid 1px black; padding: 10px; cursor: pointer;"
        )
        div2.add("Div2")
        div2.set_id("Div_2")

        # div2.add_behavior( { 'type': 'click_up', 'cbjs_action': '$("Div_3").inject("Div_2","after");' } )
        div2.add_behavior({
            'type': 'click_up',
            'cbjs_action': '$("Div_3").inject("Div_1","bottom");'
        })

        div1.add(div2)

        div.add(div1)
        div.add("<br/><br/>")

        div3 = DivWdg()
        div3.add_styles(
            "background: #4444FF; border: solid 1px black; padding: 10px;")
        div3.add("Div3")
        div3.set_id("Div_3")

        div.add(div3)

        return div
Esempio n. 10
0
    def get_action_html(my):
      
        search_key = SearchKey.get_by_sobject(my.sobjects[0])
        search_type = my.sobjects[0].get_base_search_type()


        div = DivWdg(css='centered')
        div.add_behavior( {
            'type': 'load',
            'cbjs_action': my.get_onload_js()
        } )
        
        div.add_styles('height: 35px; margin-top: 10px;')
        div.add_named_listener('close_EditWdg', '''
            var popup = bvr.src_el.getParent( ".spt_popup" );
            if (popup)
                spt.popup.close(popup);
        ''')


     
        # custom callbacks
        cbjs_cancel = my.kwargs.get('cbjs_cancel')
        if not cbjs_cancel:
            cbjs_cancel = '''
            spt.named_events.fire_event('preclose_edit_popup', {});
            spt.named_events.fire_event('close_EditWdg', {})
            '''

        # custom callbacks
        cbjs_insert_path = my.kwargs.get('cbjs_%s_path' % my.mode)
        cbjs_insert = None
        if cbjs_insert_path:
            script_obj = CustomScript.get_by_path(cbjs_insert_path)
            cbjs_insert = script_obj.get_value("script")
            cbjs_insert = cbjs_insert.replace("'", '"')

        # get it inline
        if not cbjs_insert:
            cbjs_insert = my.kwargs.get('cbjs_%s' % my.mode)

        # use a default
        if not cbjs_insert:
            cbjs_insert = '''
            spt.edit.edit_form_cbk(evt, bvr);
            '''

        element_names = my.element_names[:]
        for element_name in my.skipped_element_names:
            element_names.remove(element_name)
        # Must not have postaction which closes the EditWdg before upload finishes
        from tactic.ui.widget import TextBtnWdg, TextBtnSetWdg
        bvr =  {
                    'cbjs_action': cbjs_insert,
                    'named_event': 'close_EditWdg',
                    'element_names': element_names,
                    'search_key': search_key,
                    'input_prefix': my.input_prefix,
                    'view': my.view
                }
        keys = WebContainer.get_web().get_form_keys()
        for key in keys:
            bvr[key] = WebContainer.get_web().get_form_value(key)

        label = my.mode
        if label == 'edit':
            label = 'save'

        buttons_list = [
            {
                'label': label.capitalize(),
                'tip': label.capitalize(),
                'bvr': bvr
            },
            {
                'label': 'Cancel',
                'tip': 'Cancel',
                'bvr': {
                    'cbjs_action': cbjs_cancel
                }
            }
        ]
        buttons = TextBtnSetWdg( align="center", buttons=buttons_list, spacing=10, size='large', side_padding=4 )

        div.add(buttons)



        return div
Esempio n. 11
0
    def get_display(self):
        top = DivWdg()

        search_type = self.kwargs.get("search_type")
        view = self.kwargs.get("view")
        element_name = self.kwargs.get("element_name")

        config_view = WidgetConfigView.get_by_search_type(search_type, view)

        #inner_div = RoundedCornerDivWdg(hex_color_code="949494",corner_size="10")
        inner_div = RoundedCornerDivWdg(hex_color_code="272727",
                                        corner_size="10")
        inner_div.set_dimensions(width_str='400px', content_height_str='600px')
        top.add(inner_div)

        # add the save button
        buttons_list = []
        buttons_list.append({
            'label': 'Save as View',
            'tip': 'Save as View',
            'bvr': {
                'cbjs_action': "alert('Not Implemented')"
            }
        })
        buttons_list.append({
            'label': 'Save as Def',
            'tip': 'Save as Definition',
            'bvr': {
                'cbjs_action': "alert('Not Implemented')"
            }
        })

        buttons = TextBtnSetWdg(float="right",
                                buttons=buttons_list,
                                spacing=6,
                                size='small',
                                side_padding=4)

        inner_div.add(buttons)

        title_div = DivWdg()
        title_div.add_style("margin-bottom: 10px")
        title_div.add_class("maq_search_bar")
        title_div.add("Element Definition")
        inner_div.add(title_div)

        test = SimpleElementDefinitionWdg(config_view=config_view,
                                          element_name=element_name)
        inner_div.add(test)

        config_title_wdg = DivWdg()
        inner_div.add(config_title_wdg)
        config_title_wdg.add("<b>Definitions in config</b>")
        config_title_wdg.add_style("margin: 15px 0px 5px 0px")

        for config in config_view.get_configs():
            view = config.get_view()
            xml = config.get_element_xml(element_name)

            config_div = DivWdg()
            inner_div.add(config_div)

            # add the title
            from pyasm.widget import SwapDisplayWdg, IconWdg

            view_div = DivWdg()
            view_div.add_class("spt_view")
            config_div.add(view_div)

            if not xml:
                icon_wdg = IconWdg("Nothing defined", IconWdg.DOT_RED)
                icon_wdg.add_style("float: right")
                view_div.add(icon_wdg)
            else:
                icon_wdg = IconWdg("Is defined", IconWdg.DOT_GREEN)
                icon_wdg.add_style("float: right")
                view_div.add(icon_wdg)

            swap = SwapDisplayWdg()
            view_div.add(swap)
            swap.add_action_script('''
                var info_wdg = bvr.src_el.getParent('.spt_view').getElement('.spt_info');
                spt.toggle_show_hide(info_wdg);
            ''')

            mode = "predefined"
            file_path = config.get_file_path()
            if not file_path:
                mode = "database"
            elif file_path == 'generated':
                mode = 'generated'

            # display the title
            view_div.add("%s" % view)
            view_div.add(" - [%s]" % mode)

            info_div = DivWdg()
            info_div.add_class("spt_info")
            info_div.add_style("margin-left: 20px")
            info_div.add_style("display: none")
            #if not xml:
            #    info_div.add_style("display: none")
            #else:
            #    swap.set_off()
            view_div.add(info_div)

            path_div = DivWdg()
            if not file_path:
                file_path = mode
            path_div.add("Defined in: %s" % file_path)
            info_div.add(path_div)

            text_wdg = TextAreaWdg()
            text_wdg.set_option("rows", 15)
            text_wdg.set_option("cols", 80)
            text_wdg.set_value(xml)
            info_div.add(text_wdg)

            #view_div.add("<hr/>")

        return top
Esempio n. 12
0
    def get_example_display(self):

        div = DivWdg()
        div.add_styles("background: grey; padding: 10px; width: 450px;")
        div.add( "<br/><br/>" )

        from tactic.ui.container import RoundedCornerDivWdg
        rc_wdg = RoundedCornerDivWdg(corner_size=10)
        # rc_wdg.set_dimensions(width_str="100%", content_height_str='100%', height_str="100%")
        rs0_wdg = ResizeScrollWdg( width=300, height=200, scroll_bar_size_str='thin', scroll_expansion='inside',
                                   # max_content_w=500, max_content_h=400,
                                   set_max_to_content_size=True,
                                   min_content_w=100, min_content_h=50 )
        rs0_wdg.add( self.get_popwin_oversize_content() )

        rc_wdg.add( rs0_wdg )
        div.add( rc_wdg )

        div.add( "<br/><br/>" )

        div.add( "<p style='color: black;'>Resize/Scroll Widget example ...</p>" )
        rs_wdg = ResizeScrollWdg( width=300, height=200, scroll_bar_size_str='thin', scroll_expansion='inside' )
        rs_wdg.add( self.get_popwin_oversize_content() )
        div.add( rs_wdg )

        div.add( "<br/><br/>" )

        div.add( "<p style='color: black;'>Resize/Scroll Widget example WITH NO RESIZE CAPABILITY" \
                 " (just scroll bars) ...</p>" )
        rs2_wdg = ResizeScrollWdg( width=300, height=200, scroll_bar_size_str='thin', scroll_expansion='inside',
                                  no_resize=True )
        rs2_wdg.add( self.get_popwin_oversize_content() )
        div.add( rs2_wdg )

        div.add( "<br/><br/>" )

        popwin_id = "NewPopupWindowTest"
        popwin_title = "New Popup Window Widget Test"
        popwin = PopWindowWdg(top_id=popwin_id, title=popwin_title, width=150, height=150)
        popwin.add( self.get_popwin_oversize_content() )
        div.add( popwin )
        pwin_launch = DivWdg()

        pwin_launch.add_styles("cursor: pointer; background-color: red; color: black; border: 1px solid black; width: 100px; height: 50px;")
        pwin_launch.add_behavior( {'type': 'click_up', 'cbjs_action': 'spt.popup.open("' + popwin_id + '");'} )
        pwin_launch.add("Click to launch New Popup Window")
        div.add( pwin_launch )



        div.add( "<br/><br/>" )

        test_div = DivWdg()
        test_div.add_styles("background: black; padding: 10px; width: 350px; text-align: center;")

        test_div.add( SpanWdg("This black DIV has<br/>text-align set to center") )

        my_table = Table()
        my_table.add_row()
        my_table.add_cell("This").add_styles("border: 1px solid white; padding: 4px;")
        my_table.add_cell("that").add_styles("border: 1px solid white; padding: 4px;")
        my_table.add_cell("and").add_styles("border: 1px solid white; padding: 4px;")
        my_table.add_cell("The").add_styles("border: 1px solid white; padding: 4px;")
        my_table.add_cell("other").add_styles("border: 1px solid white; padding: 4px;")

        test_div.add( "<br/><br/>" )
        test_div.add( my_table )

        test_div.add( "<br/><br/>" )
        tmp_div = DivWdg()
        tmp_div.add_styles("width: 200px; background-color: green; color: black; padding: 10px;")
        tmp_div.add("I am a DIV without self margins set")
        test_div.add(tmp_div)

        test_div.add( "<br/><br/>" )
        tmp_div = DivWdg()
        tmp_div.add_styles("width: 200px; background-color: green; color: black; padding: 10px;")
        tmp_div.center()
        tmp_div.add("I am a DIV with self margins<br/>set using HtmlElement.center()")
        test_div.add(tmp_div)

        test_div.add( "<br/><br/>" )
        buttons_list = [
            {
                'label': "Insert",
                'tip': "This is an insert",
                'bvr': {'cbjs_action': 'alert("Insert!");'}
            },
            {
                'label': 'Cancel',
                'tip': 'Cancel',
                'bvr': {'cbjs_action': 'alert("Cancel!");'}
            }
        ]
        buttons = TextBtnSetWdg( float="", align="center", buttons=buttons_list, spacing=6,
                                 size='medium', side_padding=4 )
        test_div.add( buttons )

        div.add(test_div)



        div.add( "<br/><br/>" )
        div.add( "<br/><br/>" )

        buttons_list = [
                {'label': 'One', 'tip': 'Button One', 'bvr': {'cbjs_action': 'alert("First button!");'} },
                {'label': 'Two', 'tip': 'Button Two', 'bvr': {'cbjs_action': 'alert("Second button!");'} },
                {'label': 'Three', 'tip': 'Button Three', 'bvr': {'cbjs_action': 'alert("Third button!");'} },
                {'label': 'Four', 'tip': 'Button Four', 'bvr': {'cbjs_action': 'alert("Fourth button!");'} },
        ]

        txt_btn_set = TextBtnSetWdg( float='right', buttons=buttons_list, spacing=6, size='large', side_padding=4 )
        txt_btn_set.get_btn_by_label('Three').add_behavior( {'type': 'click_up', 'modkeys': 'SHIFT',
                                                             'cbjs_action': 'alert("SHIFT happened!");'} )
        div.add( txt_btn_set )


        div.add( "<br/><br/>" )
        div.add( "<br/><br/>" )

        d1 = self.get_simple_div( "Drop Zone (runs cbjs_action of drag-drop element on drop)", None )
        d1.set_attr("SPT_ACCEPT_DROP","Qweejibo")
        d1.add_behavior( { 'type': 'hover', 'mod_styles': 'background-color: green;' } )


        table1 = Table()
        tr = table1.add_row()
        tr.add_behavior( { 'type': 'hover', 'mod_styles': 'background-color: #f11; color: green' } )

        td = table1.add_cell('what')
        #td.add_behavior( { 'type': 'hover', 'mod_styles': 'background-color: orange;' } )
        td = table1.add_cell('is')
        #td.add_behavior( { 'type': 'hover', 'mod_styles': 'background-color: green;' } )
        div.add(table1)

        # d2 = self.get_simple_div( "Pick Up!", "white" )
        d2 = self.get_simple_div( "Override with 'accept_drop' behavior!", None )
        d2.add_looks("menu");

        # NOTE: with 'accept_drop' behavior you do not need to set the "SPT_ACCEPT_DROP" attribute on the
        #       given drop-on element, just need to add the same value to a 'drop_code' attribute in the
        #       'accept_drop' bvr spec (doing this will automatically add it to the SPT_ACCEPT_DROP at
        #       behavior construction time
        # so we do not need this here --> d2.set_attr("SPT_ACCEPT_DROP","Qweejibo")
        d2.add_behavior( { 'type': 'accept_drop', 'cbjs_action': 'log.debug("Override #1 on Qweejibo");',
                            'drop_code': 'Qweejibo' } )
        d2.add_behavior( { 'type': 'accept_drop',
            'cbjs_action': '''
                log.debug("Override #2 on Qweejibo");
                var el = bvr._drop_source_bvr.src_el;
                el.setStyle("background-color", "white");
            ''',
            'drop_code': 'Qweejibo' } )

        d2.add_behavior( { 'type': 'hover', 'add_looks': 'menu_hover' } )
        d2.add_behavior( { 'type': 'hover', 'mod_styles': 'border: 1px solid red;',
                            'drag_drop_codes': 'Qweejibo',
                            } )

        div.add( d1 )
        div.add( "<br/>" )
        div.add( d2 )


        div.add( "<br/><br/>" )
        div.add( "<br/><br/>" )

        btn = DivWdg()
        btn.add("TEST JS LOG TIME")
        btn.add_styles("padding: 4px; width: 150px; cursor: pointer; background: red; color: white; " + 
                        "border: 1px solid white;")
        btn.add_behavior( { 'type': 'click', 'cbjs_action': 'spt.js_log.test_perf();' } )

        div.add( btn )
        div.add( "<br/><br/>" )

        dragme = DivWdg()
        dragme.add_styles( "background: blue; padding: 10px; width: 200px; border: 1px solid black; " \
                           "position: absolute; top: 200px; left: 400px; cursor: default;" )
        dragme.add( "Click me OR Drag me!" )


        # dragme.add_behavior( { 'type': 'drag', 'drag_el': '@', 'use_default_cbs': 'true',
        #                        'cbjs_action_onnomotion': 'alert("I\'ve been clicked!");' } )

        dragme.add_behavior( { 'type': 'smart_drag', 'drag_el': '@',
                               'use_copy': 'true',
                               'use_delta': 'true', 'dx': 1, 'dy': 1,
                               'drop_code': 'Qweejibo',
                               'copy_styles': 'background: red; opacity: .3;',
                               'cbjs_action': 'alert("Got Qweejibo");',
                               'cbjs_action_onnomotion': 'alert("I\'ve been clicked!");' } )


        div.add( dragme )
        div.add( "<br/><br/>" )

        select = SelectWdg("OnChangeTestSelectWidget")
        select.add_behavior( {'type': 'change',
            'cbjs_preaction': '''
                alert("Click OK then see Web Client Output Log for 'change' behavior activity");
                log.debug("[preaction] My value is now: "+bvr.src_el.value);
                ''',
            'cbjs_action': 'log.debug("[action] My value is now: "+bvr.src_el.value);',
            'cbjs_postaction': 'log.debug("[postaction] My value is now: "+bvr.src_el.value);'
        } );
        select.add_behavior( {'type': 'change', 'cbjs_action': 'log.debug("ORIG - stacked change behavior #2!");'} );
        select.add_behavior( {'type': 'change', 'cbjs_action': 'log.debug("ORIG - stacked change behavior #3!");'} );
        select.add_behavior( {'type': 'change', 'cbjs_action': 'log.debug("ORIG - stacked change behavior #4!");'} );
        select.set_option("values", "One|Day|In|Your|Life")
        select.set_value("Life")

        # Test for set_behavior override with stacked onchange behaviors ...
        '''
        select.set_behavior( {'type': 'change', 'cbjs_action': 'alert("This is what me gots: "+bvr.src_el.value);'} );
        select.add_behavior( {'type': 'change', 'cbjs_action': 'log.debug("OVERRIDE - stacked change behavior #5!");'} );
        select.add_behavior( {'type': 'change', 'cbjs_action': 'log.debug("OVERRIDE - stacked change behavior #6!");'} );
        '''

        div.add(select)

        div.add( "<br/><br/>" )

        click_core_div = DivWdg()
        click_core_div.add_styles( "background-color: blue; color: white; border: 1px solid black; padding: 10px" )
        click_core_div.add_styles( "cursor: pointer;" )
        click_core_div.add( "Click me for preaction, action, postaction test" )
        click_core_div.add_behavior( {'type': 'click',
            'cbjs_preaction': '''
                alert("Click OK then see Web output log for 'click' behavior activity");
                log.debug("Click pre-action");
            ''',
            'cbjs_action': 'log.debug("Click action");',
            'cbjs_postaction': 'log.debug("Click post-action");'
        } )

        div.add( click_core_div )


        div.add( "<br/><br/>" )
        override = DivWdg()
        override.add_styles( "padding: 4px; background: white; color: black; border: 1px solid black; cursor: pointer;" )
        override.add( "Set Behavior Override Test" )

        bvr = { 'type': 'click', 'modkeys': 'SHIFT', 'cbjs_action': 'alert("Load ONE");' }
        override.add_behavior( bvr )

        bvr = { 'type': 'click', 'modkeys': 'SHIFT', 'cbjs_action': 'alert("Load ONE OVERRIDDEN!");' }
        override.set_behavior( bvr )

        div.add(override)

        div.add( "<br/><br/>" )

        div1 = DivWdg()
        div1.add_styles("background: #444477; border: solid 1px black; padding: 10px;")
        div1.add("Div1")
        div1.set_id("Div_1")

        div2 = DivWdg()
        div2.add_styles("background: #4444BB; border: solid 1px black; padding: 10px; cursor: pointer;")
        div2.add("Div2")
        div2.set_id("Div_2")

        # div2.add_behavior( { 'type': 'click_up', 'cbjs_action': '$("Div_3").inject("Div_2","after");' } )
        div2.add_behavior( { 'type': 'click_up', 'cbjs_action': '$("Div_3").inject("Div_1","bottom");' } )

        div1.add( div2 )

        div.add(div1)
        div.add("<br/><br/>")

        div3 = DivWdg()
        div3.add_styles("background: #4444FF; border: solid 1px black; padding: 10px;")
        div3.add("Div3")
        div3.set_id("Div_3")

        div.add(div3)

        return div