/**
* VocabularyTrainer Copyright (C) 2015 André Schepers andreschepers81@gmail.com
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package eu.vocabularytrainer.mainwindow;
import eu.vocabularyexercise.gui.VocabularyExercise;
import eu.vocabularytrainer.mainapplication.DefaultMainController;
import eu.vocabularytrainer.mainapplication.DefaultMainModel;
import eu.vocabularytrainer.mainapplication.interfaces.MainModel;
import eu.vocabularytrainer.vocabulary.interfaces.Vocabulary;
import java.awt.BorderLayout;
import java.util.Observable;
import java.util.Observer;
import javax.swing.JFrame;
/**
*
* @author Andre Schepers andreschepers81@gmail.com
*/
public class MainWindow extends JFrame implements Observer {
/**
*
*/
private VocabularyExercise exercise = null;
/**
*
*/
private MainModel model;
/**
*
*/
public MainWindow() {
model = new DefaultMainModel();
model.addObserver(this);
setJMenuBar(new MenuBar(new DefaultMainController(model)));
getContentPane().add(getVocabularyExercise(), BorderLayout.CENTER);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(500, 500);
show();
}
/**
*
*/
private VocabularyExercise getVocabularyExercise() {
if (exercise == null) {
exercise = new VocabularyExercise();
}
return exercise;
}
//--------------------------------------------------------------------------
// Main Function
//--------------------------------------------------------------------------
/**
*
* @param args
*/
public static void main(String[] args) {
MainWindow mw = new MainWindow();
}
/**
*
* @param o
* @param o1
*/
@Override
public void update(Observable o, Object o1) {
if (o == model &&
o1 instanceof MainModel.Changes) {
switch ((MainModel.Changes) o1) {
case NEW_VOCABULARY:
Vocabulary vocabulary = model.getVocabulary();
getVocabularyExercise().setVocabulary(vocabulary);
break;
}
revalidate();
}
}
}