1
package org.herac.tuxguitar.gui.util;
4
import java.io.InputStream;
5
import java.io.UnsupportedEncodingException;
7
import java.net.URLDecoder;
9
import org.eclipse.swt.graphics.Image;
10
import org.eclipse.swt.graphics.ImageData;
11
import org.herac.tuxguitar.gui.TuxGuitar;
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";
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");
24
public static Image loadImage(String name){
25
if(IMAGE_PREFIX != null){
27
return new Image(TuxGuitar.instance().getDisplay(),new ImageData(IMAGE_PREFIX + name));
29
System.err.println(IMAGE_PREFIX + name + ": not found");
32
return new Image(TuxGuitar.instance().getDisplay(),16,16);
36
public static String getRealPath(String resource){
37
String resourcePath = null;
38
String path = System.getProperty(SYSTEM_SHARED_PROPERTY);
40
resourcePath = path + System.getProperty("file.separator") + resource;
42
resourcePath = getResourcePath(resource);
44
if(resourcePath != null){
45
return new File(resourcePath).getAbsolutePath() + System.getProperty("file.separator");
51
public static String getResourcePath(String resource) {
52
URL url = TuxGuitarFileUtils.class.getClassLoader().getResource(resource);
55
return URLDecoder.decode(url.getPath(), "UTF-8");
57
} catch (UnsupportedEncodingException e) {
63
public static InputStream getResourceAsStream(String resource) {
64
return TuxGuitarFileUtils.class.getClassLoader().getResourceAsStream(resource);
67
public static String getUserConfigDir(){
68
String appConfigDomain = null;
69
//System Env Var for tuxguitar
71
appConfigDomain = System.getenv(APP_CONFIG_DOMAIN_ENV_VAR);
72
}catch(java.lang.Error e){
74
//Default System User Home
75
if(appConfigDomain == null){
76
appConfigDomain = System.getProperty("user.home") + System.getProperty("file.separator") + APP_CONFIG_DOMAIN;
78
//Check if path exists
79
File file = new File(appConfigDomain);
84
return appConfigDomain;