Class Monitor

java.lang.Object
chemaxon.marvin.space.GraphicComponent
chemaxon.marvin.space.monitor.Monitor
All Implemented Interfaces:
chemaxon.marvin.space.UsableObject
Direct Known Subclasses:
Label, MeasurementMonitor, PositionMonitor

@PublicAPI public abstract class Monitor extends GraphicComponent
The Monitor is for "watching" something in the scene. The direct subclasses are MeasurementMonitor, PositionMonitor and Label.
A MeasurementMonitor watches some objects, and measures something between them.
A PositionMonitor is watching a location as a center of a transformation.
A Label is watching an object and describes it.
Since:
Marvin 4.0.2
  • Field Details

    • selectedItems

      protected ComponentElement[] selectedItems
      Storage of the items of monitoring.
    • selectedItemCoordinates

      protected int[] selectedItemCoordinates
    • selectionPointer

      protected int selectionPointer
      Points to the next empty space in selectedItems.
    • control

      protected Control control
    • mode

      protected int mode
  • Constructor Details

    • Monitor

      protected Monitor()
      Creates a new instance of Monitor. Initializes selectedItems with a maximum item count, and becames a GraphicComponent which does not modify the origin of the Cell it is in.
  • Method Details

    • onRemoveGraphicComponent

      public void onRemoveGraphicComponent()
      Overrides:
      onRemoveGraphicComponent in class GraphicComponent
    • maximumItemCount

      public abstract int maximumItemCount()
      Returns the number of items necessary for monitoring. E.g. 2 for distance monitoring.
    • getSelectedElements

      public ComponentElement[] getSelectedElements()
      Returns the set of the monitored items.
      Returns:
      identifiers of the monitored objects.
    • selectItem

      public void selectItem(ComponentElement item)
      Puts item to the selection.
    • receiveNotificationOnCoordinateChange

      public void receiveNotificationOnCoordinateChange(GraphicComponent gc)
      Gets notification from its selected components if their coordinates have been changed. A monitor should be refreshed then.
      Overrides:
      receiveNotificationOnCoordinateChange in class GraphicComponent
      Parameters:
      gc - component changing coordinates
    • receiveNotificationOnVisibility

      public void receiveNotificationOnVisibility(GraphicComponent gc)
      If the component to that this monitor is assigned becomes visible, this monitor will also behave so.
      Overrides:
      receiveNotificationOnVisibility in class GraphicComponent
      Parameters:
      gc - visible component
    • receiveNotificationOnInvisibility

      public void receiveNotificationOnInvisibility(GraphicComponent gc)
      If the component to that this monitor is assigned becomes hidden, this monitor will also behave so.
      Overrides:
      receiveNotificationOnInvisibility in class GraphicComponent
      Parameters:
      gc - invisible component
    • isFull

      public boolean isFull()
      Returns true if the monitor is full and can measure.
    • hasControl

      public boolean hasControl()
      Returns true if the monitor has a control. A monitor can have a control, but a control cannot exist without a monitor.
    • clear

      public void clear()
      Deletes all items from selectedItems.
    • isVisible

      public boolean isVisible()
      A monitor is visible if all of its selected components are visible, and it is not hidden explicitly.
      Specified by:
      isVisible in interface chemaxon.marvin.space.UsableObject
      Overrides:
      isVisible in class GraphicComponent
      Returns:
      visibility of the component
    • hasInvisibleItem

      public boolean hasInvisibleItem()
      Retruns true if any of the selected elements is hidden. (This monitor won't be displayed then.)
    • refersTo

      public boolean refersTo(GraphicComponent component)
      Retruns true if component is between the selected elements.
    • unSelect

      public void unSelect()
      Sets the component not to be selected.
      Specified by:
      unSelect in interface chemaxon.marvin.space.UsableObject
      Overrides:
      unSelect in class GraphicComponent
    • pickedIndicator

      public double pickedIndicator()
      Monitors do not really have z coordinate, they are the nearer to us. Apart from that in case of picking every component tells its z coordinate so we can tell which component is really picked (the nearest). This function returns a virtual z coordinate, which represents a very near object. If locateObject() returns the same as pickedIndicator(), then we say that the monitor was picked.
    • hasTransparentPart

      public boolean hasTransparentPart()
      In wire mode (now only this is available) monitors are drawn with blending enabled.
      Overrides:
      hasTransparentPart in class GraphicComponent
      Returns:
      will the component draw with transparency