Class DataSgroup

java.lang.Object
chemaxon.struc.Sgroup
chemaxon.struc.sgroup.DataSgroup
All Implemented Interfaces:
Serializable

@PublicApi public class DataSgroup extends Sgroup
Data Sgroup.
Since:
Marvin 4.0, 1/07/2005
See Also:
  • Field Details

  • Constructor Details

    • DataSgroup

      public DataSgroup(Molecule parent)
      Creates a Data S-group with the specified parent. Please note the S-group is not added automatically to the parent molecule.
      Parameters:
      parent - the parent molecule
      See Also:
    • DataSgroup

      public DataSgroup(DataSgroup sg, Molecule mol, Sgroup psg, int[] atomIndexMap)
      Copy constructor.
      Parameters:
      sg - the S-group to copy
      mol - the new parent molecule
      psg - the new parent S-group or null if no parent S-group exists
      atomIndexMap - indices of cloned atoms in the original molecule in the case of partial cloning, or null otherwise
      Since:
      Marvin 5.3.3 30/03/2010
    • DataSgroup

      public DataSgroup(DataSgroup sg, Molecule mol, Sgroup psg)
      Copy constructor.
      Parameters:
      sg - the S-group to copy
      mol - the new parent molecule
      psg - the new parent S-group or null
      Since:
      Marvin 4.0 1/08/2005
  • Method Details

    • cloneSgroup

      protected Sgroup cloneSgroup(Molecule mol, Sgroup psg, int[] atomIndexMap)
      Gets a new DataSgroup instance.
      Overrides:
      cloneSgroup in class Sgroup
      Parameters:
      mol - the new parent molecule
      psg - the new parent S-group
      atomIndexMap - indices of cloned atoms in the original molecule or null
      Returns:
      the new object
    • getContext

      public String getContext()
      Gets the context of the data sgroup. Possible context values: Atom, Bond, Single Bond, Double Bond, Fragment, Group (Selection)
      Returns:
      the context of this DataSgroup
    • setContext

      public void setContext(String context)
      Sets the context of this data sgroup. Context play role when displaying the data for this DataSgroup. Possible context values and their meaning: Atom - the data sgroup information should be displayed for any atom in this group separately. Bond - the data sgroup information should be displayed for any bond in this group separately. Single Bond - the data sgroup information should be displayed for any single bond in this group separately. Double Bond - the data sgroup information should be displayed for any double bond in this group separately. Fragment - the data sgroup information should be displayed for any disconnected molecule fragment in this group separately. Group (Selection) - the data sgroup information should be displayed for the whole group once.
      Parameters:
      context - - the string representation of the context.
    • getContextId

      public int getContextId()
      Gets the id of the context of the data sgroup. Ids and the corresponding context values: 0 - Atom 1 - Bond 2 - Single Bond 3 - Double Bond 4 - Fragment 5 - Group (Selection)
      Returns:
      the id of the context of this DataSgroup
    • setContext

      public void setContext(int id)
      Sets the context of this data sgroup.
      Parameters:
      id - - the id of the context.
      See Also:
    • getFieldName

      public String getFieldName()
      Gets the data field name. (V2000: the first 30 chars can only be exported.)
      Returns:
      The data field identifier.
    • setFieldName

      public void setFieldName(String nameP)
      Sets the data field name. (V2000: the first 30 chars can only be exported.)
      Parameters:
      nameP - The data field identifier.
    • getFieldType

      public int getFieldType()
      Gets the field type.
      Returns:
      The type of the field.
      See Also:
    • setFieldType

      public void setFieldType(int typeP)
      Sets the field type.
      Parameters:
      typeP - The type of the data field.
      See Also:
    • setFieldType

      public void setFieldType(String ft)
      Sets the field type from string representation.
      Parameters:
      ft - "F", "T" or "N"
      See Also:
    • getUnits

      public String getUnits()
      Gets the unit of this data field. (V2000: The first 20 characters can only be exported.)
      Returns:
      The unit of the data, e.g. "A^2" or "kJ/cm3"
    • setUnits

      public void setUnits(String unitsP)
      Sets the unit of this data field. (V2000: The first 20 characters can only be exported.)
      Parameters:
      unitsP - The units of the data attached, e.g. "A^2" or "kJ/cm3"
    • getQueryCode

      public String getQueryCode()
      Gets the program code of the query option.
      • mQ = marvin query
      • MQ = MACCS-II query
      • IQ = ISIS query
      • <P>Q = program name code query
      Returns:
      the string identifying a program for the query option.
    • setQueryCode

      public void setQueryCode(String queryCodeP)
      Sets the program code for the query option.
      Parameters:
      queryCodeP - the string identifying a program for the query option. mQ = marvin query, MQ = MACCS-II query, IQ = ISIS query, <P>Q = program name code query
    • getQueryOp

      public String getQueryOp()
      Gets the data query operator.
      Returns:
      One of the following: "<", ">", "<=", ">=", "<>", "between", "like", "contains", "=" or null if not set.
    • setQueryOp

      public void setQueryOp(String queryOpP)
      Sets the data query operator.
      Parameters:
      queryOpP - One of the following: "<", ">", "<=", ">=", "<>", "between", "like", "contains", "=" or null if not set.
    • getX

      public double getX()
      Gets the X coordinate. This is the label coordinate in case of absolute placement, translation vector coordinate in case of relative placement.
      Returns:
      The X coordinate in Angstroms.
    • setX

      public void setX(double x)
      Sets the X coordinate. This is the label coordinate in case of absolute placement, translation vector coordinate in case of relative placement.
      Parameters:
      x - The X coordinate in Angstroms.
    • getY

      public double getY()
      Gets the Y coordinate. This is the label coordinate in case of absolute placement, translation vector coordinate in case of relative placement.
      Returns:
      The Y coordinate in Angstroms.
    • setY

      public void setY(double y)
      Sets the Y coordinate. This is the label coordinate in case of absolute placement, translation vector coordinate in case of relative placement.
      Parameters:
      y - The Y coordinate in Angstroms.
    • setAbsoluteXY

      public void setAbsoluteXY(DPoint3 p)
      Sets the X and Y coordinates of the data label in the molecule's coordinate system, considering absolute/relative placement.
      Parameters:
      p - the absolute coordinates.
      See Also:
    • setAbsoluteXY

      public void setAbsoluteXY(double x, double y)
      Sets the X and Y coordinates of the data label in the molecule's coordinate system, considering absolute/relative placement.
      Parameters:
      x - X absolute coordinate.
      y - Y absolute coordinate.
      See Also:
    • getAbsoluteXY

      public DPoint3 getAbsoluteXY()
      Gets the X and Y coordinates of the data label in the molecule's coordinate system, considering absolute/relative placement.
      Returns:
      the absolute coordinates.
      See Also:
    • getPlacementOrigin

      @Deprecated(forRemoval=true) @SubjectToRemoval(date=JUL_01_2025) public void getPlacementOrigin(DPoint3 p)
      Deprecated, for removal: This API element is subject to removal in a future version.
      If isAbsolutePlacement is false it calculates the middle point of the coordinates of atoms this S-group is associated to. The top right reference point of the parent S-group's bracket is used in the case of empty S-groups as placement of origin. Otherwise it returns an all-zero vector.
      Parameters:
      p - This point will contain the calculated X and Y coordinates.
      See Also:
    • getObjectsMiddle

      public void getObjectsMiddle(DPoint3 p)
      Calculates the middle point of the coordinates of objects this sgroup is associated to.
      Parameters:
      p - This point will contain the calculated X and Y coordinates.
    • isDataDetached

      public boolean isDataDetached()
      Gets whether the data should be displayed close to the objects or separately (detached).
      Returns:
      True if the data is detached.
    • setDataDetached

      public void setDataDetached(boolean b)
      Sets whether the data should be displayed close to the objects or separately (detached).
      Parameters:
      b - true if the data is detached.
    • isUnitDisplayed

      public boolean isUnitDisplayed()
      Gets whether the units string should be displayed.
      Returns:
      True if the units string is displayed.
    • setUnitDisplayed

      public void setUnitDisplayed(boolean b)
      Sets whether the units string should be displayed. (Default is false.)
      Parameters:
      b - True if the units string should be displayed.
    • isAbsolutePlacement

      public boolean isAbsolutePlacement()
      Gets whether the placement of this attached data is absolute or relative to the objects it is attached.
      Returns:
      true when getX() and getY() coordinates refer to absolute placement.
    • setAbsolutePlacement

      public void setAbsolutePlacement(boolean isAbsolute)
      Sets whether the placement of this attached data is absolute or relative to the objects it is attached. It does not modifies the coordinates, just changes the interpretation.
      Parameters:
      isAbsolute - true when getX() and getY() coordinates should refer to absolute placement.
    • getDisplayedChars

      public int getDisplayedChars()
      Gets the number of characters to be displayed(1...999 or 0 for all)
      Returns:
      Gets the number of characters to display per line
    • setDisplayedChars

      public void setDisplayedChars(int chars)
      Sets the number of characters to be displayed (1...999 or 0 for no restriction)
      Parameters:
      chars - the number of characters to display per line
    • getDisplayedLines

      public int getDisplayedLines()
      Gets the number of lines to be displayed (0: show all)
      Returns:
      The number of lines to be displayed.
    • setDisplayedLines

      public void setDisplayedLines(int lines)
      Sets the number of lines to be displayed (0: show all)
      Parameters:
      lines - The number of lines to be displayed. 0 means to show all, -1 hides the data, and -2(HIDDEN) hides bracket highlighting as well.
      See Also:
    • getTag

      public char getTag()
      Gets the tag character for footnote display (or space if blank).
      Returns:
      The caracter to use in the footnote for the attached data.
    • setTag

      public void setTag(char c)
      Sets the tag character for the footnote display.
      Parameters:
      c - The character to use in the footnote or space to clear.
    • getPos

      public int getPos()
      Gets the data display DASP position (0...9). (MACCS)
      Returns:
      The above position number (1-9 or 0 if not set.)
    • setPos

      public void setPos(int p)
      Sets the data display DASP position (0...9). (MACCS)
      Parameters:
      p - The position number to be set (1-9) or 0 if not set.
    • getData

      public String getData()
      Gets the data value to be set. Can be multiline: '\n' characters separate lines.
      Returns:
      The value of the attached data.
    • setData

      public void setData(String s)
      Sets the data value to be set.
      Parameters:
      s - The value of the attached data. Can be multiline: '\n' characters separate lines.
    • getDataLineCount

      public int getDataLineCount()
      Gets the number of data lines.
    • getDataLine

      public String getDataLine(int i)
      Gets a line of data.
      Parameters:
      i - line index
    • setDataLine

      public void setDataLine(int i, String line)
      Sets a line of data.
      Parameters:
      i - line index
    • addDataLine

      public void addDataLine(String line)
      Adds a line to the data stored in the field.
      Parameters:
      line - Next line to add.
    • getLineOnScreen

      public String getLineOnScreen(int i)
      Returns the i-th row of the data sgroup label, as displayed on the screen (with tag, query operator, units etc.)
      Parameters:
      i - number of line
    • hasBrackets

      public boolean hasBrackets()
      Brackets are painted if mouse runs over sgroup atoms.
      Overrides:
      hasBrackets in class Sgroup
      Returns:
      always true in the default implementation
    • getSubscript

      public String getSubscript()
      Gets the subscript for non-superatom S-groups.
      Overrides:
      getSubscript in class Sgroup
      Returns:
      the subscript
    • transformByParent

      protected void transformByParent(CTransform3D t, boolean incg)
      Applies a transformation matrix to the Data Sgroup coordinates. (Only absolute placement.) This method is called by the parent molecule's Molecule.transform(CTransform3D, boolean) method, thus only those atom coordinates are transformed here that are not handled in MoleculeGraph.transform(CTransform3D, boolean).
      Overrides:
      transformByParent in class Sgroup
      Parameters:
      t - the transformation matrix
      incg - graph invariants are changed (true) or not (false)
      Since:
      Marvin 4.0.2, 10/26/2005