Import menu items from original project
This commit is contained in:
@@ -1,15 +1,20 @@
|
||||
package ovh.gasser.newshapes;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import ovh.gasser.newshapes.shapes.SCircle;
|
||||
import ovh.gasser.newshapes.shapes.SCollection;
|
||||
import ovh.gasser.newshapes.shapes.SRectangle;
|
||||
import ovh.gasser.newshapes.ui.ShapesView;
|
||||
import ovh.gasser.newshapes.ui.menu.MenuAddListener;
|
||||
import ovh.gasser.newshapes.ui.menu.MenuEditListener;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
import java.io.FileNotFoundException;
|
||||
|
||||
public class App {
|
||||
|
||||
private final static Logger logger = LoggerFactory.getLogger(App.class);
|
||||
public static final Dimension WIN_SIZE = new Dimension(800, 600);
|
||||
private SCollection model;
|
||||
|
||||
@@ -29,7 +34,7 @@ public class App {
|
||||
frame.pack();
|
||||
frame.setVisible(true);
|
||||
|
||||
this.buildMenuBar(frame);
|
||||
this.buildMenuBar(frame, view);
|
||||
}
|
||||
|
||||
private void buildModel() {
|
||||
@@ -44,20 +49,68 @@ public class App {
|
||||
);
|
||||
}
|
||||
|
||||
private void buildMenuBar(JFrame frame) {
|
||||
private void buildMenuBar(JFrame frame, ShapesView sview) {
|
||||
var menubar = new JMenuBar();
|
||||
|
||||
var helpMenu = new JMenu("Help");
|
||||
var aboutItem = new JMenuItem("About");
|
||||
aboutItem.addActionListener(actionEvent -> {
|
||||
JOptionPane.showMessageDialog(frame, "New shapes");
|
||||
});
|
||||
// About
|
||||
JMenu helpMenu = new JMenu("Help");
|
||||
JMenuItem aboutItem = new JMenuItem("About");
|
||||
aboutItem.addActionListener(evt -> JOptionPane.showMessageDialog(frame, "This project was created by Alexandre Colicchio and Thibaud Gasser", "About this project", JOptionPane.INFORMATION_MESSAGE));
|
||||
helpMenu.add(aboutItem);
|
||||
|
||||
menubar.add(buildFileMenu(sview));
|
||||
menubar.add(buildEditMenu(sview));
|
||||
menubar.add(helpMenu);
|
||||
frame.setJMenuBar(menubar);
|
||||
}
|
||||
|
||||
private JMenu buildFileMenu(ShapesView sview) {
|
||||
JMenu menuFile = new JMenu("File");
|
||||
JMenuItem addRectItem = new JMenuItem("Add SRectangle");
|
||||
JMenuItem addCircleItem = new JMenuItem("Add SCircle");
|
||||
JMenuItem htmlExportItem = new JMenuItem("Export to HTML");
|
||||
JMenuItem exitItem = new JMenuItem("Exit");
|
||||
addRectItem.addActionListener(new MenuAddListener("SRectangle", model, sview));
|
||||
addCircleItem.addActionListener(new MenuAddListener("SCircle", model, sview));
|
||||
htmlExportItem.addActionListener(evt -> {
|
||||
try {
|
||||
new HTMLExporter(model).export();
|
||||
} catch (FileNotFoundException e) {
|
||||
logger.error("Could not export as html: {}", e.getMessage());
|
||||
}
|
||||
});
|
||||
exitItem.addActionListener(evt -> System.exit(0));
|
||||
menuFile.add(addRectItem);
|
||||
menuFile.add(addCircleItem);
|
||||
menuFile.addSeparator();
|
||||
menuFile.add(htmlExportItem);
|
||||
menuFile.add(exitItem);
|
||||
return menuFile;
|
||||
}
|
||||
|
||||
private JMenu buildEditMenu(ShapesView sview) {
|
||||
MenuEditListener editListener = new MenuEditListener(model, sview, sview.getController());
|
||||
JMenu menuEdit = new JMenu("Edit");
|
||||
JMenuItem editColor = new JMenuItem("Change color");
|
||||
JMenuItem editBorderColor = new JMenuItem("Change border color");
|
||||
JMenuItem deleteItem = new JMenuItem("Delete");
|
||||
JCheckBoxMenuItem editFill = new JCheckBoxMenuItem("Fill Shape");
|
||||
JCheckBoxMenuItem editBorder = new JCheckBoxMenuItem("Draw border");
|
||||
editColor.addActionListener(editListener);
|
||||
editBorderColor.addActionListener(editListener);
|
||||
deleteItem.addActionListener(editListener);
|
||||
editFill.addActionListener(editListener);
|
||||
editBorder.addActionListener(editListener);
|
||||
|
||||
menuEdit.add(editColor);
|
||||
menuEdit.add(editBorderColor);
|
||||
menuEdit.add(deleteItem);
|
||||
menuEdit.addSeparator();
|
||||
menuEdit.add(editBorder);
|
||||
menuEdit.add(editFill);
|
||||
return menuEdit;
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
SwingUtilities.invokeLater(App::new);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user