fd4a8a7f3eef33b2268f95bd6d07f8b53c3ca094
[scilab.git] / scilab / modules / scinotes / src / java / org / scilab / modules / scinotes / SciNotesConfiguration.java
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2012 - Scilab Enterprises - Calixte DENIZET
4  *
5  * This file must be used under the terms of the CeCILL.
6  * This source file is licensed as described in the file COPYING, which
7  * you should have received as part of this distribution.  The terms
8  * are also available at
9  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
10  *
11  */
12
13 package org.scilab.modules.scinotes;
14
15 import java.util.Set;
16
17 import org.scilab.modules.commons.xml.XConfigurationEvent;
18 import org.scilab.modules.commons.xml.XConfigurationListener;
19
20 public class SciNotesConfiguration implements XConfigurationListener {
21
22     public SciNotesConfiguration() { }
23
24     /**
25      * Prevent the listener that configuration has changed
26      *
27      * @param e the event
28      */
29     public void configurationChanged(XConfigurationEvent e) {
30         Conf conf = new Conf(e.getModifiedPaths());
31         if (conf.changed()) {
32             SciNotesOptions.invalidate(conf);
33             SciNotes.configurationChanged(conf);
34         }
35     }
36
37     public static class Conf {
38
39         public boolean preferences;
40         public boolean display;
41         public boolean autosave;
42         public boolean colors;
43         public boolean systemfont;
44         public boolean font;
45         public boolean keymap;
46
47         public Conf(Set<String> path) {
48             if (path.contains("ALL")) {
49                 preferences = true;
50                 display = true;
51                 autosave = true;
52                 colors = true;
53                 systemfont = true;
54                 font = true;
55                 keymap = true;
56             } else {
57                 preferences = path.contains(SciNotesOptions.PREFERENCESPATH);
58                 display = path.contains(SciNotesOptions.DISPLAYPATH);
59                 autosave = path.contains(SciNotesOptions.AUTOSAVEPATH);
60                 colors = path.contains(ScilabContext.COLORSPATH);
61                 systemfont = path.contains(ScilabContext.SYSTEMFONTPATH);
62                 font = path.contains(ScilabContext.FONTPATH);
63                 keymap = path.contains(SciNotesOptions.KEYMAPPATH);
64             }
65         }
66
67         public boolean changed() {
68             return preferences || display || autosave || colors || systemfont || font || keymap;
69         }
70     }
71 }