sub_arctic.lib
Class grabber_semantic_lens

java.lang.Object
  |
  +--sub_arctic.lib.min_interactor
        |
        +--sub_arctic.lib.base_interactor
              |
              +--sub_arctic.lib.base_parent_interactor
                    |
                    +--sub_arctic.lib.semantic_lens
                          |
                          +--sub_arctic.lib.grabber_semantic_lens

public class grabber_semantic_lens
extends semantic_lens
implements callback_object, simple_draggable

Class to implement dragging and drawing for a semantic lens. When this object is drawn, it does a traversal of the subtree rooted at the parent of this object. That traversal does an alternate rendering (semantic redraw) of the subtree within the bounds of this object. This redraw can be done on top of the normal draw (by setting clear_back false, which is the default), or the normal drawing can be cleared and replaced the alternate rendering. Alternate renderings are done via a "interactor_predicate" object that parameterizes this object and is passed to a traverse_and_collect() of the parent.

This object provides a title bar (with an optional text title) that can be used to move the lens, as well as a small grow handle to resize it. For complete operation, this object should be placed under a semantic_lens_parent object (the object will work with other parents, but redraw anomalies for dynamically moving objects within the lens can occur). This lens provides crosshairs to focus it on a particular interactor.

See Also:
semantic_lens_parent, sem_draw_context, sem_draw_continue, base_interactor.traverse_and_collect(int, int, sub_arctic.lib.interactor_pred, sub_arctic.lib.interactor_pred, sub_arctic.lib.traversal_xform, java.lang.Object, sub_arctic.input.pick_collector)

Field Summary
protected  int _bounds_sem_draw_kind
          Identifier for the particular kind of semantic redraw pass being done here.
protected  boolean _show_crosshairs
          Holds whether we show the crosshairs
protected  java.util.Vector _targets
          Holds the interactors we are focussed on
protected static int bounds_sem_draw_trav_id
          unique identifier for bounds_sem_draw traversals
protected  column checkbox_column
           
protected  label child_label
           
protected  shrink_wrap_container control_palette
           
protected  label depth_label
           
protected  int focus_x
           
protected  int focus_y
           
protected  h_range_slider hrs
           
protected  interactor target
           
protected  v_range_slider vrs
           
 
Fields inherited from class sub_arctic.lib.semantic_lens
_boxed, _clear_back, _draw_obj, _fixed, _sem_draw_kind, _title_color, _title_font, _title_str, metrics, sem_draw_trav_id
 
Fields inherited from class sub_arctic.lib.base_interactor
_child_index, _child_list, _clip_bounds, _constraint_flags, _enabled_constraint, _flags, _h, _h_constraint, _parent, _part_a_constraint, _part_b_constraint, _user_data, _visible_constraint, _w, _w_constraint, _x, _x_constraint, _y, _y_constraint, default_child_hint
 
Constructor Summary
grabber_semantic_lens(interactor_pred draw_action, int draw_kind)
          Simplest constructor.
grabber_semantic_lens(int xv, int yv, int wv, int hv, interactor_pred draw_action, boolean clr_back, int draw_kind)
          Simple constructor with default font and title bar color.
grabber_semantic_lens(int xv, int yv, int wv, int hv, interactor_pred draw_action, boolean clr_back, java.lang.String ttl_str, java.awt.Color ttl_color, java.awt.Font ttl_font, int draw_kind)
          Full constructor.
 
Method Summary
 int bounds_sem_draw_kind()
          Identifier for the particular kind of semantic redraw pass being done here.
 void callback(interactor from_obj, event evt, int callback_num, java.lang.Object callback_info)
           
 boolean drag_end(event evt, int cur_w, int cur_h, int st_w, int st_h, java.lang.Object user_info)
          Handle input corresponding to the end of a grow-drag.
 boolean drag_end(event evt, java.lang.Object user_info)
          End the simple drag of the crosshairs box.
 boolean drag_feedback(event evt, int cur_w, int cur_h, int st_w, int st_h, java.lang.Object user_info)
          Handle feedback corresponding to a grow-drag.
 boolean drag_feedback(event evt, java.lang.Object user_info)
          Movement within a drag of the thumb.
 boolean drag_start(event evt, java.lang.Object user_info)
          Start of a drag for the crosshairs box.
