sub_arctic.lib
Class snap_container

java.lang.Object
  |
  +--sub_arctic.lib.min_interactor
        |
        +--sub_arctic.lib.base_interactor
              |
              +--sub_arctic.lib.base_parent_interactor
                    |
                    +--sub_arctic.lib.shrink_wrap_container
                          |
                          +--sub_arctic.lib.drag_container
                                |
                                +--sub_arctic.lib.snap_container

public class snap_container
extends drag_container
implements snap_draggable

This is a subclass of drag_container which does snapping behavior. Snapping is controlled by a set of feature points within a dragged object. This container advertises all the feature points of all its children as its own. See the snap-drag agent for full details on how snapping works.

See Also:
snap_drag_agent, snap_draggable, snap_targetable

Fields inherited from class sub_arctic.lib.drag_container
_callback_obj, DO_BB_FEEDBACK, DOING_DRAG, END_MOVE_CALLBACK, MOVE_CALLBACK
 
Fields inherited from class sub_arctic.lib.shrink_wrap_container
_border, DRAW_BORDER
 
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
snap_container(int x, int y, boolean do_bb_feedback)
          Full constructor.
 
Method Summary
 boolean anti_snap_feedback(event evt, java.awt.Point orig_pt, java.awt.Point snap_pt, int feature_pt_indx, snap_targetable target_obj, java.lang.Object anti_snap_info, java.lang.Object user_info)
          Perform feedback while an anti-snap is active.
 boolean anti_snap_to(event evt, java.awt.Point orig_pt, java.awt.Point snap_pt, int feature_pt_indx, snap_targetable target_obj, java.lang.Object anti_snap_info, java.lang.Object user_info)
          Indicate that the object should anti-snap to a given target object.
 boolean feature_point_enabled(int indx)
          Report a feature point enable status out of our children.
 java.awt.Point feature_point(int indx)
          Report a feature point out of our children.
 int num_feature_points()
          Report number of feature points as sum of visible children's feature points.
 boolean press(event evt, java.lang.Object user_info)
          Handle mouse button press input to the object.
 boolean snap_feedback(event evt, java.awt.Point orig_pt, java.awt.Point snap_pt, int feature_pt_indx, snap_targetable target_obj, java.lang.Object user_info)
          Perform feedback while a snap is active.
 boolean snap_to(event evt, java.awt.Point orig_pt, java.awt.Point snap_pt, int feature_pt_indx, snap_targetable target_obj, java.lang.Object user_info)
          Indicate that the object should snap to a given target object.
 boolean unanti_snap_to(event evt, java.awt.Point orig_pt, java.awt.Point snap_pt, int feature_pt_indx, snap_targetable target_obj, java.lang.Object anti_snap_info, java.lang.Object user_info)
          Indicate that the object is no longer anti-snapped to a given target object.
 boolean unsnap_to(event evt, java.awt.Point orig_pt, java.awt.Point snap_pt, int feature_pt_indx, snap_targetable target_obj, java.lang.Object user_info)
          Indicate that the object is no longer snapped to a given target object.
 
Methods inherited from class sub_arctic.lib.drag_container
bounding_box_feedback, callback_obj, drag_end, drag_feedback, drag_start, draw_self_local, first_callback_num, last_callback_num, pick, release, set_bounding_box_feedback, set_callback_obj
 
Methods inherited from class sub_arctic.lib.shrink_wrap_container
border, draw_border, set_border, set_draw_border, setup_constraints
 
Methods inherited from class sub_arctic.lib.base_interactor
active_constraints, add_child, add_user_datum, attach_dependent, bound, 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, filter_pt, find_child, 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, 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, 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_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
 

Constructor Detail

snap_container

public snap_container(int x,
                      int y,
                      boolean do_bb_feedback)
Full constructor.
Parameters:
int - x initial x position of the container.
int - y initial y position of the container.
boolean - do_bb_feedback do we do bounding box drag feedback.
Method Detail

press

public boolean press(event evt,
                     java.lang.Object user_info)
Handle mouse button press input to the object. Here, we start dragging.
Parameters:
event - evt the press event.
Object - user_info the information associated with this object at pick time.
Returns:
boolean indicating whether we have consumed this event.
Overrides:
press in class drag_container

num_feature_points

public int num_feature_points()
Report number of feature points as sum of visible children's feature points.
Returns:
int number of feature points we advertise.
Overrides:
num_feature_points in class base_interactor

feature_point

public java.awt.Point feature_point(int indx)
Report a feature point out of our children. Our feature point indexes are based on placing the first child's indexes after the zeroth, etc.
Parameters:
int - indx the feature point being asked for.
Returns:
Point the feature point requested or 0,0 if index is out of range.
Overrides:
feature_point in class base_interactor

feature_point_enabled

