sub_arctic.lib
Class backdrop_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.bounds_semantic_lens
                                |
                                +--sub_arctic.lib.backdrop_lens

public class backdrop_lens
extends bounds_semantic_lens

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).

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  loaded_image _backdrop
           
protected  boolean _boxed
          If this variable is set, the interactor has a box around it.
protected  boolean _clear_back
          Indication of whether we clear our background first, or draw over the top of the objects that were drawn before us.
protected  interactor_pred _draw_obj
          The "predicate" object that does the specialized drawing for this lens.
protected  boolean _fixed
           
protected  int _sem_draw_kind
          Identifier for the particular kind of semantic redraw pass being done here.
protected  java.awt.Color _title_color
          Color we do our title handle in.
protected  java.awt.Font _title_font
          Font we draw title handle in
protected  java.lang.String _title_str
          Title string
protected static int backdrop_draw_trav_id
          unique identifier for sem_draw traversals
protected  java.awt.FontMetrics metrics
          FontMetrics object for the current font
protected  java.applet.Applet our_applet
           
 
Fields inherited from class sub_arctic.lib.bounds_semantic_lens
_bounds_sem_draw_kind, bounds_sem_draw_trav_id, checkbox_column, child_label, control_palette, depth_label, hrs, 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
backdrop_lens(interactor_pred draw_action, int draw_kind, loaded_image img, java.applet.Applet appl)
          Simplest constructor.
backdrop_lens(int xv, int yv, int wv, int hv, interactor_pred draw_action, boolean clr_back, int draw_kind, loaded_image img, java.applet.Applet appl)
          Simple constructor with default font and title bar color.
backdrop_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, loaded_image img, java.applet.Applet appl)
          Full constructor.
 
Method Summary
 loaded_image backdrop()
           
 boolean boxed()
          Return whether or not the interactor has a box around it.
 boolean clear_back()
          Indication of whether we clear our background first, or draw over the top of the objects that were drawn before us.
 boolean drag_end(event evt, int x_pos, int y_pos, int start_x, int start_y, int grab_x, int grab_y, java.lang.Object user_info)
          Handle input corresponding to the end of a move-drag.
 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_feedback(event evt, int x_pos, int y_pos, int start_x, int start_y, int grab_x, int grab_y, java.lang.Object user_info)
          Handle a movement during a move-drag.
 boolean drag_feedback(event evt, int cur_w, int cur_h, int st_w, int st_h, java.lang.Object user_info)
          Handle a movement during a grow-drag.
 boolean drag_start(event evt, int xv, int yv, int gx, int gy, java.lang.Object user_info)
          Handle the start of a move-drag to the object.
 boolean drag_start(event evt, java.lang.Object user_info)
          Handle the start of a grow-drag to the object.
 interactor_pred draw_obj()
          The "predicate" object that does the specialized drawing for this lens.
protected  void draw_self_local(drawable d)
          Override draw_self to do a semantic lens.
 boolean fixed()
           
 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.
 boolean release(event evt, java.lang.Object user_info)
          Companion to press -- here we ignore the releases.
 int sem_draw_kind()
          Identifier for the particular kind of semantic redraw pass being done here.
 void set_backdrop_source(java.lang.String source)
           
 void set_backdrop(loaded_image backdrop)
           
 void set_boxed(boolean b)
          Control whether or not the interactor has a box around it.
 void set_clear_back(boolean v)
          Set whether we clear our background first, or draw over the top of the objects that were drawn before us.
 void set_draw_obj(interactor_pred dobj)
          Set the "predicate" object that does the specialized drawing for this lens.
 void set_fixed(boolean b)
           
 void set_title_color(java.awt.Color c)
          Set color we do our title handle in.
 void set_title_font(java.awt.Font fnt)
          Set font we draw title handle in.
 void set_title_str(java.lang.String str)
          Set title string.
 java.awt.Color title_color()
          Color we do our title handle in.
 java.awt.Font title_font()
          Font we draw title handle in.
 java.lang.String title_str()
          Title string.
 
Methods inherited from class sub_arctic.lib.bounds_semantic_lens
bounds_sem_draw_kind, callback
 
Methods inherited from class sub_arctic.lib.semantic_lens
get_parent
 
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

backdrop_draw_trav_id

protected static final int backdrop_draw_trav_id
unique identifier for sem_draw traversals

_boxed

protected boolean _boxed
If this variable is set, the interactor has a box around it.

_clear_back

protected boolean _clear_back
Indication of whether we clear our background first, or draw over the top of the objects that were drawn before us.

_draw_obj

protected interactor_pred _draw_obj
The "predicate" object that does the specialized drawing for this lens. This object must be expecting a sem_draw_context object for a parameter, and should normally return false in all cases.
See Also:
sem_draw_context

_title_str

protected java.lang.String _title_str
Title string

_title_color

protected java.awt.Color _title_color
Color we do our title handle in.

_fixed

protected boolean _fixed

_title_font

protected java.awt.Font _title_font
Font we draw title handle in

metrics

protected java.awt.FontMetrics metrics
FontMetrics object for the current font

_backdrop

protected loaded_image _backdrop

_sem_draw_kind

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

our_applet

protected java.applet.Applet our_applet
Constructor Detail

backdrop_lens

public backdrop_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,
                     loaded_image img,
                     java.applet.Applet appl)
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

backdrop_lens

public backdrop_lens(int xv,
                     int yv,
                     int wv,
                     int hv,
                     interactor_pred draw_action,
                     boolean clr_back,
                     int draw_kind,
                     loaded_image img,
                     java.applet.Applet appl)
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

backdrop_lens

public backdrop_lens(interactor_pred draw_action,
                     int draw_kind,
                     loaded_image img,
                     java.applet.Applet appl)
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

