Skip to content

Commit dab77bd

Browse files
committed
CodeMirror
1 parent 65b9b73 commit dab77bd

File tree

3 files changed

+38
-18
lines changed

3 files changed

+38
-18
lines changed

forsrc-gwt-ui/src/main/java/com/forsrc/gwt/client/application/codemirror/CodemirrorView.java

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
import org.geomajas.codemirror.client.widget.CodeMirrorPanel;
66

7+
import com.google.gwt.event.logical.shared.AttachEvent;
78
import com.google.gwt.uibinder.client.UiBinder;
89
import com.google.gwt.uibinder.client.UiField;
910
import com.google.gwt.user.client.ui.HTMLPanel;
@@ -20,37 +21,36 @@ interface Binder extends UiBinder<Widget, CodemirrorView> {
2021
@UiField
2122
MaterialLabel searchLabel;
2223

24+
CodeMirrorPanel codeMirrorPanel;
25+
26+
@UiField
27+
HTMLPanel codeMirrorHtmlPanel;
28+
2329
@Inject
2430
CodemirrorView(Binder uiBinder) {
2531
initWidget(uiBinder.createAndBindUi(this));
26-
// -- show a codemirror panel
27-
String initialContent =
28-
"<html>\n\t<head>\n\t\t<title>Geomajas GWT Codemirror wrapper sample</title>\n\t</head>\n" +
29-
"\n\t<body>\n\t\tRead more here: \n\t\t<a href=\"\">" +
30-
"Geomajas Codemirror GWT</a><br />" +
31-
"\n\t\tand here: <a href=\"http://codemirror.net/\">CodeMirror</a><br />\n\t" +
32-
"</body>\n</html>";
33-
34-
html.add(new CodeMirrorPanel(initialContent));
32+
codeMirrorPanel = new CodeMirrorPanel();
33+
codeMirrorHtmlPanel.add(codeMirrorPanel);
3534
}
3635

3736
@Override
3837
public void onSearch(String text) {
3938

4039
searchLabel.setText("Home search -> " + text);
40+
codeMirrorPanel.getEditor().setContent(text);
4141
}
4242

43-
@UiField
44-
HTMLPanel html;
45-
4643
@Override
4744
protected void onAttach() {
4845
// TODO Auto-generated method stub
4946
super.onAttach();
50-
51-
47+
codeMirrorHtmlPanel.addAttachHandler(new AttachEvent.Handler() {
5248

53-
54-
49+
@Override
50+
public void onAttachOrDetach(AttachEvent event) {
51+
codeMirrorPanel.getEditor().setContent("hello world");
52+
}
53+
});
5554
}
55+
5656
}

forsrc-gwt-ui/src/main/java/com/forsrc/gwt/client/application/codemirror/CodemirrorView.ui.xml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,9 @@
88

99
<g:HTMLPanel>
1010

11-
<p>Hello world! Home {{i18n.app_title}}</p>
1211
<m:MaterialLabel ui:field="searchLabel"/>
1312

14-
<g:HTMLPanel ui:field="html">
13+
<g:HTMLPanel ui:field="codeMirrorHtmlPanel">
1514
</g:HTMLPanel>
1615
</g:HTMLPanel>
1716

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package com.forsrc.gwt.client.utils;
2+
3+
import com.google.gwt.core.client.ScriptInjector;
4+
import com.google.gwt.resources.client.TextResource;
5+
6+
public class ScriptInjectorUtils {
7+
public static void inject(TextResource resource) {
8+
inject(resource, true, false);
9+
}
10+
11+
public static void injectDebug(TextResource resource) {
12+
inject(resource, false, true);
13+
}
14+
15+
public static void inject(TextResource resource, boolean removeTag, boolean sourceUrl) {
16+
String text = resource.getText() + (sourceUrl ? "//# sourceURL=" + resource.getName() + ".js" : "");
17+
18+
// Inject the script resource
19+
ScriptInjector.fromString(text).setWindow(ScriptInjector.TOP_WINDOW).setRemoveTag(removeTag).inject();
20+
}
21+
}

0 commit comments

Comments
 (0)