Revision 1555

View differences:

org.gvsig.tools/library/tags/org.gvsig.tools-3.0.118/org.gvsig.tools.util/org.gvsig.tools.util.impl/src/main/resources/META-INF/services/org.gvsig.tools.library.Library
1
org.gvsig.tools.util.impl.ToolsUtilLibraryImpl
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.118/org.gvsig.tools.util/org.gvsig.tools.util.impl/src/main/java/org/gvsig/dialogremember/impl/DefaultDialogRememberManager.java
1

  
2
package org.gvsig.dialogremember.impl;
3

  
4
import java.util.ArrayList;
5
import java.util.Collections;
6
import java.util.HashMap;
7
import java.util.Iterator;
8
import java.util.List;
9
import java.util.Map;
10
import org.gvsig.dialogremember.DialogRememeber;
11
import org.gvsig.dialogremember.DialogRememberManager;
12

  
13

  
14
public class DefaultDialogRememberManager implements DialogRememberManager {
15

  
16
    private Map<String,DialogRememeber> remembers;
17
    
18
    public DefaultDialogRememberManager() {
19
        this.remembers = new HashMap<>();
20
    }
21
    
22
    @Override
23
    public boolean exists(String id) {
24
        return this.remembers.containsKey(id);
25
    }
26

  
27
    @Override
28
    public DialogRememeber get(String id) {
29
        return this.remembers.get(id);
30
    }
31

  
32
    @Override
33
    public DialogRememeber add(String id) {
34
        DialogRememeber r = this.get(id);
35
        if( r == null ) {
36
            r = new DefaultDialogRemember(id);
37
            this.remembers.put(id, r);
38
        }
39
        return r;
40
    }
41

  
42
    @Override
43
    public DialogRememeber add(String id, int value) {
44
        DialogRememeber r = this.add(id);
45
        r.setValue(value);
46
        return r;
47
    }
48

  
49
    @Override
50
    public Iterator<DialogRememeber> iterator() {
51
        return this.remembers.values().iterator();
52
    }
53

  
54
    @Override
55
    public List<DialogRememeber> remembers() {
56
        return Collections.unmodifiableList(new ArrayList<>(this.remembers.values()));
57
    }
58
    
59
}
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.118/org.gvsig.tools.util/org.gvsig.tools.util.impl/src/main/java/org/gvsig/dialogremember/impl/DefaultDialogRemember.java
1

  
2
package org.gvsig.dialogremember.impl;
3

  
4
import org.gvsig.dialogremember.DialogRememeber;
5

  
6

  
7
public class DefaultDialogRemember implements DialogRememeber {
8
    private final String id;
9
    private Object value;
10

  
11
    public DefaultDialogRemember(String id) {
12
        this.id = id;
13
        this.value = null;
14
    }
15
    @Override
16
    public String getId() {
17
        return id;
18
    }
19

  
20
    @Override
21
    public Object getValue() {
22
        return this.value;
23
    }
24

  
25
    @Override
26
    public void reset() {
27
        this.value = null;
28
    }
29

  
30
    @Override
31
    public boolean hasValue() {
32
        return this.value!=null;
33
    }
34

  
35
    @Override
36
    public void setValue(Object value) {
37
        this.value = value;
38
    }
39
    
40
}
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.118/org.gvsig.tools.util/org.gvsig.tools.util.impl/src/main/java/org/gvsig/tools/util/impl/ToolsUtilLibraryImpl.java
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 2 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.tools.util.impl;
24

  
25
import org.gvsig.dialogremember.impl.DefaultDialogRememberManager;
26
import org.gvsig.filedialogchooser.impl.DefaultFileDialogChooserManager;
27
import org.gvsig.tools.library.AbstractLibrary;
28
import org.gvsig.tools.library.Library;
29
import org.gvsig.tools.library.LibraryException;
30
import org.gvsig.tools.util.ToolsUtilLibrary;
31
import org.gvsig.tools.util.ToolsUtilLocator;
32

  
33
/**
34
 * {@link Library} for the default tools util implementation.
35
 *
36
 * @author gvSIG team
37
 */
38
public class ToolsUtilLibraryImpl extends AbstractLibrary {
39

  
40
    @Override
41
    public void doRegistration() {
42
        super.doRegistration();
43
        registerAsImplementationOf(ToolsUtilLibrary.class);
44
    }
45

  
46
    @Override
47
    protected void doInitialize() throws LibraryException {
48
        ToolsUtilLocator.registerDefaultToolsUtilManager(DefaultToolsUtilManager.class);
49
        ToolsUtilLocator.registerDefaultDialogRememberManager(DefaultDialogRememberManager.class);
50
        ToolsUtilLocator.registerDefaultFileDialogChooserManager(DefaultFileDialogChooserManager.class);
51
    }
52

  
53
    @Override
54
    protected void doPostInitialize() throws LibraryException {
55

  
56
    }
57

  
58
}
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.118/org.gvsig.tools.util/org.gvsig.tools.util.impl/src/main/java/org/gvsig/tools/util/impl/BaseInformationBuilder.java
1
package org.gvsig.tools.util.impl;
2

  
3
import java.util.ArrayList;
4
import java.util.List;
5

  
6
import org.apache.commons.lang3.StringEscapeUtils;
7
import org.apache.commons.lang3.StringUtils;
8

  
9
import org.gvsig.tools.ToolsLocator;
10
import org.gvsig.tools.util.InformationBuilder;
11

  
12

  
13
public class BaseInformationBuilder implements InformationBuilder {
14

  
15
    private String backgroundColor = "\"#FFFFFF\"";
16
    private String backgroundColorTitle = "\"#FBFFE1\""; // light yellow
17
    private String backgroundColorPropertyLabel = "\"#D6D6D6\""; // Gris
18
    private String backgroundColorPropertyValue1 = "\"#FEEDD6\""; // light salmon
19
    private String backgroundColorPropertyValue2 = "\"#EAEAEA\""; // light grey
20

  
21
    protected int propertyCount = 0;
22
    protected final List<Element> elements;
23

  
24
    protected class BaseTitleElement implements TitleElement {
25

  
26
        protected String label;
27

  
28
        @Override
29
        public TitleElement value(String format, Object... args) {
30
            if (args == null) {
31
                this.label = format;
32
            } else {
33
                this.label = String.format(format, args);
34
            }
35
            return this;
36
        }
37
        
38
        @Override
39
        public TitleElement label(String label) {
40
            this.label = StringEscapeUtils.escapeHtml3(label);
41
            return this;
42
        }
43

  
44
        @Override
45
        public TitleElement labelkey(String labelkey) {
46
            return label(ToolsLocator.getI18nManager().getTranslation(labelkey));
47
        }
48

  
49
        @Override
50
        public String build() {
51
            propertyCount = 0;
52
            return "<tr valign=\"middle\" >"
53
                    + "<td bgcolor=" + backgroundColorTitle + " align=\"center\" colspan=\"2\"><font face=\"Arial\" size=\"3\"><b> " + this.label + "</b></font></td>"
54
                    + "</tr>";
55
        }
56
    }
57

  
58
    protected class BaseRawElement implements RawElement {
59

  
60
        protected String value;
61

  
62
        @Override
63
        public RawElement value(String format, Object... args) {
64
            if (args == null) {
65
                this.value = format;
66
            } else {
67
                this.value = String.format(format, args);
68
            }
69
            return this;
70
        }
71

  
72
        @Override
73
        public String build() {
74
            String color = ((propertyCount++ % 2) == 0) ? backgroundColorPropertyValue1 : backgroundColorPropertyValue2;
75
            String content = "<tr valign=\"top\">\n";
76
            content += "<td bgcolor=" + color + "align=\"left\" colspan=\"2\"><font face=\"Arial\" size=\"3\"><div>" + value.replace("\\n",  "<br>\n") + "</div></font></td>\n";
77
            content += "</tr>\n";
78
            return content;
79
        }
80
    }
81

  
82
    protected class BaseTextElement implements TextElement {
83

  
84
        protected String value;
85

  
86
        @Override
87
        public TextElement value(String format, Object... args) {
88
            if (args == null) {
89
                this.value = StringEscapeUtils.escapeHtml3(format);
90
            } else {
91
                this.value = StringEscapeUtils.escapeHtml3(String.format(format, args));
92
            }
93
            return this;
94
        }
95

  
96
        @Override
97
        public String build() {
98
            String color = ((propertyCount++ % 2) == 0) ? backgroundColorPropertyValue1 : backgroundColorPropertyValue2;
99
            String content = "<tr valign=\"top\">\n";
100
            content += "<td bgcolor=" + color + "align=\"left\" colspan=\"2\"><font face=\"Arial\" size=\"3\">" + value.replace("\n",  "<br>\n") + "</font></td>\n";
101
            content += "</tr>\n";
102
            return content;
103
        }
104
    }
105

  
106
    protected class BasePropertyElement implements PropertyElement {
107

  
108
        protected String label;
109
        protected boolean monospace = false;
110
        protected String value;
111

  
112
        @Override
113
        public PropertyElement value(String format, Object... args) {
114
            if (args == null) {
115
                this.value = StringEscapeUtils.escapeHtml3(format);
116
            } else {
117
                this.value = StringEscapeUtils.escapeHtml3(String.format(format, args));
118
            }
119
            return this;
120
        }
121

  
122
        @Override
123
        public PropertyElement label(String label) {
124
            this.label = StringEscapeUtils.escapeHtml3(label);
125
            return this;
126
        }
127

  
128
        @Override
129
        public PropertyElement labelkey(String labelkey) {
130
            return label(ToolsLocator.getI18nManager().getTranslation(labelkey));
131
        }
132

  
133
        @Override
134
        public PropertyElement monospace() {
135
            this.monospace = true;
136
            return this;
137
        }
138

  
139
        @Override
140
        public String build() {
141
            String color = ((propertyCount++ % 2) == 0) ? backgroundColorPropertyValue1 : backgroundColorPropertyValue2;
142
            String content = "<tr valign=\"top\">\n";
143
            if (!StringUtils.isEmpty(label)) {
144
                content += "<td nowrap bgcolor=" + backgroundColorPropertyLabel + "align=\"right\" width=\"140\"><font face=\"Arial\" size=\"3\">" + label + ":&nbsp;</font></td>\n";
145
            }
146
            if( this.monospace ) {
147
                content += "<td bgcolor=" + color + "align=\"left\"><font face=\"Monospaced\" size=\"3\">" + value.replace("\\n",  "<br>\n") + "</font></td>";
148
            } else {
149
                content += "<td bgcolor=" + color + "align=\"left\"><font face=\"Arial\" size=\"3\">" + value.replace("\\n",  "<br>\n") + "</font></td>";
150
            }
151
            content += "</tr>\n";
152
            return content;
153
        }
154

  
155
    }
156

  
157
    public BaseInformationBuilder() {
158
        this.elements = new ArrayList<>();
159
    }
160

  
161
    @Override
162
    public InformationBuilder backgroundColor(String color) {
163
        this.backgroundColor = color;
164
        return this;
165
    }
166

  
167
    @Override
168
    public InformationBuilder backgroundColorTitle(String color) {
169
        this.backgroundColorTitle = color;
170
        return this;
171
    }
172

  
173
    @Override
174
    public InformationBuilder backgroundColorPropertyLabel(String color) {
175
        this.backgroundColorPropertyLabel = color;
176
        return this;
177
    }
178

  
179
    @Override
180
    public InformationBuilder backgroundColorPropertyValue1(String color) {
181
        this.backgroundColorPropertyValue1 = color;
182
        return this;
183
    }
184

  
185
    @Override
186
    public InformationBuilder backgroundColorPropertyValue2(String color) {
187
        this.backgroundColorPropertyValue2 = color;
188
        return this;
189
    }
190

  
191
    @Override
192
    public TitleElement title() {
193
        TitleElement element = new BaseTitleElement();
194
        this.elements.add(element);
195
        return element;
196
    }
197

  
198
    @Override
199
    public PropertyElement property() {
200
        PropertyElement element = new BasePropertyElement();
201
        this.elements.add(element);
202
        return element;
203
    }
204

  
205
    @Override
206
    public TextElement text() {
207
        TextElement element = new BaseTextElement();
208
        this.elements.add(element);
209
        return element;
210
    }
211

  
212
    @Override
213
    public RawElement raw() {
214
        RawElement element = new BaseRawElement();
215
        this.elements.add(element);
216
        return element;
217
    }
218

  
219
    @Override
220
    public String build() {
221
        StringBuilder html = new StringBuilder();
222
        html.append("<html>\n");
223
        html.append("<body bgcolor=").append(backgroundColor).append(" topmargin=\"0\" marginheight=\"0\">\n");
224
        html.append("<table cellpadding=\"0\" cellspacing=\"0\" align=\"center\" width=\"100%\">");
225
        boolean first = true;
226
        for (Element element : elements) {
227
            if( element instanceof TitleElement ) {
228
                if( first ) {
229
                    first = false;
230
                } else {
231
                    html.append("<tr>\n<td><br></td>\n<td></td></tr>\n");
232
                }
233
            }
234
            html.append(element.build());
235
        }
236
        html.append("</table>");
237
        html.append("</body>");
238
        html.append("</html>");
239
        return html.toString();
240
    }
241

  
242
    @Override
243
    public String toString() {
244
        return this.build();
245
    }
246
}
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.118/org.gvsig.tools.util/org.gvsig.tools.util.impl/src/main/java/org/gvsig/tools/util/impl/DefaultToolsUtilManager.java
1

  
2
package org.gvsig.tools.util.impl;
3

  
4
import org.gvsig.tools.dynobject.DynObject;
5
import org.gvsig.tools.service.Service;
6
import org.gvsig.tools.service.ServiceException;
7
import org.gvsig.tools.util.InformationBuilder;
8
import org.gvsig.tools.util.ToolsUtilManager;
9

  
10

  
11
/**
12
 * @author fdiaz
13
 *
14
 */
