source: src/main/java/genius/gui/MainPanel.java@ 325

Last change on this file since 325 was 234, checked in by Tim Baarslag, 5 years ago

Screen size adjustment for higher resolution monitors

File size: 3.0 KB
RevLine 
[1]1package genius.gui;
2
[15]3import java.awt.BorderLayout;
[11]4import java.awt.Component;
[1]5import java.awt.Dimension;
[11]6import java.awt.Frame;
[234]7import java.awt.Toolkit;
[20]8import java.awt.event.MouseEvent;
[1]9
10import javax.swing.JFrame;
11import javax.swing.JMenu;
12import javax.swing.JMenuBar;
[11]13import javax.swing.JScrollPane;
[1]14import javax.swing.JSplitPane;
15import javax.swing.JTabbedPane;
16
17import genius.gui.actions.AboutAction;
18import genius.gui.actions.OpenManual;
[16]19import genius.gui.actions.Session;
20import genius.gui.actions.Tournament;
[14]21import genius.gui.boaframework.BOARepositoryUI;
[17]22import genius.gui.boaparties.BoaPartiesPanel;
[11]23import genius.gui.domainrepository.DomainRepositoryUI;
[20]24import genius.gui.panels.tab.CloseTabbedPane;
[17]25import genius.gui.repository.PartyRepositoryUI;
[1]26
[12]27/**
[25]28 * main application and main GUI panel.
[15]29 *
[12]30 */
[1]31@SuppressWarnings("serial")
[16]32public class MainPanel extends JFrame implements GeniusAppInterface {
[1]33
[11]34 private JTabbedPane repoArea = new JTabbedPane();
[20]35 private CloseTabbedPane editArea = new CloseTabbedPane();
[1]36
37 public MainPanel() {
[15]38 setLayout(new BorderLayout());
[234]39
40 // Fit nicely on smaller and bigger screens
41 Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
42 int prefx = 1280;
43 int prefy = 1024;
44 if (screenSize.getWidth() >= prefx && screenSize.getHeight() >= prefy)
45 setPreferredSize(new Dimension(prefx, prefy));
46 else
47 setMinimumSize(new Dimension(600, 400));
48
[113]49 String version = getClass().getPackage().getImplementationVersion();
[230]50 if (version != null) // if the version is defined in the MANIFEST file,
51 // e.g. Genius is in a .jar
[113]52 setTitle("GENIUS " + version);
53 else
54 setTitle("GENIUS");
[11]55 JSplitPane splitpane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,
56 repoArea, editArea);
[19]57 splitpane.setDividerLocation(300);
58
[15]59 add(splitpane, BorderLayout.CENTER);
[11]60 repoArea.addTab("Domains",
61 new JScrollPane(new DomainRepositoryUI(this)));
[14]62 repoArea.addTab("BOA Components",
[18]63 new JScrollPane(new BOARepositoryUI(this)));
[17]64 repoArea.addTab("Parties", new PartyRepositoryUI());
65 repoArea.addTab("Boa Parties", new BoaPartiesPanel());
[1]66
[16]67 setJMenuBar(new MenuBar(this));
[1]68
[20]69 editArea.addCloseListener((MouseEvent e, int overTabIndex) -> editArea
70 .remove(overTabIndex));
[21]71 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
[1]72 }
73
[21]74 /**
75 * For testing
76 */
[1]77 public static void main(String[] args) {
78 MainPanel mainpanel = new MainPanel();
[11]79
[1]80 mainpanel.pack();
[15]81 mainpanel.setVisible(true);
[11]82
[1]83 }
[11]84
85 @Override
86 public void addTab(String title, Component comp) {
87 editArea.addTab(title, comp);
[20]88 editArea.setSelectedComponent(comp);
[11]89 }
90
91 @Override
92 public Frame getMainFrame() {
93 return this;
94 }
[1]95}
96
[16]97@SuppressWarnings("serial")
[1]98class MenuBar extends JMenuBar {
99 private JMenu startMenu = new JMenu();
100 private JMenu helpMenu = new JMenu();
101
[16]102 public MenuBar(GeniusAppInterface mainPanel) {
[1]103 startMenu.setText("Start");
[16]104 startMenu.add(new Session(mainPanel));
105 startMenu.add(new Tournament(mainPanel));
106
[1]107 add(startMenu);
108
109 helpMenu.setText("Help");
110 helpMenu.add(new OpenManual());
111 helpMenu.add(new AboutAction());
112 add(helpMenu);
113 }
114}
Note: See TracBrowser for help on using the repository browser.