package ee.edio.garmin.sdk;
import com.intellij.openapi.projectRoots.*;
import com.intellij.openapi.vfs.VirtualFile;
import ee.edio.garmin.MonkeyConstants;
import ee.edio.garmin.MonkeyIcons;
import org.jdom.Element;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import javax.swing.*;
import java.io.File;
public class MonkeySdkType extends SdkType {
public MonkeySdkType() {
super(MonkeyConstants.SDK_TYPE_ID);
}
@NotNull
public static MonkeySdkType getInstance() {
final MonkeySdkType instance = SdkType.findInstance(MonkeySdkType.class);
assert instance != null;
return instance;
}
@Nullable
@Override
public String suggestHomePath() {
return null;
}
// 16x16
@Override
public Icon getIcon() {
return MonkeyIcons.SDK;
}
// 16x16
@Override
public Icon getIconForAddAction() {
return MonkeyIcons.ADD_SDK;
}
@Override
public boolean isValidSdkHome(String path) {
return true;
}
@Override
public String suggestSdkName(String currentSdkName, String sdkHome) {
return getVersionString(sdkHome);
}
@Nullable
@Override
public String getVersionString(String sdkHome) {
return "1.1.3";
}
@Nullable
@Override
public AdditionalDataConfigurable createAdditionalDataConfigurable(SdkModel sdkModel, SdkModificator sdkModificator) {
return null;
}
@Override
public String getPresentableName() {
return "Connect IQ SDK";
}
@Override
public void saveAdditionalData(@NotNull SdkAdditionalData additionalData, @NotNull Element additional) {
}
public String getMonkeydoBatPath(@NotNull Sdk sdk) {
return getBinPath(sdk) + File.separator + "monkeydo.bat";
}
public String getMonkeybrainsJarPath(@NotNull Sdk sdk) {
return getBinPath(sdk) + File.separator + "monkeybrains.jar";
}
public VirtualFile getBinDir(@NotNull Sdk sdk) {
return sdk.getHomeDirectory().findChild("bin");
}
public String getBinPath(@NotNull Sdk sdk) {
return getConvertedHomePath(sdk) + "bin";
}
private static String getConvertedHomePath(@NotNull Sdk sdk) {
String path = sdk.getHomePath().replace('/', File.separatorChar);
if (!path.endsWith(File.separator)) {
path += File.separator;
}
return path;
}
}