Skip to content

Commit 7b1b5c1

Browse files
committed
CodeMirror
1 parent 8ec65be commit 7b1b5c1

File tree

10 files changed

+169
-1
lines changed

10 files changed

+169
-1
lines changed

forsrc-gwt-ui/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@ target/
44
/.settings
55
/.classpath
66
/.project
7+
/.tern-project

forsrc-gwt-ui/pom.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,11 @@
238238
<name>Sonatype Nexus snapshot repository</name>
239239
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
240240
</repository>
241+
<repository>
242+
<id>geomajas</id>
243+
<name>geomajas</name>
244+
<url>http://maven.geomajas.org</url>
245+
</repository>
241246
</repositories>
242247

243248
<distributionManagement>
@@ -390,5 +395,10 @@
390395
</exclusion>
391396
</exclusions>
392397
</dependency>
398+
<dependency>
399+
<groupId>org.geomajas.project</groupId>
400+
<artifactId>geomajas-project-codemirror-gwt</artifactId>
401+
<version>3.1.3</version>
402+
</dependency>
393403
</dependencies>
394404
</project>

forsrc-gwt-ui/src/main/java/com/forsrc/gwt/ForsrcGwtUi.gwt.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,4 +52,9 @@
5252
<extend-property name="locale" values="zh_CN" />
5353
<set-property-fallback name="locale" value="en_US" />
5454
<set-property name="locale" value="zh_CN" />
55+
56+
57+
<inherits name='org.geomajas.codemirror.CodeMirror'/>
58+
59+
5560
</module>

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.forsrc.gwt.client.application;
22

3+
import com.forsrc.gwt.client.application.codemirror.CodemirrorModule;
34
import com.forsrc.gwt.client.application.error.ErrorModule;
45
import com.forsrc.gwt.client.application.home.HomeModule;
56
import com.forsrc.gwt.client.application.login.LoginModule;
@@ -20,5 +21,6 @@ protected void configure() {
2021
install(new LoginModule());
2122
install(new ChatModule());
2223
install(new TableModule());
24+
install(new CodemirrorModule());
2325
}
2426
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package com.forsrc.gwt.client.application.codemirror;
2+
3+
4+
import com.gwtplatform.mvp.client.gin.AbstractPresenterModule;
5+
6+
public class CodemirrorModule extends AbstractPresenterModule {
7+
@Override
8+
protected void configure() {
9+
bindPresenter(CodemirrorPresenter.class, CodemirrorPresenter.MyView.class, CodemirrorView.class,
10+
CodemirrorPresenter.MyProxy.class);
11+
}
12+
}
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
package com.forsrc.gwt.client.application.codemirror;
2+
3+
import com.forsrc.gwt.client.application.ApplicationPresenter;
4+
import com.forsrc.gwt.client.application.ApplicationView;
5+
import com.forsrc.gwt.client.event.MyEvent;
6+
import com.forsrc.gwt.client.event.MyEvent.MyEventData;
7+
import com.forsrc.gwt.client.event.MyEvent.MyEventHandler;
8+
import com.forsrc.gwt.client.place.NameTokens;
9+
import com.google.inject.Inject;
10+
import com.google.web.bindery.event.shared.EventBus;
11+
import com.gwtplatform.mvp.client.Presenter;
12+
import com.gwtplatform.mvp.client.View;
13+
import com.gwtplatform.mvp.client.annotations.NameToken;
14+
import com.gwtplatform.mvp.client.annotations.NoGatekeeper;
15+
import com.gwtplatform.mvp.client.annotations.ProxyStandard;
16+
import com.gwtplatform.mvp.client.proxy.ProxyPlace;
17+
18+
public class CodemirrorPresenter extends Presenter<CodemirrorPresenter.MyView, CodemirrorPresenter.MyProxy>
19+
implements MyEventHandler {
20+
21+
interface MyView extends View {
22+
public void onSearch(String text);
23+
}
24+
25+
@ProxyStandard
26+
@NameToken(NameTokens.CODE)
27+
@NoGatekeeper
28+
interface MyProxy extends ProxyPlace<CodemirrorPresenter> {
29+
}
30+
31+
@Inject
32+
CodemirrorPresenter(
33+
EventBus eventBus,
34+
MyView view,
35+
MyProxy proxy) {
36+
super(eventBus, view, proxy, ApplicationPresenter.SLOT_MAIN);
37+
}
38+
39+
@Override
40+
protected void onBind() {
41+
super.onBind();
42+
addRegisteredHandler(MyEvent.TYPE, this);
43+
}
44+
45+
46+
47+
@Override
48+
public void onMyEventHandler(MyEvent event) {
49+
MyEventData data = event.getData();
50+
if (ApplicationView.TYPE_SEARECH.equals(data.getType())) {
51+
getView().onSearch((String)data.getData());
52+
}
53+
}
54+
}
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
package com.forsrc.gwt.client.application.codemirror;
2+
3+
import javax.inject.Inject;
4+
5+
import org.geomajas.codemirror.client.widget.CodeMirrorPanel;
6+
7+
import com.google.gwt.uibinder.client.UiBinder;
8+
import com.google.gwt.uibinder.client.UiField;
9+
import com.google.gwt.user.client.ui.HTMLPanel;
10+
import com.google.gwt.user.client.ui.PopupPanel;
11+
import com.google.gwt.user.client.ui.Widget;
12+
import com.gwtplatform.mvp.client.ViewImpl;
13+
14+
import gwt.material.design.client.ui.MaterialLabel;
15+
16+
public class CodemirrorView extends ViewImpl implements CodemirrorPresenter.MyView {
17+
interface Binder extends UiBinder<Widget, CodemirrorView> {
18+
}
19+
20+
@UiField
21+
MaterialLabel searchLabel;
22+
23+
@Inject
24+
CodemirrorView(Binder uiBinder) {
25+
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));
35+
}
36+
37+
@Override
38+
public void onSearch(String text) {
39+
40+
searchLabel.setText("Home search -> " + text);
41+
}
42+
43+
@UiField
44+
HTMLPanel html;
45+
46+
@Override
47+
protected void onAttach() {
48+
// TODO Auto-generated method stub
49+
super.onAttach();
50+
51+
52+
53+
54+
55+
}
56+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
2+
xmlns:g="urn:import:com.google.gwt.user.client.ui"
3+
xmlns:m="urn:import:gwt.material.design.client.ui"
4+
xmlns:m.html="urn:import:gwt.material.design.client.ui.html"
5+
xmlns:ma="urn:import:gwt.material.design.addins.client">
6+
7+
<ui:with field="i18n" type="com.forsrc.gwt.client.resources.i18n.Messages" />
8+
9+
<g:HTMLPanel>
10+
11+
<p>Hello world! Home {{i18n.app_title}}</p>
12+
<m:MaterialLabel ui:field="searchLabel"/>
13+
14+
<g:HTMLPanel ui:field="html">
15+
</g:HTMLPanel>
16+
</g:HTMLPanel>
17+
18+
</ui:UiBinder>

