br.uerj.petrinetanalyzer.gui
Class PetriNetEditorCanvas

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JTabbedPane
                  extended by br.uerj.petrinetanalyzer.gui.PetriNetEditorCanvas
All Implemented Interfaces:
IntfMainConstants, java.awt.event.MouseListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.SwingConstants

public class PetriNetEditorCanvas
extends javax.swing.JTabbedPane
implements IntfMainConstants, java.awt.event.MouseListener

Classe que implementa a area de desenho da rede de petri.

Author:
Felipe Lino
Data:11/01/2007
Atualizado: 20/10/2007
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JTabbedPane
javax.swing.JTabbedPane.AccessibleJTabbedPane, javax.swing.JTabbedPane.ModelListener
 
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.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
private  ArcGraph arco
          Arco a ser desenhado
private  int modo
           
private  java.lang.Object moveObj
          Objeto a ser movido
private  java.lang.Object selectObj
          Objeto correntemente selecionado
(package private) static long serialVersionUID
          Variável requisitada na herança de JTabbedPane
private  int subModo
           
private  MainWindow window
           
 
Fields inherited from class javax.swing.JTabbedPane
changeEvent, changeListener, model, SCROLL_TAB_LAYOUT, tabPlacement, WRAP_TAB_LAYOUT
 
Fields inherited from class javax.swing.JComponent
accessibleContext, 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
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface br.uerj.petrinetanalyzer.gui.interfaces.IntfMainConstants
DRAW_ARC, EDIT_ARC, EDIT_DELETE, EDIT_LABEL, EDIT_LUGAR, EDIT_MOUSE, EDIT_TRANS, FILE_SAVE, MODO_ANALISE, MODO_EDICAO, MODO_SIMULACAO, PROP_LANGUAGE_FILE_DEFAULT, PROP_LANGUAGE_FILE_ENGLISH, PROP_LANGUAGE_FILE_PORT_BR, SIM_BACK, SIM_START, SIM_STOP
 
Fields inherited from interface javax.swing.SwingConstants
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
PetriNetEditorCanvas(MainWindow w)
          Construtor.
 
Method Summary
 void addLabel(java.awt.event.MouseEvent evt)
          Adiciona um rótulo caso o ponto clicado esteja fora de algum objeto existente.
 void addPlace(java.awt.event.MouseEvent evt)
          Adiciona um Lugar caso o ponto clicado esteja fora de algum objeto existente.
 void addPointArc(java.awt.event.MouseEvent evt)
          Seta um ponto intermediário do arco.
 void addTrans(java.awt.event.MouseEvent evt)
          Adiciona uma Transição caso o ponto clicado esteja fora de algum objeto existente.
 void deleteObject(java.awt.event.MouseEvent evt)
          Deleta objeto de rede de petri desenhado na tela.
private  void desenhaArco(java.awt.Graphics g, ArcGraph a)
          Desenha cada arco da rede de petri.
private  void desenhaArcos(java.awt.Graphics g)
          Desenha os arcos da rede de petri.
private  void desenhaLugares(java.awt.Graphics g)
          Método que desenha os Lugares da Rede de Petri na tela.
private static void desenhaPontaSeta(java.awt.Graphics g, int xS, int yS, int xE, int yE)
          Desenha a ponta da Seta do arco.
 void desenhaRotulos(java.awt.Graphics g)
          Método que desenha o rótulo na janela de desenho
private  void desenhaTransicao(java.awt.Graphics g)
          Método que desenha as Transições da Rede de Petri na tela.
 void eraseArc()
          Limpar o arco que está sendo desenhado.
 int getModo()
          Retorna o modo de operação do programa.
 int getSubModo()
          Retorna Sub-modo de operação do programa.
 java.lang.String inputTextLabel()
           
 void mouseClicked(java.awt.event.MouseEvent evt)
          Invocado quando o mouse é clicado na área de desenho.
 void mouseEntered(java.awt.event.MouseEvent evt)
          Invocado quando o mouse entra na área de desenho
 void mouseExited(java.awt.event.MouseEvent evt)
          Invocado quando o mouse deixa a área de desenho
 void mousePressed(java.awt.event.MouseEvent evt)
          Invocado quando o mouse é pressionado na área de desenho.
 void mouseReleased(java.awt.event.MouseEvent evt)
          Invocado quando o mouse é largado na área de desenho.
 void moveObject(java.awt.event.MouseEvent evt)
          Move o objeto clicado e liberado pelo mouse.
 void paint(java.awt.Graphics g)
          Sobrescreve o método paint.
 void selectObject(java.awt.event.MouseEvent evt)
          Seleciona o objeto clicado pelo mouse.
 void setEndArc(java.awt.event.MouseEvent evt, java.lang.Object obj)
          Seta o objeto de rede de petri, final do arco.
 void setModo(int modo)
          Seta o modo de operação do programa.
 void setModo(int modo, int subModo)
          Seta o modo e submodo de operação do programa.
 void setStartArc(java.awt.event.MouseEvent evt)
          Seta qual o objeto da rede de petri é o início do arco.
 void setSubModo(int subModo)
          Seta o submodo de operação do programa.
 void showInfoObjectAndFireTransition(java.awt.event.MouseEvent evt)
          Mostra as informações do objeto selecionado, quando está no modo Simulação.
 void update(java.awt.Graphics g)
          Sobrescreve o método update
 
