Class GraphJPanel<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 GraphJPanel<TN,​TA>
    extends javax.swing.JPanel
    implements java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.awt.event.ActionListener, ImageReader, GraphListener
    GraphJPanel e' un JPanel 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 GraphJPanel 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 sostituito BUTTON1_MASK con BUTTON1_DOWN_MASK , BUTTON3_MASK con BUTTON3_DOWN_MASK e getModifiers con getModifiersEx 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
    • 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

      • Fields inherited from class javax.swing.JComponent

        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

        accessibleContext, 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

      Constructors 
      Constructor Description
      GraphJPanel()
      Crea un GraphJPanel di un grafo vuoto
      GraphJPanel​(Graph<TN,​TA> gr)
      Crea un GraphJPanel di un grafo dato
      GraphJPanel​(Graph<TN,​TA> gr, java.awt.Image bg, java.lang.String bgn)
      Crea un GraphJPanel di un grafo dato con una immagine di sfondo
      GraphJPanel​(java.awt.Image bg, java.lang.String bgn)
      Crea un GraphJPanel di un grafo vuoto con una immagine di sfondo
      GraphJPanel​(java.io.Reader r)
      Crea un GraphJPanel prelevando dal Reader r la descrizione di un grafo in due formati.
      GraphJPanel​(java.lang.String[][] couples, double[] p)
      Crea un GraphJPanel contenente un grafo di cui viene fornita la lista di coppie di nodi con i relativi costi,
      GraphJPanel​(java.lang.String[][] couples, double[] p, int[][] pos, java.awt.Color col)
      Crea un GraphJPanel contenente un grafo di cui viene fornita la lista di coppie di nodi con i relativi costi,
      GraphJPanel​(java.lang.String[][] couples, double[] p, java.awt.Color col)
      Crea un GraphJPanel contenente un grafo di cui viene fornita la lista di coppie di nodi con i relativi costi,
      GraphJPanel​(java.lang.String[] name, int[][] matAd)
      Crea un GraphJPanel contente un grafo di cui viene fornita la matrice di adiacenza e la matrice contente i nomi dei nodi
      GraphJPanel​(java.lang.String[] name, int[][] matAd, double[][][] p)
      Crea un GraphJPanel 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.
      GraphJPanel​(java.lang.String[] name, int[][] pos, int[][] matAd, double[][][] p)
      Crea un GraphJPanel 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.
      GraphJPanel​(java.lang.String[] name, int[][] pos, int[][] matAd, double[][][] p, java.awt.Color col)
      Crea un GraphJPanel 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
      int absoluteX​(int x)
      Calcola l'ascissa assoluta dato un punto del piano
      int absoluteY​(int y)
      Calcola l'ordinata assoluta dato un punto del piano
      void actionPerformed​(java.awt.event.ActionEvent ae)
      Gestisce le azioni relative ai menu
      boolean addArc​(java.lang.String source, java.lang.String dest)
      Aggiunge un arco al grafo tra il nodo sorg e il nodo dest
      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
      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
      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
      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
      void addGraphListener​(GraphListener gl)
      Aggiunge un nuovo GraphListener al pannello.
      boolean addNode​(java.lang.String name)
      Aggiunge un nodo col dato nome al grafo
      boolean addNode​(java.lang.String name, int x, int y)
      Aggiunge un nodo col dato nome al grafo in una data posizione
      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
      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
      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
      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
      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
      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
      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
      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
      boolean addNode​(java.lang.String name, java.awt.Color c)
      Aggiunge un nodo col dato nome al grafo di un certo colore
      void arcAdded​(GraphEvent ge)
      invocata quando un arco viene aggiunto
      void arcRemoved​(GraphEvent ge)
      invocata quando un arco viene rimosso
      void arcSelected​(GraphEvent ge)
      invocata quando un arco viene selezionato
      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
      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
      void changed​(GraphEvent ge)
      invocata quando il pannello viene modificato
      boolean changeNode​(java.lang.String name, NodeSign<TN> ns)
      Sostituisce un nodo col dato nome con il nodo indicato
      boolean changeNodeFill​(java.lang.String name, boolean newFill)
      Modifica il riempimento di un nodo nel grafo
      boolean changeNodeFix​(java.lang.String name, boolean newFix)
      Modifica il fissaggio di un nodo nel grafo
      boolean changeNodeFixing​(java.lang.String name, boolean newFix)
      Modifica il fissaggio di un nodo nel grafo
      boolean changeNodeImage​(java.lang.String name, java.lang.String image)
      Modifica l'immagine di un nodo nel grafo
      boolean changeNodeThickness​(java.lang.String name, int newThick)
      Modifica lo spessore del bordo di un nodo nel grafo
      void clear()
      Cancella il grafo nel GraphPanel
      void clear​(boolean erase)
      Cancella il grafo nel GraphPanel
      void close()
      Da chiamare al momento della chiusura del JPanel per rilasciare le finestre aperte e chiudere i processi in corso.
      boolean coordOk​(int i, int j)
      Controlla se i due indici di nodi sono validi per il grafo
      int degree()
      Ritorna l'ordine del grafo rappresentato nel GraphJPanel
      int dezoom​(int v)
      Rimuove la zoommata dalla dimensione
      void drawPath​(java.awt.Color c, int[] steps)
      Disegna un cammino nel colore indicato Aggiunge gli archi se non presenti
      void drawPath​(java.awt.Color c, int[] steps, boolean visible)
      Disegna un cammino nel colore indicato Aggiunge gli archi se non presenti
      void drawPath​(java.awt.Color c, java.awt.Color cn, int[] steps, boolean visible)
      Disegna un cammino nei colori indicati.
      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
      void drawPath​(java.awt.Color c, java.lang.String[] steps)
      Disegna un cammino nel colore indicato Aggiunge gli archi se non presenti
      void drawPath​(java.awt.Color c, java.lang.String[] steps, boolean visible)
      Disegna un cammino nel colore indicato Aggiunge gli archi se non presenti
      int findNode​(java.lang.String name)
      Ritorna l'indice del nodo dato il nome
      double[][] getAdjacency()
      Ritorna la matrice di adiacenza dei collegamenti tra i nodi in un passo
      ArcSign<TN,​TA> getArc​(int x, int y)
      Ritorna l'arco indicato con le sue coordinate sul grafo
      ArcSign<TN,​TA> getArc​(java.lang.String n1, java.lang.String n2)
      Ritorna l'arco tra due nodi, se presente
      ArcSign<TN,​TA> getArc​(NodeSign<TN> n1, NodeSign<TN> n2)
      Ritorna l'arco tra due nodi, se presente
      ArcSign<TN,​TA>[][] getArcs()
      Ritorna la matrice degli archi presenti nel GraphPanel
      java.lang.String getBackImage()
      Ritorna il nome dello sfondo
      java.awt.Image getBackImageSource()
      Ritorna l'immagine dello sfondo
      java.awt.Color getColor()
      Ritorna il colore di default
      double[][] getConnection​(int n)
      Ritorna la matrice dei collegamenti tra i nodi in un dato numero di passi
      double[][] getConnections()
      Ritorna la matrice delle connessioni tra i nodi in un numero qualsiasi di passi
      Graph<TN,​TA> getGraph()
      Ritorna il grafo rappresentato nel pannello
      GraphListener[] getGraphListeners()
      Rimuove un GraphListener dal pannello.
      java.awt.Image getImage​(java.lang.String ims)
      Ritorna una immagine.
      java.lang.String getImageName()
      Ritorna l'immagine dei nodi di default
      java.lang.String getName()
      Ritorna il nome di default
      NodeSign<TN> getNode​(int i)
      Ritorna un nodo indicato con il suo indice
      NodeSign<TN> getNode​(int x, int y)
      Ritorna un nodo indicato con le sue coordinate sul grafo
      NodeSign<TN> getNode​(java.lang.String s)
      Ritorna un nodo indicato con il suo nome
      boolean getNodeFill()
      Ritorna il riempimento di default dei nodi
      boolean getNodeFixing()
      Ritorna il fissaggio di default dei nodi
      int getNodeIndex​(int x, int y)
      Ritorna l'indice di un nodo indicato con le sue coordinate sul grafo
      int getNodeIndex​(java.lang.String s)
      Ritorna l'indice di un nodo indicato con il suo nome
      java.lang.String getNodeName​(int x, int y)
      Ritorna il nome di un nodo indicato con le sue coordinate sul grafo
      NodeSign<TN>[] getNodes()
      Ritorna la matrice dei nodi presenti nel GraphPanel
      int getNodeShape()
      Ritorna la forma dei nodi di default
      int getNodeSize()
      Ritorna la dimensione dei nodi di default
      java.awt.Dimension getPreferredSize()
      Ritorna la dimensione preferita del GraphPanel
      boolean getShowAxis()
      Ritorna la visualizzazione degli assi del grafo
      boolean getShowNames()
      Ritorna la visualizzazione dei nomi dei nodi del grafo
      boolean getShowWeights()
      Ritorna la visualizzazione dei pesi degli archi del grafo
      java.lang.String getString()
      Deprecated.
      substituted by getName
      int getThickness()
      Ritorna lo spessore di default
      double getWeight()
      Ritorna il peso di default
      int getZoom()
      Ritorna il grado di ingrandimento del grafo
      void inZoom()
      Ingrandisce il grafo
      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
      boolean isEdit()
      Controlla se sono abilitate le modifiche sul pannello
      boolean isModified()
      Controlla se il pannello e' stato modificato
      boolean isMovable()
      Controlla se sono abilitati gli spostamenti sul pannello
      boolean isPopUp()
      Controlla se e' abilitato il popup sul pannello
      boolean isSliding()
      Controlla se e' abilitato lo scivolamento sul GraphJPanel
      boolean linearise()
      Linearizza il grafo (Bisogna ancora risolvere la linearizzazione di piu' di due passi)
      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.
      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.
      static void main​(java.lang.String[] s)
      Il programma di prova
      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
      void mouseDragged​(java.awt.event.MouseEvent e)
      Gestisce l'evento mouse dragged se l'evento non e' stato gia' consumato
      void mouseEntered​(java.awt.event.MouseEvent e)
      Gestisce l'evento mouse entered
      void mouseExited​(java.awt.event.MouseEvent e)
      Gestisce l'evento mouse exited
      void mouseMoved​(java.awt.event.MouseEvent e)
      Gestisce l'evento mouse moved
      void mousePressed​(java.awt.event.MouseEvent e)
      Gestisce l'evento mouse pressed se l'evento non e' stato gia' consumato
      void mouseReleased​(java.awt.event.MouseEvent e)
      Gestisce l'evento mouse released se l'evento non e' stato gia' consumato
      void moved​(GraphEvent ge)
      invocata quando il pannello viene spostato
      void nodeAdded​(GraphEvent ge)
      invocata quando un nodo viene aggiunto
      void nodeRemoved​(GraphEvent ge)
      invocata quando un nodo viene rimosso
      void nodeSelected​(GraphEvent ge)
      invocata quando un nodo viene selezionato
      void outZoom()
      Rimpicciolisce il grafo
      void paint​(java.awt.Graphics g)
      Disegna il pannello
      boolean removeArc​(int x, int y)
      Rimuove l'arco selezionato dal grafo
      boolean removeArc​(ArcSign<TN,​TA> as)
      Rimuove un arco dal grafo
      boolean removeArc​(java.lang.String source, java.lang.String dest)
      Rimuove un arco dal grafo tra il nodo source e il nodo dest
      boolean removeArcs​(java.lang.String source, java.lang.String dest)
      Rimuove gli archi dal grafo tra il nodo source e il nodo dest
      void removeGraphListener​(GraphListener gl)
      Rimuove un nuovo GraphListener dal pannello.
      boolean removeNode​(int x, int y)
      Rimuove il nodo selezionato dal grafo
      boolean removeNode​(java.lang.String name)
      Rimuove un nodo col dato nome dal grafo
      boolean renameNode​(java.lang.String name, java.lang.String newName)
      Rinomina un nodo nel grafo
      void reset()
      Ripristina la zoommata e l'origine
      boolean reshapeNode​(java.lang.String name, int newShape)
      Modifica la forma di un nodo nel grafo
      boolean resizeNode​(java.lang.String name, int newSize)
      Modifica la dimensione di un nodo nel grafo
      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.
      void selectAll​(boolean sel)
      Seleziona o deselaziona tutti i nodi del grafo
      void set​(GraphEvent ge)
      invocata quando vengono modificati i default del pannello
      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
      void setBackImage​(java.awt.Image i)
      Deprecated.
      versione 2.0 utilizzare la forma setBackImage(String i) che conserva il nome dell'immagine per poterlo salvare
      void setBackImage​(java.lang.String i)
      Modifica lo sfondo
      void setColor​(java.awt.Color c)
      Stabilisce il colore di default
      void setEdit​(boolean is)
      Abilita e disabilita le modifiche sul pannello
      void setGraph​(Graph<TN,​TA> g)
      Visualizza un grafo sul GraphPanel
      void setGraph​(Graph<TN,​TA> g, int[][] c)
      Visualizza un grafo sul GraphPanel
      void setGraph​(Graph<TN,​TA> g, int[][] c, java.awt.Color col)
      Visualizza un grafo sul GraphPanel
      void setGraph​(java.lang.String[] name, int[][] matAd)
      Inizializza il GraphPanel con un grafo
      void setGraph​(java.lang.String[] name, int[][] matAd, double[][][] prices)
      Inizializza il GraphPanel con un grafo pesato
      void setImageName​(java.lang.String im)
      Stabilisce l'immagine dei nodi di default
      void setImageReader​(ImageReader i)
      Stabilisce l'ImageReader da utilizzare per la lettura delle immagini
      void setLanguage​(java.lang.String[] v, java.lang.String[] p)
      Sostituisce i testi nei menu e nelle finestre
      void setModified​(boolean mo)
      Segna come modificato il pannello
      void setMovable​(boolean is)
      Abilita e disabilita gli spostamenti sul pannello
      void setName​(java.lang.String s)
      Stabilisce il nome di default
      void setNodeFill​(boolean fill)
      Stabilisce il rempimento di dafault dei nodi
      void setNodeFixing​(boolean fixing)
      Stabilisce il fissaggio di dafault dei nodi
      void setNodeShape​(int sh)
      Stabilisce la forma dei nodi di default
      void setNodeSize​(int dim)
      Stabilisce la dimensione dei nodi di default
      void setPopUp​(boolean pu)
      Abilita e disabilita il popup sul pannello
      void setShowAxis​(boolean show)
      Stabilisce se visualizzare gli assi nel grafo
      void setShowNames​(boolean show)
      Stabilisce se visualizzare i nomi dei nodi nel grafo
      void setShowText​(boolean show)
      Stabilisce se visualizzare le scritte nel grafo
      void setShowWeights​(boolean show)
      Stabilisce se visualizzare i pesi degli archi nel grafo
      void setSize​(int w, int h)
      Modifica la dimensione del GraphPanel
      void setSize​(java.awt.Dimension d)
      Modifica la dimensione del GraphPanel
      void setSliding​(boolean sl)
      Abilita e disabilita scivolamento sul GraphPanel
      void setString​(java.lang.String s)
      Deprecated.
      void setThickness​(int th)
      Stabilisce lo spessore di default
      boolean setThickness​(java.lang.String name, int newThickness)
      Modifica lo spessore di un nodo nel grafo
      void setVisible​(boolean v)  
      void setWeight​(double w)
      Stabilisce il peso di default
      void setZoom​(int z)
      Stabilisce il grado di ingrandimento del grafo
      void slide​(int x, int y)
      Sposta l'origine
      java.lang.String toString()
      Ritorna la stringa che descrive il grafo
      void update​(java.awt.Graphics g)
      Disegna il GraphJPanel
      int zoom​(int v)
      Applica la zoommata alla dimensione
      void zoomed​(GraphEvent ge)
      invocata quando viene fatto uno zoom sul pannello
      • 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, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paintBorder, paintChildren, paintComponent, 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, unregisterKeyboardAction
      • 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, 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, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, 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, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, show, show, size, transferFocus, transferFocusBackward, transferFocusUpCycle
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • GraphJPanel

        public GraphJPanel()
        Crea un GraphJPanel di un grafo vuoto
      • GraphJPanel

        public GraphJPanel​(java.awt.Image bg,
                           java.lang.String bgn)
        Crea un GraphJPanel di un grafo vuoto con una immagine di sfondo
        Parameters:
        bg - l'immagine di sfondo
        bgn - il nome dell'immagine di sfondo
      • GraphJPanel

        public GraphJPanel​(Graph<TN,​TA> gr)
        Crea un GraphJPanel di un grafo dato
        Parameters:
        gr - il grafo
      • GraphJPanel

        public GraphJPanel​(Graph<TN,​TA> gr,
                           java.awt.Image bg,
                           java.lang.String bgn)
        Crea un GraphJPanel di un grafo dato con una immagine di sfondo
        Parameters:
        gr - il grafo
        bg - l'immagine di sfondo
        bgn - il nome dell'immagine di sfondo
      • GraphJPanel

        public GraphJPanel​(java.io.Reader r)
        Crea un GraphJPanel 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
      • GraphJPanel

        public GraphJPanel​(java.lang.String[] name,
                           int[][] matAd)
        Crea un GraphJPanel 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 grafo
        matAd - matrice di adiacenza del grafo
      • GraphJPanel

        public GraphJPanel​(java.lang.String[] name,
                           int[][] matAd,
                           double[][][] p)
        Crea un GraphJPanel 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 grafo
        matAd - matrice di adiacenza del grafo
        p - matrice dei prezzi di ogni arco
      • GraphJPanel

        public GraphJPanel​(java.lang.String[] name,
                           int[][] pos,
                           int[][] matAd,
                           double[][][] p)
        Crea un GraphJPanel 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 grafo
        pos - le coordinate dei nodi (primo indice orizzontale, secondo indice verticale)
        matAd - matrice di adiacenza del grafo
        p - matrice dei prezzi di ogni arco
      • GraphJPanel

        public GraphJPanel​(java.lang.String[] name,
                           int[][] pos,
                           int[][] matAd,
                           double[][][] p,
                           java.awt.Color col)
        Crea un GraphJPanel 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 grafo
        pos - le coordinate dei nodi (primo indice orizzontale, secondo indice verticale)
        matAd - matrice di adiacenza del grafo
        col - il colore degli archi e dei nodi
        p - matrice dei prezzi di ogni arco
      • GraphJPanel

        public GraphJPanel​(java.lang.String[][] couples,
                           double[] p)
        Crea un GraphJPanel 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 arco
        p - matrice dei prezzi di ogni arco
      • GraphJPanel

        public GraphJPanel​(java.lang.String[][] couples,
                           double[] p,
                           java.awt.Color col)
        Crea un GraphJPanel 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 arco
        p - matrice dei prezzi di ogni arco
        col - il colore degli archi e dei nodi
      • GraphJPanel

        public GraphJPanel​(java.lang.String[][] couples,
                           double[] p,
                           int[][] pos,
                           java.awt.Color col)
        Crea un GraphJPanel 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 arco
        p - matrice dei prezzi di ogni arco
        pos - 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:
        arcSelected in interface GraphListener
        Parameters:
        ge - il descrittore dell'evento
      • nodeSelected

        public void nodeSelected​(GraphEvent ge)
        invocata quando un nodo viene selezionato
        Specified by:
        nodeSelected in interface GraphListener
        Parameters:
        ge - il descrittore dell'evento
      • arcAdded

        public void arcAdded​(GraphEvent ge)
        invocata quando un arco viene aggiunto
        Specified by:
        arcAdded in interface GraphListener
        Parameters:
        ge - il descrittore dell'evento
      • nodeAdded

        public void nodeAdded​(GraphEvent ge)
        invocata quando un nodo viene aggiunto
        Specified by:
        nodeAdded in interface GraphListener
        Parameters:
        ge - il descrittore dell'evento
      • arcRemoved

        public void arcRemoved​(GraphEvent ge)
        invocata quando un arco viene rimosso
        Specified by:
        arcRemoved in interface GraphListener
        Parameters:
        ge - il descrittore dell'evento
      • nodeRemoved

        public void nodeRemoved​(GraphEvent ge)
        invocata quando un nodo viene rimosso
        Specified by:
        nodeRemoved in interface GraphListener
        Parameters:
        ge - il descrittore dell'evento
      • changed

        public void changed​(GraphEvent ge)
        invocata quando il pannello viene modificato
        Specified by:
        changed in interface GraphListener
        Parameters:
        ge - il descrittore dell'evento
      • moved

        public void moved​(GraphEvent ge)
        invocata quando il pannello viene spostato
        Specified by:
        moved in interface GraphListener
        Parameters:
        ge - il descrittore dell'evento
      • set

        public void set​(GraphEvent ge)
        invocata quando vengono modificati i default del pannello
        Specified by:
        set in interface GraphListener
        Parameters:
        ge - il descrittore dell'evento
      • zoomed

        public void zoomed​(GraphEvent ge)
        invocata quando viene fatto uno zoom sul pannello
        Specified by:
        zoomed in interface GraphListener
        Parameters:
        ge - il descrittore dell'evento
      • close

        public void close()
        Da chiamare al momento della chiusura del JPanel 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 menu
        p - 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 GraphJPanel
        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 grafo
        merge - 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 grafo
        matAd - 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 grafo
        matAd - matrice di adiacenza del grafo
        prices - 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 visualizzare
        c - 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 visualizzare
        c - 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'arco
        j - 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:
        getPreferredSize in class javax.swing.JComponent
        Returns:
        la dimensione preferita del GraphPanel
      • setSize

        public void setSize​(int w,
                            int h)
        Modifica la dimensione del GraphPanel
        Overrides:
        setSize in class java.awt.Component
      • setSize

        public void setSize​(java.awt.Dimension d)
        Modifica la dimensione del GraphPanel
        Overrides:
        setSize in class java.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 percorso
        steps - 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 percorso
        steps - l'elenco dei nodi che costituiscono il percorso
        visible - 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 percorso
        cn - il colore dei nodi (se null il colore non viene cambiato)
        steps - l'elenco dei nodi che costituiscono il percorso
        visible - 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 percorso
        steps - 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 percorso
        steps - l'elenco degli indici dei nodi che costituiscono il percorso
        visible - 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 percorso
        cn - il colore dei nodi (se null il colore non viene cambiato)
        steps - l'elenco degli indici dei nodi che costituiscono il percorso
        visible - 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 nodo
        newSize - 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 nodo
        newThickness - 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 nodo
        newShape - 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 nodo
        newFill - 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 nodo
        newFix - 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 nodo
        newThick - 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 nodo
        newFix - 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 nodo
        image - 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 nodo
        newName - 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 selezione
        y - 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 aggiungere
        c - 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 aggiungere
        x - la coordinata x del nodo
        y - 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 aggiungere
        x - la coordinata x del nodo
        y - la coordinata y del nodo
        c - 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 aggiungere
        x - la coordinata x del nodo
        y - la coordinata y del nodo
        c - colore del nodo
        dim - 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 aggiungere
        x - la coordinata x del nodo
        y - la coordinata y del nodo
        c - colore del nodo
        dim - dimensione del nodo
        image - 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 aggiungere
        x - la coordinata x del nodo
        y - la coordinata y del nodo
        c - colore del nodo
        dim - dimensione del nodo
        shape - 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 aggiungere
        x - la coordinata x del nodo
        y - la coordinata y del nodo
        c - colore del nodo
        dim - dimensione del nodo
        shape - forma del nodo
        filled - 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 aggiungere
        x - la coordinata x del nodo
        y - la coordinata y del nodo
        c - colore del nodo
        dim - dimensione del nodo
        shape - forma del nodo
        filled - true se il nodo è pieno, false se il nodo è vuoto
        thickness - 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 aggiungere
        x - la coordinata x del nodo
        y - la coordinata y del nodo
        c - colore del nodo
        dim - dimensione del nodo
        image - immagine di sfondo del nodo, null se il nodo è una forma geometrica
        shape - forma del nodo
        filled - true se il nodo è pieno, false se il nodo è vuoto
        thickness - 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 aggiungere
        x - la coordinata x del nodo
        y - la coordinata y del nodo
        c - colore del nodo
        dim - dimensione del nodo
        image - immagine di sfondo del nodo, null se il nodo è una forma geometrica
        shape - forma del nodo
        filled - true se il nodo è pieno, false se il nodo è vuoto
        thickness - lo spessore del bordo del segno
        fixing - 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 rappresentazione
        ns - 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'arco
        dest - 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'arco
        dest - 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 selezione
        y - 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'arco
        dest - 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'arco
        dest - la destinazione dell'arco
        c - 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'arco
        dest - la destinazione dell'arco
        price - 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'arco
        dest - la destinazione dell'arco
        c - il colore dell'arco
        price - 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'arco
        dest - la destinazione dell'arco
        c - il colore dell'arco
        thickness - lo spessore dell'arco
        visible - la visibilità dell'arco
        price - 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'arco
        dest - la destinazione dell'arco
        price - 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'arco
        dest - la destinazione dell'arco
        thickness - 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:
        actionPerformed in interface java.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:
        mouseClicked in interface java.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:
        mouseEntered in interface java.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:
        mouseExited in interface java.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:
        mousePressed in interface java.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:
        mouseReleased in interface java.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:
        mouseDragged in interface java.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:
        mouseMoved in interface java.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 grafo
        y - 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 grafo
        y - 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 grafo
        y - 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 partenza
        n2 - 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 partenza
        n2 - 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 grafo
        y - 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:
        setName in class java.awt.Component
        Parameters:
        s - la stringa di default
      • getString

        @Deprecated
        public java.lang.String getString()
        Deprecated.
        substituted by getName
        Ritorna la stringa di default
        Returns:
        la stringa di default
      • getName

        public java.lang.String getName()
        Ritorna il nome di default
        Overrides:
        getName in class java.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 orizzontale
        y - 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 salvare
        Modifica 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:
        getImage in interface ImageReader
        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:
        update in class javax.swing.JComponent
        Parameters:
        g - lo spazio grafico di tracciamento
      • paint

        public void paint​(java.awt.Graphics g)
        Disegna il pannello
        Overrides:
        paint in class javax.swing.JComponent
        Parameters:
        g - lo spazio grafico di tracciamento
      • toString

        public java.lang.String toString()
        Ritorna la stringa che descrive il grafo
        Overrides:
        toString in class java.awt.Component
        Returns:
        la descrizione del grafo
      • setVisible

        public void setVisible​(boolean v)
        Overrides:
        setVisible in class javax.swing.JComponent
      • 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