Class GraphPanel<TN,TA>
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- java.awt.Panel
-
- GraphPanel<TN,TA>
-
- All Implemented Interfaces:
GraphListener,ImageReader,java.awt.event.ActionListener,java.awt.event.MouseListener,java.awt.event.MouseMotionListener,java.awt.image.ImageObserver,java.awt.MenuContainer,java.io.Serializable,java.util.EventListener,javax.accessibility.Accessible
public class GraphPanel<TN,TA> extends java.awt.Panel implements java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.awt.event.ActionListener, ImageReader, GraphListener
GraphPanel e' un Panel su cui e' visualizzato un grafo- Version:
- 4.5 1/3/2011 corretto rappresentazione degli anelli corretto collocazione dei nodi di una matrice 19/12/2012 reso GraphPanel un ImageReader aggiunto la possibilità di indicare i colori da file di testo in altre basi sistemato il flickering 20/12/2012 salva il nome del background 29/12/2012 gestione del colore dei singoli archi (non ancora visualizzato autonomamente) 1/3/2013 aggiunto costruttore che fornisce la collocazione dei nodi 4/3/2013 aggiunto metodi che ritornano il nodo dato l'indice e l'arco dati i nodi aggiunto la possibilità di modificare i testi dei menu. 3/12/2013 aggiunto metodi per la rappresentazione di un nodo con diverse forme e con riempimento 6/5/2014 aggiunto metodi per abilitare e disabilitare le modifiche, lo scivolamento e zoom interattivi sistemato la lettura di immagini da applet 23/5/14 aggiunte le nuove forme dei nodi aggiunta la gestione di GraphListener 8/7/14 aggiunta la visibilità dei percorsi aggiunta lo spessore dei segni aggiunta visualizzazione separata del colore dei pesi negli archi aggiunta la selezione di piu' nodi per modificarli assieme (muoverli e cambiarli) (SHIFT in spazio aperto per rettangolo di selezione) 23/12/15 aggiunta la selezione multipla incrementale un nodo alla volta. (selezione del nodo con SHIFT) aggiunta la possibilità di non deselezionare la selezione multipla tenendo lo SHIFT abbassato quando si attiva il menù contestuale 31/8/17 abilitati i listeners quando il popup è disabilitato 14/4/18 abilitati i listeners quando editing disabilitato aggiunto i listeners ad archi e nodi e la relativa sensibilità ai cambiamenti del GraphJPanel aggiunta la distinzione tra editabilita' e muovibilita' 15/4/18 modificata l'interfaccia GraphListener aggiungendo la cancellazione e l'inserimento di nodi e archi 16/4/18 corretta la selezione multipla con rettangoli selezionati nelle diverse direzioni 17/4/18 corretto un errore di visualizzazione degli archi perfettamente verticali verso e da nodi quadrati 23/4/18 aggiunto il comportamento adattivo e la possibilità di fissare i nodi nell'adattamento e negli spostamenti multipli 16/1/19 corretto il nome del metodo da getadjacency a getAdjacency 21/1/19 provato a sostituire BUTTON1_MASK con BUTTON1_DOWN_MASK , BUTTON3_MASK con BUTTON3_DOWN_MASK e getModifiers con getModifiersEx ma quest'ultimo non funziona su Panel 12/2/19 sistemato il default di fissaggio dei nodi 27/5/19 bloccato lo spostamento dei nodi fissati anche non durante l'adattamento sistemato il cambio di caratteristica con le selezioni multiple.
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description GraphPanel()Crea un GraphPanel di un grafo vuotoGraphPanel(Graph<TN,TA> gr)Crea un GraphPanel di un grafo datoGraphPanel(Graph<TN,TA> gr, java.awt.Image bg, java.lang.String bgn)Crea un GraphPanel di un grafo dato con una immagine di sfondoGraphPanel(java.awt.Image bg, java.lang.String bgn)Crea un GraphPanel di un grafo vuoto con una immagine di sfondoGraphPanel(java.io.Reader r)Crea un GraphPanel prelevando dal Reader r la descrizione di un grafo in due formati.GraphPanel(java.lang.String[][] couples, double[] p)Crea un GraphPanel contenente un grafo di cui viene fornita la lista di coppie di nodi con i relativi costi,GraphPanel(java.lang.String[][] couples, double[] p, int[][] pos, java.awt.Color col)Crea un GraphPanel contenente un grafo di cui viene fornita la lista di coppie di nodi con i relativi costi,GraphPanel(java.lang.String[][] couples, double[] p, java.awt.Color col)Crea un GraphPanel contenente un grafo di cui viene fornita la lista di coppie di nodi con i relativi costi,GraphPanel(java.lang.String[] name, int[][] matAd)Crea un GraphPanel contente un grafo di cui viene fornita la matrice di adiacenza e la matrice contente i nomi dei nodiGraphPanel(java.lang.String[] name, int[][] matAd, double[][][] p)Crea un GraphPanel contenente un grafo di cui viene fornita la matrice di adiacenza, la matrice contente i nomi dei nodi e la matrice dei prezzi di ogni arco.GraphPanel(java.lang.String[] name, int[][] pos, int[][] matAd, double[][][] p)Crea un GraphPanel contenente un grafo di cui viene fornita la matrice di adiacenza, la matrice contente i nomi dei nodi e la matrice dei prezzi di ogni arco.GraphPanel(java.lang.String[] name, int[][] pos, int[][] matAd, double[][][] p, java.awt.Color col)Crea un GraphPanel contenente un grafo di cui viene fornita la matrice di adiacenza, la matrice contente i nomi dei nodi e la matrice dei prezzi di ogni arco.
-
Method Summary
Modifier and Type Method Description intabsoluteX(int x)Calcola l'ascissa assoluta dato un punto del pianointabsoluteY(int y)Calcola l'ordinata assoluta dato un punto del pianovoidactionPerformed(java.awt.event.ActionEvent ae)Gestisce le azioni relative ai menubooleanaddArc(java.lang.String source, java.lang.String dest)Aggiunge un arco al grafo tra il nodo sorg e il nodo destbooleanaddArc(java.lang.String source, java.lang.String dest, double price)Aggiunge un arco al grafo tra il nodo sorg e il nodo dest con il costo indicatobooleanaddArc(java.lang.String source, java.lang.String dest, java.awt.Color c)Aggiunge un arco al grafo tra il nodo sorg e il nodo dest del colore indicatobooleanaddArc(java.lang.String source, java.lang.String dest, java.awt.Color c, double price)Aggiunge un arco al grafo tra il nodo sorg e il nodo dest con il costo indicato del colore indicatobooleanaddArc(java.lang.String source, java.lang.String dest, java.awt.Color c, int thickness, boolean visible, double price)Aggiunge un arco al grafo tra il nodo sorg e il nodo dest con il costo indicato del colore indicatovoidaddGraphListener(GraphListener gl)Aggiunge un nuovo GraphListener al pannello.booleanaddNode(java.lang.String name)Aggiunge un nodo col dato nome al grafobooleanaddNode(java.lang.String name, int x, int y)Aggiunge un nodo col dato nome al grafo in una data posizionebooleanaddNode(java.lang.String name, int x, int y, java.awt.Color c)Aggiunge un nodo col dato nome al grafo di un certo colore in una data posizionebooleanaddNode(java.lang.String name, int x, int y, java.awt.Color c, int dim)Aggiunge un nodo col dato nome al grafo di un certo colore in una data posizionebooleanaddNode(java.lang.String name, int x, int y, java.awt.Color c, int dim, int shape)Aggiunge un nodo col dato nome al grafo di un certo colore in una data posizionebooleanaddNode(java.lang.String name, int x, int y, java.awt.Color c, int dim, int shape, boolean filled)Aggiunge un nodo col dato nome al grafo di un certo colore in una data posizionebooleanaddNode(java.lang.String name, int x, int y, java.awt.Color c, int dim, int shape, boolean filled, int thickness)Aggiunge un nodo col dato nome al grafo di un certo colore in una data posizionebooleanaddNode(java.lang.String name, int x, int y, java.awt.Color c, int dim, java.lang.String image)Aggiunge un nodo col dato nome al grafo di un certo colore in una data posizionebooleanaddNode(java.lang.String name, int x, int y, java.awt.Color c, int dim, java.lang.String image, int shape, boolean filled, int thickness)Aggiunge un nodo col dato nome al grafo di un certo colore in una data posizionebooleanaddNode(java.lang.String name, int x, int y, java.awt.Color c, int dim, java.lang.String image, int shape, boolean filled, int thickness, boolean fixing)Aggiunge un nodo col dato nome al grafo di un certo colore in una data posizionebooleanaddNode(java.lang.String name, java.awt.Color c)Aggiunge un nodo col dato nome al grafo di un certo colorevoidarcAdded(GraphEvent ge)invocata quando un arco viene aggiuntovoidarcRemoved(GraphEvent ge)invocata quando un arco viene rimossovoidarcSelected(GraphEvent ge)invocata quando un arco viene selezionatobooleanchangeArcThickness(java.lang.String source, java.lang.String dest, int thickness)Modifica lo spessore di un arco del grafo tra il nodo sorg e il nodo dest con lo spessore indicatobooleanchangeArcWeight(java.lang.String source, java.lang.String dest, double price)Modifica il peso di un arco del grafo tra il nodo sorg e il nodo dest con il costo indicatovoidchanged(GraphEvent ge)invocata quando il pannello viene modificatobooleanchangeNode(java.lang.String name, NodeSign<TN> ns)Sostituisce un nodo col dato nome con il nodo indicatobooleanchangeNodeFill(java.lang.String name, boolean newFill)Modifica il riempimento di un nodo nel grafobooleanchangeNodeFix(java.lang.String name, boolean newFix)Modifica il fissaggio di un nodo nel grafobooleanchangeNodeFixing(java.lang.String name, boolean newFix)Modifica il fissaggio di un nodo nel grafobooleanchangeNodeImage(java.lang.String name, java.lang.String image)Modifica l'immagine di un nodo nel grafobooleanchangeNodeThickness(java.lang.String name, int newThick)Modifica lo spessore del bordo di un nodo nel grafovoidclear()Cancella il grafo nel GraphPanelvoidclear(boolean erase)Cancella il grafo nel GraphPanelvoidclose()Da chiamare al momento della chiusura del Panel per rilasciare le finestre aperte e chiudere i processi in corso.booleancoordOk(int i, int j)Controlla se i due indici di nodi sono validi per il grafointdegree()Ritorna l'ordine del grafo rappresentato nel GraphJPanelintdezoom(int v)Rimuove la zoommata dalla dimensionevoiddrawPath(java.awt.Color c, int[] steps)Disegna un cammino nel colore indicato Aggiunge gli archi se non presentivoiddrawPath(java.awt.Color c, int[] steps, boolean visible)Disegna un cammino nel colore indicato Aggiunge gli archi se non presentivoiddrawPath(java.awt.Color c, java.awt.Color cn, int[] steps, boolean visible)Disegna un cammino nei colori indicati.voiddrawPath(java.awt.Color c, java.awt.Color cn, java.lang.String[] steps, boolean visible)Disegna un cammino nel colore indicato Aggiunge gli archi se non presentivoiddrawPath(java.awt.Color c, java.lang.String[] steps)Disegna un cammino nel colore indicato Aggiunge gli archi se non presentivoiddrawPath(java.awt.Color c, java.lang.String[] steps, boolean visible)Disegna un cammino nel colore indicato Aggiunge gli archi se non presentiintfindNode(java.lang.String name)Ritorna l'indice del nodo dato il nomedouble[][]getAdjacency()Ritorna la matrice di adiacenza dei collegamenti tra i nodi in un passoArcSign<TN,TA>getArc(int x, int y)Ritorna l'arco indicato con le sue coordinate sul grafoArcSign<TN,TA>getArc(java.lang.String n1, java.lang.String n2)Ritorna l'arco tra due nodi, se presenteArcSign<TN,TA>getArc(NodeSign<TN> n1, NodeSign<TN> n2)Ritorna l'arco tra due nodi, se presenteArcSign<TN,TA>[][]getArcs()Ritorna la matrice degli archi presenti nel GraphPaneljava.lang.StringgetBackImage()Ritorna il nome dello sfondojava.awt.ImagegetBackImageSource()Ritorna l'immagine dello sfondojava.awt.ColorgetColor()Ritorna il colore di defaultdouble[][]getConnection(int n)Ritorna la matrice dei collegamenti tra i nodi in un dato numero di passidouble[][]getConnections()Ritorna la matrice delle connessioni tra i nodi in un numero qualsiasi di passiGraph<TN,TA>getGraph()Ritorna il grafo rappresentato nel pannelloGraphListener[]getGraphListeners()Rimuove un GraphListener dal pannello.java.awt.ImagegetImage(java.lang.String ims)Ritorna una immagine.java.lang.StringgetImageName()Ritorna l'immagine dei nodi di defaultjava.lang.StringgetName()Ritorna il nome di defaultNodeSign<TN>getNode(int i)Ritorna un nodo indicato con il suo indiceNodeSign<TN>getNode(int x, int y)Ritorna un nodo indicato con le sue coordinate sul grafoNodeSign<TN>getNode(java.lang.String s)Ritorna un nodo indicato con il suo nomebooleangetNodeFill()Ritorna il riempimento di default dei nodibooleangetNodeFixing()Ritorna il fissaggio di default dei nodiintgetNodeIndex(int x, int y)Ritorna l'indice di un nodo indicato con le sue coordinate sul grafointgetNodeIndex(java.lang.String s)Ritorna l'indice di un nodo indicato con il suo nomejava.lang.StringgetNodeName(int x, int y)Ritorna il nome di un nodo indicato con le sue coordinate sul grafoNodeSign<TN>[]getNodes()Ritorna la matrice dei nodi presenti nel GraphPanelintgetNodeShape()Ritorna la forma dei nodi di defaultintgetNodeSize()Ritorna la dimensione dei nodi di defaultjava.awt.DimensiongetPreferredSize()Ritorna la dimensione preferita del GraphPanelbooleangetShowAxis()Ritorna la visualizzazione degli assi del grafobooleangetShowNames()Ritorna la visualizzazione dei nomi dei nodi del grafobooleangetShowWeights()Ritorna la visualizzazione dei pesi degli archi del grafojava.lang.StringgetString()Deprecated.substituted by getNameintgetThickness()Ritorna lo spessore di defaultdoublegetWeight()Ritorna il peso di defaultintgetZoom()Ritorna il grado di ingrandimento del grafovoidinZoom()Ingrandisce il grafobooleanisAdaptive()Dice se e' disattivato il processo di adattamento della posizione dei nodi per consentire una corretta collocazione e dare una lunghezza richiesta agli archibooleanisEdit()Controlla se sono abilitate le modifiche sul pannellobooleanisModified()Controlla se il pannello e' stato modificatobooleanisMovable()Controlla se sono abilitati gli spostamenti sul pannellobooleanisPopUp()Controlla se e' abilitato il popup sul pannellobooleanisSliding()Controlla se e' abilitato lo scivolamento sul GraphPanelbooleanlinearise()Linearizza il grafo (Bisogna ancora risolvere la linearizzazione di piu' di due passi)voidload(java.io.Reader r)Carica un grafo nel pannello prelevando dal Reader r la matrice di adiacenza il cui formato prevede che la prima riga letta contenga il numero di nodi e la successiva riga contiene l'elenco dei nomi dei nodi e nelle righe successive sono conservati i valori della matrice di adiacenza dove le colonne e le righe conservano lo stesso ordine dei nomi dei nodi Successivamente puo' esserci la matrice dei pesi dove le colonne e le righe conservano lo stesso ordine dei nomi dei nodi e gli elementi sono i valori dei singoli archi separati da '|' In seguito, se c'e' un'altra riga, contiene una terna di valori separati da virgola per ogni nodo contenente il valore del codice del colore in decimale e le coordinate x e y del nodo nel grafo.voidload(java.io.Reader r, boolean merge)Carica un grafo nel pannello prelevando dal Reader r la descrizione di un grafo in due formati.static voidmain(java.lang.String[] s)Il programma di provavoidmouseClicked(java.awt.event.MouseEvent e)Gestisce l'evento mouse click se l'evento non e' stato gia' consumato Se il click col tasto destro è su un nodo o un arco presente se sono attivi i popup viene visualizzato il popup relativo a quel nodo/arco se ci sono listeners vengono avvertiti della selezionevoidmouseDragged(java.awt.event.MouseEvent e)Gestisce l'evento mouse dragged se l'evento non e' stato gia' consumatovoidmouseEntered(java.awt.event.MouseEvent e)Gestisce l'evento mouse enteredvoidmouseExited(java.awt.event.MouseEvent e)Gestisce l'evento mouse exitedvoidmouseMoved(java.awt.event.MouseEvent e)Gestisce l'evento mouse movedvoidmousePressed(java.awt.event.MouseEvent e)Gestisce l'evento mouse pressed se l'evento non e' stato gia' consumatovoidmouseReleased(java.awt.event.MouseEvent e)Gestisce l'evento mouse released se l'evento non e' stato gia' consumatovoidmoved(GraphEvent ge)invocata quando il pannello viene spostatovoidnodeAdded(GraphEvent ge)invocata quando un nodo viene aggiuntovoidnodeRemoved(GraphEvent ge)invocata quando un nodo viene rimossovoidnodeSelected(GraphEvent ge)invocata quando un nodo viene selezionatovoidoutZoom()Rimpicciolisce il grafovoidpaint(java.awt.Graphics g)Disegna il pannellobooleanremoveArc(int x, int y)Rimuove l'arco selezionato dal grafobooleanremoveArc(ArcSign<TN,TA> as)Rimuove un arco dal grafobooleanremoveArc(java.lang.String source, java.lang.String dest)Rimuove un arco dal grafo tra il nodo source e il nodo destbooleanremoveArcs(java.lang.String source, java.lang.String dest)Rimuove gli archi dal grafo tra il nodo source e il nodo destvoidremoveGraphListener(GraphListener gl)Rimuove un nuovo GraphListener dal pannello.booleanremoveNode(int x, int y)Rimuove il nodo selezionato dal grafobooleanremoveNode(java.lang.String name)Rimuove un nodo col dato nome dal grafobooleanrenameNode(java.lang.String name, java.lang.String newName)Rinomina un nodo nel grafovoidreset()Ripristina la zoommata e l'originebooleanreshapeNode(java.lang.String name, int newShape)Modifica la forma di un nodo nel grafobooleanresizeNode(java.lang.String name, int newSize)Modifica la dimensione di un nodo nel grafovoidsave(java.io.Writer w)Salva la matrice di adiacenza del grafo nel pannello su un Writer in un formato che prevede che la prima riga scritta contenga il numero di nodi e la successiva riga contenga l'elenco dei nomi e delle caratteristiche dei nodi.voidselectAll(boolean sel)Seleziona o deselaziona tutti i nodi del grafovoidset(GraphEvent ge)invocata quando vengono modificati i default del pannellovoidsetAdaptive(boolean ad)Attiva o disattiva il processo di adattamento della posizione dei nodi per consentire una corretta collocazione e dare una lunghezza richiesta agli archivoidsetBackImage(java.awt.Image i)Deprecated.versione 2.0 utilizzare la forma setBackImage(String i) che conserva il nome dell'immagine per poterlo salvarevoidsetBackImage(java.lang.String i)Modifica lo sfondovoidsetColor(java.awt.Color c)Stabilisce il colore di defaultvoidsetEdit(boolean is)Abilita e disabilita le modifiche sul pannellovoidsetGraph(Graph<TN,TA> g)Visualizza un grafo sul GraphPanelvoidsetGraph(Graph<TN,TA> g, int[][] c)Visualizza un grafo sul GraphPanelvoidsetGraph(Graph<TN,TA> g, int[][] c, java.awt.Color col)Visualizza un grafo sul GraphPanelvoidsetGraph(java.lang.String[] name, int[][] matAd)Inizializza il GraphPanel con un grafovoidsetGraph(java.lang.String[] name, int[][] matAd, double[][][] prices)Inizializza il GraphPanel con un grafo pesatovoidsetImageName(java.lang.String im)Stabilisce l'immagine dei nodi di defaultvoidsetImageReader(ImageReader i)Stabilisce l'ImageReader da utilizzare per la lettura delle immaginivoidsetLanguage(java.lang.String[] v, java.lang.String[] p)Sostituisce i testi nei menu e nelle finestrevoidsetModified(boolean mo)Segna come modificato il pannellovoidsetMovable(boolean is)Abilita e disabilita gli spostamenti sul pannellovoidsetName(java.lang.String s)Stabilisce il nome di defaultvoidsetNodeFill(boolean fill)Stabilisce il rempimento di dafault dei nodivoidsetNodeFixing(boolean fixing)Stabilisce il fissaggio di dafault dei nodivoidsetNodeShape(int sh)Stabilisce la forma dei nodi di defaultvoidsetNodeSize(int dim)Stabilisce la dimensione dei nodi di defaultvoidsetPopUp(boolean pu)Abilita e disabilita il popup sul pannellovoidsetShowAxis(boolean show)Stabilisce se visualizzare gli assi nel grafovoidsetShowNames(boolean show)Stabilisce se visualizzare i nomi dei nodi nel grafovoidsetShowText(boolean show)Stabilisce se visualizzare le scritte nel grafovoidsetShowWeights(boolean show)Stabilisce se visualizzare i pesi degli archi nel grafovoidsetSize(int w, int h)Modifica la dimensione del GraphPanelvoidsetSize(java.awt.Dimension d)Modifica la dimensione del GraphPanelvoidsetSliding(boolean sl)Abilita e disabilita scivolamento sul GraphPanelvoidsetString(java.lang.String s)Deprecated.voidsetThickness(int th)Stabilisce lo spessore di defaultbooleansetThickness(java.lang.String name, int newThickness)Modifica lo spessore di un nodo nel grafovoidsetVisible(boolean v)voidsetWeight(double w)Stabilisce il peso di defaultvoidsetZoom(int z)Stabilisce il grado di ingrandimento del grafovoidslide(int x, int y)Sposta l'originejava.lang.StringtoString()Ritorna la stringa che descrive il grafovoidupdate(java.awt.Graphics g)Disegna il GraphJPanelintzoom(int v)Applica la zoommata alla dimensionevoidzoomed(GraphEvent ge)invocata quando viene fatto uno zoom sul pannello-
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getInsets, getLayout, getListeners, getMaximumSize, getMinimumSize, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, isValidateRoot, layout, list, list, locate, minimumSize, paintComponents, paramString, preferredSize, print, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, removeNotify, setComponentZOrder, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, setLayout, 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, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, revalidate, setBackground, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setMixingCutoutShape, setPreferredSize, show, show, size, transferFocus, transferFocusBackward, transferFocusUpCycle
-
-
-
-
Constructor Detail
-
GraphPanel
public GraphPanel()
Crea un GraphPanel di un grafo vuoto
-
GraphPanel
public GraphPanel(java.awt.Image bg, java.lang.String bgn)Crea un GraphPanel di un grafo vuoto con una immagine di sfondo- Parameters:
bg- l'immagine di sfondobgn- il nome dell'immagine di sfondo
-
GraphPanel
public GraphPanel(Graph<TN,TA> gr)
Crea un GraphPanel di un grafo dato- Parameters:
gr- il grafo
-
GraphPanel
public GraphPanel(Graph<TN,TA> gr, java.awt.Image bg, java.lang.String bgn)
Crea un GraphPanel di un grafo dato con una immagine di sfondo- Parameters:
gr- il grafobg- l'immagine di sfondobgn- il nome dell'immagine di sfondo
-
GraphPanel
public GraphPanel(java.io.Reader r)
Crea un GraphPanel prelevando dal Reader r la descrizione di un grafo in due formati. Nel primo il formato prevede che la prima riga letta contenga il numero di nodi e la successiva riga contiene l'elenco dei nomi dei nodi e nelle righe successive sono conservati i valori della matrice di adiacenza dove le colonne e le righe conservano lo stesso ordine dei nomi dei nodi Successivamente puo' esserci la matrice dei pesi dove le colonne e le righe conservano lo stesso ordine dei nomi dei nodi e gli elementi sono i valori dei singoli archi separati da '|' In seguito, se c'e' un'altra riga, contiene una terna di valori separati da virgola per ogni nodo contenente il valore del codice del colore in decimale e le coordinate x e y del nodo nel grafo. Infine dopo puo' esserci una matrice contenente i valori dei colori degli archi. Nel secondo formato invece sono elencati su ogni riga la coppia di nodi connessi da un arco ed eventualmente il costo dell'arco. Il nome del primo nodo non puo' essere un numero intero- Parameters:
r- il Reader da cui viene prelevato il grafo
-
GraphPanel
public GraphPanel(java.lang.String[] name, int[][] matAd)Crea un GraphPanel contente un grafo di cui viene fornita la matrice di adiacenza e la matrice contente i nomi dei nodi- Parameters:
name- nomi dei nodi del grafomatAd- matrice di adiacenza del grafo
-
GraphPanel
public GraphPanel(java.lang.String[] name, int[][] matAd, double[][][] p)Crea un GraphPanel contenente un grafo di cui viene fornita la matrice di adiacenza, la matrice contente i nomi dei nodi e la matrice dei prezzi di ogni arco.- Parameters:
name- nomi dei nodi del grafomatAd- matrice di adiacenza del grafop- matrice dei prezzi di ogni arco
-
GraphPanel
public GraphPanel(java.lang.String[] name, int[][] pos, int[][] matAd, double[][][] p)Crea un GraphPanel contenente un grafo di cui viene fornita la matrice di adiacenza, la matrice contente i nomi dei nodi e la matrice dei prezzi di ogni arco.- Parameters:
name- nomi dei nodi del grafopos- le coordinate dei nodi (primo indice orizzontale, secondo indice verticale)matAd- matrice di adiacenza del grafop- matrice dei prezzi di ogni arco
-
GraphPanel
public GraphPanel(java.lang.String[] name, int[][] pos, int[][] matAd, double[][][] p, java.awt.Color col)Crea un GraphPanel contenente un grafo di cui viene fornita la matrice di adiacenza, la matrice contente i nomi dei nodi e la matrice dei prezzi di ogni arco.- Parameters:
name- nomi dei nodi del grafopos- le coordinate dei nodi (primo indice orizzontale, secondo indice verticale)matAd- matrice di adiacenza del grafocol- il colore degli archi e dei nodip- matrice dei prezzi di ogni arco
-
GraphPanel
public GraphPanel(java.lang.String[][] couples, double[] p)Crea un GraphPanel contenente un grafo di cui viene fornita la lista di coppie di nodi con i relativi costi,- Parameters:
couples- le coppie di nomi dei nodi del grafo collegati da un arcop- matrice dei prezzi di ogni arco
-
GraphPanel
public GraphPanel(java.lang.String[][] couples, double[] p, java.awt.Color col)Crea un GraphPanel contenente un grafo di cui viene fornita la lista di coppie di nodi con i relativi costi,- Parameters:
couples- le coppie di nomi dei nodi del grafo collegati da un arcop- matrice dei prezzi di ogni arcocol- il colore degli archi e dei nodi
-
GraphPanel
public GraphPanel(java.lang.String[][] couples, double[] p, int[][] pos, java.awt.Color col)Crea un GraphPanel contenente un grafo di cui viene fornita la lista di coppie di nodi con i relativi costi,- Parameters:
couples- le coppie di nomi dei nodi del grafo collegati da un arcop- matrice dei prezzi di ogni arcopos- le coordinate dei nodi (primo indice orizzontale, secondo indice verticale)col- il colore degli archi e dei nodi
-
-
Method Detail
-
arcSelected
public void arcSelected(GraphEvent ge)
invocata quando un arco viene selezionato- Specified by:
arcSelectedin interfaceGraphListener- Parameters:
ge- il descrittore dell'evento
-
nodeSelected
public void nodeSelected(GraphEvent ge)
invocata quando un nodo viene selezionato- Specified by:
nodeSelectedin interfaceGraphListener- Parameters:
ge- il descrittore dell'evento
-
arcAdded
public void arcAdded(GraphEvent ge)
invocata quando un arco viene aggiunto- Specified by:
arcAddedin interfaceGraphListener- Parameters:
ge- il descrittore dell'evento
-
nodeAdded
public void nodeAdded(GraphEvent ge)
invocata quando un nodo viene aggiunto- Specified by:
nodeAddedin interfaceGraphListener- Parameters:
ge- il descrittore dell'evento
-
arcRemoved
public void arcRemoved(GraphEvent ge)
invocata quando un arco viene rimosso- Specified by:
arcRemovedin interfaceGraphListener- Parameters:
ge- il descrittore dell'evento
-
nodeRemoved
public void nodeRemoved(GraphEvent ge)
invocata quando un nodo viene rimosso- Specified by:
nodeRemovedin interfaceGraphListener- Parameters:
ge- il descrittore dell'evento
-
changed
public void changed(GraphEvent ge)
invocata quando il pannello viene modificato- Specified by:
changedin interfaceGraphListener- Parameters:
ge- il descrittore dell'evento
-
moved
public void moved(GraphEvent ge)
invocata quando il pannello viene spostato- Specified by:
movedin interfaceGraphListener- Parameters:
ge- il descrittore dell'evento
-
set
public void set(GraphEvent ge)
invocata quando vengono modificati i default del pannello- Specified by:
setin interfaceGraphListener- Parameters:
ge- il descrittore dell'evento
-
zoomed
public void zoomed(GraphEvent ge)
invocata quando viene fatto uno zoom sul pannello- Specified by:
zoomedin interfaceGraphListener- Parameters:
ge- il descrittore dell'evento
-
close
public void close()
Da chiamare al momento della chiusura del Panel per rilasciare le finestre aperte e chiudere i processi in corso.
-
setLanguage
public void setLanguage(java.lang.String[] v, java.lang.String[] p)Sostituisce i testi nei menu e nelle finestre- Parameters:
v- le voci del menup- le frasi di prompt
-
setSliding
public void setSliding(boolean sl)
Abilita e disabilita scivolamento sul GraphPanel- Parameters:
sl- true se si vuole abilitare lo scivolamento interattivo e false altrimenti
-
isSliding
public boolean isSliding()
Controlla se e' abilitato lo scivolamento sul GraphPanel- Returns:
- true se e' abilitato lo scivolamento interattivo, false altrimenti
-
setMovable
public void setMovable(boolean is)
Abilita e disabilita gli spostamenti sul pannello- Parameters:
is- true se si vuole abilitare gli spostamenti interattivi e false altrimenti
-
isMovable
public boolean isMovable()
Controlla se sono abilitati gli spostamenti sul pannello- Returns:
- true se sono abilitati gli spostamenti, false altrimenti
-
setEdit
public void setEdit(boolean is)
Abilita e disabilita le modifiche sul pannello- Parameters:
is- true se si vuole abilitare le modifiche interattive e false altrimenti
-
isEdit
public boolean isEdit()
Controlla se sono abilitate le modifiche sul pannello- Returns:
- true se sono abilitate le modifiche interattive, false altrimenti
-
setPopUp
public void setPopUp(boolean pu)
Abilita e disabilita il popup sul pannello- Parameters:
pu- true se si vuole abilitare il popup e false altrimenti
-
isPopUp
public boolean isPopUp()
Controlla se e' abilitato il popup sul pannello- Returns:
- true se il popup e' abilitato, false altrimenti
-
setModified
public void setModified(boolean mo)
Segna come modificato il pannello- Parameters:
mo- true se si vuole segnare come modificato il GraphPanel e false altrimenti
-
isModified
public boolean isModified()
Controlla se il pannello e' stato modificato- Returns:
- true se il popup e' modificato, false altrimenti
-
getAdjacency
public double[][] getAdjacency()
Ritorna la matrice di adiacenza dei collegamenti tra i nodi in un passo- Returns:
- la matrice dei collegamenti in un passo
-
getConnection
public double[][] getConnection(int n)
Ritorna la matrice dei collegamenti tra i nodi in un dato numero di passi- Parameters:
n- il numero di passi- Returns:
- la matrice dei collegamenti in n passi
-
getConnections
public double[][] getConnections()
Ritorna la matrice delle connessioni tra i nodi in un numero qualsiasi di passi- Returns:
- la matrice dei collegamenti in un numero qualsiasi di passi inferiori al numero dei nodi
-
linearise
public boolean linearise()
Linearizza il grafo (Bisogna ancora risolvere la linearizzazione di piu' di due passi)- Returns:
- true se il grafo viene modificato, false altrimenti
-
load
public void load(java.io.Reader r)
Carica un grafo nel pannello prelevando dal Reader r la matrice di adiacenza il cui formato prevede che la prima riga letta contenga il numero di nodi e la successiva riga contiene l'elenco dei nomi dei nodi e nelle righe successive sono conservati i valori della matrice di adiacenza dove le colonne e le righe conservano lo stesso ordine dei nomi dei nodi Successivamente puo' esserci la matrice dei pesi dove le colonne e le righe conservano lo stesso ordine dei nomi dei nodi e gli elementi sono i valori dei singoli archi separati da '|' In seguito, se c'e' un'altra riga, contiene una terna di valori separati da virgola per ogni nodo contenente il valore del codice del colore in decimale e le coordinate x e y del nodo nel grafo. Infine dopo puo' esserci una matrice contenente i valori dei colori degli archi. Nel secondo formato invece sono elencati su ogni riga la coppia di nodi connessi da un arco ed eventualmente il costo dell'arco. Il nome del primo nodo non può essere un numero intero- Parameters:
r- il Reader da cui viene prelevato il grafo
-
load
public void load(java.io.Reader r, boolean merge)Carica un grafo nel pannello prelevando dal Reader r la descrizione di un grafo in due formati. Nel primo il formato prevede che la prima riga letta contenga il numero di nodi e la successiva riga contiene l'elenco dei nomi dei nodi e nelle righe successive sono conservati i valori della matrice di adiacenza dove le colonne e le righe conservano lo stesso ordine dei nomi dei nodi Successivamente puo' esserci la matrice dei pesi dove le colonne e le righe conservano lo stesso ordine dei nomi dei nodi e gli elementi sono i valori dei singoli archi separati da '|' In seguito, se c'e' un'altra riga, contiene una terna di valori separati da virgola per ogni nodo contenente il valore del codice del colore in decimale e le coordinate x e y del nodo nel grafo. Infine dopo puo' esserci una matrice contenente i valori dei colori degli archi. Nel secondo formato invece sono elencati su ogni riga la coppia di nodi connessi da un arco ed eventualmente il costo dell'arco. Il nome del primo nodo non può essere un numero intero- Parameters:
r- il Reader da cui viene prelevato il grafomerge- true se il grafo va sovrapposto a quello esistente, false altrimenti
-
save
public void save(java.io.Writer w)
Salva la matrice di adiacenza del grafo nel pannello su un Writer in un formato che prevede che la prima riga scritta contenga il numero di nodi e la successiva riga contenga l'elenco dei nomi e delle caratteristiche dei nodi. Nelle righe successive sono conservati i valori della matrice di adiacenza dove le colonne e le righe conservano lo stesso ordine dei nomi dei nodi Successivamente c'e' la matrice dei pesi dove le colonne e le righe conservano lo stesso ordine dei nomi dei nodi e gli elementi sono i valori dei singoli archi separati da '|' In seguito c'e' una riga che contiene una terna di valori separati da virgola per ogni nodo contenente il valore del codice del colore in decimale e le coordinate x e y del nodo nel grafo. Infine dopo c'e' una matrice contenente i valori dei colori degli archi.- Parameters:
w- il Writer su cui viene salvato il grafo
-
clear
public void clear()
Cancella il grafo nel GraphPanel
-
clear
public void clear(boolean erase)
Cancella il grafo nel GraphPanel- Parameters:
erase- true se deve essere cancellato anche lo sfondo, false altrimenti
-
setGraph
public void setGraph(java.lang.String[] name, int[][] matAd)Inizializza il GraphPanel con un grafo- Parameters:
name- nomi dei nodi del grafomatAd- matrice di adiacenza del grafo
-
setGraph
public void setGraph(java.lang.String[] name, int[][] matAd, double[][][] prices)Inizializza il GraphPanel con un grafo pesato- Parameters:
name- nomi dei nodi del grafomatAd- matrice di adiacenza del grafoprices- matrice dei prezzi di ogni arco
-
setGraph
public void setGraph(Graph<TN,TA> g)
Visualizza un grafo sul GraphPanel- Parameters:
g- il grafo da visualizzare
-
setGraph
public void setGraph(Graph<TN,TA> g, int[][] c)
Visualizza un grafo sul GraphPanel- Parameters:
g- il grafo da visualizzarec- le coordinate dei nodi (primo indice orizzontale, secondo indice verticale)
-
setGraph
public void setGraph(Graph<TN,TA> g, int[][] c, java.awt.Color col)
Visualizza un grafo sul GraphPanel- Parameters:
g- il grafo da visualizzarec- le coordinate dei nodi (primo indice orizzontale, secondo indice verticale)col- il colore dei nodi e degli archi
-
coordOk
public boolean coordOk(int i, int j)Controlla se i due indici di nodi sono validi per il grafo- Parameters:
i- la riga dell'arcoj- la colonna dell'arco- Returns:
- true se le coordinate dell'arco sono valide, false altrimenti
-
getPreferredSize
public java.awt.Dimension getPreferredSize()
Ritorna la dimensione preferita del GraphPanel- Overrides:
getPreferredSizein classjava.awt.Container- Returns:
- la dimensione preferita del GraphPanel
-
setSize
public void setSize(int w, int h)Modifica la dimensione del GraphPanel- Overrides:
setSizein classjava.awt.Component
-
setSize
public void setSize(java.awt.Dimension d)
Modifica la dimensione del GraphPanel- Overrides:
setSizein classjava.awt.Component
-
findNode
public int findNode(java.lang.String name)
Ritorna l'indice del nodo dato il nome- Parameters:
name- nome del nodo- Returns:
- l'indice del nodo nel grafo, -1 se non esiste nodo con il nome dato
-
setAdaptive
public void setAdaptive(boolean ad)
Attiva o disattiva il processo di adattamento della posizione dei nodi per consentire una corretta collocazione e dare una lunghezza richiesta agli archi- Parameters:
ad- true se il pannello deve adattarsi, false altrimenti
-
isAdaptive
public boolean isAdaptive()
Dice se e' disattivato il processo di adattamento della posizione dei nodi per consentire una corretta collocazione e dare una lunghezza richiesta agli archi- Returns:
- true se il pannello deve adattarsi, false altrimenti
-
drawPath
public void drawPath(java.awt.Color c, java.lang.String[] steps)Disegna un cammino nel colore indicato Aggiunge gli archi se non presenti- Parameters:
c- il colore del percorsosteps- l'elenco dei nodi che costituiscono il percorso
-
drawPath
public void drawPath(java.awt.Color c, java.lang.String[] steps, boolean visible)Disegna un cammino nel colore indicato Aggiunge gli archi se non presenti- Parameters:
c- il colore del percorsosteps- l'elenco dei nodi che costituiscono il percorsovisible- true se il percorso deve essere visibile, false altrimenti
-
drawPath
public void drawPath(java.awt.Color c, java.awt.Color cn, java.lang.String[] steps, boolean visible)Disegna un cammino nel colore indicato Aggiunge gli archi se non presenti- Parameters:
c- il colore del percorsocn- il colore dei nodi (se null il colore non viene cambiato)steps- l'elenco dei nodi che costituiscono il percorsovisible- true se il percorso deve essere visibile, false altrimenti
-
drawPath
public void drawPath(java.awt.Color c, int[] steps)Disegna un cammino nel colore indicato Aggiunge gli archi se non presenti- Parameters:
c- il colore del percorsosteps- l'elenco degli indici dei nodi che costituiscono il percorso
-
drawPath
public void drawPath(java.awt.Color c, int[] steps, boolean visible)Disegna un cammino nel colore indicato Aggiunge gli archi se non presenti- Parameters:
c- il colore del percorsosteps- l'elenco degli indici dei nodi che costituiscono il percorsovisible- true se il percorso deve essere visibile, false altrimenti
-
drawPath
public void drawPath(java.awt.Color c, java.awt.Color cn, int[] steps, boolean visible)Disegna un cammino nei colori indicati. Aggiunge gli archi se non presenti- Parameters:
c- il colore del percorsocn- il colore dei nodi (se null il colore non viene cambiato)steps- l'elenco degli indici dei nodi che costituiscono il percorsovisible- true se il percorso deve essere visibile, false altrimenti
-
selectAll
public void selectAll(boolean sel)
Seleziona o deselaziona tutti i nodi del grafo- Parameters:
sel- true se seleziona, false se deseleziona
-
resizeNode
public boolean resizeNode(java.lang.String name, int newSize)Modifica la dimensione di un nodo nel grafo- Parameters:
name- il nome del nodonewSize- la nuova dimensione del nodo- Returns:
- true se il grafo e' cambiato, false altrimenti
-
setThickness
public boolean setThickness(java.lang.String name, int newThickness)Modifica lo spessore di un nodo nel grafo- Parameters:
name- il nome del nodonewThickness- la nuova dimensione del nodo- Returns:
- true se il grafo e' cambiato, false altrimenti
-
reshapeNode
public boolean reshapeNode(java.lang.String name, int newShape)Modifica la forma di un nodo nel grafo- Parameters:
name- il nome del nodonewShape- la nuova forma del nodo- Returns:
- true se il grafo e' cambiato, false altrimenti
-
changeNodeFill
public boolean changeNodeFill(java.lang.String name, boolean newFill)Modifica il riempimento di un nodo nel grafo- Parameters:
name- il nome del nodonewFill- il nuovo stato di riempimento del nodo- Returns:
- true se il grafo e' cambiato, false altrimenti
-
changeNodeFix
public boolean changeNodeFix(java.lang.String name, boolean newFix)Modifica il fissaggio di un nodo nel grafo- Parameters:
name- il nome del nodonewFix- il nuovo stato di fissaggio del nodo- Returns:
- true se il grafo e' cambiato, false altrimenti
-
changeNodeThickness
public boolean changeNodeThickness(java.lang.String name, int newThick)Modifica lo spessore del bordo di un nodo nel grafo- Parameters:
name- il nome del nodonewThick- il nuovo spessore del nodo- Returns:
- true se il grafo e' cambiato, false altrimenti
-
changeNodeFixing
public boolean changeNodeFixing(java.lang.String name, boolean newFix)Modifica il fissaggio di un nodo nel grafo- Parameters:
name- il nome del nodonewFix- il nuovo fissaggio del nodo- Returns:
- true se il grafo e' cambiato, false altrimenti
-
changeNodeImage
public boolean changeNodeImage(java.lang.String name, java.lang.String image)Modifica l'immagine di un nodo nel grafo- Parameters:
name- il nome del nodoimage- la nuova immagine del nodo- Returns:
- true se il grafo e' cambiato, false altrimenti
-
renameNode
public boolean renameNode(java.lang.String name, java.lang.String newName)Rinomina un nodo nel grafo- Parameters:
name- il vecchio nome del nodonewName- il nuovo nome del nodo- Returns:
- true se il grafo e' cambiato, false altrimenti
-
removeNode
public boolean removeNode(int x, int y)Rimuove il nodo selezionato dal grafo- Parameters:
x- l'ascissa del punto di selezioney- l'ordinata del punto di selezione- Returns:
- true se il grafo e' cambiato, false altrimenti
-
removeNode
public boolean removeNode(java.lang.String name)
Rimuove un nodo col dato nome dal grafo- Parameters:
name- nome del nodo da eliminare- Returns:
- true se il grafo e' cambiato, false altrimenti
-
addNode
public boolean addNode(java.lang.String name)
Aggiunge un nodo col dato nome al grafo- Parameters:
name- nome del nodo da aggiungere- Returns:
- true se il grafo e' cambiato, false altrimenti
-
addNode
public boolean addNode(java.lang.String name, java.awt.Color c)Aggiunge un nodo col dato nome al grafo di un certo colore- Parameters:
name- nome del nodo da aggiungerec- colore del nodo- Returns:
- true se il grafo e' cambiato, false altrimenti
-
addNode
public boolean addNode(java.lang.String name, int x, int y)Aggiunge un nodo col dato nome al grafo in una data posizione- Parameters:
name- nome del nodo da aggiungerex- la coordinata x del nodoy- la coordinata y del nodo- Returns:
- true se il grafo e' cambiato, false altrimenti
-
addNode
public boolean addNode(java.lang.String name, int x, int y, java.awt.Color c)Aggiunge un nodo col dato nome al grafo di un certo colore in una data posizione- Parameters:
name- nome del nodo da aggiungerex- la coordinata x del nodoy- la coordinata y del nodoc- colore del nodo- Returns:
- true se il grafo e' cambiato, false altrimenti
-
addNode
public boolean addNode(java.lang.String name, int x, int y, java.awt.Color c, int dim)Aggiunge un nodo col dato nome al grafo di un certo colore in una data posizione- Parameters:
name- nome del nodo da aggiungerex- la coordinata x del nodoy- la coordinata y del nodoc- colore del nododim- dimensione del nodo- Returns:
- true se il grafo e' cambiato, false altrimenti
-
addNode
public boolean addNode(java.lang.String name, int x, int y, java.awt.Color c, int dim, java.lang.String image)Aggiunge un nodo col dato nome al grafo di un certo colore in una data posizione- Parameters:
name- nome del nodo da aggiungerex- la coordinata x del nodoy- la coordinata y del nodoc- colore del nododim- dimensione del nodoimage- immagine di sfondo del nodo- Returns:
- true se il grafo e' cambiato, false altrimenti
-
addNode
public boolean addNode(java.lang.String name, int x, int y, java.awt.Color c, int dim, int shape)Aggiunge un nodo col dato nome al grafo di un certo colore in una data posizione- Parameters:
name- nome del nodo da aggiungerex- la coordinata x del nodoy- la coordinata y del nodoc- colore del nododim- dimensione del nodoshape- forma del nodo- Returns:
- true se il grafo e' cambiato, false altrimenti
-
addNode
public boolean addNode(java.lang.String name, int x, int y, java.awt.Color c, int dim, int shape, boolean filled)Aggiunge un nodo col dato nome al grafo di un certo colore in una data posizione- Parameters:
name- nome del nodo da aggiungerex- la coordinata x del nodoy- la coordinata y del nodoc- colore del nododim- dimensione del nodoshape- forma del nodofilled- true se il nodo è pieno, false se il nodo è vuoto- Returns:
- true se il grafo e' cambiato, false altrimenti
-
addNode
public boolean addNode(java.lang.String name, int x, int y, java.awt.Color c, int dim, int shape, boolean filled, int thickness)Aggiunge un nodo col dato nome al grafo di un certo colore in una data posizione- Parameters:
name- nome del nodo da aggiungerex- la coordinata x del nodoy- la coordinata y del nodoc- colore del nododim- dimensione del nodoshape- forma del nodofilled- true se il nodo è pieno, false se il nodo è vuotothickness- lo spessore del bordo del segno- Returns:
- true se il grafo e' cambiato, false altrimenti
-
addNode
public boolean addNode(java.lang.String name, int x, int y, java.awt.Color c, int dim, java.lang.String image, int shape, boolean filled, int thickness)Aggiunge un nodo col dato nome al grafo di un certo colore in una data posizione- Parameters:
name- nome del nodo da aggiungerex- la coordinata x del nodoy- la coordinata y del nodoc- colore del nododim- dimensione del nodoimage- immagine di sfondo del nodo, null se il nodo è una forma geometricashape- forma del nodofilled- true se il nodo è pieno, false se il nodo è vuotothickness- lo spessore del bordo del segno- Returns:
- true se il grafo e' cambiato, false altrimenti
-
addNode
public boolean addNode(java.lang.String name, int x, int y, java.awt.Color c, int dim, java.lang.String image, int shape, boolean filled, int thickness, boolean fixing)Aggiunge un nodo col dato nome al grafo di un certo colore in una data posizione- Parameters:
name- nome del nodo da aggiungerex- la coordinata x del nodoy- la coordinata y del nodoc- colore del nododim- dimensione del nodoimage- immagine di sfondo del nodo, null se il nodo è una forma geometricashape- forma del nodofilled- true se il nodo è pieno, false se il nodo è vuotothickness- lo spessore del bordo del segnofixing- indica se il nodo è fisso o può fluttuare- Returns:
- true se il grafo e' cambiato, false altrimenti
-
changeNode
public boolean changeNode(java.lang.String name, NodeSign<TN> ns)Sostituisce un nodo col dato nome con il nodo indicato- Parameters:
name- nome del nodo di cui sostituire la rappresentazionens- la nuova rappresentazione del nodo- Returns:
- true se il grafo e' cambiato, false altrimenti
-
removeArc
public boolean removeArc(ArcSign<TN,TA> as)
Rimuove un arco dal grafo- Parameters:
as- l'arco da rimuovere- Returns:
- true se il grafo e' cambiato, false altrimenti
-
removeArc
public boolean removeArc(java.lang.String source, java.lang.String dest)Rimuove un arco dal grafo tra il nodo source e il nodo dest- Parameters:
source- la sorgente dell'arcodest- la destinazione dell'arco- Returns:
- true se il grafo e' cambiato, false altrimenti
-
removeArcs
public boolean removeArcs(java.lang.String source, java.lang.String dest)Rimuove gli archi dal grafo tra il nodo source e il nodo dest- Parameters:
source- la sorgente dell'arcodest- la destinazione dell'arco- Returns:
- true se il grafo e' cambiato, false altrimenti
-
removeArc
public boolean removeArc(int x, int y)Rimuove l'arco selezionato dal grafo- Parameters:
x- l'ascissa del punto di selezioney- l'ordinata del punto di selezione- Returns:
- true se il grafo e' cambiato, false altrimenti
-
addArc
public boolean addArc(java.lang.String source, java.lang.String dest)Aggiunge un arco al grafo tra il nodo sorg e il nodo dest- Parameters:
source- la sorgente dell'arcodest- la destinazione dell'arco- Returns:
- true se il grafo e' cambiato, false altrimenti
-
addArc
public boolean addArc(java.lang.String source, java.lang.String dest, java.awt.Color c)Aggiunge un arco al grafo tra il nodo sorg e il nodo dest del colore indicato- Parameters:
source- la sorgente dell'arcodest- la destinazione dell'arcoc- il colore dell'arco- Returns:
- true se il grafo e' cambiato, false altrimenti
-
addArc
public boolean addArc(java.lang.String source, java.lang.String dest, double price)Aggiunge un arco al grafo tra il nodo sorg e il nodo dest con il costo indicato- Parameters:
source- la sorgente dell'arcodest- la destinazione dell'arcoprice- il costo dell'arco- Returns:
- true se il grafo e' cambiato, false altrimenti
-
addArc
public boolean addArc(java.lang.String source, java.lang.String dest, java.awt.Color c, double price)Aggiunge un arco al grafo tra il nodo sorg e il nodo dest con il costo indicato del colore indicato- Parameters:
source- la sorgente dell'arcodest- la destinazione dell'arcoc- il colore dell'arcoprice- il costo dell'arco- Returns:
- true se il grafo e' cambiato, false altrimenti
-
addArc
public boolean addArc(java.lang.String source, java.lang.String dest, java.awt.Color c, int thickness, boolean visible, double price)Aggiunge un arco al grafo tra il nodo sorg e il nodo dest con il costo indicato del colore indicato- Parameters:
source- la sorgente dell'arcodest- la destinazione dell'arcoc- il colore dell'arcothickness- lo spessore dell'arcovisible- la visibilità dell'arcoprice- il costo dell'arco- Returns:
- true se il grafo e' cambiato, false altrimenti
-
changeArcWeight
public boolean changeArcWeight(java.lang.String source, java.lang.String dest, double price)Modifica il peso di un arco del grafo tra il nodo sorg e il nodo dest con il costo indicato- Parameters:
source- la sorgente dell'arcodest- la destinazione dell'arcoprice- il costo dell'arco- Returns:
- true se il grafo e' cambiato, false altrimenti
-
changeArcThickness
public boolean changeArcThickness(java.lang.String source, java.lang.String dest, int thickness)Modifica lo spessore di un arco del grafo tra il nodo sorg e il nodo dest con lo spessore indicato- Parameters:
source- la sorgente dell'arcodest- la destinazione dell'arcothickness- il costo dell'arco- Returns:
- true se il grafo e' cambiato, false altrimenti
-
actionPerformed
public void actionPerformed(java.awt.event.ActionEvent ae)
Gestisce le azioni relative ai menu- Specified by:
actionPerformedin interfacejava.awt.event.ActionListener- Parameters:
ae- l'evento da gestire
-
mouseClicked
public void mouseClicked(java.awt.event.MouseEvent e)
Gestisce l'evento mouse click se l'evento non e' stato gia' consumato Se il click col tasto destro è su un nodo o un arco presente se sono attivi i popup viene visualizzato il popup relativo a quel nodo/arco se ci sono listeners vengono avvertiti della selezione- Specified by:
mouseClickedin interfacejava.awt.event.MouseListener- Parameters:
e- l'evento del mouse
-
mouseEntered
public void mouseEntered(java.awt.event.MouseEvent e)
Gestisce l'evento mouse entered- Specified by:
mouseEnteredin interfacejava.awt.event.MouseListener- Parameters:
e- l'evento del mouse
-
mouseExited
public void mouseExited(java.awt.event.MouseEvent e)
Gestisce l'evento mouse exited- Specified by:
mouseExitedin interfacejava.awt.event.MouseListener- Parameters:
e- l'evento del mouse
-
mousePressed
public void mousePressed(java.awt.event.MouseEvent e)
Gestisce l'evento mouse pressed se l'evento non e' stato gia' consumato- Specified by:
mousePressedin interfacejava.awt.event.MouseListener- Parameters:
e- l'evento del mouse
-
mouseReleased
public void mouseReleased(java.awt.event.MouseEvent e)
Gestisce l'evento mouse released se l'evento non e' stato gia' consumato- Specified by:
mouseReleasedin interfacejava.awt.event.MouseListener- Parameters:
e- l'evento del mouse
-
mouseDragged
public void mouseDragged(java.awt.event.MouseEvent e)
Gestisce l'evento mouse dragged se l'evento non e' stato gia' consumato- Specified by:
mouseDraggedin interfacejava.awt.event.MouseMotionListener- Parameters:
e- l'evento del mouse
-
mouseMoved
public void mouseMoved(java.awt.event.MouseEvent e)
Gestisce l'evento mouse moved- Specified by:
mouseMovedin interfacejava.awt.event.MouseMotionListener- Parameters:
e- l'evento del mouse
-
getGraph
public Graph<TN,TA> getGraph()
Ritorna il grafo rappresentato nel pannello- Returns:
- il grafo
-
degree
public int degree()
Ritorna l'ordine del grafo rappresentato nel GraphJPanel- Returns:
- il grado (ordine) del grafo
-
getNodeName
public java.lang.String getNodeName(int x, int y)Ritorna il nome di un nodo indicato con le sue coordinate sul grafo- Parameters:
x- l'ascissa sul grafoy- l'ordinata sul grafo- Returns:
- il nome del nodo
-
getNode
public NodeSign<TN> getNode(int i)
Ritorna un nodo indicato con il suo indice- Parameters:
i- l'indice del nodo- Returns:
- l'indice del nodo, null se il nodo non esiste
-
getNode
public NodeSign<TN> getNode(java.lang.String s)
Ritorna un nodo indicato con il suo nome- Parameters:
s- il nome- Returns:
- l'indice del nodo, null se il nodo non esiste
-
getNode
public NodeSign<TN> getNode(int x, int y)
Ritorna un nodo indicato con le sue coordinate sul grafo- Parameters:
x- l'ascissa sul grafoy- l'ordinata sul grafo- Returns:
- il nodo alla posizione indicata, null se non esiste alcun nodo in tale posizione
-
getNodeIndex
public int getNodeIndex(java.lang.String s)
Ritorna l'indice di un nodo indicato con il suo nome- Parameters:
s- il nome- Returns:
- l'indice del nodo, -1 se il nodo non esiste
-
getNodeIndex
public int getNodeIndex(int x, int y)Ritorna l'indice di un nodo indicato con le sue coordinate sul grafo- Parameters:
x- l'ascissa sul grafoy- l'ordinata sul grafo- Returns:
- l'indice del nodo, -1 se il nodo non esiste
-
getNodes
public NodeSign<TN>[] getNodes()
Ritorna la matrice dei nodi presenti nel GraphPanel- Returns:
- la matrice dei nodi
-
getArc
public ArcSign<TN,TA> getArc(NodeSign<TN> n1, NodeSign<TN> n2)
Ritorna l'arco tra due nodi, se presente- Parameters:
n1- il nodo di partenzan2- il nodo di arrivo- Returns:
- l'arco tra i due nodi, null se non esiste alcun arco
-
getArc
public ArcSign<TN,TA> getArc(java.lang.String n1, java.lang.String n2)
Ritorna l'arco tra due nodi, se presente- Parameters:
n1- il nodo di partenzan2- il nodo di arrivo- Returns:
- l'arco tra i due nodi, null se non esiste alcun arco
-
getArc
public ArcSign<TN,TA> getArc(int x, int y)
Ritorna l'arco indicato con le sue coordinate sul grafo- Parameters:
x- l'ascissa sul grafoy- l'ordinata sul grafo- Returns:
- l'arco alla posizione indicata, null se non esiste alcun arco in tale posizione
-
getArcs
public ArcSign<TN,TA>[][] getArcs()
Ritorna la matrice degli archi presenti nel GraphPanel- Returns:
- la matrice degli archi
-
setShowAxis
public void setShowAxis(boolean show)
Stabilisce se visualizzare gli assi nel grafo- Parameters:
show- true se gli assi vanno visualizzati, false altrimenti
-
getShowAxis
public boolean getShowAxis()
Ritorna la visualizzazione degli assi del grafo- Returns:
- true se gli assi vanno visualizzati, false altrimenti
-
setShowNames
public void setShowNames(boolean show)
Stabilisce se visualizzare i nomi dei nodi nel grafo- Parameters:
show- true se le scritte vanno visualizzate, false altrimenti
-
getShowNames
public boolean getShowNames()
Ritorna la visualizzazione dei nomi dei nodi del grafo- Returns:
- true se le scritte vanno visualizzate, false altrimenti
-
setShowWeights
public void setShowWeights(boolean show)
Stabilisce se visualizzare i pesi degli archi nel grafo- Parameters:
show- true se le scritte vanno visualizzate, false altrimenti
-
getShowWeights
public boolean getShowWeights()
Ritorna la visualizzazione dei pesi degli archi del grafo- Returns:
- true se le scritte vanno visualizzate, false altrimenti
-
setShowText
public void setShowText(boolean show)
Stabilisce se visualizzare le scritte nel grafo- Parameters:
show- true se le scritte vanno visualizzate, false altrimenti
-
setString
@Deprecated public void setString(java.lang.String s)
Deprecated.Stabilisce la stringa di default- Parameters:
s- la stringa di default + @deprecated substituted by setName
-
setName
public void setName(java.lang.String s)
Stabilisce il nome di default- Overrides:
setNamein classjava.awt.Component- Parameters:
s- la stringa di default
-
getString
@Deprecated public java.lang.String getString()
Deprecated.substituted by getNameRitorna la stringa di default- Returns:
- la stringa di default
-
getName
public java.lang.String getName()
Ritorna il nome di default- Overrides:
getNamein classjava.awt.Component- Returns:
- il nome di default
-
setWeight
public void setWeight(double w)
Stabilisce il peso di default- Parameters:
w- il peso di default
-
getWeight
public double getWeight()
Ritorna il peso di default- Returns:
- il peso di default
-
setColor
public void setColor(java.awt.Color c)
Stabilisce il colore di default- Parameters:
c- il colore di default
-
getColor
public java.awt.Color getColor()
Ritorna il colore di default- Returns:
- il colore di default
-
setThickness
public void setThickness(int th)
Stabilisce lo spessore di default- Parameters:
th- lo spessore di default
-
getThickness
public int getThickness()
Ritorna lo spessore di default- Returns:
- lo spessore di default
-
setNodeSize
public void setNodeSize(int dim)
Stabilisce la dimensione dei nodi di default- Parameters:
dim- la dimensione dei nodi di default
-
getNodeSize
public int getNodeSize()
Ritorna la dimensione dei nodi di default- Returns:
- la dimensione dei nodi default
-
setNodeShape
public void setNodeShape(int sh)
Stabilisce la forma dei nodi di default- Parameters:
sh- la forma dei nodi di default
-
getNodeShape
public int getNodeShape()
Ritorna la forma dei nodi di default- Returns:
- la forma dei nodi default
-
setNodeFill
public void setNodeFill(boolean fill)
Stabilisce il rempimento di dafault dei nodi- Parameters:
fill- il riempimento di default dei nodi
-
getNodeFill
public boolean getNodeFill()
Ritorna il riempimento di default dei nodi- Returns:
- la riempimento di default dei nodi
-
setNodeFixing
public void setNodeFixing(boolean fixing)
Stabilisce il fissaggio di dafault dei nodi- Parameters:
fixing- il fissaggio di default dei nodi
-
getNodeFixing
public boolean getNodeFixing()
Ritorna il fissaggio di default dei nodi- Returns:
- la fissaggio di default dei nodi
-
setImageName
public void setImageName(java.lang.String im)
Stabilisce l'immagine dei nodi di default- Parameters:
im- l'immagine dei nodi di default
-
getImageName
public java.lang.String getImageName()
Ritorna l'immagine dei nodi di default- Returns:
- l'immagine dei nodi di default
-
inZoom
public void inZoom()
Ingrandisce il grafo
-
outZoom
public void outZoom()
Rimpicciolisce il grafo
-
setZoom
public void setZoom(int z)
Stabilisce il grado di ingrandimento del grafo- Parameters:
z- il grado di ingrandimento del grafo compreso tra MINZOOM (-2) e MAXZOOM (7)
-
getZoom
public int getZoom()
Ritorna il grado di ingrandimento del grafo- Returns:
- il grado di ingrandimento del grafo
-
dezoom
public int dezoom(int v)
Rimuove la zoommata dalla dimensione- Parameters:
v- il valore da dezoommare- Returns:
- la dimensione alle coordinate assolute
-
zoom
public int zoom(int v)
Applica la zoommata alla dimensione- Parameters:
v- il valore da zoommare- Returns:
- la dimensione all'ingrandimento attuale
-
reset
public void reset()
Ripristina la zoommata e l'origine
-
slide
public void slide(int x, int y)Sposta l'origine- Parameters:
x- lo spostamento orizzontaley- lo spostamento verticale
-
absoluteX
public int absoluteX(int x)
Calcola l'ascissa assoluta dato un punto del piano- Parameters:
x- l'ascissa del piano- Returns:
- l'ascissa assoluta
-
absoluteY
public int absoluteY(int y)
Calcola l'ordinata assoluta dato un punto del piano- Parameters:
y- l'ordinata del piano- Returns:
- l'ordinata assoluta
-
setImageReader
public void setImageReader(ImageReader i)
Stabilisce l'ImageReader da utilizzare per la lettura delle immagini- Parameters:
i- l'ImageReader da utilizzare
-
getBackImage
public java.lang.String getBackImage()
Ritorna il nome dello sfondo- Returns:
- il nome del file contenente l'immagine di sfondo
-
getBackImageSource
public java.awt.Image getBackImageSource()
Ritorna l'immagine dello sfondo- Returns:
- l'immagine di sfondo
-
setBackImage
public void setBackImage(java.lang.String i)
Modifica lo sfondo- Parameters:
i- il nome del file contenente l'immagine di sfondo
-
setBackImage
@Deprecated public void setBackImage(java.awt.Image i)
Deprecated.versione 2.0 utilizzare la forma setBackImage(String i) che conserva il nome dell'immagine per poterlo salvareModifica lo sfondo- Parameters:
i- l'immagine di sfondo
-
getImage
public java.awt.Image getImage(java.lang.String ims)
Ritorna una immagine. Implementa ImageReader- Specified by:
getImagein interfaceImageReader- Parameters:
ims- nome dell'immagine da ritornare- Returns:
- l'immagine letta
-
addGraphListener
public void addGraphListener(GraphListener gl)
Aggiunge un nuovo GraphListener al pannello.- Parameters:
gl- il nuovo GraphListener da aggiungere
-
removeGraphListener
public void removeGraphListener(GraphListener gl)
Rimuove un nuovo GraphListener dal pannello.- Parameters:
gl- il nuovo GraphListener da aggiungere
-
getGraphListeners
public GraphListener[] getGraphListeners()
Rimuove un GraphListener dal pannello.- Returns:
- la matrice contenente i GraphListener aggiunti al pannello
-
update
public void update(java.awt.Graphics g)
Disegna il GraphJPanel- Overrides:
updatein classjava.awt.Container- Parameters:
g- lo spazio grafico di tracciamento
-
paint
public void paint(java.awt.Graphics g)
Disegna il pannello- Overrides:
paintin classjava.awt.Container- Parameters:
g- lo spazio grafico di tracciamento
-
toString
public java.lang.String toString()
Ritorna la stringa che descrive il grafo- Overrides:
toStringin classjava.awt.Component- Returns:
- la descrizione del grafo
-
setVisible
public void setVisible(boolean v)
- Overrides:
setVisiblein classjava.awt.Component
-
main
public static void main(java.lang.String[] s)
Il programma di prova- Parameters:
s- i nomi dei file contenenti le descrizioni dei grafi. Se non ne sono indicati viene utilizzato un grafo di default
-
-