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
package org.gvsig.scripting.impl;
2

    
3
import java.io.File;
4
import java.util.ArrayList;
5
import java.util.List;
6

    
7
import org.gvsig.scripting.ScriptingFolder;
8
import org.gvsig.scripting.ScriptingManager;
9
import org.gvsig.scripting.ScriptingUnit;
10
import org.gvsig.scripting.impl.DefaultScriptingManager.RegisterSystemFolder;
11

    
12
public class SystemFolder extends DefaultScriptingFolder {
13

    
14
    public final static String ID = "SystemFolder";
15
    
16
    @SuppressWarnings("OverridableMethodCallInConstructor")
17
    public SystemFolder(ScriptingManager manager) {
18
        super(manager);
19
        this.setName("System");
20
        this.setId(ID);
21
        this.setDescription("Scripts del Sistema");
22
    }
23

    
24
    @Override
25
    public ScriptingFolder getParent() {
26
        return null;
27
    }
28

    
29
    @Override
30
    public File getFileResource(String extension) {
31
        return new File(folder.getParentFile(), folder.getName() + extension).getAbsoluteFile();
32
    }
33

    
34
    @Override
35
    public String toString() {
36
        return this.description;
37
    }
38

    
39
    @Override
40
    public String[] getIconNames() {
41
        return new String[]{"scripting-icon-folder-system", "scripting-icon-folder-system"};
42
    }
43

    
44
    @Override
45
    public Unit getUnit(File afile) {
46
        Unit unit;
47
        String path = afile.getPath();
48
        if (path.startsWith("/")) {
49
            path = path.substring(1);
50
        }
51

    
52
        List<RegisterSystemFolder> folders = this.manager.getSystemFolders();
53
        for (int i = 0; i < folders.size(); i++) {
54
            RegisterSystemFolder systemfolder = folders.get(i);
55
            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
                if (unit != null) {
59
                    return unit;
60
                }
61
            }
62
        }
63
        return null;
64
    }
65

    
66
    @Override
67
    public List<ScriptingUnit> getUnits() {
68
        List<ScriptingUnit> ol = new ArrayList<>();
69
        List<RegisterSystemFolder> folders = this.manager.getSystemFolders();
70
        for (int i = 0; i < folders.size(); i++) {
71
            RegisterSystemFolder systemfolder = folders.get(i);
72
            DefaultScriptingFolder theFolder = new DefaultScriptingFolder(this, manager, systemfolder.folder.getAbsoluteFile());
73
            theFolder.setName(systemfolder.name);
74
            ol.add(theFolder);
75
        }
76
        return ol;
77
    }
78
}