sub_arctic.lib
Class percent_parent

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

public class percent_parent
extends base_parent_interactor

This object implements a parent which will allow any number of its children to register with it to stay at a certain percentage of of its width. Children which don't register with the parent to participant are not positioned in any way ("floaters"). The percentages expressed are relative to the upper left corner of the positioned object.


Field Summary
protected  java.util.Hashtable _height_dict
          This is where we keep track of the height percentages.
protected  java.util.Hashtable _width_dict
          This is where we keep track of the width percentages.
protected  java.util.Hashtable _x_dict
          This is where we keep track of the x percentages.
protected  java.util.Hashtable _y_dict
          This is where we keep track of the y percentages.
 
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
percent_parent()
          Construct a percent parent interactor.
percent_parent(int x, int y)
          Construct a percent parent interactor.
percent_parent(int x, int y, int w, int h)
          Construct a percent parent interactor with both a position and a size.
 
Method Summary
 void add_child_at_x(interactor chld, double per)
          Add a child at an x coordinate that is a given percentage of the width.
 void add_child_at_y(interactor chld, double per)
          Add a child at an y coordinate that is a given percentage of the height.
 void add_child(interactor chld, double x, double y)
          Add a child a fixed percentage of both the width and the height for its x and y coordinates.
 void configure()
          Override the configure pass to allow us to change the positions of the children.
 void position_children()
          Do a recalculation of the children's position.
 void set_height_percentage(interactor chld, double per)
          Set a given child's height as a percentage of this object's height.
 void set_width_percentage(interactor chld, double per)
          Set a given child's width as a percentage of this object's width.
 void set_x_percentage(interactor chld, double per)
          Set a given child's x coordinate as a percentage of width.
 void set_y_percentage(interactor chld, double per)
          Set a given child's y coord at a percentage of height.
 double x_percentage(interactor c)
          Return the percentage of width (x percentage) of a child of this interactor.
 double y_percentage(interactor c)
          Return the percentage of height (y percentage) of a child of this interactor.
 
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, 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_local, 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, pick, 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

_x_dict

protected java.util.Hashtable _x_dict
This is where we keep track of the x percentages.

_y_dict

protected java.util.Hashtable _y_dict
This is where we keep track of the y percentages.

_width_dict

protected java.util.Hashtable _width_dict
This is where we keep track of the width percentages.

_height_dict

protected java.util.Hashtable _height_dict
This is where we keep track of the height percentages.
Constructor Detail

percent_parent

public percent_parent(int x,
                      int y)
Construct a percent parent interactor. This assumes you are going to control its width and height with constraints or directly set them.
Parameters:
int - x the x position of this object.
int - y the y position of this object.
Throws:
general - PROPAGATED

percent_parent

public percent_parent(int x,
                      int y,
                      int w,
                      int h)
Construct a percent parent interactor with both a position and a size.
Parameters:
int - x the x position of this object.
int - y the y position of this object.
int - w the width of this object.
int - h the height of this object.
Throws:
general - PROPAGATED

percent_parent

public percent_parent()
Construct a percent parent interactor. This assumes you will either directly set or use constraints for position and size.
Throws:
general - PROPAGATED
Method Detail

add_child_at_x

public void add_child_at_x(interactor chld,
                           double per)
Add a child at an x coordinate that is a given percentage of the width. The percentage should be in the range 0.0 to 1.0.
Parameters:
interactor - chld the new child to add.
double - per the percent of the width to fix that child at.
Throws:
general -  

set_x_percentage

public void set_x_percentage(interactor chld,
                             double per)
Set a given child's x coordinate as a percentage of width. If this child is already at a different location, this changes the value.
Parameters:
interactor - chld the child to change.
double - per the percentage of the width to place that child at.
Throws:
cannot_assign - is thrown if this object is not allowed to have its X position modified (most likely its constrained).
general - PROPAGATED

add_child_at_y

public void add_child_at_y(interactor chld,
                           double per)
Add a child at an y coordinate that is a given percentage of the height. The percentage should be in the range 0.0 to 1.0.
Parameters:
interactor - chld the new child to add.
double - per the percent of the height to fix that child at.
Throws:
general - PROPAGATED

set_y_percentage

public void set_y_percentage(interactor chld,
                             double per)
Set a given child's y coord at a percentage of height. If this child is already at a different percentage of height, this changes the value.
Parameters:
interactor - chld the child to change
double - per the percentage of the height to place that child at.
Throws:
cannot_assign - is thrown if this object is not allowed to have its Y position modified (most likely its constrained).
general - PROPAGATED

set_width_percentage

public void set_width_percentage(interactor chld,
                                 double per)
Set a given child's width as a percentage of this object's width. If this child is already at a different width, this changes the value.
Parameters:
interactor - chld the child to change
double - per the percentage of the width for this child
Throws:
cannot_assign - is thrown if this object is not allowed to have its width modified (most likely it's constrained).
general - PROPAGATED

set_height_percentage

public void set_height_percentage(interactor chld,
                                  double per)
Set a given child's height as a percentage of this object's height. If this child is already at a different height, this changes the value.
Parameters:
interactor - chld the child to change.
double - per the percentage of the width to place that child at.
Throws:
cannot_assign - is thrown if this object is not allowed to have its height modified (most likely it's constrained).
general - PROPAGATED

position_children

public void position_children()
Do a recalculation of the children's position.

configure

public void configure()
Override the configure pass to allow us to change the positions of the children.
Overrides:
configure in class base_interactor

add_child

public void add_child(interactor chld,
                      double x,
                      double y)
Add a child a fixed percentage of both the width and the height for its x and y coordinates.
Parameters:
interactor - chld the new child to add.
double - x the percent of the width to fix that child's x position at.
double - y the percent of the width to fix that child's y position at.
Throws:
general - PROPAGATED

x_percentage

public double x_percentage(interactor c)
Return the percentage of width (x percentage) of a child of this interactor. If you ask about an object which is not in this interactor's child list and/or is not a child which has a percentage set you'll get a value of -1.0. All valid children return values in the range 0.0 to 1.0
Parameters:
interactor - c the child to check on.
Returns:
double the width value for this child (or -1.0)

y_percentage

public double y_percentage(interactor c)
Return the percentage of height (y percentage) of a child of this interactor. If you ask about an object which is not in this interactor's child list and/or is not a child which has a percentage set you'll get a value of -1.0. All valid children return values in the range 0.0 to 1.0
Parameters:
interactor - c the child to check on.
Returns:
double the width value for this child (or -1.0).