protected  void draw_self_local(drawable d)
          Override draw_self to do a semantic lens.
 void pick(int pt_x, int pt_y, pick_collector pick_list)
          Override pick to just work on handles and let center of lens pass through.
 boolean press(event evt, java.lang.Object user_info)
          Handle mouse button press input to the object by making us either the move-drag or grow-drag focus.
 void set_fixed(boolean b)
           
 void set_show_crosshairs(boolean b)
          Sets whether we show the crosshairs.
 void set_targets(java.util.Vector targets)
          Sets the interactors we are focussed on- not sure what the application for this is, yet, but there may be something interesting, such as an agent that sets the targets to every instance of some class
 boolean show_crosshairs()
          Returns whether we show the crosshairs
 java.util.Vector targets()
          Returns the interactors we are focussed on
 
Methods inherited from class sub_arctic.lib.semantic_lens
boxed, clear_back, drag_end, drag_feedback, drag_start, draw_obj, fixed, get_parent, release, sem_draw_kind, set_boxed, set_clear_back, set_draw_obj, set_title_color, set_title_font, set_title_str, title_color, title_font, title_str
 
Methods inherited from class sub_arctic.lib.base_interactor
active_constraints, add_child, add_user_datum, attach_dependent, bound, callback_obj, child_index, child, clear_child_list, clear_constraint_flag_bit, clear_flag_bit, configure, constraint_flag_is_set, constraint_flag_string, constraint_on, custom_fun1, custom_fun2, damage_fixed, damage_from_child, damage_self, damage_self, damage_self, damage_self, damage_self, detach_dependent, do_action, do_action, do_callback, do_callback, drag_feature_point, draw_children, draw_self, enabled_constraint, enabled, enter_local_coordinates, eval_enabled, eval_h, eval_part_a, eval_part_b, eval_visible, eval_w, eval_x, eval_y, eval, exit_local_coords, feature_point_enabled, feature_point, filter_pt, find_child, first_callback_num, fixed_children, flag_is_set, flag_string, focus_set_enter, focus_set_exit, get_awt_component, get_external_constraint, get_part, get_top_level, get_value, global_to_local, global_to_local, h_constraint, h, handle_cycle, inform_ood, insert_child, inside_bounds, into_local, into_local, into_parent, into_parent, intrinsic_constraints, is_constrained, last_callback_num, local_to_global, local_to_global, mark_all_ood, mark_enabled_ood, mark_h_ood, mark_ood, mark_part_a_ood, mark_part_b_ood, mark_reparented_ood, mark_visible_ood, mark_w_ood, mark_x_ood, mark_y_ood, marked_ood, move_child_downward, move_child_downward, move_child_to_bottom, move_child_to_bottom, move_child_to_top, move_child_to_top, move_child_upward, move_child_upward, move_downward, move_to_bottom, move_to_top, move_upward, new_look_configure, next_sibling, num_actions, num_children, num_feature_points, ood_inform_all, parent, part_a_constraint, part_a, part_b_constraint, part_b, pick_within_children, picked_by, pos, prev_sibling, register_resource_names, remove_child, remove_child, remove_user_datum, restyle_look_resources, restyle, set_callback_obj, set_child_index, set_child, set_constraint_flag_bit, set_constraint_flag_bit, set_constraint, set_constraint, set_enabled_constraint, set_enabled_constraint, set_enabled_constraint, set_enabled, set_flag_bit, set_flag_bit, set_h_constraint, set_h_constraint, set_h_constraint, set_h, set_intrinsic_h, set_intrinsic_size, set_intrinsic_w, set_parent, set_part_a_constraint, set_part_a_constraint, set_part_a_constraint, set_part_a, set_part_b_constraint, set_part_b_constraint, set_part_b_constraint, set_part_b, set_pos, set_pos, set_raw_enabled, set_raw_h, set_raw_part_a, set_raw_part_b, set_raw_visible, set_raw_w, set_raw_x, set_raw_y, set_size, set_style_lock, set_user_info, set_visible_constraint, set_visible_constraint, set_visible_constraint, set_visible, set_w_constraint, set_w_constraint, set_w_constraint, set_w, set_x_constraint, set_x_constraint, set_x_constraint, set_x, set_y_constraint, set_y_constraint, set_y_constraint, set_y, setup_for_children, setup_for_children, setup_for_fixed_children, size, style_change_local, style_change, supports_children, tag_str, toString, traverse_and_collect_children, traverse_and_collect_parent, traverse_and_collect, trivial_reject, trivial_reject, user_data, user_info, value_ood, visible_constraint, visible, w_constraint, w, x_constraint, x_into_local, x_into_parent, x, y_constraint, y_into_local, y_into_parent, y
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

