package com.digiarea.closurefx.editors;
import java.io.File;
import com.digiarea.closure.preferences.model.Editor;
import com.digiarea.closure.preferences.model.OperatingSystem;
import com.digiarea.closure.preferences.model.OperatingSystemFamily;
public class EditorLoader {
public void load(Editor editor, String file, String line, String column) {
switch (editor.getType()) {
case KOMODO:
KomodoEditor komodoEditor = new KomodoEditor(editor);
komodoEditor.setFile(file);
komodoEditor.setColumn(column);
komodoEditor.setLine(line);
komodoEditor.load();
break;
case NETBEANS:
break;
case NOTEPAD:
NotepadEditor notepadEditor = new NotepadEditor(editor);
notepadEditor.setFile(file);
notepadEditor.setColumn(column);
notepadEditor.setLine(line);
notepadEditor.load();
break;
case SUBLIMTEXT:
SublimtextEditor sublimtextEditor = new SublimtextEditor(editor);
sublimtextEditor.setFile(file);
sublimtextEditor.setColumn(column);
sublimtextEditor.setLine(line);
sublimtextEditor.load();
break;
case WEBSTORM:
WebstormEditor webstormEditor = new WebstormEditor(editor);
webstormEditor.setFile(file);
webstormEditor.setColumn(column);
webstormEditor.setLine(line);
webstormEditor.load();
break;
case EMACS:
EmacsEditor emacsEditor = new EmacsEditor(editor);
emacsEditor.setFile(file);
emacsEditor.setColumn(column);
emacsEditor.setLine(line);
emacsEditor.load();
break;
case TEXTMATE:
TextMateEditor textMateEditor = new TextMateEditor(editor);
textMateEditor.setFile(file);
textMateEditor.setColumn(column);
textMateEditor.setLine(line);
textMateEditor.load();
break;
case JEDIT:
JEditEditor jEditEditor = new JEditEditor(editor);
jEditEditor.setFile(file);
jEditEditor.setColumn(column);
jEditEditor.setLine(line);
jEditEditor.load();
break;
}
}
public static Boolean isValid(Editor editor) {
if (editor != null && editor.getPath() != null
&& !editor.getPath().isEmpty()) {
switch (editor.getType()) {
case KOMODO:
KomodoEditor komodoEditor = new KomodoEditor(editor);
return new File(komodoEditor.getFullPath()).exists();
case NETBEANS:
break;
case NOTEPAD:
NotepadEditor notepadEditor = new NotepadEditor(editor);
return new File(notepadEditor.getFullPath()).exists();
case SUBLIMTEXT:
SublimtextEditor sublimtextEditor = new SublimtextEditor(editor);
return new File(sublimtextEditor.getFullPath()).exists();
case WEBSTORM:
WebstormEditor webstormEditor = new WebstormEditor(editor);
return new File(webstormEditor.getFullPath()).exists();
case EMACS:
EmacsEditor emacsEditor = new EmacsEditor(editor);
return new File(emacsEditor.getFullPath()).exists();
case TEXTMATE:
TextMateEditor textMateEditor = new TextMateEditor(editor);
return new File(textMateEditor.getFullPath()).exists();
case JEDIT:
JEditEditor jEditEditor = new JEditEditor(editor);
return new File(jEditEditor.getFullPath()).exists();
}
}
return false;
}
public static boolean isSupported(Editor editor) {
if (editor != null) {
OperatingSystemFamily family = getOSFamily();
if (family == null) {
return false;
}
switch (editor.getType()) {
case KOMODO:
if (family == OperatingSystemFamily.WINDOWS
|| family == OperatingSystemFamily.LINUX
|| family == OperatingSystemFamily.UNIX
|| family == OperatingSystemFamily.MAC) {
return true;
}
break;
case NETBEANS:
break;
case NOTEPAD:
if (family == OperatingSystemFamily.WINDOWS) {
return true;
}
break;
case SUBLIMTEXT:
if (family == OperatingSystemFamily.WINDOWS
|| family == OperatingSystemFamily.MAC
|| family == OperatingSystemFamily.LINUX
|| family == OperatingSystemFamily.UNIX) {
return true;
}
break;
case WEBSTORM:
if (family == OperatingSystemFamily.WINDOWS
|| family == OperatingSystemFamily.MAC
|| family == OperatingSystemFamily.LINUX
|| family == OperatingSystemFamily.UNIX) {
return true;
}
break;
case EMACS:
if (family == OperatingSystemFamily.WINDOWS
|| family == OperatingSystemFamily.MAC
|| family == OperatingSystemFamily.LINUX
|| family == OperatingSystemFamily.UNIX) {
return true;
}
break;
case TEXTMATE:
if (family == OperatingSystemFamily.MAC) {
return true;
}
break;
case JEDIT:
if (family == OperatingSystemFamily.WINDOWS
|| family == OperatingSystemFamily.MAC
|| family == OperatingSystemFamily.LINUX
|| family == OperatingSystemFamily.UNIX) {
return true;
}
break;
}
}
return false;
}
public static String getOS() {
return System.getProperty("os.name");
}
public static OperatingSystemFamily getOSFamily() {
OperatingSystem family = OperatingSystem.resolve(getOS());
if (family != null) {
return OperatingSystem.resolve(getOS()).getFamily();
}
return null;
}
}