File "MiniDraw_Menu.java"
Full Path: /home/analogde/www/LED/Freebox/Ebook/Informatique/JAVA/DATAS/REALMONT_02_02_2015/MiniDraw Application/Src/MiniDraw_Menu.java
File size: 6.08 KB
MIME-type: text/x-java
Charset: utf-8
import java.awt.Color;
import java.awt.event.*;
import javax.swing.*;
/**
* MiniDraw_Menu
* <p>
* <b>History</b> :
* <ul>
* <li>Version 0.2 : Migration to Java 1.5 : replace JDialog.show to JDialog.setVisible(true)
* <li>Version 0.1 : Initial version</li>
* </ul>
* </p>
* @author Pierrick Calvet & Florian Delclaux
*/
public class MiniDraw_Menu extends JMenuBar implements ActionListener{
private MiniDraw minidraw;
private ButtonGroup btnGroup;
/**
* Build MiniDraw_Menu's object
* @param minidraw Reference of MiniDraw's object
*/
public MiniDraw_Menu(MiniDraw minidraw){
this.minidraw = minidraw;
/* Menu File */
JMenu menuFile = new JMenu("File");
/* File -> New */
JMenuItem itemNew = new JMenuItem("New");
itemNew.addActionListener(this);
menuFile.add(itemNew);
menuFile.add(new JSeparator());
/* File -> Load */
JMenuItem itemLoad = new JMenuItem("Load");
itemLoad.addActionListener(this);
menuFile.add(itemLoad);
/* File -> Save */
JMenuItem itemSave = new JMenuItem("Save");
itemSave.addActionListener(this);
menuFile.add(itemSave);
menuFile.add(new JSeparator());
/* File -> Exit */
JMenuItem itemExit = new JMenuItem("Exit");
itemExit.addActionListener(this);
menuFile.add(itemExit);
add(menuFile);
/* Menu Color */
JMenu menuColor = new JMenu("Color");
btnGroup = new ButtonGroup();
/* Color -> Black */
JRadioButtonMenuItem itemBlack = new JRadioButtonMenuItem("Black");
itemBlack.addActionListener(this);
btnGroup.add(itemBlack);
menuColor.add(itemBlack);
/* Color -> Blue */
JRadioButtonMenuItem itemBlue = new JRadioButtonMenuItem("Blue", true);
itemBlue.addActionListener(this);
btnGroup.add(itemBlue);
menuColor.add(itemBlue);
/* Color -> Red */
JRadioButtonMenuItem itemRed = new JRadioButtonMenuItem("Red");
itemRed.addActionListener(this);
btnGroup.add(itemRed);
menuColor.add(itemRed);
/* Color -> Green */
JRadioButtonMenuItem itemGreen = new JRadioButtonMenuItem("Green");
itemGreen.addActionListener(this);
btnGroup.add(itemGreen);
menuColor.add(itemGreen);
/* Color -> Other */
JRadioButtonMenuItem itemOther = new JRadioButtonMenuItem("Other");
itemOther.addActionListener(this);
btnGroup.add(itemOther);
menuColor.add(itemOther);
add(menuColor);
/* Menu Help */
JMenu menuHelp = new JMenu("Help");
/* Help -> About */
JMenuItem itemAbout = new JMenuItem("About MiniDraw ...");
itemAbout.setActionCommand("About");
itemAbout.addActionListener(this);
menuHelp.add(itemAbout);
add(menuHelp);
}
/**
* Manage all menu's action
*/
public void actionPerformed(ActionEvent event){
/* File -> New */
if(event.getActionCommand().equals("New")){
if(minidraw.toSave){
int ans = JOptionPane.showConfirmDialog(minidraw, "Save your design ?", "Warning", JOptionPane.YES_NO_CANCEL_OPTION);
if(ans == JOptionPane.CANCEL_OPTION)
return;
if(ans == JOptionPane.YES_OPTION)
if(!minidraw.saveFile()) /* Save operation abort */
return;
}
minidraw.display.clear(); /* Clear display */
minidraw.toSave = false; /* Needn't to save */
minidraw.setTitle("MiniDraw - Untitled"); /* Change title */
return;
}
/* File -> Load */
if(event.getActionCommand().equals("Load")){
if(minidraw.toSave){
int ans = JOptionPane.showConfirmDialog(minidraw, "Save your design ?", "Warning", JOptionPane.YES_NO_CANCEL_OPTION);
if(ans == JOptionPane.CANCEL_OPTION)
return;
if(ans == JOptionPane.YES_OPTION)
if(!minidraw.saveFile()) /* Save operation abort */
return;
}
minidraw.display.clear();
if(!minidraw.loadFile()) /* Error while loading file */
minidraw.display.clear();
minidraw.toSave = false;
return;
}
/* File -> Save */
if(event.getActionCommand().equals("Save")) {
minidraw.saveFile();
minidraw.toSave = false;
return;
}
/* File -> Exit */
if(event.getActionCommand().equals("Exit")){
if(minidraw.toSave){
int ans = JOptionPane.showConfirmDialog(minidraw, "Save your design ?", "Warning", JOptionPane.YES_NO_CANCEL_OPTION);
if(ans == JOptionPane.CANCEL_OPTION) /* Abort closing operation */
return;
if(ans == JOptionPane.YES_OPTION)
if(!minidraw.saveFile()) /* Save operation abort */
return;
}
System.exit(0);
}
/* Color -> Black */
if(event.getActionCommand().equals("Black")) {
minidraw.statebar.refresh(minidraw.display.colorSelected = Color.black);
return;
}
/* Color -> Blue */
if(event.getActionCommand().equals("Blue")){
minidraw.statebar.refresh(minidraw.display.colorSelected = Color.blue);
return;
}
/* Color -> Red */
if(event.getActionCommand().equals("Red")){
minidraw.statebar.refresh(minidraw.display.colorSelected = Color.red);
return;
}
/* Color -> Green */
if(event.getActionCommand().equals("Green")){
minidraw.statebar.refresh(minidraw.display.colorSelected = Color.green);
return;
}
/* Color -> Other */
if(event.getActionCommand().equals("Other")){
JColorChooser chooser = new JColorChooser();
Color retColor = chooser.showDialog(minidraw, "Choose a color for OurShape", minidraw.display.colorSelected);
if (retColor == null)
return;
minidraw.display.colorSelected = retColor;
minidraw.statebar.refresh(minidraw.display.colorSelected);
return;
}
/* Help -> About */
if(event.getActionCommand().equals("About"))
minidraw.about.setVisible(true);
}
}