bounds_sem_draw_trav_id

protected static final int bounds_sem_draw_trav_id
unique identifier for bounds_sem_draw traversals

_bounds_sem_draw_kind

protected int _bounds_sem_draw_kind
Identifier for the particular kind of semantic redraw pass being done here.

_targets

protected java.util.Vector _targets
Holds the interactors we are focussed on

_show_crosshairs

protected boolean _show_crosshairs
Holds whether we show the crosshairs

control_palette

protected shrink_wrap_container control_palette

checkbox_column

protected column checkbox_column

hrs

protected h_range_slider hrs

vrs

protected v_range_slider vrs

depth_label

protected label depth_label

child_label

protected label child_label

focus_x

protected int focus_x

focus_y

protected int focus_y

target

protected interactor target
Constructor Detail

grabber_semantic_lens

public grabber_semantic_lens(int xv,
                             int yv,
                             int wv,
                             int hv,
                             interactor_pred draw_action,
                             boolean clr_back,
                             java.lang.String ttl_str,
                             java.awt.Color ttl_color,
                             java.awt.Font ttl_font,
                             int draw_kind)
Full constructor.
Parameters:
int - x x position of the lens
int - y y position of the lens
int - w width of the lens
int - h height of the lens
interactor_pred - draw_action a "predicate" object which does the specialized drawing of an object for this lens
boolean - clr_back do we clear the background before we draw
String - ttl_str title string to be drawn on title drag bar
Color - ttl_color color of title drag bar
Font - ttl_font font to draw title in
int - draw_kind identifier that indicates the kind of semantic redraw that we are doing

grabber_semantic_lens

public grabber_semantic_lens(int xv,
                             int yv,
                             int wv,
                             int hv,
                             interactor_pred draw_action,
                             boolean clr_back,
                             int draw_kind)
Simple constructor with default font and title bar color.
Parameters:
int - x x position of the lens
int - y y position of the lens
int - w width of the lens
int - h height of the lens
interactor_pred - draw_action a "predicate" object which does the specialized drawing of an object for this lens
boolean - clr_back do we clear the background before we draw
int - draw_kind identifier that indicates the kind of semantic redraw that we are doing

grabber_semantic_lens

public grabber_semantic_lens(interactor_pred draw_action,
                             int draw_kind)
Simplest constructor. Defaults to 0,0 : 100x100 with non-cleared background.
Parameters:
interactor_pred - draw_action a "predicate" object which does the specialized drawing of an object for this lens
int - draw_kind identifier that indicates the kind of semantic redraw that we are doing
Method Detail

bounds_sem_draw_kind

public int bounds_sem_draw_kind()
Identifier for the particular kind of semantic redraw pass being done here.
Returns:
int a unique identifier for this kind of redraw.

targets

public java.util.Vector targets()
Returns the interactors we are focussed on

set_targets

public void set_targets(java.util.Vector targets)
Sets the interactors we are focussed on- not sure what the application for this is, yet, but there may be something interesting, such as an agent that sets the targets to every instance of some class

show_crosshairs

public boolean show_crosshairs()
Returns whether we show the crosshairs

set_show_crosshairs

