chemaxon.struc
Class MObject

java.lang.Object
  extended by chemaxon.struc.MObject
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable
Direct Known Subclasses:
MChemicalStruct, MPoint, MPolyline

public abstract class MObject
extends java.lang.Object
implements java.io.Serializable, java.lang.Cloneable

Paintable object. This class and its subclasses are under development, use them at your own risk!

Since:
Marvin 3.3, 10/18/2003
Version:
5.3, 09/25/2009
Author:
Peter Csizmadia
See Also:
Serialized Form

Field Summary
static int PAINT_ANTIALIAS
          Antialias flag.
static int PAINT_FOCUSED
          Input focus on the component (MTextBox).
static int TRANSFORM_DISTORT
          Distorting transformations are allowed.
 
Constructor Summary
protected MObject(java.awt.Color c, java.awt.Color lc, java.awt.Color bg)
          Contructs a paintable object with the specified color.
protected MObject(MObject o)
          Copy constructor.
 
Method Summary
 void addAttributeKeys(java.util.List<java.lang.String> l)
          Adds the attribute names to the specified list.
 void addCdataAttributeKeys(java.util.List<java.lang.String> l)
          Adds attribute names to the specified list.
 void addNotify()
          Called when the object is added to a document.
abstract  void calcCenter(DPoint3 p, CTransform3D t)
          Calculates the geometrical center.
 boolean checkValidity(MDocument doc, java.util.Collection<MolAtom> invec)
          Is it a valid object in the document?
abstract  java.lang.Object clone()
          Creates a clone.
 boolean containsAtom(MolAtom a)
          Checks if the object contains the specified atom reference.
 boolean containsPoint(DPoint3 p, CTransform3D trot)
           
 double distanceFrom(double x, double y)
          Gets the 2D distance from the specified point.
abstract  double distanceFrom(double x, double y, CTransform3D t)
          Gets the 2D distance from the specified point.
 void finishCloning(MDocument olddoc, MDocument newdoc)
          Finish cloning a document.
 void fixClonedPoints(MObject[] objarr0, MObject[] objarr, int i)
          Sets the parent object for this object.
 java.lang.String getAttribute(java.lang.String s)
          Gets the value of an attribute.
 java.awt.Color getBackground()
          Gets the background color of the object.
 java.awt.Color getColor()
          Gets the color of the object.
 java.awt.Color getLineColor()
          Gets the line color of the object.
abstract  MPoint getPoint(int i)
          Gets a point of the object.
abstract  int getPointCount()
          Gets the number of points.
 MPoint getPointRef(int i, CTransform3D trot)
          Gets a reference to a point of the object.
 int getPointRefCount()
          Gets the number of point references.
 boolean hasBackground()
          Can the object have a background?
 boolean hasColor()
          Can the object have a color (non-line and non-background)?
 boolean hasLineColor()
          Can the object have a line color?
 boolean isChildOf(MObject o)
          Is this object a children of another one?
 boolean isEmpty()
          An object may become empty if all the children are removed.
 boolean isInternalSelectable()
          Is it a selection only internal object?
 boolean isReactionArrow(MoleculeGraph mol)
           
 boolean isSelectableNow()
          Is the object selectable now?
 boolean isSelected()
          Is the object selected?
 boolean isTransformable()
          Is it a transformable object?
protected static java.awt.Color makeColor(java.lang.String s)
           
 void removeAtom(MolAtom atom)
          Removes the atom from the corresponding molecule object.
 void removeChild(MObject o)
          Removes a child object.
 void removeNotify()
          Called when the object is removed from a document.
 void replaceAtom(MolAtom orig, MolAtom a)
          Replaces a contained atom with another one.
 void setAttribute(java.lang.String s, java.lang.String v)
          Sets the value of an attribute.
 void setBackground(java.awt.Color c)
          Sets the background color of the object.
 void setColor(java.awt.Color c)
          Sets the color of the object.
 void setLineColor(java.awt.Color c)
          Sets the color of the object.
 void setSelected(boolean s)
          Selects or unselects the object.
 java.lang.String toString()
          Overrides Object.toString() to ease debugging.
