8000 Check availability of external resources for JavaScript editors. · Silent-Fred/iTrySQL@d1c651d · GitHub
[go: up one dir, main page]

Skip to content

Commit d1c651d

Browse files
committed
Check availability of external resources for JavaScript editors.
1 parent a4982bb commit d1c651d

File tree

3 files changed

+38
-7
lines changed

3 files changed

+38
-7
lines changed

src/main/java/de/kuehweg/sqltool/dialog/component/editor/CodeMirrorBasedEditor.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,7 @@ public class CodeMirrorBasedEditor implements StatementEditor {
4242
public static final String RESOURCE = "codemirror/sql_editor.html";
4343

4444
private enum FontSizeSteps {
45-
NORMAL(12),
46-
MEDIUM(14),
47-
BIG(18);
45+
NORMAL(12), MEDIUM(14), BIG(18);
4846
private int equivalentFontSize;
4947

5048
FontSizeSteps(final int equivalentFontSize) {

src/main/java/de/kuehweg/sqltool/dialog/component/editor/StatementEditorCycle.java

Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,12 @@
2626

2727
package de.kuehweg.sqltool.dialog.component.editor;
2828

29+
import java.io.File;
2930
import java.io.Serializable;
3031
import java.util.LinkedList;
3132

33+
import de.kuehweg.sqltool.itrysql.ResourceLocator;
34+
3235
/**
3336
* @author Michael Kühweg
3437
*/
@@ -41,9 +44,15 @@ public class StatementEditorCycle implements Serializable {
4144
private int cycle = 0;
4245

4346
public StatementEditorCycle() {
44-
statementEditorClasses.add(TextAreaBasedEditor.class);
45-
statementEditorClasses.add(CodeMirrorBasedEditor.class);
46-
statementEditorClasses.add(AceBasedEditor.class);
47+
if (isPlainTextAvailable()) {
48+
statementEditorClasses.add(TextAreaBasedEditor.class);
49+
}
50+
if (isCodemirrorAvailable()) {
51+
statementEditorClasses.add(CodeMirrorBasedEditor.class);
52+
}
53+
if (isAceAvailable()) {
54+
statementEditorClasses.add(AceBasedEditor.class);
55+
}
4756
}
4857

4958
public void recycle() {
@@ -59,4 +68,28 @@ public int numberOfOptions() {
5968
return statementEditorClasses.size();
6069
}
6170

71+
private boolean isPlainTextAvailable() {
72+
return true;
73+
}
74+
75+
private boolean isCodemirrorAvailable() {
76+
final ResourceLocator locator = new ResourceLocator();
77+
try {
78+
return new File(locator.getExternalFormForExplodedResourceInBundle(CodeMirrorBasedEditor.RESOURCE).toURI()
79+
.getPath()).exists();
80+
} catch (final Exception e) {
81+
return false;
82+
}
83+
}
84+
85+
private boolean isAceAvailable() {
86+
final ResourceLocator locator = new ResourceLocator();
87+
try {
88+
return new File(
89+
locator.getExternalFormForExplodedResourceInBundle(AceBasedEditor.RESOURCE).toURI().getPath())
90+
.exists();
91+
} catch (final Exception e) {
92+
return false;
93+
}
94+
}
6295
}

src/main/java/de/kuehweg/sqltool/itrysql/ResourceLocator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
public class ResourceLocator {
3636

3737
public URL getExternalFormForExplodedResourceInBundle(final String name) throws MalformedURLException {
38-
String externalResourceBaseDirectory = System.getProperty("itrysql.external-resources");
38+
final String externalResourceBaseDirectory = System.getProperty("itrysql.external-resources");
3939
return new URL("file", "localhost", externalResourceBaseDirectory + "/" + name);
4040
}
4141
}

0 commit comments

Comments
 (0)
0