|
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Objectjpicedt.graphic.model.AbstractElement
jpicedt.graphic.model.BranchElement
An abstract class for Element's that allow children. The geometry specification mostly delegates to the children of this Element, except for the bounding-box, which is backed by an array of coordinates.
The implementation of the Collection interface is done through calls to
addChild, removeChild, children,
removeAllChildren, except for the addAll method which is implemented from
scratch so as to fire a changed-event only once all elements have been added.
As a result, subclasses only need to override these methods
to change the behaviour of content-modifying methods.
This element has only one control point, namely, the bottom-left corner of the bounding box.
Moving this point result in a global translation of the element (however no rescale capability is available here
using the setPoint() method, use the PicGroup class instead).
| Field Summary | |
protected boolean |
changeLock
a semaphor that signals a change of state is underway in this BranchElement and it shouldn't process events coming from its children before the change is completed (hence this is used inside forwardChangedUpdate());
set it to true each time you start modifying children in batch mode and you don't want
events to be forwarded to the root of the hierarchy before everything is completed (e.g. |
protected ArrayList |
children
the array that contains children |
protected double[] |
ptsX
an array of X-coordinates representing the two opposite corner of the bounding box that contains all children |
protected double[] |
ptsY
an array of Y-coordinates representing the two opposite corner of the bounding box that contains all children |
| Fields inherited from class jpicedt.graphic.model.AbstractElement |
attributeSet, parent, view |
| Constructor Summary | |
BranchElement()
construct a BranchElement with no parent and a default PicAttributeSet |
|
BranchElement(BranchElement src)
cloning constructor (though with no parent and no view) : 1°) attribute set is deeply copied. |
|
BranchElement(Collection c)
create a new BranchElement from the content of the given Collection of Element's. |
|
BranchElement(PicAttributeSet attributeSet)
construct a BranchElement with no parent and the given PicAttributeSet |
|
| Method Summary | |
boolean |
add(Object o)
add the given object as a new child of this BranchElement, but only if it's an instance of Element, and return true. |
boolean |
addAll(Collection c)
adds all the elements in the given collection that are instance of Element as children of this BranchElement. |
void |
addChild(Element child)
add the given child to this BranchElement, setting its parent to this. |
void |
addChild(int position,
Element child)
insert the given child in this BranchElement at the given position, setting its parent to this, and create a view for the child using the ViewFactory that produced the View for this BranchElement. |
void |
bringBackward(Element obj)
Move the given child one position backward, i.e. |
void |
bringForward(Element obj)
Move the given child one position forward, i.e. |
void |
bringToBack(Element obj)
Move the given child to back (i.e. |
void |
bringToFront(Element obj)
Move the given child to front, i.e. |
Iterator |
children()
|
void |
clear()
remove all the children |
abstract Object |
clone()
Returns a clone of this Element |
boolean |
contains(Element o)
|
boolean |
contains(Object o)
Returns true if this collection contains the specified element. |
boolean |
containsAll(Collection c)
Returns true if this BranchElement contains all of the elements in the specified collection. |
boolean |
containsClass(Class clazz)
Returns whether this BranchElement contains objects that are of the same type of inherit from the given clazz. |
ArrayList |
createFilteredCollection(Class clazz)
Returns a list containing children of this BranchElement that are of the same type or inherit the given clazz. |
boolean |
equals(Object o)
|
void |
forwardChangedUpdate(Element child,
DrawingEvent.EventType eventType)
Called by a child of this BranchElement to inform its parent of some change that occured to it or one of its children. |
boolean |
getAllowsChildren()
Returns true if the receiver allows children. |
Rectangle2D |
getBoundingBox(Rectangle2D r)
Returns the bounding box (i.e. |
Element |
getChildAt(int childIndex)
|
int |
getChildCount()
|
int |
getChildIndex(Element node)
Returns the index of the given Element in the receivers children. |
int |
getFirstPointIndex()
Return the index of the first user-controlled point that can be retrieved by getPoint() |
int |
getLastPointIndex()
Return the index of the last user-controlled point that can be retrieved by getPoint() |
PicPoint |
getPoint(int numPoint,
PicPoint src)
Return the user-controlled point having the given index. |
double |
getPointX(int numPoint)
Same as getPoint(), yet return the x-coordinate only. |
double |
getPointY(int numPoint)
This default implementation returns ptsY[numPoint].This might be a valid implementation
as long as subclasses don't have other control points. |
boolean |
isEmpty()
|
boolean |
isToBack(Element obj)
|
boolean |
isToFront(Element obj)
|
Iterator |
iterator()
Returns an iterator over children. |
boolean |
remove(Object o)
Removes a single instance of the specified Element from this BranchElement, if it is present AND is instance of Element. |
boolean |
removeAll(Collection c)
Removes all this collection's elements that are also contained in the specified collection. |
void |
removeAllChildren()
remove all children from this BranchElement, set each child's parent to null. |
void |
removeChild(Element child)
remove the given child from this BranchElement, setting its parent to null so that the given child become (possibly) eligible for garbage collection if there are no other reference to it. |
void |
removeView()
remove the view that render this element and propagate to children ; this may be used to remove any reference to the view, and render it eligible for garbage collection ; if no View, does nothing. |
void |
replaceChild(int position,
Element newChild)
replace the child at the given position by the given child |
boolean |
retainAll(Collection c)
Retains only the elements in this BranchElement that are contained in the specified collection |
void |
rotate(PicPoint ptOrg,
double angle)
Rotate this Element by the given angle along the given point |
void |
scale(double ptOrgX,
double ptOrgY,
double sx,
double sy)
Scale children by (sx,sy) using (ptOrgX,ptOrgY) as origin ; sx and sy can be negative. |
void |
scale(PicPoint ptOrg,
double sx,
double sy)
Scale children by (sx,sy) using ptOrg as origin ; sx and sy can be negative. |
void |
setAttribute(PicAttributeName name,
Object value)
set an Attribute for this BranchElement and propagate to children |
void |
setAttributeSet(PicAttributeSet set)
set AttributeSet for this BranchElement and propagate to children |
void |
setPoint(int index,
PicPoint pt)
Deprecated. use setPoint(int, PicPoint, EditPointConstraint) instead. |
void |
setPoint(int numPoint,
PicPoint pt,
EditPointConstraint c)
Set the point indexed by "numPoint" to the given value. |
void |
setViewFromFactory(ViewFactory f)
set the view for this Element from the given view factory, then set the view for children. |
void |
shear(PicPoint ptOrg,
double shx,
double shy)
Shear this Element by the given params wrt to the given origin |
int |
size()
|
Object[] |
toArray()
Returns an array containing all of the elements in this collection. |
Object[] |
toArray(Object[] a)
Returns an array containing all of the elements in this collection whose runtime type is that of the specified array. |
String |
toString()
Returns a String representing the group for debugging use only. |
void |
translate(double dx,
double dy)
Translate children by the given vector |
protected void |
updateBoundingBox()
Update the bounding box by "unioning" the children's bounding box (actually computes the two specification points defining the diagonal of the box). |
| Methods inherited from class jpicedt.graphic.model.AbstractElement |
anchorPointsIterator, fireChangedUpdate, getAttribute, getAttributeSet, getDrawing, getParent, getView, setParent |
| Methods inherited from class java.lang.Object |
finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Methods inherited from interface java.util.Collection |
hashCode |
| Methods inherited from interface jpicedt.graphic.model.Element |
getName |
| Field Detail |
protected ArrayList children
protected boolean changeLock
forwardChangedUpdate());
set it to true each time you start modifying children in batch mode and you don't want
events to be forwarded to the root of the hierarchy before everything is completed (e.g. to
get rid of side-effects, or to reduce the burden for the repaint manager).
Example of use : whenever we call translate() on this BranchElement,
protected double[] ptsX
protected double[] ptsY
| Constructor Detail |
public BranchElement()
public BranchElement(PicAttributeSet attributeSet)
public BranchElement(BranchElement src)
public BranchElement(Collection c)
| Method Detail |
public abstract Object clone()
AbstractElement
clone in interface Elementclone in class AbstractElementpublic boolean getAllowsChildren()
getAllowsChildren in interface Elementpublic Element getChildAt(int childIndex)
public int getChildCount()
public Iterator children()
public int getChildIndex(Element node)
public boolean contains(Element o)
public void addChild(Element child)
public void addChild(int position,
Element child)
public void replaceChild(int position,
Element newChild)
public void removeChild(Element child)
public void removeAllChildren()
public int getFirstPointIndex()
Element
getFirstPointIndex in interface Elementpublic int getLastPointIndex()
Element
getLastPointIndex in interface Elementpublic double getPointX(int numPoint)
ElementgetPoint(), yet return the x-coordinate only.
getPointX in interface ElementnumPoint - the point index, should be greater or equal to the value returned by
getFirstPointIndex, and lower or equal to getLastPointIndex.
numPoint.public double getPointY(int numPoint)
ptsY[numPoint].This might be a valid implementation
as long as subclasses don't have other control points.
getPointY in interface ElementnumPoint - the point index, should be greater or equal to the value returned by
getFirstPointIndex, and lower or equal to getLastPointIndex.
numPoint.
public PicPoint getPoint(int numPoint,
PicPoint src)
setPoint method,
hence this implementation simply calls getPointX() and getPointY().
getPoint in interface ElementnumPoint - the point index, should be greater or equal to the value returned by
getFirstPointIndex, and lower or equal to getLastPointIndex.
numPoint ;
if src is null, allocates a new PicPoint and return it,
otherwise directly modifies src and returns it as well for convenience.
public void setPoint(int index,
PicPoint pt)
setPoint in interface Element
public void setPoint(int numPoint,
PicPoint pt,
EditPointConstraint c)
setPoint in interface Elementc - a geometry constraint, or null if no particular constraint is being imposed (aka default).
public void translate(double dx,
double dy)
translate in interface Elementdx - The X coordinate of translation vectordy - The Y coordinate of translation vector
public void scale(PicPoint ptOrg,
double sx,
double sy)
scale in interface Elementscale in class AbstractElement
public void scale(double ptOrgX,
double ptOrgY,
double sx,
double sy)
scale in interface Element
public void rotate(PicPoint ptOrg,
double angle)
rotate in interface Elementangle - rotation angle in radians
public void shear(PicPoint ptOrg,
double shx,
double shy)
shear in interface Element
public void forwardChangedUpdate(Element child,
DrawingEvent.EventType eventType)
forwardChangedUpdate in interface ElementeventType - the event typechild - public void setViewFromFactory(ViewFactory f)
setViewFromFactory in interface ElementsetViewFromFactory in class AbstractElementpublic void removeView()
removeView in interface ElementremoveView in class AbstractElementpublic void bringToBack(Element obj)
public void bringToFront(Element obj)
public void bringBackward(Element obj)
public void bringForward(Element obj)
public boolean isToBack(Element obj)
public boolean isToFront(Element obj)
public Rectangle2D getBoundingBox(Rectangle2D r)
Straigthforwardly computed from the diagonal
getBoundingBox in interface Elementprotected void updateBoundingBox()
public void setAttributeSet(PicAttributeSet set)
setAttributeSet in interface ElementsetAttributeSet in class AbstractElement
public void setAttribute(PicAttributeName name,
Object value)
setAttribute in interface ElementsetAttribute in class AbstractElementpublic String toString()
toString in class AbstractElementpublic boolean add(Object o)
add in interface Collectionpublic boolean addAll(Collection c)
addAll in interface Collectionpublic void clear()
clear in interface Collectionpublic int size()
size in interface Collectionpublic boolean isEmpty()
isEmpty in interface Collectionpublic boolean contains(Object o)
contains in interface Collectionpublic Iterator iterator()
iterator in interface Collectionpublic Object[] toArray()
toArray in interface Collectionpublic Object[] toArray(Object[] a)
toArray in interface Collectionpublic boolean remove(Object o)
remove in interface Collectiono - element to be removed from this BranchElement, if present.
public boolean containsAll(Collection c)
containsAll in interface Collectionpublic boolean removeAll(Collection c)
removeAll in interface Collectionc - elements to be removed from this collection.
public boolean retainAll(Collection c)
retainAll in interface Collectionc - elements to be retained in this collection.
public boolean equals(Object o)
equals in interface Collectionpublic ArrayList createFilteredCollection(Class clazz)
public boolean containsClass(Class clazz)
|
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||