All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.uni.freiburg.iig.telematik.sepia.graphic.GraphicalIFNet Maven / Gradle / Ivy

package de.uni.freiburg.iig.telematik.sepia.graphic;

import java.awt.Color;
import java.util.Random;

import de.uni.freiburg.iig.telematik.sepia.graphic.netgraphics.IFNetGraphics;
import de.uni.freiburg.iig.telematik.sepia.petrinet.ifnet.DeclassificationTransition;
import de.uni.freiburg.iig.telematik.sepia.petrinet.ifnet.IFNet;
import de.uni.freiburg.iig.telematik.sepia.petrinet.ifnet.IFNetFlowRelation;
import de.uni.freiburg.iig.telematik.sepia.petrinet.ifnet.IFNetMarking;
import de.uni.freiburg.iig.telematik.sepia.petrinet.ifnet.IFNetPlace;
import de.uni.freiburg.iig.telematik.sepia.petrinet.ifnet.RegularIFNetTransition;
import de.uni.freiburg.iig.telematik.sepia.petrinet.ifnet.abstr.AbstractIFNetTransition;

/**
 * Container class with a {@link IFNet} and its graphical information as {@link IFNetGraphics}.
 * 
 * @author Thomas Stocker
 * @author Adrian Lange
 */
public class GraphicalIFNet extends AbstractGraphicalIFNet<	IFNetPlace, 
															AbstractIFNetTransition, 
															IFNetFlowRelation, 
															IFNetMarking, 
															RegularIFNetTransition, 
															DeclassificationTransition, 
															IFNet, 
															IFNetGraphics> {

	public GraphicalIFNet(IFNet petriNet) {
		super();
		setPetriNet(petriNet);
		IFNetGraphics graphics = new IFNetGraphics();
		Random rand = new Random();
		for(String attribute: petriNet.getTokenColors()){
			if(attribute.equals(petriNet.defaultTokenColor()))
				continue;
			graphics.getColors().put(attribute, new Color(rand.nextInt(255),rand.nextInt(255),rand.nextInt(255)));
		}
		setPetriNetGraphics(graphics);
	}
	
	public GraphicalIFNet(IFNet petriNet, IFNetGraphics petriNetGraphics) {
		super(petriNet, petriNetGraphics);
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy