Statistics
| Revision:

gvsig-scripting / org.gvsig.scripting / trunk / org.gvsig.scripting / org.gvsig.scripting.lib / org.gvsig.scripting.lib.impl / src / main / java / org / gvsig / scripting / impl / SystemFolder.java @ 1084

History | View | Annotate | Download (2.48 KB)

1 164 jobacas
package org.gvsig.scripting.impl;
2
3
import java.io.File;
4
import java.util.ArrayList;
5
import java.util.List;
6
7 441 jjdelcerro
import org.gvsig.scripting.ScriptingFolder;
8 164 jobacas
import org.gvsig.scripting.ScriptingManager;
9 212 cordinyana
import org.gvsig.scripting.ScriptingUnit;
10 164 jobacas
import org.gvsig.scripting.impl.DefaultScriptingManager.RegisterSystemFolder;
11
12 468 jjdelcerro
public class SystemFolder extends DefaultScriptingFolder {
13 164 jobacas
14 1084 jjdelcerro
    public final static String ID = "SystemFolder";
15
16
    @SuppressWarnings("OverridableMethodCallInConstructor")
17 468 jjdelcerro
    public SystemFolder(ScriptingManager manager) {
18 989 jjdelcerro
        super(manager);
19 508 fdiaz
        this.setName("System");
20 1084 jjdelcerro
        this.setId(ID);
21 468 jjdelcerro
        this.setDescription("Scripts del Sistema");
22
    }
23 465 jjdelcerro
24 468 jjdelcerro
    @Override
25 989 jjdelcerro
    public ScriptingFolder getParent() {
26
        return null;
27
    }
28
29
    @Override
30 1066 jjdelcerro
    public File getFileResource(String extension) {
31
        return new File(folder.getParentFile(), folder.getName() + extension).getAbsoluteFile();
32
    }
33
34
    @Override
35 468 jjdelcerro
    public String toString() {
36
        return this.description;
37
    }
38
39
    @Override
40 212 cordinyana
    public String[] getIconNames() {
41 1066 jjdelcerro
        return new String[]{"scripting-icon-folder-system", "scripting-icon-folder-system"};
42 468 jjdelcerro
    }
43
44
    @Override
45 212 cordinyana
    public Unit getUnit(File afile) {
46 1084 jjdelcerro
        Unit unit;
47 468 jjdelcerro
        String path = afile.getPath();
48
        if (path.startsWith("/")) {
49
            path = path.substring(1);
50
        }
51
52 212 cordinyana
        List<RegisterSystemFolder> folders = this.manager.getSystemFolders();
53 468 jjdelcerro
        for (int i = 0; i < folders.size(); i++) {
54
            RegisterSystemFolder systemfolder = folders.get(i);
55 1084 jjdelcerro
            DefaultScriptingFolder theFolder = new DefaultScriptingFolder(this, manager, systemfolder.folder.getAbsoluteFile());
56
            if (path.startsWith(theFolder.getId() + "/")) {
57
                unit = theFolder.getUnit(new File(path.substring(theFolder.getId().length() + 1)));
58 468 jjdelcerro
                if (unit != null) {
59
                    return unit;
60
                }
61
            }
62
        }
63
        return null;
64
    }
65
66
    @Override
67 212 cordinyana
    public List<ScriptingUnit> getUnits() {
68 989 jjdelcerro
        List<ScriptingUnit> ol = new ArrayList<>();
69 212 cordinyana
        List<RegisterSystemFolder> folders = this.manager.getSystemFolders();
70 468 jjdelcerro
        for (int i = 0; i < folders.size(); i++) {
71
            RegisterSystemFolder systemfolder = folders.get(i);
72 1084 jjdelcerro
            DefaultScriptingFolder theFolder = new DefaultScriptingFolder(this, manager, systemfolder.folder.getAbsoluteFile());
73
            theFolder.setName(systemfolder.name);
74
            ol.add(theFolder);
75 468 jjdelcerro
        }
76
        return ol;
77
    }
78 164 jobacas
}