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
| public class DemoDroits {
public enum Droits {
DROIT_BOUTON_A,
DROIT_BOUTON_B,
DROIT_BOUTON_C;
}
public static void main(String[] args) {
EnumSet<Droits> droits = simulationLogin();
if ( !droits.isEmpty() ) {
JFrame frame = new JFrame("Démo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
panel.add(createButton("A", Droits.DROIT_BOUTON_A, droits));
panel.add(createButton("B", Droits.DROIT_BOUTON_B, droits));
panel.add(createButton("C", Droits.DROIT_BOUTON_C, droits));
frame.add(panel);
frame.setSize(300, 400);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}
private static JButton createButton(String text, Droits droitBouton, EnumSet<Droits> droitUtilisateur) {
JButton button = new JButton(text);
boolean enabled = droitUtilisateur.contains(droitBouton); // bouton autorisé si l'utilisateur a le droit
button.setEnabled(enabled);
return button;
}
private final static String USER1 = "Utilisateur 1 (Bouton A et pas Bouton B)";
private final static String USER2 = "Utilisateur 2 (Bouton B et pas Bouton A)";
private final static String USER3 = "Utilisateur 3 (Bouton A et Bouton B)";
private static EnumSet<Droits> simulationLogin() {
JComboBox<String> combo = new JComboBox<>(new String[]{
USER1, USER2, USER3
});
switch( JOptionPane.showConfirmDialog(null, combo, "Choisir un utilisateur", JOptionPane.OK_CANCEL_OPTION) ) {
case JOptionPane.OK_OPTION:
switch ((String)combo.getSelectedItem()) {
case USER1:
return EnumSet.of(Droits.DROIT_BOUTON_A);
case USER2:
return EnumSet.of(Droits.DROIT_BOUTON_B);
case USER3:
return EnumSet.of(Droits.DROIT_BOUTON_A, Droits.DROIT_BOUTON_B);
}
default:
return EnumSet.noneOf(Droits.class);
}
}
} |
Partager