Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.plugin / org.gvsig.coreplugin.app / org.gvsig.coreplugin.app.mainplugin / src / main / java / org / gvsig / coreplugin / preferences / general / IconThemePage.java @ 43068

History | View | Annotate | Download (5.31 KB)

1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2013 gvSIG Association.
5
 *
6
 * This program is free software; you can redistribute it and/or modify it under
7
 * the terms of the GNU General Public License as published by the Free Software
8
 * Foundation; either version 3 of the License, or (at your option) any later
9
 * version.
10
 *
11
 * This program is distributed in the hope that it will be useful, but WITHOUT
12
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
13
 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
14
 * details.
15
 *
16
 * You should have received a copy of the GNU General Public License along with
17
 * this program; if not, write to the Free Software Foundation, Inc., 51
18
 * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
19
 *
20
 * For any additional information, do not hesitate to contact us at info AT
21
 * gvsig.com, or visit our website www.gvsig.com.
22
 */
23
package org.gvsig.coreplugin.preferences.general;
24

    
25
import java.awt.BorderLayout;
26
import java.util.prefs.Preferences;
27

    
28
import javax.swing.ComboBoxModel;
29
import javax.swing.ImageIcon;
30
import javax.swing.JPanel;
31
import javax.swing.event.ListDataListener;
32

    
33
import org.gvsig.andami.IconThemeHelper;
34
import org.gvsig.andami.preferences.AbstractPreferencePage;
35
import org.gvsig.andami.preferences.StoreException;
36
import org.gvsig.i18n.Messages;
37
import org.gvsig.tools.swing.api.ToolsSwingLocator;
38
import org.gvsig.tools.swing.icontheme.IconTheme;
39
import org.gvsig.tools.swing.icontheme.IconThemeManager;
40
import org.slf4j.Logger;
41
import org.slf4j.LoggerFactory;
42

    
43
public class IconThemePage extends AbstractPreferencePage {
44

    
45
    /**
46
     *
47
     */
48
    private static final long serialVersionUID = 4369071892027860769L;
49

    
50
    private static final Logger logger = LoggerFactory.getLogger(IconThemePage.class);
51

    
52
    private final String id;
53
    private boolean changed = false;
54
    private IconThemePageLayout panel = null;
55
    private ImageIcon icon = null;
56

    
57
    public IconThemePage() {
58
        super();
59
        initialize();
60
        id = this.getClass().getName();
61
        setParentID(GeneralPage.class.getName());
62
    }
63

    
64
    @Override
65
    public String getID() {
66
        return id;
67
    }
68

    
69
    @Override
70
    public String getTitle() {
71
        return Messages.getText("_Icon_theme");
72
    }
73

    
74
    @Override
75
    public JPanel getPanel() {
76
        return this;
77
    }
78

    
79
    @Override
80
    public void initializeValues() {
81
    }
82

    
83
    @Override
84
    public void storeValues() throws StoreException {
85
        IconTheme iconTheme = (IconTheme) panel.combo_selection.getSelectedItem();
86
        if (iconTheme != null && iconTheme != iconTheme.getDefault()) {
87
            Preferences prefs = Preferences.userRoot().node("gvsig.icontheme");
88
            prefs.put("default-theme", iconTheme.getID());
89
        }
90
    }
91

    
92
    @Override
93
    public void initializeDefaults() {
94

    
95
    }
96

    
97
    @Override
98
    public ImageIcon getIcon() {
99
        if (icon == null) {
100
            icon = IconThemeHelper.getImageIcon("edit-setup-icontheme");
101
        }
102
        return icon;
103
    }
104

    
105
    @Override
106
    public boolean isValueChanged() {
107
        if (panel.combo_selection.getSelectedIndex() >= 0) {
108
            return true;
109
        }
110
        return changed;
111
    }
112

    
113
    @Override
114
    public void setChangesApplied() {
115
        changed = false;
116
    }
117

    
118
    private void initialize() {
119
        final IconThemeManager iconManager = ToolsSwingLocator.getIconThemeManager();
120
        this.setLayout(new BorderLayout());
121

    
122
        this.panel = new IconThemePageLayout();
123

    
124
        panel.combo_selection.setModel(new ComboBoxModel() {
125
            IconTheme selected = null;
126

    
127
            @Override
128
            public void removeListDataListener(ListDataListener arg0) {
129
                // Do nothing
130
            }
131

    
132
            @Override
133
            public int getSize() {
134
                return iconManager.getCount();
135
            }
136

    
137
            @Override
138
            public Object getElementAt(int arg0) {
139
                return iconManager.get(arg0);
140
            }
141

    
142
            @Override
143
            public void addListDataListener(ListDataListener arg0) {
144
                // Do nothing
145
            }
146

    
147
            @Override
148
            public void setSelectedItem(Object arg0) {
149
                this.selected = (IconTheme) arg0;
150
            }
151

    
152
            @Override
153
            public Object getSelectedItem() {
154
                return this.selected;
155
            }
156
        });
157

    
158
        // Traducir las etiquetas del panel
159
        panel.label_title.setText(translate(panel.label_title.getText()));
160
        panel.label_selection.setText(translate(panel.label_selection.getText()));
161

    
162
        this.add(panel, BorderLayout.CENTER);
163
    }
164

    
165
    private String translate(String s) {
166
        return Messages.getText(s);
167
    }
168

    
169
//    private void createDefaultIconTheme() {
170
//        PluginsManager pluginsManager = PluginsLocator.getManager();
171
//        IconThemeManager iconManager = ToolsSwingLocator.getIconThemeManager();
172
//
173
//        File f = new File(pluginsManager.getApplicationHomeFolder(), "icon-theme");
174
//        if (!f.exists()) {
175
//            f.mkdir();
176
//        }
177
//        IconTheme theme = iconManager.getDefault();
178
//        File f2 = new File(f, theme.getID());
179
//        if (!f2.exists()) {
180
//            logger.info("Creating default icon theme in " + f.getAbsolutePath());
181
//            theme.export(f);
182
//        }
183
//    }
184
}