public void set_show_crosshairs(boolean b)
Sets whether we show the crosshairs.

set_fixed

public void set_fixed(boolean b)
Parameters:
Font - fnt the new font to draw with.
Overrides:
set_fixed in class semantic_lens

callback

public void callback(interactor from_obj,
                     event evt,
                     int callback_num,
                     java.lang.Object callback_info)
Specified by:
callback in interface callback_object

pick

public void pick(int pt_x,
                 int pt_y,
                 pick_collector pick_list)
Override pick to just work on handles and let center of lens pass through.
Parameters:
int - pt_x x coordinate of picking point
int - pt_y y coordinate of picking point
pick_collector - pick_list result list
Overrides:
pick in class semantic_lens

press

public boolean press(event evt,
                     java.lang.Object user_info)
Handle mouse button press input to the object by making us either the move-drag or grow-drag focus.
Parameters:
event - evt the press event.
Object - user_info the information associated with this object at pick time.
Returns:
boolean indicating whether the event was consumed.
Overrides:
press in class semantic_lens

drag_start

public boolean drag_start(event evt,
                          java.lang.Object user_info)
Start of a drag for the crosshairs box.
Specified by:
drag_start in interface simple_draggable
Parameters:
event - evt the event that is starting the drag (usually a press).
Object - user_info the object passed to the simple drag_agent
Overrides:
drag_start in class semantic_lens

drag_feedback

public boolean drag_feedback(event evt,
                             java.lang.Object user_info)
Movement within a drag of the thumb.
Specified by:
drag_feedback in interface simple_draggable
Parameters:
event - evt the drag event (mouse move).
Object - user_info the object passed to the simple drag_agent.

drag_end

public boolean drag_end(event evt,
                        java.lang.Object user_info)
End the simple drag of the crosshairs box.
Specified by:
drag_end in interface simple_draggable
Parameters:
event - evt the end of the drag event (mouse release usually).
Object - user_info the object passed to the simple drag_agent.

drag_feedback

public boolean drag_feedback(event evt,
                             int cur_w,
                             int cur_h,
                             int st_w,
                             int st_h,
                             java.lang.Object user_info)
Handle feedback corresponding to a grow-drag.
Parameters:
event - evt the event "causing" the drag.
int - cur_w the current width indicated by the drag.
int - cur_h the current height indicated by the drag.
int - st_w the starting width of this object.
int - st_w the starting height of this object.
Object - user_info the information associated with this object at the point that it requested focus.
Returns:
boolean indicating whether the input was consumed.
Overrides:
drag_feedback in class semantic_lens

drag_end

public boolean drag_end(event evt,
                        int cur_w,
                        int cur_h,
                        int st_w,
                        int st_h,
                        java.lang.Object user_info)
Handle input corresponding to the end of a grow-drag.
Parameters:
event - evt the event "causing" the drag.
int - cur_w the current width indicated by the drag.
int - cur_h the current height indicated by the drag.
int - st_w the starting width of this object.
int - st_w the starting height of this object.
Object - user_info the information associated with this object at the point that it requested focus.
Returns:
boolean indicating whether the input was consumed.
Overrides:
drag_end in class semantic_lens

draw_self_local

protected void draw_self_local(drawable d)
Override draw_self to do a semantic lens. This works by going up one level to the parent, then doing a sem_draw traversal from there down. the sem_draw traversal draws a semantically modified rendition of the sub-tree on our drawable.

Note, this drawing is done inside our bounds, but the drawing corresponding to each individual object found in the traversal starting from our parent is not limited to their bounds. This requires special processing in damage_self within our parent.

Parameters:
drawable - d the drawing surface we draw on.
Overrides:
draw_self_local in class semantic_lens
See Also:
semantic_draw_parent, sem_draw_context, sem_draw_continue, sem_draw_to_child, base_interactor.traverse_and_collect(int, int, sub_arctic.lib.interactor_pred, sub_arctic.lib.interactor_pred, sub_arctic.lib.traversal_xform, java.lang.Object, sub_arctic.input.pick_collector)