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 NotepadEditor { private Editor editor; private static String NOTEPAD_WIN = "/notepad++.exe"; private String file; private String line; private String column; private OperatingSystemFamily osFamily; public NotepadEditor(Editor editor) { this.editor = editor; } 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 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: break; case UNIX: break; case WINDOWS: return editor.getPath() + NOTEPAD_WIN; } return null; } public void load() { if (getFullPath() != null) { try { ProcessBuilder builder = new ProcessBuilder(getFullPath(), "-n" + line, "-c" + column, file); builder.start(); } catch (IOException e) { e.printStackTrace(); } } } public ProcessBuilder getProcessBuilder() { return null; } public String getName() { return "Notepad++"; } }