Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.plugin / org.gvsig.app / org.gvsig.app.mainplugin / src / main / java / org / gvsig / app / gui / preferencespage / dialogreminder / DialogReminderPage.java @ 43377

History | View | Annotate | Download (5.46 KB)

1
package org.gvsig.app.gui.preferencespage.dialogreminder;
2

    
3
import javax.swing.DefaultListModel;
4
import javax.swing.ImageIcon;
5
import javax.swing.JPanel;
6
import javax.swing.ListSelectionModel;
7
import javax.swing.event.ListSelectionEvent;
8
import javax.swing.event.ListSelectionListener;
9

    
10
import org.gvsig.andami.IconThemeHelper;
11
import org.gvsig.andami.preferences.IPreference;
12
import org.gvsig.andami.preferences.StoreException;
13

    
14
import org.gvsig.tools.ToolsLocator;
15
import org.gvsig.tools.i18n.I18nManager;
16
import org.gvsig.tools.swing.api.JListWithCheckbox;
17
import org.gvsig.tools.swing.api.ListElement;
18
import org.gvsig.tools.swing.api.ToolsSwingLocator;
19
import org.gvsig.tools.swing.api.ToolsSwingManager;
20
import org.gvsig.tools.swing.api.reminder.DialogReminder;
21
import org.gvsig.tools.swing.api.reminder.DialogReminderManager;
22

    
23

    
24
public class DialogReminderPage extends DialogReminderView implements IPreference {
25

    
26
    private static final long serialVersionUID = 3811078625224506453L;
27
    //
28
    // The class DialogReminderView can extend from AbstractPreferencePage, not JPanel,
29
    // if recreate it from the GUI builder change te class declaration to:
30
    //    public abstract class DialogReminderView extends AbstractPreferencePage
31

    
32
    private JListWithCheckbox lstCheckdsRemembers;
33

    
34
    public static String id = DialogReminderPage.class.getName();
35
    private ImageIcon icon;
36

    
37
    public DialogReminderPage() {
38
        //setParentID(GeneralPage.class.getName());
39
        initComponents();
40
    }
41

    
42
    private void initComponents() {
43
        icon = IconThemeHelper.getImageIcon("dialog-remember-preferences");
44
        ToolsSwingManager swingManager = ToolsSwingLocator.getToolsSwingManager();
45
        this.lstCheckdsRemembers = swingManager.createJListWithCheckbox(this.lstRemembers);
46
        final ListSelectionModel checkModel = this.lstCheckdsRemembers.getCheckedModel();
47
        checkModel.addListSelectionListener(new ListSelectionListener() {
48

    
49
            @Override
50
            public void valueChanged(ListSelectionEvent e) {
51
                if( e.getValueIsAdjusting() ) {
52
                    return;
53
                }
54
                int n = e.getFirstIndex();
55
                if( n<=lstCheckdsRemembers.getModel().getSize() ) {
56
                    return;
57
                }
58
                ListElement<DialogReminder> element = (ListElement) lstCheckdsRemembers.getModel().getElementAt(n);
59
                if( element==null ) {
60
                    return;
61
                }
62
                if( checkModel.isSelectedIndex(n) && !element.getValue().hasValue() ) {
63
                    checkModel.removeIndexInterval(n, n);
64
                }
65
            }
66
        });
67
        translateAll();
68
    }
69

    
70
    private void translateAll() {
71
        I18nManager i18n = ToolsLocator.getI18nManager();
72

    
73
        this.lblTitle.setText(i18n.getTranslation(this.lblTitle.getText()));
74
    }
75

    
76
    @Override
77
    public boolean isResizeable() {
78
        return true;
79
    }
80

    
81
    @Override
82
    public void initializeValues() {
83
        DialogReminderManager remembers = ToolsSwingLocator.getDialogReminderManager();
84

    
85
        DefaultListModel model = new DefaultListModel();
86
        ListSelectionModel checkModel = this.lstCheckdsRemembers.getCheckedModel();
87
        checkModel.clearSelection();
88
        int n=0;
89
        for(DialogReminder remember : remembers.reminders() ) {
90
            model.addElement(new ListElement<>(remember.getId(), remember));
91
            if( remember.hasValue() ) {
92
                checkModel.addSelectionInterval(n, n);
93
            }
94
            n++;
95
        }
96
        this.lstCheckdsRemembers.setModel(model);
97
    }
98

    
99
    @Override
100
    public void initializeDefaults() {
101
        DialogReminderManager remembers = ToolsSwingLocator.getDialogReminderManager();
102

    
103
        DefaultListModel model = new DefaultListModel();
104
        ListSelectionModel checkModel = this.lstCheckdsRemembers.getCheckedModel();
105
        for(DialogReminder remember : remembers.reminders() ) {
106
            model.addElement(new ListElement<>(remember.getId(), remember));
107
        }
108
        this.lstCheckdsRemembers.setModel(model);
109
        checkModel.clearSelection();
110
    }
111

    
112
    @Override
113
    public String getID() {
114
        return id;
115
    }
116

    
117
    @Override
118
    public String getTitle() {
119
        I18nManager i18nManager = ToolsLocator.getI18nManager();
120
        return i18nManager.getTranslation("_Remembered_dialogs");
121
    }
122

    
123
    @Override
124
    public JPanel getPanel() {
125
        return this;
126
    }
127

    
128

    
129
    @Override
130
    public void storeValues() throws StoreException {
131
        DialogReminderManager remembers = ToolsSwingLocator.getDialogReminderManager();
132

    
133
        ListSelectionModel checkModel = this.lstCheckdsRemembers.getCheckedModel();
134
        int n=0;
135
        for(DialogReminder remember : remembers.reminders() ) {
136
            if( ! checkModel.isSelectedIndex(n)  ) {
137
                remember.reset();
138
            }
139
            n++;
140
        }
141
    }
142

    
143
    @Override
144
    public ImageIcon getIcon() {
145
        return icon;
146
    }
147

    
148
    @Override
149
    public boolean isValueChanged() {
150
        DialogReminderManager remembers = ToolsSwingLocator.getDialogReminderManager();
151

    
152
        ListSelectionModel checkModel = this.lstCheckdsRemembers.getCheckedModel();
153
        int n=0;
154
        for(DialogReminder remember : remembers.reminders() ) {
155
            if( checkModel.isSelectedIndex(n) != remember.hasValue() ) {
156
                return true;
157
            }
158
            n++;
159
        }
160
        return false;
161
    }
162

    
163
    @Override
164
    public void setChangesApplied() {
165
        // Do nothing
166
    }
167

    
168

    
169
}