~ubuntu-branches/ubuntu/oneiric/tuxguitar/oneiric

« back to all changes in this revision

Viewing changes to src/org/herac/tuxguitar/gui/util/TuxGuitarFileUtils.java

  • Committer: Bazaar Package Importer
  • Author(s): Philippe Coval
  • Date: 2007-02-04 01:41:23 UTC
  • Revision ID: james.westby@ubuntu.com-20070204014123-9pv7okph0iaiqkvw
Tags: upstream-0.9.1
ImportĀ upstreamĀ versionĀ 0.9.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
package org.herac.tuxguitar.gui.util;
 
2
 
 
3
import java.io.File;
 
4
import java.io.InputStream;
 
5
import java.io.UnsupportedEncodingException;
 
6
import java.net.URL;
 
7
import java.net.URLDecoder;
 
8
 
 
9
import org.eclipse.swt.graphics.Image;
 
10
import org.eclipse.swt.graphics.ImageData;
 
11
import org.herac.tuxguitar.gui.TuxGuitar;
 
12
 
 
13
public class TuxGuitarFileUtils {
 
14
        private static final String APP_CONFIG_DOMAIN = ".tuxguitar";
 
15
        private static final String APP_CONFIG_DOMAIN_ENV_VAR = "TUXGUITAR_CONFIG_HOME";        
 
16
        private static final String SYSTEM_SHARED_PROPERTY = "tuxguitar.shared.path";
 
17
        
 
18
        public static final String USER_CONFIG_PREFIX = getUserConfigDir();
 
19
        public static final String IMAGE_PREFIX = getRealPath("files");
 
20
        public static final String LANGUAGE_PREFIX = getRealPath("lang");
 
21
        public static final String PLUGINS_PREFIX = getRealPath("plugins");
 
22
        public static final String SCALES_PREFIX = getRealPath("scales");
 
23
        
 
24
        public static Image loadImage(String name){
 
25
                if(IMAGE_PREFIX != null){
 
26
                        try{
 
27
                                return new Image(TuxGuitar.instance().getDisplay(),new ImageData(IMAGE_PREFIX + name));
 
28
                        }catch(Exception e){
 
29
                                System.err.println(IMAGE_PREFIX + name + ": not found");
 
30
                        }
 
31
                }               
 
32
                return new Image(TuxGuitar.instance().getDisplay(),16,16);
 
33
        }
 
34
        
 
35
        
 
36
        public static String getRealPath(String resource){
 
37
                String resourcePath = null;             
 
38
                String path = System.getProperty(SYSTEM_SHARED_PROPERTY);
 
39
                if(path != null){
 
40
                        resourcePath = path + System.getProperty("file.separator") + resource;
 
41
                }else{  
 
42
                        resourcePath = getResourcePath(resource);
 
43
                }               
 
44
                if(resourcePath != null){
 
45
                        return new File(resourcePath).getAbsolutePath() + System.getProperty("file.separator");
 
46
                }
 
47
                return null;
 
48
        }
 
49
        
 
50
        
 
51
        public static String getResourcePath(String resource) {
 
52
        URL url = TuxGuitarFileUtils.class.getClassLoader().getResource(resource);        
 
53
                try {
 
54
                        if(url != null){
 
55
                                return URLDecoder.decode(url.getPath(), "UTF-8");
 
56
                        }
 
57
        } catch (UnsupportedEncodingException e) {
 
58
            e.printStackTrace();
 
59
        }
 
60
        return null;
 
61
        }
 
62
        
 
63
        public static InputStream getResourceAsStream(String resource) {
 
64
        return TuxGuitarFileUtils.class.getClassLoader().getResourceAsStream(resource);        
 
65
        }       
 
66
        
 
67
    public static String getUserConfigDir(){   
 
68
        String appConfigDomain = null;                  
 
69
        //System Env Var for tuxguitar
 
70
        try{
 
71
                appConfigDomain = System.getenv(APP_CONFIG_DOMAIN_ENV_VAR);
 
72
        }catch(java.lang.Error e){              
 
73
        }
 
74
        //Default System User Home      
 
75
        if(appConfigDomain == null){
 
76
                appConfigDomain = System.getProperty("user.home") + System.getProperty("file.separator") + APP_CONFIG_DOMAIN;           
 
77
        }       
 
78
        //Check if path exists
 
79
                File file = new File(appConfigDomain);
 
80
                if(!file.exists()){
 
81
                        file.mkdirs();
 
82
                }       
 
83
        
 
84
        return appConfigDomain;
 
85
    }   
 
86
}