Methods inherited from class javax.swing.JTabbedPane
add, add, add, add, add, addChangeListener, addTab, addTab, addTab, createChangeListener, fireStateChanged, getAccessibleContext, getBackgroundAt, getBoundsAt, getChangeListeners, getComponentAt, getDisabledIconAt, getDisplayedMnemonicIndexAt, getForegroundAt, getIconAt, getMnemonicAt, getModel, getSelectedComponent, getSelectedIndex, getTabCount, getTabLayoutPolicy, getTabPlacement, getTabRunCount, getTitleAt, getToolTipText, getToolTipTextAt, getUI, getUIClassID, indexAtLocation, indexOfComponent, indexOfTab, indexOfTab, insertTab, isEnabledAt, paramString, remove, remove, removeAll, removeChangeListener, removeTabAt, setBackgroundAt, setComponentAt, setDisabledIconAt, setDisplayedMnemonicIndexAt, setEnabledAt, setForegroundAt, setIconAt, setMnemonicAt, setModel, setSelectedComponent, setSelectedIndex, setTabLayoutPolicy, setTabPlacement, setTitleAt, setToolTipTextAt, 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, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, 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, setVisible, unregisterKeyboardAction
 
Methods inherited from class java.awt.Container
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, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, 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, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, 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, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

serialVersionUID

static final long serialVersionUID
Variável requisitada na herança de JTabbedPane

See Also:
Constant Field Values

modo

private int modo

subModo

private int subModo

window

private MainWindow window

selectObj

private java.lang.Object selectObj
Objeto correntemente selecionado


moveObj

private java.lang.Object moveObj
Objeto a ser movido


arco

private ArcGraph arco
Arco a ser desenhado

Constructor Detail

PetriNetEditorCanvas

PetriNetEditorCanvas(MainWindow w)
Construtor.

Parameters:
w - Janela do Programa Principal
Since:
1.0
Method Detail

eraseArc

public void eraseArc()
Limpar o arco que está sendo desenhado.

Since:
1.0

setModo

public void setModo(int modo)
Seta o modo de operação do programa.

Parameters:
modo - Modo de Operação do Programa.
Since:
1.0

setSubModo

public void setSubModo(int subModo)
Seta o submodo de operação do programa.

Parameters:
subModo - Sub-modo de operação do programa.
Since:
1.0

setModo

public void setModo(int modo,
                    int subModo)
Seta o modo e submodo de operação do programa.

Parameters:
modo - Modo de Operação do Programa.
subModo - Sub-modo de operação do Programa.
Since:
1.0

getModo

public int getModo()
Retorna o modo de operação do programa.

Returns:
Modo de Operação do programa.
Since:
1.0

getSubModo

public int getSubModo()
Retorna Sub-modo de operação do programa.

Returns:
Sub-modo de operação do programa.
Since:
1.0

mouseClicked

public void mouseClicked(java.awt.event.MouseEvent evt)
Invocado quando o mouse é clicado na área de desenho.

Specified by:
mouseClicked in interface java.awt.event.MouseListener
Since:
1.0
See Also:
MouseListener.mouseClicked(java.awt.event.MouseEvent)

mouseEntered

public void mouseEntered(java.awt.event.MouseEvent evt)
Invocado quando o mouse entra na área de desenho

Specified by:
mouseEntered in interface java.awt.event.MouseListener
Since:
1.0
See Also:
MouseListener.mouseEntered(java.awt.event.MouseEvent)

mouseExited

public void mouseExited(java.awt.event.MouseEvent evt)
Invocado quando o mouse deixa a área de desenho

Specified by:
mouseExited in interface java.awt.event.MouseListener
Since:
1.0
See Also:
MouseListener.mouseExited(java.awt.event.MouseEvent)

mousePressed

public void mousePressed(java.awt.event.MouseEvent evt)
Invocado quando o mouse é pressionado na área de desenho.

