es.ants.felixgm.trmsim_wsn.gui.networkpanels
Class NetworkPanel

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by es.ants.felixgm.trmsim_wsn.gui.networkpanels.NetworkPanel
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible
Direct Known Subclasses:
EigenTrustNetworkPanel, PowerTrustNetworkPanel, TRIPNetworkPanel

public class NetworkPanel
extends javax.swing.JPanel

This class implements a panel for plotting a network

Since:
0.4
Version:
0.5
Author:
Félix Gómez Mármol, Gregorio Martínez Pérez
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
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
protected  java.awt.Color axesColor
          Color used to plot the axes
protected  double axesMargin
           
protected  java.awt.Color backgroundColor
          Background color
protected  java.awt.Color benevolentServerColor
          Benevolent servers color
protected  java.awt.Color clientColor
          Clients color
protected  java.awt.Color gridColor
          Color used to plot the grid
protected  java.awt.Color idleClientColor
          Idle clients color
protected  java.awt.Color idleServerColor
          Idle servers color
protected  java.awt.Color linksColor
          Links color
protected  java.awt.Color maliciousServerColor
          Malicious servers color
protected  Network network
          Network to be plotted
protected  int numTicks
           
protected  double radioRange
          Sensors radio range
protected  java.awt.Color relayServerColor
          Relay servers color
protected  Service requiredService
          Service requested by the clients of the network
protected  boolean showGrid
          Indicates whether to plot a grid or not
protected  boolean showIds
          Indicates whether to plot sensors identifiers or not
protected  boolean showLinks
          Indicates whether to plot links between sensors or not
protected  boolean showRanges
          Indicates whether to plot sensors radio ranges or not
protected  double xAxisLength
           
protected  double xOrigin
           
protected  double yAxisLength
           
protected  double yOrigin
           
 
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
NetworkPanel()
          Creates new form NetworkPanel
 
Method Summary
protected  void drawAxes(java.awt.Graphics graphics)
           
protected  void drawGrid(java.awt.Graphics graphics)
           
 java.awt.Point getCoordinateAtPosition(int x, int y)
           
protected  void paintComponent(java.awt.Graphics graphics)
           
 void paintNetwork(Network network, Service requiredService, double radioRange, boolean showRanges, boolean showLinks, boolean showIds, boolean showGrid)
          This method plots a Wireless Sensor Network
protected  void paintNetwork(Network network, Service requiredService, double radioRange, boolean showRanges, boolean showLinks, boolean showIds, boolean showGrid, java.awt.Graphics graphics)
          This method plots a Wireless Sensor Network
protected  void paintSensor(Sensor sensor, java.awt.Color color, java.awt.Graphics graphics)
          This method plots a wireless sensor
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, 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, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, 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
 
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
 

Field Detail

axesMargin

protected double axesMargin

xOrigin

protected double xOrigin

yOrigin

protected double yOrigin

xAxisLength

protected double xAxisLength

yAxisLength

protected double yAxisLength

numTicks

protected int numTicks

backgroundColor

protected java.awt.Color backgroundColor
Background color


clientColor

protected java.awt.Color clientColor
Clients color


benevolentServerColor

protected java.awt.Color benevolentServerColor
Benevolent servers color


maliciousServerColor

protected java.awt.Color maliciousServerColor
Malicious servers color


relayServerColor

protected java.awt.Color relayServerColor
Relay servers color


idleClientColor

protected java.awt.Color idleClientColor
Idle clients color


idleServerColor

protected java.awt.Color idleServerColor
Idle servers color


linksColor

protected java.awt.Color linksColor
Links color


axesColor

protected java.awt.Color axesColor
Color used to plot the axes


gridColor

protected java.awt.Color gridColor
Color used to plot the grid


network

protected Network network
Network to be plotted


requiredService

protected Service requiredService
Service requested by the clients of the network


radioRange

protected double radioRange
Sensors radio range


showRanges

protected boolean showRanges
Indicates whether to plot sensors radio ranges or not


showLinks

protected boolean showLinks
Indicates whether to plot links between sensors or not


showIds

protected boolean showIds
Indicates whether to plot sensors identifiers or not


showGrid

protected boolean showGrid
Indicates whether to plot a grid or not

Constructor Detail

NetworkPanel

public NetworkPanel()
Creates new form NetworkPanel

Method Detail

paintComponent

protected void paintComponent(java.awt.Graphics graphics)
Overrides:
paintComponent in class javax.swing.JComponent

paintNetwork

public void paintNetwork(Network network,
                         Service requiredService,
                         double radioRange,
                         boolean showRanges,
                         boolean showLinks,
                         boolean showIds,
                         boolean showGrid)
                  throws java.lang.Exception
This method plots a Wireless Sensor Network

Parameters:
network - Wireless Sensor Network to be plotted
requiredService - Service requested by the clients (needed in order to paint and distinguish benevolent and malicious servers)
radioRange - Sensors radio range
showRanges - Indicates whether to plot sensors radio ranges or not
showLinks - Indicates whether to plot links between sensors or not
showIds - Indicates whether to plot sensors identifiers or not
showGrid - Indicates whether to plot a grid or not
Throws:
java.lang.Exception - If any error occurs while plotting a WSN

paintSensor

protected void paintSensor(Sensor sensor,
                           java.awt.Color color,
                           java.awt.Graphics graphics)
This method plots a wireless sensor

Parameters:
sensor - Wireless sensor to be plotted
color - Color of the sensor to be plotted
graphics - Graphic object where to plot the sensor

paintNetwork

protected void paintNetwork(Network network,
                            Service requiredService,
                            double radioRange,
                            boolean showRanges,
                            boolean showLinks,
                            boolean showIds,
                            boolean showGrid,
                            java.awt.Graphics graphics)
                     throws java.lang.Exception
This method plots a Wireless Sensor Network

Parameters:
network - Wireless Sensor Network to be plotted
requiredService - Service requested by the clients (needed in order to paint and distinguish benevolent and malicious servers)
radioRange - Sensors radio range
showRanges - Indicates whether to plot sensors radio ranges or not
showLinks - Indicates whether to plot links between sensors or not
showIds - Indicates whether to plot sensors identifiers or not
showGrid - Indicates whether to plot a grid or not
graphics - Graphic object where to plot the wireless sensor network
Throws:
java.lang.Exception - If any error occurs while plotting a WSN

drawGrid

protected void drawGrid(java.awt.Graphics graphics)

drawAxes

protected void drawAxes(java.awt.Graphics graphics)

getCoordinateAtPosition

public java.awt.Point getCoordinateAtPosition(int x,
                                              int y)