Class MapGraph
java.lang.Object
org.graphstream.graph.implementations.AbstractElement
org.graphstream.graph.implementations.AbstractGraph
org.graphstream.graph.implementations.AdjacencyListGraph
org.graphstream.graph.implementations.MultiGraph
org.unibl.etf.pj2.app.graph.MapGraph
- All Implemented Interfaces:
Iterable<org.graphstream.graph.Node>,org.graphstream.graph.Element,org.graphstream.graph.Graph,org.graphstream.graph.Structure,org.graphstream.stream.AttributeSink,org.graphstream.stream.ElementSink,org.graphstream.stream.Pipe,org.graphstream.stream.Replayable,org.graphstream.stream.Sink,org.graphstream.stream.Source
public final class MapGraph
extends org.graphstream.graph.implementations.MultiGraph
Klasa izvedenica od MultiGraph-a iz GraphStream biblioteke.
Opisuje usmjeren graf koji moze da ima bilo koji broj ulaznih i izlaznih grana u jednom cvoru.
Ulazne i izlazne grane opisuju polaske sa cvora i dolaske na cvor, respektivno.
- Author:
- Nikola Markovic
-
Nested Class Summary
Nested classes/interfaces inherited from class org.graphstream.graph.implementations.AdjacencyListGraph
org.graphstream.graph.implementations.AdjacencyListGraph.EdgeIterator<T extends org.graphstream.graph.Edge>, org.graphstream.graph.implementations.AdjacencyListGraph.NodeIterator<T extends org.graphstream.graph.Node>Nested classes/interfaces inherited from class org.graphstream.graph.implementations.AbstractElement
org.graphstream.graph.implementations.AbstractElement.AttributeChangeEventNested classes/interfaces inherited from interface org.graphstream.stream.Replayable
org.graphstream.stream.Replayable.Controller -
Field Summary
Fields inherited from class org.graphstream.graph.implementations.AdjacencyListGraph
DEFAULT_EDGE_CAPACITY, DEFAULT_NODE_CAPACITY, edgeArray, edgeCount, edgeMap, GROW_FACTOR, nodeArray, nodeCount, nodeMapFields inherited from class org.graphstream.graph.implementations.AbstractElement
attributes, attributesBeingRemoved, id -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionorg.graphstream.graph.NodeMetoda za dodavanje novih cvorova u graf sa vec ustanovljenimorg.unibl.etf.pj2.app.ui.styleatributom.voidMetoda za uklanjanje svih grana u grafu.voidconnectAdjacent(String weightCriteria) Metoda koja povezuje logicki susjedne grane (gradove) koristeci pomocnu DepartureUtility klasu koja radi sa podacima iz ulaznog JSON-a.private voidMetoda za podrazumijevanu distribuciju cvorova na grafickom prikazu.private voidPrethodno koristena metoda za distribuciju cvorova.voidMetoda za generisanje i prvobitnu distribuciju cvorova grafa po ulasku u aplikaciju.voidsetSelected(String nodeId, boolean state, String type) Metoda za vizuelni prikaz selektovanja i deselektovanja nekog cvora.Methods inherited from class org.graphstream.graph.implementations.AdjacencyListGraph
addEdgeCallback, addNodeCallback, clearCallback, edges, getEdge, getEdge, getEdgeCount, getNode, getNode, getNodeCount, nodes, removeEdgeCallback, removeNodeCallbackMethods inherited from class org.graphstream.graph.implementations.AbstractGraph
addAttributeSink, addEdge, addEdge, addElementSink, addSink, attributeChanged, attributeSinks, clear, clearAttributeSinks, clearElementSinks, clearSinks, display, display, edgeAdded, edgeAttributeAdded, edgeAttributeChanged, edgeAttributeRemoved, edgeFactory, edgeRemoved, elementSinks, getReplayController, getStep, graphAttributeAdded, graphAttributeChanged, graphAttributeRemoved, graphCleared, isAutoCreationEnabled, isStrict, iterator, nodeAdded, nodeAttributeAdded, nodeAttributeChanged, nodeAttributeRemoved, nodeFactory, nodeRemoved, removeAttributeSink, removeEdge, removeEdge, removeEdge, removeElementSink, removeNode, removeNode, removeSink, setAutoCreate, setEdgeFactory, setNodeFactory, setStrict, stepBegins, stepBeginsMethods inherited from class org.graphstream.graph.implementations.AbstractElement
attributeKeys, clearAttributes, clearAttributesWithNoEvent, getAttribute, getAttribute, getAttributeCount, getFirstAttributeOf, getFirstAttributeOf, getId, getIndex, hasAttribute, hasAttribute, removeAttribute, setAttribute, setIndex, toStringMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.graphstream.graph.Element
attributeKeys, clearAttributes, getArray, getAttribute, getAttribute, getAttributeCount, getFirstAttributeOf, getFirstAttributeOf, getId, getIndex, getLabel, getMap, getNumber, getVector, hasArray, hasAttribute, hasAttribute, hasLabel, hasMap, hasNumber, hasVector, removeAttribute, setAttribute, setAttributesMethods inherited from interface org.graphstream.graph.Graph
addEdge, addEdge, addEdge, addEdge, addEdge, read, read, removeEdge, removeEdge, removeEdge, removeEdge, removeNode, removeNode, write, writeMethods inherited from interface java.lang.Iterable
forEach, spliterator
-
Constructor Details
-
MapGraph
- Parameters:
id- Identifikator grafa
-
-
Method Details
-
setNodes
-
connectAdjacent
Metoda koja povezuje logicki susjedne grane (gradove) koristeci pomocnu DepartureUtility klasu koja radi sa podacima iz ulaznog JSON-a. U zavisnosti od odabranog kriterijumaweightCriteria, tezine izmedju cvorova mogu da poprime sljedece vrijednosti:"duration"- vremenska duzina puta izmedju dva cvora"price"- cijena puta izmedju dva cvora"vehicle"- konstantna vrijednost (x cvorova proputovanih -> x tezine)
- Parameters:
weightCriteria- Kriterijum tezina grana
-
clearEdges
public void clearEdges()Metoda za uklanjanje svih grana u grafu. -
addNode
Metoda za dodavanje novih cvorova u graf sa vec ustanovljenimorg.unibl.etf.pj2.app.ui.styleatributom.- Specified by:
addNodein interfaceorg.graphstream.graph.Graph- Overrides:
addNodein classorg.graphstream.graph.implementations.AbstractGraph- Parameters:
id- Identifikator novog cvora- Returns:
- Objekat tipa
Nodenovokreiranog cvora
-
setSelected
Metoda za vizuelni prikaz selektovanja i deselektovanja nekog cvora.- Parameters:
nodeId- Identifikator cvora za selekciju/deselekcijustate- Novo stanje cvoranodeId- selektovan (true) ili deselektovan (false). Stanjefalseuvijek cvoru daje default izgled, bez obzira na vrijednost parametratype.type- Tip selekcije:"A"- selektovan (izgled 1)"B"- selektovan (izgled 2)"C"- selektovan (izgled 3)
org.unibl.etf.pj2.app.state.
-
distributeNodes
private void distributeNodes()Metoda za podrazumijevanu distribuciju cvorova na grafickom prikazu. Cvorovi se distribuisu u grupe velicinesqrt(n * m), gdje svaka grupa sadrzi ~n cvorova poredanih jedan do drugog, slijeva nadesno. Svaka naredna grupa (na svakih ~m cvorova) je takodje pomjerena vertikalno nagore za neku konstantnu vrijednost. -
distributeNodesLegacy
private void distributeNodesLegacy()Prethodno koristena metoda za distribuciju cvorova. Cvorovi se distribuisu nasumicno tako da se postigne sto je veca moguca vidljivost pojedinacnih cvorova, odnosno sto je manje moguce preklopljenih cvorova.
-