diff options
Diffstat (limited to 'sca-java-2.x/contrib/samples/helloworld-wicket/src/main/java/sample')
7 files changed, 287 insertions, 0 deletions
diff --git a/sca-java-2.x/contrib/samples/helloworld-wicket/src/main/java/sample/HelloworldService.java b/sca-java-2.x/contrib/samples/helloworld-wicket/src/main/java/sample/HelloworldService.java new file mode 100644 index 0000000000..53ff7a5ca1 --- /dev/null +++ b/sca-java-2.x/contrib/samples/helloworld-wicket/src/main/java/sample/HelloworldService.java @@ -0,0 +1,25 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package sample; + +public interface HelloworldService { + + String sayHello(String name); + +} diff --git a/sca-java-2.x/contrib/samples/helloworld-wicket/src/main/java/sample/HelloworldServiceImpl.java b/sca-java-2.x/contrib/samples/helloworld-wicket/src/main/java/sample/HelloworldServiceImpl.java new file mode 100644 index 0000000000..a22c095f29 --- /dev/null +++ b/sca-java-2.x/contrib/samples/helloworld-wicket/src/main/java/sample/HelloworldServiceImpl.java @@ -0,0 +1,28 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package sample; + + +public class HelloworldServiceImpl implements HelloworldService { + + public String sayHello(String name) { + return "Hello " + name; + } + +} diff --git a/sca-java-2.x/contrib/samples/helloworld-wicket/src/main/java/sample/wicket/HomePage.html b/sca-java-2.x/contrib/samples/helloworld-wicket/src/main/java/sample/wicket/HomePage.html new file mode 100644 index 0000000000..61eb207e23 --- /dev/null +++ b/sca-java-2.x/contrib/samples/helloworld-wicket/src/main/java/sample/wicket/HomePage.html @@ -0,0 +1,48 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" >
+<head>
+ <title>Wicket Examples - guice</title>
+ <link rel="stylesheet" type="text/css" href="style.css"/>
+</head>
+<body>
+ <p>
+ This page uses <a href="http://code.google.com/p/google-guice/">Google Guice</a>.
+ There is a service interface called <code>IMyService</code>, with an implementation POJO called <code>MyService</code>.
+ Guice is used to wire the implementation into the <code>Page</code> using an <code>@Inject</code> annotation. You can use this
+ annotation on the fields of any <code>Component</code> subclass.
+ </p>
+ <p>
+ The value of the <code>Label</code> component below will be updated with the return value from one of the service's methods when you click the link.
+ </p>
+ <hr />
+ <blockquote>
+ Value: <b wicket:id="message" id="message">Message goes here</b>
+ <br />
+ To update the label above, <a href="#" wicket:id="link">click here</a>.
+ </blockquote>
+ <hr />
+ <p>
+ The wicket-guice project will take care of proxying the injected beans so that your pages can be serialized safely.
+ To configure your application for Guice injection, see the javadoc for <code>GuiceComponentInjector</code>.
+ </p>
+
+</body>
+</html>
\ No newline at end of file diff --git a/sca-java-2.x/contrib/samples/helloworld-wicket/src/main/java/sample/wicket/HomePage.java b/sca-java-2.x/contrib/samples/helloworld-wicket/src/main/java/sample/wicket/HomePage.java new file mode 100644 index 0000000000..061f4c58ae --- /dev/null +++ b/sca-java-2.x/contrib/samples/helloworld-wicket/src/main/java/sample/wicket/HomePage.java @@ -0,0 +1,66 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package sample.wicket; + +import org.apache.wicket.markup.html.WebPage; +import org.apache.wicket.markup.html.basic.Label; +import org.apache.wicket.markup.html.link.Link; +import org.apache.wicket.model.AbstractReadOnlyModel; +import org.oasisopen.sca.annotation.Reference; + +/** + * Everybody's favorite example (Hello World), modified to use Guice. + * + * @author Alastair Maw + */ +public class HomePage extends WebPage +{ + @Reference + IMyService service; + + private String labelValue = "<not yet initialized>"; + + /** + * Constructor + */ + public HomePage() + { + add(new Link("link") + { + /** + * @see org.apache.wicket.markup.html.link.Link#onClick() + */ + @Override + public void onClick() + { + labelValue = service.getHelloWorldText(); + } + }); + add(new Label("message", new AbstractReadOnlyModel<String>() + { + + @Override + public String getObject() + { + return labelValue; + } + + })); + } +}
\ No newline at end of file diff --git a/sca-java-2.x/contrib/samples/helloworld-wicket/src/main/java/sample/wicket/IMyService.java b/sca-java-2.x/contrib/samples/helloworld-wicket/src/main/java/sample/wicket/IMyService.java new file mode 100644 index 0000000000..fdd91b0933 --- /dev/null +++ b/sca-java-2.x/contrib/samples/helloworld-wicket/src/main/java/sample/wicket/IMyService.java @@ -0,0 +1,35 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package sample.wicket; + + +/** + * Service interface for a simple "Hello World" app. + * + * @author Alastair Maw + */ +public interface IMyService +{ + /** + * Retrieves the text to say "Hello World". + * + * @return "Hello World" + */ + public String getHelloWorldText(); +}
\ No newline at end of file diff --git a/sca-java-2.x/contrib/samples/helloworld-wicket/src/main/java/sample/wicket/MyService.java b/sca-java-2.x/contrib/samples/helloworld-wicket/src/main/java/sample/wicket/MyService.java new file mode 100644 index 0000000000..e7d864c5e6 --- /dev/null +++ b/sca-java-2.x/contrib/samples/helloworld-wicket/src/main/java/sample/wicket/MyService.java @@ -0,0 +1,38 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package sample.wicket; + + +/** + * Implementation of IService. + * + * @author Alastair Maw + */ +public class MyService implements IMyService +{ + + /** + * @see org.apache.wicket.examples.guice.service.IMyService#getHelloWorldText() + */ + public String getHelloWorldText() + { + return "Hello World"; + } + +}
\ No newline at end of file diff --git a/sca-java-2.x/contrib/samples/helloworld-wicket/src/main/java/sample/wicket/WicketApplication.java b/sca-java-2.x/contrib/samples/helloworld-wicket/src/main/java/sample/wicket/WicketApplication.java new file mode 100644 index 0000000000..85f2c00dbc --- /dev/null +++ b/sca-java-2.x/contrib/samples/helloworld-wicket/src/main/java/sample/wicket/WicketApplication.java @@ -0,0 +1,47 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package sample.wicket; + +import org.apache.wicket.Page; +import org.apache.wicket.protocol.http.WebApplication; +import org.apache.tuscany.sca.wicket.TuscanyComponentInjector;; + +/** + * Application object for your web application. If you want to run this application without deploying, run the Start class. + * + * @see com.mycompany.Start#main(String[]) + */ +public class WicketApplication extends WebApplication +{ + + @Override + protected void init() + { + addComponentInstantiationListener(new TuscanyComponentInjector(this)); + } + + /** + * @see org.apache.wicket.Application#getHomePage() + */ + @Override + public Class< ? extends Page> getHomePage() + { + return HomePage.class; + } +}
\ No newline at end of file |