1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194
| package fr.free.cdmrail;
import javafx.scene.control.Menu;
import javafx.scene.control.MenuBar;
import javafx.scene.control.MenuItem;
public class CdmMenuModel {
// Offset entre les ID des menus successifs
public static final short MENU_OFFSET_ID = 1;
/*
* ++++++++++++++++++++ Début de la définition des menus ++++++++++++++++++++
*/
/*
* ---------- La barre de menus ----------
*/
// Barre des menus
private static MenuBar menuBar = new MenuBar();
// ID du premier menu de la barre des menus
public static final short MENU_FIRST = MENU_OFFSET_ID;
// ID des menus de la barre des menus
public static final short MENU_FILE = MENU_FIRST;
public static final short MENU_EDIT = MENU_FILE + MENU_OFFSET_ID;
public static final short MENU_VIEW = MENU_EDIT + MENU_OFFSET_ID;
public static final short MENU_CONSISTS = MENU_VIEW + MENU_OFFSET_ID;
public static final short MENU_CONFIGURATION = MENU_CONSISTS + MENU_OFFSET_ID;
public static final short MENU_ROUTES = MENU_CONFIGURATION + MENU_OFFSET_ID;
public static final short MENU_RUN = MENU_ROUTES + MENU_OFFSET_ID;
public static final short MENU_INTERFACE = MENU_RUN + MENU_OFFSET_ID;
public static final short MENU_OPTIONS = MENU_INTERFACE + MENU_OFFSET_ID;
public static final short MENU_TOOLS = MENU_OPTIONS + MENU_OFFSET_ID;
public static final short MENU_COMMIP = MENU_TOOLS + MENU_OFFSET_ID;
public static final short MENU_WINDOW = MENU_COMMIP + MENU_OFFSET_ID;
public static final short MENU_HELP = MENU_WINDOW + MENU_OFFSET_ID;
public static final short MENU_OTHERS = MENU_HELP + MENU_OFFSET_ID;
// ID du dernier menu de la barre des menus
public static final short MENU_LAST = MENU_OTHERS;
// Liste des ID des menus de MENU_MAIN
public static final short[] MENU_MAIN_LIST = {
MENU_FILE,
MENU_EDIT,
MENU_VIEW,
MENU_CONSISTS,
MENU_CONFIGURATION,
MENU_ROUTES,
MENU_RUN,
MENU_INTERFACE,
MENU_OPTIONS,
MENU_TOOLS,
MENU_COMMIP,
MENU_WINDOW,
MENU_HELP,
MENU_OTHERS
};
// Noms des menus de la barre des menus
// En Français, en Anglais
public static final String[] MENU_MAIN_NAME = {
"Fichier/Réseau","File/Layout",
"Edition/Réseau","Edit/Layout",
"Affichage","View",
"Trains","Consists",
"Configuration","Configuration",
"Itinéraires","Routes",
"Exécuter","Run",
"Interface","Interface",
"Options","Options",
"Outils","Tools",
"Comm./IP","Comm./IP",
"Fenêtre","Window",
"Aide","Help",
"...","..."
};
// Etats des menus de la barre des menus
// true pour un menu actif, sinon false
// Les valeurs indiquées sont celles au démarrage de l'pplication
public static final boolean[] MENU_MAIN_STATE = {
true,
false,
false,
false,
false,
false,
false,
true,
true,
false,
true,
true,
true,
true
};
/*
* ++++++++++++++++++++ Fin de la définition des menus ++++++++++++++++++++
*/
/*
* ++++++++++++++++++++ Création des menus ++++++++++++++++++++
*/
//
private static class CdmMenu {
/*
* Champs d'un menu
*/
private short menuID;
// private String menuName;
private boolean menuState;
private Menu menu;
/*
* Accesseurs
*/
// Retourne l'ID du menu
public final short getMenuID() {
return this.menuID;
}
// Retourne le nom du menu
public final String getMenuName() {
return this.menu.getText();
}
// Retourne l'état du menu
public final boolean getMenuState() {
return this.menuState;
}
// Retourne le menu
public final MenuItem getMenu() {
return this.menu;
}
/*
* Mutateurs
*/
// Renseigne l'ID du menu
public void setMenuID(short ID) {
this.menuID = ID;
}
// Renseigne l'état du menu
public void setMenuState(boolean state) {
this.menuState = state;
this.menu.setDisable(!state);
}
// Renseigne le menu
public void SetMenu(Menu menu) {
this.menu = menu;
}
}
/*
* Méthodes
*/
// Renseigne la barre des menus
public static void setMenuBar() {
for (short menuIdx = 0; menuIdx < MENU_MAIN_LIST.length; menuIdx++) {
// Création du cdmMenu instance de CdmMenu
CdmMenu cdmMenu = new CdmMenu();
// ID du cdmMenu
cdmMenu.setMenuID(MENU_MAIN_LIST[menuIdx]);
// Le menu, libellé suivant la langue
Menu theMenu = new Menu(MENU_MAIN_NAME[CdmGlobal.isFrenchLanguage() ? 2*menuIdx : 2*menuIdx+1]);
cdmMenu.SetMenu(theMenu);
// Etat du menu
cdmMenu.setMenuState(MENU_MAIN_STATE[menuIdx]);
// Ajout du menu à la barre de menu
menuBar.getMenus().add(theMenu);
// Utiliser la barre de menus système sur un Mac
if (CdmOS.isMacOS()) {
menuBar.setUseSystemMenuBar(true);
}
}
}
// Retourne la barre des menus
public static MenuBar getMenuBar() {
return menuBar;
}
} |
Partager