|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--sub_arctic.lib.min_interactor | +--sub_arctic.lib.base_interactor | +--sub_arctic.lib.base_parent_interactor | +--sub_arctic.lib.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).
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 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 java.awt.FontMetrics |
metrics
FontMetrics object for the current font |
protected static int |
sem_draw_trav_id
unique identifier for sem_draw traversals |
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 | |
semantic_lens(interactor_pred draw_action,
int draw_kind)
Simplest constructor. |
|
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. |
|
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 | |
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()
|
interactor |
get_parent()
|
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_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 java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
wait,
wait,
wait |
Field Detail |
protected static final int sem_draw_trav_id
protected boolean _boxed
protected boolean _clear_back
protected interactor_pred _draw_obj
sem_draw_context
protected java.lang.String _title_str
protected java.awt.Color _title_color
protected boolean _fixed
protected java.awt.Font _title_font
protected java.awt.FontMetrics metrics
protected int _sem_draw_kind
Constructor Detail |
public 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)
int
- x x position of the lensint
- y y position of the lensint
- w width of the lensint
- h height of the lensinteractor_pred
- draw_action a "predicate" object which does the
specialized drawing of an object for this lensboolean
- clr_back do we clear the background before we drawString
- ttl_str title string to be drawn on title drag barColor
- ttl_color color of title drag barFont
- ttl_font font to draw title inint
- draw_kind identifier that indicates the kind of semantic
redraw that we are doingpublic semantic_lens(int xv, int yv, int wv, int hv, interactor_pred draw_action, boolean clr_back, int draw_kind)
int
- x x position of the lensint
- y y position of the lensint
- w width of the lensint
- h height of the lensinteractor_pred
- draw_action a "predicate" object which does the
specialized drawing of an object for this lensboolean
- clr_back do we clear the background before we drawint
- draw_kind identifier that indicates the kind of semantic
redraw that we are doingpublic semantic_lens(interactor_pred draw_action, int draw_kind)
interactor_pred
- draw_action a "predicate" object which does the
specialized drawing of an object for this lensint
- draw_kind identifier that indicates the kind of semantic
redraw that we are doingMethod Detail |
public boolean boxed()
public void set_boxed(boolean b)
boolean
- b new state of boxednesspublic boolean clear_back()
public void set_clear_back(boolean v)
boolean
- v indicating whether we should clear our background.public interactor_pred draw_obj()
sem_draw_context
public void set_draw_obj(interactor_pred dobj)
interactor_pred
- dobj the drawing "predicate" object.public java.lang.String title_str()
public void set_title_str(java.lang.String str)
String
- str the new title string.public java.awt.Color title_color()
public void set_title_color(java.awt.Color c)
Color
- c the new color for out title handle.public boolean fixed()
public void set_fixed(boolean b)
Font
- fnt the new font to draw with.public java.awt.Font title_font()
public void set_title_font(java.awt.Font fnt)
Font
- fnt the new font to draw with.public int sem_draw_kind()
public void pick(int pt_x, int pt_y, pick_collector pick_list)
int
- pt_x x coordinate of picking pointint
- pt_y y coordinate of picking pointpick_collector
- pick_list result listpublic boolean press(event evt, java.lang.Object user_info)
event
- evt the press event.Object
- user_info the information associated with this object
at pick time.public boolean release(event evt, java.lang.Object user_info)
event
- evt the release event.Object
- user_info information associated with this object at
pick time.public boolean drag_start(event evt, int xv, int yv, int gx, int gy, java.lang.Object user_info)
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.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)
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.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)
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.public boolean drag_start(event evt, java.lang.Object user_info)
event
- evt the event "causing" the drag.Object
- user_info the information associated with this object at
the point that it requested focus.public boolean drag_feedback(event evt, int cur_w, int cur_h, int st_w, int st_h, java.lang.Object user_info)
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.public boolean drag_end(event evt, int cur_w, int cur_h, int st_w, int st_h, java.lang.Object user_info)
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.public interactor get_parent()
protected void draw_self_local(drawable d)
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.
drawable
- d the drawing surface we draw on.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)
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |