sub_arctic.lib
Class line_display

java.lang.Object
  |
  +--sub_arctic.lib.min_interactor
        |
        +--sub_arctic.lib.base_interactor
              |
              +--sub_arctic.lib.line_display

public class line_display
extends base_interactor

Class to display a line with optional arrowheads. Note: the presence of the arrowheads makes it that case that the endpoints of the line are not necessarily at the corners of the bounding box (consider, for example, a horizontal line). This unfortunately makes use of the line with constraints still a bit problematical.


Field Summary
protected  int _arrow_head_angle
          The angle (in degrees) between each of the arrowhead lines and the line itself.
protected  int _arrow_head_length
          The length of the edges of the arrowhead lines.
protected  java.awt.Point line_end
          Record of line end point.
protected  java.awt.Point line_start
          Record of line start point.
protected static int NEG_DIAG
          Interactor flag bit to indicate if line is negatively sloped: 0,0 -> w,h [true] or positively sloped: 0,h -> w,0 [false].
 
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
line_display(int x1, int y1, int x2, int y2, int arrowheads)
          Constructor with arrowhead defaults.
line_display(int x1, int y1, int x2, int y2, int arrowheads, int l, int a)
          Full constructor.
 
Method Summary
 int arrow_head_angle()
          The angle (in degrees) between each of the arrowhead lines and the line itself.
 int arrow_head_length()
          The length of the edges of the arrowhead lines.
 int arrow_heads()
          Number of arrowheads.
 void draw_self_local(drawable d)
          Draw the image of the line
 boolean neg_diag()
          Indicate if line is negatively sloped (i.e., to be interpreted as 0,0 -> w,h rather than 0,h -> w,0).
static java.util.Vector phase2(double radius, int length, int angle)
          phase 2 computes the locations of the points given that the arrow was along the x axis, pointing right.
 void set_arrow_head_angle(int a)
          Set the angle (in degrees) between each of the arrowhead lines and the line itself.
 void set_arrow_head_length(int l)
          Set the length of the edges of the arrowhead lines.
 void set_arrow_heads(int h)
          Set the number of arrowheads.
 void set_coords(int x1, int y1, int x2, int y2)
          Set the position of the line.
 int x1()
          Return x1 in parent's coordinate system.
 int x2()
          Return x2 in parent's coordinate system.
 int y1()
          Return y1 in parent's coordinate system.
 int y2()
          Return y2 in parent's coordinate system.
 
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, 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

NEG_DIAG

protected static final int NEG_DIAG
Interactor flag bit to indicate if line is negatively sloped: 0,0 -> w,h [true] or positively sloped: 0,h -> w,0 [false]. This is computed dynamically as the x1,y1, x2,y2 coordinates of the line are set. (The proper value is computed as (y2 > y1)==(x2 > x1)).

line_start

protected java.awt.Point line_start
Record of line start point.

line_end

protected java.awt.Point line_end
Record of line end point.

_arrow_head_length

protected int _arrow_head_length
The length of the edges of the arrowhead lines.

_arrow_head_angle

protected int _arrow_head_angle
The angle (in degrees) between each of the arrowhead lines and the line itself.
Constructor Detail

line_display

public line_display(int x1,
                    int y1,
                    int x2,
                    int y2,
                    int arrowheads)
Constructor with arrowhead defaults.
Parameters:
int - x1 x1 coordinate of the line.
int - y1 y1 coordinate of the line.
int - x2 x2 coordinate of the line.
int - y2 y2 coordinate of the line.
int - arrowheads the number of arrowheads to draw (must be 0,1, or 2).

line_display

public line_display(int x1,
                    int y1,
                    int x2,
                    int y2,
                    int arrowheads,
                    int l,
                    int a)
Full constructor.
Parameters:
int - x1 x1 coordinate of the line.
int - y1 y1 coordinate of the line.
int - x2 x2 coordinate of the line.
int - y2 y2 coordinate of the line.
int - arrowheads the number of arrowheads to draw (must be 0,1, or 2).
Method Detail

neg_diag

public boolean neg_diag()
Indicate if line is negatively sloped (i.e., to be interpreted as 0,0 -> w,h rather than 0,h -> w,0).
Returns:
boolean indicating negative slope.

x1

public int x1()
Return x1 in parent's coordinate system. Note, coordinates may be switched to maintain canonical form (i.e. what was originally set as x2 may be reported as x1). Note this is the x1() position of the line, the bound of the interactor object may extend a little further to make room for an arrowhead.
Returns:
int x1 coordinate for the line.

y1

public int y1()
Return y1 in parent's coordinate system. Note, coordinates may be switched to maintain canonical form (i.e. what was originally set as y2 may be reported as y1). Note this is the y1() position of the line, the bound of the interactor object may extend a little further to make room for an arrowhead.
Returns:
int y1 coordinate for the line.

x2

public int x2()
Return x2 in parent's coordinate system. Note, coordinates may be switched to maintain canonical form (i.e. what was originally set as x2 may be reported as x1). Note this is the x2() position of the line, the bound of the interactor object may extend a little further to make room for an arrowhead.
Returns:
int x2 coordinate for the line.

y2

public int y2()
Return y2 in parent's coordinate system. Note, coordinates may be switched to maintain canonical form (i.e. what was originally set as y2 may be reported as y1). Note this is the x1() position of the line, the bound of the interactor object may extend a little further to make room an arrowhead.
Returns:
int x2 coordinate for the line.

set_coords

public void set_coords(int x1,
                       int y1,
                       int x2,
                       int y2)
Set the position of the line. Note, because of internal canonicalization, the line may switch endpoints and later report what is given here as x1,y1 as x2,y2, and visa versa.
Parameters:
int - x1 x1 coordinate of the line (in parent's coordinate system).
int - y1 y1 coordinate of the line (in parent's coordinate system).
int - x1 x1 coordinate of the line (in parent's coordinate system).
int - y1 y1 coordinate of the line (in parent's coordinate system).

draw_self_local

public void draw_self_local(drawable d)
Draw the image of the line
Overrides:
draw_self_local in class base_interactor

set_arrow_heads

public void set_arrow_heads(int h)
Set the number of arrowheads. This must be 0, 1, or 2.
Parameters:
int - h number of arrowheads on this line.

arrow_heads

public int arrow_heads()
Number of arrowheads.
Returns:
int the number of arrowheads on this line.

arrow_head_length

public int arrow_head_length()
The length of the edges of the arrowhead lines.
Returns:
int the length of the edges of the arrowhead lines.

set_arrow_head_length

public void set_arrow_head_length(int l)
Set the length of the edges of the arrowhead lines.
Parameters:
int - l the length of the edges of the arrowhead lines.

arrow_head_angle

public int arrow_head_angle()
The angle (in degrees) between each of the arrowhead lines and the line itself.
Returns:
int angle (in degrees) between arrowhead lines and the line itself.

set_arrow_head_angle

public void set_arrow_head_angle(int a)
Set the angle (in degrees) between each of the arrowhead lines and the line itself.
Parameters:
int - a angle (in degrees) between arrowhead lines and the line itself.

phase2

public static java.util.Vector phase2(double radius,
                                      int length,
                                      int angle)
phase 2 computes the locations of the points given that the arrow was along the x axis, pointing right. We know the length, so we rotate about the endpoint.