package app.view;
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
/**
* MenyLinje.java
*
* En klasse for å forenkle måten jeg lager Menyer på.
*
* @author Hilde Vestøl (106288)
* @version 0.9
*/
public class MenyLinje extends JMenuBar {
private ActionListener lytter;
/**
*
* @param lytter
*/
protected MenyLinje (ActionListener lytter) {
super();
this.lytter = lytter;
}
/**
*
* @param navn
* @param key
* @return
*/
protected Meny lagNyMeny( String navn, int key ) {
Meny meny = new Meny( navn );
meny.setMnemonic(key);
this.add( meny );
return meny;
}
/**
* Metode for å finne et menyfelt basert på ActionCommand.
* Brukes for å kunne sette elemter disabled/enabled
*
* @param command
* @return
*/
public JMenuItem finnMenyValg(String command) {
JMenuItem item;
for (MenuElement meny: this.getSubElements()) {
JMenu tmp = (JMenu)meny;
JMenuItem tmpItem;
for (int i = 0; i<tmp.getItemCount(); i++){
tmpItem = tmp.getItem(i);
if (tmpItem.getActionCommand().equals(command)){
return tmpItem;
}
}
}
return null;
}
/**
*
*/
protected class Meny extends JMenu {
/**
*
* @param navn
*/
protected Meny (String navn) {
super(navn);
}
/**
*
* @param navn
* @param command
* @param key
* @return
*/
protected Meny lagNyttMenyValg( String navn, String command, int key ) {
MenyValg valg = new MenyValg( navn, command, key);
this.add(valg);
return this;
}
/**
*
* @param navn
* @param command
* @return
*/
protected Meny lagNyttMenyValg( String navn, String command) {
MenyValg valg = new MenyValg( navn, command);
this.add(valg);
return this;
}
} // end class Meny
/**
*
*/
protected class MenyValg extends JMenuItem {
// Bruker getMenuShortcutKeyMask() for å sette OS'et sin command key.
private int defaultCommand = Toolkit.getDefaultToolkit().getMenuShortcutKeyMask();
/**
*
* @param navn
* @param command
* @param key
*/
protected MenyValg( String navn, String command, int key ) {
super(navn);
setActionCommand(command);
setAccelerator(KeyStroke.getKeyStroke(key, defaultCommand));
addActionListener(lytter);
}
/**
*
* @param navn
* @param command
*/
protected MenyValg(String navn, String command) {
super(navn);
setActionCommand(command);
addActionListener(lytter);
}
} // end class MenyValg
} // end class MenyLinje
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
/**
* MenyLinje.java
*
* En klasse for å forenkle måten jeg lager Menyer på.
*
* @author Hilde Vestøl (106288)
* @version 0.9
*/
public class MenyLinje extends JMenuBar {
private ActionListener lytter;
/**
*
* @param lytter
*/
protected MenyLinje (ActionListener lytter) {
super();
this.lytter = lytter;
}
/**
*
* @param navn
* @param key
* @return
*/
protected Meny lagNyMeny( String navn, int key ) {
Meny meny = new Meny( navn );
meny.setMnemonic(key);
this.add( meny );
return meny;
}
/**
* Metode for å finne et menyfelt basert på ActionCommand.
* Brukes for å kunne sette elemter disabled/enabled
*
* @param command
* @return
*/
public JMenuItem finnMenyValg(String command) {
JMenuItem item;
for (MenuElement meny: this.getSubElements()) {
JMenu tmp = (JMenu)meny;
JMenuItem tmpItem;
for (int i = 0; i<tmp.getItemCount(); i++){
tmpItem = tmp.getItem(i);
if (tmpItem.getActionCommand().equals(command)){
return tmpItem;
}
}
}
return null;
}
/**
*
*/
protected class Meny extends JMenu {
/**
*
* @param navn
*/
protected Meny (String navn) {
super(navn);
}
/**
*
* @param navn
* @param command
* @param key
* @return
*/
protected Meny lagNyttMenyValg( String navn, String command, int key ) {
MenyValg valg = new MenyValg( navn, command, key);
this.add(valg);
return this;
}
/**
*
* @param navn
* @param command
* @return
*/
protected Meny lagNyttMenyValg( String navn, String command) {
MenyValg valg = new MenyValg( navn, command);
this.add(valg);
return this;
}
} // end class Meny
/**
*
*/
protected class MenyValg extends JMenuItem {
// Bruker getMenuShortcutKeyMask() for å sette OS'et sin command key.
private int defaultCommand = Toolkit.getDefaultToolkit().getMenuShortcutKeyMask();
/**
*
* @param navn
* @param command
* @param key
*/
protected MenyValg( String navn, String command, int key ) {
super(navn);
setActionCommand(command);
setAccelerator(KeyStroke.getKeyStroke(key, defaultCommand));
addActionListener(lytter);
}
/**
*
* @param navn
* @param command
*/
protected MenyValg(String navn, String command) {
super(navn);
setActionCommand(command);
addActionListener(lytter);
}
} // end class MenyValg
} // end class MenyLinje