|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjava.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JPanel
pl.trammer.ludwik.geo.LudMapPanel
pl.trammer.ludwik.geo.HttpMap
public class HttpMap
Klasa dziedzicząca z klasy LudMapPanel
, przystosowana do graficznego
prezentowania na mapie komunikacji z serwerami. Wewnątrz klasy przechowywana jest lista serwerów
i obiektów klasy HttpMap.ConversationProperties
, zawierających dane o komunikacji z tymi serwerami.
Klasa posiada m.in. metody pozwalające na dodawanie kolejnych serwerów do wyświetlenia oraz na oznaczanie części z nich jako wyróżnione.
Terminologia:
HttpMap.ConversationProperties
, takie jak współrzędne geograficzne serwera, lista pośrednich routerów,
suma ilości otrzymanych danych i średnie opóźnienie.
Nested Class Summary | |
---|---|
class |
HttpMap.ConversationProperties
Obiekty tej klasy przechowują zbiorcze informacje na temat komunikacji z serwerem, wykorzystywane do rysowania na mapie ścieżek połączeń między hostami. |
class |
HttpMap.IntermediateRouter
Obiekty tej klasy symbolizują routery pośredniczące w komunikacji z serwerem. |
Nested classes/interfaces inherited from class javax.swing.JComponent |
---|
JComponent.AccessibleJComponent |
Nested classes/interfaces inherited from class java.awt.Component |
---|
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 | |
---|---|
HttpMap()
|
Method Summary | |
---|---|
void |
clear()
Usuwa wszystkie informacje o wcześniejszej komunikacji z serwerami. |
void |
drawConnection(Graphics2D g2d,
HttpMap.ConversationProperties properties,
float saturation,
float brigthness)
Rysuje na mapie linie symbolizującą komunikację z serwerem, której właściwości zostały przekazane jako parametr properties . |
void |
drawText(Graphics2D g2d,
String text,
Coordinates co,
Color color)
Wypisywanie tekstu w określonym punkcie mapy. |
void |
paintComponent(Graphics g)
Rysuje na mapie informacje o komunikacji z serwerami wg. |
void |
processConnection(InetAddress server,
double latency,
int length)
Przekazuje do obiektu informacje o pojedyńczym połączeniu z serwerem (wraz z parametrami takimi jak ilość otrzymanych danych i opóźnienie). |
void |
processResponse(ServerResponse response)
Na podstawie obiektu klasy ServerResponse przekazuje do obiektu
informacje na temat połączenia w ramach którego otrzymano tę odpowiedź. |
void |
setSelected(Set<InetAddress> selected)
Ustawia listę serwerów, które mają zostać wyróżnione na mapie. |
Methods inherited from class pl.trammer.ludwik.geo.LudMapPanel |
---|
CoordinatesToMapPoint, getMapCenter, getMapUpperLeftCorner, scale |
Methods inherited from class javax.swing.JPanel |
---|
getAccessibleContext, getUI, getUIClassID, setUI, updateUI |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public HttpMap()
Method Detail |
---|
public void processResponse(ServerResponse response)
ServerResponse
przekazuje do obiektu
informacje na temat połączenia w ramach którego otrzymano tę odpowiedź.
Odbywa się to zgodnie z zasadami opisanymi przy okazji metody
processConnection(InetAddress, double, int)
.
response
- odpowiedź od serwerapublic void processConnection(InetAddress server, double latency, int length)
Jeśli na mapie nie było wcześniej informacji o komunikacji z danym serwerem to metoda sprawdzi
(w nowym wątku) fizyczne położenie serwera, oraz ścieżkę routerów na drodze do niego (traceroute)
i doda do mapy informacje o komunikacji z serwerem.
Jeśli mapa obejmowała już wcześniej komunikację z danym serwerem to metoda jedynie
zaktualizuje jej właściwości korzystając z parametrów
latency
(opóźnienie) i length
(ilość danych w połączniu).
server
- adres ip serwera którego dotyczy to połączenielatency
- wartość opóźnienia w połączeniu (w sekundach)length
- ilość bajtów danych otrzymanych w ramach danego połączeniaHttpMap.ConversationProperties.update(double, int)
,
paintComponent(Graphics)
,
Geolocation
,
Traceroute
public void clear()
public void paintComponent(Graphics g)
Każda linia narysowana na mapie symbolizuje sumę wszystkich połączeń wykonanych
z danym serwerem. Grubość i kolor linii zależy od właściwości opisanych w opisie
metody drawConnection(Graphics2D, ConversationProperties, float, float)
.
Jeśli obiekt otrzymał listę "wyróżnionych" połączeń (czyli w praktyce tych, które są zaznaczone w tabeli pod mapą) to pozostałe linie zostaną "wyszarzone", a do wyróżnionych linii dodatkowo dodane zostaną etykiety komputerów na krańcach połączenia (na biało) oraz routerów biorących udział w przekazywaniu wiadomości (na szaro).
paintComponent
in class LudMapPanel
public void drawText(Graphics2D g2d, String text, Coordinates co, Color color)
g2d
- kontekst graficznytext
- tekst do wypisaniaco
- współrzędne geograficzne punktu na mapie w którym
ma zostać wypisany tekstcolor
- kolor tekstu (niezależnie od wybranego koloru tekst
będzie dodatkowo posiadał czarny cień)public void drawConnection(Graphics2D g2d, HttpMap.ConversationProperties properties, float saturation, float brigthness)
properties
.
Grubość linii zależy od sumy ilości danych, które zostały otrzymwane w komunikacji z serwerem. Bazowo jest to 1px, każde pełne 50kb otrzymanych danych zwiększa grubość o dodatkowe 1px. Maksymalna grubość to 10px.
Kolor linii zależy od średniego opóźnienia w komunikacji z serwerem. Barwa płynnie przechodzi od koloru turkusowego (wartości zbliżone do 0 ms), przez zielony i żółty aż do czerwonego (wartości w okolicach 500ms i więcej).
g2d
- kontekst graficznyproperties
- właściwości komunikacji do narysowaniasaturation
- nasycenie koloru liniibrigthness
- jasność koloru liniipublic void setSelected(Set<InetAddress> selected)
selected
- adresy ip serwerów których komunikacja ma być wyróżniona
lub wartość null
jeśli nic nie ma być wyróżnione.paintComponent(Graphics)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |