Statistics
| Revision:

root / tags / v10_RC2c / libraries / libCorePlugin / src / com / iver / core / PreferencesExtension.java @ 8745

History | View | Annotate | Download (3.95 KB)

1
package com.iver.core;
2

    
3
import java.util.ArrayList;
4
import java.util.HashMap;
5
import java.util.Iterator;
6

    
7
import com.iver.andami.Launcher;
8
import com.iver.andami.PluginServices;
9
import com.iver.andami.plugins.Extension;
10
import com.iver.andami.plugins.ExtensionDecorator;
11
import com.iver.andami.plugins.config.generate.Extensions;
12
import com.iver.andami.plugins.config.generate.PluginConfig;
13
import com.iver.andami.preferences.DlgPreferences;
14
import com.iver.andami.preferences.IPreference;
15
import com.iver.andami.preferences.IPreferenceExtension;
16
import com.iver.core.preferences.general.AppearancePage;
17
import com.iver.core.preferences.general.DirExtensionsPage;
18
import com.iver.core.preferences.general.ExtensionPage;
19
import com.iver.core.preferences.general.ExtensionsPage;
20
import com.iver.core.preferences.general.FolderingPage;
21
import com.iver.core.preferences.general.GeneralPage;
22
import com.iver.core.preferences.general.LanguagePage;
23
import com.iver.core.preferences.network.FirewallPage;
24
import com.iver.core.preferences.network.NetworkPage;
25
import com.iver.utiles.extensionPoints.ExtensionPoints;
26
import com.iver.utiles.extensionPoints.ExtensionPointsSingleton;
27

    
28
public class PreferencesExtension extends Extension{
29
        private ExtensionPoints extensionPoints =
30
                ExtensionPointsSingleton.getInstance();
31

    
32
        private boolean initilizedExtensions=false;
33

    
34
        public void initialize() {
35
                initializeCoreExtensions();
36
        }
37

    
38
        public void execute(String actionCommand) {
39
                if (!this.initilizedExtensions) {
40
                        initializeExtensions();
41
                        initializeExtensionsConfig();
42
                        this.initilizedExtensions = true;
43
                }
44

    
45
                DlgPreferences dlgPreferences=PluginServices.getDlgPreferences();
46
                dlgPreferences.refreshExtensionPoints();
47
                PluginServices.getMDIManager().addWindow(dlgPreferences);
48
        }
49
        public boolean isEnabled() {
50
                return true;
51
        }
52

    
53
        public boolean isVisible() {
54
                return true;
55
        }
56

    
57
        private void initializeCoreExtensions() {
58
                this.extensionPoints.add("AplicationPreferences","GeneralPage", new GeneralPage());
59
                this.extensionPoints.add("AplicationPreferences","NetworkPage", new NetworkPage());
60
                this.extensionPoints.add("AplicationPreferences","FirewallPage", new FirewallPage());
61
                this.extensionPoints.add("AplicationPreferences","DirExtensionsPage", new DirExtensionsPage());
62
                this.extensionPoints.add("AplicationPreferences","LanguagePage", new LanguagePage());
63
                this.extensionPoints.add("AplicationPreferences","ExtensionsPage", new ExtensionsPage());
64
                this.extensionPoints.add("AplicationPreferences","AppearancePage", new AppearancePage());
65
                this.extensionPoints.add("AplicationPreferences","FolderingPage", new FolderingPage());
66

    
67
                //Falta los plugin
68
        }
69

    
70
        private void initializeExtensionsConfig() {
71
                HashMap pc = Launcher.getPluginConfig();
72
                ArrayList array = new ArrayList();
73
                Iterator iter = pc.values().iterator();
74

    
75
                while (iter.hasNext()) {
76
                        array.add(((PluginConfig) iter.next()).getExtensions());
77
                }
78

    
79
                Extensions[] exts = (Extensions[]) array.toArray(new Extensions[0]);
80
                for (int i = 0; i < exts.length; i++) {
81
                        for (int j = 0; j < exts[i].getExtensionCount(); j++) {
82
                                com.iver.andami.plugins.config.generate.Extension ext = exts[i]
83
                                                .getExtension(j);
84
                                String pn = null;
85
                                String sExt = ext.getClassName().toString();
86
                                pn = sExt.substring(0, sExt.lastIndexOf("."));
87
                                //dlgPrefs.addPreferencePage(new PluginsPage(pn));
88
                                //dlgPrefs.addPreferencePage(new ExtensionPage(ext));
89
                                this.extensionPoints.add("AplicationPreferences",sExt, new ExtensionPage(ext));
90
                        }
91
                }
92
        }
93
        /**
94
         *
95
         */
96
        private void initializeExtensions() {
97

    
98
                Iterator i =PluginServices.getExtensions();
99
                        while (i.hasNext()) {
100
                                ExtensionDecorator extension = (ExtensionDecorator) i.next();
101

    
102
                                if (extension.getExtension() instanceof IPreferenceExtension) {
103
                                        IPreferenceExtension pe=(IPreferenceExtension)extension.getExtension();
104
                                        IPreference pp=pe.getPreferencesPage();
105
                                        //dlgPrefs.addPreferencePage(pe.getPreferencesPage());
106
                                        this.extensionPoints.add("AplicationPreferences",pp.getID(), pp);
107
                                }
108
                }
109
        }
110
}