package edu.kit.iks.Cryptographics.DiffieHellman;

import java.util.ArrayList;
import java.util.List;

import edu.kit.iks.Cryptographics.DiffieHellman.Demonstration.BobChooseSecretController;
import edu.kit.iks.Cryptographics.DiffieHellman.Demonstration.ExplainAimController;
import edu.kit.iks.Cryptographics.DiffieHellman.Demonstration.AliceChooseSecretController;
import edu.kit.iks.Cryptographics.DiffieHellman.Demonstration.OnewayController;
import edu.kit.iks.Cryptographics.DiffieHellman.Demonstration.ExplainKeyExchangeController;
import edu.kit.iks.Cryptographics.DiffieHellman.Experiment.YourTurnController;
import edu.kit.iks.Cryptographics.DiffieHellman.Experiment.ChooseSecretColorController;
import edu.kit.iks.Cryptographics.DiffieHellman.Experiment.ChoosePublicColorController;
import edu.kit.iks.Cryptographics.DiffieHellman.Experiment.SendColorController;
import edu.kit.iks.CryptographicsLib.AbstractVisualizationInfo;
import edu.kit.iks.CryptographicsLib.VisualizationDifficulty;

public class DHVisualizationInfo extends AbstractVisualizationInfo {
	@Override
	public String getId() {
		return "diffiehellman";
	}
	
	@Override
	public String getName() {
		return "Diffie-Hellman";
	}
	
	@Override
	public String getDescription() {
		return "";
	}

	@Override
	public float getTimelineOffset() {
		return 0.0f;
	}

	@Override
	public VisualizationDifficulty getDifficulty() {
		return VisualizationDifficulty.EASY;
	}

	@Override
	public int getYear() {
		return 1976;
	}
	
	@Override
	public List<Class> getControllerClasses() {
		List<Class> controllerClasses = new ArrayList<Class>();
		
		controllerClasses.add(ExplainAimController.class);
		controllerClasses.add(OnewayController.class);
		controllerClasses.add(ExplainKeyExchangeController.class);
		controllerClasses.add(AliceChooseSecretController.class);
		controllerClasses.add(BobChooseSecretController.class);
		controllerClasses.add(YourTurnController.class);
		controllerClasses.add(ChoosePublicColorController.class);
		controllerClasses.add(SendColorController.class);
		controllerClasses.add(ChooseSecretColorController.class);
		
		return controllerClasses;
	}

	@Override
	public String getQRCodeContent() {
		// TODO Auto-generated method stub
		return null;
	}
}

@@ -352,32 +352,114 @@
 cretController;%0A
+import edu.kit.iks.Cryptographics.DiffieHellman.Demonstration.MixColorController;%0A
 import edu.kit.i
@@ -606,32 +606,202 @@
 angeController;%0A
+import edu.kit.iks.Cryptographics.DiffieHellman.Experiment.MixFinalSecretController;%0Aimport edu.kit.iks.Cryptographics.DiffieHellman.Experiment.SendRightColorController;%0A
 import edu.kit.i
@@ -2129,32 +2129,83 @@
 troller.class);%0A
+%09%09controllerClasses.add(MixColorController.class);%0A
 %09%09controllerClas
@@ -2411,16 +2411,130 @@
 class);%0A
+%09%09controllerClasses.add(SendRightColorController.class);%0A%09%09controllerClasses.add(MixFinalSecretController.class);%0A
 %09%09%0A%09%09ret

add to dhvisualizationinfo, register the correct classes in dh