15
public class DefaultToolsUtilManager implements ToolsUtilManager {
16

  
17
    @Override
18
    public InformationBuilder createInformationBuilder() {
19
        return new BaseInformationBuilder();
20
    }
21

  
22

  
23
}
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.118/org.gvsig.tools.util/org.gvsig.tools.util.impl/src/main/java/org/gvsig/filedialogchooser/impl/VFSJFileChooserBased.java
1
/*
2
 * To change this license header, choose License Headers in Project Properties.
3
 * To change this template file, choose Tools | Templates
4
 * and open the template in the editor.
5
 */
6
package org.gvsig.filedialogchooser.impl;
7

  
8
import com.googlecode.vfsjfilechooser2.VFSJFileChooser;
9
import com.googlecode.vfsjfilechooser2.filechooser.AbstractVFSFileFilter;
10
import java.awt.Component;
11
import java.io.File;
12
import javax.swing.filechooser.FileFilter;
13
import org.apache.commons.vfs2.FileObject;
14
import org.apache.commons.vfs2.provider.local.LocalFile;
15
import org.gvsig.filedialogchooser.FileDialogChooser;
16
import org.gvsig.filedialogchooser.FileDialogChooserManager;
17
import org.gvsig.tools.util.ToolsUtilLocator;
18

  
19

  
20
public class VFSJFileChooserBased implements FileDialogChooser {
21

  
22
    private static class FileFilterAdapter extends AbstractVFSFileFilter {
23

  
24
        private final FileFilter filter;
25

  
26
        FileFilterAdapter(FileFilter filter) {
27
            this.filter = filter;
28
        }
29

  
30
        @Override
31
        public boolean accept(FileObject f) {
32
            if( f instanceof LocalFile ) {
33
                return this.filter.accept( new File(f.getName().getPath()));
34
            }
35
            return false;
36
        }
37

  
38
        @Override
39
        public String getDescription() {
40
            return this.filter.getDescription();
41
        }
42

  
43
        public FileFilter getFilter() {
44
            return this.filter;
45
        }
46
    }
47
    
48
    private final VFSJFileChooser jfc;
49
    private final String fileChooserID;
50

  
51
    public VFSJFileChooserBased(String fileChooserID, File defaultDirectory) {
52
        super();
53
        this.jfc = new VFSJFileChooser();
54
        this.fileChooserID = fileChooserID;
55
        this.setCurrentDirectory(defaultDirectory);
56
    }
57
    
58
    @Override
59
    public void setCurrentDirectory(File dir) {
60
        this.jfc.setCurrentDirectory(dir);
61
    }
62

  
63
    @Override
64
    public File getCurrentDirectory() {
65
        return this.jfc.getCurrentDirectory();
66
    }
67

  
68
    @Override
69
    public void setDialogTitle(String dialogTitle) {
70
        this.jfc.setDialogTitle(dialogTitle);
71
    }
72

  
73
    @Override
74
    public void setDialogType(int dialogType) {
75
        switch(dialogType) {
76
        default:
77
        case OPEN_DIALOG:
78
            this.jfc.setDialogType(VFSJFileChooser.DIALOG_TYPE.OPEN);
79
            break;
80
        case SAVE_DIALOG:
81
            this.jfc.setDialogType(VFSJFileChooser.DIALOG_TYPE.SAVE);
82
            break;
83
        }
84
    }
85

  
86
    @Override
87
    public void setDragEnabled(boolean b) {
88
        this.jfc.setDragEnabled(b);
89
    }
90

  
91
    @Override
92
    public void setFileFilter(FileFilter filter) {
93
        if( filter == null ) {
94
            this.jfc.setFileFilter(null);
95
        } else {
96
            this.jfc.setFileFilter(new FileFilterAdapter(filter));
97
        }
98
    }
99

  
100
    @Override
101
    public FileFilter getFileFilter() {
102
        FileFilterAdapter f = (FileFilterAdapter) this.jfc.getFileFilter();
103
        return f.getFilter();
104
    }
105

  
106
    @Override
107
    public void setFileSelectionMode(int mode) {
108
        switch(mode) {
109
        case FILES_ONLY:
110
            this.jfc.setFileSelectionMode(VFSJFileChooser.SELECTION_MODE.FILES_ONLY);
111
            break;
112
        case DIRECTORIES_ONLY:
113
            this.jfc.setFileSelectionMode(VFSJFileChooser.SELECTION_MODE.DIRECTORIES_ONLY);
114
            break;
115
        default:
116
        case FILES_AND_DIRECTORIES:
117
            this.jfc.setFileSelectionMode(VFSJFileChooser.SELECTION_MODE.FILES_AND_DIRECTORIES);
118
            break;
119
        }
120
    }
121

  
122
    @Override
123
    public File getSelectedFile() {
124
        return this.jfc.getSelectedFile();
125
    }
126

  
127
    @Override
128
    public File[] getSelectedFiles() {
129
        return this.jfc.getSelectedFiles();
130
    }
131

  
132
    @Override
133
    public void setFileHidingEnabled(boolean b) {
134
        this.jfc.setFileHidingEnabled(b);
135
    }
136

  
137
    @Override
138
    public void setMultiSelectionEnabled(boolean b) {
139
        this.jfc.setMultiSelectionEnabled(b);
140
    }
141

  
142
    @Override
143
    public boolean isMultiSelectionEnabled() {
144
        return this.jfc.isMultiSelectionEnabled();
145
    }
146

  
147
    @Override
148
    public int showOpenDialog(Component parent) {
149
        VFSJFileChooser.RETURN_TYPE r = this.jfc.showOpenDialog(parent);
150
        if( r == VFSJFileChooser.RETURN_TYPE.CANCEL ) {
151
            return CANCEL_OPTION;            
152
        }
153
        if( r == VFSJFileChooser.RETURN_TYPE.APPROVE ) {
154
            FileDialogChooserManager manager = ToolsUtilLocator.getFileDialogChooserManager();
155
            manager.setLastPath(fileChooserID, this.getCurrentDirectory());
156
            return APPROVE_OPTION;            
157
        }
158
        if( r == VFSJFileChooser.RETURN_TYPE.ERROR ) {
159
            return ERROR_OPTION;            
160
        }
161
        return ERROR_OPTION;            
162
    }
163

  
164
    @Override
165
    public int showSaveDialog(Component parent) {
166
        VFSJFileChooser.RETURN_TYPE r = this.jfc.showSaveDialog(parent);
167
        if( r == VFSJFileChooser.RETURN_TYPE.CANCEL ) {
168
            return CANCEL_OPTION;            
169
        }
170
        if( r == VFSJFileChooser.RETURN_TYPE.APPROVE ) {
171
            FileDialogChooserManager manager = ToolsUtilLocator.getFileDialogChooserManager();
172
            manager.setLastPath(fileChooserID, this.getCurrentDirectory());
173
            return APPROVE_OPTION;            
174
        }
175
        if( r == VFSJFileChooser.RETURN_TYPE.ERROR ) {
176
            return ERROR_OPTION;            
177
        }
178
        return ERROR_OPTION;            
179
    }
180
    
181
    @Override
182
    public void setAcceptAllFileFilterUsed(boolean b) {
183
        this.jfc.setAcceptAllFileFilterUsed(b);
184
    }
185

  
186
    @Override
187
    public void addChoosableFileFilter(FileFilter next) {
188
        this.jfc.addChoosableFileFilter(new FileFilterAdapter(next));
189
    }
190

  
191
}
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.118/org.gvsig.tools.util/org.gvsig.tools.util.impl/src/main/java/org/gvsig/filedialogchooser/impl/JFileChooserBased.java
1
/*
2
 * To change this license header, choose License Headers in Project Properties.
3
 * To change this template file, choose Tools | Templates
4
 * and open the template in the editor.
5
 */
6
package org.gvsig.filedialogchooser.impl;
7

  
8
import java.awt.Component;
9
import java.awt.HeadlessException;
10
import java.io.File;
11
import javax.swing.JFileChooser;
12
import org.gvsig.filedialogchooser.FileDialogChooser;
13
import org.gvsig.filedialogchooser.FileDialogChooserManager;
14
import org.gvsig.tools.util.ToolsUtilLocator;
15

  
16

  
17

  
18

  
19
public class JFileChooserBased extends JFileChooser implements FileDialogChooser {
20
    
21
    private static final long serialVersionUID = 2825200958209418322L;
22
    private final String fileChooserID;
23

  
24
    public JFileChooserBased(String fileChooserID, File defaultDirectory) {
25
        super();
26
        this.fileChooserID = fileChooserID;
27
        this.setCurrentDirectory(defaultDirectory);
28
    }
29

  
30
    @Override
31
    public int showOpenDialog(Component parent) throws HeadlessException {
32
        int r = super.showOpenDialog(parent);
33
        if( r == JFileChooser.APPROVE_OPTION ) {
34
            FileDialogChooserManager manager = ToolsUtilLocator.getFileDialogChooserManager();
35
            manager.setLastPath(fileChooserID, this.getCurrentDirectory());
36
        }
37
        return r;
38
    }
39

  
40
    @Override
41
    public int showSaveDialog(Component parent) throws HeadlessException {
42
        int r = super.showSaveDialog(parent);
43
        if( r == JFileChooser.APPROVE_OPTION ) {
44
            FileDialogChooserManager manager = ToolsUtilLocator.getFileDialogChooserManager();
45
            manager.setLastPath(fileChooserID, this.getCurrentDirectory());
46
        }
47
        return r;
48
    }
49
}
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.118/org.gvsig.tools.util/org.gvsig.tools.util.impl/src/main/java/org/gvsig/filedialogchooser/impl/DefaultFileDialogChooserManager.java
1

  
2
package org.gvsig.filedialogchooser.impl;
3

  
4
import java.io.File;
5
import java.util.HashMap;
6
import java.util.Map;
7
import javax.swing.filechooser.FileSystemView;
8
import org.gvsig.filedialogchooser.FileDialogChooser;
9
import org.gvsig.filedialogchooser.FileDialogChooserManager;
10

  
11

  
12

  
13
public class DefaultFileDialogChooserManager implements FileDialogChooserManager {
14

  
15
    private Map<String,File> lastPaths;
16
    private boolean useNativeFileChooser = true;
17
    
18
    public DefaultFileDialogChooserManager() {
19
        this.lastPaths = new HashMap<>();
20
    }
21
    
22
    @Override
23
    public void setUseNativeFileChooser(boolean b) {
24
        useNativeFileChooser = b;
25
    }
26
    
27
    @Override
28
    public boolean useNativeFileChooser() {
29
        return useNativeFileChooser;
30
    }
31
    
32
    @Override
33
    public FileDialogChooser create(String fileChooserID, File defaultDirectory) {
34
        if( defaultDirectory == null ) {
35
            defaultDirectory = getLastPath(fileChooserID,null);
36
        }
37
        if( useNativeFileChooser ) {
38
          return new JFileChooserBased(fileChooserID, defaultDirectory);
39
        }
40
        return new VFSJFileChooserBased(fileChooserID, defaultDirectory);
41
    }
42

  
43
    @Override
44
    public FileDialogChooser create() {
45
        String fileChooserID = "DEFAULT_ID";
46
        File defaultDirectory = getLastPath(fileChooserID,null);
47
        if( useNativeFileChooser ) {
48
            return new JFileChooserBased(fileChooserID,defaultDirectory);
49
        }
50
        return new VFSJFileChooserBased(fileChooserID, defaultDirectory);
51
    }
52
    
53
    @Override
54
    public File getLastPath(String fileChooserID, File defaultDirectory) {
55
		File path = this.lastPaths.get(fileChooserID);
56

  
57
		if (path != null) {
58
			return path;
59
        }
60
		if (defaultDirectory != null) {
61
			return defaultDirectory;
62
        }
63
		return FileSystemView.getFileSystemView().getHomeDirectory();
64
    }
65
    
66
    @Override
67
    public void setLastPath(String fileChooserID, File path) {
68
        lastPaths.put(fileChooserID, path);
69
    }
70

  
71
    
72
}
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.118/org.gvsig.tools.util/org.gvsig.tools.util.impl/pom.xml
1
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
2
  <modelVersion>4.0.0</modelVersion>
3
  <parent>
4
    <groupId>org.gvsig</groupId>
5
    <artifactId>org.gvsig.tools.util</artifactId>
6
    <version>3.0.118</version>
7
  </parent>
8
  <groupId>org.gvsig</groupId>
9
  <artifactId>org.gvsig.tools.util.impl</artifactId>
10
  <version>3.0.118</version>
11
  <name>org.gvsig.tools.util.impl</name>
12
  <dependencies>
13
    <dependency>
14
      <groupId>org.apache.commons</groupId>
15
      <artifactId>commons-lang3</artifactId>
16
    </dependency>
17
    <dependency>
18
      <groupId>org.gvsig</groupId>
19
      <artifactId>org.gvsig.tools.lib</artifactId>
20
    </dependency>
21
    <dependency>
22
      <groupId>org.gvsig</groupId>
23
      <artifactId>org.gvsig.tools.util.api</artifactId>
24
      <version>3.0.118</version>
25
    </dependency>
26
    <dependency>
27
      <groupId>com.github.fracpete</groupId>
28
      <artifactId>vfsjfilechooser2</artifactId>
29
      <scope>compile</scope>
30
    </dependency>
31
  </dependencies>
32
</project>
0 33

  
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.118/org.gvsig.tools.util/org.gvsig.tools.util.api/src/main/resources/META-INF/services/org.gvsig.tools.library.Library
1
org.gvsig.tools.util.ToolsUtilLibrary
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.118/org.gvsig.tools.util/org.gvsig.tools.util.api/src/main/java/org/gvsig/filedialogchooser/FileDialogChooser.java
1
/*
2
 * To change this license header, choose License Headers in Project Properties.
3
 * To change this template file, choose Tools | Templates
4
 * and open the template in the editor.
5
 */