boxed

public boolean boxed()
Return whether or not the interactor has a box around it.
Returns:
boolean true if the row has a box around it
Overrides:
boxed in class semantic_lens

set_boxed

public void set_boxed(boolean b)
Control whether or not the interactor has a box around it.
Parameters:
boolean - b new state of boxedness
Overrides:
set_boxed in class semantic_lens

clear_back

public boolean clear_back()
Indication of whether we clear our background first, or draw over the top of the objects that were drawn before us.
Returns:
boolean indicating whether we clear our background.
Overrides:
clear_back in class semantic_lens

set_clear_back

public void set_clear_back(boolean v)
Set whether we clear our background first, or draw over the top of the objects that were drawn before us.
Parameters:
boolean - v indicating whether we should clear our background.
Overrides:
set_clear_back in class semantic_lens

draw_obj

public interactor_pred draw_obj()
The "predicate" object that does the specialized drawing for this lens. This object must be expecting a sem_draw_context object for a parameter, and should normally return false in all cases.
Returns:
interactor_pred the current predicate.
Overrides:
draw_obj in class semantic_lens
See Also:
sem_draw_context

set_draw_obj

public void set_draw_obj(interactor_pred dobj)
Set the "predicate" object that does the specialized drawing for this lens. This object must be expecting a sem_draw_context object for a parameter, and should normally return false in all cases.
Parameters:
interactor_pred - dobj the drawing "predicate" object.
Overrides:
set_draw_obj in class semantic_lens

title_str

public java.lang.String title_str()
Title string.
Returns:
String the current title string.
Overrides:
title_str in class semantic_lens

set_title_str

public void set_title_str(java.lang.String str)
Set title string.
Parameters:
String - str the new title string.
Overrides:
set_title_str in class semantic_lens

title_color

public java.awt.Color title_color()
Color we do our title handle in.
Returns:
Color the color.
Overrides:
title_color in class semantic_lens

set_title_color

public void set_title_color(java.awt.Color c)
Set color we do our title handle in.
Parameters:
Color - c the new color for out title handle.
Overrides:
set_title_color in class semantic_lens

fixed

public boolean fixed()
Returns:
boolean whether our size and position are fixed or not.
Overrides:
fixed in class semantic_lens

set_fixed

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

title_font

public java.awt.Font title_font()
Font we draw title handle in.
Returns:
Font the font.
Overrides:
title_font in class semantic_lens

set_title_font

public void set_title_font(java.awt.Font fnt)
Set font we draw title handle in.
Parameters:
Font - fnt the new font to draw with.
Overrides:
set_title_font in class semantic_lens

backdrop

public loaded_image backdrop()

set_backdrop

public void set_backdrop(loaded_image backdrop)

set_backdrop_source

public void set_backdrop_source(java.lang.String source)

sem_draw_kind

public int 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.
Overrides:
sem_draw_kind in class semantic_lens

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 bounds_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 bounds_semantic_lens

release

public boolean release(event evt,
                       java.lang.Object user_info)
Companion to press -- here we ignore the releases.
Parameters:
event - evt the release event.
Object - user_info information associated with this object at pick time.
Returns:
boolean indicating whether we consumed this input (here always false).
Overrides:
release in class semantic_lens

drag_start

public boolean drag_start(event evt,
                          int xv,
                          int yv,
                          int gx,
                          int gy,
                          java.lang.Object user_info)
Handle the start of a move-drag to the object.
Parameters:
event - evt the event "causing" the drag.
int - xv the x location of the object at start of drag (in parent's coordinates).
int - yv the y location of the object at start of drag (in parent's coordinates).
int - gx initial grab location within the object.
int - gy initial grab location within the object.
Object - user_info the information associated with this object when it requested drag focus.
Returns:
boolean indicating whether the input was consumed.
Overrides:
drag_start in class semantic_lens

drag_feedback

public boolean drag_feedback(event evt,
                             int x_pos,
                             int y_pos,
                             int start_x,
                             int start_y,
                             int grab_x,
                             int grab_y,
                             java.lang.Object user_info)
Handle a movement during a move-drag. Here we just set our position to follow the event location.
Parameters:
event - evt the event "causing" the drag.
int - x_pos the x position this object should move to.
int - y_pos the y position this object should move to.
int - start_x the x location of the object at start of drag (in parent's coordinates).
int - start_x the y location of the object at start of drag (in parent's coordinates).
int - grab_x initial grab location within the object.
int - grab_y initial grab location within the object.
Object - user_info the information associated with this object when it requested drag 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 x_pos,
                        int y_pos,
                        int start_x,
                        int start_y,
                        int grab_x,
                        int grab_y,
                        java.lang.Object user_info)
Handle input corresponding to the end of a move-drag. In addition to normal dragging, we force the object back inside its parent if it is too far outside.
Parameters:
event - evt the event "causing" the drag.
int - x_pos the x position this object should move to.
int - y_pos the y position this object should move to.
int - start_x the x location of the object at start of drag (in parent's coordinates).
int - start_x the y location of the object at start of drag (in parent's coordinates).
int - grab_x initial grab location within the object.
int - grab_y initial grab location within the object.
Object - user_info the information associated with this object when it requested drag focus.
Returns:
boolean indicating whether the input was consumed.
Overrides:
drag_end in class semantic_lens

drag_start

public boolean drag_start(event evt,
                          java.lang.Object user_info)
Handle the start of a grow-drag to the object.
Parameters:
event - evt the event "causing" the drag.
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_start in class semantic_lens

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 a movement during a grow-drag. Here we just set our size to follow the drag, but don't go smaller than 30x30.
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 bounds_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)