Author: jcouteau Date: 2010-12-01 11:01:29 +0100 (Wed, 01 Dec 2010) New Revision: 22 Url: http://chorem.org/repositories/revision/incubator/22 Log: First huge, real commit First admin screen : Frequencies Added: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/cati/ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/cati/AdminCati.java refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/cati/AdminCati.ui.xml refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/cati/CatiForm.java refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/cati/CatiForm.ui.xml refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/frequencies/ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/frequencies/AdminFrequencies.java refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/frequencies/AdminFrequencies.ui.xml refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/frequencies/FrequenciesForm.java refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/frequencies/FrequenciesForm.ui.xml refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/skills/ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/skills/AdminSkills.java refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/skills/AdminSkills.ui.xml refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/skills/SkillForm.java refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/skills/SkillForm.ui.xml refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/skills/TreeItemCallback.java refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/skills/TreeRootCallback.java refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/users/ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/users/AdminUsers.java refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/users/AdminUsers.ui.xml refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/users/UserForm.java refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/users/UserForm.ui.xml refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/constants/Form.java refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/constants/Form.ui.xml refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/constants/FormContent.java refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/StorageService.java refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/StorageServiceAsync.java refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/server/StorageServiceImpl.java refComp/skills-client/src/main/resources/skills.properties refComp/skills-entities/src/main/xmi/refcomp.zargo refComp/skills-services/src/main/java/org/chorem/bonzoms/skills/services/AlreadyExistingException.java refComp/skills-services/src/main/java/org/chorem/bonzoms/skills/services/ServiceFactory.java refComp/skills-services/src/main/java/org/chorem/bonzoms/skills/services/SkillsConfiguration.java refComp/skills-services/src/main/java/org/chorem/bonzoms/skills/services/SkillsConfigurationHelper.java refComp/skills-services/src/main/java/org/chorem/bonzoms/skills/services/SkillsException.java refComp/skills-services/src/main/java/org/chorem/bonzoms/skills/services/SkillsSession.java refComp/skills-services/src/main/java/org/chorem/bonzoms/skills/services/StorageService.java refComp/skills-services/src/main/java/org/chorem/bonzoms/skills/services/StorageServiceImpl.java refComp/skills-services/src/main/resources/log4j.properties Removed: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/AdminUsers.java refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/AdminUsers.ui.xml refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/Level.java refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/LoginService.java refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/LoginServiceAsync.java refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/SearchService.java refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/SearchServiceAsync.java refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/Skill.java refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/UserService.java refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/UserServiceAsync.java refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/server/LoginServiceImpl.java refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/server/SearchServiceImpl.java refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/server/UserServiceImpl.java refComp/skills-entities/src/main/xmi/UseCaseINRA-RefComp.zargo Modified: refComp/pom.xml refComp/skills-client/pom.xml refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/RefComp.gwt.xml refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/Login.java refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/MySkills.java refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/Search.java refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/SearchResults.java refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/SkillEditionRow.java refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/constants/Footer.java refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/constants/Header.java refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/constants/Menu.java refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/constants/Menu.ui.xml refComp/skills-client/src/main/webapp/WEB-INF/web.xml refComp/skills-entities/pom.xml refComp/skills-entities/src/main/java/org/chorem/bonzoms/skills/Entities.gwt.xml refComp/skills-services/pom.xml Modified: refComp/pom.xml =================================================================== --- refComp/pom.xml 2010-11-18 13:56:42 UTC (rev 21) +++ refComp/pom.xml 2010-12-01 10:01:29 UTC (rev 22) @@ -68,7 +68,8 @@ <!-- libraries version --> <gwtVersion>2.1.0</gwtVersion> <wikittyVersion>3.0-SNAPSHOT</wikittyVersion> - <generatorPluginVersion>2.2</generatorPluginVersion> + <generatorPluginVersion>2.3-SNAPSHOT</generatorPluginVersion> + <slf4jVersion>1.6.1</slf4jVersion> </properties> <dependencyManagement> @@ -97,6 +98,11 @@ </dependency> <dependency> <groupId>org.nuiton.wikitty</groupId> + <artifactId>wikitty-dto</artifactId> + <version>${wikittyVersion}</version> + </dependency> + <dependency> + <groupId>org.nuiton.wikitty</groupId> <artifactId>wikitty-jdbc-impl</artifactId> <version>${wikittyVersion}</version> </dependency> @@ -136,6 +142,28 @@ <version>1.5.3</version> </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-api</artifactId> + <version>${slf4jVersion}</version> + <scope>runtime</scope> + </dependency> + + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-log4j12</artifactId> + <version>${slf4jVersion}</version> + <scope>runtime</scope> + </dependency> + + <dependency> + <groupId>javax.servlet</groupId> + <artifactId>servlet-api</artifactId> + <version>2.4</version> + <scope>provided</scope> + </dependency> + + <!-- Comment, not maven packaged --> <!--dependency> <groupId>com.spiral</groupId> @@ -185,7 +213,7 @@ </executions> <configuration> <hostedWebapp>src/main/webapp</hostedWebapp> - <runTarget>org.chorem.bonzoms.skills.client.RefComp/RefComp.html</runTarget> + <runTarget>org.chorem.bonzoms.skills.RefComp/RefComp.html</runTarget> <noServer>false</noServer> </configuration> </plugin> @@ -220,6 +248,11 @@ <artifactId>wikitty-generators</artifactId> <version>${wikittyVersion}</version> </dependency> + <dependency> + <groupId>org.nuiton.wikitty</groupId> + <artifactId>wikitty-dto</artifactId> + <version>${wikittyVersion}</version> + </dependency> </dependencies> </plugin> Modified: refComp/skills-client/pom.xml =================================================================== --- refComp/skills-client/pom.xml 2010-11-18 13:56:42 UTC (rev 21) +++ refComp/skills-client/pom.xml 2010-12-01 10:01:29 UTC (rev 22) @@ -45,40 +45,53 @@ </dependency> <dependency> + <groupId>org.chorem.bonzoms.skills</groupId> + <artifactId>skills-services</artifactId> + <version>${project.version}</version> + </dependency> + + <dependency> <groupId>org.nuiton.wikitty</groupId> <artifactId>wikitty-api</artifactId> <version>${wikittyVersion}</version> <classifier>sources</classifier> </dependency> - <dependency> - <groupId>com.google.code.gwtx</groupId> - <artifactId>gwtx</artifactId> - </dependency> + <dependency> + <groupId>org.nuiton.wikitty</groupId> + <artifactId>wikitty-api</artifactId> + </dependency> - <!-- Not maven packaged --> <!--dependency> - <groupId>com.spiral</groupId> - <artifactId>gwt-calendar</artifactId> + <groupId>org.nuiton.wikitty</groupId> + <artifactId>wikitty-dto</artifactId> + <version>${wikittyVersion}</version> + <classifier>sources</classifier> </dependency--> - <!-- Useless tries --> - <!--dependency> - <groupId>com.smartgwt</groupId> - <artifactId>smartgwt</artifactId> + <dependency> + <groupId>org.nuiton.wikitty</groupId> + <artifactId>wikitty-dto</artifactId> </dependency> <dependency> - <groupId>org.gwtwidget</groupId> - <artifactId>gwt-widget</artifactId> - <type>war</type> + <groupId>com.google.code.gwtx</groupId> + <artifactId>gwtx</artifactId> </dependency> <dependency> - <groupId>pl.rmalinowski</groupId> - <artifactId>gwtreflect</artifactId> - </dependency--> + <groupId>org.json</groupId> + <artifactId>json</artifactId> + <version>20090211</version> + </dependency> + <dependency> + <groupId>javax.validation</groupId> + <artifactId>validation-api</artifactId> + <version>1.0.0.GA</version> + </dependency> + + </dependencies> <!-- ************************************************************* --> Modified: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/RefComp.gwt.xml =================================================================== --- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/RefComp.gwt.xml 2010-11-18 13:56:42 UTC (rev 21) +++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/RefComp.gwt.xml 2010-12-01 10:01:29 UTC (rev 22) @@ -6,26 +6,24 @@ <inherits name='com.google.gwt.user.User'/> <inherits name="com.google.gwt.uibinder.UiBinder"/> <inherits name="org.chorem.bonzoms.skills.Entities"/> + <inherits name="org.chorem.bonzoms.skills.SkillsService"/> <!--Wikitty dependency--> <inherits name="org.nuiton.WikittyAPI"/> + <!--inherits name="org.nuiton.WikittyDTO"/--> <!--gwtx dependency--> <inherits name="com.googlecode.gwtx.Java"/> - <!--gwt-calendar dependancy--> - <inherits name='com.spiral.gwt-calendar'/> - - <!--inherits name="com.smartgwt.SmartGwt"/--> - <!-- inherit css based theme --> - <inherits name='com.google.gwt.user.theme.standard.Standard'/> + <!--inherits name='com.google.gwt.user.theme.standard.Standard'/--> <!-- Specify the app entry point class. --> <entry-point class='org.chorem.bonzoms.skills.client.RefComp'/> + <stylesheet src='refcomp.css'/> + <source path="client"/> - <source path="service"/> <public path="public"/> <public path="client"/> Deleted: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/AdminUsers.java =================================================================== --- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/AdminUsers.java 2010-11-18 13:56:42 UTC (rev 21) +++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/AdminUsers.java 2010-12-01 10:01:29 UTC (rev 22) @@ -1,55 +0,0 @@ -package org.chorem.bonzoms.skills.client; - -import com.google.gwt.core.client.GWT; -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.Composite; -import com.google.gwt.user.client.ui.Label; -import com.google.gwt.user.client.ui.Panel; -import org.chorem.bonzoms.skills.client.services.UserService; -import org.chorem.bonzoms.skills.client.services.UserServiceAsync; -import org.chorem.bonzoms.skills.entities.User; -import org.chorem.bonzoms.skills.entities.UserImpl; - -/** - * User: couteau - * Date: 5 nov. 2010 - */ -public class AdminUsers extends Composite { - - /**private final UserServiceAsync userService = GWT - .create(UserService.class);**/ - - @UiTemplate("AdminUsers.ui.xml") - interface MyUiBinder extends UiBinder<Panel, AdminUsers> { - } - - @UiField - Label userName; - - private static final MyUiBinder binder = GWT.create(MyUiBinder.class); - - public AdminUsers() { - initWidget(binder.createAndBindUi(this)); - - User toto = new UserImpl(); - toto.setNom("Toto"); - - //userName.setText(toto.getNom()); - - /*userService.getUser(new AsyncCallback<User>() { - @Override - public void onFailure(Throwable caught) { - Window.alert("Server communication error"); - } - - @Override - public void onSuccess(User result) { - userName.setText(result.getNom()); - } - });*/ - } -} Deleted: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/AdminUsers.ui.xml =================================================================== --- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/AdminUsers.ui.xml 2010-11-18 13:56:42 UTC (rev 21) +++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/AdminUsers.ui.xml 2010-12-01 10:01:29 UTC (rev 22) @@ -1,13 +0,0 @@ -<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' - xmlns:gwt='urn:import:com.google.gwt.user.client.ui'> - - <ui:style src="refcomp.css"/> - - <gwt:HTMLPanel> - <div align="center"> - <gwt:HorizontalPanel verticalAlignment="ALIGN_MIDDLE"> - <gwt:Label ui:field="userName" styleName="{style.greyText}"/> - </gwt:HorizontalPanel> - </div> - </gwt:HTMLPanel> -</ui:UiBinder> \ No newline at end of file Modified: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/Login.java =================================================================== --- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/Login.java 2010-11-18 13:56:42 UTC (rev 21) +++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/Login.java 2010-12-01 10:01:29 UTC (rev 22) @@ -15,10 +15,9 @@ import com.google.gwt.user.client.ui.PasswordTextBox; import com.google.gwt.user.client.ui.RootPanel; import com.google.gwt.user.client.ui.TextBox; -import org.chorem.bonzoms.skills.client.constants.Header; import org.chorem.bonzoms.skills.client.constants.Menu; -import org.chorem.bonzoms.skills.client.services.LoginService; -import org.chorem.bonzoms.skills.client.services.LoginServiceAsync; +import org.chorem.bonzoms.skills.client.services.StorageService; +import org.chorem.bonzoms.skills.client.services.StorageServiceAsync; /** * User: couteau @@ -26,8 +25,8 @@ */ public class Login extends Composite { - private final LoginServiceAsync loginService = GWT - .create(LoginService.class); + private final StorageServiceAsync service = GWT + .create(StorageService.class); @UiTemplate("Login.ui.xml") interface MyUiBinder extends UiBinder<Panel, Login> { @@ -56,7 +55,7 @@ @UiHandler("buttonSubmit") void doClickSubmit(ClickEvent event) { if (tooShort) { - loginService.login(loginBox.getValue(), passwordBox.getValue(), + service.login(loginBox.getValue(), passwordBox.getValue(), new AsyncCallback<Boolean>() { @Override public void onFailure(Throwable caught) { Modified: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/MySkills.java =================================================================== --- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/MySkills.java 2010-11-18 13:56:42 UTC (rev 21) +++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/MySkills.java 2010-12-01 10:01:29 UTC (rev 22) @@ -13,10 +13,10 @@ 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 org.chorem.bonzoms.skills.client.services.Skill; -import org.chorem.bonzoms.skills.client.services.SearchServiceAsync; -import org.chorem.bonzoms.skills.client.services.SearchService; import java.util.List; +import org.chorem.bonzoms.skills.client.services.StorageService; +import org.chorem.bonzoms.skills.client.services.StorageServiceAsync; +import org.chorem.bonzoms.skills.entities.Skill; /** * User: couteau @@ -24,8 +24,8 @@ */ public class MySkills extends Composite { - private final SearchServiceAsync searchService = GWT - .create(SearchService.class); + private final StorageServiceAsync searchService = GWT + .create(StorageService.class); @UiTemplate("MySkills.ui.xml") interface MyUiBinder extends UiBinder<Panel, MySkills> { @@ -42,7 +42,7 @@ //Use here the searchService that return a skill. Replace this with //a real server. - searchService.search("toto", + /*searchService.search("toto", new AsyncCallback<List<Skill>>() { @Override public void onFailure(Throwable caught) { @@ -76,7 +76,7 @@ skillsList.add(skillPanel); } } - }); + });*/ } Modified: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/Search.java =================================================================== --- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/Search.java 2010-11-18 13:56:42 UTC (rev 21) +++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/Search.java 2010-12-01 10:01:29 UTC (rev 22) @@ -12,10 +12,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 org.chorem.bonzoms.skills.client.services.SearchService; -import org.chorem.bonzoms.skills.client.services.SearchServiceAsync; -import org.chorem.bonzoms.skills.client.services.Skill; import java.util.List; +import org.chorem.bonzoms.skills.client.services.StorageService; +import org.chorem.bonzoms.skills.client.services.StorageServiceAsync; +import org.chorem.bonzoms.skills.entities.Skill; /** * User: couteau @@ -23,8 +23,8 @@ */ public class Search extends Composite { - private final SearchServiceAsync searchService = GWT - .create(SearchService.class); + private final StorageServiceAsync searchService = GWT + .create(StorageService.class); @UiTemplate("Search.ui.xml") interface MyUiBinder extends UiBinder<Panel, Search> { @@ -41,7 +41,7 @@ @UiHandler("buttonSearch") void doClickSubmit(ClickEvent event) { - searchService.search(searchBox.getValue(), + /*searchService.search(searchBox.getValue(), new AsyncCallback<List<Skill>>() { @Override public void onFailure(Throwable caught) { @@ -60,7 +60,7 @@ resultPanel.setResults(result); } - }); + });*/ } Modified: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/SearchResults.java =================================================================== --- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/SearchResults.java 2010-11-18 13:56:42 UTC (rev 21) +++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/SearchResults.java 2010-12-01 10:01:29 UTC (rev 22) @@ -7,8 +7,8 @@ import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.Grid; import com.google.gwt.user.client.ui.Panel; -import org.chorem.bonzoms.skills.client.services.Skill; import java.util.List; +import org.chorem.bonzoms.skills.entities.Skill; /** * User: couteau @@ -49,10 +49,6 @@ resultsGrid.setText(i+1,0,skill.getName()); resultsGrid.setText(i+1,1,skill.getSkill()); - resultsGrid.setText(i+1,2,skill.getLinkedSkill()); - resultsGrid.setText(i+1,3,skill.getLevel()); - resultsGrid.setText(i+1,4,skill.getComment()); - resultsGrid.setText(i+1,5,skill.getRight()); } Modified: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/SkillEditionRow.java =================================================================== --- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/SkillEditionRow.java 2010-11-18 13:56:42 UTC (rev 21) +++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/SkillEditionRow.java 2010-12-01 10:01:29 UTC (rev 22) @@ -9,10 +9,10 @@ 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 org.chorem.bonzoms.skills.client.services.Level; -import org.chorem.bonzoms.skills.client.services.Skill; import java.util.ArrayList; import java.util.List; +import java.util.logging.Level; +import org.chorem.bonzoms.skills.entities.Skill; /** * User: couteau @@ -28,7 +28,7 @@ private static final MyUiBinder binder = GWT.create(MyUiBinder.class); - private Skill editedSkill; + protected Skill editedSkill; @UiField Label skill; @@ -64,20 +64,11 @@ 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/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/cati/AdminCati.java =================================================================== --- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/cati/AdminCati.java (rev 0) +++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/cati/AdminCati.java 2010-12-01 10:01:29 UTC (rev 22) @@ -0,0 +1,107 @@ +package org.chorem.bonzoms.skills.client.admin.cati; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.event.dom.client.ChangeEvent; +import com.google.gwt.event.dom.client.ChangeHandler; +import com.google.gwt.event.dom.client.ClickEvent; +import com.google.gwt.uibinder.client.UiBinder; +import com.google.gwt.uibinder.client.UiField; +import com.google.gwt.uibinder.client.UiHandler; +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.Composite; +import com.google.gwt.user.client.ui.ListBox; +import com.google.gwt.user.client.ui.Panel; +import java.util.List; +import org.chorem.bonzoms.skills.client.admin.frequencies.FrequenciesForm; +import org.chorem.bonzoms.skills.client.constants.Form; +import org.chorem.bonzoms.skills.client.services.StorageService; +import org.chorem.bonzoms.skills.client.services.StorageServiceAsync; +import org.chorem.bonzoms.skills.entities.Cati; + +/** + * User: couteau + * Date: 29 nov. 2010 + */ +public class AdminCati extends Composite { + + private final StorageServiceAsync service = GWT + .create(StorageService.class); + + @UiTemplate("AdminCati.ui.xml") + interface MyUiBinder extends UiBinder<Panel, AdminCati> { + } + + private static final MyUiBinder binder = GWT.create(MyUiBinder.class); + + @UiField + ListBox catiList; + + @UiField + Form form; + + @UiHandler("addButton") + void doClickAdd(ClickEvent event) { + service.createCati(new AsyncCallback<Cati>() { + @Override + public void onSuccess(Cati result) { + editedBean = result; + } + + @Override + public void onFailure(Throwable caught) { + Window.alert("Server communication error"); + } + }); + + form.setContent(editedBean, true); + } + + Cati editedBean; + + public AdminCati() { + initWidget(binder.createAndBindUi(this)); + + service.getCatis(new AsyncCallback<List<Cati>>() { + @Override + public void onSuccess(List<Cati> result) { + for (Cati cati : result) { + catiList.addItem(cati.getName(), + cati.getWikittyId()); + } + } + + @Override + public void onFailure(Throwable caught) { + Window.alert("Server communication error"); + } + }); + + FrequenciesForm freqForm = new FrequenciesForm(); + + form.setContentPanel(freqForm); + + catiList.addChangeHandler(new ChangeHandler() { + @Override + public void onChange(ChangeEvent event) { + + String beanId = catiList.getValue(catiList.getSelectedIndex()); + + service.getCati(beanId, new AsyncCallback<Cati>() { + @Override + public void onSuccess(Cati result) { + editedBean = result; + } + + @Override + public void onFailure(Throwable caught) { + Window.alert("Server communication error"); + } + }); + + form.setContent(editedBean, false); + } + }); + } +} Added: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/cati/AdminCati.ui.xml =================================================================== --- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/cati/AdminCati.ui.xml (rev 0) +++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/cati/AdminCati.ui.xml 2010-12-01 10:01:29 UTC (rev 22) @@ -0,0 +1,15 @@ +<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' + xmlns:gwt='urn:import:com.google.gwt.user.client.ui' + xmlns:sk='urn:import:org.chorem.bonzoms.skills.client.constants' + > + + <gwt:HTMLPanel> + <div> + <gwt:ListBox ui:field="catiList"/> + <gwt:Button ui:field="addButton">Add</gwt:Button> + </div> + <div> + <sk:Form ui:field="form"/> + </div> + </gwt:HTMLPanel> +</ui:UiBinder> \ No newline at end of file Added: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/cati/CatiForm.java =================================================================== --- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/cati/CatiForm.java (rev 0) +++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/cati/CatiForm.java 2010-12-01 10:01:29 UTC (rev 22) @@ -0,0 +1,131 @@ +package org.chorem.bonzoms.skills.client.admin.cati; + +import com.google.gwt.core.client.GWT; +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.Composite; +import com.google.gwt.user.client.ui.Label; +import com.google.gwt.user.client.ui.Panel; +import com.google.gwt.user.client.ui.TextBox; +import org.chorem.bonzoms.skills.client.constants.FormContent; +import org.chorem.bonzoms.skills.client.services.StorageService; +import org.chorem.bonzoms.skills.client.services.StorageServiceAsync; +import org.chorem.bonzoms.skills.entities.Cati; +import org.chorem.bonzoms.skills.services.AlreadyExistingException; +import org.nuiton.wikitty.entities.BusinessEntity; + +/** + * User: couteau + * Date: 29 nov. 2010 + */ +public class CatiForm extends Composite implements FormContent { + + private final StorageServiceAsync service = GWT + .create(StorageService.class); + + @UiTemplate("FrequenciesForm.ui.xml") + interface MyUiBinder extends UiBinder<Panel, CatiForm> { + } + + private static final MyUiBinder binder = GWT.create(MyUiBinder.class); + + @UiField + Label catiLabel; + + @UiField + TextBox nameBox; + + Cati bean; + + public CatiForm() { + initWidget(binder.createAndBindUi(this)); + } + + @Override + public void setContent(BusinessEntity bean) { + + if ((bean != null) && (bean instanceof Cati)) { + this.bean = (Cati) bean; + catiLabel.setText(this.bean.getName()); + nameBox.setText(this.bean.getName()); + } + + } + + @Override + public void clearContent() { + bean = null; + catiLabel.setText(""); + nameBox.setText(""); + } + + @Override + public BusinessEntity getContent() { + if (bean != null) { + bean.setName(nameBox.getText()); + } + + return bean; + } + + @Override + public void saveContent() { + + Boolean validate = Window.confirm("Are you sure ?"); + + if (validate) { + + try { + service.saveCati((Cati) getContent(), + new AsyncCallback<Cati>() { + @Override + public void onSuccess(Cati result) { + clearContent(); + } + + @Override + public void onFailure(Throwable caught) { + Window.alert("Server communication error"); + } + }); + } catch (AlreadyExistingException eee) { + Window.alert("A frequency with the same name already exist"); + } + } + } + + @Override + public void cancelContent() { + + Boolean validate = Window.confirm("Are you sure ?"); + + if (validate) { + clearContent(); + } + + } + + @Override + public void deleteContent() { + Boolean validate = Window.confirm("Are you sure ?"); + + if (validate) { + + service.deleteCati((Cati) getContent(), + new AsyncCallback<Void>() { + @Override + public void onSuccess(Void result) { + clearContent(); + } + + @Override + public void onFailure(Throwable caught) { + Window.alert("Server communication error"); + } + }); + } + } +} Added: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/cati/CatiForm.ui.xml =================================================================== --- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/cati/CatiForm.ui.xml (rev 0) +++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/cati/CatiForm.ui.xml 2010-12-01 10:01:29 UTC (rev 22) @@ -0,0 +1,9 @@ +<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' + xmlns:gwt='urn:import:com.google.gwt.user.client.ui'> + + <gwt:HTMLPanel> + <gwt:Label ui:field="catiLabel"/> + <p>Name :</p> + <gwt:TextBox ui:field="nameBox"/> + </gwt:HTMLPanel> +</ui:UiBinder> \ No newline at end of file Added: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/frequencies/AdminFrequencies.java =================================================================== --- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/frequencies/AdminFrequencies.java (rev 0) +++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/frequencies/AdminFrequencies.java 2010-12-01 10:01:29 UTC (rev 22) @@ -0,0 +1,106 @@ +package org.chorem.bonzoms.skills.client.admin.frequencies; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.event.dom.client.ChangeEvent; +import com.google.gwt.event.dom.client.ChangeHandler; +import com.google.gwt.event.dom.client.ClickEvent; +import com.google.gwt.uibinder.client.UiBinder; +import com.google.gwt.uibinder.client.UiField; +import com.google.gwt.uibinder.client.UiHandler; +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.Composite; +import com.google.gwt.user.client.ui.ListBox; +import com.google.gwt.user.client.ui.Panel; +import java.util.List; +import org.chorem.bonzoms.skills.client.constants.Form; +import org.chorem.bonzoms.skills.client.services.StorageService; +import org.chorem.bonzoms.skills.client.services.StorageServiceAsync; +import org.chorem.bonzoms.skills.entities.Frequency; + +/** + * User: couteau + * Date: 26 nov. 2010 + */ +public class AdminFrequencies extends Composite { + + protected static final StorageServiceAsync service = GWT + .create(StorageService.class); + + @UiTemplate("AdminFrequencies.ui.xml") + interface MyUiBinder extends UiBinder<Panel, AdminFrequencies> { + } + + private static final MyUiBinder binder = GWT.create(MyUiBinder.class); + + @UiField + static ListBox frequenciesList; + + @UiField + Form form; + + @UiHandler("addButton") + void doClickAdd(ClickEvent event) { + service.createFrequency(new AsyncCallback<Frequency>() { + @Override + public void onSuccess(Frequency result) { + form.setContent(result, true); + } + + @Override + public void onFailure(Throwable caught) { + Window.alert("Server communication error"); + } + }); + } + + public AdminFrequencies() { + initWidget(binder.createAndBindUi(this)); + + refresh(); + + FrequenciesForm freqForm = new FrequenciesForm(); + + form.setContentPanel(freqForm); + + frequenciesList.addChangeHandler(new ChangeHandler(){ + @Override + public void onChange(ChangeEvent event){ + + String beanId = frequenciesList.getValue(frequenciesList.getSelectedIndex()); + + service.getFrequency(beanId, new AsyncCallback<Frequency>() { + @Override + public void onSuccess(Frequency result) { + form.setContent(result, false); + } + + @Override + public void onFailure(Throwable caught) { + Window.alert("Server communication error"); + } + }); + + } + }); + } + + public static void refresh(){ + service.getFrequencies(new AsyncCallback<List<Frequency>>() { + @Override + public void onSuccess(List<Frequency> result) { + frequenciesList.clear(); + for (Frequency frequency : result) { + frequenciesList.addItem(frequency.getName(), + frequency.getWikittyId()); + } + } + + @Override + public void onFailure(Throwable caught) { + Window.alert("Server communication error"); + } + }); + } +} Added: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/frequencies/AdminFrequencies.ui.xml =================================================================== --- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/frequencies/AdminFrequencies.ui.xml (rev 0) +++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/frequencies/AdminFrequencies.ui.xml 2010-12-01 10:01:29 UTC (rev 22) @@ -0,0 +1,16 @@ +<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' + xmlns:gwt='urn:import:com.google.gwt.user.client.ui' + xmlns:sk='urn:import:org.chorem.bonzoms.skills.client.constants' + > + + <gwt:HTMLPanel> + <div> + <gwt:ListBox ui:field="frequenciesList" + visibleItemCount="10"/> + <gwt:Button ui:field="addButton">Add</gwt:Button> + </div> + <div> + <sk:Form ui:field="form"/> + </div> + </gwt:HTMLPanel> +</ui:UiBinder> \ No newline at end of file Added: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/frequencies/FrequenciesForm.java =================================================================== --- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/frequencies/FrequenciesForm.java (rev 0) +++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/frequencies/FrequenciesForm.java 2010-12-01 10:01:29 UTC (rev 22) @@ -0,0 +1,144 @@ +package org.chorem.bonzoms.skills.client.admin.frequencies; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.event.dom.client.KeyDownEvent; +import com.google.gwt.event.dom.client.KeyPressEvent; +import com.google.gwt.event.dom.client.KeyUpEvent; +import com.google.gwt.uibinder.client.UiBinder; +import com.google.gwt.uibinder.client.UiField; +import com.google.gwt.uibinder.client.UiHandler; +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.Composite; +import com.google.gwt.user.client.ui.Label; +import com.google.gwt.user.client.ui.Panel; +import com.google.gwt.user.client.ui.TextBox; +import org.chorem.bonzoms.skills.client.constants.FormContent; +import org.chorem.bonzoms.skills.client.services.StorageService; +import org.chorem.bonzoms.skills.client.services.StorageServiceAsync; +import org.chorem.bonzoms.skills.entities.Frequency; +import org.chorem.bonzoms.skills.services.AlreadyExistingException; +import org.nuiton.wikitty.entities.BusinessEntity; + +/** + * User: couteau + * Date: 27 nov. 2010 + */ +public class FrequenciesForm extends Composite implements FormContent { + + private final StorageServiceAsync service = GWT + .create(StorageService.class); + + @UiTemplate("FrequenciesForm.ui.xml") + interface MyUiBinder extends UiBinder<Panel, FrequenciesForm> { + } + + private static final MyUiBinder binder = GWT.create(MyUiBinder.class); + + @UiField + Label frequencyLabel; + + @UiField + TextBox nameBox; + + @UiHandler("nameBox") + void nameBoxValueChanged(KeyUpEvent event) { + frequencyLabel.setText(nameBox.getText()); + } + + Frequency bean; + + public FrequenciesForm() { + initWidget(binder.createAndBindUi(this)); + nameBox.setEnabled(false); + } + + @Override + public void setContent(BusinessEntity bean) { + if (bean instanceof Frequency) { + this.bean = (Frequency)bean; + frequencyLabel.setText(this.bean.getName()); + nameBox.setText(this.bean.getName()); + nameBox.setEnabled(true); + } else { + frequencyLabel.setText("Error"); + } + } + + @Override + public void clearContent() { + bean = null; + frequencyLabel.setText(""); + nameBox.setText(""); + nameBox.setEnabled(false); + } + + @Override + public BusinessEntity getContent() { + if (bean != null){ + bean.setName(nameBox.getText()); + } + return bean; + } + + @Override + public void saveContent() { + + Boolean validate = Window.confirm("Are you sure ?"); + + if (validate){ + + try { + service.saveFrequency((Frequency)getContent(), + new AsyncCallback<Frequency>() { + @Override + public void onSuccess(Frequency result) { + clearContent(); + AdminFrequencies.refresh(); + } + + @Override + public void onFailure(Throwable caught) { + Window.alert("Server communication error"); + } + }); + } catch (AlreadyExistingException eee){ + Window.alert("A frequency with the same name already exist"); + } + } + } + + @Override + public void cancelContent() { + + Boolean validate = Window.confirm("Are you sure ?"); + + if (validate){ + clearContent(); + } + + } + + @Override + public void deleteContent() { + Boolean validate = Window.confirm("Are you sure ?"); + + if (validate) { + + service.deleteFrequency((Frequency) getContent(), + new AsyncCallback<Void>() { + @Override + public void onSuccess(Void result) { + clearContent(); + AdminFrequencies.refresh(); + } + + @Override + public void onFailure(Throwable caught) { + Window.alert("Server communication error"); + } + }); + } + } +} Added: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/frequencies/FrequenciesForm.ui.xml =================================================================== --- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/frequencies/FrequenciesForm.ui.xml (rev 0) +++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/frequencies/FrequenciesForm.ui.xml 2010-12-01 10:01:29 UTC (rev 22) @@ -0,0 +1,9 @@ +<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' + xmlns:gwt='urn:import:com.google.gwt.user.client.ui'> + + <gwt:HTMLPanel> + <gwt:Label ui:field="frequencyLabel"/> + <p>Name : </p> + <gwt:TextBox ui:field="nameBox"/> + </gwt:HTMLPanel> +</ui:UiBinder> \ No newline at end of file Added: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/skills/AdminSkills.java =================================================================== --- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/skills/AdminSkills.java (rev 0) +++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/skills/AdminSkills.java 2010-12-01 10:01:29 UTC (rev 22) @@ -0,0 +1,73 @@ +package org.chorem.bonzoms.skills.client.admin.skills; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.event.logical.shared.OpenEvent; +import com.google.gwt.event.logical.shared.OpenHandler; +import com.google.gwt.event.logical.shared.SelectionEvent; +import com.google.gwt.event.logical.shared.SelectionHandler; +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.Panel; +import com.google.gwt.user.client.ui.Tree; +import com.google.gwt.user.client.ui.TreeItem; +import org.chorem.bonzoms.skills.client.constants.Form; +import org.chorem.bonzoms.skills.client.services.StorageService; +import org.chorem.bonzoms.skills.client.services.StorageServiceAsync; +import org.chorem.bonzoms.skills.entities.Skill; + +/** + * User: couteau + * Date: 30 nov. 2010 + */ +public class AdminSkills extends Composite { + + private final StorageServiceAsync service = GWT + .create(StorageService.class); + + @UiTemplate("AdminSkills.ui.xml") + interface MyUiBinder extends UiBinder<Panel, AdminSkills> { + } + + private static final MyUiBinder binder = GWT.create(MyUiBinder.class); + + @UiField + Tree skillsTree; + + @UiField + Form form; + + Skill editedBean; + + public AdminSkills() { + initWidget(binder.createAndBindUi(this)); + + //Tree loading at display + TreeItem root = new TreeItem("Loading..."); + skillsTree.addItem(root); + service.getChildrenSkill(null, new TreeRootCallback(skillsTree)); + skillsTree.addOpenHandler(new OpenHandler<TreeItem>() { + public void onOpen(OpenEvent event) { + if (needsLoading((TreeItem)event.getTarget())) { + service.getChildrenSkill(((TreeItem)event.getTarget()).getText(), + new TreeItemCallback((TreeItem)event.getTarget())); + } + } + + }); + + skillsTree.addSelectionHandler(new SelectionHandler<TreeItem>(){ + public void onSelection(SelectionEvent<TreeItem> event) { + editedBean = (Skill)skillsTree.getSelectedItem().getUserObject(); + + form.setContent(editedBean, false); + } + }); + } + + protected boolean needsLoading(TreeItem item) { + return item.getChildCount() == 1 + && "Loading...".equals(item.getChild(0).getText()); + } +} Added: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/skills/AdminSkills.ui.xml =================================================================== --- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/skills/AdminSkills.ui.xml (rev 0) +++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/skills/AdminSkills.ui.xml 2010-12-01 10:01:29 UTC (rev 22) @@ -0,0 +1,16 @@ +<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' + xmlns:gwt='urn:import:com.google.gwt.user.client.ui' + xmlns:sk='urn:import:org.chorem.bonzoms.skills.client.constants' + > + + <gwt:HTMLPanel> + <div> + <gwt:Tree ui:field="skillsTree"/> + <gwt:Button ui:field="addButton">Add</gwt:Button> + <gwt:Button ui:field="addChildButton">Add child</gwt:Button> + </div> + <div> + <sk:Form ui:field="form"/> + </div> + </gwt:HTMLPanel> +</ui:UiBinder> \ No newline at end of file Added: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/skills/SkillForm.java =================================================================== --- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/skills/SkillForm.java (rev 0) +++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/skills/SkillForm.java 2010-12-01 10:01:29 UTC (rev 22) @@ -0,0 +1,128 @@ +package org.chorem.bonzoms.skills.client.admin.skills; + +import com.google.gwt.core.client.GWT; +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.Composite; +import com.google.gwt.user.client.ui.Label; +import com.google.gwt.user.client.ui.Panel; +import com.google.gwt.user.client.ui.TextBox; +import org.chorem.bonzoms.skills.client.constants.FormContent; +import org.chorem.bonzoms.skills.client.services.StorageService; +import org.chorem.bonzoms.skills.client.services.StorageServiceAsync; +import org.chorem.bonzoms.skills.entities.Skill; +import org.chorem.bonzoms.skills.services.AlreadyExistingException; +import org.nuiton.wikitty.entities.BusinessEntity; + +/** + * User: couteau + * Date: 30 nov. 2010 + */ +public class SkillForm extends Composite implements FormContent { + + private final StorageServiceAsync service = GWT + .create(StorageService.class); + + @UiTemplate("SkillForm.ui.xml") + interface MyUiBinder extends UiBinder<Panel, SkillForm> { + } + + private static final MyUiBinder binder = GWT.create(MyUiBinder.class); + + @UiField + Label skillLabel; + + @UiField + TextBox skillBox; + + Skill bean; + + public SkillForm() { + initWidget(binder.createAndBindUi(this)); + } + + @Override + public void setContent(BusinessEntity bean) { + if ((bean != null) && (bean instanceof Skill)) { + this.bean = (Skill) bean; + + skillLabel.setText(this.bean.getName()); + skillBox.setText(this.bean.getName()); + } + } + + @Override + public void clearContent() { + bean = null; + + skillLabel.setText(""); + skillBox.setText(""); + } + + @Override + public BusinessEntity getContent() { + bean.setName(skillBox.getText()); + return bean; + } + + @Override + public void saveContent() { + + + Boolean validate = Window.confirm("Are you sure ?"); + + if (validate) { + + try { + service.saveSkill((Skill) getContent(), + new AsyncCallback<Skill>() { + @Override + public void onSuccess(Skill result) { + clearContent(); + } + + @Override + public void onFailure(Throwable caught) { + Window.alert("Server communication error"); + } + }); + } catch (AlreadyExistingException eee) { + Window.alert("A frequency with the same name already exist"); + } + } + } + + @Override + public void cancelContent() { + + Boolean validate = Window.confirm("Are you sure ?"); + + if (validate) { + clearContent(); + } + } + + @Override + public void deleteContent() { + Boolean validate = Window.confirm("Are you sure ?"); + + if (validate) { + + service.deleteSkill((Skill) getContent(), + new AsyncCallback<Void>() { + @Override + public void onSuccess(Void result) { + clearContent(); + } + + @Override + public void onFailure(Throwable caught) { + Window.alert("Server communication error"); + } + }); + } + } +} Added: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/skills/SkillForm.ui.xml =================================================================== --- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/skills/SkillForm.ui.xml (rev 0) +++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/skills/SkillForm.ui.xml 2010-12-01 10:01:29 UTC (rev 22) @@ -0,0 +1,9 @@ +<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' + xmlns:gwt='urn:import:com.google.gwt.user.client.ui'> + + <gwt:HTMLPanel> + <gwt:Label ui:field="skillLabel"/> + <p>Name :</p> + <gwt:TextBox ui:field="skillBox"/> + </gwt:HTMLPanel> +</ui:UiBinder> \ No newline at end of file Added: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/skills/TreeItemCallback.java =================================================================== --- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/skills/TreeItemCallback.java (rev 0) +++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/skills/TreeItemCallback.java 2010-12-01 10:01:29 UTC (rev 22) @@ -0,0 +1,34 @@ +package org.chorem.bonzoms.skills.client.admin.skills; + +import com.google.gwt.user.client.rpc.AsyncCallback; +import com.google.gwt.user.client.ui.TreeItem; +import java.util.ArrayList; +import java.util.List; +import org.chorem.bonzoms.skills.entities.Skill; + +/** + * User: couteau + * Date: 30 nov. 2010 + */ +public class TreeItemCallback implements AsyncCallback<List<Skill>> { + protected TreeItem treeItem; + + public TreeItemCallback(TreeItem treeItem) { + super(); + this.treeItem = treeItem; + } + + public void onFailure(Throwable caught) { + caught.printStackTrace(); + } + + public void onSuccess(List<Skill> skills) { + treeItem.removeItems(); + for (Skill skill : skills) { + TreeItem ti = new TreeItem(skill.getName()); + ti.setUserObject(skill); + ti.addItem("Loading..."); + treeItem.addItem(ti); + } + } +} Added: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/skills/TreeRootCallback.java =================================================================== --- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/skills/TreeRootCallback.java (rev 0) +++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/skills/TreeRootCallback.java 2010-12-01 10:01:29 UTC (rev 22) @@ -0,0 +1,36 @@ +package org.chorem.bonzoms.skills.client.admin.skills; + +import com.google.gwt.user.client.rpc.AsyncCallback; +import com.google.gwt.user.client.ui.Tree; +import com.google.gwt.user.client.ui.TreeItem; +import java.util.ArrayList; +import java.util.List; +import org.chorem.bonzoms.skills.entities.Skill; + +/** + * User: couteau + * Date: 30 nov. 2010 + */ +public class TreeRootCallback implements AsyncCallback<List<Skill>> { + + protected Tree browseTree; + + public TreeRootCallback(Tree browseTree) { + super(); + this.browseTree = browseTree; + } + + public void onFailure(Throwable caught) { + caught.printStackTrace(); + } + + public void onSuccess(List<Skill> skills) { + browseTree.removeItems(); + for (Skill skill : skills) { + TreeItem ti = new TreeItem(skill.getName()); + ti.setUserObject(skill); + ti.addItem("Loading..."); + browseTree.addItem(ti); + } + } +} Copied: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/users/AdminUsers.java (from rev 20, refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/AdminUsers.java) =================================================================== --- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/users/AdminUsers.java (rev 0) +++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/users/AdminUsers.java 2010-12-01 10:01:29 UTC (rev 22) @@ -0,0 +1,106 @@ +package org.chorem.bonzoms.skills.client.admin.users; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.event.dom.client.ChangeEvent; +import com.google.gwt.event.dom.client.ChangeHandler; +import com.google.gwt.event.dom.client.ClickEvent; +import com.google.gwt.uibinder.client.UiBinder; +import com.google.gwt.uibinder.client.UiField; +import com.google.gwt.uibinder.client.UiHandler; +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.Composite; +import com.google.gwt.user.client.ui.ListBox; +import com.google.gwt.user.client.ui.Panel; +import java.util.List; +import org.chorem.bonzoms.skills.client.constants.Form; +import org.chorem.bonzoms.skills.client.services.StorageService; +import org.chorem.bonzoms.skills.client.services.StorageServiceAsync; +import org.chorem.bonzoms.skills.entities.User; + +/** + * User: couteau + * Date: 5 nov. 2010 + */ +public class AdminUsers extends Composite { + + private final StorageServiceAsync service = GWT + .create(StorageService.class); + + @UiTemplate("AdminUsers.ui.xml") + interface MyUiBinder extends UiBinder<Panel, AdminUsers> { + } + + @UiField + ListBox usersList; + + @UiField + Form form; + + private static final MyUiBinder binder = GWT.create(MyUiBinder.class); + + @UiHandler("addButton") + void doClickAdd(ClickEvent event) { + service.createUser(new AsyncCallback<User>() { + @Override + public void onSuccess(User result) { + editedBean = result; + } + + @Override + public void onFailure(Throwable caught) { + Window.alert("Server communication error"); + } + }); + + form.setContent(editedBean, true); + } + + User editedBean; + + public AdminUsers() { + initWidget(binder.createAndBindUi(this)); + + service.getUsers(new AsyncCallback<List<User>>() { + @Override + public void onSuccess(List<User> result) { + for (User user : result) { + usersList.addItem(user.getFirstName() + user.getLastName(), + user.getWikittyId()); + } + } + + @Override + public void onFailure(Throwable caught) { + Window.alert("Server communication error"); + } + }); + + UserForm userForm = new UserForm(); + + form.setContentPanel(userForm); + + usersList.addChangeHandler(new ChangeHandler() { + @Override + public void onChange(ChangeEvent event) { + + String beanId = usersList.getValue(usersList.getSelectedIndex()); + + service.getUser(beanId, new AsyncCallback<User>() { + @Override + public void onSuccess(User result) { + editedBean = result; + } + + @Override + public void onFailure(Throwable caught) { + Window.alert("Server communication error"); + } + }); + + form.setContent(editedBean, false); + } + }); + } +} Copied: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/users/AdminUsers.ui.xml (from rev 17, refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/AdminUsers.ui.xml) =================================================================== --- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/users/AdminUsers.ui.xml (rev 0) +++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/users/AdminUsers.ui.xml 2010-12-01 10:01:29 UTC (rev 22) @@ -0,0 +1,15 @@ +<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' + xmlns:gwt='urn:import:com.google.gwt.user.client.ui' + xmlns:sk='urn:import:org.chorem.bonzoms.skills.client.constants' + > + + <gwt:HTMLPanel> + <div> + <gwt:ListBox ui:field="usersList"/> + <gwt:Button ui:field="addButton">Add</gwt:Button> + </div> + <div> + <sk:Form ui:field="form"/> + </div> + </gwt:HTMLPanel> +</ui:UiBinder> \ No newline at end of file Added: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/users/UserForm.java =================================================================== --- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/users/UserForm.java (rev 0) +++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/users/UserForm.java 2010-12-01 10:01:29 UTC (rev 22) @@ -0,0 +1,120 @@ +package org.chorem.bonzoms.skills.client.admin.users; + +import com.google.gwt.core.client.GWT; +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.PasswordTextBox; +import com.google.gwt.user.client.ui.TextBox; +import org.chorem.bonzoms.skills.client.constants.FormContent; +import org.chorem.bonzoms.skills.client.services.StorageService; +import org.chorem.bonzoms.skills.client.services.StorageServiceAsync; +import org.chorem.bonzoms.skills.entities.User; +import org.nuiton.wikitty.entities.BusinessEntity; + +/** + * User: couteau + * Date: 29 nov. 2010 + */ +public class UserForm extends Composite implements FormContent { + + private final StorageServiceAsync storageService = GWT + .create(StorageService.class); + + @UiTemplate("UserForm.ui.xml") + interface MyUiBinder extends UiBinder<Panel, UserForm> { + } + + private static final MyUiBinder binder = GWT.create(MyUiBinder.class); + + @UiField + Label userLabel; + + @UiField + TextBox lastNameBox; + + @UiField + TextBox firstNameBox; + + @UiField + TextBox loginBox; + + @UiField + PasswordTextBox passwordBox; + + @UiField + ListBox catiBox; + + @UiField + ListBox serviceBox; + + User bean; + + public UserForm() { + initWidget(binder.createAndBindUi(this)); + } + + @Override + public void setContent(BusinessEntity bean) { + if ((bean != null) && (bean instanceof User)) { + this.bean = (User) bean; + + populateCatiBox(); + populateServiceBox(); + + userLabel.setText(this.bean.getFirstName() + " " + + this.bean.getLastName()); + lastNameBox.setText(this.bean.getLastName()); + firstNameBox.setText(this.bean.getFirstName()); + loginBox.setText(this.bean.getLogin()); + passwordBox.setText(this.bean.getPassword()); + //selectCatiItem(this.bean.getCati()); + //selectServiceItem(this.bean.getService()); + + } + } + + @Override + public void clearContent() { + } + + @Override + public BusinessEntity getContent() { + return null; + } + + @Override + public void saveContent() { + } + + @Override + public void cancelContent() { + } + + @Override + public void deleteContent() { + } + + protected void populateCatiBox(){} + + protected void populateServiceBox(){} + + protected void selectCatiItem(String cati){ + for (int i=0;i<catiBox.getItemCount();i++){ + if (cati.equals(catiBox.getItemText(i))){ + catiBox.setSelectedIndex(i); + } + } + } + + protected void selectServiceItem(String service){ + for (int i=0;i<serviceBox.getItemCount();i++){ + if (service.equals(serviceBox.getItemText(i))){ + serviceBox.setSelectedIndex(i); + } + }} +} Added: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/users/UserForm.ui.xml =================================================================== --- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/users/UserForm.ui.xml (rev 0) +++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/admin/users/UserForm.ui.xml 2010-12-01 10:01:29 UTC (rev 22) @@ -0,0 +1,19 @@ +<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' + xmlns:gwt='urn:import:com.google.gwt.user.client.ui'> + + <gwt:HTMLPanel> + <gwt:Label ui:field="userLabel"/> + <p>Last Name :</p> + <gwt:TextBox ui:field="lastNameBox"/> + <p>First Name :</p> + <gwt:TextBox ui:field="firstNameBox"/> + <p>Login :</p> + <gwt:TextBox ui:field="loginBox"/> + <p>Password :</p> + <gwt:PasswordTextBox ui:field="passwordBox"/> + <p>Cati :</p> + <gwt:ListBox ui:field="catiBox"/> + <p>Service :</p> + <gwt:ListBox ui:field="serviceBox"/> + </gwt:HTMLPanel> +</ui:UiBinder> \ No newline at end of file Modified: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/constants/Footer.java =================================================================== --- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/constants/Footer.java 2010-11-18 13:56:42 UTC (rev 21) +++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/constants/Footer.java 2010-12-01 10:01:29 UTC (rev 22) @@ -1,9 +1,7 @@ package org.chorem.bonzoms.skills.client.constants; 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.Panel; Added: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/constants/Form.java =================================================================== --- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/constants/Form.java (rev 0) +++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/constants/Form.java 2010-12-01 10:01:29 UTC (rev 22) @@ -0,0 +1,72 @@ +package org.chorem.bonzoms.skills.client.constants; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.event.dom.client.ClickEvent; +import com.google.gwt.uibinder.client.UiBinder; +import com.google.gwt.uibinder.client.UiField; +import com.google.gwt.uibinder.client.UiHandler; +import com.google.gwt.uibinder.client.UiTemplate; +import com.google.gwt.user.client.ui.Composite; +import com.google.gwt.user.client.ui.FlowPanel; +import com.google.gwt.user.client.ui.Panel; +import org.nuiton.wikitty.entities.BusinessEntity; + +/** + * User: couteau + * Date: 26 nov. 2010 + */ +public class Form extends Composite { + + @UiTemplate("Form.ui.xml") + interface MyUiBinder extends UiBinder<Panel, Form> { + } + + private static final MyUiBinder binder = GWT.create(MyUiBinder.class); + + @UiField + protected FlowPanel contentPanel; + + protected FormContent content; + + protected Boolean creation; + + public Form() { + initWidget(binder.createAndBindUi(this)); + } + + public Form(FormContent contentPanel){ + this(); + setContentPanel(contentPanel); + } + + public void setContent(BusinessEntity bean, boolean creation){ + this.creation = creation; + content.setContent(bean); + } + + public void clearContent(){ + content.clearContent(); + } + + public void setContentPanel(FormContent contentPanel){ + this.contentPanel.clear(); + content = contentPanel; + this.contentPanel.add(content); + } + + @UiHandler("okButton") + void doClickOk(ClickEvent event) { + content.saveContent(); + } + + @UiHandler("cancelButton") + void doClickCancel(ClickEvent event) { + content.cancelContent(); + } + + @UiHandler("deleteButton") + void doClickDelete(ClickEvent event) { + content.deleteContent(); + } + +} \ No newline at end of file Added: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/constants/Form.ui.xml =================================================================== --- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/constants/Form.ui.xml (rev 0) +++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/constants/Form.ui.xml 2010-12-01 10:01:29 UTC (rev 22) @@ -0,0 +1,12 @@ +<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' + xmlns:gwt='urn:import:com.google.gwt.user.client.ui'> + + <gwt:HTMLPanel> + <gwt:FlowPanel ui:field="contentPanel"/> + <div> + <gwt:Button ui:field="okButton">Ok</gwt:Button> + <gwt:Button ui:field="cancelButton">Cancel</gwt:Button> + <gwt:Button ui:field="deleteButton">Delete</gwt:Button> + </div> + </gwt:HTMLPanel> +</ui:UiBinder> \ No newline at end of file Added: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/constants/FormContent.java =================================================================== --- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/constants/FormContent.java (rev 0) +++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/constants/FormContent.java 2010-12-01 10:01:29 UTC (rev 22) @@ -0,0 +1,26 @@ +package org.chorem.bonzoms.skills.client.constants; + +import com.google.gwt.user.client.ui.IsWidget; +import org.nuiton.wikitty.entities.BusinessEntity; + +/** + * + * Interface for all DefaultForm content. + * + * User: couteau + * Date: 27 nov. 2010 + */ +public interface FormContent extends IsWidget { + + void setContent(BusinessEntity bean); + + void clearContent(); + + BusinessEntity getContent(); + + void saveContent(); + + void cancelContent(); + + void deleteContent(); +} Modified: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/constants/Header.java =================================================================== --- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/constants/Header.java 2010-11-18 13:56:42 UTC (rev 21) +++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/constants/Header.java 2010-12-01 10:01:29 UTC (rev 22) @@ -1,17 +1,10 @@ package org.chorem.bonzoms.skills.client.constants; import com.google.gwt.core.client.GWT; -import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.uibinder.client.UiBinder; -import com.google.gwt.uibinder.client.UiHandler; import com.google.gwt.uibinder.client.UiTemplate; -import com.google.gwt.user.client.Window; import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.Panel; -import com.google.gwt.user.client.ui.RootPanel; -import org.chorem.bonzoms.skills.client.AdminUsers; -import org.chorem.bonzoms.skills.client.Login; -import org.chorem.bonzoms.skills.client.MySkills; /** * User: couteau Modified: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/constants/Menu.java =================================================================== --- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/constants/Menu.java 2010-11-18 13:56:42 UTC (rev 21) +++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/constants/Menu.java 2010-12-01 10:01:29 UTC (rev 22) @@ -12,11 +12,12 @@ import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.Panel; import com.google.gwt.user.client.ui.RootPanel; -import org.chorem.bonzoms.skills.client.AdminUsers; +import org.chorem.bonzoms.skills.client.admin.users.AdminUsers; import org.chorem.bonzoms.skills.client.Home; import org.chorem.bonzoms.skills.client.Login; import org.chorem.bonzoms.skills.client.MySkills; import org.chorem.bonzoms.skills.client.RefComp; +import org.chorem.bonzoms.skills.client.admin.frequencies.AdminFrequencies; /** * User: couteau @@ -77,6 +78,17 @@ History.newItem("mySkills"); } + @UiHandler("adminFrequencies") + void doClickAdminFrequencies(ClickEvent event) { + + RootPanel content = RootPanel.get("content"); + + content.clear(); + + content.add(new AdminFrequencies()); + History.newItem("adminFrequencies"); + } + @UiHandler("adminSkills") void doClickAdminSkills(ClickEvent event) { Modified: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/constants/Menu.ui.xml =================================================================== --- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/constants/Menu.ui.xml 2010-11-18 13:56:42 UTC (rev 21) +++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/constants/Menu.ui.xml 2010-12-01 10:01:29 UTC (rev 22) @@ -7,6 +7,7 @@ <li><gwt:Anchor ui:field="login" text="Login"/></li> <li><gwt:Anchor ui:field="mySkills" text="My Skills"/></li> <li><gwt:Anchor ui:field="adminSkills" text="Admin. Skills"/></li> + <li><gwt:Anchor ui:field="adminFrequencies" text="Admin. Frequencies"/></li> <li><gwt:Anchor ui:field="adminCati" text="Admin. Cati"/></li> <li><gwt:Anchor ui:field="adminServices" text="Admin. Services"/></li> <li><gwt:Anchor ui:field="adminUsers" text="Admin. Users"/></li> Deleted: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/Level.java =================================================================== --- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/Level.java 2010-11-18 13:56:42 UTC (rev 21) +++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/Level.java 2010-12-01 10:01:29 UTC (rev 22) @@ -1,22 +0,0 @@ -package org.chorem.bonzoms.skills.client.services; - -/** - * 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; - } -} Deleted: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/LoginService.java =================================================================== --- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/LoginService.java 2010-11-18 13:56:42 UTC (rev 21) +++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/LoginService.java 2010-12-01 10:01:29 UTC (rev 22) @@ -1,15 +0,0 @@ -package org.chorem.bonzoms.skills.client.services; - -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); -} - Deleted: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/LoginServiceAsync.java =================================================================== --- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/LoginServiceAsync.java 2010-11-18 13:56:42 UTC (rev 21) +++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/LoginServiceAsync.java 2010-12-01 10:01:29 UTC (rev 22) @@ -1,12 +0,0 @@ -package org.chorem.bonzoms.skills.client.services; - -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); -} - Deleted: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/SearchService.java =================================================================== --- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/SearchService.java 2010-11-18 13:56:42 UTC (rev 21) +++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/SearchService.java 2010-12-01 10:01:29 UTC (rev 22) @@ -1,15 +0,0 @@ -package org.chorem.bonzoms.skills.client.services; - -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); -} Deleted: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/SearchServiceAsync.java =================================================================== --- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/SearchServiceAsync.java 2010-11-18 13:56:42 UTC (rev 21) +++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/SearchServiceAsync.java 2010-12-01 10:01:29 UTC (rev 22) @@ -1,12 +0,0 @@ -package org.chorem.bonzoms.skills.client.services; - -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); -} Deleted: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/Skill.java =================================================================== --- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/Skill.java 2010-11-18 13:56:42 UTC (rev 21) +++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/Skill.java 2010-12-01 10:01:29 UTC (rev 22) @@ -1,77 +0,0 @@ -package org.chorem.bonzoms.skills.client.services; - -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; - } -} Added: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/StorageService.java =================================================================== --- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/StorageService.java (rev 0) +++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/StorageService.java 2010-12-01 10:01:29 UTC (rev 22) @@ -0,0 +1,60 @@ +package org.chorem.bonzoms.skills.client.services; + +import com.google.gwt.user.client.rpc.RemoteService; +import com.google.gwt.user.client.rpc.RemoteServiceRelativePath; +import java.util.List; +import org.chorem.bonzoms.skills.entities.Cati; +import org.chorem.bonzoms.skills.entities.Frequency; +import org.chorem.bonzoms.skills.entities.Skill; +import org.chorem.bonzoms.skills.entities.User; +import org.chorem.bonzoms.skills.services.AlreadyExistingException; + +/** + * User: couteau + * Date: 30 nov. 2010 + */ +@RemoteServiceRelativePath("storage") +public interface StorageService extends RemoteService{ + + List<Cati> getCatis(); + + Cati saveCati(Cati cati) throws AlreadyExistingException; + + Cati createCati(); + + Cati getCati(String id); + + void deleteCati(Cati cati); + + List<Frequency> getFrequencies(); + + Frequency saveFrequency(Frequency frequency) throws AlreadyExistingException; + + Frequency createFrequency(); + + Frequency getFrequency(String id); + + void deleteFrequency(Frequency frequency); + + List<User> getUsers(); + + User saveUser(User user) throws AlreadyExistingException; + + User createUser(); + + User getUser(String id); + + void deleteUser(User user); + + Boolean login(String login, String password); + + List<Skill> getChildrenSkill(String id); + + Skill saveSkill(Skill skill) throws AlreadyExistingException; + + Skill createSkill(); + + Skill getSkill(String id); + + void deleteSkill(Skill skill); +} Added: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/StorageServiceAsync.java =================================================================== --- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/StorageServiceAsync.java (rev 0) +++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/StorageServiceAsync.java 2010-12-01 10:01:29 UTC (rev 22) @@ -0,0 +1,62 @@ +package org.chorem.bonzoms.skills.client.services; + +import com.google.gwt.user.client.rpc.AsyncCallback; +import java.util.List; +import org.chorem.bonzoms.skills.entities.Cati; +import org.chorem.bonzoms.skills.entities.Frequency; +import org.chorem.bonzoms.skills.entities.Skill; +import org.chorem.bonzoms.skills.entities.User; +import org.chorem.bonzoms.skills.services.AlreadyExistingException; + +/** + * User: couteau + * Date: 30 nov. 2010 + */ +public interface StorageServiceAsync { + + void login(String login, String password, AsyncCallback<Boolean> callback); + + void getUsers(AsyncCallback<List<User>> callback); + + void saveUser(User user, AsyncCallback<User> callback) + throws AlreadyExistingException; + + void createUser(AsyncCallback<User> callback); + + void getUser(String id, AsyncCallback<User> callback); + + void deleteUser(User user, AsyncCallback<Void> callback); + + void getFrequencies(AsyncCallback<List<Frequency>> callback); + + void saveFrequency(Frequency frequency, AsyncCallback<Frequency> callback) + throws AlreadyExistingException; + + void createFrequency(AsyncCallback<Frequency> callback); + + void getFrequency(String id, AsyncCallback<Frequency> callback); + + void deleteFrequency(Frequency frequency, AsyncCallback<Void> callback); + + void getCatis(AsyncCallback<List<Cati>> callback); + + void saveCati(Cati cati, AsyncCallback<Cati> callback) + throws AlreadyExistingException; + + void createCati(AsyncCallback<Cati> callback); + + void getCati(String id, AsyncCallback<Cati> callback); + + void deleteCati(Cati cati, AsyncCallback<Void> callback); + + void getChildrenSkill(String id, AsyncCallback<List<Skill>> callback); + + void saveSkill(Skill skill, AsyncCallback<Skill> callback) + throws AlreadyExistingException; + + void createSkill(AsyncCallback<Skill> callback); + + void getSkill(String id, AsyncCallback<Skill> callback); + + void deleteSkill(Skill skill, AsyncCallback<Void> callback); +} Deleted: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/UserService.java =================================================================== --- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/UserService.java 2010-11-18 13:56:42 UTC (rev 21) +++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/UserService.java 2010-12-01 10:01:29 UTC (rev 22) @@ -1,13 +0,0 @@ -package org.chorem.bonzoms.skills.client.services; - -import com.google.gwt.user.client.rpc.RemoteService; -import org.chorem.bonzoms.skills.entities.User; - -/** - * User: couteau - * Date: 5 nov. 2010 - */ -public interface UserService extends RemoteService { - - User getUser(); -} Deleted: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/UserServiceAsync.java =================================================================== --- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/UserServiceAsync.java 2010-11-18 13:56:42 UTC (rev 21) +++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/UserServiceAsync.java 2010-12-01 10:01:29 UTC (rev 22) @@ -1,14 +0,0 @@ -package org.chorem.bonzoms.skills.client.services; - -import com.google.gwt.user.client.rpc.AsyncCallback; -import org.chorem.bonzoms.skills.entities.User; - -/** - * User: couteau - * Date: 5 nov. 2010 - */ -public interface UserServiceAsync { - - void getUser(AsyncCallback<User> user); - -} Deleted: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/server/LoginServiceImpl.java =================================================================== --- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/server/LoginServiceImpl.java 2010-11-18 13:56:42 UTC (rev 21) +++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/server/LoginServiceImpl.java 2010-12-01 10:01:29 UTC (rev 22) @@ -1,20 +0,0 @@ -package org.chorem.bonzoms.skills.server; - -import com.google.gwt.user.server.rpc.RemoteServiceServlet; -import org.chorem.bonzoms.skills.client.services.LoginService; - -/** - * 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; - } -} - Deleted: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/server/SearchServiceImpl.java =================================================================== --- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/server/SearchServiceImpl.java 2010-11-18 13:56:42 UTC (rev 21) +++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/server/SearchServiceImpl.java 2010-12-01 10:01:29 UTC (rev 22) @@ -1,29 +0,0 @@ -package org.chorem.bonzoms.skills.server; - -import com.google.gwt.user.server.rpc.RemoteServiceServlet; -import org.chorem.bonzoms.skills.client.services.Level; -import org.chorem.bonzoms.skills.client.services.SearchService; -import org.chorem.bonzoms.skills.client.services.Skill; -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/skills-client/src/main/java/org/chorem/bonzoms/skills/server/StorageServiceImpl.java =================================================================== --- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/server/StorageServiceImpl.java (rev 0) +++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/server/StorageServiceImpl.java 2010-12-01 10:01:29 UTC (rev 22) @@ -0,0 +1,108 @@ +package org.chorem.bonzoms.skills.server; + +import com.google.gwt.user.server.rpc.RemoteServiceServlet; +import java.util.List; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; +import org.chorem.bonzoms.skills.client.services.StorageService; +import org.chorem.bonzoms.skills.entities.Cati; +import org.chorem.bonzoms.skills.entities.Frequency; +import org.chorem.bonzoms.skills.entities.Skill; +import org.chorem.bonzoms.skills.entities.User; +import org.chorem.bonzoms.skills.services.AlreadyExistingException; +import org.chorem.bonzoms.skills.services.ServiceFactory; +import org.chorem.bonzoms.skills.services.SkillsSession; + +/** + * User: couteau + * Date: 30 nov. 2010 + */ +public class StorageServiceImpl extends RemoteServiceServlet implements + StorageService { + + public List<User> getUsers() { + return ServiceFactory.getStorageService(getSession()).getUsers(); + } + + public User saveUser(User user) throws AlreadyExistingException { + return ServiceFactory.getStorageService(getSession()).saveUser(user); + } + + public User createUser() { + return ServiceFactory.getStorageService(getSession()).createUser(); + } + + public void deleteUser(User user) { + ServiceFactory.getStorageService(getSession()).deleteUser(user); + } + + public User getUser(String id) { + return ServiceFactory.getStorageService(getSession()).getUser(id); + } + + public Boolean login(String login, String password) { + return login.equals("admin") && password.equals("admin"); + } + + public List<Frequency> getFrequencies() { + return ServiceFactory.getStorageService(getSession()).getFrequencies(); + } + + public Frequency saveFrequency(Frequency frequency) throws AlreadyExistingException { + return ServiceFactory.getStorageService(getSession()).saveFrequency(frequency); + } + + public Frequency createFrequency() { + return ServiceFactory.getStorageService(getSession()).createFrequency(); + } + + public void deleteFrequency(Frequency frequency) { + ServiceFactory.getStorageService(getSession()).deleteFrequency(frequency); + } + + public Frequency getFrequency(String id) { + return ServiceFactory.getStorageService(getSession()).getFrequency(id); + } + + public List<Cati> getCatis() { + return ServiceFactory.getStorageService(getSession()).getCatis(); + } + + public Cati saveCati(Cati cati) throws AlreadyExistingException { + return ServiceFactory.getStorageService(getSession()).saveCati(cati); + } + + public Cati createCati() { + return ServiceFactory.getStorageService(getSession()).createCati(); + } + + public void deleteCati(Cati cati) { + ServiceFactory.getStorageService(getSession()).deleteCati(cati); + } + + public Cati getCati(String id) { + return ServiceFactory.getStorageService(getSession()).getCati(id); + } + + public List<Skill> getChildrenSkill(String id) { + return ServiceFactory.getStorageService(getSession()).getChildrenSkill(id); + } + + /** + * Get the SkillsSession from the user session + * + * @return the user's session + */ + protected SkillsSession getSession(){ + HttpServletRequest request = this.getThreadLocalRequest(); + HttpSession session = request.getSession(); + + // If the session does not contain the session object, create a new SkillsSession + if (session.getAttribute("session") == null) { + session.setAttribute("session", new SkillsSession()); + } + + // Return the SkillsSession + return (SkillsSession) session.getAttribute("session"); + } +} Deleted: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/server/UserServiceImpl.java =================================================================== --- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/server/UserServiceImpl.java 2010-11-18 13:56:42 UTC (rev 21) +++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/server/UserServiceImpl.java 2010-12-01 10:01:29 UTC (rev 22) @@ -1,22 +0,0 @@ -package org.chorem.bonzoms.skills.server; - -import com.google.gwt.user.server.rpc.RemoteServiceServlet; -import org.chorem.bonzoms.skills.client.services.UserService; -import org.chorem.bonzoms.skills.entities.User; -import org.chorem.bonzoms.skills.entities.UserImpl; - -/** - * User: couteau - * Date: 5 nov. 2010 - */ -public class UserServiceImpl extends RemoteServiceServlet implements UserService{ - - public User getUser(){ - User testUser = new UserImpl(); - - testUser.setNom("Couteau"); - testUser.setPrenom("Jean"); - - return testUser; - } -} Added: refComp/skills-client/src/main/resources/skills.properties =================================================================== --- refComp/skills-client/src/main/resources/skills.properties (rev 0) +++ refComp/skills-client/src/main/resources/skills.properties 2010-12-01 10:01:29 UTC (rev 22) @@ -0,0 +1,24 @@ +#wikitty.storage.jdbc.queryfile=wikitty-jdbc-query.properties +#wikitty.storage.jdbc.driver=org.h2.Driver +wikitty.storage.jdbc.host=jdbc:h2:file:/tmp/skills/data/db +#wikitty.storage.jdbc.login=sa +#wikitty.storage.jdbc.password= +#wikitty.storage.jdbc.xadatasource=org.h2.jdbcx.JdbcDataSource +#wikitty.storage.jdbc.xadatasource.org.h2.jdbcx.JdbcDataSource.URL=${wikitty.storage.jdbc.host} +#wikitty.storage.jdbc.xadatasource.org.h2.jdbcx.JdbcDataSource.user=${wikitty.storage.jdbc.login} +#wikitty.storage.jdbc.xadatasource.org.h2.jdbcx.JdbcDataSource.password=${wikitty.storage.jdbc.password} +#wikitty.searchengine.solr.directory.factory=solr.RAMDirectoryFactory +#wikitty.WikittyService.components=org.nuiton.wikitty.services.WikittyServiceStorage,\ +#org.nuiton.wikitty.services.WikittyServiceCached, +#org.nuiton.wikitty.services.WikittyServiceSecurity +#wikitty.WikittyServiceStorage.components=org.nuiton.wikitty.jdbc.WikittyExtensionStorageJDBC,\ +#org.nuiton.wikitty.jdbc.WikittyStorageJDBC, +#org.nuiton.wikitty.solr.WikittySearchEnginSolr +#wikitty.addon.export.threadnumber=1 +#wikitty.addon.export.directory=/tmp/wikitty +#wikitty.addon.export.publicurl=file:///tmp/wikitty/ +#wikitty.service.cache.allwaysRestoreCopies=false +#wikitty.service.event.propagate=false +#wikitty.service.event.listen=false +solr.data.dir=/tmp/skills/solr +skills.objectStore.dir=/tmp/skills/data \ No newline at end of file Modified: refComp/skills-client/src/main/webapp/WEB-INF/web.xml =================================================================== --- refComp/skills-client/src/main/webapp/WEB-INF/web.xml 2010-11-18 13:56:42 UTC (rev 21) +++ refComp/skills-client/src/main/webapp/WEB-INF/web.xml 2010-12-01 10:01:29 UTC (rev 22) @@ -10,23 +10,13 @@ </welcome-file-list> <servlet> - <servlet-name>LoginService</servlet-name> - <servlet-class>org.chorem.bonzoms.skills.server.LoginServiceImpl + <servlet-name>StorageService</servlet-name> + <servlet-class>org.chorem.bonzoms.skills.server.StorageServiceImpl </servlet-class> </servlet> <servlet-mapping> - <servlet-name>LoginService</servlet-name> - <url-pattern>/org.chorem.bonzoms.skills.RefComp/login</url-pattern> + <servlet-name>StorageService</servlet-name> + <url-pattern>/org.chorem.bonzoms.skills.RefComp/storage</url-pattern> </servlet-mapping> - - <servlet> - <servlet-name>SearchService</servlet-name> - <servlet-class>org.chorem.bonzoms.skills.server.SearchServiceImpl - </servlet-class> - </servlet> - <servlet-mapping> - <servlet-name>SearchService</servlet-name> - <url-pattern>/org.chorem.bonzoms.skills.RefComp/search</url-pattern> - </servlet-mapping> </web-app> Modified: refComp/skills-entities/pom.xml =================================================================== --- refComp/skills-entities/pom.xml 2010-11-18 13:56:42 UTC (rev 21) +++ refComp/skills-entities/pom.xml 2010-12-01 10:01:29 UTC (rev 22) @@ -48,10 +48,6 @@ <executions> <execution> <id>api generator</id> - <!-- - do not use the phase generate-XXX because it can be excecuted - several times... - --> <phase>process-sources</phase> <configuration> <inputs> @@ -67,7 +63,8 @@ <generatedPackages>org.chorem.bonzoms.skills.entities </generatedPackages> <templates> - org.nuiton.wikitty.generator.WikittyMetaGenerator + org.nuiton.wikitty.generator.WikittyMetaGenerator, + org.nuiton.wikitty.generator.WikittyDTOGenerator </templates> </configuration> <goals> Modified: refComp/skills-entities/src/main/java/org/chorem/bonzoms/skills/Entities.gwt.xml =================================================================== --- refComp/skills-entities/src/main/java/org/chorem/bonzoms/skills/Entities.gwt.xml 2010-11-18 13:56:42 UTC (rev 21) +++ refComp/skills-entities/src/main/java/org/chorem/bonzoms/skills/Entities.gwt.xml 2010-12-01 10:01:29 UTC (rev 22) @@ -2,8 +2,9 @@ "http://google-web-toolkit.googlecode.com/svn/tags/1.6.2/distro-source/core/src/gwt-module.dtd"> <module> - <!-- Inherit the core Web Toolkit stuff. --> - <inherits name='com.google.gwt.user.User'/> - - <source path="entities"/> + <source path="entities"> + <exclude name="*Impl.java"/> + <exclude name="*Abstract.java"/> + <exclude name="*Helper.java"/> + </source> </module> \ No newline at end of file Deleted: refComp/skills-entities/src/main/xmi/UseCaseINRA-RefComp.zargo =================================================================== (Binary files differ) Added: refComp/skills-entities/src/main/xmi/refcomp.zargo =================================================================== (Binary files differ) Property changes on: refComp/skills-entities/src/main/xmi/refcomp.zargo ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Modified: refComp/skills-services/pom.xml =================================================================== --- refComp/skills-services/pom.xml 2010-11-18 13:56:42 UTC (rev 21) +++ refComp/skills-services/pom.xml 2010-12-01 10:01:29 UTC (rev 22) @@ -20,12 +20,43 @@ <dependencies> - <!-- GWT --> - <dependency> - <groupId>com.google.gwt</groupId> - <artifactId>gwt-user</artifactId> - </dependency> + <dependency> + <groupId>org.chorem.bonzoms.skills</groupId> + <artifactId>skills-entities</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.nuiton.wikitty</groupId> + <artifactId>wikitty-api</artifactId> + </dependency> + + <dependency> + <groupId>org.nuiton.wikitty</groupId> + <artifactId>wikitty-dto</artifactId> + </dependency> + + <dependency> + <groupId>org.nuiton.wikitty</groupId> + <artifactId>wikitty-jdbc-impl</artifactId> + </dependency> + + <dependency> + <groupId>org.nuiton.wikitty</groupId> + <artifactId>wikitty-solr-impl</artifactId> + </dependency> + + <!-- databases dependencies --> + <dependency> + <groupId>com.h2database</groupId> + <artifactId>h2</artifactId> + </dependency> + + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-log4j12</artifactId> + </dependency> + </dependencies> <!-- ************************************************************* --> Added: refComp/skills-services/src/main/java/org/chorem/bonzoms/skills/services/AlreadyExistingException.java =================================================================== --- refComp/skills-services/src/main/java/org/chorem/bonzoms/skills/services/AlreadyExistingException.java (rev 0) +++ refComp/skills-services/src/main/java/org/chorem/bonzoms/skills/services/AlreadyExistingException.java 2010-12-01 10:01:29 UTC (rev 22) @@ -0,0 +1,36 @@ +package org.chorem.bonzoms.skills.services; + +/** + * + * Exception to be thrown when an entity already exist in database and that only + * one of those entities is allowed. + * + * User: couteau + * Date: 26 nov. 2010 + */ +public class AlreadyExistingException extends SkillsException { + + public AlreadyExistingException() { + super(); + } + + /** + * Constructs a new exception with the specified detail message. + * + * @param message message + */ + public AlreadyExistingException(String message) { + super(message); + } + + /** + * Constructs a new exception with the specified detail message and cause. + * + * @param message + * @param cause + */ + public AlreadyExistingException(String message, Throwable cause) { + super(message, cause); + } + +} Added: refComp/skills-services/src/main/java/org/chorem/bonzoms/skills/services/ServiceFactory.java =================================================================== --- refComp/skills-services/src/main/java/org/chorem/bonzoms/skills/services/ServiceFactory.java (rev 0) +++ refComp/skills-services/src/main/java/org/chorem/bonzoms/skills/services/ServiceFactory.java 2010-12-01 10:01:29 UTC (rev 22) @@ -0,0 +1,98 @@ +package org.chorem.bonzoms.skills.services; + +import java.util.Locale; +import org.apache.commons.beanutils.ConvertUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.nuiton.i18n.I18n; +import org.nuiton.util.LocaleConverter; +import org.nuiton.util.converter.ConverterUtil; +import org.nuiton.wikitty.WikittyProxy; +import org.nuiton.wikitty.WikittyService; +import org.nuiton.wikitty.WikittyServiceFactory; + +/** + * User: couteau + * Date: 26 nov. 2010 + */ +public class ServiceFactory { + + /** + * Log. + */ + private static final Log log = LogFactory.getLog(ServiceFactory.class); + + /** + * Wikitty service (cached version) for remote access. + */ + protected static WikittyService wikittyService; + + /** + * Single instance of frequency service. + */ + protected static StorageService storageService; + + protected static SkillsConfiguration config; + + static { + // TODO JC 26/11/2010 Gotten from vradi, maybe better way to do it + // Dans un block static pour definition des variables + // d'environnement solr et jbossts + // A voir pourquoi, les converters s'initialise mal durant les tests + try { + + ConverterUtil.initConverters(); + ConvertUtils.register(new LocaleConverter(), Locale.class); + config = SkillsConfiguration.getInstance(); + I18n.init(SkillsConfigurationHelper.getLocale(config)); + } catch (Exception eee) { + log.error("Cant initialize Service factory : ", eee); + } + } + + public static synchronized StorageService getStorageService(SkillsSession session) { + if (storageService == null) { + storageService = new StorageServiceImpl(getProxy(session)); + } + return storageService; + } + + /** + * Creates wikitty service (cached). + * <p/> + * Constructor added for UI embedded mode, with custom configuration. + * + * @return a unique instance of WikittyService + */ + public static WikittyService getWikittyService() { + if (wikittyService == null) { + synchronized (ServiceFactory.class) { + if(wikittyService == null) { + wikittyService = WikittyServiceFactory.buildWikittyService(config); + } + } + } + + return wikittyService; + } + + /** + * Creates wikitty proxy. + * + * @return a unique instance of WikittyProxy. + */ + public static WikittyProxy getProxy(SkillsSession session) { + WikittyProxy proxy = session.getProxy(); + if (proxy == null) { + WikittyService service = getWikittyService(); + + // init proxy on cached service + proxy = new WikittyProxy(service); + session.setProxy(proxy); + + } + + return proxy; + } + +} Added: refComp/skills-services/src/main/java/org/chorem/bonzoms/skills/services/SkillsConfiguration.java =================================================================== --- refComp/skills-services/src/main/java/org/chorem/bonzoms/skills/services/SkillsConfiguration.java (rev 0) +++ refComp/skills-services/src/main/java/org/chorem/bonzoms/skills/services/SkillsConfiguration.java 2010-12-01 10:01:29 UTC (rev 22) @@ -0,0 +1,181 @@ +package org.chorem.bonzoms.skills.services; + +import java.io.File; +import java.util.Locale; +import org.apache.commons.lang.UnhandledException; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.nuiton.util.ApplicationConfig; +import org.nuiton.wikitty.WikittyConfig; + +import static org.nuiton.i18n.I18n._; + +/** + * User: couteau + * Date: 26 nov. 2010 + */ +public class SkillsConfiguration extends ApplicationConfig { + + /** + * log. + */ + private static final Log log = LogFactory.getLog(SkillsConfiguration.class); + + /** + * After init step. + */ + public static final int STEP_AFTER_INIT = 0; + + /** + * Singleton instance. + */ + protected static SkillsConfiguration instance = null; + + public static final String DATA_DEFAULT_DIR = "${user.home}" + File.separator + ".skills" + + File.separator + "skills-${application.version}"; + + protected SkillsConfiguration() { + super(); + + // Load defaults wikitty options + loadDefaultOptions(WikittyConfig.WikittyOption.class); + + // Load defaults vradi options + loadDefaultOptions(SkillsOption.class); + + } + + public static synchronized SkillsConfiguration getInstance(String... args) { + if (instance == null) { + try { + instance = new SkillsConfiguration(); + instance.parse(args); + // was done in parse before (but not good for tests) + instance.setSystemDefaultProps(); + } catch (Exception ex) { + if (log.isErrorEnabled()) { + log.error("Can't intitialize configuration", ex); + } + throw new UnhandledException(ex); + } + } + return instance; + } + + /** + * Set {@code solr} and {@code jms} system configuration. + * <p/> + * This is the "only" way to configure embedded solr. + */ + protected void setSystemDefaultProps() { + String[] datadirs = new String[]{"solr.data.dir", "skills.objectStore.dir"}; + + for (String datadir : datadirs) { + String value = System.getProperty(datadir, null); + if (value == null) { + value = getOption(datadir); + if (log.isInfoEnabled()) { + log.info("Setting system property " + datadir + " : " + value); + } + if (value != null) { + System.setProperty(datadir, value); + env.put(datadir, value); + } + } + } + } + + /** + * Vradi option definition. + */ + public static enum SkillsOption implements OptionDef { + + CONFIG_FILE( + CONFIG_FILE_NAME, + _("skills.config.configFileName.description"), + "skills.properties", + String.class, true, true), + + APPLICATION_VERSION( + "application.version", + _("skills.config.application.version.description"), + null, String.class, false, false), + + DATA_DIR( + "skills.data.dir", + _("skills.config.data.dir.description"), + DATA_DEFAULT_DIR, + String.class, false, false), + + LOCALE( + "skills.locale", + _("skills.config.ui.locale.description"), + Locale.FRANCE.toString(), Locale.class, false, false); + + public String key; + public String description; + public String defaultValue; + public Class<?> type; + public boolean isTransient; + public boolean isFinal; + + private SkillsOption(String key, String description, String defaultValue, + Class<?> type, boolean isTransient, boolean isFinal) { + this.key = key; + this.description = description; + this.defaultValue = defaultValue; + this.type = type; + this.isFinal = isFinal; + this.isTransient = isTransient; + } + + @Override + public String getKey() { + return key; + } + + @Override + public Class<?> getType() { + return type; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public String getDefaultValue() { + return defaultValue; + } + + @Override + public boolean isTransient() { + return isTransient; + } + + @Override + public boolean isFinal() { + return isFinal; + } + + @Override + public void setDefaultValue(String defaultValue) { + this.defaultValue = defaultValue; + } + + @Override + public void setTransient(boolean isTransient) { + this.isTransient = isTransient; + } + + @Override + public void setFinal(boolean isFinal) { + this.isFinal = isFinal; + } + + private static String getDefaultDir(String dirName) { + return DATA_DEFAULT_DIR + File.separator + dirName; + } + } +} \ No newline at end of file Added: refComp/skills-services/src/main/java/org/chorem/bonzoms/skills/services/SkillsConfigurationHelper.java =================================================================== --- refComp/skills-services/src/main/java/org/chorem/bonzoms/skills/services/SkillsConfigurationHelper.java (rev 0) +++ refComp/skills-services/src/main/java/org/chorem/bonzoms/skills/services/SkillsConfigurationHelper.java 2010-12-01 10:01:29 UTC (rev 22) @@ -0,0 +1,42 @@ +package org.chorem.bonzoms.skills.services; + +import java.io.File; +import java.util.Locale; +import java.util.Set; +import org.nuiton.util.ApplicationConfig; + +/** + * User: couteau + * Date: 26 nov. 2010 + */ +public class SkillsConfigurationHelper { + + /** + * Get current application version as string. + * + * @param config vradi service configuration + * @return version + */ + public static String getApplicationVersion(ApplicationConfig config) { + return config.getOption(SkillsConfiguration.SkillsOption.APPLICATION_VERSION.key); + } + + public static String getDataDir(ApplicationConfig config) { + String option = config.getOption(SkillsConfiguration.SkillsOption.DATA_DIR.key); + return option; + } + + public static File getDataDirAsFile(ApplicationConfig config) { + File option = config.getOptionAsFile(SkillsConfiguration.SkillsOption.DATA_DIR.key); + return option; + } + + public static Locale getLocale(ApplicationConfig config) { + Locale result = config.getOption(Locale.class, SkillsConfiguration.SkillsOption.LOCALE.key); + return result; + } + + public static void setLocale(ApplicationConfig config, Locale locale) { + config.setOption(SkillsConfiguration.SkillsOption.LOCALE.key, locale.toString()); + } +} Added: refComp/skills-services/src/main/java/org/chorem/bonzoms/skills/services/SkillsException.java =================================================================== --- refComp/skills-services/src/main/java/org/chorem/bonzoms/skills/services/SkillsException.java (rev 0) +++ refComp/skills-services/src/main/java/org/chorem/bonzoms/skills/services/SkillsException.java 2010-12-01 10:01:29 UTC (rev 22) @@ -0,0 +1,32 @@ +package org.chorem.bonzoms.skills.services; + +/** + * User: couteau + * Date: 26 nov. 2010 + */ +public class SkillsException extends Exception { + + public SkillsException() { + super(); + } + + /** + * Constructs a new exception with the specified detail message. + * + * @param message message + */ + public SkillsException(String message) { + super(message); + } + + /** + * Constructs a new exception with the specified detail message and cause. + * + * @param message + * @param cause + */ + public SkillsException(String message, Throwable cause) { + super(message, cause); + } + +} Added: refComp/skills-services/src/main/java/org/chorem/bonzoms/skills/services/SkillsSession.java =================================================================== --- refComp/skills-services/src/main/java/org/chorem/bonzoms/skills/services/SkillsSession.java (rev 0) +++ refComp/skills-services/src/main/java/org/chorem/bonzoms/skills/services/SkillsSession.java 2010-12-01 10:01:29 UTC (rev 22) @@ -0,0 +1,21 @@ +package org.chorem.bonzoms.skills.services; + +import org.nuiton.wikitty.WikittyProxy; + +/** + * User: couteau + * Date: 30 nov. 2010 + */ +public class SkillsSession { + + + WikittyProxy proxy; + + public WikittyProxy getProxy() { + return proxy; + } + + public void setProxy(WikittyProxy proxy) { + this.proxy = proxy; + } +} Added: refComp/skills-services/src/main/java/org/chorem/bonzoms/skills/services/StorageService.java =================================================================== --- refComp/skills-services/src/main/java/org/chorem/bonzoms/skills/services/StorageService.java (rev 0) +++ refComp/skills-services/src/main/java/org/chorem/bonzoms/skills/services/StorageService.java 2010-12-01 10:01:29 UTC (rev 22) @@ -0,0 +1,177 @@ +package org.chorem.bonzoms.skills.services; + +import java.util.List; +import org.chorem.bonzoms.skills.entities.Cati; +import org.chorem.bonzoms.skills.entities.Frequency; +import org.chorem.bonzoms.skills.entities.Skill; +import org.chorem.bonzoms.skills.entities.User; + +/** + * User: couteau + * Date: 30 nov. 2010 + */ +public interface StorageService { + + /** + * Get all the catis. + * + * @return a list containing all the catis. + */ + List<Cati> getCatis(); + + /** + * Save a cati in database. + * + * @param cati the cati to save + * @return the save cati + * @throws AlreadyExistingException if a cati with the same name already + * exist in database + */ + Cati saveCati(Cati cati) throws AlreadyExistingException; + + /** + * Return a new cati created in database. + * + * @return the new cati + */ + Cati createCati(); + + /** + * Delete a cati + * + * @param cati the cati to delete + */ + void deleteCati(Cati cati); + + /** + * Get a cati with its id + * + * @param id the cati to get's id + * @return the cati + */ + Cati getCati(String id); + + /** + * Get all the frequencies. + * + * @return a list containing all the frequencies. + */ + List<Frequency> getFrequencies(); + + /** + * Save a frequency in database. + * + * @param frequency the frequency to save + * @return the save frequency + * @throws AlreadyExistingException if a frequency with the same name already + * exist in database + */ + Frequency saveFrequency(Frequency frequency) throws AlreadyExistingException; + + /** + * Return a new frequency created in database. + * + * @return the new frequency + */ + Frequency createFrequency(); + + /** + * Delete a frequency + * + * @param frequency the frequency to delete + */ + void deleteFrequency(Frequency frequency); + + /** + * Get a frequency with its id + * + * @param id the frequency to get's id + * @return the frequency + */ + Frequency getFrequency(String id); + + /** + * Get all the users. + * + * @return a list containing all the users. + */ + List<User> getUsers(); + + /** + * Save a user in database. + * + * @param user the user to save + * @return the saved user + * @throws AlreadyExistingException if a user with the same name already + * exist in database + */ + User saveUser(User user) throws AlreadyExistingException; + + /** + * Return a new user created in database. + * + * @return the new user + */ + User createUser(); + + /** + * Delete a user + * + * @param user the user to delete + */ + void deleteUser(User user); + + /** + * Get a user with its id + * + * @param id the user to get's id + * @return the user + */ + User getUser(String id); + + /** + * Save a skill in database. + * + * @param skill the skill to save + * @return the saved user + * @throws AlreadyExistingException if a user with the same name already + * exist in database + */ + Skill saveSkill(Skill skill) throws AlreadyExistingException; + + /** + * Return a new user created in database. + * + * @return the new user + */ + Skill createSkill(); + + /** + * Delete a skill + * + * @param skill the skill to delete + */ + void deleteSkill(Skill skill); + + /** + * Get a skill with its id + * + * @param id the skill to get's id + * @return the skill + */ + Skill getSkill(String id); + + List<Skill> getChildrenSkill(String id); + + /** + * Log the user in + * @param login the user login + * @param password the user password + * @return true if logged in, false otherwise + */ + Boolean login(String login, String password); + + /*Boolean logout(String login); + + Boolean isLoggedIn();*/ +} Added: refComp/skills-services/src/main/java/org/chorem/bonzoms/skills/services/StorageServiceImpl.java =================================================================== --- refComp/skills-services/src/main/java/org/chorem/bonzoms/skills/services/StorageServiceImpl.java (rev 0) +++ refComp/skills-services/src/main/java/org/chorem/bonzoms/skills/services/StorageServiceImpl.java 2010-12-01 10:01:29 UTC (rev 22) @@ -0,0 +1,435 @@ +package org.chorem.bonzoms.skills.services; + +import java.util.ArrayList; +import java.util.List; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.chorem.bonzoms.skills.entities.Cati; +import org.chorem.bonzoms.skills.entities.CatiImpl; +import org.chorem.bonzoms.skills.entities.Frequency; +import org.chorem.bonzoms.skills.entities.FrequencyImpl; +import org.chorem.bonzoms.skills.entities.Skill; +import org.chorem.bonzoms.skills.entities.SkillImpl; +import org.chorem.bonzoms.skills.entities.User; +import org.chorem.bonzoms.skills.entities.UserImpl; +import org.nuiton.wikitty.WikittyProxy; +import org.nuiton.wikitty.search.Criteria; +import org.nuiton.wikitty.search.PagedResult; +import org.nuiton.wikitty.search.Search; +import org.nuiton.wikitty.search.operators.Element; +import org.nuiton.wikitty.dto.DTOHelper; + +/** + * User: couteau + * Date: 30 nov. 2010 + */ +public class StorageServiceImpl implements StorageService{ + + /** + * log. + */ + private static final Log log = LogFactory.getLog(StorageServiceImpl.class); + + WikittyProxy proxy; + + StorageServiceImpl(WikittyProxy proxy) { + this.proxy = proxy; + } + + /** + * Get all the catis. + * + * @return a list containing all the catis. + */ + public List<Cati> getCatis() { + + //Create criteria : everything that got the cati extension + Search search = Search.query().eq(Element.ELT_EXTENSION, Cati.EXT_CATI); + Criteria criteria = search.criteria(); + criteria.addSortAscending(Cati.FIELD_CATI_NAME); + + //get results + PagedResult<Cati> catiPagedResult = proxy.findAllByCriteria(Cati.class, criteria); + + List<Cati> catis = new ArrayList<Cati>(); + + if (catiPagedResult != null) { + for (Cati cati:catiPagedResult.getAll()){ + catis.add(DTOHelper.toDto(cati)); + } + } + + if (log.isDebugEnabled()) { + log.debug("Catis list : " + catis); + } + return catis; + } + + /** + * Save a cati in database. + * + * @param cati the cati to save + * @return the saved cati + * @throws AlreadyExistingException if a cati with the same name already + * exist in database + */ + public Cati saveCati(Cati cati) throws AlreadyExistingException { + + if (exist(cati)) { + throw new AlreadyExistingException("Cati with name " + + cati.getName() + " already exist in database"); + } + + Cati entity = DTOHelper.fromDto(proxy, Cati.class, cati); + Cati dto = DTOHelper.toDto(proxy.store(entity)); + + return dto; + } + + /** + * Return a new cati created in database. + * + * @return the new cati + */ + public Cati createCati() { + Cati cati = new CatiImpl(); + cati = DTOHelper.toDto(proxy.store(cati)); + return cati; + } + + /** + * Delete a cati + */ + public void deleteCati(Cati cati) { + proxy.delete(cati.getWikittyId()); + } + + /** + * Check if a cati is already present in database + * + * @param cati the cati to check + * @return true is exist, false otherwise + */ + protected boolean exist(Cati cati) { + boolean returnValue = false; + + if (cati != null) { + List<Cati> catis = getCatis(); + for (Cati cat : catis) { + if (cat.getName().equals(cat.getName())) { + returnValue = true; + } + } + } + + return returnValue; + } + + /** + * Get a cati from its id + * + * @param id the cati id + * @return the cati + */ + public Cati getCati(String id) { + + Cati cati = proxy.restore(Cati.class, id); + + return DTOHelper.toDto(cati); + } + + /** + * Get all the frequencies. + * + * @return a list containing all the frequencies. + */ + public List<Frequency> getFrequencies() { + + //Create criteria : everything that got frequency extension + Search search = Search.query().eq(Element.ELT_EXTENSION, Frequency.EXT_FREQUENCY); + Criteria criteria = search.criteria(); + + //get results + PagedResult<Frequency> frequenciesResult = proxy.findAllByCriteria(Frequency.class, criteria); + + List<Frequency> frequencies = new ArrayList<Frequency>(); + + //Fill in frequencies with dtos + if (frequenciesResult != null) { + log.debug("Frequencies size : " + frequenciesResult.size()); + for (Frequency frequency:frequenciesResult.getAll()){ + log.debug("adding a frequency to the list"); + frequencies.add(DTOHelper.toDto(frequency)); + } + } + + log.debug("Frequencies size : " + frequencies.size()); + + if (log.isDebugEnabled()) { + log.debug("Frequencies list : " + frequencies); + } + return frequencies; + } + + /** + * Save a frequency in database. + * + * @param frequency the frequency to save + * @return the saved frequency + * @throws AlreadyExistingException if a frequency with the same name already + * exist in database + */ + public Frequency saveFrequency(Frequency frequency) throws AlreadyExistingException { + + if (exist(frequency)) { + throw new AlreadyExistingException("Frequency with name " + + frequency.getName() + " already exist in database"); + } + + if (log.isDebugEnabled()){ + log.debug("Try to save frequency : " + frequency); + } + + Frequency returnFrequency = null; + + if (frequency !=null ){ + Frequency toSaveFrequency = DTOHelper.fromDto(proxy, Frequency.class,frequency); + if(log.isDebugEnabled()){ + log.debug("Try to save frequency : " + toSaveFrequency); + } + + Frequency storedFrequency = proxy.store(toSaveFrequency); + + if(log.isDebugEnabled()){ + log.debug("Saved frequency : " + storedFrequency); + } + + returnFrequency = DTOHelper.toDto(storedFrequency); + } + + return returnFrequency; + } + + /** + * Return a new frequency created in database. + * + * @return the new frequency + */ + public Frequency createFrequency() { + Frequency frequency = new FrequencyImpl(); + frequency = proxy.store(frequency); + + Frequency frequency1 = DTOHelper.toDto(frequency); + + if (log.isDebugEnabled()){ + log.debug("Frequency " + frequency1 +" created"); + } + + return frequency1; + } + + /** + * Delete a frequency + */ + public void deleteFrequency(Frequency frequency) { + proxy.delete(frequency.getWikittyId()); + } + + /** + * Get a frequency from its id + * + * @param id the frequency id + * @return the frequency + */ + public Frequency getFrequency(String id) { + Frequency frequencyResult = proxy.restore(Frequency.class, id); + return DTOHelper.toDto(frequencyResult); + } + + /** + * Get all the users. + * + * @return a list containing all the users. + */ + public List<User> getUsers() { + + //Create criteria : everything that got frequency extension + Search search = Search.query().eq(Element.ELT_EXTENSION, User.EXT_USER); + Criteria criteria = search.criteria(); + criteria.addSortAscending(User.FIELD_USER_FIRSTNAME); + + //get results + PagedResult<User> userPagedResult = proxy.findAllByCriteria(User.class, criteria); + + List<User> users = new ArrayList<User>(); + + if (userPagedResult != null) { + for (User user:userPagedResult.getAll()){ + users.add(DTOHelper.toDto(user)); + } + } + + if (log.isDebugEnabled()) { + log.debug("Users list : " + users); + } + return users; + } + + /** + * Save a user in database. + * + * @param user the user to save + * @return the saved user + * @throws AlreadyExistingException if a user with the same name already + * exist in database + */ + public User saveUser(User user) throws AlreadyExistingException { + + if (exist(user)) { + throw new AlreadyExistingException("User with login " + + user.getLogin() + " already exist in database"); + } + + User entity = DTOHelper.fromDto(proxy, User.class, user); + User dto = DTOHelper.toDto(proxy.store(entity)); + + return dto; + } + + /** + * Return a new user created in database. + * + * @return the new user + */ + public User createUser() { + User user = new UserImpl(); + user = proxy.store(user); + return DTOHelper.toDto(user); + } + + /** + * Delete a user + */ + public void deleteUser(User user) { + proxy.delete(user.getWikittyId()); + } + + /** + * Check if a user is already present in database + * + * @param user the user to check + * @return true is exist, false otherwise + */ + protected boolean exist(User user) { + boolean returnValue = false; + + if (user != null) { + List<User> users = getUsers(); + for (User user2 : users) { + if (user2.getLogin().equals(user2.getLogin())) { + returnValue = true; + } + } + } + + return returnValue; + } + + /** + * Get a user from its id + * + * @param id the user id + * @return the user + */ + public User getUser(String id) { + User user = proxy.restore(User.class, id); + return DTOHelper.toDto(user); + } + + @Override + public Skill saveSkill(Skill skill) throws AlreadyExistingException { + + if (exist(skill)) { + throw new AlreadyExistingException("Skill named " + + skill.getName() + " already exist in database"); + } + + Skill entity = DTOHelper.fromDto(proxy, Skill.class, skill); + Skill dto = DTOHelper.toDto(proxy.store(entity)); + + return dto; + } + + @Override + public Skill createSkill() { + Skill skill = new SkillImpl(); + skill = proxy.store(skill); + return DTOHelper.toDto(skill); + } + + @Override + public void deleteSkill(Skill skill) { + proxy.delete(skill.getWikittyId()); + } + + @Override + public Skill getSkill(String id) { + Skill skill = proxy.restore(Skill.class, id); + return DTOHelper.toDto(skill); + } + + protected Boolean exist(Skill skill){ + //TODO JC 2010/11/30 use this method in all exist methods. Group all exist methods in same place. + //Create criteria + Search search = Search.query().eq(Element.ELT_EXTENSION, Skill.EXT_SKILL) + .eq(Skill.FQ_FIELD_WIKITTYTREENODE_NAME,skill.getName()); + Criteria criteria = search.criteria(); + + //get results + PagedResult<Skill> skillPagedResult = proxy.findAllByCriteria(Skill.class, criteria); + + return (skillPagedResult.size()>0); + } + + protected Boolean exist(Frequency frequency) { + //Create criteria + Search search = Search.query().eq(Element.ELT_EXTENSION, Frequency.EXT_FREQUENCY) + .eq(Frequency.FQ_FIELD_FREQUENCY_NAME, frequency.getName()); + Criteria criteria = search.criteria(); + + //get results + PagedResult<Frequency> frequencyPagedResult = proxy.findAllByCriteria(Frequency.class, criteria); + + return (frequencyPagedResult.size() > 0); + } + + public Boolean login(String login, String password){ + proxy.login(login, password); + return true; + } + + public List<Skill> getChildrenSkill(String id) { + + //Create criteria : everything that got frequency extension + Search search = Search.query().eq(Element.ELT_EXTENSION, Skill.EXT_SKILL) + .eq(Skill.FQ_FIELD_WIKITTYTREENODE_PARENT,id); + Criteria criteria = search.criteria(); + criteria.addSortAscending(Skill.FQ_FIELD_WIKITTYTREENODE_NAME); + + //get results + PagedResult<Skill> skillPagedResult = proxy.findAllByCriteria(Skill.class, criteria); + + List<Skill> skills = new ArrayList<Skill>(); + + if (skillPagedResult != null) { + for (Skill skill:skillPagedResult.getAll()){ + skills.add(skill); + } + } + + if (log.isDebugEnabled()) { + log.debug("Skills list : " + skills); + } + return skills; + } +} Added: refComp/skills-services/src/main/resources/log4j.properties =================================================================== --- refComp/skills-services/src/main/resources/log4j.properties (rev 0) +++ refComp/skills-services/src/main/resources/log4j.properties 2010-12-01 10:01:29 UTC (rev 22) @@ -0,0 +1,22 @@ +# Global logging configuration +log4j.rootLogger=ERROR, stdout, file + +# Console output +log4j.appender.stdout=org.apache.log4j.ConsoleAppender +log4j.appender.stdout.layout=org.apache.log4j.PatternLayout +log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p %c - %m%n + +log4j.appender.file=org.apache.log4j.RollingFileAppender +log4j.appender.file.file=refcomp.log +log4j.appender.file.MaxFileSize=10MB +log4j.appender.file.MaxBackupIndex=4 +log4j.appender.file.layout=org.apache.log4j.PatternLayout +log4j.appender.file.layout.ConversionPattern=%d{ISO8601} %5p [%t] %c - %m%n + +# Vradi +log4j.logger.org.chorem.bonzoms.skills=DEBUG + +# Wikitty +log4j.logger.org.nuiton.wikitty=DEBUG + +log4j.logger.org.picocontainer=DEBUG \ No newline at end of file