abstract  void transform(CTransform3D t, int opts, CTransform3D trot)
          Transforms the object.
 void unselectContents()
          Unselects sub-objects.
 void updateBoundingRect(double[] xyminm, CTransform3D pretrf)
          Calculate the bounding rectangle.
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

PAINT_ANTIALIAS

public static final int PAINT_ANTIALIAS
Antialias flag.

See Also:
Constant Field Values

PAINT_FOCUSED

public static final int PAINT_FOCUSED
Input focus on the component (MTextBox).

See Also:
Constant Field Values

TRANSFORM_DISTORT

public static final int TRANSFORM_DISTORT
Distorting transformations are allowed.

Since:
Marvin 3.5, 07/06/2004
See Also:
Constant Field Values
Constructor Detail

MObject

protected MObject(java.awt.Color c,
                  java.awt.Color lc,
                  java.awt.Color bg)
Contructs a paintable object with the specified color.

Parameters:
lc - the line color or null to use the default
bg - the background color

MObject

protected MObject(MObject o)
Copy constructor.

Method Detail

clone

public abstract java.lang.Object clone()
Creates a clone.

Overrides:
clone in class java.lang.Object
Returns:
the clone

isEmpty

public boolean isEmpty()
An object may become empty if all the children are removed.

Returns:
true if empty, false otherwise

isChildOf

public boolean isChildOf(MObject o)
Is this object a children of another one?

Parameters:
o - a possible parent
Returns:
true if the other object is the parent, false otherwise

checkValidity

public boolean checkValidity(MDocument doc,
                             java.util.Collection<MolAtom> invec)
Is it a valid object in the document?

Parameters:
doc - the document
invec - collection of invalid atoms or null
Returns:
true if the object is valid, false if it contains a subobject that is not part of the document

removeChild

public void removeChild(MObject o)
Removes a child object.

Parameters:
o - the child

containsAtom

public boolean containsAtom(MolAtom a)
Checks if the object contains the specified atom reference.

Returns:
true if the object contains the atom, false otherwise
Since:
Marvin 3.5, 07/04/2004

replaceAtom

public void replaceAtom(MolAtom orig,
                        MolAtom a)
Replaces a contained atom with another one.

Parameters:
orig - the original atom
a - the new atom
Since:
Marvin 3.5, 07/04/2004

isTransformable

public boolean isTransformable()
Is it a transformable object?

Returns:
true if the object can be transformed, false otherwise
Since:
Marvin 3.5, 07/06/2004

isInternalSelectable

public boolean isInternalSelectable()
Is it a selection only internal object?

Returns:
true if the object is selectable but only exists as part of a real object, false otherwise

isSelectableNow

public boolean isSelectableNow()
Is the object selectable now?

Returns:
true for ordinary objects, false for some internal selectables

addNotify

public void addNotify()
Called when the object is added to a document.


removeNotify

public void removeNotify()
Called when the object is removed from a document.


getPointCount

public abstract int getPointCount()
Gets the number of points.

Returns:
the number of points

getPoint

public abstract MPoint getPoint(int i)
Gets a point of the object.

Parameters:
i - the point index
Returns:
the point's clone

getPointRefCount

public int getPointRefCount()
Gets the number of point references.

Returns:
the number of point references.

updateBoundingRect

public void updateBoundingRect(double[] xyminm,
                               CTransform3D pretrf)
Calculate the bounding rectangle.

Parameters:
xyminm - array containing the current minimum x, y and maximum x, y coordinates
pretrf - transformation matrix
Since:
Marvin 5.0, 02/16/2007

getPointRef

public MPoint getPointRef(int i,
                          CTransform3D trot)
Gets a reference to a point of the object.

Parameters:
i - the point index
trot - the viewing transformation or null
Returns:
the point's reference
Since:
Marvin 4.1, 05/01/2006

addAttributeKeys

public void addAttributeKeys(java.util.List<java.lang.String> l)
Adds the attribute names to the specified list. CDATA attributes are not added.

