ui.view

## Class UnitGraph

- java.lang.Object
- - java.awt.Component
  - - java.awt.Container
    - - javax.swing.JComponent
      - - javax.swing.JPanel
        - - ui.view.UnitGraph

- All Implemented Interfaces:
    java.awt.event.ComponentListener, java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible

      public class UnitGraph
      extends javax.swing.JPanel
      implements java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.awt.event.ComponentListener

  This Class represents a Graph where the User can model the behavior of elements and switches over time.
  Author:
    Gruppe14
  See Also:
    Serialized Form

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class javax.swing.JComponent

      `javax.swing.JComponent.AccessibleJComponent`

    - ### Nested classes/interfaces inherited from class java.awt.Component

      `java.awt.Component.BaselineResizeBehavior`

  - ### Field Summary

    - ### Fields inherited from class javax.swing.JComponent

      `TOOL_TIP_TEXT_KEY, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW`

    - ### Fields inherited from class java.awt.Component

      `BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT`

    - ### Fields inherited from interface java.awt.image.ImageObserver

      `ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `UnitGraph(Model model, Control control)` Constructor.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.awt.geom.CubicCurve2D` | `buildCurve(java.awt.Point p1, java.awt.Point p2)` Build a Curve for the Graph.
    `void` | `componentHidden(java.awt.event.ComponentEvent e)`
    `void` | `componentMoved(java.awt.event.ComponentEvent e)`
    `void` | `componentResized(java.awt.event.ComponentEvent e)` When the Component is Resized.
    `void` | `componentShown(java.awt.event.ComponentEvent e)`
    `double` | `convertToCanvasY(float d)` converts the number to fit the canvas.
    `float` | `convertToValueY(double d)` converts the number to fit the value.
    `void` | `elementDragged(java.awt.event.MouseEvent e)` When a Point of a Holon Element is dragged.
    `void` | `elementPressed(java.awt.event.MouseEvent e)` When a point of a Holon Element is pressed.
    `void` | `empty()` Empty the Graph.
    `void` | `fillArrayofBooleans()` Fills the Arrays with booleans.
    `void` | `fillArrayofValue()` Fills the Arrays of each HolonElement.
    `float` | `getIntersectionPoint(java.awt.geom.Line2D l1, java.awt.geom.Line2D l2)` Get the Intersection Point of 2 Lines.
    `float` | `getYValueAt(int xVal)` Get the Y Value at the x Coordination.
    `float` | `getYValueAt2(int xVal)` Get y value at the x Coordination via curves.
    `void` | `mouseClicked(java.awt.event.MouseEvent e)`
    `void` | `mouseDragged(java.awt.event.MouseEvent e)`
    `void` | `mouseEntered(java.awt.event.MouseEvent e)`
    `void` | `mouseExited(java.awt.event.MouseEvent e)`
    `void` | `mouseMoved(java.awt.event.MouseEvent e)`
    `void` | `mousePressed(java.awt.event.MouseEvent e)`
    `void` | `mouseReleased(java.awt.event.MouseEvent e)`
    `void` | `paintComponent(java.awt.Graphics g)` Paints all Components on the Canvas.
    `void` | `repaintWithNewElement(java.util.ArrayList<HolonElement> selectedElement)` Visualize the HolonElement on the Graph.
    `void` | `repaintWithNewSwitch(HolonSwitch s)` Visualize the Switch on the Graph.
    `void` | `reset()` Resets the Points for the Element.
    `void` | `switchDragged(java.awt.event.MouseEvent e)` When a Point of a switch is dragged.
    `void` | `switchPressed(java.awt.event.MouseEvent e)` When a point of a Switch is pressed.

    - ### Methods inherited from class javax.swing.JPanel

      `getAccessibleContext, getUI, getUIClassID, setUI, updateUI`

    - ### Methods inherited from class javax.swing.JComponent

      `addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintImmediately, paintImmediately, print, printAll, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update`

    - ### Methods inherited from class java.awt.Container

      `add, add, add, add, add, addContainerListener, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate`

    - ### Methods inherited from class java.awt.Component

      `action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, contains, createImage, createImage, createVolatileImage, createVolatileImage, dispatchEvent, enable, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle`

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### UnitGraph

          public UnitGraph(Model model,
                           Control control)

      Constructor.
      Parameters:
        `model` - the Model
        `control` - the Controller

  - ### Method Detail

    - #### paintComponent

          public void paintComponent(java.awt.Graphics g)

      Paints all Components on the Canvas.
      Overrides:
        `paintComponent` in class `javax.swing.JComponent`
      Parameters:
        `g` - Graphics

    - #### mouseDragged

          public void mouseDragged(java.awt.event.MouseEvent e)

      Specified by:
        `mouseDragged` in interface `java.awt.event.MouseMotionListener`

    - #### elementDragged

          public void elementDragged(java.awt.event.MouseEvent e)

      When a Point of a Holon Element is dragged.
      Parameters:
        `e` - MouseEvent

    - #### switchDragged

          public void switchDragged(java.awt.event.MouseEvent e)

      When a Point of a switch is dragged.
      Parameters:
        `e` - MouseEvent

    - #### mouseMoved

          public void mouseMoved(java.awt.event.MouseEvent e)

      Specified by:
        `mouseMoved` in interface `java.awt.event.MouseMotionListener`

    - #### mouseClicked

          public void mouseClicked(java.awt.event.MouseEvent e)

      Specified by:
        `mouseClicked` in interface `java.awt.event.MouseListener`

    - #### mouseEntered

          public void mouseEntered(java.awt.event.MouseEvent e)

      Specified by:
        `mouseEntered` in interface `java.awt.event.MouseListener`

    - #### mouseExited

          public void mouseExited(java.awt.event.MouseEvent e)

      Specified by:
        `mouseExited` in interface `java.awt.event.MouseListener`

    - #### mousePressed

          public void mousePressed(java.awt.event.MouseEvent e)

      Specified by:
        `mousePressed` in interface `java.awt.event.MouseListener`

    - #### elementPressed

          public void elementPressed(java.awt.event.MouseEvent e)

      When a point of a Holon Element is pressed.
      Parameters:
        `e` - MouseEvent

    - #### switchPressed

          public void switchPressed(java.awt.event.MouseEvent e)

      When a point of a Switch is pressed.
      Parameters:
        `e` - MouseEvent

    - #### mouseReleased

          public void mouseReleased(java.awt.event.MouseEvent e)

      Specified by:
        `mouseReleased` in interface `java.awt.event.MouseListener`

    - #### componentResized

          public void componentResized(java.awt.event.ComponentEvent e)

      When the Component is Resized.
      Specified by:
        `componentResized` in interface `java.awt.event.ComponentListener`
      Parameters:
        `e` - ComponentEvent

    - #### componentHidden

          public void componentHidden(java.awt.event.ComponentEvent e)

      Specified by:
        `componentHidden` in interface `java.awt.event.ComponentListener`

    - #### componentMoved

          public void componentMoved(java.awt.event.ComponentEvent e)

      Specified by:
        `componentMoved` in interface `java.awt.event.ComponentListener`

    - #### componentShown

          public void componentShown(java.awt.event.ComponentEvent e)

      Specified by:
        `componentShown` in interface `java.awt.event.ComponentListener`

    - #### empty

          public void empty()

      Empty the Graph.

    - #### reset

          public void reset()

      Resets the Points for the Element.

    - #### convertToCanvasY

          public double convertToCanvasY(float d)

      converts the number to fit the canvas.
      Parameters:
        `d` - the number to convert
      Returns:
        the converted number

    - #### convertToValueY

          public float convertToValueY(double d)

      converts the number to fit the value.
      Parameters:
        `d` - the number to convert
      Returns:
        the converted number

    - #### repaintWithNewElement

          public void repaintWithNewElement(java.util.ArrayList<HolonElement> selectedElement)

      Visualize the HolonElement on the Graph.
      Parameters:
        `selectedElement` - which should be visualized

    - #### repaintWithNewSwitch

          public void repaintWithNewSwitch(HolonSwitch s)

      Visualize the Switch on the Graph.
      Parameters:
        `s` - which should be visualized

    - #### buildCurve

          public java.awt.geom.CubicCurve2D buildCurve(java.awt.Point p1,
                                                       java.awt.Point p2)

      Build a Curve for the Graph.
      Parameters:
        `p1` - startpoint
        `p2` - endpoint
      Returns:
        the CubicCurve2D for the Graph

    - #### fillArrayofBooleans

          public void fillArrayofBooleans()

      Fills the Arrays with booleans.

    - #### fillArrayofValue

          public void fillArrayofValue()

      Fills the Arrays of each HolonElement.

    - #### getYValueAt

          public float getYValueAt(int xVal)

      Get the Y Value at the x Coordination.
      Parameters:
        `xVal` - the x value for the y value
      Returns:
        y, the value at x

    - #### getYValueAt2

          public float getYValueAt2(int xVal)

      Get y value at the x Coordination via curves.
      Parameters:
        `xVal` - the x value for the y value
      Returns:
        y value at x

    - #### getIntersectionPoint

          public float getIntersectionPoint(java.awt.geom.Line2D l1,
                                            java.awt.geom.Line2D l2)

      Get the Intersection Point of 2 Lines.
      Parameters:
        `l1` - the first Line
        `l2` - the second Line
      Returns:
        The Intersection Point