org.ka2ddo.yaac.gui
Class LineOfSightPanel

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by org.ka2ddo.yaac.gui.LineOfSightPanel
All Implemented Interfaces:
java.awt.event.ComponentListener, java.awt.event.MouseListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, java.util.Observer

public class LineOfSightPanel
extends javax.swing.JComponent
implements java.awt.event.ComponentListener, java.awt.event.MouseListener, java.util.Observer

This panel displays a side-view plot of the straight-line propagation path between two points on the map, using the SRTM topographic data (assuming it is available).

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.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, 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
LineOfSightPanel(double startLat, double startLon)
          Create the LineOfSightPanel with both ends of the great circle route at the same point (for now),
 
Method Summary
 void componentHidden(java.awt.event.ComponentEvent e)
          Callback invoked when the LineOfSightPanel has been made invisible.
 void componentMoved(java.awt.event.ComponentEvent e)
          Callback invoked when the component's position changes.
 void componentResized(java.awt.event.ComponentEvent e)
          Callback invoked when the component's size changes.
 void componentShown(java.awt.event.ComponentEvent e)
          Callback invoked when the LineOfSightPanel has been made visible.
 float getEndAGLM()
          Get the end point's altitude above ground level (AGL).
 java.awt.geom.Point2D getEndPoint()
          Get the current end point of the great circle route.
 float getStartAGLM()
          Get the start point's altitude above ground level (AGL).
 java.awt.geom.Point2D getStartPoint()
          Get the current start point of the great circle route.
 float getStartUpTilt()
          Compute the uptilt (downtilt is negative) at the starting point to look at the ending point, relative to the start point's tangential horizontal plane.
 void mouseClicked(java.awt.event.MouseEvent e)
          Callback invoked when the mouse button has been clicked (pressed and released) on a LineOfSightPanel.
 void mouseEntered(java.awt.event.MouseEvent e)
          Callback invoked when the mouse enters a LineOfSightPanel.
 void mouseExited(java.awt.event.MouseEvent e)
          Callback invoked when the mouse exits a LineOfSightPanel.
 void mousePressed(java.awt.event.MouseEvent e)
          Callback invoked when a mouse button has been pressed on a LineOfSightPanel.
 void mouseReleased(java.awt.event.MouseEvent e)
          Callback invoked when a mouse button has been released on a LineOfSightPanel.
protected  void paintComponent(java.awt.Graphics g)
          Paint the LineOfSightPanel.
 void setEndAGLM(float endAGLM)
          Set the end point's altitude above ground level (AGL).
 void setEndPoint(java.awt.geom.Point2D pt)
          Set the current end point of the great circle route.
 void setStartAGLM(float startAGLM)
          Set the start point's altitude above ground level (AGL).
 void setStartPoint(java.awt.geom.Point2D pt)
          Set the current start point of the great circle route.
 void update(java.util.Observable o, java.lang.Object arg)
          This method is called whenever the observed AttentionAlert is cancelled.
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getAccessibleContext, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, 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, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, paramString, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, 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, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update, updateUI
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, 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, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, 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, hide, 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, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, 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, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

LineOfSightPanel

public LineOfSightPanel(double startLat,
                        double startLon)
Create the LineOfSightPanel with both ends of the great circle route at the same point (for now),

Parameters:
startLat - initial latitude in fractional degrees North
startLon - initial longitude in fractional degrees East
Method Detail

getEndPoint

public java.awt.geom.Point2D getEndPoint()
Get the current end point of the great circle route.

Returns:
Point2D containing the latitude and longitude of the end point

getStartPoint

public java.awt.geom.Point2D getStartPoint()
Get the current start point of the great circle route.

Returns:
Point2D containing the latitude and longitude of the start point

getEndAGLM

public float getEndAGLM()
Get the end point's altitude above ground level (AGL).

Returns:
altitude in meters

setEndAGLM

public void setEndAGLM(float endAGLM)
Set the end point's altitude above ground level (AGL).

Parameters:
endAGLM - altitude in meters

getStartAGLM

public float getStartAGLM()
Get the start point's altitude above ground level (AGL).

Returns:
altitude in meters

setStartAGLM

public void setStartAGLM(float startAGLM)
Set the start point's altitude above ground level (AGL).

Parameters:
startAGLM - altitude in meters

setStartPoint

public void setStartPoint(java.awt.geom.Point2D pt)
Set the current start point of the great circle route.

Parameters:
pt - Point2D containing the latitude and longitude of the start point

setEndPoint

public void setEndPoint(java.awt.geom.Point2D pt)
Set the current end point of the great circle route.

Parameters:
pt - Point2D containing the latitude and longitude of the end point

paintComponent

protected void paintComponent(java.awt.Graphics g)
Paint the LineOfSightPanel.

Overrides:
paintComponent in class javax.swing.JComponent
Parameters:
g - the Graphics object to protect
See Also:
JComponent.paint(java.awt.Graphics), ComponentUI

getStartUpTilt

public float getStartUpTilt()
Compute the uptilt (downtilt is negative) at the starting point to look at the ending point, relative to the start point's tangential horizontal plane.

Returns:
uptilt in degrees

componentHidden

public void componentHidden(java.awt.event.ComponentEvent e)
Callback invoked when the LineOfSightPanel has been made invisible.

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

componentResized

public void componentResized(java.awt.event.ComponentEvent e)
Callback invoked when the component's size changes.

Specified by:
componentResized in interface java.awt.event.ComponentListener

componentMoved

public void componentMoved(java.awt.event.ComponentEvent e)
Callback invoked when the component's position changes.

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

componentShown

public void componentShown(java.awt.event.ComponentEvent e)
Callback invoked when the LineOfSightPanel has been made visible.

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

mouseClicked

public void mouseClicked(java.awt.event.MouseEvent e)
Callback invoked when the mouse button has been clicked (pressed and released) on a LineOfSightPanel.

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

mousePressed

public void mousePressed(java.awt.event.MouseEvent e)
Callback invoked when a mouse button has been pressed on a LineOfSightPanel.

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

mouseReleased

public void mouseReleased(java.awt.event.MouseEvent e)
Callback invoked when a mouse button has been released on a LineOfSightPanel.

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

mouseEntered

public void mouseEntered(java.awt.event.MouseEvent e)
Callback invoked when the mouse enters a LineOfSightPanel.

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

mouseExited

public void mouseExited(java.awt.event.MouseEvent e)
Callback invoked when the mouse exits a LineOfSightPanel.

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

update

public void update(java.util.Observable o,
                   java.lang.Object arg)
This method is called whenever the observed AttentionAlert is cancelled.

Specified by:
update in interface java.util.Observer
Parameters:
o - the observable AttentionAlert.
arg - an argument passed to the notifyObservers method.