Parameters:
l - the list

addCdataAttributeKeys

public void addCdataAttributeKeys(java.util.List<java.lang.String> l)
Adds attribute names to the specified list. Only CDATA attributes are added.

Parameters:
l - the list

getAttribute

public java.lang.String getAttribute(java.lang.String s)
Gets the value of an attribute.

Parameters:
s - the attribute name
Returns:
the value or null

setAttribute

public void setAttribute(java.lang.String s,
                         java.lang.String v)
Sets the value of an attribute.

Parameters:
s - the attribute name
v - the attribute value

transform

public abstract void transform(CTransform3D t,
                               int opts,
                               CTransform3D trot)
Transforms the object.

Parameters:
t - the transformation matrix
opts - transform options or 0
trot - the viewing transformation or null
Since:
Marvin 4.1, 04/28/2006
See Also:
TRANSFORM_DISTORT

calcCenter

public abstract void calcCenter(DPoint3 p,
                                CTransform3D t)
Calculates the geometrical center.

Parameters:
p - store the coordinates here
t - the transformation matrix or null
Since:
Marvin 4.1, 04/28/2006

distanceFrom

public double distanceFrom(double x,
                           double y)
Gets the 2D distance from the specified point.

Parameters:
x - the x coordinate
y - the y coordinate

distanceFrom

public abstract double distanceFrom(double x,
                                    double y,
                                    CTransform3D t)
Gets the 2D distance from the specified point.

Parameters:
x - the x coordinate
y - the y coordinate
t - transformation or null
Since:
Marvin 3.5, 11/04/2004

containsPoint

public boolean containsPoint(DPoint3 p,
                             CTransform3D trot)

isSelected

public boolean isSelected()
Is the object selected?

Returns:
true if selected, false otherwise

setSelected

public void setSelected(boolean s)
Selects or unselects the object.

Parameters:
s - use true to select, false to unselect

isReactionArrow

public boolean isReactionArrow(MoleculeGraph mol)

unselectContents

public void unselectContents()
Unselects sub-objects.


getColor

public java.awt.Color getColor()
Gets the color of the object.

Returns:
the color or null

setColor

public void setColor(java.awt.Color c)
Sets the color of the object.

Parameters:
c - the color or null to use the default

getLineColor

public java.awt.Color getLineColor()
Gets the line color of the object.

Returns:
the color or null if there are no lines

setLineColor

public void setLineColor(java.awt.Color c)
Sets the color of the object.

Parameters:
c - the color or null

hasColor

public boolean hasColor()
Can the object have a color (non-line and non-background)?

Returns:
true if it can have a color, false otherwise

hasLineColor

public boolean hasLineColor()
Can the object have a line color?

Returns:
true if it can have a line color, false otherwise

hasBackground

public boolean hasBackground()
Can the object have a background?

Returns:
true if it has a background, false otherwise

getBackground

public java.awt.Color getBackground()
Gets the background color of the object.

Returns:
the color

setBackground

public void setBackground(java.awt.Color c)
Sets the background color of the object.

Parameters:
c - the color

finishCloning

public void finishCloning(MDocument olddoc,
                          MDocument newdoc)
Finish cloning a document. Called by the copy constructor.

Since:
Marvin 3.5, 07/02/2004

toString

public java.lang.String toString()
Overrides Object.toString() to ease debugging. Returns a string consisting of the classname (without the package name!), the at-sign character `@', and the unsigned hexadecimal representation of the hash code of the object.

Overrides:
toString in class java.lang.Object
Returns:
a string representation of the object
Since:
Marvin 4.1, 05/01/2006

makeColor

protected static java.awt.Color makeColor(java.lang.String s)

removeAtom

public void removeAtom(MolAtom atom)
Removes the atom from the corresponding molecule object.

Parameters:
atom - the atom to remove

fixClonedPoints

public void fixClonedPoints(MObject[] objarr0,
                            MObject[] objarr,
                            int i)
Sets the parent object for this object.

Parameters:
objarr0 - the new object list
objarr - the old object list
i - the corresponding index from the old object list