package nl.tudelft.bw4t.scenariogui.botstore.gui;
import javax.swing.JFrame;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.WindowConstants;
import javax.swing.border.EmptyBorder;
import nl.tudelft.bw4t.scenariogui.BW4TClientConfig;
import nl.tudelft.bw4t.scenariogui.botstore.controller.BotController;
import nl.tudelft.bw4t.scenariogui.editor.gui.MainPanel;
/**
* This class serves as frame for the BotEditorPanel
*/
public class BotEditor extends JFrame {
private BW4TClientConfig model;
private static final long serialVersionUID = 8114982191029560097L;
private String windowName = "Bot Editor";
private MainPanel parent;
private BotEditorPanel bPanel;
private BotController controller;
private int row;
/**
* Creates the BotEditor.
* @param pparent The parent of the BotEditor.
* @param row The row to be updated in the ScenarioEditor.
*/
public BotEditor(MainPanel pparent, int row, BW4TClientConfig model) {
this(new BotController(pparent, row, model));
}
/**
* Creates the BotEditor.
* @param bc The BotController in control of this frame.
*/
public BotEditor(BotController bc) {
controller = bc;
setLookAndFeel();
setTitle(windowName);
setResizable(false);
setLayout(null);
bPanel = new BotEditorPanel(bc);
bPanel.setBotEditor(this);
bPanel.setBorder(new EmptyBorder(15, 15, 15, 15));
setContentPane(bPanel);
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
pack();
setLocationRelativeTo(null);
setVisible(true);
}
private void setLookAndFeel() {
try {
UIManager.setLookAndFeel(
UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException e) {
// pass
} catch (InstantiationException e) {
// pass
} catch (IllegalAccessException e) {
// pass
} catch (UnsupportedLookAndFeelException e) {
// pass
}
}
public int getRow() {
return this.row;
}
public MainPanel getParent() {
return parent;
}
public BotController getController() {
return controller;
}
public MainPanel getMainPanel() {
return controller.getMainPanel();
}
public BotEditorPanel getBotEditorPanel() {
return bPanel;
}
public void setBotEditorPanel(BotEditorPanel panel) {
bPanel = panel;
}
}