Revision 301 org.gvsig.scripting/trunk/org.gvsig.scripting/org.gvsig.scripting.lib/org.gvsig.scripting.lib.impl/src/main/java/org/gvsig/scripting/impl/DefaultScriptingManager.java

View differences:

DefaultScriptingManager.java
8 8
import java.io.FileWriter;
9 9
import java.io.IOException;
10 10
import java.io.Writer;
11
import java.net.MalformedURLException;
12 11
import java.util.ArrayList;
13 12
import java.util.HashMap;
14 13
import java.util.Iterator;
......
22 21
import javax.script.SimpleBindings;
23 22
import javax.swing.ImageIcon;
24 23

  
25
import org.slf4j.Logger;
26
import org.slf4j.LoggerFactory;
27

  
28 24
import org.gvsig.scripting.ScriptingBaseScript;
29 25
import org.gvsig.scripting.ScriptingDialog;
30 26
import org.gvsig.scripting.ScriptingFolder;
......
33 29
import org.gvsig.scripting.ScriptingProject;
34 30
import org.gvsig.scripting.ScriptingScript;
35 31
import org.gvsig.scripting.ScriptingUnit;
32
import org.slf4j.Logger;
33
import org.slf4j.LoggerFactory;
36 34

  
35
@SuppressWarnings("restriction")
37 36
public class DefaultScriptingManager implements ScriptingManager{
38 37

  
39 38
    private static final Logger LOG = LoggerFactory
40 39
        .getLogger(DefaultScriptingManager.class);
41 40

  
42
	protected String rootUserFolder;
43 41
    protected Map<String, ImageIcon> icons;
44 42
	protected List<RegisterSystemFolder> systemFolders = new ArrayList<RegisterSystemFolder>();
45 43
	protected ScriptEngineManager engineManager = null;
......
47 45
	private final ScriptingHelpManager helpManager;
48 46
	private List<String> unitTypes = null;
49 47
    private ClassLoader classLoader = null;
48
    private List<File> libFolders = new ArrayList<File>();
49
    private File home = null;
50 50
	
51 51
    public DefaultScriptingManager() {
52
        this.classLoader = getClass().getClassLoader();
53
        this.setHomeFolder(null);
54
        this.bindings.put("ScriptingManager", this);
55
        this.addLibFolder(new File(this.home,"lib"));
52 56
        this.helpManager = new DefaultScriptingHelpManager(this);
53
        initialize();
54
        this.classLoader = getClass().getClassLoader();
55 57
    }
56 58

  
57 59
    public DefaultScriptingManager(ClassLoader classLoader) {
......
59 61
        this.classLoader = classLoader;
60 62
    }
61 63

  
62
    private void initialize() {
63
        this.rootUserFolder =
64
            System.getProperty("user.home") + File.separator + "scripts";
64
    private void createFolder(File f){
65
    	if( !f.exists() ) {
66
			try {
67
				f.mkdir();
68
				LOG.info("Created scripting folder '"+home.getAbsolutePath()+"'");
69
			} catch (Throwable e) {
70
				// Ignore it.
71
			}
72
    	}
73
    }
65 74

  
66
        File f =
67
            new File(System.getProperty("user.dir") + File.separator + ".."
68
                + File.separator + "org.gvsig.scripting.lib" + File.separator
69
                + "org.gvsig.scripting.lib.api" + File.separator + "target"
70
                + File.separator + "site" + File.separator + "apidoc");
71
        if (f.exists()) {
72
            try {
73
                this.helpManager.importHelp("ScriptingFrameworkHelp", f.toURI()
74
                    .toURL());
75
            } catch (MalformedURLException e) {
76
                // TODO Auto-generated catch block
77
                e.printStackTrace();
78
            }
79
        }
80
        this.bindings.put("ScriptingManager", this);
75
    private void createDefaultFolders(File home) {
76
    	createFolder(home);
77
    	createFolder(new File(home,"scripts"));
78
    	createFolder(new File(home,"help"));
79
    	createFolder(new File(home,"lib"));
81 80
    }
82

  
83

  
81
    
82
    public File getHomeFolder() {
83
  		createDefaultFolders(home);
84
    	return this.home;
85
    }
86
    
87
    public void setHomeFolder(File home) {
88
    	if( home == null ) {
89
    		this.home = new File(System.getProperty("user.dir"), ".scripting");
90
    	} else {
91
    		this.home = home;
92
    	}
93
		LOG.info("Set scripting home to '"+this.home.getAbsolutePath()+"'");
94
    }
95
    
84 96
	protected ScriptEngineManager getEngineManager(){
85 97
		if(this.engineManager == null){
86 98
            this.engineManager =
......
339 351
	}
340 352

  
341 353
	public ScriptingFolder getUserFolder() {
342
		return new UserFolder(this,new File(this.getRootUserFolder()));
354
		return new UserFolder(this,this.getRootUserFolder());
343 355
	}
344 356

  
345
	public String getRootUserFolder() {
346
		return this.rootUserFolder;
357
	public File getRootUserFolder() {
358
		return new File(this.getHomeFolder(),"scripts");
347 359
	}
348 360
	
349
	public void setRootUserFolder(String path){
350
		this.rootUserFolder = path;
351
	}
352

  
353 361
	public void registerSystemFolder(String name, File folder) {
354 362
		this.systemFolders.add(new RegisterSystemFolder(name, folder));
363
    	LOG.info("Register system folder name '"+name+"' folder "+folder.getAbsolutePath()+"'");
364

  
355 365
	}
356 366
	
357 367
	public List<RegisterSystemFolder> getSystemFolders(){
......
427 437
		}
428 438
		return this.unitTypes;
429 439
	}
440

  
441
	public void addLibFolder(File lib) {
442
		LOG.info("Add scripting lib folder '"+lib.getAbsolutePath()+"'");
443
		this.libFolders.add(lib);
444
	}
430 445
	
446
	public List<File> getLibFolders() {
447
		return this.libFolders;
448
	}
431 449
}

Also available in: Unified diff