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

Last change on this file since 230 was 230, checked in by Wouter Pasman, 5 years ago

#79 minimum size must be small to ensure Genius is usable for all users

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