br.uerj.petrinetanalyzer.gui.listener
Class SimulationAction

java.lang.Object
  extended by br.uerj.petrinetanalyzer.gui.listener.AbstractActionListener
      extended by br.uerj.petrinetanalyzer.gui.listener.SimulationAction
All Implemented Interfaces:
IntfMainConstants

public class SimulationAction
extends AbstractActionListener

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

Author:
Felipe Lino
Data:10/02/2007
Atualizado: 24/02/2007

Field Summary
private  TreeNodeState currentState
           
private  PetriNetGraph pn
           
private  ImplSimulator simEngine
           
private  SimulationWindow simWindow
           
 
Fields inherited from class br.uerj.petrinetanalyzer.gui.listener.AbstractActionListener
modo, sub_modo, window
 
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
 
Constructor Summary
SimulationAction(PetriNetGraph pn)
          Construtor.
 
Method Summary
 void addEstado(int[] arrSequence, int[] arrMarcacao, boolean[] arrFireTrans)
          Adiciona um estado novo estado de marcações e transições disparáveis.
 boolean canFireTransition(int transPosition)
          Verifica se determinada transição pode ser disparada, após o último disparo.
 void closeSimulationWindow()
          Fecha a janela de simulação.
 TreeNodeState createState(int[] arrSequence, int[] arrMarcacao, boolean[] arrFireTrans)
          Cria um novo Estado
 int getFichas(int placePosition)
          Retorna a quantidade de fichas em um determinado lugar, após o último disparo.
 PetriNetGraph getPetriNetGraph()
          Retorna a instância de PetriNetGraph usada para simulação.
 void goToEstado()
          Faz com que a rede seja atualizada para ir para o Estado selecionado.
 void refreshText()
          Atualiza os rótulos da janela de simulação.
 void showSimulationWindow()
          Exibe a janela de simulação.
 boolean tryFireTransition(TransitionBase trans)
          tenta disparar a transição verificando primeiramente, se ela pode ser disparada.
 
Methods inherited from class br.uerj.petrinetanalyzer.gui.listener.AbstractActionListener
cleanInfoPanel, disableEditButton, disableSimulationButton, enableEditButton, enableSimulationButton, getWindow, setWindow
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

simEngine

private ImplSimulator simEngine

pn

private PetriNetGraph pn

currentState

private TreeNodeState currentState

simWindow

private SimulationWindow simWindow
Constructor Detail

SimulationAction

public SimulationAction(PetriNetGraph pn)
Construtor.

Parameters:
pn - Rede de Petri a ser simulada
Method Detail

createState

public TreeNodeState createState(int[] arrSequence,
                                 int[] arrMarcacao,
                                 boolean[] arrFireTrans)
Cria um novo Estado

Parameters:
arrSequence - Seqüência de Disparos
arrMarcacao - Marcações nos Lugares
arrFireTrans - Lista informando se transição está ou não habilitada para disparo.
Returns:
Novo Estado criado

addEstado

public void addEstado(int[] arrSequence,
                      int[] arrMarcacao,
                      boolean[] arrFireTrans)
Adiciona um estado novo estado de marcações e transições disparáveis.

Parameters:
arrSequence - Array com a seqüência de transições disparadas.
arrMarcacao - Array de marcações de Lugar
arrFireTrans - Array informando quais transições podem e quais não podem ser disparadas.

goToEstado

public void goToEstado()
Faz com que a rede seja atualizada para ir para o Estado selecionado.


getFichas

public int getFichas(int placePosition)
Retorna a quantidade de fichas em um determinado lugar, após o último disparo.

Parameters:
placePosition - Posição do Lugar na Rede
Returns:
quantidade de fichas no Lugar

canFireTransition

public boolean canFireTransition(int transPosition)
Verifica se determinada transição pode ser disparada, após o último disparo.

Parameters:
transPosition - Posição da Transição na Rede
Returns:
true caso a transição possa ser disparada.

getPetriNetGraph

public PetriNetGraph getPetriNetGraph()
Retorna a instância de PetriNetGraph usada para simulação.

Returns:
Rede de Petri da simulação

tryFireTransition

public boolean tryFireTransition(TransitionBase trans)
tenta disparar a transição verificando primeiramente, se ela pode ser disparada.

Parameters:
trans - Transição a ser disparada
Returns:
Retorna true caso consiga disparar a transição, retorna false caso contrário.

refreshText

public void refreshText()
Atualiza os rótulos da janela de simulação.


showSimulationWindow

public void showSimulationWindow()
Exibe a janela de simulação.


closeSimulationWindow

public void closeSimulationWindow()
Fecha a janela de simulação.