~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: 2008-06-19 00:30:30 UTC
  • mto: (5.1.2 sid)
  • mto: This revision was merged to the branch mainline in revision 3.
  • Revision ID: james.westby@ubuntu.com-20080619003030-h719szrhsngou7c6
Tags: upstream-1.0
ImportĀ upstreamĀ versionĀ 1.0

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
 
}