package org.herac.tuxguitar.gui.util;
import org.apache.log4j.Logger;
import org.herac.tuxguitar.gui.TuxGuitar;
import org.herac.tuxguitar.gui.editors.chord.ChordSelector;
import org.herac.tuxguitar.gui.system.config.TGConfigKeys;
import org.herac.tuxguitar.util.TGVersion;
public class WindowTitleUtil {
public static final String VAR_APP_NAME = "appname";
public static final String VAR_APP_VERSION = "appversion";
private static final String VAR_END = "}";
public static final String VAR_FILE_NAME = "filename";
public static final String VAR_FILE_PATH = "filepath";
public static final String VAR_SONG_ALBUM = "songalbum";
public static final String VAR_SONG_ARTIST = "songartist";
public static final String VAR_SONG_AUTHOR = "songauthor";
public static final String VAR_SONG_NAME = "songname";
private static final String VAR_START = "${";
public static String getVar(String varName) {
return (VAR_START + varName + VAR_END);
}
private static String parseString(String src) {
try {
if (src != null) {
String result = new String();
for (int pos = 0; pos < src.length(); pos++) {
int startIndex = src.indexOf(VAR_START, pos);
int endIndex = startIndex;
if (startIndex >= 0) {
endIndex = src.indexOf(VAR_END, (startIndex + VAR_START.length()));
}
if ((startIndex >= 0) && endIndex > (startIndex + VAR_START.length())) {
if (startIndex > pos) {
result += src.substring(pos, startIndex);
}
String var = src.substring(startIndex, (endIndex + 1));
result += parseVar(var);
pos = endIndex;
} else {
result += src.substring(pos, src.length());
break;
}
}
return result;
}
} catch (Exception e) {
LOG.error(e);
}
return null;
}
/** The Logger for this class. */
public static final transient Logger LOG = Logger
.getLogger(WindowTitleUtil.class);
public static String parseTitle() {
String title = parseString(TuxGuitar.instance().getConfig()
.getStringConfigValue(TGConfigKeys.WINDOW_TITLE));
return ((title == null) ? TuxGuitar.APPLICATION_NAME : title);
}
private static String parseVar(String var) {
String varName = var.substring((VAR_START.length()), (var.length() - 1));
String varValue = var;
if (varName.equals(VAR_APP_NAME)) {
varValue = TuxGuitar.APPLICATION_NAME;
} else if (varName.equals(VAR_APP_VERSION)) {
varValue = TGVersion.CURRENT.toString();
} else if (varName.equals(VAR_FILE_NAME)) {
varValue = TuxGuitar.instance().getFileHistory().getCurrentFileName(
FileChooser.DEFAULT_SAVE_FILENAME);
} else if (varName.equals(VAR_FILE_PATH)) {
varValue = TuxGuitar.instance().getFileHistory().getCurrentFilePath();
} else if (varName.equals(VAR_SONG_NAME)) {
varValue = TuxGuitar.instance().getSongManager().getSong().getName();
} else if (varName.equals(VAR_SONG_AUTHOR)) {
varValue = TuxGuitar.instance().getSongManager().getSong().getAuthor();
} else if (varName.equals(VAR_SONG_ALBUM)) {
varValue = TuxGuitar.instance().getSongManager().getSong().getAlbum();
} else if (varName.equals(VAR_SONG_ARTIST)) {
varValue = TuxGuitar.instance().getSongManager().getSong().getArtist();
}
return varValue;
}
}