Beispiel #1
0
def check_gaphas_state_meta_data_consistency(state_m, canvas, recursive=True, with_logger_messages=False):
    from rafcon.core.states.container_state import ContainerState
    from rafcon.utils.geometry import equal

    state_v = canvas.get_view_for_model(state_m)
    if not state_v:
        logger.verbose("There is no corresponding gaphas view for the state model {}".format(state_m))
        return
    if with_logger_messages:
        logger.verbose("Check state model {0} and Canvas view {1}".format(state_m, state_v))

    meta_rel_pos = state_m.get_meta_data_editor()["rel_pos"]
    meta_size = state_m.get_meta_data_editor()["size"]
    view_rel_pos = state_v.position
    view_size = (state_v.width, state_v.height)

    if not equal(meta_rel_pos, view_rel_pos, digit=5):
        error_msg = "{}: meta rel pos == {} != {} == view rel pos".format(state_m.state.name, meta_rel_pos,
                                                                          view_rel_pos)
        if not with_logger_messages:
            assert False, error_msg
        logger.error(error_msg)

    if not equal(meta_size, view_size, digit=5):
        error_msg = "{}: meta size == {} != {} == view size".format(state_m.state.name, meta_size, view_size)
        if not with_logger_messages:
            assert False, error_msg
        logger.error(error_msg)

    if recursive and isinstance(state_m.state, ContainerState):
        for child_state_m in state_m.states.itervalues():
            check_gaphas_state_meta_data_consistency(child_state_m, canvas, True, with_logger_messages)
Beispiel #2
0
def assert_state_size_and_meta_data_consistency(state_m, state_v, size,
                                                canvas):
    from rafcon.utils.geometry import equal
    from rafcon.gui.helpers.meta_data import check_gaphas_state_meta_data_consistency
    assert equal(size, (state_v.width, state_v.height),
                 5), "State {}: view size wrong".format(state_m.state.name)
    assert equal(size,
                 state_m.get_meta_data_editor()["size"],
                 5), "State {}: meta size wrong".format(state_m.state.name)
    check_gaphas_state_meta_data_consistency(state_m, canvas, recursive=True)