package com.digiarea.closurefx.editors;
import java.io.IOException;
import com.digiarea.closure.preferences.model.Editor;
import com.digiarea.closure.preferences.model.OperatingSystem;
import com.digiarea.closure.preferences.model.OperatingSystemFamily;
public class JEditEditor {
private static String JEDIT_MAC = "/Contents/MacOS/JEdit";
private static String JEDIT_WIN = "/jedit.exe";
private String file;
private String line = "0";
private String column = "0";
private String path;
private OperatingSystemFamily osFamily;
public JEditEditor(Editor editor) {
this.path = editor.getPath();
}
public JEditEditor(String path) {
this.path = path;
}
public void setFile(String file) {
this.file = file;
}
public void setLine(String line) {
this.line = line;
}
public void setColumn(String column) {
this.column = column;
}
public String getColumn() {
return column;
}
public String getOS() {
return System.getProperty("os.name");
}
public OperatingSystemFamily getOSFamily() {
if (osFamily == null) {
osFamily = OperatingSystem.resolve(getOS()).getFamily();
}
return osFamily;
}
public String getFullPath() {
switch (getOSFamily()) {
case DEC_OS:
break;
case LINUX:
break;
case MAC:
return path + JEDIT_MAC;
case UNIX:
break;
case WINDOWS:
return path + JEDIT_WIN;
}
return null;
}
public void load() {
if (getFullPath() != null) {
try {
ProcessBuilder builder = getProcessBuilder();
builder.start();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public ProcessBuilder getProcessBuilder() {
switch (getOSFamily()) {
case DEC_OS:
break;
case LINUX:
case MAC:
case UNIX:
case WINDOWS:
return new ProcessBuilder(getFullPath(), file, "+line:" + line);
}
return null;
}
public String getName() {
return "Sublime Text";
}
}