6
package org.gvsig.filedialogchooser;
7

  
8
import java.awt.Component;
9
import java.io.File;
10
import javax.swing.JFileChooser;
11
import javax.swing.filechooser.FileFilter;
12

  
13
public interface FileDialogChooser {
14

  
15
    /**
16
     * Return value if approve (yes, ok) is chosen.
17
     */
18
    int APPROVE_OPTION = JFileChooser.APPROVE_OPTION;
19
    
20
    /**
21
     * Return value if cancel is chosen.
22
     */
23
    int CANCEL_OPTION = JFileChooser.CANCEL_OPTION;
24

  
25
    /** Instruction to display only directories. */
26
    int DIRECTORIES_ONLY = JFileChooser.DIRECTORIES_ONLY;
27

  
28
    /**
29
     * Return value if an error occurred.
30
     */
31
    int ERROR_OPTION = JFileChooser.ERROR_OPTION;
32

  
33
    /** Instruction to display both files and directories. */
34
    int FILES_AND_DIRECTORIES = JFileChooser.FILES_AND_DIRECTORIES;
35

  
36
    /** Instruction to display only files. */
37
    int FILES_ONLY = JFileChooser.FILES_ONLY;
38

  
39
    /**
40
     * Type value indicating that the <code>FileDialogChooser</code> supports an
41
     * "Open" file operation.
42
     */
43
    int OPEN_DIALOG = JFileChooser.OPEN_DIALOG;
44
    
45
    /**
46
     * Type value indicating that the <code>FileDialogChooser</code> supports a
47
     * "Save" file operation.
48
     */
49
    int SAVE_DIALOG = JFileChooser.SAVE_DIALOG;
50

  
51

  
52
    void setCurrentDirectory(File dir);
53

  
54
    public File getCurrentDirectory();
55

  
56
    void setDialogTitle(String dialogTitle);
57

  
58
    void setDialogType(int dialogType);
59

  
60
    void setDragEnabled(boolean b);
61

  
62
    void setFileFilter(FileFilter filter);
63

  
64
    void setFileSelectionMode(int mode);
65

  
66
    File getSelectedFile();
67

  
68
    /**
69
     * Returns a list of selected files if the file chooser is
70
     * set to allow multiple selection.
71
     * @return 
72
     */
73
    File[] getSelectedFiles();
74

  
75
    void setFileHidingEnabled(boolean b);
76

  
77
    void setMultiSelectionEnabled(boolean b);
78

  
79
    public boolean isMultiSelectionEnabled();
80

  
81
    int showOpenDialog(Component parent);
82

  
83
    int showSaveDialog(Component parent);
84

  
85
    public void setAcceptAllFileFilterUsed(boolean b);
86

  
87
    public void addChoosableFileFilter(FileFilter next);
88

  
89
    public FileFilter getFileFilter();
90
}
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.118/org.gvsig.tools.util/org.gvsig.tools.util.api/src/main/java/org/gvsig/filedialogchooser/FileDialogChooserManager.java
1
package org.gvsig.filedialogchooser;
2

  
3
import java.io.File;
4

  
5

  
6
public interface FileDialogChooserManager {
7

  
8
    public void setUseNativeFileChooser(boolean b);
9
    
10
    public boolean useNativeFileChooser();
11
    
12
    public FileDialogChooser create(String fileChooserID, File defaultDirectory);
13

  
14
    public FileDialogChooser create();
15
    
16
    public File getLastPath(String fileChooserID, File defaultDirectory);
17
    
18
    public void setLastPath(String fileChooserID, File path);
19
    
20
}
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.118/org.gvsig.tools.util/org.gvsig.tools.util.api/src/main/java/org/gvsig/dialogremember/DialogRememeber.java
1

  
2
package org.gvsig.dialogremember;
3

  
4

  
5
public interface DialogRememeber {
6
    
7
    public String getId();
8
    
9
    public Object getValue();
10
    
11
    public void setValue(Object value);
12
    
13
    public void reset();
14
    
15
    public boolean hasValue();
16
    
17
}
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.118/org.gvsig.tools.util/org.gvsig.tools.util.api/src/main/java/org/gvsig/dialogremember/DialogRememberManager.java
1

  
2
package org.gvsig.dialogremember;
3

  
4
import java.util.Iterator;
5
import java.util.List;
6

  
7

  
8
public interface DialogRememberManager extends Iterable<DialogRememeber> {
9
    
10
    public boolean exists(String id);
11
    
12
    public DialogRememeber get(String id);
13
    
14
    public DialogRememeber add(String id);
15
    
16
    public DialogRememeber add(String id, int value);
17

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

  
26

  
27
import org.gvsig.dialogremember.DialogRememberManager;
28
import org.gvsig.filedialogchooser.FileDialogChooserManager;
29
import org.gvsig.tools.locator.AbstractLocator;
30
import org.gvsig.tools.locator.Locator;
31
import org.gvsig.tools.locator.LocatorException;
32

  
33
/**
34
 * @author fdiaz
35
 *
36
 */
37
@SuppressWarnings("rawtypes")
38
public class ToolsUtilLocator extends AbstractLocator {
39

  
40
	private static final String LOCATOR_NAME = "ToolsUtilLocator";
41

  
42
	public static final String TOOLS_UTIL_MANAGER_NAME = "org.gvsig.tools.util.manager";
43
	private static final String TOOLS_UTIL_MANAGER_DESCRIPTION = "Tools utilities.";
44

  
45
    public static final String FILE_DIALOG_CHOOSER_MANAGER_NAME = "org.gvsig.filedialogchooser.manager";
46
	private static final String FILE_DIALOG_CHOOSER_MANAGER_DESCRIPTION = "File dialog chooser.";
47

  
48
    public static final String PLUGINS_DIALOGREMEMBERDER_MANAGER_NAME = "DialogReminderManager";
49
    private static final String PLUGINS_DIALOGREMEMBER_MANAGER_DESCRIPTION = "DialogReminderManager";
50
    
51
	private static final ToolsUtilLocator instance = new ToolsUtilLocator();
52

  
53
	private ToolsUtilLocator() {
54

  
55
	}
56

  
57
	/**
58
	 * Return the singleton instance.
59
	 *
60
	 * @return the singleton instance
61
	 */
62
	public static ToolsUtilLocator getInstance() {
63
		return instance;
64
	}
65

  
66
	public String getLocatorName() {
67
		return LOCATOR_NAME;
68
	}
69

  
70
	/**
71
	 * Return a reference to ToolsUtilManager.
72
	 *
73
	 * @return a reference to ToolsUtilManager
74
	 * @throws LocatorException
75
	 *             if there is no access to the class or the class cannot be
76
	 *             instantiated
77
	 * @see Locator#get(String)
78
	 */
79
	public static ToolsUtilManager getToolsUtilManager()
80
			throws LocatorException {
81
		return (ToolsUtilManager) getInstance().get(TOOLS_UTIL_MANAGER_NAME);
82
	}
83

  
84
	/**
85
	 * Registers the Class implementing the ToolsUtilManager interface.
86
	 *
87
	 * @param clazz
88
	 *            implementing the ToolsUtilManager interface
89
	 */
90
	public static void registerToolsUtilManager(Class clazz) {
91
		getInstance().register(TOOLS_UTIL_MANAGER_NAME,
92
		    TOOLS_UTIL_MANAGER_DESCRIPTION, clazz);
93
	}
94

  
95
	public static void registerDefaultToolsUtilManager(Class clazz) {
96
		getInstance().registerDefault(TOOLS_UTIL_MANAGER_NAME,
97
		    TOOLS_UTIL_MANAGER_DESCRIPTION, clazz);
98
	}
99

  
100
	public static FileDialogChooserManager getFileDialogChooserManager()
101
			throws LocatorException {
102
		return (FileDialogChooserManager) getInstance().get(FILE_DIALOG_CHOOSER_MANAGER_NAME);
103
	}
104

  
105
    public static void registerFileDialogChooserManager(Class clazz) {
106
		getInstance().register(FILE_DIALOG_CHOOSER_MANAGER_NAME,
107
		    FILE_DIALOG_CHOOSER_MANAGER_DESCRIPTION, clazz);
108
	}
109

  
110
	public static void registerDefaultFileDialogChooserManager(Class clazz) {
111
		getInstance().registerDefault(FILE_DIALOG_CHOOSER_MANAGER_NAME,
112
		    FILE_DIALOG_CHOOSER_MANAGER_DESCRIPTION, clazz);
113
	}
114

  
115
    public static DialogRememberManager getDialogRemembereManager() throws LocatorException {
116
        return (DialogRememberManager) getInstance().get(PLUGINS_DIALOGREMEMBERDER_MANAGER_NAME);
117
    }
118

  
119
    public static void registerDialogRememberManager(Class clazz) {
120
        getInstance().register(PLUGINS_DIALOGREMEMBERDER_MANAGER_NAME, PLUGINS_DIALOGREMEMBER_MANAGER_DESCRIPTION,
121
                clazz);
122
    }
123

  
124
	public static void registerDefaultDialogRememberManager(Class clazz) {
125
		getInstance().registerDefault(PLUGINS_DIALOGREMEMBERDER_MANAGER_NAME,
126
		    PLUGINS_DIALOGREMEMBER_MANAGER_DESCRIPTION, clazz);
127
	}
128
}
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.118/org.gvsig.tools.util/org.gvsig.tools.util.api/src/main/java/org/gvsig/tools/util/ToolsUtilLibrary.java
1
package org.gvsig.tools.util;
2

  
3
import org.gvsig.tools.ToolsLibrary;
4
import org.gvsig.tools.library.AbstractLibrary;
5
import org.gvsig.tools.library.LibraryException;
6
import org.gvsig.tools.locator.ReferenceNotRegisteredException;
7

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

  
32

  
33

  
34
@SuppressWarnings("unchecked")
35
public class ToolsUtilLibrary extends AbstractLibrary {
36

  
37
	public void doRegistration() {
38
		super.doRegistration();
39
		registerAsAPI(ToolsUtilLibrary.class);
40
		this.require(ToolsLibrary.class);
41
	}
42

  
43
	protected void doInitialize() throws LibraryException {
44

  
45
	}
46

  
47
	protected void doPostInitialize() throws LibraryException {
48
		  // Validate there is any implementation registered.
49
        ToolsUtilManager manager = ToolsUtilLocator.getToolsUtilManager();
50
        if (manager == null) {
51
            throw new ReferenceNotRegisteredException(
52
            		ToolsUtilLocator.TOOLS_UTIL_MANAGER_NAME, ToolsUtilLocator
53
                    .getInstance());
54
        }
55

  
56
	}
57

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

  
26
/**
27
 * @author fdiaz
28
 *
29
 */
30
public interface ToolsUtilManager  {
31

  
32
	/**
33
	 * @return
34
	 */
35
	public InformationBuilder createInformationBuilder();
36

  
37
}
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.118/org.gvsig.tools.util/org.gvsig.tools.util.api/src/main/java/org/gvsig/tools/util/InformationBuilder.java
1
package org.gvsig.tools.util;
2

  
3
public interface InformationBuilder {
4

  
5
    public interface Element {
6

  
7
        public Element value(String format, Object... args);
8
        public String build();
9
    }
10

  
11
    public interface TitleElement extends Element {
12

  
13
        @Override
14
        public TitleElement value(String format, Object... args);
15
        public TitleElement label(String label);
16
        public TitleElement labelkey(String labelkey);
17
    }
18

  
19
    public interface RawElement extends Element {
20

  
21
        @Override
22
        public RawElement value(String format, Object... args);
23
    }
24

  
25
    public interface TextElement extends RawElement {
26

  
27
        @Override
28
        public TextElement value(String format, Object... args);
29

  
30
    }
31

  
32
    public interface PropertyElement extends TextElement {
33

  
34
        public PropertyElement monospace();
35

  
36
        public PropertyElement label(String label);
37

  
38
        public PropertyElement labelkey(String labelkey);
39

  
40
        @Override
41
        public PropertyElement value(String format, Object... args);
42

  
43
    }
44

  
45
    public InformationBuilder backgroundColor(String color);
46

  
47
    public InformationBuilder backgroundColorTitle(String color);
48

  
49
    public InformationBuilder backgroundColorPropertyLabel(String color);
50

  
51
    public InformationBuilder backgroundColorPropertyValue1(String color);
52

  
53
    public InformationBuilder backgroundColorPropertyValue2(String color);
54

  
55
    public TitleElement title();
56

  
57
    public PropertyElement property();
58

  
59
    public TextElement text();
60

  
61
    public RawElement raw();
62

  
63
    public String build();
64

  
65
}
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.118/org.gvsig.tools.util/org.gvsig.tools.util.api/pom.xml
1
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
2
  <modelVersion>4.0.0</modelVersion>
3
  <parent>
4
    <groupId>org.gvsig</groupId>
5
    <artifactId>org.gvsig.tools.util</artifactId>
6
    <version>3.0.118</version>
7
  </parent>
8
  <groupId>org.gvsig</groupId>
9
  <artifactId>org.gvsig.tools.util.api</artifactId>
10
  <version>3.0.118</version>
11
  <name>org.gvsig.tools.util.api</name>
12
  <dependencies>
13
    <dependency>
14
      <groupId>org.gvsig</groupId>
15
      <artifactId>org.gvsig.tools.lib</artifactId>
16
      <scope>compile</scope>
17
    </dependency>
18
  </dependencies>
19
</project>
0 20

  
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.118/org.gvsig.tools.util/pom.xml
1
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
2
  <modelVersion>4.0.0</modelVersion>
3
  <parent>
4
    <groupId>org.gvsig</groupId>
5
    <artifactId>org.gvsig.tools</artifactId>
6
    <version>3.0.118</version>
7
  </parent>
8
  <artifactId>org.gvsig.tools.util</artifactId>
9
  <name>org.gvsig.tools.util</name>
10
  <packaging>pom</packaging>
11
  <modules>
12
    <module>org.gvsig.tools.util.api</module>
13
    <module>org.gvsig.tools.util.impl</module>
14
  </modules>
15
</project>
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.118/org.gvsig.tools.dynform/org.gvsig.tools.dynform.impl/src/main/resources/META-INF/services/org.gvsig.tools.library.Library
1
org.gvsig.tools.dynform.impl.DefaultDynFormLibrary
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff