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 / dialogremember / DialogRememberPage.java @ 43256

History | View | Annotate | Download (5.55 KB)

1
package org.gvsig.app.gui.preferencespage.dialogremember;
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
import org.gvsig.andami.IconThemeHelper;
10
import org.gvsig.andami.preferences.IPreference;
11
import org.gvsig.andami.preferences.StoreException;
12
import org.gvsig.dialogremember.DialogRememberManager;
13
import org.gvsig.dialogremember.DialogRememeber;
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.util.ToolsUtilLocator;
21

    
22
public class DialogRememberPage extends DialogRememberView implements IPreference {
23
    //
24
    // The class DialogRememberView can extend from AbstractPreferencePage, not JPanel,
25
    // if rereate it from the GUI builder change te class declaration to:
26
    //    public abstract class DialogRememberView extends AbstractPreferencePage
27

    
28
    private JListWithCheckbox lstCheckdsRemembers;
29
    
30
    public static String id = DialogRememberPage.class.getName();
31
    private ImageIcon icon;
32
        
33
    public DialogRememberPage() {
34
        //setParentID(GeneralPage.class.getName());
35
        initComponents();
36
    }
37
    
38
    private void initComponents() {
39
        icon = IconThemeHelper.getImageIcon("dialog-remember-preferences");
40
        ToolsSwingManager swingManager = ToolsSwingLocator.getToolsSwingManager();
41
        this.lstCheckdsRemembers = swingManager.createJListWithCheckbox(this.lstRemembers);
42
        final ListSelectionModel checkModel = this.lstCheckdsRemembers.getCheckedModel();
43
        checkModel.addListSelectionListener(new ListSelectionListener() {
44

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

    
69
        this.lblTitle.setText(i18n.getTranslation(this.lblTitle.getText()));
70
    }
71
    
72
    @Override
73
    public boolean isResizeable() {
74
        return true;
75
    }
76

    
77
    @Override
78
    public void initializeValues() {
79
        DialogRememberManager remembers = ToolsUtilLocator.getDialogRemembereManager();
80
          
81
        DefaultListModel model = new DefaultListModel();
82
        ListSelectionModel checkModel = this.lstCheckdsRemembers.getCheckedModel();
83
        checkModel.clearSelection();
84
        int n=0;
85
        for(DialogRememeber remember : remembers.remembers() ) {
86
            model.addElement(new ListElement<>(remember.getId(), remember));
87
            if( remember.hasValue() ) {
88
                checkModel.addSelectionInterval(n, n);
89
            }
90
            n++;
91
        }        
92
        this.lstCheckdsRemembers.setModel(model);
93
    }
94

    
95
    @Override
96
    public void initializeDefaults() {
97
        DialogRememberManager remembers = ToolsUtilLocator.getDialogRemembereManager();
98
                
99
        DefaultListModel model = new DefaultListModel();
100
        ListSelectionModel checkModel = this.lstCheckdsRemembers.getCheckedModel();
101
        for(DialogRememeber remember : remembers.remembers() ) {
102
            model.addElement(new ListElement<>(remember.getId(), remember));
103
        }        
104
        this.lstCheckdsRemembers.setModel(model);
105
        checkModel.clearSelection();
106
    }
107

    
108
    @Override
109
    public String getID() {
110
        return id;
111
    }
112

    
113
    @Override
114
    public String getTitle() {
115
        I18nManager i18nManager = ToolsLocator.getI18nManager();
116
        return i18nManager.getTranslation("_Remembered_dialogs");
117
    }
118

    
119
    @Override
120
    public JPanel getPanel() {
121
        return this;
122
    }
123

    
124
    
125
    @Override
126
    public void storeValues() throws StoreException {
127
        DialogRememberManager remembers = ToolsUtilLocator.getDialogRemembereManager();
128
                
129
        ListSelectionModel checkModel = this.lstCheckdsRemembers.getCheckedModel();
130
        int n=0;
131
        for(DialogRememeber remember : remembers.remembers() ) {
132
            if( ! checkModel.isSelectedIndex(n)  ) {
133
                remember.reset();
134
            }
135
            n++;
136
        }             
137
    }
138

    
139
    @Override
140
    public ImageIcon getIcon() {
141
        return icon;
142
    }
143

    
144
    @Override
145
    public boolean isValueChanged() {
146
        DialogRememberManager remembers = ToolsUtilLocator.getDialogRemembereManager();
147
                
148
        ListSelectionModel checkModel = this.lstCheckdsRemembers.getCheckedModel();
149
        int n=0;
150
        for(DialogRememeber remember : remembers.remembers() ) {
151
            if( checkModel.isSelectedIndex(n) != remember.hasValue() ) {
152
                return true;
153
            }
154
            n++;
155
        }             
156
        return false;
157
    }
158

    
159
    @Override
160
    public void setChangesApplied() {
161
        // Do nothing
162
    }
163
    
164

    
165
}