Specified by:
mousePressed in interface java.awt.event.MouseListener
Since:
1.0
See Also:
MouseListener.mousePressed(java.awt.event.MouseEvent)

mouseReleased

public void mouseReleased(java.awt.event.MouseEvent evt)
Invocado quando o mouse é largado na área de desenho.

Specified by:
mouseReleased in interface java.awt.event.MouseListener
Since:
1.0
See Also:
MouseListener.mouseReleased(java.awt.event.MouseEvent)

addPlace

public void addPlace(java.awt.event.MouseEvent evt)
Adiciona um Lugar caso o ponto clicado esteja fora de algum objeto existente.

Parameters:
evt - Evento do Mouse
Since:
1.0

addTrans

public void addTrans(java.awt.event.MouseEvent evt)
Adiciona uma Transição caso o ponto clicado esteja fora de algum objeto existente.

Parameters:
evt - Evento do Mouse
Since:
1.0

addLabel

public void addLabel(java.awt.event.MouseEvent evt)
Adiciona um rótulo caso o ponto clicado esteja fora de algum objeto existente.

Parameters:
evt - Evento do Mouse
Since:
2.0

setStartArc

public void setStartArc(java.awt.event.MouseEvent evt)
Seta qual o objeto da rede de petri é o início do arco.

Parameters:
evt - Evento do Mouse
Since:
1.0

addPointArc

public void addPointArc(java.awt.event.MouseEvent evt)
Seta um ponto intermediário do arco.

Parameters:
evt - Evento do Mouse
Since:
1.0

setEndArc

public void setEndArc(java.awt.event.MouseEvent evt,
                      java.lang.Object obj)
Seta o objeto de rede de petri, final do arco.

Parameters:
evt - Evento do Mouse
obj - Objeto da Rede de Petri
Since:
1.0

selectObject

public void selectObject(java.awt.event.MouseEvent evt)
Seleciona o objeto clicado pelo mouse.

Parameters:
evt - Evento do Mouse
Since:
1.0

moveObject

public void moveObject(java.awt.event.MouseEvent evt)
Move o objeto clicado e liberado pelo mouse.

Parameters:
evt - Evento do Mouse
Since:
1.0

deleteObject

public void deleteObject(java.awt.event.MouseEvent evt)
Deleta objeto de rede de petri desenhado na tela.

Parameters:
evt - Evento do Mouse
Since:
1.0

showInfoObjectAndFireTransition

public void showInfoObjectAndFireTransition(java.awt.event.MouseEvent evt)
Mostra as informações do objeto selecionado, quando está no modo Simulação.

Parameters:
evt - Evento do Mouse
Since:
1.0

update

public void update(java.awt.Graphics g)
Sobrescreve o método update

Overrides:
update in class javax.swing.JComponent
Parameters:
g - Primitivas gráficas
Since:
1.0

paint

public void paint(java.awt.Graphics g)
Sobrescreve o método paint.

Overrides:
paint in class javax.swing.JComponent
Parameters:
g - Primitivas gráficas
Since:
1.0

desenhaLugares

private void desenhaLugares(java.awt.Graphics g)
Método que desenha os Lugares da Rede de Petri na tela.

Parameters:
g - Primitivas gráficas
Since:
1.0

desenhaTransicao

private void desenhaTransicao(java.awt.Graphics g)
Método que desenha as Transições da Rede de Petri na tela.

Parameters:
g - Primitivas gráficas
Since:
1.0

desenhaArcos

private void desenhaArcos(java.awt.Graphics g)
Desenha os arcos da rede de petri.

Parameters:
g - Primitivas gráficas
Since:
1.0

desenhaArco

private void desenhaArco(java.awt.Graphics g,
                         ArcGraph a)
Desenha cada arco da rede de petri.

Parameters:
g - Primitivas gráficas
a - Arco a ser desenhado
Since:
1.0

desenhaPontaSeta

private static void desenhaPontaSeta(java.awt.Graphics g,
                                     int xS,
                                     int yS,
                                     int xE,
                                     int yE)
Desenha a ponta da Seta do arco.

Parameters:
g - Primitivas gráficas
xS - Coordenada X, onde começa a ponta da seta
yS - Coordenada Y, onde começa a ponta da seta
xE - Coordenada X, onde termina a ponta da seta
yE - Coordenada Y, onde termina a ponta da seta
Since:
1.0

desenhaRotulos

public void desenhaRotulos(java.awt.Graphics g)
Método que desenha o rótulo na janela de desenho

Parameters:
g - Primitivas gaficas
Since:
2.0

inputTextLabel

public java.lang.String inputTextLabel()