/**
* Copyright (c) 2014 Matthias Jaenicke <matthias.jaenicke@student.kit.edu>,
* Matthias Plappert <undkc@student.kit.edu>,
* Julien Duman <uncyc@student.kit.edu>,
* Christian Dreher <uaeef@student.kit.edu>,
* Wasilij Beskorovajnov <uajkm@student.kit.edu> and
* Aydin Tekin <aydin.tekin@student.kit.edu>
*
* Released under the MIT license (refer to LICENSE.md)
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
package edu.kit.iks.Cryptographics.Vigenere.Demonstration;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import edu.kit.iks.Cryptographics.VisualizationContainerController;
import edu.kit.iks.Cryptographics.Vigenere.VigenereVisualizationInfo;
import edu.kit.iks.CryptographicsLib.AbstractVisualizationController;
import edu.kit.iks.CryptographicsLib.AbstractVisualizationInfo;
/**
* Controller class of the first phase
* @author Aydin Tekin
*/
public class FirstDemonstrationController extends AbstractVisualizationController {
/**
* Checks if vigenere text is read
*/
private boolean vigenereRead = false;
/**
* Instance of the visualisation info
*/
private VigenereVisualizationInfo vsInfo;
/**
* Constructor of the controller
* @param visualizationInfo
*/
public FirstDemonstrationController(AbstractVisualizationInfo visualizationInfo) {
super(visualizationInfo);
this.vsInfo = (VigenereVisualizationInfo)visualizationInfo;
}
/**
* loads the view and registers the actionlistener's.
*/
@Override
public void loadView() {
this.vigenereRead = false;
this.view = new FirstDemonstrationView(vsInfo);
this.getView().getBackButton().addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
if (vigenereRead) {
vigenereRead = false;
getView().getModuloText().setVisible(false);
getView().getClock().setVisible(false);
}
}
});
this.getView().getNextButton().addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
if (!vigenereRead) {
getView().getModuloText().setVisible(true);
getView().getClock().setVisible(true);
vigenereRead = true;
} else {
VisualizationContainerController containerController = (VisualizationContainerController)getParentController();
containerController.presentNextVisualizationController();
}
}
});
this.getView().getSkipButton().addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
VisualizationContainerController containerController = (VisualizationContainerController)getParentController();
containerController.presentNextVisualizationController();
}
});
this.view.validate();
}
/**
* unloads the view
*/
@Override
public void unloadView() {
this.view = null;
}
/**
* returns the view
* @return view of current step
*/
@Override
public FirstDemonstrationView getView() {
return (FirstDemonstrationView) this.view;
}
/**
* returns the help string
* @return help string
*/
@Override
public String getHelp() {
return null;
}
}