forsrc-gwt-ui/src/main/java/com/forsrc/gwt/client/place/NameTokens.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ public class NameTokens {
88
public static final String CHAT = "/chat";
99
public static final String TABLE = "/table";
1010
public static final String ERROR = "/error";
11+
public static final String CODE = "/code";
12+
1113

1214
public static String getHome() {
1315
return HOME;

forsrc-gwt-ui/src/main/webapp/index.html

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,20 @@
33
<head>
44
<meta name="viewport" content="width=device-width, initial-scale=1.0,maximum-scale=1.0">
55
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
6-
<title>ForsrcGwtUi</title>
6+
<title>forsrc gwt ui</title>
77

88
<script type="text/javascript" language="javascript" src="ForsrcGwtUi/ForsrcGwtUi.nocache.js"></script>
99

1010
<link href='http://fonts.googleapis.com/css?family=Lato:300,400,700' rel='stylesheet' type='text/css'>
1111

12+
<!-- scripts for codemirror START -->
13+
<script type="text/javascript" language="javascript" src="ForsrcGwtUi/lib/codemirror.js"></script>
14+
<script type="text/javascript" language="javascript" src="ForsrcGwtUi/mode/xml/xml.js"></script>
15+
<script type="text/javascript" language="javascript" src="ForsrcGwtUi/mode/css/css.js"></script>
16+
<script type="text/javascript" language="javascript" src="ForsrcGwtUi/mode/htmlmixed/htmlmixed.js"></script>
17+
<script type="text/javascript" language="javascript" src="ForsrcGwtUi/addon/edit/closetag.js"></script>
18+
<script type="text/javascript" language="javascript" src="ForsrcGwtUi/addon/fold/collapserange.js"></script>
19+
<!-- scripts for codemirror END -->
1220
<style>
1321
:focus {
1422
outline: none;

0 commit comments

Comments
 (0)