r10 - in refComp/client: . src/main/java/fr/inra/refcomp src/main/java/fr/inra/refcomp/client src/main/java/fr/inra/refcomp/client/constants src/main/java/fr/inra/refcomp/client/service src/main/webapp/WEB-INF
Author: jcouteau Date: 2010-11-04 16:31:32 +0100 (Thu, 04 Nov 2010) New Revision: 10 Url: http://chorem.org/repositories/revision/incubator/10 Log: Add edition of my skills Added: refComp/client/src/main/java/fr/inra/refcomp/client/MySkills.java refComp/client/src/main/java/fr/inra/refcomp/client/MySkills.ui.xml refComp/client/src/main/java/fr/inra/refcomp/client/SkillEditionRow.java refComp/client/src/main/java/fr/inra/refcomp/client/SkillEditionRow.ui.xml refComp/client/src/main/java/fr/inra/refcomp/client/service/ refComp/client/src/main/java/fr/inra/refcomp/client/service/Level.java refComp/client/src/main/java/fr/inra/refcomp/client/service/LoginService.java refComp/client/src/main/java/fr/inra/refcomp/client/service/LoginServiceAsync.java refComp/client/src/main/java/fr/inra/refcomp/client/service/LoginServiceImpl.java refComp/client/src/main/java/fr/inra/refcomp/client/service/SearchService.java refComp/client/src/main/java/fr/inra/refcomp/client/service/SearchServiceAsync.java refComp/client/src/main/java/fr/inra/refcomp/client/service/SearchServiceImpl.java refComp/client/src/main/java/fr/inra/refcomp/client/service/Skill.java Removed: refComp/client/src/main/java/fr/inra/refcomp/client/example1/ refComp/client/src/main/java/fr/inra/refcomp/client/services/ refComp/client/src/main/java/fr/inra/refcomp/service/ Modified: refComp/client/pom.xml refComp/client/src/main/java/fr/inra/refcomp/RefComp.gwt.xml refComp/client/src/main/java/fr/inra/refcomp/client/Login.java refComp/client/src/main/java/fr/inra/refcomp/client/Search.java refComp/client/src/main/java/fr/inra/refcomp/client/SearchResults.java refComp/client/src/main/java/fr/inra/refcomp/client/constants/Header.java refComp/client/src/main/webapp/WEB-INF/web.xml Modified: refComp/client/pom.xml =================================================================== --- refComp/client/pom.xml 2010-11-04 10:57:18 UTC (rev 9) +++ refComp/client/pom.xml 2010-11-04 15:31:32 UTC (rev 10) @@ -32,12 +32,6 @@ </dependency> <dependency> - <groupId>org.gwtmultipage</groupId> - <artifactId>gwtmultipage-core</artifactId> - <version>1.0.0.Beta5</version> - </dependency> - - <dependency> <groupId>fr.inra.refcomp</groupId> <artifactId>services</artifactId> <version>0.1-SNAPSHOT</version> Modified: refComp/client/src/main/java/fr/inra/refcomp/RefComp.gwt.xml =================================================================== --- refComp/client/src/main/java/fr/inra/refcomp/RefComp.gwt.xml 2010-11-04 10:57:18 UTC (rev 9) +++ refComp/client/src/main/java/fr/inra/refcomp/RefComp.gwt.xml 2010-11-04 15:31:32 UTC (rev 10) @@ -6,6 +6,8 @@ <inherits name='com.google.gwt.user.User'/> <inherits name="com.google.gwt.uibinder.UiBinder"/> + <inherits name="fr.inra.refcomp.Services"/> + <!-- inherit css based theme --> <inherits name='com.google.gwt.user.theme.standard.Standard'/> Modified: refComp/client/src/main/java/fr/inra/refcomp/client/Login.java =================================================================== --- refComp/client/src/main/java/fr/inra/refcomp/client/Login.java 2010-11-04 10:57:18 UTC (rev 9) +++ refComp/client/src/main/java/fr/inra/refcomp/client/Login.java 2010-11-04 15:31:32 UTC (rev 10) @@ -18,8 +18,8 @@ import com.google.gwt.user.client.ui.TextBox; import fr.inra.refcomp.client.constants.Header; import fr.inra.refcomp.client.resources.Style; -import fr.inra.refcomp.client.services.LoginService; -import fr.inra.refcomp.client.services.LoginServiceAsync; +import fr.inra.refcomp.client.service.LoginService; +import fr.inra.refcomp.client.service.LoginServiceAsync; /** * User: couteau Added: refComp/client/src/main/java/fr/inra/refcomp/client/MySkills.java =================================================================== --- refComp/client/src/main/java/fr/inra/refcomp/client/MySkills.java (rev 0) +++ refComp/client/src/main/java/fr/inra/refcomp/client/MySkills.java 2010-11-04 15:31:32 UTC (rev 10) @@ -0,0 +1,97 @@ +package fr.inra.refcomp.client; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.dom.client.StyleInjector; +import com.google.gwt.event.dom.client.ClickEvent; +import com.google.gwt.event.dom.client.ClickHandler; +import com.google.gwt.uibinder.client.UiBinder; +import com.google.gwt.uibinder.client.UiField; +import com.google.gwt.uibinder.client.UiTemplate; +import com.google.gwt.user.client.Window; +import com.google.gwt.user.client.rpc.AsyncCallback; +import com.google.gwt.user.client.ui.Button; +import com.google.gwt.user.client.ui.Composite; +import com.google.gwt.user.client.ui.HorizontalPanel; +import com.google.gwt.user.client.ui.Panel; +import com.google.gwt.user.client.ui.VerticalPanel; +import fr.inra.refcomp.client.resources.Style; +import fr.inra.refcomp.client.service.SearchServiceAsync; +import fr.inra.refcomp.client.service.Skill; +import fr.inra.refcomp.client.service.SearchService; +import java.util.List; + +/** + * User: couteau + * Date: 4 nov. 2010 + */ +public class MySkills extends Composite { + + private final SearchServiceAsync searchService = GWT + .create(SearchService.class); + + @UiTemplate("MySkills.ui.xml") + interface MyUiBinder extends UiBinder<Panel, MySkills> { + } + + private static final MyUiBinder binder = GWT.create(MyUiBinder.class); + + @UiField(provided = true) + final Style res; + + private static boolean stylesInjected = false; + + @UiField + VerticalPanel skillsList; + + public MySkills() { + this.res = GWT.create(Style.class); + + // Inject only once. + if (!stylesInjected) { + StyleInjector.injectStylesheet(res.style().getText()); + stylesInjected = true; + } + + initWidget(binder.createAndBindUi(this)); + + //Use here the searchService that return a skill. Replace this with + //a real service. + searchService.search("toto", + new AsyncCallback<List<Skill>>() { + @Override + public void onFailure(Throwable caught) { + Window.alert("Server communication error"); + } + + @Override + public void onSuccess(List<Skill> result) { + + skillsList.clear(); + + for(Skill skill:result){ + + final HorizontalPanel skillPanel = new HorizontalPanel(); + + final SkillEditionRow row = new SkillEditionRow(skill); + + skillPanel.add(row); + + final Button removeButton = new Button("Remove"); + + removeButton.addClickHandler(new ClickHandler() { + public void onClick(ClickEvent event) { + skillPanel.remove(row); + skillPanel.remove(removeButton); + } + }); + + skillPanel.add(removeButton); + + skillsList.add(skillPanel); + } + } + }); + + } + +} \ No newline at end of file Added: refComp/client/src/main/java/fr/inra/refcomp/client/MySkills.ui.xml =================================================================== --- refComp/client/src/main/java/fr/inra/refcomp/client/MySkills.ui.xml (rev 0) +++ refComp/client/src/main/java/fr/inra/refcomp/client/MySkills.ui.xml 2010-11-04 15:31:32 UTC (rev 10) @@ -0,0 +1,24 @@ +<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' + xmlns:gwt='urn:import:com.google.gwt.user.client.ui'> + + <ui:with field='res' type='fr.inra.refcomp.client.resources.Style'/> + + <gwt:HTMLPanel> + + <div align="center"> + <gwt:VerticalPanel styleName="{res.style.background}"> + <gwt:HorizontalPanel verticalAlignment="ALIGN_MIDDLE"> + <gwt:Label text="My Skills : " + styleName="{res.style.greyText}"/> + <gwt:Label ui:field="searchedLabel" text="Hervé Richard" + styleName="{res.style.greyText}"/> + </gwt:HorizontalPanel> + + <gwt:VerticalPanel ui:field="skillsList"/> + + <gwt:Button ui:field="addButton" text="Add a skill"/> + + </gwt:VerticalPanel> + </div> + </gwt:HTMLPanel> +</ui:UiBinder> \ No newline at end of file Modified: refComp/client/src/main/java/fr/inra/refcomp/client/Search.java =================================================================== --- refComp/client/src/main/java/fr/inra/refcomp/client/Search.java 2010-11-04 10:57:18 UTC (rev 9) +++ refComp/client/src/main/java/fr/inra/refcomp/client/Search.java 2010-11-04 15:31:32 UTC (rev 10) @@ -13,11 +13,10 @@ import com.google.gwt.user.client.ui.Panel; import com.google.gwt.user.client.ui.RootPanel; import com.google.gwt.user.client.ui.TextBox; -import fr.inra.refcomp.client.constants.Header; import fr.inra.refcomp.client.resources.Style; -import fr.inra.refcomp.client.services.SearchService; -import fr.inra.refcomp.client.services.SearchServiceAsync; -import fr.inra.refcomp.service.Skill; +import fr.inra.refcomp.client.service.SearchService; +import fr.inra.refcomp.client.service.SearchServiceAsync; +import fr.inra.refcomp.client.service.Skill; import java.util.List; /** Modified: refComp/client/src/main/java/fr/inra/refcomp/client/SearchResults.java =================================================================== --- refComp/client/src/main/java/fr/inra/refcomp/client/SearchResults.java 2010-11-04 10:57:18 UTC (rev 9) +++ refComp/client/src/main/java/fr/inra/refcomp/client/SearchResults.java 2010-11-04 15:31:32 UTC (rev 10) @@ -9,7 +9,7 @@ import com.google.gwt.user.client.ui.Grid; import com.google.gwt.user.client.ui.Panel; import fr.inra.refcomp.client.resources.Style; -import fr.inra.refcomp.service.Skill; +import fr.inra.refcomp.client.service.Skill; import java.util.List; /** Added: refComp/client/src/main/java/fr/inra/refcomp/client/SkillEditionRow.java =================================================================== --- refComp/client/src/main/java/fr/inra/refcomp/client/SkillEditionRow.java (rev 0) +++ refComp/client/src/main/java/fr/inra/refcomp/client/SkillEditionRow.java 2010-11-04 15:31:32 UTC (rev 10) @@ -0,0 +1,103 @@ +package fr.inra.refcomp.client; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.dom.client.StyleInjector; +import com.google.gwt.uibinder.client.UiBinder; +import com.google.gwt.uibinder.client.UiField; +import com.google.gwt.uibinder.client.UiTemplate; +import com.google.gwt.user.client.ui.Composite; +import com.google.gwt.user.client.ui.Label; +import com.google.gwt.user.client.ui.ListBox; +import com.google.gwt.user.client.ui.Panel; +import com.google.gwt.user.client.ui.TextBox; +import fr.inra.refcomp.client.resources.Style; +import fr.inra.refcomp.client.service.Level; +import fr.inra.refcomp.client.service.Skill; +import java.util.ArrayList; +import java.util.List; + +/** + * User: couteau + * Date: 4 nov. 2010 + */ +public class SkillEditionRow extends Composite { + + List<String> levels = new ArrayList<String>(); + + @UiTemplate("SkillEditionRow.ui.xml") + interface MyUiBinder extends UiBinder<Panel, SkillEditionRow> { + } + + private static final MyUiBinder binder = GWT.create(MyUiBinder.class); + + @UiField(provided = true) + final Style res; + + private static boolean stylesInjected = false; + + private Skill editedSkill; + + @UiField + Label skill; + + @UiField + Label linkedSkill; + + @UiField + ListBox levelListBox; + + @UiField + TextBox commentBox; + + @UiField + Label rightLabel; + + public SkillEditionRow() { + this.res = GWT.create(Style.class); + + init(); + } + + public SkillEditionRow(Skill skill) { + this.res = GWT.create(Style.class); + + init(); + + setSkill(skill); + } + + protected void init(){ + + // Inject only once. + if (!stylesInjected) { + StyleInjector.injectStylesheet(res.style().getText()); + stylesInjected = true; + } + + initWidget(binder.createAndBindUi(this)); + + populateLevelList(); + } + + public void setSkill(Skill skill){ + + editedSkill = skill; + + this.skill.setText(editedSkill.getSkill()); + this.linkedSkill.setText(editedSkill.getLinkedSkill()); + this.levelListBox.setSelectedIndex(levels.indexOf(editedSkill.getLevel())); + this.commentBox.setText(editedSkill.getComment()); + this.rightLabel.setText(editedSkill.getRight()); + + } + + protected void populateLevelList(){ + levels = new ArrayList<String>(); + + for (Level level: Level.values()){ + levels.add(level.getLabel()); + levelListBox.addItem(level.getLabel()); + } + + } +} Added: refComp/client/src/main/java/fr/inra/refcomp/client/SkillEditionRow.ui.xml =================================================================== --- refComp/client/src/main/java/fr/inra/refcomp/client/SkillEditionRow.ui.xml (rev 0) +++ refComp/client/src/main/java/fr/inra/refcomp/client/SkillEditionRow.ui.xml 2010-11-04 15:31:32 UTC (rev 10) @@ -0,0 +1,18 @@ +<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' + xmlns:gwt='urn:import:com.google.gwt.user.client.ui'> + + <ui:with field='res' type='fr.inra.refcomp.client.resources.Style'/> + + <gwt:HorizontalPanel verticalAlignment="ALIGN_MIDDLE"> + <gwt:Label ui:field="skill" styleName="{res.style.greyText}"/> + <gwt:Label text="Linked skill : " styleName="{res.style.greyText}"/> + <gwt:Label ui:field="linkedSkill" styleName="{res.style.greyText}"/> + <gwt:Button ui:field="editLinkedSkill" text="Edit"/> + <gwt:Label text="Level : "/> + <gwt:ListBox ui:field="levelListBox" visibleItemCount="1"/> + <gwt:Label text="Comment : "/> + <gwt:TextBox ui:field="commentBox"/> + <gwt:Label text="Right : "/> + <gwt:Label ui:field="rightLabel"/> + </gwt:HorizontalPanel> +</ui:UiBinder> \ No newline at end of file Modified: refComp/client/src/main/java/fr/inra/refcomp/client/constants/Header.java =================================================================== --- refComp/client/src/main/java/fr/inra/refcomp/client/constants/Header.java 2010-11-04 10:57:18 UTC (rev 9) +++ refComp/client/src/main/java/fr/inra/refcomp/client/constants/Header.java 2010-11-04 15:31:32 UTC (rev 10) @@ -12,6 +12,7 @@ import com.google.gwt.user.client.ui.Panel; import com.google.gwt.user.client.ui.RootPanel; import fr.inra.refcomp.client.Login; +import fr.inra.refcomp.client.MySkills; import fr.inra.refcomp.client.resources.Style; /** @@ -59,7 +60,12 @@ @UiHandler("buttonMySkills") void doClickMySkills(ClickEvent event) { - Window.alert("Not implemented yet"); + + RootPanel content = RootPanel.get("content"); + + content.clear(); + + content.add(new MySkills()); } @UiHandler("buttonAdminSkills") Added: refComp/client/src/main/java/fr/inra/refcomp/client/service/Level.java =================================================================== --- refComp/client/src/main/java/fr/inra/refcomp/client/service/Level.java (rev 0) +++ refComp/client/src/main/java/fr/inra/refcomp/client/service/Level.java 2010-11-04 15:31:32 UTC (rev 10) @@ -0,0 +1,22 @@ +package fr.inra.refcomp.client.service; + +/** + * User: couteau + * Date: 4 nov. 2010 + */ +public enum Level { + HELP("I need help"), + ALONE("I can be alone"), + CANHELP("I can help"), + CANFORM("I can teach others"); + + private final String label; + + Level(String label){ + this.label=label; + } + + public String getLabel(){ + return label; + } +} Added: refComp/client/src/main/java/fr/inra/refcomp/client/service/LoginService.java =================================================================== --- refComp/client/src/main/java/fr/inra/refcomp/client/service/LoginService.java (rev 0) +++ refComp/client/src/main/java/fr/inra/refcomp/client/service/LoginService.java 2010-11-04 15:31:32 UTC (rev 10) @@ -0,0 +1,14 @@ +package fr.inra.refcomp.client.service; + +import com.google.gwt.user.client.rpc.RemoteService; +import com.google.gwt.user.client.rpc.RemoteServiceRelativePath; + +/** + * User: couteau + * Date: 4 nov. 2010 + */ +@RemoteServiceRelativePath("login") +public interface LoginService extends RemoteService { + Boolean login(String login, String password); +} + Added: refComp/client/src/main/java/fr/inra/refcomp/client/service/LoginServiceAsync.java =================================================================== --- refComp/client/src/main/java/fr/inra/refcomp/client/service/LoginServiceAsync.java (rev 0) +++ refComp/client/src/main/java/fr/inra/refcomp/client/service/LoginServiceAsync.java 2010-11-04 15:31:32 UTC (rev 10) @@ -0,0 +1,12 @@ +package fr.inra.refcomp.client.service; + +import com.google.gwt.user.client.rpc.AsyncCallback; + +/** + * User: couteau + * Date: 4 nov. 2010 + */ +public interface LoginServiceAsync { + void login(String login, String password, AsyncCallback<Boolean> callback); +} + Added: refComp/client/src/main/java/fr/inra/refcomp/client/service/LoginServiceImpl.java =================================================================== --- refComp/client/src/main/java/fr/inra/refcomp/client/service/LoginServiceImpl.java (rev 0) +++ refComp/client/src/main/java/fr/inra/refcomp/client/service/LoginServiceImpl.java 2010-11-04 15:31:32 UTC (rev 10) @@ -0,0 +1,19 @@ +package fr.inra.refcomp.client.service; + +import com.google.gwt.user.server.rpc.RemoteServiceServlet; + +/** + * User: couteau + * Date: 4 nov. 2010 + */ +public class LoginServiceImpl extends RemoteServiceServlet implements + LoginService { + + public Boolean login(String login, String password) { + if (login.equals("admin") && password.equals("admin")) + return true; + else + return false; + } +} + Added: refComp/client/src/main/java/fr/inra/refcomp/client/service/SearchService.java =================================================================== --- refComp/client/src/main/java/fr/inra/refcomp/client/service/SearchService.java (rev 0) +++ refComp/client/src/main/java/fr/inra/refcomp/client/service/SearchService.java 2010-11-04 15:31:32 UTC (rev 10) @@ -0,0 +1,15 @@ +package fr.inra.refcomp.client.service; + +import com.google.gwt.user.client.rpc.RemoteService; +import com.google.gwt.user.client.rpc.RemoteServiceRelativePath; +import java.util.List; + +/** + * User: couteau + * Date: 4 nov. 2010 + */ +@RemoteServiceRelativePath("search") +public interface SearchService extends RemoteService { + + List<Skill> search(String searchSentence); +} Added: refComp/client/src/main/java/fr/inra/refcomp/client/service/SearchServiceAsync.java =================================================================== --- refComp/client/src/main/java/fr/inra/refcomp/client/service/SearchServiceAsync.java (rev 0) +++ refComp/client/src/main/java/fr/inra/refcomp/client/service/SearchServiceAsync.java 2010-11-04 15:31:32 UTC (rev 10) @@ -0,0 +1,12 @@ +package fr.inra.refcomp.client.service; + +import com.google.gwt.user.client.rpc.AsyncCallback; +import java.util.List; + +/** + * User: couteau + * Date: 4 nov. 2010 + */ +public interface SearchServiceAsync { + void search(String searchSentence, AsyncCallback<List<Skill>> callback); +} Added: refComp/client/src/main/java/fr/inra/refcomp/client/service/SearchServiceImpl.java =================================================================== --- refComp/client/src/main/java/fr/inra/refcomp/client/service/SearchServiceImpl.java (rev 0) +++ refComp/client/src/main/java/fr/inra/refcomp/client/service/SearchServiceImpl.java 2010-11-04 15:31:32 UTC (rev 10) @@ -0,0 +1,26 @@ +package fr.inra.refcomp.client.service; + +import com.google.gwt.user.server.rpc.RemoteServiceServlet; +import java.util.ArrayList; +import java.util.List; + +/** + * User: couteau + * Date: 4 nov. 2010 + */ +public class SearchServiceImpl extends RemoteServiceServlet implements + SearchService { + + List<Skill> searchResults; + + public List<Skill> search(String searchSentence) { + + searchResults = new ArrayList<Skill>(); + + searchResults.add(new Skill("Hervé Richard", "Java",Level.CANFORM.getLabel(), "Enfin pas trop quand même", "R", "CIAM")); + + return searchResults; + } + + +} \ No newline at end of file Added: refComp/client/src/main/java/fr/inra/refcomp/client/service/Skill.java =================================================================== --- refComp/client/src/main/java/fr/inra/refcomp/client/service/Skill.java (rev 0) +++ refComp/client/src/main/java/fr/inra/refcomp/client/service/Skill.java 2010-11-04 15:31:32 UTC (rev 10) @@ -0,0 +1,77 @@ +package fr.inra.refcomp.client.service; + +import java.io.Serializable; + +/** + * User: couteau + * Date: 3 nov. 2010 + */ +public class Skill implements Serializable { + + public Skill(){} + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getLevel() { + return level; + } + + public void setLevel(String level) { + this.level = level; + } + + public String getComment() { + return comment; + } + + public void setComment(String comment) { + this.comment = comment; + } + + public String getLinkedSkill() { + return linkedSkill; + } + + public void setLinkedSkill(String linkedSkill) { + this.linkedSkill = linkedSkill; + } + + public String getRight() { + return right; + } + + public void setRight(String right) { + this.right = right; + } + + protected String name; + + public String getSkill() { + return skill; + } + + public void setSkill(String skill) { + this.skill = skill; + } + + protected String skill; + protected String level; + protected String comment; + protected String linkedSkill; + protected String right; + + public Skill(String name, String skill, String level, String comment, String linkedSkill, String right){ + this.skill=skill; + this.name=name; + this.level=level; + this.comment=comment; + this.linkedSkill=linkedSkill; + this.right=right; + } +} Modified: refComp/client/src/main/webapp/WEB-INF/web.xml =================================================================== --- refComp/client/src/main/webapp/WEB-INF/web.xml 2010-11-04 10:57:18 UTC (rev 9) +++ refComp/client/src/main/webapp/WEB-INF/web.xml 2010-11-04 15:31:32 UTC (rev 10) @@ -9,28 +9,19 @@ <welcome-file>index.html</welcome-file> </welcome-file-list> - <!--servlet> - <servlet-name>SkillService</servlet-name> - <servlet-class>fr.inra.refcomp.service.SkillServiceImpl - </servlet-class> - </servlet> - <servlet-mapping> - <servlet-name>SkillService</servlet-name> - <url-pattern>/fr.inra.refcomp.RefComp/skillService</url-pattern> - </servlet-mapping--> - <servlet> <servlet-name>LoginService</servlet-name> - <servlet-class>fr.inra.refcomp.service.LoginServiceImpl + <servlet-class>fr.inra.refcomp.client.service.LoginServiceImpl </servlet-class> </servlet> <servlet-mapping> <servlet-name>LoginService</servlet-name> <url-pattern>/fr.inra.refcomp.RefComp/login</url-pattern> </servlet-mapping> + <servlet> <servlet-name>SearchService</servlet-name> - <servlet-class>fr.inra.refcomp.service.SearchServiceImpl + <servlet-class>fr.inra.refcomp.client.service.SearchServiceImpl </servlet-class> </servlet> <servlet-mapping>
participants (1)
-
jcouteau@users.chorem.org