package jp.ac.kyutech.mns.ist;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTabbedPane;
import javax.swing.SwingConstants;
public class ConfigWindow extends JFrame {
private static final long serialVersionUID = -5175059774945480866L;
final SimpleATN satn;
JTabbedPane tabbedPane;
public ConfigPanel_Draw draw;
public ConfigPanel_Database database;
public ConfigPanel_Seatmap seatmap;
public ConfigPanel_PImageFinder pimgfinder;
public ConfigPanel_Filter filter;
public ConfigPanel_LBoxTomcat lbox;
public ConfigWindow(final SimpleATN satn){
super("Config Window");
this.satn = satn;
tabbedPane = new JTabbedPane();
addTab(pimgfinder = new ConfigPanel_PImageFinder(satn, new File(System.getProperty("user.dir")), this));
addTab(seatmap = new ConfigPanel_Seatmap(satn,this));
addTab(database = new ConfigPanel_Database(satn,this));
addTab(draw = new ConfigPanel_Draw(satn,this));
addTab(filter = new ConfigPanel_Filter(satn,this));
// addTab(lbox = new ConfigPanel_LBoxTomcat(satn,this));
// addTab(new ConfigPanel(this));
getContentPane().add(tabbedPane);
setSize(600,400);
// pack();
tabbedPane.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e){
database.update();
draw.update();
}
});
try {
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
catch (final SecurityException e) {
System.out.println("Ignoring security exception. Assuming Applet Context.");
}
addWindowListener(new WindowAdapter() {
@Override
public void windowActivated(WindowEvent e) {}
@Override
public void windowClosed(WindowEvent e) {
satn.menutoolbar.getAction("Config").setSelected(false);
}
@Override
public void windowClosing(WindowEvent e) {}
@Override
public void windowDeactivated(WindowEvent e) {}
@Override
public void windowDeiconified(WindowEvent e) {}
@Override
public void windowIconified(WindowEvent e) {}
});
}
public void addTab(ConfigPanel cp){
tabbedPane.addTab(cp.tabTitle, cp);
JLabel label = new JLabel(cp.tabTitle, cp.tabIcon, SwingConstants.CENTER);
//MacosXなら、以下を実行しない
// MacOSXで動作しているか?
if (!SimpleATN.isMACOSX){
label.setVerticalTextPosition(SwingConstants.BOTTOM);
label.setHorizontalTextPosition(SwingConstants.CENTER);
}
// label.setVerticalAlignment(SwingConstants.CENTER);
// label.setHorizontalAlignment(SwingConstants.CENTER);
// Dimension dim = label.getPreferredSize();
// label.setPreferredSize(new Dimension(60, dim.height));
// label.setPreferredSize(new Dimension(100,200));
tabbedPane.setTabComponentAt(tabbedPane.getTabCount()-1, label);
}
public static ConfigWindow configWin = null;
public static void setVisible(SimpleATN satn2, boolean selected) {
if (configWin == null) configWin = new ConfigWindow(satn2);
configWin.setVisible(selected);
if (selected) configWin.resetLocationNearSATN();
}
private void resetLocationNearSATN() {
setLocation(satn.getX()+100,satn.getY()+100);
}
}