|
||||||||||
| 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 serwera
public 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,
Traceroutepublic 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 | |||||||||