public boolean feature_point_enabled(int indx)
Report a feature point enable status out of our children. Our feature point indexes are based on placing the first child's indexes after the zeroth, etc.
Parameters:
int - indx the index of the feature point we are enquiring about.
Returns:
boolean indicating whether that feature point is enabled (we will always return false of index out of bounds).
Overrides:
feature_point_enabled in class base_interactor

snap_to

public boolean snap_to(event evt,
                       java.awt.Point orig_pt,
                       java.awt.Point snap_pt,
                       int feature_pt_indx,
                       snap_targetable target_obj,
                       java.lang.Object user_info)
Indicate that the object should snap to a given target object. Here we move the object to the snap point.
Specified by:
snap_to in interface snap_draggable
Parameters:
event - evt the event "causing" the snap.
Point - orig_pt where this object would be without the snap.
Point - snap_pt where this object is with the snap.
int - feature_pt_indx the feature point of this object that we are snapping with.
snap_targetable - target_obj the target object we are snapping to.
Object - user_info the user info for this input.
Returns:
boolean indicating if the input has been consumed.

snap_feedback

public boolean snap_feedback(event evt,
                             java.awt.Point orig_pt,
                             java.awt.Point snap_pt,
                             int feature_pt_indx,
                             snap_targetable target_obj,
                             java.lang.Object user_info)
Perform feedback while a snap is active. Here we do nothing.
Specified by:
snap_feedback in interface snap_draggable
Parameters:
event - evt the event "causing" the snap.
Point - orig_pt where this object would be without the snap.
Point - snap_pt where this object is with the snap.
int - feature_pt_indx the feature point of this object that we are snapping with.
snap_targetable - target_obj the target object we are snapping to.
Object - user_info the user info for this input.
Returns:
boolean indicating if the input has been consumed.

unsnap_to

public boolean unsnap_to(event evt,
                         java.awt.Point orig_pt,
                         java.awt.Point snap_pt,
                         int feature_pt_indx,
                         snap_targetable target_obj,
                         java.lang.Object user_info)
Indicate that the object is no longer snapped to a given target object. Here we return the object to its nominal position.
Specified by:
unsnap_to in interface snap_draggable
Parameters:
event - evt the event "causing" the unsnap.
Point - orig_pt where this object should be without the snap.
Point - snap_pt where this object was with the snap.
int - feature_pt_indx the feature point of this object that we were snapping with.
snap_targetable - target_obj the target object we were snapping to.
Object - user_info the user info for this input.
Returns:
boolean indicating if the input has been consumed.

anti_snap_to

public boolean anti_snap_to(event evt,
                            java.awt.Point orig_pt,
                            java.awt.Point snap_pt,
                            int feature_pt_indx,
                            snap_targetable target_obj,
                            java.lang.Object anti_snap_info,
                            java.lang.Object user_info)
Indicate that the object should anti-snap to a given target object. Here we just move the object to the anti-snap position.
Specified by:
anti_snap_to in interface snap_draggable
Parameters:
event - evt the event "causing" the anti-snap.
Point - orig_pt where this object would be without the anti-snap.
Point - snap_pt where this object is with the anti-snap.
int - feature_pt_indx the feature point of this object that we are anti-snapping with.
snap_targetable - target_obj the target object we are anti-snapping to.
Object - user_info the user info for this input.
Returns:
boolean indicating if the input has been consumed.

anti_snap_feedback

public boolean anti_snap_feedback(event evt,
                                  java.awt.Point orig_pt,
                                  java.awt.Point snap_pt,
                                  int feature_pt_indx,
                                  snap_targetable target_obj,
                                  java.lang.Object anti_snap_info,
                                  java.lang.Object user_info)
Perform feedback while an anti-snap is active. Here we do nothing.
Specified by:
anti_snap_feedback in interface snap_draggable
Parameters:
event - evt the event "causing" the anti-snap.
Point - orig_pt where this object would be without the anti-snap.
Point - snap_pt where this object is with the anti-snap.
int - feature_pt_indx the feature point of this object that we are anti-snapping with.
snap_targetable - target_obj the target object we are anti-snapping to.
Object - user_info the user info for this input.
Returns:
boolean indicating if the input has been consumed.

unanti_snap_to

public boolean unanti_snap_to(event evt,
                              java.awt.Point orig_pt,
                              java.awt.Point snap_pt,
                              int feature_pt_indx,
                              snap_targetable target_obj,
                              java.lang.Object anti_snap_info,
                              java.lang.Object user_info)
Indicate that the object is no longer anti-snapped to a given target object. Here we just move back to our nominal position.
Specified by:
unanti_snap_to in interface snap_draggable
Parameters:
event - evt the event "causing" the unanti-snap.
Point - orig_pt where this object should be without the anti-snap.
Point - snap_pt where this object was with the anti-snap.
int - feature_pt_indx the feature point of this object that we were anti-snapping with.
snap_targetable - target_obj the target object we were anti-snapping to.
Object - user_info the user info for this input.
Returns:
boolean indicating if the input has been consumed.