/src/org/tela_botanica/del/client/Ressources.java |
---|
New file |
0,0 → 1,19 |
package org.tela_botanica.del.client; |
import com.google.gwt.resources.client.ClientBundle; |
import com.google.gwt.resources.client.ImageResource; |
/** |
* Resources used by the entire application. |
*/ |
public interface Ressources extends ClientBundle { |
@Source("logo.jpg") |
ImageResource logo(); |
@Source("flecheGauche.png") |
ImageResource arrowLeft(); |
@Source("flecheDroite.png") |
ImageResource arrowRight(); |
} |
/src/org/tela_botanica/del/client/i18n/Messages.java |
---|
New file |
0,0 → 1,17 |
package org.tela_botanica.del.client.i18n; |
/** |
* Interface to represent the constants contained in resource bundle: |
* 'D:/dev/svn/del/src/org/tela_botanica/del/client/i18n/Messages.properties'. |
*/ |
public interface Messages extends com.google.gwt.i18n.client.Constants { |
/** |
* Translated "Rechercher le taxon {0}". |
* |
* @return translated "Rechercher le taxon {0}" |
*/ |
@DefaultStringValue("Rechercher le taxon {0}") |
@Key("rechercher_taxon") |
String rechercher_taxon(); |
} |
/src/org/tela_botanica/del/client/i18n/Vocabulary.java |
---|
New file |
0,0 → 1,548 |
package org.tela_botanica.del.client.i18n; |
/** |
* Interface to represent the constants contained in resource bundle: |
* 'D:/dev/svn/del/src/org/tela_botanica/del/client/i18n/Vocabulary.properties'. |
*/ |
public interface Vocabulary extends com.google.gwt.i18n.client.Constants { |
/** |
* Translated "Valider". |
* |
* @return translated "Valider" |
*/ |
@DefaultStringValue("Valider") |
@Key("accepter") |
String accepter(); |
/** |
* Translated "Annuler". |
* |
* @return translated "Annuler" |
*/ |
@DefaultStringValue("Annuler") |
@Key("annuler") |
String annuler(); |
/** |
* Translated "Merci d'entrer une chaine avec au moins 4 caracteres". |
* |
* @return translated "Merci d'entrer une chaine avec au moins 4 caracteres" |
*/ |
@DefaultStringValue("Merci d'entrer une chaine avec au moins 4 caracteres") |
@Key("auMoins4charcateres") |
String auMoins4charcateres(); |
/** |
* Translated "Auteur". |
* |
* @return translated "Auteur" |
*/ |
@DefaultStringValue("Auteur") |
@Key("auteur") |
String auteur(); |
/** |
* Translated "autre". |
* |
* @return translated "autre" |
*/ |
@DefaultStringValue("autre") |
@Key("autre") |
String autre(); |
/** |
* Translated "Autre Proposition". |
* |
* @return translated "Autre Proposition" |
*/ |
@DefaultStringValue("Autre Proposition") |
@Key("autre_proposition") |
String autre_proposition(); |
/** |
* Translated "Autres informations ". |
* |
* @return translated "Autres informations " |
*/ |
@DefaultStringValue("Autres informations ") |
@Key("autres_informations") |
String autres_informations(); |
/** |
* Translated "Valider ma détermination". |
* |
* @return translated "Valider ma détermination" |
*/ |
@DefaultStringValue("Valider ma détermination") |
@Key("boutonProposer") |
String boutonProposer(); |
/** |
* Translated "Chargement". |
* |
* @return translated "Chargement" |
*/ |
@DefaultStringValue("Chargement") |
@Key("chargement") |
String chargement(); |
/** |
* Translated "Choisir un taxon". |
* |
* @return translated "Choisir un taxon" |
*/ |
@DefaultStringValue("Choisir un taxon") |
@Key("choisir_un_taxon") |
String choisir_un_taxon(); |
/** |
* Translated "Commentaire". |
* |
* @return translated "Commentaire" |
*/ |
@DefaultStringValue("Commentaire") |
@Key("commentaire") |
String commentaire(); |
/** |
* Translated "Commentaires". |
* |
* @return translated "Commentaires" |
*/ |
@DefaultStringValue("Commentaires") |
@Key("commentaires") |
String commentaires(); |
/** |
* Translated "Comparer cette image". |
* |
* @return translated "Comparer cette image" |
*/ |
@DefaultStringValue("Comparer cette image") |
@Key("comparer") |
String comparer(); |
/** |
* Translated "Probable". |
* |
* @return translated "Probable" |
*/ |
@DefaultStringValue("Probable") |
@Key("confiance_probable") |
String confiance_probable(); |
/** |
* Translated "Simple Suggestion". |
* |
* @return translated "Simple Suggestion" |
*/ |
@DefaultStringValue("Simple Suggestion") |
@Key("confiance_simple_suggestion") |
String confiance_simple_suggestion(); |
/** |
* Translated "Sur à 100%". |
* |
* @return translated "Sur à 100%" |
*/ |
@DefaultStringValue("Sur à 100%") |
@Key("confiance_sur_cent") |
String confiance_sur_cent(); |
/** |
* Translated "Contributeur". |
* |
* @return translated "Contributeur" |
*/ |
@DefaultStringValue("Contributeur") |
@Key("contributeur") |
String contributeur(); |
/** |
* Translated "Date". |
* |
* @return translated "Date" |
*/ |
@DefaultStringValue("Date") |
@Key("date") |
String date(); |
/** |
* Translated "Date de la prise de vue". |
* |
* @return translated "Date de la prise de vue" |
*/ |
@DefaultStringValue("Date de la prise de vue") |
@Key("date_observation") |
String date_observation(); |
/** |
* Translated "Date de derniere validation". |
* |
* @return translated "Date de derniere validation" |
*/ |
@DefaultStringValue("Date de derniere validation") |
@Key("date_validation") |
String date_validation(); |
/** |
* Translated "Entrez un nom de genre ou d'espèce, un nom de commune, un numéro de departement, l'email d'un utilisateur ou un mot-clef". |
* |
* @return translated "Entrez un nom de genre ou d'espèce, un nom de commune, un numéro de departement, l'email d'un utilisateur ou un mot-clef" |
*/ |
@DefaultStringValue("Entrez un nom de genre ou d'espèce, un nom de commune, un numéro de departement, l'email d'un utilisateur ou un mot-clef") |
@Key("entrer_mot_clef") |
String entrer_mot_clef(); |
/** |
* Translated "Famille". |
* |
* @return translated "Famille" |
*/ |
@DefaultStringValue("Famille") |
@Key("famille") |
String famille(); |
/** |
* Translated "Fiabilite". |
* |
* @return translated "Fiabilite" |
*/ |
@DefaultStringValue("Fiabilite") |
@Key("fiabilite") |
String fiabilite(); |
/** |
* Translated "Photos d'eFlore". |
* |
* @return translated "Photos d'eFlore" |
*/ |
@DefaultStringValue("Photos d'eFlore") |
@Key("image_eflore") |
String image_eflore(); |
/** |
* Translated "Vous pouvez comparer cette image à d'autres photos. Saisissez le nom de l'espèce et cliquez sur OK". |
* |
* @return translated "Vous pouvez comparer cette image à d'autres photos. Saisissez le nom de l'espèce et cliquez sur OK" |
*/ |
@DefaultStringValue("Vous pouvez comparer cette image à d'autres photos. Saisissez le nom de l'espèce et cliquez sur OK") |
@Key("infoComparer") |
String infoComparer(); |
/** |
* Translated "Indiquez votre niveau de certitude vis-à-vis de votre proposition.". |
* |
* @return translated "Indiquez votre niveau de certitude vis-à-vis de votre proposition." |
*/ |
@DefaultStringValue("Indiquez votre niveau de certitude vis-à-vis de votre proposition.") |
@Key("infoFiabilite") |
String infoFiabilite(); |
/** |
* Translated "Pour proposer une détermination, remplissez les champs ci-dessous et cliquez sur le bouton Proposer !". |
* |
* @return translated "Pour proposer une détermination, remplissez les champs ci-dessous et cliquez sur le bouton Proposer !" |
*/ |
@DefaultStringValue("Pour proposer une détermination, remplissez les champs ci-dessous et cliquez sur le bouton Proposer !") |
@Key("infoProposerDetermination") |
String infoProposerDetermination(); |
/** |
* Translated "D'autres utilisateurs ont laissé une détermination". |
* |
* @return translated "D'autres utilisateurs ont laissé une détermination" |
*/ |
@DefaultStringValue("D'autres utilisateurs ont laissé une détermination") |
@Key("infoPropositions") |
String infoPropositions(); |
/** |
* Translated "<b>Choisissez un taxon</b> dans la liste déroulante <b>OU</b> saisissez <b>un nouveau nom</b> dans le champ ci-après.". |
* |
* @return translated "<b>Choisissez un taxon</b> dans la liste déroulante <b>OU</b> saisissez <b>un nouveau nom</b> dans le champ ci-après." |
*/ |
@DefaultStringValue("<b>Choisissez un taxon</b> dans la liste déroulante <b>OU</b> saisissez <b>un nouveau nom</b> dans le champ ci-après.") |
@Key("infoTaxon") |
String infoTaxon(); |
/** |
* Translated "Voici la moyenne des votes en fonction du protocole choisi :". |
* |
* @return translated "Voici la moyenne des votes en fonction du protocole choisi :" |
*/ |
@DefaultStringValue("Voici la moyenne des votes en fonction du protocole choisi :") |
@Key("infoVotes") |
String infoVotes(); |
/** |
* Translated "Vos nom et prénom". |
* |
* @return translated "Vos nom et prénom" |
*/ |
@DefaultStringValue("Vos nom et prénom") |
@Key("infoVous") |
String infoVous(); |
/** |
* Translated "Propositions ". |
* |
* @return translated "Propositions " |
*/ |
@DefaultStringValue("Propositions ") |
@Key("lesPropositions") |
String lesPropositions(); |
/** |
* Translated "Localite". |
* |
* @return translated "Localite" |
*/ |
@DefaultStringValue("Localite") |
@Key("localite") |
String localite(); |
/** |
* Translated "Meta-donnees de la photo". |
* |
* @return translated "Meta-donnees de la photo" |
*/ |
@DefaultStringValue("Meta-donnees de la photo") |
@Key("metadonnees_photo") |
String metadonnees_photo(); |
/** |
* Translated "Mon vote". |
* |
* @return translated "Mon vote" |
*/ |
@DefaultStringValue("Mon vote") |
@Key("mon_vote") |
String mon_vote(); |
/** |
* Translated "Mots-clefs". |
* |
* @return translated "Mots-clefs" |
*/ |
@DefaultStringValue("Mots-clefs") |
@Key("mots-clefs") |
String mots_clefs(); |
/** |
* Translated "Moyenne". |
* |
* @return translated "Moyenne" |
*/ |
@DefaultStringValue("Moyenne") |
@Key("moyenne") |
String moyenne(); |
/** |
* Translated "Nom". |
* |
* @return translated "Nom" |
*/ |
@DefaultStringValue("Nom") |
@Key("nom") |
String nom(); |
/** |
* Translated "Nom retenu". |
* |
* @return translated "Nom retenu" |
*/ |
@DefaultStringValue("Nom retenu") |
@Key("nom_retenu") |
String nom_retenu(); |
/** |
* Translated "Nb votes". |
* |
* @return translated "Nb votes" |
*/ |
@DefaultStringValue("Nb votes") |
@Key("nombre_votes") |
String nombre_votes(); |
/** |
* Translated "non". |
* |
* @return translated "non" |
*/ |
@DefaultStringValue("non") |
@Key("non") |
String non(); |
/** |
* Translated "Observateur". |
* |
* @return translated "Observateur" |
*/ |
@DefaultStringValue("Observateur") |
@Key("observateur") |
String observateur(); |
/** |
* Translated "ok". |
* |
* @return translated "ok" |
*/ |
@DefaultStringValue("ok") |
@Key("ok") |
String ok(); |
/** |
* Translated "oui". |
* |
* @return translated "oui" |
*/ |
@DefaultStringValue("oui") |
@Key("oui") |
String oui(); |
/** |
* Translated "Pas de validation actuellement". |
* |
* @return translated "Pas de validation actuellement" |
*/ |
@DefaultStringValue("Pas de validation actuellement") |
@Key("pas_de_validation_actuellement") |
String pas_de_validation_actuellement(); |
/** |
* Translated "Proposer votre détermination". |
* |
* @return translated "Proposer votre détermination" |
*/ |
@DefaultStringValue("Proposer votre détermination") |
@Key("proposer_sa_determination") |
String proposer_sa_determination(); |
/** |
* Translated "Cliquez ici pour proposer votre validation". |
* |
* @return translated "Cliquez ici pour proposer votre validation" |
*/ |
@DefaultStringValue("Cliquez ici pour proposer votre validation") |
@Key("proposer_validation") |
String proposer_validation(); |
/** |
* Translated "Protocole". |
* |
* @return translated "Protocole" |
*/ |
@DefaultStringValue("Protocole") |
@Key("protocole") |
String protocole(); |
/** |
* Translated "Esthetisme". |
* |
* @return translated "Esthetisme" |
*/ |
@DefaultStringValue("Esthetisme") |
@Key("protocole_esthetisme") |
String protocole_esthetisme(); |
/** |
* Translated "Identification automatique". |
* |
* @return translated "Identification automatique" |
*/ |
@DefaultStringValue("Identification automatique") |
@Key("protocole_identification_auto") |
String protocole_identification_auto(); |
/** |
* Translated "Rechercher une image". |
* |
* @return translated "Rechercher une image" |
*/ |
@DefaultStringValue("Rechercher une image") |
@Key("rechercher_image") |
String rechercher_image(); |
/** |
* Translated "Rechercher le taxon ". |
* |
* @return translated "Rechercher le taxon " |
*/ |
@DefaultStringValue("Rechercher le taxon ") |
@Key("rechercher_taxon") |
String rechercher_taxon(); |
/** |
* Translated "Taxon". |
* |
* @return translated "Taxon" |
*/ |
@DefaultStringValue("Taxon") |
@Key("taxon") |
String taxon(); |
/** |
* Translated "Taxon a determiner". |
* |
* @return translated "Taxon a determiner" |
*/ |
@DefaultStringValue("Taxon a determiner") |
@Key("taxon_a_determiner") |
String taxon_a_determiner(); |
/** |
* Translated "Merci d'entrer une valeur". |
* |
* @return translated "Merci d'entrer une valeur" |
*/ |
@DefaultStringValue("Merci d'entrer une valeur") |
@Key("texteNonNull") |
String texteNonNull(); |
/** |
* Translated "Transmis le". |
* |
* @return translated "Transmis le" |
*/ |
@DefaultStringValue("Transmis le") |
@Key("transmis_le") |
String transmis_le(); |
/** |
* Translated "Merci d'entrer une valeur numerique". |
* |
* @return translated "Merci d'entrer une valeur numerique" |
*/ |
@DefaultStringValue("Merci d'entrer une valeur numerique") |
@Key("valeurNonNumerique") |
String valeurNonNumerique(); |
/** |
* Translated "Valide par". |
* |
* @return translated "Valide par" |
*/ |
@DefaultStringValue("Valide par") |
@Key("valide_par") |
String valide_par(); |
/** |
* Translated "Moyenne des votes". |
* |
* @return translated "Moyenne des votes" |
*/ |
@DefaultStringValue("Moyenne des votes") |
@Key("votes") |
String votes(); |
/** |
* Translated "Vous". |
* |
* @return translated "Vous" |
*/ |
@DefaultStringValue("Vous") |
@Key("vous") |
String vous(); |
} |
/src/org/tela_botanica/del/client/i18n/I18n.java |
---|
New file |
0,0 → 1,18 |
package org.tela_botanica.del.client.i18n; |
import com.google.gwt.core.client.GWT; |
public class I18n { |
public I18n() { |
} |
public static Vocabulary getVocabulary() { |
return (Vocabulary) GWT.create(Vocabulary.class); |
} |
public static Messages getMessages() { |
return (Messages) GWT.create(Messages.class); |
} |
} |
/src/org/tela_botanica/del/client/i18n/Messages.properties |
---|
New file |
0,0 → 1,0 |
rechercher_taxon=Rechercher le taxon {0} |
/src/org/tela_botanica/del/client/i18n/Vocabulary.properties |
---|
New file |
0,0 → 1,70 |
#vocabulaire partagé |
oui=oui |
non=non |
accepter=Valider |
annuler=Annuler |
chargement=Chargement |
ok=ok |
#validation |
auMoins4charcateres=Merci d'entrer une chaine avec au moins 4 caracteres |
valeurNonNumerique=Merci d'entrer une valeur numerique |
texteNonNull=Merci d'entrer une valeur |
#ecran recherche taxons |
proposer_validation=Cliquez ici pour proposer votre validation |
pas_de_validation_actuellement=Pas de validation actuellement |
rechercher_image=Rechercher une image |
entrer_mot_clef=Entrez un nom de genre ou d'espèce, un nom de commune, un numéro de departement, l'email d'un utilisateur ou un mot-clef |
rechercher_taxon=Rechercher le taxon |
moyenne=Moyenne |
nombre_votes=Nb votes |
observateur=Observateur |
nom_retenu=Nom retenu |
date=Date |
famille=Famille |
localite=Localite |
nom=Nom |
auteur=Auteur |
protocole=Protocole |
#ecran determination |
proposer_sa_determination=Proposer votre détermination |
infoProposerDetermination = Pour proposer une détermination, remplissez les champs ci-dessous et cliquez sur le bouton Proposer ! |
boutonProposer = Valider ma détermination |
vous = Vous |
infoVous = Vos nom et prénom |
contributeur=Contributeur |
fiabilite=Fiabilite |
infoFiabilite = Indiquez votre niveau de certitude vis-à-vis de votre proposition. |
commentaire=Commentaire |
autres_informations=Autres informations |
choisir_un_taxon=Choisir un taxon |
infoTaxon = <b>Choisissez un taxon</b> dans la liste déroulante <b>OU</b> saisissez <b>un nouveau nom</b> dans le champ ci-après. |
autre=autre |
autre_proposition=Autre Proposition |
confiance_simple_suggestion=Simple Suggestion |
confiance_probable=Probable |
confiance_sur_cent=Sur à 100% |
comparer = Comparer cette image |
infoComparer = Vous pouvez comparer cette image à d'autres photos. Saisissez le nom de l'espèce et cliquez sur OK |
lesPropositions = Propositions |
infoPropositions = D'autres utilisateurs ont laissé une détermination |
#ecran comparaison |
date_observation=Date de la prise de vue |
taxon_a_determiner=Taxon a determiner |
image_eflore=Photos d'eFlore |
metadonnees_photo=Meta-donnees de la photo |
commentaires=Commentaires |
mots-clefs=Mots-clefs |
valide_par=Valide par |
date_validation=Date de derniere validation |
taxon=Taxon |
transmis_le=Transmis le |
#ecran votes protcoles |
votes = Moyenne des votes |
infoVotes = Voici la moyenne des votes en fonction du protocole choisi : |
protocole_esthetisme=Esthetisme |
protocole_identification_auto=Identification automatique |
mon_vote=Mon vote |
/src/org/tela_botanica/del/client/i18n/VocabularyConsumer.java |
---|
New file |
0,0 → 1,18 |
package org.tela_botanica.del.client.i18n; |
import com.google.gwt.core.client.GWT; |
public class VocabularyConsumer { |
public VocabularyConsumer() { |
} |
public static Vocabulary getVocabulary() { |
return (Vocabulary) GWT.create(Vocabulary.class); |
} |
public static Messages getMessages() { |
return (Messages) GWT.create(Messages.class); |
} |
} |
/src/org/tela_botanica/del/client/i18n/Messages_en.properties |
---|
--- client/i18n/Vocabulary_en.properties (revision 0) |
+++ client/i18n/Vocabulary_en.properties (revision 199) |
@@ -0,0 +1,3 @@ |
+#sample constant property to be translated in language specific versions of this property file |
+ |
+ |
/src/org/tela_botanica/del/client/logo.jpg |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/src/org/tela_botanica/del/client/logo.jpg |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/src/org/tela_botanica/del/client/flecheDroite.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/src/org/tela_botanica/del/client/flecheDroite.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/src/org/tela_botanica/del/client/exceptions/ExceptionClient.java |
---|
New file |
0,0 → 1,42 |
package org.tela_botanica.del.client.exceptions; |
import com.google.gwt.user.client.rpc.IsSerializable; |
/** |
* An exception that can be displayed on the client side. It can receive an |
* exception from server and display the message in the client. |
* |
* @author Benjamin |
* |
*/ |
public class ExceptionClient extends Exception implements IsSerializable { |
/** |
* |
*/ |
private static final long serialVersionUID = 636898773374000925L; |
private String clientMessage; |
public ExceptionClient(String exceptionMessage) { |
super(); |
clientMessage = exceptionMessage; |
} |
public ExceptionClient(Exception e) { |
super(e); |
clientMessage = e.getMessage(); |
} |
public ExceptionClient() { |
} |
public String getClientMessage() { |
return clientMessage; |
} |
public void setClientMessage(String clientMessage) { |
this.clientMessage = clientMessage; |
} |
} |
/src/org/tela_botanica/del/client/vues/plateformedetermination/formulaireproposition/formulaireProposition.css |
---|
New file |
0,0 → 1,8 |
.formulaireProposition {border:solid 1px #AAA; width:100%; padding:15px; -moz-box-shadow:5px 5px 5px #AAA} |
.boutonProposer {float:right; margin-right:55px; margin-top:-85px; padding:10px; background:url(./img/add.png) no-repeat 5px 12px #DDD; padding-left:20px; cursor:pointer} |
.boutonProposer:hover {background-color:#AAA} |
.colonneGauche, .colonneDroite {width:250px;} |
.colonneGauche {padding-right:30px} |
.colonneGauche select {width:100%} |
.colonneGauche input {width:95%} |
.commentaire {width:250px; height:100px} |
/src/org/tela_botanica/del/client/vues/plateformedetermination/formulaireproposition/FormulairePropositionVue.ui.xml |
---|
New file |
0,0 → 1,33 |
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent"> |
<ui:UiBinder |
xmlns:ui='urn:ui:com.google.gwt.uibinder' |
xmlns:g='urn:import:com.google.gwt.user.client.ui' |
xmlns:vues="urn:import:org.tela_botanica.del.client.vues.plateformedetermination.forum"> |
<ui:with field="constants" type="org.tela_botanica.del.client.i18n.Vocabulary"/> |
<ui:style src="formulaireProposition.css" /> |
<g:VerticalPanel styleName="{style.formulaireProposition}"> |
<g:Label text="{constants.proposer_sa_determination}" styleName="titre"/> |
<g:Label text="{constants.infoProposerDetermination}" styleName="petit"/> |
<g:HTML><br /></g:HTML> |
<g:HorizontalPanel> |
<g:VerticalPanel styleName="{style.colonneGauche}"> |
<g:Label text="{constants.vous}" styleName="sousTitre"/> |
<g:Label text="{constants.infoVous}" styleName="petit" /> |
<g:TextBox ui:field="nomPrenom" /> |
<g:HTML><br /></g:HTML> |
<g:Label text="{constants.choisir_un_taxon}" styleName="sousTitre"/> |
<g:HTML HTML="{constants.infoTaxon}" styleName="petit"/> |
<g:TextBox ui:field="propositionTaxon" /> |
<g:HTML><br /></g:HTML> |
</g:VerticalPanel> |
<g:VerticalPanel styleName="{style.colonneGauche}"> |
<g:Label text="{constants.commentaire}" styleName="sousTitre"/> |
<g:TextArea ui:field="commentaires" styleName="{style.commentaire}" /> |
</g:VerticalPanel> |
</g:HorizontalPanel> |
<g:Button text="{constants.boutonProposer}" ui:field="boutonValidationProposition" styleName="{style.boutonProposer}"/> |
</g:VerticalPanel> |
</ui:UiBinder> |
/src/org/tela_botanica/del/client/vues/plateformedetermination/formulaireproposition/FormulairePropositionPresenteur.java |
---|
New file |
0,0 → 1,71 |
package org.tela_botanica.del.client.vues.plateformedetermination.formulaireproposition; |
import java.util.Date; |
import org.tela_botanica.del.client.cache.CacheClient; |
import org.tela_botanica.del.client.composants.validation.TextNotNullFormValidator; |
import org.tela_botanica.del.client.modeles.Commentaire; |
import org.tela_botanica.del.client.modeles.PropositionDetermination; |
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel; |
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.EvenementAjoutDetermination; |
import com.google.gwt.event.dom.client.ClickEvent; |
import com.google.gwt.event.dom.client.ClickHandler; |
import com.google.gwt.user.client.ui.HasWidgets; |
public class FormulairePropositionPresenteur { |
private FormulairePropositionVue formulairePropositionVue = new FormulairePropositionVue(); |
public void go(HasWidgets composite) { |
composite.add(formulairePropositionVue); |
gererEvenements(); |
} |
private void gererEvenements() { |
formulairePropositionVue.getBoutonValidationProposition().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
if(!validerSaisieProposition()) { |
return; |
} else { |
PropositionDetermination propositionAjoutee = collecterValeursSaisieProposition(); |
CacheClient.getInstance().getCurrentObservation().addImageCelValidationData(propositionAjoutee); |
EvenementAjoutDetermination evenementAjoutDetermination=new EvenementAjoutDetermination(propositionAjoutee); |
BusEvenementiel.getInstance().fireEvent(evenementAjoutDetermination); |
} |
} |
}); |
} |
private boolean validerSaisieProposition() { |
TextNotNullFormValidator validateurTaxon = new TextNotNullFormValidator(formulairePropositionVue.getNomPrenom()); |
boolean taxonSaisi = validateurTaxon.validate(); |
return taxonSaisi; |
} |
private PropositionDetermination collecterValeursSaisieProposition() { |
PropositionDetermination propositionAjoutee = new PropositionDetermination(); |
propositionAjoutee.setId(CacheClient.getInstance().getImageCourante().getIdImage()); |
String auteur = formulairePropositionVue.getNomPrenom().getText(); |
if(formulairePropositionVue.getCommentaires().getText() != "") { |
String contenuCommentaire = formulairePropositionVue.getCommentaires().getText(); |
Commentaire comm = new Commentaire(auteur, new Date(),contenuCommentaire); |
propositionAjoutee.ajouterCommentaire(comm); |
} |
propositionAjoutee.setContributeur(auteur); |
propositionAjoutee.setDate(new Date()); |
propositionAjoutee.setEspece(formulairePropositionVue.getPropositionTaxon().getText()); |
return propositionAjoutee; |
} |
} |
/src/org/tela_botanica/del/client/vues/plateformedetermination/formulaireproposition/FormulairePropositionVue.java |
---|
New file |
0,0 → 1,54 |
package org.tela_botanica.del.client.vues.plateformedetermination.formulaireproposition; |
import java.util.Iterator; |
import java.util.List; |
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.user.client.ui.Button; |
import com.google.gwt.user.client.ui.Composite; |
import com.google.gwt.user.client.ui.ListBox; |
import com.google.gwt.user.client.ui.TextArea; |
import com.google.gwt.user.client.ui.TextBox; |
import com.google.gwt.user.client.ui.Widget; |
public class FormulairePropositionVue extends Composite { |
@UiField(provided = true) |
public TextBox nomPrenom = new TextBox(); |
@UiField(provided = true) |
public TextBox propositionTaxon = new TextBox(); |
@UiField(provided = true) |
public TextArea commentaires = new TextArea(); |
@UiField(provided = true) |
public Button boutonValidationProposition = new Button(); |
interface FormulairePropositionUIiBinder extends UiBinder<Widget, FormulairePropositionVue> { |
}; |
FormulairePropositionUIiBinder uiBinder = GWT.create(FormulairePropositionUIiBinder.class); |
public FormulairePropositionVue() { |
initWidget(uiBinder.createAndBindUi(this)); |
} |
public TextBox getNomPrenom() { |
return nomPrenom; |
} |
public TextBox getPropositionTaxon() { |
return propositionTaxon; |
} |
public TextArea getCommentaires() { |
return commentaires; |
} |
public Button getBoutonValidationProposition() { |
return boutonValidationProposition; |
} |
} |
/src/org/tela_botanica/del/client/vues/plateformedetermination/formulairerechercheeflore/FormulaireRechercheEfloreVue.ui.xml |
---|
New file |
0,0 → 1,15 |
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent"> |
<ui:UiBinder |
xmlns:ui='urn:ui:com.google.gwt.uibinder' |
xmlns:g='urn:import:com.google.gwt.user.client.ui'> |
<ui:with field="constants" type="org.tela_botanica.del.client.i18n.Vocabulary"/> |
<g:VerticalPanel> |
<g:Label text="{constants.comparer}" styleName="sousTitre"/> |
<g:Label text="{constants.infoComparer}" styleName="petit"/> |
<g:HTML><br /></g:HTML> |
<g:HorizontalPanel><g:TextBox ui:field="formulaireRechercheObservationEflore"/> |
<g:Button text="{constants.ok}" ui:field="boutonValidationRechercheObservation" /></g:HorizontalPanel> |
</g:VerticalPanel> |
</ui:UiBinder> |
/src/org/tela_botanica/del/client/vues/plateformedetermination/formulairerechercheeflore/FormulaireRechercheEflorePresenteur.java |
---|
New file |
0,0 → 1,30 |
package org.tela_botanica.del.client.vues.plateformedetermination.formulairerechercheeflore; |
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel; |
import org.tela_botanica.del.client.navigation.evenement.comparaisoneflore.EvenementComparaisonEflore; |
import com.google.gwt.event.dom.client.ClickEvent; |
import com.google.gwt.event.dom.client.ClickHandler; |
import com.google.gwt.user.client.ui.HasWidgets; |
public class FormulaireRechercheEflorePresenteur { |
FormulaireRechercheEfloreVue formulaireRechercheEfloreVue = new FormulaireRechercheEfloreVue(); |
public void go(HasWidgets composite) { |
composite.add(formulaireRechercheEfloreVue); |
gererEvenements(); |
} |
private void gererEvenements() { |
formulaireRechercheEfloreVue.getBoutonValidationRechercheObservation().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
EvenementComparaisonEflore evenementComparaisonEflore = new EvenementComparaisonEflore(formulaireRechercheEfloreVue.getFormulaireRechercheObservationEflore().getText()); |
BusEvenementiel.getInstance().fireEvent(evenementComparaisonEflore); |
} |
}); |
} |
} |
/src/org/tela_botanica/del/client/vues/plateformedetermination/formulairerechercheeflore/FormulaireRechercheEfloreVue.java |
---|
New file |
0,0 → 1,33 |
package org.tela_botanica.del.client.vues.plateformedetermination.formulairerechercheeflore; |
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.user.client.ui.Button; |
import com.google.gwt.user.client.ui.Composite; |
import com.google.gwt.user.client.ui.TextBox; |
import com.google.gwt.user.client.ui.Widget; |
public class FormulaireRechercheEfloreVue extends Composite { |
@UiField(provided = true) |
public TextBox formulaireRechercheObservationEflore = new TextBox(); |
@UiField(provided = true) |
public Button boutonValidationRechercheObservation = new Button(); |
interface FormulaireRechercheEfloreUIiBinder extends UiBinder<Widget, FormulaireRechercheEfloreVue>{}; |
FormulaireRechercheEfloreUIiBinder uiBinder = GWT.create(FormulaireRechercheEfloreUIiBinder.class); |
public FormulaireRechercheEfloreVue() { |
initWidget(uiBinder.createAndBindUi(this)); |
} |
public TextBox getFormulaireRechercheObservationEflore() { |
return formulaireRechercheObservationEflore; |
} |
public Button getBoutonValidationRechercheObservation() { |
return boutonValidationRechercheObservation; |
} |
} |
/src/org/tela_botanica/del/client/vues/plateformedetermination/DeterminationVue.ui.xml |
---|
New file |
0,0 → 1,24 |
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent"> |
<ui:UiBinder |
xmlns:ui='urn:ui:com.google.gwt.uibinder' |
xmlns:g='urn:import:com.google.gwt.user.client.ui' |
xmlns:forum="urn:import:org.tela_botanica.del.client.vues.plateformedetermination.forum"> |
<ui:with field="constants" type="org.tela_botanica.del.client.i18n.Vocabulary"/> |
<ui:style src="determinationVue.css" /> |
<g:HorizontalPanel styleName="{style.zoneDetermination}"> |
<g:VerticalPanel styleName="{style.zoneDetailImage}"> |
<g:VerticalPanel ui:field="detailImageObservation" styleName="{style.zoneImage}"/> |
<g:VerticalPanel ui:field="formulaireRechercheEflore"/> |
</g:VerticalPanel> |
<g:VerticalPanel styleName="{style.zoneVote}"> |
<g:VerticalPanel ui:field="vote" styleName="plein"/> |
<g:VerticalPanel ui:field="barreRepartition" styleName="{style.zoneBarreRepartition} repartitionVoteTaxonPopulaire plein"/> |
<g:HTML><br /></g:HTML> |
<g:VerticalPanel ui:field="forum" styleName="plein"/> |
<g:HTML><br /></g:HTML> |
<g:VerticalPanel ui:field="formulaireProposition" styleName="plein"/> |
</g:VerticalPanel> |
</g:HorizontalPanel> |
</ui:UiBinder> |
/src/org/tela_botanica/del/client/vues/plateformedetermination/vote/EnsembleVotesVue.ui.xml |
---|
New file |
0,0 → 1,10 |
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent"> |
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" |
xmlns:g="urn:import:com.google.gwt.user.client.ui"> |
<ui:with field="constants" type="org.tela_botanica.del.client.i18n.Vocabulary" /> |
<g:HTMLPanel styleName="plein"> |
<g:Label text="{constants.votes}" styleName="titre"/> |
<g:Label text="{constants.infoVotes}" styleName="petit"/> |
<g:VerticalPanel ui:field="panneauVotes" styleName="plein"/> |
</g:HTMLPanel> |
</ui:UiBinder> |
/src/org/tela_botanica/del/client/vues/plateformedetermination/vote/protocole/VoteProtocolePresenteur.java |
---|
New file |
0,0 → 1,32 |
package org.tela_botanica.del.client.vues.plateformedetermination.vote.protocole; |
import java.util.List; |
import org.tela_botanica.del.client.modeles.Protocole; |
import org.tela_botanica.del.client.modeles.VoteProtocole; |
import org.tela_botanica.del.client.vues.plateformedetermination.vote.protocole.moyenne.MoyenneVoteProtocolePresenteur; |
import org.tela_botanica.del.client.vues.plateformedetermination.vote.protocole.personnel.MonVoteProtocolePresenteur; |
import com.google.gwt.user.client.ui.HasWidgets; |
public class VoteProtocolePresenteur { |
private VoteProtocoleVue vue = new VoteProtocoleVue(); |
private Protocole protocole; |
private List<VoteProtocole> validationDatas; |
public VoteProtocolePresenteur(Protocole protocole, List<VoteProtocole> validationDatas) { |
this.protocole = protocole; |
this.validationDatas = validationDatas; |
} |
public void go(HasWidgets container) { |
container.add(vue); |
new MoyenneVoteProtocolePresenteur(protocole, validationDatas).go(vue.getMoyenneVotes()); |
new MonVoteProtocolePresenteur(protocole).go(vue.getMonVote()); |
} |
} |
/src/org/tela_botanica/del/client/vues/plateformedetermination/vote/protocole/VoteProtocoleVue.java |
---|
New file |
0,0 → 1,41 |
package org.tela_botanica.del.client.vues.plateformedetermination.vote.protocole; |
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.user.client.ui.Composite; |
import com.google.gwt.user.client.ui.FocusPanel; |
import com.google.gwt.user.client.ui.Widget; |
public class VoteProtocoleVue extends Composite { |
interface MyUiBinder extends UiBinder<Widget, VoteProtocoleVue> { |
} |
private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class); |
@UiField |
FocusPanel moyenneVotes, monVote; |
protected VoteProtocoleVue() { |
initWidget(uiBinder.createAndBindUi(this)); |
} |
public FocusPanel getMonVote() { |
return monVote; |
} |
public void setMonVote(FocusPanel monVote) { |
this.monVote = monVote; |
} |
public FocusPanel getMoyenneVotes() { |
return moyenneVotes; |
} |
public void setMoyenneVotes(FocusPanel moyenneVotes) { |
this.moyenneVotes = moyenneVotes; |
} |
} |
/src/org/tela_botanica/del/client/vues/plateformedetermination/vote/protocole/personnel/MonVoteProtocoleVue.ui.xml |
---|
New file |
0,0 → 1,14 |
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' |
xmlns:g='urn:import:com.google.gwt.user.client.ui' ui:generateFormat='com.google.gwt.i18n.rebind.format.PropertiesFormat' |
ui:generateKeys="com.google.gwt.i18n.rebind.keygen.MD5KeyGenerator" |
ui:generateLocales="default"> |
<ui:with field="constants" type="org.tela_botanica.del.client.i18n.Vocabulary" /> |
<g:HorizontalPanel> |
<g:VerticalPanel> |
<g:Label text="{constants.mon_vote}" /> |
<g:FocusPanel ui:field="voter" /> |
</g:VerticalPanel> |
<g:Button ui:field="boutonVote" text="{constants.ok}"></g:Button> |
</g:HorizontalPanel> |
</ui:UiBinder> |
/src/org/tela_botanica/del/client/vues/plateformedetermination/vote/protocole/personnel/MonVoteProtocolePresenteur.java |
---|
New file |
0,0 → 1,45 |
package org.tela_botanica.del.client.vues.plateformedetermination.vote.protocole.personnel; |
import java.util.Date; |
import org.tela_botanica.del.client.modeles.Protocole; |
import org.tela_botanica.del.client.modeles.VoteProtocole; |
import org.tela_botanica.del.client.utils.MockDatasource; |
import com.google.gwt.event.dom.client.ClickEvent; |
import com.google.gwt.event.dom.client.ClickHandler; |
import com.google.gwt.user.client.ui.HasWidgets; |
public class MonVoteProtocolePresenteur { |
private MonVoteProtocoleVue vue; |
private Protocole protocole; |
private MockDatasource voteService = MockDatasource.getInstance(); |
public MonVoteProtocolePresenteur(Protocole protocole) { |
this.protocole = protocole; |
vue = new MonVoteProtocoleVue(); |
} |
public void go(HasWidgets container) { |
container.add(vue); |
} |
public void gererEvenements() { |
vue.getBoutonVote().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
VoteProtocole voteProtocole = new VoteProtocole(); |
voteProtocole.setDate(new Date()); |
voteProtocole.setVote(vue.getRating().getValue()); |
voteProtocole.setProtocol(protocole); |
vue.getRating(); |
voteService.saveVote(voteProtocole); |
} |
}); |
} |
} |
/src/org/tela_botanica/del/client/vues/plateformedetermination/vote/protocole/personnel/MonVoteProtocoleVue.java |
---|
New file |
0,0 → 1,51 |
package org.tela_botanica.del.client.vues.plateformedetermination.vote.protocole.personnel; |
import org.cobogw.gwt.user.client.ui.Rating; |
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.user.client.ui.Button; |
import com.google.gwt.user.client.ui.Composite; |
import com.google.gwt.user.client.ui.FocusPanel; |
import com.google.gwt.user.client.ui.Widget; |
public class MonVoteProtocoleVue extends Composite { |
interface MyUiBinder extends UiBinder<Widget, MonVoteProtocoleVue> { |
} |
private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class); |
@UiField |
FocusPanel voter; |
@UiField |
Button boutonVote; |
private Rating rating = new Rating(0, 5); |
protected MonVoteProtocoleVue() { |
initWidget(uiBinder.createAndBindUi(this)); |
rating.setReadOnly(false); |
voter.add(rating); |
} |
public Rating getRating() { |
return rating; |
} |
public void setRating(Rating rating) { |
this.rating = rating; |
} |
public Button getBoutonVote() { |
return boutonVote; |
} |
public void setBoutonVote(Button boutonVote) { |
this.boutonVote = boutonVote; |
} |
} |
/src/org/tela_botanica/del/client/vues/plateformedetermination/vote/protocole/moyenne/moyenneVoteProtocole.css |
---|
New file |
0,0 → 1,3 |
.nomProtocole {width:250px;} |
.monVote, .nbVotes {width:125px} |
.protocole {padding:10px 15px 10px 15px; border:solid 1px #ddd; margin-bottom:1px} |
/src/org/tela_botanica/del/client/vues/plateformedetermination/vote/protocole/moyenne/MoyenneVoteProtocoleVue.ui.xml |
---|
New file |
0,0 → 1,20 |
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' |
xmlns:g='urn:import:com.google.gwt.user.client.ui' ui:generateFormat='com.google.gwt.i18n.rebind.format.PropertiesFormat' |
ui:generateKeys="com.google.gwt.i18n.rebind.keygen.MD5KeyGenerator" |
ui:generateLocales="default"> |
<ui:style src="moyenneVoteProtocole.css" /> |
<ui:with field="constants" type="org.tela_botanica.del.client.i18n.Vocabulary" /> |
<g:HorizontalPanel styleName="{style.protocole} plein"> |
<g:VerticalPanel styleName="{style.nomProtocole}"> |
<g:Label ui:field="nomProtocole" text="{constants.chargement}" styleName="gras"/> |
<g:FocusPanel ui:field="moyenneVotes" /> |
</g:VerticalPanel> |
<g:VerticalPanel styleName="{style.nbVotes} gras"> |
<g:Label text="Votes" /> |
<g:Label ui:field="nbVotes" /> |
</g:VerticalPanel> |
<g:FocusPanel ui:field="monVote" styleName="{style.monVote} gras"/> |
</g:HorizontalPanel> |
</ui:UiBinder> |
/src/org/tela_botanica/del/client/vues/plateformedetermination/vote/protocole/moyenne/MoyenneVoteProtocolePresenteur.java |
---|
New file |
0,0 → 1,25 |
package org.tela_botanica.del.client.vues.plateformedetermination.vote.protocole.moyenne; |
import java.util.List; |
import org.tela_botanica.del.client.modeles.Protocole; |
import org.tela_botanica.del.client.modeles.VoteProtocole; |
import org.tela_botanica.del.client.vues.plateformedetermination.vote.protocole.personnel.MonVoteProtocolePresenteur; |
import com.google.gwt.user.client.ui.HasWidgets; |
public class MoyenneVoteProtocolePresenteur { |
private MoyenneVoteProtocoleVue view; |
private Protocole protocole; |
public MoyenneVoteProtocolePresenteur(Protocole protocole, List<VoteProtocole> validationDatas) { |
view = new MoyenneVoteProtocoleVue(protocole, validationDatas); |
} |
public void go(HasWidgets container) { |
container.add(view); |
new MonVoteProtocolePresenteur(protocole).go(view.getMonVote()); |
} |
} |
/src/org/tela_botanica/del/client/vues/plateformedetermination/vote/protocole/moyenne/MoyenneVoteProtocoleVue.java |
---|
New file |
0,0 → 1,58 |
package org.tela_botanica.del.client.vues.plateformedetermination.vote.protocole.moyenne; |
import java.util.List; |
import org.cobogw.gwt.user.client.ui.Rating; |
import org.tela_botanica.del.client.modeles.Protocole; |
import org.tela_botanica.del.client.modeles.VoteProtocole; |
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.user.client.ui.Composite; |
import com.google.gwt.user.client.ui.FocusPanel; |
import com.google.gwt.user.client.ui.Label; |
import com.google.gwt.user.client.ui.Widget; |
public class MoyenneVoteProtocoleVue extends Composite { |
interface MyUiBinder extends UiBinder<Widget, MoyenneVoteProtocoleVue> { |
} |
private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class); |
@UiField |
FocusPanel moyenneVotes, monVote; |
@UiField |
Label nbVotes, nomProtocole; |
protected MoyenneVoteProtocoleVue(Protocole protocole, List<VoteProtocole> validationDatas) { |
initWidget(uiBinder.createAndBindUi(this)); |
nomProtocole.setText(protocole.getNom()); |
int meanVote = 0; |
int nbVote = 0; |
for (VoteProtocole validationData : validationDatas) { |
meanVote += validationData.getVote(); |
nbVote++; |
} |
if (nbVote > 0) |
meanVote /= nbVote; |
Rating rating = new Rating(meanVote, 5); |
rating.setReadOnly(true); |
moyenneVotes.add(rating); |
nbVotes.setText(String.valueOf(validationDatas.size())); |
} |
public FocusPanel getMonVote() { |
return monVote; |
} |
public void setMonVote(FocusPanel monVote) { |
this.monVote = monVote; |
} |
} |
/src/org/tela_botanica/del/client/vues/plateformedetermination/vote/protocole/voteProtocole.css |
---|
New file |
0,0 → 1,2 |
.tiers {border :solid 1px red} |
.nomProtocole {border:solid 1px} |
/src/org/tela_botanica/del/client/vues/plateformedetermination/vote/protocole/VoteProtocoleVue.ui.xml |
---|
New file |
0,0 → 1,14 |
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' |
xmlns:g='urn:import:com.google.gwt.user.client.ui' ui:generateFormat='com.google.gwt.i18n.rebind.format.PropertiesFormat' |
ui:generateKeys="com.google.gwt.i18n.rebind.keygen.MD5KeyGenerator" |
ui:generateLocales="default"> |
<ui:with field="constants" type="org.tela_botanica.del.client.i18n.Vocabulary" /> |
<ui:style src="voteProtocole.css" /> |
<g:HorizontalPanel> |
<g:Label ui:field="nomProtocole" text="{constants.chargement}" /> |
<g:FocusPanel ui:field="moyenneVotes" /> |
<g:FocusPanel ui:field="monVote" /> |
</g:HorizontalPanel> |
</ui:UiBinder> |
/src/org/tela_botanica/del/client/vues/plateformedetermination/vote/EnsembleVotesPresenteur.java |
---|
New file |
0,0 → 1,36 |
package org.tela_botanica.del.client.vues.plateformedetermination.vote; |
import java.util.List; |
import org.tela_botanica.del.client.cache.CacheClient; |
import org.tela_botanica.del.client.modeles.Protocole; |
import org.tela_botanica.del.client.modeles.VoteProtocole; |
import org.tela_botanica.del.client.utils.MockDatasource; |
import org.tela_botanica.del.client.vues.plateformedetermination.vote.protocole.moyenne.MoyenneVoteProtocolePresenteur; |
import com.google.gwt.user.client.ui.HasWidgets; |
public class EnsembleVotesPresenteur { |
private EnsembleVotesVue vue = new EnsembleVotesVue(); |
private MockDatasource validationService = MockDatasource.getInstance(); |
public void go(HasWidgets container) { |
container.add(vue); |
afficherVotes(); |
} |
private void afficherVotes() { |
String idImageCourante = CacheClient.getInstance().getImageCourante().getIdImage(); |
Protocole protocoleEsthetisme = validationService.getProtocole(Protocole.ESTHETISME); |
List<VoteProtocole> observationValidationsEsthetisme = validationService.getVoteByImageAndProtocol(idImageCourante, Protocole.ESTHETISME); |
new MoyenneVoteProtocolePresenteur(protocoleEsthetisme, observationValidationsEsthetisme).go(vue.getPanneauVotes()); |
Protocole protocoleIdentification = validationService.getProtocole(Protocole.IDENTIFICATION_AUTOMATIQUE); |
List<VoteProtocole> observationValidationsIdentification = validationService.getVoteByImageAndProtocol(idImageCourante, Protocole.IDENTIFICATION_AUTOMATIQUE); |
new MoyenneVoteProtocolePresenteur(protocoleIdentification, observationValidationsIdentification).go(vue.getPanneauVotes()); |
} |
} |
/src/org/tela_botanica/del/client/vues/plateformedetermination/vote/EnsembleVotesVue.java |
---|
New file |
0,0 → 1,33 |
package org.tela_botanica.del.client.vues.plateformedetermination.vote; |
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.user.client.ui.Composite; |
import com.google.gwt.user.client.ui.HorizontalPanel; |
import com.google.gwt.user.client.ui.VerticalPanel; |
import com.google.gwt.user.client.ui.Widget; |
public class EnsembleVotesVue extends Composite { |
interface MyUiBinder extends UiBinder<Widget, EnsembleVotesVue> { |
} |
private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class); |
@UiField() |
VerticalPanel panneauVotes; |
public EnsembleVotesVue() { |
initWidget(uiBinder.createAndBindUi(this)); |
} |
public VerticalPanel getPanneauVotes() { |
return panneauVotes; |
} |
public void setPanneauVotes(VerticalPanel panneauVotes) { |
this.panneauVotes = panneauVotes; |
} |
} |
/src/org/tela_botanica/del/client/vues/plateformedetermination/vote/barrerepartition/BarreRepartitionVoteVue.ui.xml |
---|
New file |
0,0 → 1,13 |
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent"> |
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" |
xmlns:g="urn:import:com.google.gwt.user.client.ui"> |
<ui:with field="constants" type="org.tela_botanica.del.client.i18n.Vocabulary" /> |
<ui:style src="barreRepartitionVote.css" /> |
<g:HTMLPanel> |
<div class="conteneurBoutonVote"> |
<g:PushButton ui:field="boutonOui" styleName="{style.boutonVote}" /> |
<g:PushButton ui:field="boutonNon" styleName="{style.boutonVote}" /> |
</div> |
<g:HTML ui:field="barreRepartitionHtmlBrut" styleName="conteneurBarreRepartition"/> |
</g:HTMLPanel> |
</ui:UiBinder> |
/src/org/tela_botanica/del/client/vues/plateformedetermination/vote/barrerepartition/BarreRepartitionVotePresenteur.java |
---|
New file |
0,0 → 1,83 |
package org.tela_botanica.del.client.vues.plateformedetermination.vote.barrerepartition; |
import java.util.Date; |
import org.tela_botanica.del.client.modeles.MoyenneVote; |
import org.tela_botanica.del.client.modeles.VoteDetermination; |
import org.tela_botanica.del.client.services.CalculVoteDeterminationService; |
import org.tela_botanica.del.client.utils.MockDatasource; |
import com.google.gwt.event.dom.client.ClickEvent; |
import com.google.gwt.event.dom.client.ClickHandler; |
import com.google.gwt.event.shared.HandlerRegistration; |
import com.google.gwt.user.client.ui.HTML; |
import com.google.gwt.user.client.ui.HasWidgets; |
public class BarreRepartitionVotePresenteur { |
private BarreRepartitionVoteVue vue = new BarreRepartitionVoteVue(); |
private MockDatasource validationService = MockDatasource.getInstance(); |
private MoyenneVote moyenneVote; |
public void go(HasWidgets container) { |
container.add(vue); |
} |
public void afficherVotes(MoyenneVote moyenneVote) { |
this.moyenneVote = moyenneVote; |
vue.afficherVotes(moyenneVote.getScore(), moyenneVote.getIntituleAssocie()); |
gererEvenements(); |
} |
public BarreRepartitionVoteVue getBarreRepartitionVoteVue() { |
return vue; |
} |
public HTML getBarreRepartitionVoteVueHTML() { |
return vue.getBarreRepartitionHtmlBrut(); |
} |
public void gererEvenements() { |
vue.getBoutonOui().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
VoteDetermination vd = new VoteDetermination(); |
vd.setContributeur("test"); |
vd.setDate(new Date()); |
vd.setVote(1); |
vd.setId("3"); |
vue.getBoutonOui().setEnabled(false); |
vue.getBoutonNon().setEnabled(true); |
moyenneVote.getPropositionAssociee().ajouterVoteDetermination(vd); |
moyenneVote = CalculVoteDeterminationService.calculerVoteDetermination(moyenneVote.getPropositionAssociee()); |
afficherVotes(moyenneVote); |
} |
}); |
vue.getBoutonNon().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
VoteDetermination vd = new VoteDetermination(); |
vd.setContributeur("test"); |
vd.setDate(new Date()); |
vd.setVote(0); |
vd.setId("3"); |
vue.getBoutonOui().setEnabled(true); |
vue.getBoutonNon().setEnabled(false); |
moyenneVote.getPropositionAssociee().ajouterVoteDetermination(vd); |
moyenneVote = CalculVoteDeterminationService.calculerVoteDetermination(moyenneVote.getPropositionAssociee()); |
afficherVotes(moyenneVote); |
} |
}); |
} |
} |
/src/org/tela_botanica/del/client/vues/plateformedetermination/vote/barrerepartition/BarreRepartitionVoteVue.java |
---|
New file |
0,0 → 1,75 |
package org.tela_botanica.del.client.vues.plateformedetermination.vote.barrerepartition; |
import org.tela_botanica.del.client.vues.plateformedetermination.vote.EnsembleVotesVue; |
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.user.client.Window; |
import com.google.gwt.user.client.ui.Composite; |
import com.google.gwt.user.client.ui.HTML; |
import com.google.gwt.user.client.ui.IsWidget; |
import com.google.gwt.user.client.ui.PushButton; |
import com.google.gwt.user.client.ui.Widget; |
public class BarreRepartitionVoteVue extends Composite implements IsWidget { |
interface MyUiBinder extends UiBinder<Widget, BarreRepartitionVoteVue> {} |
private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class); |
private int pourcentage = -1; |
private int tailleBarre = 0; |
private String nomTaxon = ""; |
@UiField(provided = true) |
public PushButton boutonOui = new PushButton("+"); |
@UiField(provided = true) |
public PushButton boutonNon = new PushButton("-"); |
@UiField(provided = true) |
public HTML barreRepartitionHtmlBrut = new HTML("<div class=\"barreRepartition\"></div>"); |
public BarreRepartitionVoteVue() { |
initWidget(uiBinder.createAndBindUi(this)); |
boutonNon.setWidth("20px"); |
boutonOui.setWidth("20px"); |
} |
public void afficherVotes(int pourcentage, String NomTaxon) { |
this.pourcentage = pourcentage; |
this.nomTaxon = NomTaxon; |
tailleBarre = (pourcentage > -1) ? pourcentage : 0; |
String classe = "barreRepartition"; |
if(pourcentage == -1) { |
classe = "barreRepartitionAucunVote"; |
} |
String chaineHtml = "<div class=\"conteneurBarreRepartition\">" + |
"<div class=\""+classe+"\">"+ |
"<div style=\"width:"+tailleBarre+"%\" class=\"elementBarreRepartition voteOui\"></div>"+ |
"</div>"+ |
"<span class=\"nomTaxonBarreRepartition\">"+nomTaxon+"</span>"+ |
"</div>"; |
barreRepartitionHtmlBrut.setHTML(chaineHtml); |
} |
public HTML getBarreRepartitionHtmlBrut() { |
return barreRepartitionHtmlBrut; |
} |
public PushButton getBoutonOui() { |
return boutonOui; |
} |
public PushButton getBoutonNon() { |
return boutonNon; |
} |
} |
/src/org/tela_botanica/del/client/vues/plateformedetermination/vote/barrerepartition/barreRepartitionVote.css |
---|
New file |
0,0 → 1,0 |
.boutonVote {float:left;text-align: center;} |
/src/org/tela_botanica/del/client/vues/plateformedetermination/DeterminationPresenteur.java |
---|
New file |
0,0 → 1,48 |
package org.tela_botanica.del.client.vues.plateformedetermination; |
import java.util.List; |
import org.tela_botanica.del.client.cache.CacheClient; |
import org.tela_botanica.del.client.modeles.MoyenneVote; |
import org.tela_botanica.del.client.services.CalculVoteDeterminationService; |
import org.tela_botanica.del.client.vues.plateformedetermination.detail.DetailImageObservationPresenteur; |
import org.tela_botanica.del.client.vues.plateformedetermination.formulaireproposition.FormulairePropositionPresenteur; |
import org.tela_botanica.del.client.vues.plateformedetermination.formulairerechercheeflore.FormulaireRechercheEflorePresenteur; |
import org.tela_botanica.del.client.vues.plateformedetermination.forum.ForumPresenteur; |
import org.tela_botanica.del.client.vues.plateformedetermination.vote.EnsembleVotesPresenteur; |
import org.tela_botanica.del.client.vues.plateformedetermination.vote.barrerepartition.BarreRepartitionVotePresenteur; |
import com.google.gwt.user.client.ui.HasWidgets; |
public class DeterminationPresenteur { |
DeterminationVue determinationVue = new DeterminationVue(); |
BarreRepartitionVotePresenteur barreRepartitionVotePresenteur; |
public DeterminationPresenteur() { |
} |
public void go(HasWidgets composite) { |
new DetailImageObservationPresenteur().go(determinationVue.getDetailImageObservation()); |
new EnsembleVotesPresenteur().go(determinationVue.getVote()); |
new ForumPresenteur().go(determinationVue.getForum()); |
new FormulairePropositionPresenteur().go(determinationVue.getFormulaireProposition()); |
new FormulaireRechercheEflorePresenteur().go(determinationVue.getFormulaireRechercheEflore()); |
barreRepartitionVotePresenteur = new BarreRepartitionVotePresenteur(); |
barreRepartitionVotePresenteur.go(determinationVue.getBarreRepartition()); |
calculerEtAfficherVoteDeterminationPlusPopulaire(); |
composite.add(determinationVue); |
} |
private void calculerEtAfficherVoteDeterminationPlusPopulaire() { |
List<MoyenneVote> votesOrdonnes = CalculVoteDeterminationService.calculerVoteDeterminationPlusPopulaire(CacheClient.getInstance().getCurrentObservation().getPropositionsDetermination()); |
if (votesOrdonnes.size() > 0) { |
barreRepartitionVotePresenteur.afficherVotes(votesOrdonnes.get(0)); |
} |
} |
} |
/src/org/tela_botanica/del/client/vues/plateformedetermination/DeterminationVue.java |
---|
New file |
0,0 → 1,47 |
package org.tela_botanica.del.client.vues.plateformedetermination; |
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.user.client.ui.Composite; |
import com.google.gwt.user.client.ui.VerticalPanel; |
import com.google.gwt.user.client.ui.Widget; |
public class DeterminationVue extends Composite { |
@UiField |
VerticalPanel forum, detailImageObservation, formulaireProposition, formulaireRechercheEflore, vote, barreRepartition; |
interface DeterminationUIiBinder extends UiBinder<Widget, DeterminationVue> { |
}; |
private static DeterminationUIiBinder uiBinder = GWT.create(DeterminationUIiBinder.class); |
public DeterminationVue() { |
initWidget(uiBinder.createAndBindUi(this)); |
} |
public VerticalPanel getForum() { |
return forum; |
} |
public VerticalPanel getDetailImageObservation() { |
return detailImageObservation; |
} |
public VerticalPanel getFormulaireProposition() { |
return formulaireProposition; |
} |
public VerticalPanel getFormulaireRechercheEflore() { |
return formulaireRechercheEflore; |
} |
public VerticalPanel getVote() { |
return vote; |
} |
public VerticalPanel getBarreRepartition() { |
return barreRepartition; |
} |
} |
/src/org/tela_botanica/del/client/vues/plateformedetermination/detail/DetailImageObservationVue.java |
---|
New file |
0,0 → 1,38 |
package org.tela_botanica.del.client.vues.plateformedetermination.detail; |
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.user.client.ui.Composite; |
import com.google.gwt.user.client.ui.Image; |
import com.google.gwt.user.client.ui.Label; |
import com.google.gwt.user.client.ui.Widget; |
public class DetailImageObservationVue extends Composite { |
@UiField |
protected Image imageObservation; |
@UiField |
protected Label nomObservateur, nomRetenu, dateObservation, famille, localite; |
private static DetailImageObservationUIiBinder uiBinder = GWT.create(DetailImageObservationUIiBinder.class); |
interface DetailImageObservationUIiBinder extends UiBinder<Widget, DetailImageObservationVue> { |
}; |
public DetailImageObservationVue() { |
initWidget(uiBinder.createAndBindUi(this)); |
} |
public void chargerInformationsObservation(org.tela_botanica.del.client.modeles.Image image) { |
imageObservation.setUrl(image.getUrl()); |
nomObservateur.setText(image.getObservation().getAuteur()); |
nomRetenu.setText(image.getObservation().getNomRetenu()); |
famille.setText(image.getObservation().getFamille()); |
localite.setText(image.getObservation().getLocalite()); |
dateObservation.setText(image.getObservation().getDate()); |
} |
} |
/src/org/tela_botanica/del/client/vues/plateformedetermination/detail/detailObservation.css |
---|
New file |
0,0 → 1,6 |
.groupeObservation img {-moz-box-shadow:4px 4px 2px #AAA} |
.detailObservation {font-size:11px; position:absolute; padding:5px; color:white; background:#333; opacity:0.8; margin-top:-80px; width:230px;} |
.observateur td {font-size:11px; white-space:nowrap} |
.date {} |
.nomRetenu {font-weight:bold} |
.dateObservation {} |
/src/org/tela_botanica/del/client/vues/plateformedetermination/detail/DetailImageObservationVue.ui.xml |
---|
New file |
0,0 → 1,36 |
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent"> |
<ui:UiBinder |
xmlns:ui='urn:ui:com.google.gwt.uibinder' |
xmlns:g='urn:import:com.google.gwt.user.client.ui'> |
<ui:with field="constants" type="org.tela_botanica.del.client.i18n.Vocabulary"/> |
<ui:style src="detailObservation.css" /> |
<g:VerticalPanel styleName="{style.groupeObservation}"> |
<g:Image ui:field="imageObservation"/> |
<g:VerticalPanel ui:field="detailObservation" styleName="{style.detailObservation}"> |
<g:HorizontalPanel styleName="{style.observateur}"> |
<!-- g:Label text="{constants.observateur} : "/ --> |
<g:Label ui:field="nomObservateur" /><g:HTML> - </g:HTML><g:Label ui:field="localite" /><g:HTML> - </g:HTML><g:Label ui:field="dateObservation" /> |
</g:HorizontalPanel> |
<g:HorizontalPanel> |
<!-- <g:Label text="{constants.nom_retenu} : "/> --> |
<g:Label ui:field="nomRetenu" styleName="{style.nomRetenu}"/> |
</g:HorizontalPanel> |
<g:HorizontalPanel styleName="{style.date}"> |
<!-- <g:Label text="{constants.date_observation} : "/> --> |
</g:HorizontalPanel> |
<g:HorizontalPanel> |
<!-- <g:Label text="{constants.famille} : "/> --> |
<g:HorizontalPanel><g:Label ui:field="famille" /></g:HorizontalPanel> |
</g:HorizontalPanel> |
<g:HorizontalPanel> |
<!-- <g:Label text="{constants.localite} : "/> --> |
</g:HorizontalPanel> |
</g:VerticalPanel> |
</g:VerticalPanel> |
</ui:UiBinder> |
/src/org/tela_botanica/del/client/vues/plateformedetermination/detail/DetailImageObservationPresenteur.java |
---|
New file |
0,0 → 1,15 |
package org.tela_botanica.del.client.vues.plateformedetermination.detail; |
import org.tela_botanica.del.client.cache.CacheClient; |
import com.google.gwt.user.client.ui.HasWidgets; |
public class DetailImageObservationPresenteur { |
private DetailImageObservationVue detailImageObservationVue = new DetailImageObservationVue(); |
public void go(HasWidgets composite) { |
detailImageObservationVue.chargerInformationsObservation(CacheClient.getInstance().getImageCourante()); |
composite.add(detailImageObservationVue); |
} |
} |
/src/org/tela_botanica/del/client/vues/plateformedetermination/forum/forum.css |
---|
New file |
0,0 → 1,0 |
.table {border:solid 1px #DDD} |
/src/org/tela_botanica/del/client/vues/plateformedetermination/forum/ForumVue.ui.xml |
---|
New file |
0,0 → 1,13 |
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent"> |
<ui:UiBinder |
xmlns:ui='urn:ui:com.google.gwt.uibinder' |
xmlns:g='urn:import:com.google.gwt.user.client.ui' |
xmlns:vues="urn:import:org.tela_botanica.del.client.vues.plateformedetermination.forum"> |
<ui:with field="constants" type="org.tela_botanica.del.client.i18n.Vocabulary" /> |
<ui:style src="forum.css" /> |
<g:VerticalPanel> |
<g:Label text="{constants.lesPropositions}" styleName="titre"/> |
<g:Label text="{constants.infoPropositions}" styleName="petit"/> |
<g:FlexTable ui:field='htmlTableau' styleName="{style.table}" /> |
</g:VerticalPanel> |
</ui:UiBinder> |
/src/org/tela_botanica/del/client/vues/plateformedetermination/forum/LigneForumPresenteur.java |
---|
New file |
0,0 → 1,36 |
package org.tela_botanica.del.client.vues.plateformedetermination.forum; |
import org.tela_botanica.del.client.modeles.MoyenneVote; |
import org.tela_botanica.del.client.modeles.PropositionDetermination; |
import org.tela_botanica.del.client.services.CalculVoteDeterminationService; |
import org.tela_botanica.del.client.vues.plateformedetermination.vote.barrerepartition.BarreRepartitionVotePresenteur; |
import com.google.gwt.user.client.ui.FlexTable; |
public class LigneForumPresenteur { |
private LigneForumVue ligneforumVue; |
private BarreRepartitionVotePresenteur barreRepartitionVotePresenteur = new BarreRepartitionVotePresenteur(); |
private PropositionDetermination determination; |
public LigneForumPresenteur(PropositionDetermination propositionDetermination) { |
this.determination = propositionDetermination; |
} |
public void go(FlexTable tableParente) { |
ligneforumVue = new LigneForumVue(tableParente); |
chargerDetermination(); |
} |
private void chargerDetermination() { |
calculerEtAfficherVoteDetermination(); |
ligneforumVue.chargerDetermination(determination,barreRepartitionVotePresenteur.getBarreRepartitionVoteVue()); |
} |
private void calculerEtAfficherVoteDetermination() { |
MoyenneVote votes = CalculVoteDeterminationService.calculerVoteDetermination(determination); |
barreRepartitionVotePresenteur.afficherVotes(votes); |
} |
} |
/src/org/tela_botanica/del/client/vues/plateformedetermination/forum/ForumPresenteur.java |
---|
New file |
0,0 → 1,47 |
package org.tela_botanica.del.client.vues.plateformedetermination.forum; |
import java.util.List; |
import org.tela_botanica.del.client.cache.CacheClient; |
import org.tela_botanica.del.client.modeles.PropositionDetermination; |
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel; |
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.EvenementAjoutDetermination; |
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.GestionnaireEvenementAjoutDetermination; |
import com.google.gwt.user.client.ui.HasWidgets; |
public class ForumPresenteur { |
private ForumVue forumVue = new ForumVue(); |
private List<PropositionDetermination> determinations; |
public void go(HasWidgets composite) { |
chargerDeterminations(); |
composite.add(forumVue); |
gererEvenements(); |
} |
private void chargerDeterminations() { |
determinations = CacheClient.getInstance().getCurrentObservation().getPropositionsDetermination(); |
forumVue.initialiserEntetesTableau(); |
for (PropositionDetermination determination : determinations) { |
LigneForumPresenteur ligne = new LigneForumPresenteur(determination); |
ligne.go(forumVue.getTable()); |
} |
} |
private void gererEvenements() { |
BusEvenementiel.getInstance().addHandler(EvenementAjoutDetermination.TYPE, new GestionnaireEvenementAjoutDetermination() { |
@Override |
public void onAjoutDetermination(EvenementAjoutDetermination event) { |
LigneForumPresenteur ligne = new LigneForumPresenteur(event.getPropositionDetermination()); |
ligne.go(forumVue.getTable()); |
} |
}); |
} |
} |
/src/org/tela_botanica/del/client/vues/plateformedetermination/forum/LigneForumVue.java |
---|
New file |
0,0 → 1,62 |
package org.tela_botanica.del.client.vues.plateformedetermination.forum; |
import java.util.Date; |
import java.util.List; |
import org.tela_botanica.del.client.modeles.Commentaire; |
import org.tela_botanica.del.client.modeles.PropositionDetermination; |
import com.google.gwt.i18n.client.DateTimeFormat; |
import com.google.gwt.i18n.client.DateTimeFormat.PredefinedFormat; |
import com.google.gwt.user.client.ui.Composite; |
import com.google.gwt.user.client.ui.FlexTable; |
import com.google.gwt.user.client.ui.HTML; |
import com.google.gwt.user.client.ui.HTMLPanel; |
import com.google.gwt.user.client.ui.IsWidget; |
import com.google.gwt.user.client.ui.Tree; |
import com.google.gwt.user.client.ui.TreeItem; |
public class LigneForumVue extends Composite { |
FlexTable tableParente; |
HTMLPanel barreRepartition; |
public LigneForumVue(FlexTable flexTable) { |
tableParente = flexTable; |
} |
public void chargerDetermination(PropositionDetermination determination, IsWidget barreRepartition) { |
Tree arbreCommentaires = new Tree(); |
TreeItem racineArbreCommentaires = new TreeItem(); |
arbreCommentaires.addItem(racineArbreCommentaires); |
creerListeCommentaireRecursive(racineArbreCommentaires, determination.getCommentaires()); |
int ligne = tableParente.getRowCount() + 1; |
tableParente.setWidget(ligne, 1, barreRepartition); |
tableParente.setHTML(ligne, 2, determination.getContributeur()); |
tableParente.setHTML(ligne, 3, DateTimeFormat.getFormat(PredefinedFormat.DATE_SHORT).format(determination.getDate())); |
tableParente.setWidget(ligne, 4, arbreCommentaires); |
} |
private void creerListeCommentaireRecursive(TreeItem parentTreeItem, List<Commentaire> commentaires) { |
for (Commentaire commentaire : commentaires) { |
String commentaireHTML = commentaire.getCommentaire() +" "+ commentaire.getAuteur() + "-"+formaterDatePourForum(commentaire.getDate()); |
parentTreeItem.setHTML(commentaireHTML); |
if (commentaire.getListeCommentaires().size() != 0) { |
TreeItem childTreeItem = new TreeItem(); |
parentTreeItem.addItem(childTreeItem); |
creerListeCommentaireRecursive(childTreeItem, commentaire.getListeCommentaires()); |
} |
} |
parentTreeItem.setState(true); |
} |
private String formaterDatePourForum(Date date) { |
return DateTimeFormat.getFormat(PredefinedFormat.DATE_SHORT).format(date); |
} |
} |
/src/org/tela_botanica/del/client/vues/plateformedetermination/forum/ForumVue.java |
---|
New file |
0,0 → 1,47 |
package org.tela_botanica.del.client.vues.plateformedetermination.forum; |
import java.util.Date; |
import java.util.List; |
import org.tela_botanica.del.client.i18n.I18n; |
import org.tela_botanica.del.client.modeles.Commentaire; |
import org.tela_botanica.del.client.modeles.PropositionDetermination; |
import com.google.gwt.core.client.GWT; |
import com.google.gwt.i18n.client.DateTimeFormat; |
import com.google.gwt.i18n.client.DateTimeFormat.PredefinedFormat; |
import com.google.gwt.uibinder.client.UiBinder; |
import com.google.gwt.uibinder.client.UiField; |
import com.google.gwt.user.client.ui.Composite; |
import com.google.gwt.user.client.ui.FlexTable; |
import com.google.gwt.user.client.ui.Tree; |
import com.google.gwt.user.client.ui.TreeItem; |
import com.google.gwt.user.client.ui.Widget; |
public class ForumVue extends Composite { |
private static ForumUIiBinder uiBinder = GWT.create(ForumUIiBinder.class); |
interface ForumUIiBinder extends UiBinder<Widget, ForumVue> { |
}; |
@UiField |
FlexTable htmlTableau; |
public ForumVue() { |
initWidget(uiBinder.createAndBindUi(this)); |
} |
public void initialiserEntetesTableau() { |
htmlTableau.setHTML(1, 1, I18n.getVocabulary().nom()); |
htmlTableau.setHTML(1, 2, I18n.getVocabulary().contributeur()); |
htmlTableau.setHTML(1, 3, I18n.getVocabulary().fiabilite()); |
htmlTableau.setHTML(1, 4, I18n.getVocabulary().date()); |
htmlTableau.setHTML(1, 5, I18n.getVocabulary().commentaire()); |
} |
public FlexTable getTable() { |
return htmlTableau; |
} |
} |
/src/org/tela_botanica/del/client/vues/plateformedetermination/determinationVue.css |
---|
New file |
0,0 → 1,5 |
.zoneDetermination {width:50%; margin:0 auto;} |
.zoneVote {margin-left:5px; padding:20px; border:#DDD solid 1px; -moz-border-radius:0 10px 10px 0; height:100%} |
.zoneBarreRepartition {border:solid 1px #DDD; padding: 15px;} |
.zoneDetailImage {border:#DDD solid 1px; -moz-border-radius:10px 0 0 10px; padding:20px; height:100%} |
.zoneImage {margin-bottom:10px} |
/src/org/tela_botanica/del/client/vues/rechercheobservations/RechercheObservationsVue.ui.xml |
---|
New file |
0,0 → 1,65 |
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' xmlns:g='urn:import:com.google.gwt.user.client.ui' |
ui:generateFormat='com.google.gwt.i18n.rebind.format.PropertiesFormat' ui:generateKeys="com.google.gwt.i18n.rebind.keygen.MD5KeyGenerator" ui:generateLocales="default"> |
<ui:with field='res' type='org.tela_botanica.del.client.Ressources'/> |
<ui:with field="constants" type="org.tela_botanica.del.client.i18n.Vocabulary"/> |
<ui:style src="RechercheObservations.css" /> |
<g:HTMLPanel styleName="contenu"> |
<g:Label text="Vue Recherche Observations" styleName="titre"/> |
<g:Label text="la vue pour rechercher parmi les observations" styleName="petit"/> |
<g:TextBox styleName="{style.recherchePrincipale}" ui:field="recherchePrincipale">Recherche libre</g:TextBox> |
<g:Button styleName="{style.boutonRecherche}" ui:field="boutonRecherche">Rechercher</g:Button> |
<g:Label styleName="{style.lienRechercheAvancee}" ui:field="lienRechercheAvancee">Recherche avancée</g:Label> |
<g:HTMLPanel styleName="{style.rechercheAvancee}" ui:field="rechercheAvancee"> |
<g:HTMLPanel styleName="{style.champRecherche}"> |
<g:Label text="Département"/> |
<g:TextBox ui:field="departement"/> |
</g:HTMLPanel> |
<g:HTMLPanel styleName="{style.champRecherche}"> |
<g:Label text="Commune"/> |
<g:TextBox ui:field="commune"/> |
</g:HTMLPanel> |
<g:HTMLPanel styleName="{style.champRecherche}"> |
<g:Label text="Taxon"/> |
<g:TextBox ui:field="taxon"/> |
</g:HTMLPanel> |
<g:HTMLPanel styleName="{style.champRecherche}"> |
<g:Label text="Famille"/> |
<g:TextBox ui:field="famille"/> |
</g:HTMLPanel> |
<g:HTMLPanel styleName="{style.champRecherche}"> |
<g:Label text="Genre"/> |
<g:TextBox ui:field="genre"/> |
</g:HTMLPanel> |
<g:HTMLPanel styleName="{style.champRecherche}"> |
<g:Label text="Tag"/> |
<g:TextBox ui:field="tag"/> |
</g:HTMLPanel> |
<g:HTMLPanel styleName="{style.champRecherche}"> |
<g:Label text="Mot-clé"/> |
<g:TextBox ui:field="motCle"/> |
</g:HTMLPanel> |
<g:HTMLPanel styleName="{style.champRecherche}"> |
<g:Label text="Auteur"/> |
<g:TextBox ui:field="auteur"/> |
</g:HTMLPanel> |
<g:HTMLPanel styleName="{style.champRecherche}"> |
<g:Label text="Date"/> |
<g:TextBox ui:field="date"/> |
</g:HTMLPanel> |
<g:Button styleName="{style.boutonRecherche}" ui:field="boutonRechercheAvancee">Rechercher</g:Button> |
<g:HTMLPanel styleName="nettoyage" /> |
</g:HTMLPanel> |
<g:Label ui:field="recherchePrecedente" styleName="{style.recherchePrecedente}"></g:Label> |
<g:HTMLPanel ui:field="zoneObservations" /> |
</g:HTMLPanel> |
</ui:UiBinder> |
/src/org/tela_botanica/del/client/vues/rechercheobservations/observation.css |
---|
New file |
0,0 → 1,3 |
.description {border:solid 1px #AAA; border-width:0 1px 1px 0; width:30%; float:left; -moz-border-radius: 10px 0 0 10px; padding : 10px; -moz-box-shadow: 5px 5px 5px #DDD; margin:0 1px 5px 0; height:200px} |
.photos {border:solid 1px #AAA; border-width:0 1px 1px 0px; width:30%; float:left; -moz-border-radius: 0px; padding : 10px; -moz-box-shadow: 5px 5px 5px #DDD; margin:0 1px 5px 0; height:200px} |
.determination {border:solid 1px #AAA; border-width:0 0 1px 0px ;width:30%; float:left; -moz-border-radius: 0 10px 10px 0; padding : 10px; -moz-box-shadow: 5px 5px 5px #DDD; margin:0 1px 5px 0; height:200px} |
/src/org/tela_botanica/del/client/vues/rechercheobservations/RechercheObservationsPresenteur.java |
---|
New file |
0,0 → 1,163 |
package org.tela_botanica.del.client.vues.rechercheobservations; |
import java.util.HashMap; |
import java.util.Iterator; |
import java.util.List; |
import org.tela_botanica.del.client.composants.presenteur.Presenteur; |
import org.tela_botanica.del.client.modeles.Observation; |
import org.tela_botanica.del.client.utils.MockDatasource; |
import com.google.gwt.event.dom.client.ClickEvent; |
import com.google.gwt.event.dom.client.ClickHandler; |
import com.google.gwt.event.dom.client.KeyCodes; |
import com.google.gwt.event.dom.client.KeyPressEvent; |
import com.google.gwt.event.dom.client.KeyPressHandler; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.Panel; |
import com.google.gwt.user.client.ui.RootPanel; |
import com.google.gwt.user.client.ui.TextBox; |
public class RechercheObservationsPresenteur extends Presenteur { |
private List<Observation> observations; |
public RechercheObservationsPresenteur() { |
super(new RechercheObservationsVue()); |
} |
public void go(HasWidgets composite) { |
if (composite == null) { |
composite = RootPanel.get(); |
} |
composite.add(this.getVue()); |
handleEvents(); |
// On commence par afficher la totalité des observations |
chercherObservations(null); |
afficherObservations(); |
} |
protected void handleEvents() { |
RechercheObservationsVue vue = (RechercheObservationsVue) getVue(); |
// Gestion du clic dans la zone de saisie |
vue.recherchePrincipale.addClickHandler(new ClickHandler() { |
public void onClick(ClickEvent event) { |
TextBox recherchePrincipale = (TextBox) event.getSource(); |
if (recherchePrincipale.getText().equals("Recherche libre")) { |
recherchePrincipale.setText(""); |
} |
} |
}); |
// Gestion de l'affichage de la recherche Avancée |
vue.lienRechercheAvancee.addClickHandler(new ClickHandler() { |
public void onClick(ClickEvent event) { |
Panel rechercheAvancee = ((RechercheObservationsVue) getVue()).rechercheAvancee; |
rechercheAvancee.setVisible(!rechercheAvancee.isVisible()); |
} |
}); |
// Gestion de l'évènement recherche sur le clic ou sur l'appui de la |
// touche Entrée |
vue.boutonRecherche.addClickHandler(new ClickHandler() { |
public void onClick(ClickEvent event) { |
chercherObservations(collecterFormulaire()); |
afficherObservations(); |
} |
}); |
vue.boutonRechercheAvancee.addClickHandler(new ClickHandler() { |
public void onClick(ClickEvent event) { |
chercherObservations(collecterFormulaire()); |
afficherObservations(); |
} |
}); |
vue.recherchePrincipale.addKeyPressHandler(new KeyPressHandler() { |
public void onKeyPress(KeyPressEvent event) { |
if (event.getNativeEvent().getKeyCode() == KeyCodes.KEY_ENTER) { |
chercherObservations(collecterFormulaire()); |
afficherObservations(); |
} |
} |
}); |
} |
// Gestion de la recherche d'observations : |
public HashMap<String, String> collecterFormulaire() { |
RechercheObservationsVue vue = (RechercheObservationsVue) getVue(); |
HashMap<String, String> champsRecherche = new HashMap<String, String>(); |
if (!vue.recherchePrincipale.getText().equals("")) { |
champsRecherche.put("search", vue.recherchePrincipale.getText()); |
} |
if (!vue.departement.getText().equals("")) { |
champsRecherche.put("dept", vue.departement.getText()); |
} |
if (!vue.commune.getText().equals("")) { |
champsRecherche.put("com", vue.commune.getText()); |
} |
if (!vue.taxon.getText().equals("")) { |
champsRecherche.put("taxon", vue.taxon.getText()); |
} |
if (!vue.famille.getText().equals("")) { |
champsRecherche.put("fam", vue.famille.getText()); |
} |
if (!vue.genre.getText().equals("")) { |
champsRecherche.put("gen", vue.genre.getText()); |
} |
if (!vue.tag.getText().equals("")) { |
champsRecherche.put("tag", vue.tag.getText()); |
} |
if (!vue.motCle.getText().equals("")) { |
champsRecherche.put("motCle", vue.motCle.getText()); |
} |
if (!vue.auteur.getText().equals("")) { |
champsRecherche.put("auteur", vue.auteur.getText()); |
} |
if (!vue.date.getText().equals("")) { |
champsRecherche.put("date", vue.date.getText()); |
} |
return champsRecherche; |
} |
public void chercherObservations(HashMap<String, String> champsRecherche) { |
RechercheObservationsVue vue = (RechercheObservationsVue) getVue(); |
vue.rechercheAvancee.setVisible(false); |
this.observations = MockDatasource.getInstance().getObservations(champsRecherche); |
vue.recherchePrecedente.setText(getChaineRecherche(champsRecherche)); |
} |
public void afficherObservations() { |
RechercheObservationsVue vue = (RechercheObservationsVue) getVue(); |
for (Observation observation : observations) { |
ObservationPresenteur presenteur = new ObservationPresenteur(observation); |
presenteur.go(vue.zoneObservations); |
} |
} |
private String getChaineRecherche(HashMap<String, String> valeursRecherche) { |
String chaineRecherche = ""; |
if (valeursRecherche != null) { |
Iterator<String> itCles = valeursRecherche.keySet().iterator(); |
while (itCles.hasNext()) { |
String cle = itCles.next(); |
String valeur = valeursRecherche.get(cle); |
if (valeur != "") { |
chaineRecherche += cle + ":=" + valeur + " "; |
} |
} |
} |
return chaineRecherche; |
} |
} |
/src/org/tela_botanica/del/client/vues/rechercheobservations/ObservationVue.ui.xml |
---|
New file |
0,0 → 1,26 |
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' xmlns:g='urn:import:com.google.gwt.user.client.ui' |
ui:generateFormat='com.google.gwt.i18n.rebind.format.PropertiesFormat' ui:generateKeys="com.google.gwt.i18n.rebind.keygen.MD5KeyGenerator" ui:generateLocales="default"> |
<ui:with field='res' type='org.tela_botanica.del.client.Ressources'/> |
<ui:with field="constants" type="org.tela_botanica.del.client.i18n.Vocabulary"/> |
<ui:style src="observation.css" /> |
<g:HTMLPanel> |
<g:HTMLPanel styleName="{style.description}"> |
<g:Label ui:field="nomRetenu" styleName="sousTitre"/> |
<g:Label ui:field="famille" /> |
<g:Label ui:field="auteur" /> - <g:Label ui:field="date" /> |
<g:Label ui:field="localite" /> |
<g:Label ui:field="motsClefs" /> |
<g:Label ui:field="numNomenclatural" /> |
</g:HTMLPanel> |
<g:HTMLPanel styleName="{style.photos}"> |
<g:Image ui:field="photoPrincipale" /> |
</g:HTMLPanel> |
<g:FlexTable styleName="{style.determination}" ui:field="tableauPropositions" /> |
<g:HTMLPanel styleName="nettoyage" /> |
</g:HTMLPanel> |
</ui:UiBinder> |
/src/org/tela_botanica/del/client/vues/rechercheobservations/RechercheObservationsVue.java |
---|
New file |
0,0 → 1,43 |
package org.tela_botanica.del.client.vues.rechercheobservations; |
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.user.client.ui.Button; |
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 com.google.gwt.user.client.ui.Widget; |
public class RechercheObservationsVue extends Composite { |
// Gestion d'UiBinder |
interface Binder extends UiBinder<Widget, RechercheObservationsVue> { |
} |
private static Binder binder = GWT.create(Binder.class); |
// Définir ici les champs de la vue à afficher en protected |
@UiField |
protected TextBox recherchePrincipale, departement, commune, taxon, famille, genre, tag, motCle, auteur, date; |
@UiField |
protected Button boutonRecherche, boutonRechercheAvancee; |
@UiField |
protected Label lienRechercheAvancee, recherchePrecedente; |
@UiField |
protected Panel rechercheAvancee; |
@UiField |
protected Panel zoneObservations; |
// Constructeur de la vue |
public RechercheObservationsVue() { |
initWidget(binder.createAndBindUi(this)); |
rechercheAvancee.setVisible(false); |
} |
} |
/src/org/tela_botanica/del/client/vues/rechercheobservations/ObservationPresenteur.java |
---|
New file |
0,0 → 1,73 |
package org.tela_botanica.del.client.vues.rechercheobservations; |
import java.util.Iterator; |
import java.util.List; |
import org.tela_botanica.del.client.composants.presenteur.Presenteur; |
import org.tela_botanica.del.client.modeles.Observation; |
import org.tela_botanica.del.client.modeles.PropositionDetermination; |
import com.google.gwt.user.client.ui.HasWidgets; |
public class ObservationPresenteur extends Presenteur { |
private Observation observation; |
public ObservationPresenteur(Observation observation) { |
super(new ObservationVue()); |
this.observation = observation; |
chargerObservation(); |
} |
public void chargerObservation() { |
ObservationVue vue = (ObservationVue) this.getVue(); |
vue.auteur.setText(observation.getAuteur()); |
vue.date.setText(observation.getDate()); |
vue.famille.setText(observation.getFamille()); |
vue.localite.setText(observation.getLocalite()); |
List<String> motsCles = observation.getMotsClefs(); |
Iterator<String> itMotsCles = motsCles.iterator(); |
String motsClesChaine = ""; |
while (itMotsCles.hasNext()) { |
String motCle = itMotsCles.next(); |
motsClesChaine += motCle; |
if (itMotsCles.hasNext()) { |
motsClesChaine += ", "; |
} |
} |
vue.motsClefs.setText(motsClesChaine); |
vue.nomRetenu.setText(observation.getNomRetenu()); |
vue.numNomenclatural.setText(observation.getNumNomenclatural()); |
vue.photoPrincipale.setUrl((observation.getImages()).get(0).getUrl()); |
List<PropositionDetermination> propositions = observation.getPropositionsDetermination(); |
vue.tableauPropositions.setText(0, 0, "Certitude"); |
vue.tableauPropositions.setText(0, 1, "Commentaires"); |
vue.tableauPropositions.setText(0, 2, "Nom"); |
vue.tableauPropositions.setText(0, 3, "Votez"); |
int i = 0; |
for (PropositionDetermination proposition : propositions) { |
i++; |
vue.tableauPropositions.setText(i, 0, String.valueOf(proposition.getVotesDeterminations().size())); |
vue.tableauPropositions.setText(i, 1, String.valueOf(proposition.getCommentaires().size())); |
vue.tableauPropositions.setText(i, 2, proposition.getEspece()); |
} |
// vue.propositions.setText(ch); |
} |
public void go(HasWidgets composite) { |
composite.add(this.getVue()); |
} |
protected void handleEvents() { |
// TODO Auto-generated method stub |
} |
} |
/src/org/tela_botanica/del/client/vues/rechercheobservations/ObservationVue.java |
---|
New file |
0,0 → 1,32 |
package org.tela_botanica.del.client.vues.rechercheobservations; |
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.user.client.ui.Composite; |
import com.google.gwt.user.client.ui.FlexTable; |
import com.google.gwt.user.client.ui.Image; |
import com.google.gwt.user.client.ui.Label; |
import com.google.gwt.user.client.ui.Widget; |
public class ObservationVue extends Composite { |
// Gestion d'UiBinder |
interface Binder extends UiBinder<Widget, ObservationVue> { |
} |
private static Binder binder = GWT.create(Binder.class); |
@UiField |
protected Label auteur, date, famille, localite, motsClefs, nomRetenu, numNomenclatural; |
@UiField |
protected FlexTable tableauPropositions; |
@UiField |
protected Image photoPrincipale; |
public ObservationVue() { |
initWidget(binder.createAndBindUi(this)); |
} |
} |
/src/org/tela_botanica/del/client/vues/rechercheobservations/RechercheObservations.css |
---|
New file |
0,0 → 1,6 |
.recherchePrincipale {width: 50%; font-size:18px; padding:5px; -moz-border-radius:10px; border:solid 1px #AAA;} |
.boutonRecherche {border:solid 1px #AAA; -moz-border-radius:10px; padding:5px; cursor:pointer} |
.lienRechercheAvancee {cursor:pointer; text-decoration:underline; color:blue; float:right; margin-right:240px; margin-top:10px} |
.rechercheAvancee {border:solid 1px #333; padding:10px; -moz-border-radius:0 0 10px 10px; -moz-box-shadow:5px 5px 10px #EEE;position:absolute; width:700px; margin-top:5px; background:white} |
.champRecherche {float:left; width:50%; padding-bottom:5px} |
.recherchePrecedente {color:#555; padding:5px; font-style:italic} |
/src/org/tela_botanica/del/client/vues/comparaisoneflore/comparaisonEflore.css |
---|
New file |
0,0 → 1,7 |
.zoneComparaison {width:50%; margin:0 auto; height:100%} |
.photoComparee {width:500px; margin-left:5px; padding:20px; border:#DDD solid 1px; -moz-border-radius:0 10px 10px 0;} |
.photoPrincipale img, .photoComparee img {-moz-box-shadow:4px 4px 2px #AAA} |
.photoPrincipale {width:500px; border:#DDD solid 1px; -moz-border-radius:10px 0 0 10px; padding:20px; height:100%} |
.fleches {position:absolute; margin-left:-20px; padding:20px;margin-top:-50px; width:500px;} |
.fleches img {cursor:pointer; -moz-box-shadow:0px 0px 0px #000} |
.meta {color:white; background:#333; padding:10px; opacity:0.8em; margin-top:5px} |
/src/org/tela_botanica/del/client/vues/comparaisoneflore/ComparaisonEfloreVue.ui.xml |
---|
New file |
0,0 → 1,69 |
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent"> |
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' xmlns:g='urn:import:com.google.gwt.user.client.ui'> |
<ui:with field='res' type='org.tela_botanica.del.client.Ressources' /> |
<ui:with field="constants" type="org.tela_botanica.del.client.i18n.Vocabulary" /> |
<ui:style src="comparaisonEflore.css" /> |
<g:HorizontalPanel styleName="{style.zoneComparaison}"> |
<g:VerticalPanel styleName="{style.photoPrincipale}"> |
<g:Label text="{constants.taxon_a_determiner}" styleName="titre"/> |
<g:Label text="{constants.taxon_a_determiner}" styleName="petit"/> |
<g:Image ui:field="imagePrincipale" /> |
<g:HTMLPanel styleName="{style.meta}"> |
<g:Label text="{constants.metadonnees_photo}" styleName="titre"/> |
<g:Label text="{constants.metadonnees_photo}" styleName="petit"/> |
<br /> |
<g:Label text="{constants.observateur}" styleName="petit"/><g:Label ui:field="nomAuteur" /> |
<g:Label text="{constants.date_observation}" styleName="petit"/> |
<g:Label ui:field="dateObservation" /> |
<g:Label text="{constants.commentaires}" styleName="petit"/> |
<g:Label ui:field="famille"/> |
<g:Label text="{constants.mots_clefs}" styleName="petit"/> |
<g:Label ui:field="motsClefs"/> |
<br /> |
<g:Label text="{constants.valide_par}" styleName="petit"/> |
<g:Label ui:field="validateurs"/> |
<g:Label text="{constants.date_validation}" styleName="petit"/> |
<g:Label ui:field="dateValidation"/> |
</g:HTMLPanel> |
</g:VerticalPanel> |
<g:VerticalPanel styleName="{style.photoComparee}"> |
<g:Label text="{constants.image_eflore}" styleName="titre"/> |
<g:Label text="{constants.image_eflore}" styleName="petit"/> |
<g:Image ui:field="imageEflore" /> |
<g:HorizontalPanel styleName="{style.fleches}"> |
<g:Image ui:field="scrollLeftImage" resource='{res.arrowLeft}' styleName="gauche"/> |
<g:Image ui:field="scrollRightImage" resource='{res.arrowRight}' styleName="droite" /> |
</g:HorizontalPanel> |
<g:HTMLPanel styleName="{style.meta}"> |
<g:Label text="{constants.metadonnees_photo}" styleName="titre"/> |
<g:Label text="{constants.metadonnees_photo}" styleName="petit"/> |
<g:Label text="{constants.taxon}" styleName="petit"/> |
<g:Label ui:field="nomEspeceEflore" /> |
<g:Label text="{constants.localite}" styleName="petit"/> |
<g:Label ui:field="localiteEflore"/> |
<g:Label text="{constants.auteur}" styleName="petit"/> |
<g:Label ui:field="nomAuteurEflore"/> |
<g:Label text="{constants.transmis_le}" styleName="petit"/> |
<g:Label ui:field="dateObservationEflore"/> |
</g:HTMLPanel> |
</g:VerticalPanel> |
</g:HorizontalPanel> |
</ui:UiBinder> |
/src/org/tela_botanica/del/client/vues/comparaisoneflore/ComparaisonEflorePresenteur.java |
---|
New file |
0,0 → 1,69 |
package org.tela_botanica.del.client.vues.comparaisoneflore; |
import java.util.List; |
import org.tela_botanica.del.client.cache.CacheClient; |
import org.tela_botanica.del.client.modeles.Image; |
import org.tela_botanica.del.client.modeles.VoteProtocole; |
import org.tela_botanica.del.client.utils.MockDatasource; |
import com.google.gwt.event.dom.client.ClickEvent; |
import com.google.gwt.event.dom.client.ClickHandler; |
import com.google.gwt.user.client.ui.HasWidgets; |
public class ComparaisonEflorePresenteur { |
private ComparaisonEfloreVue vue = new ComparaisonEfloreVue(); |
private final MockDatasource observationService = MockDatasource.getInstance(); |
private final MockDatasource validationService = MockDatasource.getInstance(); |
private Image imagePrincipale; |
private String nomTaxonComparaison; |
private List<org.tela_botanica.del.client.modeles.Image> imagesEflore; |
public ComparaisonEflorePresenteur() { |
this.imagePrincipale = CacheClient.getInstance().getImageCourante(); |
this.nomTaxonComparaison = CacheClient.getInstance().getTaxonPourRechercheEflore(); |
} |
public void go(HasWidgets composite) { |
composite.add(vue); |
chargerValidationObservationPrincipale(); |
vue.chargerImagePrincipale(imagePrincipale); |
chargerObservationsEflore(); |
gererEvenements(); |
} |
private void chargerValidationObservationPrincipale() { |
List<VoteProtocole> observationValidations = validationService.getVote(imagePrincipale.getIdImage()); |
imagePrincipale.setVoteProtocoles(observationValidations); |
} |
private void chargerObservationsEflore() { |
imagesEflore = observationService.getImagesEfloreParTaxon(nomTaxonComparaison); |
vue.chargerImagesEflore(imagesEflore, 0); |
} |
private void gererEvenements() { |
vue.getScrollLeftImage().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
vue.chargerImagesEflore(imagesEflore, vue.getCurrentIndexImages() - 1); |
} |
}); |
vue.getScrollRightImage().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
vue.chargerImagesEflore(imagesEflore, vue.getCurrentIndexImages() + 1); |
} |
}); |
} |
} |
/src/org/tela_botanica/del/client/vues/comparaisoneflore/ComparaisonEfloreVue.java |
---|
New file |
0,0 → 1,117 |
package org.tela_botanica.del.client.vues.comparaisoneflore; |
import java.util.Date; |
import java.util.List; |
import org.tela_botanica.del.client.modeles.VoteProtocole; |
import com.google.gwt.core.client.GWT; |
import com.google.gwt.i18n.client.DateTimeFormat; |
import com.google.gwt.i18n.client.DateTimeFormat.PredefinedFormat; |
import com.google.gwt.uibinder.client.UiBinder; |
import com.google.gwt.uibinder.client.UiField; |
import com.google.gwt.user.client.ui.Composite; |
import com.google.gwt.user.client.ui.Image; |
import com.google.gwt.user.client.ui.Label; |
import com.google.gwt.user.client.ui.Widget; |
public class ComparaisonEfloreVue extends Composite { |
interface MyUiBinder extends UiBinder<Widget, ComparaisonEfloreVue> { |
} |
private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class); |
@UiField |
Label nomAuteur, dateObservation, famille, motsClefs, validateurs, dateValidation; |
@UiField |
Label nomEspeceEflore, nomAuteurEflore, localiteEflore, dateObservationEflore; |
@UiField |
Image imagePrincipale; |
@UiField |
Image imageEflore; |
@UiField |
Image scrollLeftImage; |
@UiField |
Image scrollRightImage; |
private int currentIndexImages; |
public ComparaisonEfloreVue() { |
initWidget(uiBinder.createAndBindUi(this)); |
} |
protected void chargerImagePrincipale(org.tela_botanica.del.client.modeles.Image image) { |
// mots clefs |
String motsClefsConcatenes = ""; |
for (String motClef : image.getObservation().getMotsClefs()) { |
motsClefsConcatenes += motClef + ","; |
} |
motsClefsConcatenes = motsClefsConcatenes.subSequence(0, motsClefsConcatenes.lastIndexOf(",")).toString(); |
// validateurs |
String validateursConcatenes = ""; |
for (VoteProtocole observationValidation : image.getVoteProtocoles()) { |
validateursConcatenes += observationValidation.getContributeur() + ", "; |
} |
validateursConcatenes = validateursConcatenes.subSequence(0, validateursConcatenes.lastIndexOf(",")).toString(); |
// date derniere validation |
Date dateDerniereValidation = null; |
for (VoteProtocole observationValidation : image.getVoteProtocoles()) { |
if (dateDerniereValidation == null) { |
dateDerniereValidation = observationValidation.getDate(); |
} else if (dateDerniereValidation.before(observationValidation.getDate())) { |
dateDerniereValidation = observationValidation.getDate(); |
} |
} |
motsClefs.setText(motsClefsConcatenes); |
nomAuteur.setText(image.getObservation().getAuteur()); |
imagePrincipale.setUrl(image.getUrl()); |
dateObservation.setText(image.getObservation().getDate()); |
famille.setText(image.getObservation().getFamille()); |
validateurs.setText(validateursConcatenes); |
dateValidation.setText(DateTimeFormat.getFormat(PredefinedFormat.DATE_SHORT).format(dateDerniereValidation)); |
} |
protected void chargerImagesEflore(List<org.tela_botanica.del.client.modeles.Image> observationsEflore, int indexImage) { |
if (indexImage >= 0 && indexImage < observationsEflore.size()) { |
currentIndexImages = indexImage; |
} |
org.tela_botanica.del.client.modeles.Image observationEflore = observationsEflore.get(currentIndexImages); |
nomEspeceEflore.setText(observationEflore.getObservation().getSpecies()); |
nomAuteurEflore.setText(observationEflore.getObservation().getAuteur()); |
imageEflore.setUrl(observationEflore.getUrl()); |
dateObservationEflore.setText(observationEflore.getObservation().getDate()); |
localiteEflore.setText(observationEflore.getObservation().getLocalite()); |
} |
public Image getScrollLeftImage() { |
return scrollLeftImage; |
} |
public void setScrollLeftImage(Image scrollLeftImage) { |
this.scrollLeftImage = scrollLeftImage; |
} |
public int getCurrentIndexImages() { |
return currentIndexImages; |
} |
public Image getScrollRightImage() { |
return scrollRightImage; |
} |
} |
/src/org/tela_botanica/del/client/vues/rechercheimages/detail/ObservationDetailPresenteur.java |
---|
New file |
0,0 → 1,22 |
package org.tela_botanica.del.client.vues.rechercheimages.detail; |
import org.tela_botanica.del.client.modeles.Observation; |
import com.google.gwt.user.client.ui.HasWidgets; |
public class ObservationDetailPresenteur { |
private ObservationDetailVue view = new ObservationDetailVue(); |
private Observation observation; |
public ObservationDetailPresenteur(Observation imageCel) { |
this.observation = imageCel; |
} |
public void go(HasWidgets container) { |
view.loadDetails(observation); |
container.add(view); |
} |
} |
/src/org/tela_botanica/del/client/vues/rechercheimages/detail/ObservationDetailVue.java |
---|
New file |
0,0 → 1,30 |
package org.tela_botanica.del.client.vues.rechercheimages.detail; |
import org.tela_botanica.del.client.modeles.Observation; |
import com.google.gwt.user.client.ui.Composite; |
import com.google.gwt.user.client.ui.HTML; |
import com.google.gwt.user.client.ui.Panel; |
import com.google.gwt.user.client.ui.VerticalPanel; |
public class ObservationDetailVue extends Composite { |
private final Panel mainPanel = new VerticalPanel(); |
protected ObservationDetailVue() { |
initWidget(mainPanel); |
} |
protected void loadDetails(Observation observation) { |
mainPanel.add(new HTML("Observateur:" + observation.getAuteur())); |
mainPanel.add(new HTML("Nom retenu:" + observation.getNomRetenu())); |
mainPanel.add(new HTML("Date: " + observation.getDate())); |
mainPanel.add(new HTML("Famille: " + observation.getFamille())); |
mainPanel.add(new HTML("Localite " + observation.getLocalite())); |
} |
public Panel getMainPanel() { |
return mainPanel; |
} |
} |
/src/org/tela_botanica/del/client/vues/rechercheimages/rechercheImage.css |
---|
New file |
0,0 → 1,2 |
.observationsRecherche {width:50%; margin:0 auto;} |
/src/org/tela_botanica/del/client/vues/rechercheimages/RechercheImageVue.ui.xml |
---|
New file |
0,0 → 1,25 |
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' |
xmlns:g='urn:import:com.google.gwt.user.client.ui' ui:generateFormat='com.google.gwt.i18n.rebind.format.PropertiesFormat' |
ui:generateKeys="com.google.gwt.i18n.rebind.keygen.MD5KeyGenerator" |
ui:generateLocales="default"> |
<ui:with field='res' type='org.tela_botanica.del.client.Ressources' /> |
<ui:with field="constants" type="org.tela_botanica.del.client.i18n.Vocabulary" /> |
<ui:style src="rechercheImage.css" /> |
<g:VerticalPanel> |
<g:HTMLPanel styleName="{style.observationsRecherche}"> |
<g:Label text="{constants.rechercher_image}" styleName="titre" /> |
<g:Label text="{constants.entrer_mot_clef}" styleName="petit" /> |
<g:TextBox ui:field="nomEspece" text="apifera" styleName="test" /> |
<g:Button text="{constants.rechercher_taxon}" ui:field="boutonChercher" /> |
<g:HorizontalPanel ui:field="panneauProtocole"> |
<g:Label ui:field="protocoleLabel" text="{constants.protocole}" /> |
<g:ListBox ui:field="listeProtocoles" /> |
</g:HorizontalPanel> |
</g:HTMLPanel> |
<g:VerticalPanel ui:field="panneauResultats" /> |
</g:VerticalPanel> |
</ui:UiBinder> |
/src/org/tela_botanica/del/client/vues/rechercheimages/resultats/ResultatRechercheImagePresenteur.java |
---|
New file |
0,0 → 1,88 |
package org.tela_botanica.del.client.vues.rechercheimages.resultats; |
import java.util.ArrayList; |
import java.util.Iterator; |
import java.util.List; |
import org.tela_botanica.del.client.cache.CacheClient; |
import org.tela_botanica.del.client.modeles.Image; |
import org.tela_botanica.del.client.pagination.PaginationPresenteur; |
import org.tela_botanica.del.client.vues.rechercheimages.resultats.images.ImagePresenteur; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.Panel; |
public class ResultatRechercheImagePresenteur { |
private final ResultatRechercheImageVue vue = new ResultatRechercheImageVue(); |
private static ResultatRechercheImagePresenteur instance; |
private List<ImagePresenteur> observationPresenteurs = new ArrayList<ImagePresenteur>(); |
public ResultatRechercheImagePresenteur() { |
instance = this; |
} |
public void go(HasWidgets composite) { |
composite.add(vue); |
afficherImagesEtMoyenneVoteProtocole(); |
} |
private void afficherImagesEtMoyenneVoteProtocole() { |
// Remise à zéro du panneau d'affichage et des composants |
vue.nettoyer(); |
// TODO : créer une méthode globale pour l'application ? voir |
// superclasse présenteur ? |
// FIXME : ne s'affiche pas |
vue.startChargement(); |
vue.creerPanneauxObservation(CacheClient.getInstance().getImages()); |
Iterator<Panel> panelIterator = vue.getPanneauxImages().iterator(); |
for (Image image : CacheClient.getInstance().getImages()) { |
Panel imagePanel = panelIterator.next(); |
ImagePresenteur imagePresenteur = new ImagePresenteur(image, CacheClient.getInstance().getProtocoleCourant()); |
imagePresenteur.go(imagePanel); |
observationPresenteurs.add(imagePresenteur); |
} |
vue.afficherPanneauxImage(0, vue.getNbImagesPerPage()); |
createPaginationWidget(CacheClient.getInstance().getImages().size()); |
vue.stopChargement(); |
} |
public void fermerTousPanneauxDetailsObservations() { |
for (ImagePresenteur observationPresenteur : observationPresenteurs) { |
if (observationPresenteur.isDetailsOpen()) { |
observationPresenteur.cacherDetails(); |
} |
} |
} |
private void createPaginationWidget(int nbImages) { |
new PaginationPresenteur(nbImages) { |
@Override |
public void changerPage(int debut, int fin) { |
showImagePanels(debut, fin); |
} |
}.go(vue.getPanneauPagination()); |
} |
public void showImagePanels(int first, int last) { |
vue.afficherPanneauxImage(first, last); |
} |
public ResultatRechercheImageVue getView() { |
return vue; |
} |
public static ResultatRechercheImagePresenteur getInstance() { |
return instance; |
} |
} |
/src/org/tela_botanica/del/client/vues/rechercheimages/resultats/ResultatRechercheImageVue.java |
---|
New file |
0,0 → 1,122 |
package org.tela_botanica.del.client.vues.rechercheimages.resultats; |
import java.util.ArrayList; |
import java.util.List; |
import org.tela_botanica.del.client.modeles.Image; |
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.user.client.ui.Composite; |
import com.google.gwt.user.client.ui.FlexTable; |
import com.google.gwt.user.client.ui.FlowPanel; |
import com.google.gwt.user.client.ui.Panel; |
import com.google.gwt.user.client.ui.VerticalPanel; |
import com.google.gwt.user.client.ui.Widget; |
public class ResultatRechercheImageVue extends Composite { |
private final VerticalPanel mainPanel = new VerticalPanel(); |
private final Panel panneauChargement = new FlowPanel(); |
private final List<Panel> panneauxImages = new ArrayList<Panel>(); |
private int nbCol = 5; |
private final int nbImagesPerPage = 10; |
private int numImage = 0; |
// Annotation can be used to change the name of the associated xml file |
// @UiTemplate("ObservationRechercheVue.ui.xml") |
interface MyUiBinder extends UiBinder<Widget, ResultatRechercheImageVue> { |
} |
private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class); |
@UiField |
Panel panneauPagination; |
@UiField |
FlexTable imageTable; |
// Constructeur |
protected ResultatRechercheImageVue() { |
initWidget(uiBinder.createAndBindUi(this)); |
} |
/** |
* Nettoie et remet à zéro les composants du panneau qui doivent l'être |
* */ |
protected void nettoyer() { |
panneauPagination.clear(); |
setNumImage(0); |
imageTable.clear(); |
panneauxImages.clear(); |
} |
protected void creerPanneauxObservation(List<Image> images) { |
for (int i = 0; i < images.size(); i++) { |
Panel imagePanel = new VerticalPanel(); |
panneauxImages.add(imagePanel); |
} |
} |
protected void afficherPanneauxImage(int first, int last) { |
imageTable.clear(); |
int positionImage = 0; |
for (int numImage = first; numImage < last; numImage++) { |
try { |
Panel panel = panneauxImages.get(numImage); |
imageTable.setWidget((positionImage) / nbCol, (positionImage) % nbCol, panel); |
} catch (Exception e) { |
break; |
} |
positionImage++; |
} |
} |
public void setNumImage(int numImage) { |
this.numImage = numImage; |
} |
protected void startChargement() { |
panneauChargement.setVisible(true); |
} |
protected void stopChargement() { |
panneauChargement.setVisible(false); |
} |
public FlexTable getImageTable() { |
return imageTable; |
} |
public int getNumImage() { |
return numImage; |
} |
public Panel getPanneauChargement() { |
return panneauChargement; |
} |
public Panel getPanneauPagination() { |
return panneauPagination; |
} |
public int getNbImagesPerPage() { |
return nbImagesPerPage; |
} |
public Panel getPanel() { |
return mainPanel; |
} |
public List<Panel> getPanneauxImages() { |
return panneauxImages; |
} |
} |
/src/org/tela_botanica/del/client/vues/rechercheimages/resultats/rechercheImage.css |
---|
New file |
0,0 → 1,2 |
.observationsRecherche {width:50%; margin:0 auto;} |
/src/org/tela_botanica/del/client/vues/rechercheimages/resultats/images/ImageVue.ui.xml |
---|
New file |
0,0 → 1,45 |
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' xmlns:g='urn:import:com.google.gwt.user.client.ui' ui:generateFormat='com.google.gwt.i18n.rebind.format.PropertiesFormat' |
ui:generateKeys="com.google.gwt.i18n.rebind.keygen.MD5KeyGenerator" ui:generateLocales="default"> |
<ui:with field='res' type='org.tela_botanica.del.client.Ressources'/> |
<ui:with field="constants" type="org.tela_botanica.del.client.i18n.Vocabulary"/> |
<ui:style src="image.css" /> |
<g:HTMLPanel styleName="{style.observations}"> |
<g:Image ui:field="imagePrincipale" resource='{res.logo}' /> |
<g:VerticalPanel styleName="{style.zonePlus}"> |
<g:Label ui:field="enSavoirPlus" text=" "/> |
<g:VerticalPanel styleName="{style.zoneCache}" ui:field="zoneCache"> |
<g:VerticalPanel> |
<g:HorizontalPanel> |
<g:Label text="{constants.observateur} : "/> |
<g:Label ui:field="nomObservateur">Nom observateur</g:Label> |
</g:HorizontalPanel> |
<g:HorizontalPanel> |
<g:Label text="{constants.nom_retenu} : "/> |
<g:Label ui:field="nomRetenu">Nom retenu</g:Label> |
</g:HorizontalPanel> |
<g:HorizontalPanel> |
<g:Label text="{constants.date_observation} : "/> |
<g:Label ui:field="dateObservation">Date observation</g:Label> |
</g:HorizontalPanel> |
<g:HorizontalPanel> |
<g:Label text="{constants.famille} : "/> |
<g:Label ui:field="famille">Famille</g:Label> |
</g:HorizontalPanel> |
<g:HorizontalPanel> |
<g:Label text="{constants.localite} : "/> |
<g:Label ui:field="localite">Localite</g:Label> |
</g:HorizontalPanel> |
</g:VerticalPanel> |
</g:VerticalPanel> |
<g:Label ui:field="ajoutValidation" styleName="{style.ajoutValidation}">Ajouter votre validation</g:Label> |
</g:VerticalPanel> |
<g:HorizontalPanel ui:field="voter"/> |
<g:VerticalPanel> |
<g:Label ui:field="nomAuteur" styleName="petit">Auteur</g:Label> |
<g:Label ui:field="nomEspece" styleName="{style.espece}">Nom</g:Label> |
</g:VerticalPanel> |
</g:HTMLPanel> |
</ui:UiBinder> |
/src/org/tela_botanica/del/client/vues/rechercheimages/resultats/images/ImagePresenteur.java |
---|
New file |
0,0 → 1,103 |
package org.tela_botanica.del.client.vues.rechercheimages.resultats.images; |
import java.util.List; |
import org.tela_botanica.del.client.modeles.Image; |
import org.tela_botanica.del.client.modeles.Protocole; |
import org.tela_botanica.del.client.modeles.VoteProtocole; |
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel; |
import org.tela_botanica.del.client.navigation.evenement.validationobservation.EvenementValidation; |
import org.tela_botanica.del.client.utils.MockDatasource; |
import org.tela_botanica.del.client.vues.rechercheimages.resultats.ResultatRechercheImagePresenteur; |
import org.tela_botanica.del.client.vues.rechercheimages.vote.MoyenneVotePresenteur; |
import com.google.gwt.event.dom.client.ClickEvent; |
import com.google.gwt.event.dom.client.ClickHandler; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.Label; |
import com.google.gwt.user.client.ui.VerticalPanel; |
public class ImagePresenteur { |
private final MockDatasource validationService = MockDatasource.getInstance(); |
private ImageVue vue = new ImageVue(); |
private final Image image; |
private boolean detailsOpen = false; |
private Protocole protocole; |
public ImagePresenteur(Image image, Protocole protocole) { |
this.image = image; |
this.protocole = protocole; |
} |
public void go(HasWidgets composite) { |
composite.add(vue); |
vue.loadImage(image); |
loadValidationData(); |
handleEvents(); |
} |
private void loadValidationData() { |
List<VoteProtocole> observationValidationDatas = validationService.getVoteByImageAndProtocol(image.getIdImage(), protocole.getNom()); |
new MoyenneVotePresenteur(observationValidationDatas).go(vue.getVoter()); |
} |
private void handleEvents() { |
vue.getEnSavoirPlus().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
if (!detailsOpen) { |
afficherDetails(); |
} else { |
cacherDetails(); |
} |
} |
}); |
vue.getAjoutValidation().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
BusEvenementiel.getInstance().fireEvent(new EvenementValidation(image)); |
} |
}); |
} |
public void cacherDetails() { |
VerticalPanel zoneCache = vue.getZoneCache(); |
Label enSavoirPlus = vue.getEnSavoirPlus(); |
zoneCache.setVisible(false); |
enSavoirPlus.setStyleName("boutonPlus"); |
detailsOpen = false; |
} |
public void afficherDetails() { |
ResultatRechercheImagePresenteur.getInstance().fermerTousPanneauxDetailsObservations(); |
VerticalPanel zoneCache = vue.getZoneCache(); |
Label enSavoirPlus = vue.getEnSavoirPlus(); |
zoneCache.setVisible(true); |
enSavoirPlus.setStyleName("boutonMoins"); |
detailsOpen = true; |
} |
public boolean isDetailsOpen() { |
return detailsOpen; |
} |
public ImageVue getVue() { |
return vue; |
} |
} |
/src/org/tela_botanica/del/client/vues/rechercheimages/resultats/images/ImageVue.java |
---|
New file |
0,0 → 1,110 |
package org.tela_botanica.del.client.vues.rechercheimages.resultats.images; |
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.user.client.ui.Composite; |
import com.google.gwt.user.client.ui.FlowPanel; |
import com.google.gwt.user.client.ui.HTML; |
import com.google.gwt.user.client.ui.HorizontalPanel; |
import com.google.gwt.user.client.ui.Image; |
import com.google.gwt.user.client.ui.Label; |
import com.google.gwt.user.client.ui.Panel; |
import com.google.gwt.user.client.ui.VerticalPanel; |
import com.google.gwt.user.client.ui.Widget; |
public class ImageVue extends Composite { |
// Annotation can be used to change the name of the associated xml file |
// @UiTemplate("ObservationVue.ui.xml") |
interface MyUiBinder extends UiBinder<Widget, ImageVue> { |
} |
private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class); |
@UiField |
protected Label nomEspece, nomAuteur, nomObservateur, nomRetenu, dateObservation, famille, localite; |
@UiField |
protected HorizontalPanel voter; |
@UiField |
protected VerticalPanel zoneCache; |
@UiField |
Image imagePrincipale; |
@UiField |
Label enSavoirPlus, ajoutValidation; |
public ImageVue() { |
// sets listBox |
initWidget(uiBinder.createAndBindUi(this)); |
} |
protected void loadImage(org.tela_botanica.del.client.modeles.Image image) { |
enSavoirPlus.setStyleName("boutonPlus"); |
zoneCache.setVisible(false); |
nomEspece.setText(image.getObservation().getSpecies()); |
nomAuteur.setText(image.getObservation().getAuteur()); |
imagePrincipale.setUrl(image.getUrl()); |
nomObservateur.setText(image.getObservation().getAuteur()); |
nomRetenu.setText(image.getObservation().getNomRetenu()); |
dateObservation.setText(image.getObservation().getDate()); |
famille.setText(image.getObservation().getFamille()); |
localite.setText(image.getObservation().getLocalite()); |
} |
protected void clearDetails() { |
/* |
* detailsPanel.clear(); |
* moreDetailsHtml.setHTML("<img src='img/icon_plus.gif' >"); |
*/ |
} |
public Panel getFlowPanel() { |
// return flowPanel; |
return new FlowPanel(); |
} |
public Panel getDetailsPanel() { |
// return detailsPanel; |
return new FlowPanel(); |
} |
public HTML getMoreDetailsHtml() { |
// return moreDetailsHtml; |
return new HTML(); |
} |
public HTML getNoValidationDataHtml() { |
// return noValidationDataHtml; |
return new HTML(); |
} |
public HTML getProposeValidationDataHtml() { |
// return proposeValidationDataHtml; |
return new HTML(); |
} |
public HorizontalPanel getVoter() { |
return voter; |
} |
public VerticalPanel getZoneCache() { |
return zoneCache; |
} |
public Label getEnSavoirPlus() { |
return enSavoirPlus; |
} |
public Image getImagePrincipale() { |
return imagePrincipale; |
} |
public Label getAjoutValidation() { |
return ajoutValidation; |
} |
} |
/src/org/tela_botanica/del/client/vues/rechercheimages/resultats/images/image.css |
---|
New file |
0,0 → 1,9 |
.observations {border: solid 1px #DDD; padding:10px; width:150px; height:250px; -moz-border-radius:10px; -webkit-border-radius:10px; } |
.observations img {width:150px} |
.zoneCache {position:absolute; padding:15px; border:solid 1px #CCC; background:white; z-index:1000; -moz-border-radius:5px; -webkit-border-radius:5px; -moz-box-shadow:2px 2px 2px 2px #AAA; -webkit-box-shadow:2px 2px 2px 2px #AAA } |
.ajoutValidation {background:url(./img/add.png) no-repeat; font-size:11px; padding:2px 0px 2px 18px; margin-top:4px; cursor:pointer} |
.espece {font-size:12px; font-weight:bold; color:#454341} |
.zonePlus {position:absolute; margin-top:65px;} |
.voter {/*position:absolute; margin-top:65px; margin-left:20px;*/} |
/src/org/tela_botanica/del/client/vues/rechercheimages/resultats/image.css |
---|
New file |
0,0 → 1,9 |
.observations {border: solid 1px #DDD; padding:10px; width:150px; height:250px; -moz-border-radius:10px; -webkit-border-radius:10px; } |
.observations img {width:150px} |
.zoneCache {position:absolute; padding:15px; border:solid 1px #CCC; background:white; z-index:1000; -moz-border-radius:5px; -webkit-border-radius:5px; -moz-box-shadow:2px 2px 2px 2px #AAA; -webkit-box-shadow:2px 2px 2px 2px #AAA } |
.ajoutValidation {background:url(./img/add.png) no-repeat; font-size:11px; padding:2px 0px 2px 18px; margin-top:4px; cursor:pointer} |
.espece {font-size:12px; font-weight:bold; color:#454341} |
.zonePlus {position:absolute; margin-top:65px;} |
.voter {/*position:absolute; margin-top:65px; margin-left:20px;*/} |
/src/org/tela_botanica/del/client/vues/rechercheimages/resultats/ResultatRechercheImageVue.ui.xml |
---|
New file |
0,0 → 1,14 |
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' |
xmlns:g='urn:import:com.google.gwt.user.client.ui' ui:generateFormat='com.google.gwt.i18n.rebind.format.PropertiesFormat' |
ui:generateKeys="com.google.gwt.i18n.rebind.keygen.MD5KeyGenerator" |
ui:generateLocales="default"> |
<ui:with field='res' type='org.tela_botanica.del.client.Ressources' /> |
<ui:with field="constants" type="org.tela_botanica.del.client.i18n.Vocabulary" /> |
<ui:style src="rechercheImage.css" /> |
<g:HTMLPanel styleName="{style.observationsRecherche}"> |
<g:FlexTable ui:field="imageTable" /> |
<g:VerticalPanel ui:field="panneauPagination" /> |
</g:HTMLPanel> |
</ui:UiBinder> |
/src/org/tela_botanica/del/client/vues/rechercheimages/RechercheImagePresenteur.java |
---|
New file |
0,0 → 1,89 |
package org.tela_botanica.del.client.vues.rechercheimages; |
import java.util.List; |
import org.tela_botanica.del.client.cache.CacheClient; |
import org.tela_botanica.del.client.modeles.Image; |
import org.tela_botanica.del.client.modeles.Protocole; |
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel; |
import org.tela_botanica.del.client.navigation.evenement.changementprotocole.EvenementChangementProtocole; |
import org.tela_botanica.del.client.navigation.evenement.rechercheimage.EvenementRechercheImage; |
import org.tela_botanica.del.client.utils.KeyboardKeyListener; |
import org.tela_botanica.del.client.utils.MockDatasource; |
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.event.dom.client.ClickHandler; |
import com.google.gwt.user.client.ui.HasWidgets; |
public class RechercheImagePresenteur { |
private final MockDatasource dataSource = MockDatasource.getInstance(); |
private final RechercheImageVue vue = new RechercheImageVue(); |
private String protocoleParDefaut = Protocole.IDENTIFICATION_AUTOMATIQUE; |
private List<Protocole> protocoles; |
public RechercheImagePresenteur() { |
if (CacheClient.getInstance().getProtocoleCourant() == null) { |
CacheClient.getInstance().setProtocoleCourant(dataSource.getProtocole(protocoleParDefaut)); |
} |
} |
public void go(HasWidgets composite) { |
composite.add(vue); |
gererEvenements(); |
chargerProtocoles(); |
} |
private void chargerProtocoles() { |
protocoles = dataSource.getProtocoles(); |
for (Protocole protocole : protocoles) { |
vue.getListeProtocoles().addItem(protocole.getNom()); |
} |
vue.getListeProtocoles().setSelectedIndex(protocoles.indexOf(CacheClient.getInstance().getProtocoleCourant())); |
} |
@SuppressWarnings("deprecation") |
public void gererEvenements() { |
vue.getBoutonChercher().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
chargerImages(); |
} |
}); |
// TODO : remplacer par KeyUp, KeyDown ... etc. |
vue.getTextBox().addKeyboardListener(new KeyboardKeyListener() { |
@Override |
public void onEnterKeyUp() { |
chargerImages(); |
} |
}); |
vue.getListeProtocoles().addChangeHandler(new ChangeHandler() { |
@Override |
public void onChange(ChangeEvent event) { |
Protocole protocoleCourant = protocoles.get(vue.getListeProtocoles().getSelectedIndex()); |
EvenementChangementProtocole evenement = new EvenementChangementProtocole(protocoleCourant); |
BusEvenementiel.getInstance().fireEvent(evenement); |
} |
}); |
} |
private void chargerImages() { |
List<Image> imagesFromDatabase = dataSource.getImages(); |
EvenementRechercheImage evenementRechercheImage = new EvenementRechercheImage(imagesFromDatabase); |
BusEvenementiel.getInstance().fireEvent(evenementRechercheImage); |
} |
public RechercheImageVue getVue() { |
return vue; |
} |
} |
/src/org/tela_botanica/del/client/vues/rechercheimages/RechercheImageVue.java |
---|
New file |
0,0 → 1,90 |
package org.tela_botanica.del.client.vues.rechercheimages; |
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.user.client.ui.Button; |
import com.google.gwt.user.client.ui.Composite; |
import com.google.gwt.user.client.ui.FlowPanel; |
import com.google.gwt.user.client.ui.Label; |
import com.google.gwt.user.client.ui.ListBox; |
import com.google.gwt.user.client.ui.Panel; |
import com.google.gwt.user.client.ui.TextBox; |
import com.google.gwt.user.client.ui.VerticalPanel; |
import com.google.gwt.user.client.ui.Widget; |
public class RechercheImageVue extends Composite { |
private final VerticalPanel mainPanel = new VerticalPanel(); |
private final Panel panneauChargement = new FlowPanel(); |
// Annotation can be used to change the name of the associated xml file |
// @UiTemplate("ObservationRechercheVue.ui.xml") |
interface MyUiBinder extends UiBinder<Widget, RechercheImageVue> { |
} |
private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class); |
@UiField |
TextBox nomEspece; |
@UiField |
Panel panneauProtocole, panneauResultats; |
@UiField |
Button boutonChercher; |
@UiField |
Label protocoleLabel; |
@UiField |
ListBox listeProtocoles; |
// Constructeur |
protected RechercheImageVue() { |
initWidget(uiBinder.createAndBindUi(this)); |
nomEspece.setFocus(true); |
} |
public Panel getPanneauChargement() { |
return panneauChargement; |
} |
public TextBox getTextBox() { |
return nomEspece; |
} |
public Panel getPanel() { |
return mainPanel; |
} |
public Button getBoutonChercher() { |
return boutonChercher; |
} |
public ListBox getListeProtocoles() { |
return listeProtocoles; |
} |
public void setListeProtocoles(ListBox listeProtocoles) { |
this.listeProtocoles = listeProtocoles; |
} |
public Label getProtocoleLabel() { |
return protocoleLabel; |
} |
public void setProtocoleLabel(Label protocoleLabel) { |
this.protocoleLabel = protocoleLabel; |
} |
public Panel getPanneauResultats() { |
return panneauResultats; |
} |
public void setPanneauResultats(Panel panneauResultats) { |
this.panneauResultats = panneauResultats; |
} |
} |
/src/org/tela_botanica/del/client/vues/rechercheimages/vote/DetailVotePresenteur.java |
---|
New file |
0,0 → 1,20 |
package org.tela_botanica.del.client.vues.rechercheimages.vote; |
import java.util.List; |
import org.tela_botanica.del.client.modeles.VoteProtocole; |
import com.google.gwt.user.client.ui.HasWidgets; |
public class DetailVotePresenteur { |
private DetailVoteVue view; |
public DetailVotePresenteur(List<VoteProtocole> validationDatas) { |
view = new DetailVoteVue(validationDatas); |
} |
public void go(HasWidgets container) { |
container.add(view); |
} |
} |
/src/org/tela_botanica/del/client/vues/rechercheimages/vote/DetailVoteVue.java |
---|
New file |
0,0 → 1,28 |
package org.tela_botanica.del.client.vues.rechercheimages.vote; |
import java.util.List; |
import org.tela_botanica.del.client.modeles.VoteProtocole; |
import com.google.gwt.user.client.ui.Composite; |
import com.google.gwt.user.client.ui.HTML; |
import com.google.gwt.user.client.ui.Panel; |
import com.google.gwt.user.client.ui.VerticalPanel; |
public class DetailVoteVue extends Composite { |
private Panel mainPanel = new VerticalPanel(); |
protected DetailVoteVue(List<VoteProtocole> validationDatas) { |
for (VoteProtocole imageCelValidationData : validationDatas) { |
mainPanel.add(new HTML("Vote " + imageCelValidationData.getVote() |
+ " par " + imageCelValidationData.getContributeur())); |
} |
initWidget(mainPanel); |
} |
} |
/src/org/tela_botanica/del/client/vues/rechercheimages/vote/moyenne.css |
---|
New file |
0,0 → 1,3 |
.moyenne {} |
.petit {font-size:11px; color:#AAA} |
.voter {position:absolute; margin-top:65px; margin-left:20px;} |
/src/org/tela_botanica/del/client/vues/rechercheimages/vote/MoyenneVoteVue.ui.xml |
---|
New file |
0,0 → 1,10 |
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' xmlns:g='urn:import:com.google.gwt.user.client.ui' ui:generateFormat='com.google.gwt.i18n.rebind.format.PropertiesFormat' |
ui:generateKeys="com.google.gwt.i18n.rebind.keygen.MD5KeyGenerator" ui:generateLocales="default"> |
<ui:with field="constants" type="org.tela_botanica.del.client.i18n.Vocabulary"/> |
<ui:style src="moyenne.css" /> |
<g:HTMLPanel styleName="{style.moyenne}"> |
<g:HorizontalPanel styleName="{style.voter}"><g:FocusPanel ui:field="voter"/><g:Label text="Votes :" styleName="{style.petit}"/><g:Label ui:field="nbVotes" styleName="{style.petit}"/></g:HorizontalPanel> |
</g:HTMLPanel> |
</ui:UiBinder> |
/src/org/tela_botanica/del/client/vues/rechercheimages/vote/MoyenneVotePresenteur.java |
---|
New file |
0,0 → 1,20 |
package org.tela_botanica.del.client.vues.rechercheimages.vote; |
import java.util.List; |
import org.tela_botanica.del.client.modeles.VoteProtocole; |
import com.google.gwt.user.client.ui.HasWidgets; |
public class MoyenneVotePresenteur { |
private MoyenneVoteVue view; |
public MoyenneVotePresenteur(List<VoteProtocole> validationDatas) { |
view = new MoyenneVoteVue(validationDatas); |
} |
public void go(HasWidgets container) { |
container.add(view); |
} |
} |
/src/org/tela_botanica/del/client/vues/rechercheimages/vote/MoyenneVoteVue.java |
---|
New file |
0,0 → 1,50 |
package org.tela_botanica.del.client.vues.rechercheimages.vote; |
import java.util.List; |
import org.cobogw.gwt.user.client.ui.Rating; |
import org.tela_botanica.del.client.modeles.VoteProtocole; |
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.user.client.ui.Composite; |
import com.google.gwt.user.client.ui.FocusPanel; |
import com.google.gwt.user.client.ui.Label; |
import com.google.gwt.user.client.ui.Widget; |
public class MoyenneVoteVue extends Composite { |
// Annotation can be used to change the name of the associated xml file |
// @UiTemplate("MoyenneVoteVue.ui.xml") |
interface MyUiBinder extends UiBinder<Widget, MoyenneVoteVue> { |
} |
private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class); |
@UiField |
FocusPanel voter; |
@UiField |
Label nbVotes; |
protected MoyenneVoteVue(List<VoteProtocole> validationDatas) { |
initWidget(uiBinder.createAndBindUi(this)); |
int meanVote = 0; |
int nbVote = 0; |
for (VoteProtocole imageCelValidationData : validationDatas) { |
meanVote += imageCelValidationData.getVote(); |
nbVote++; |
} |
if (nbVote > 0) |
meanVote /= nbVote; |
Rating rating = new Rating(meanVote, 5); |
rating.setReadOnly(true); |
voter.add(rating); |
nbVotes.setText(String.valueOf(validationDatas.size())); |
} |
} |
/src/org/tela_botanica/del/client/vues/vueinitiale/PresenteurInitial.java |
---|
New file |
0,0 → 1,13 |
package org.tela_botanica.del.client.vues.vueinitiale; |
import com.google.gwt.user.client.ui.HasWidgets; |
public class PresenteurInitial { |
private VueInitiale vue = new VueInitiale(); |
public void go(HasWidgets composite) { |
composite.add(vue); |
} |
} |
/src/org/tela_botanica/del/client/vues/vueinitiale/VueInitiale.ui.xml |
---|
New file |
0,0 → 1,13 |
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' |
xmlns:g='urn:import:com.google.gwt.user.client.ui' ui:generateFormat='com.google.gwt.i18n.rebind.format.PropertiesFormat' |
ui:generateKeys="com.google.gwt.i18n.rebind.keygen.MD5KeyGenerator" |
ui:generateLocales="default"> |
<ui:with field='res' type='org.tela_botanica.del.client.Ressources' /> |
<ui:with field="constants" type="org.tela_botanica.del.client.i18n.Vocabulary" /> |
<g:VerticalPanel> |
<g:Hyperlink ui:field="lienRechercheImages" /> |
<g:Hyperlink ui:field="lienRechercheObservations" /> |
</g:VerticalPanel> |
</ui:UiBinder> |
/src/org/tela_botanica/del/client/vues/vueinitiale/VueInitiale.java |
---|
New file |
0,0 → 1,45 |
package org.tela_botanica.del.client.vues.vueinitiale; |
import org.tela_botanica.del.client.gestionhistorique.ConstantesNavigation; |
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.user.client.ui.Composite; |
import com.google.gwt.user.client.ui.Hyperlink; |
import com.google.gwt.user.client.ui.Widget; |
public class VueInitiale extends Composite { |
// Gestion d'UiBinder |
interface Binder extends UiBinder<Widget, VueInitiale> { |
} |
private static Binder binder = GWT.create(Binder.class); |
@UiField |
protected Hyperlink lienRechercheImages; |
@UiField |
protected Hyperlink lienRechercheObservations; |
// Constructeur de la vue |
public VueInitiale() { |
initWidget(binder.createAndBindUi(this)); |
lienRechercheImages.setText("Recherche par image"); |
lienRechercheImages.setTargetHistoryToken(ConstantesNavigation.PAGE_RECHERCHE_IMAGES); |
lienRechercheObservations.setText("Recherche par observation"); |
lienRechercheObservations.setTargetHistoryToken(ConstantesNavigation.PAGE_RECHERCHE_OBSERVATIONS); |
} |
public Hyperlink getLienRechercheImages() { |
return lienRechercheImages; |
} |
public Hyperlink getLienRechercheObservations() { |
return lienRechercheObservations; |
} |
} |
/src/org/tela_botanica/del/client/services/CalculVoteDeterminationService.java |
---|
New file |
0,0 → 1,51 |
package org.tela_botanica.del.client.services; |
import java.util.ArrayList; |
import java.util.Comparator; |
import java.util.List; |
import java.util.Map; |
import java.util.TreeMap; |
import org.tela_botanica.del.client.modeles.MoyenneVote; |
import org.tela_botanica.del.client.modeles.PropositionDetermination; |
import org.tela_botanica.del.client.modeles.VoteDetermination; |
import com.google.gwt.core.client.GWT; |
import com.google.gwt.logging.client.FirebugLogHandler; |
import com.google.gwt.user.client.Window; |
import com.google.gwt.user.client.rpc.core.java.util.Collections; |
public class CalculVoteDeterminationService { |
public static List<MoyenneVote> calculerVoteDeterminationPlusPopulaire(List<PropositionDetermination> propositions) { |
List<MoyenneVote> pairesVotes = new ArrayList<MoyenneVote>(); |
for (PropositionDetermination proposition : propositions) { |
pairesVotes.add(calculerVoteDetermination(proposition)); |
} |
java.util.Collections.sort(pairesVotes); |
return pairesVotes; |
} |
public static MoyenneVote calculerVoteDetermination(PropositionDetermination propositionDetermination) { |
List<VoteDetermination> votes = propositionDetermination.getVotesDeterminations(); |
int scoreVote = 0; |
if(votes.size() > 0) { |
for (VoteDetermination vote : votes) { |
scoreVote += vote.getVote(); |
} |
scoreVote = (scoreVote*100)/votes.size(); |
} else { |
scoreVote = -1; |
} |
return new MoyenneVote(scoreVote, propositionDetermination); |
} |
} |
/src/org/tela_botanica/del/client/Del.java |
---|
New file |
0,0 → 1,17 |
package org.tela_botanica.del.client; |
import org.tela_botanica.del.client.gestionhistorique.ConstantesNavigation; |
import org.tela_botanica.del.client.gestionhistorique.GestionnaireHistorique; |
import com.google.gwt.core.client.EntryPoint; |
import com.google.gwt.user.client.History; |
public class Del implements EntryPoint { |
@Override |
public void onModuleLoad() { |
History.addValueChangeHandler(new GestionnaireHistorique()); |
History.newItem(ConstantesNavigation.PAGE_PRINCIPALE, true); |
History.fireCurrentHistoryState(); |
} |
} |
/src/org/tela_botanica/del/client/gestionhistorique/ConstantesNavigation.java |
---|
New file |
0,0 → 1,16 |
package org.tela_botanica.del.client.gestionhistorique; |
public class ConstantesNavigation { |
public static final String PAGE_PRINCIPALE = "page_principale"; |
public static final String PAGE_RECHERCHE_IMAGES = "page_recherche_images"; |
public static final String PAGE_RESULTAT_RECHERCHE_IMAGES = "page_recherche_images_resulat"; |
public static final String PAGE_RECHERCHE_OBSERVATIONS = "page_recherche_observations"; |
public static final String PAGE_VALIDATION = "page_validation"; |
public static final String PAGE_COMPARAISON_EFLORE = "page_comparaison_eflore"; |
} |
/src/org/tela_botanica/del/client/gestionhistorique/GestionnaireHistorique.java |
---|
New file |
0,0 → 1,48 |
package org.tela_botanica.del.client.gestionhistorique; |
import org.tela_botanica.del.client.vues.comparaisoneflore.ComparaisonEflorePresenteur; |
import org.tela_botanica.del.client.vues.plateformedetermination.DeterminationPresenteur; |
import org.tela_botanica.del.client.vues.rechercheimages.RechercheImagePresenteur; |
import org.tela_botanica.del.client.vues.rechercheimages.resultats.ResultatRechercheImagePresenteur; |
import org.tela_botanica.del.client.vues.rechercheobservations.RechercheObservationsPresenteur; |
import org.tela_botanica.del.client.vues.vueinitiale.PresenteurInitial; |
import com.google.gwt.event.logical.shared.ValueChangeEvent; |
import com.google.gwt.event.logical.shared.ValueChangeHandler; |
import com.google.gwt.user.client.ui.RootPanel; |
/** |
* @author Benjamin |
* |
*/ |
public class GestionnaireHistorique implements ValueChangeHandler<String> { |
/** |
* Évènement lorsque l'historique change. L'action par défaut affiche la |
* page d'accueil. |
* */ |
public void onValueChange(ValueChangeEvent<String> event) { |
if (event.getValue().equals(ConstantesNavigation.PAGE_PRINCIPALE)) { |
RootPanel.get().clear(); |
new PresenteurInitial().go(RootPanel.get()); |
} else if (event.getValue().equals(ConstantesNavigation.PAGE_RECHERCHE_IMAGES)) { |
RootPanel.get().clear(); |
new RechercheImagePresenteur().go(RootPanel.get()); |
} else if (event.getValue().equals(ConstantesNavigation.PAGE_RESULTAT_RECHERCHE_IMAGES)) { |
RootPanel.get().clear(); |
RechercheImagePresenteur presenteur = new RechercheImagePresenteur(); |
presenteur.go(RootPanel.get()); |
new ResultatRechercheImagePresenteur().go(presenteur.getVue().getPanneauResultats()); |
} else if (event.getValue().equals(ConstantesNavigation.PAGE_VALIDATION)) { |
RootPanel.get().clear(); |
new DeterminationPresenteur().go(RootPanel.get()); |
} else if (event.getValue().equals(ConstantesNavigation.PAGE_COMPARAISON_EFLORE)) { |
RootPanel.get().clear(); |
new ComparaisonEflorePresenteur().go(RootPanel.get()); |
} else if (event.getValue().equals(ConstantesNavigation.PAGE_RECHERCHE_OBSERVATIONS)) { |
RootPanel.get().clear(); |
new RechercheObservationsPresenteur().go(RootPanel.get()); |
} |
} |
} |
/src/org/tela_botanica/del/client/composants/validation/FourCharactersFormValidator.java |
---|
New file |
0,0 → 1,26 |
package org.tela_botanica.del.client.composants.validation; |
import org.tela_botanica.del.client.i18n.I18n; |
import com.google.gwt.user.client.ui.HTML; |
import com.google.gwt.user.client.ui.TextBox; |
public class FourCharactersFormValidator extends AbstractTextFieldValidator { |
public FourCharactersFormValidator(TextBox textBox) { |
super(textBox); |
// TODO Auto-generated constructor stub |
} |
@Override |
public boolean validate() { |
if(getTextBox().getText().length()>=4){ |
getTextBox().removeStyleName(getStyleErreur()); |
return true; |
} else { |
getTextBox().addStyleName(getStyleErreur()); |
return false; |
} |
} |
} |
/src/org/tela_botanica/del/client/composants/validation/TextNotNullFormValidator.java |
---|
New file |
0,0 → 1,25 |
package org.tela_botanica.del.client.composants.validation; |
import org.tela_botanica.del.client.i18n.I18n; |
import com.google.gwt.user.client.ui.HTML; |
import com.google.gwt.user.client.ui.TextBox; |
public class TextNotNullFormValidator extends AbstractTextFieldValidator { |
public TextNotNullFormValidator(TextBox textBox) { |
super(textBox); |
} |
@Override |
public boolean validate() { |
if (getTextBox().getText().length() >= 0 && !getTextBox().getText().equals("")) { |
getTextBox().removeStyleName(getStyleErreur()); |
return true; |
} else { |
getTextBox().addStyleName(getStyleErreur()); |
return false; |
} |
} |
} |
/src/org/tela_botanica/del/client/composants/validation/NumericFormValidator.java |
---|
New file |
0,0 → 1,28 |
package org.tela_botanica.del.client.composants.validation; |
import org.tela_botanica.del.client.i18n.I18n; |
import com.google.gwt.user.client.ui.HTML; |
import com.google.gwt.user.client.ui.TextBox; |
public class NumericFormValidator extends AbstractTextFieldValidator { |
public NumericFormValidator(TextBox textBox) { |
super(textBox); |
} |
@Override |
public boolean validate() { |
try{ |
Integer.parseInt(getTextBox().getText()); |
getTextBox().removeStyleName(getStyleErreur()); |
return true; |
} catch (Exception e) { |
getTextBox().addStyleName(getStyleErreur()); |
return false; |
} |
} |
} |
/src/org/tela_botanica/del/client/composants/validation/AbstractFormValidator.java |
---|
New file |
0,0 → 1,7 |
package org.tela_botanica.del.client.composants.validation; |
public abstract class AbstractFormValidator { |
public abstract boolean validate(); |
} |
/src/org/tela_botanica/del/client/composants/validation/FloatFormValidator.java |
---|
New file |
0,0 → 1,26 |
package org.tela_botanica.del.client.composants.validation; |
import org.tela_botanica.del.client.i18n.I18n; |
import com.google.gwt.user.client.ui.HTML; |
import com.google.gwt.user.client.ui.TextBox; |
public class FloatFormValidator extends AbstractTextFieldValidator { |
public FloatFormValidator(TextBox textBox) { |
super(textBox); |
} |
@Override |
public boolean validate() { |
try { |
Float.parseFloat(getTextBox().getText()); |
getTextBox().removeStyleName(getStyleErreur()); |
return true; |
} catch (Exception e) { |
getTextBox().addStyleName(getStyleErreur()); |
return false; |
} |
} |
} |
/src/org/tela_botanica/del/client/composants/validation/AbstractTextFieldValidator.java |
---|
New file |
0,0 → 1,36 |
package org.tela_botanica.del.client.composants.validation; |
import com.google.gwt.user.client.ui.HTML; |
import com.google.gwt.user.client.ui.TextBox; |
public abstract class AbstractTextFieldValidator extends AbstractFormValidator{ |
private TextBox textBox; |
protected String styleErreur = "erreurFormTexte"; |
public AbstractTextFieldValidator(TextBox textBox) { |
this.textBox = textBox; |
} |
public AbstractTextFieldValidator(TextBox textBox, String styleErreur) { |
this.textBox = textBox; |
this.styleErreur = styleErreur; |
} |
public TextBox getTextBox() { |
return textBox; |
} |
public void setTextBox(TextBox textBox) { |
this.textBox = textBox; |
} |
public String getStyleErreur() { |
return styleErreur; |
} |
public void setStyleErreur(String styleErreur) { |
this.styleErreur = styleErreur; |
} |
} |
/src/org/tela_botanica/del/client/composants/validation/DoubleFormValidator.java |
---|
New file |
0,0 → 1,27 |
package org.tela_botanica.del.client.composants.validation; |
import org.tela_botanica.del.client.i18n.I18n; |
import com.google.gwt.user.client.ui.HTML; |
import com.google.gwt.user.client.ui.TextBox; |
public class DoubleFormValidator extends AbstractTextFieldValidator { |
public DoubleFormValidator(TextBox textBox) { |
super(textBox); |
} |
@Override |
public boolean validate() { |
try { |
Double.parseDouble(getTextBox().getText()); |
getTextBox().removeStyleName(getStyleErreur()); |
return true; |
} catch (Exception e) { |
getTextBox().addStyleName(getStyleErreur()); |
return false; |
} |
} |
} |
/src/org/tela_botanica/del/client/composants/presenteur/Presenteur.java |
---|
New file |
0,0 → 1,70 |
package org.tela_botanica.del.client.composants.presenteur; |
import com.google.gwt.event.dom.client.ClickEvent; |
import com.google.gwt.event.dom.client.ClickHandler; |
import com.google.gwt.user.client.ui.Button; |
import com.google.gwt.user.client.ui.Composite; |
import com.google.gwt.user.client.ui.HTMLPanel; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.Panel; |
import com.google.gwt.user.client.ui.RootPanel; |
public abstract class Presenteur { |
private Composite vue; |
private Panel overlay; |
private Panel overlayContenu; |
// Constructeur |
public Presenteur(Composite vue) { |
this.vue = vue; |
} |
// Afficheur |
public void go() { |
go(null); |
} |
public abstract void go(HasWidgets composite); |
// Gestion des évènements |
protected abstract void handleEvents(); |
protected Composite getVue() { |
return this.vue; |
} |
public void ouvrirFenetreModale(Presenteur presenteurModal) { |
overlay = new HTMLPanel(""); |
overlay.setStyleName("overlay"); |
overlay.setVisible(false); |
RootPanel.get().add(overlay); |
overlayContenu = new HTMLPanel(""); |
overlayContenu.setStyleName("overlayContenu"); |
Button boutonFermer = new Button("Fermer"); |
boutonFermer.setStyleName("fermerOverlay"); |
boutonFermer.addClickHandler(new ClickHandler() { |
public void onClick(ClickEvent event) { |
fermerFenetreModale(); |
} |
}); |
presenteurModal.go(overlayContenu); |
RootPanel.get().add(overlayContenu); |
overlayContenu.setVisible(true); |
overlayContenu.add(boutonFermer); |
overlay.setVisible(true); |
} |
public void fermerFenetreModale() { |
RootPanel.get().remove(overlay); |
RootPanel.get().remove(overlayContenu); |
} |
} |
/src/org/tela_botanica/del/client/flecheGauche.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/src/org/tela_botanica/del/client/flecheGauche.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/src/org/tela_botanica/del/client/modeles/Protocole.java |
---|
New file |
0,0 → 1,29 |
package org.tela_botanica.del.client.modeles; |
public class Protocole { |
private int id; |
private String nom; |
public static String ESTHETISME="Esthetisme"; |
public static String IDENTIFICATION_AUTOMATIQUE="Identification automatique"; |
public int getId() { |
return id; |
} |
public void setId(int id) { |
this.id = id; |
} |
public String getNom() { |
return nom; |
} |
public void setNom(String nom) { |
this.nom = nom; |
} |
} |
/src/org/tela_botanica/del/client/modeles/MoyenneVote.java |
---|
New file |
0,0 → 1,51 |
package org.tela_botanica.del.client.modeles; |
public class MoyenneVote implements Comparable<MoyenneVote> { |
/** |
* Pourcentage de personne ayant voté pour la propostion, |
* un score de -1 indique qu'aucun vote n'a été effectué; |
*/ |
private int score = -1; |
private String intituleAssocie; |
private PropositionDetermination propositionAssociee; |
public MoyenneVote(int score, PropositionDetermination propositionAssociee) { |
this.score = score; |
this.intituleAssocie = propositionAssociee.getEspece(); |
this.propositionAssociee = propositionAssociee; |
} |
public int getScore() { |
return score; |
} |
public void setScore(int score) { |
this.score = score; |
} |
public String getIntituleAssocie() { |
return intituleAssocie; |
} |
public void setIntituleAssocie(String intituleAssocie) { |
this.intituleAssocie = intituleAssocie; |
} |
public void setPropositionAssociee(PropositionDetermination propositionDetermination) { |
this.propositionAssociee = propositionDetermination; |
} |
public PropositionDetermination getPropositionAssociee() { |
return this.propositionAssociee; |
} |
@Override |
public int compareTo(MoyenneVote mv) { |
if (mv.getScore() > this.score) return 1; |
else if(mv.getScore() == this.score) return 0; |
else return -1; |
} |
} |
/src/org/tela_botanica/del/client/modeles/PropositionDetermination.java |
---|
New file |
0,0 → 1,78 |
package org.tela_botanica.del.client.modeles; |
import java.io.Serializable; |
import java.util.ArrayList; |
import java.util.Date; |
public class PropositionDetermination implements Serializable { |
private static final long serialVersionUID = 840032625524143547L; |
private String id; |
private ArrayList<Commentaire> commentaires = new ArrayList<Commentaire>(); |
private String espece; |
private ArrayList<VoteDetermination> votesDeterminations = new ArrayList<VoteDetermination>(); |
private String contributeur; |
private Date date; |
public void ajouterVoteDetermination(VoteDetermination vd) { |
votesDeterminations.add(vd); |
} |
public String getContributeur() { |
return contributeur; |
} |
public void setContributeur(String contributeur) { |
this.contributeur = contributeur; |
} |
public String getId() { |
return id; |
} |
public void setId(String id) { |
this.id = id; |
} |
public Date getDate() { |
return date; |
} |
public void setDate(Date date) { |
this.date = date; |
} |
public ArrayList<Commentaire> getCommentaires() { |
return commentaires; |
} |
public void setCommentaires(ArrayList<Commentaire> commentaires) { |
this.commentaires = commentaires; |
} |
public void ajouterCommentaire(Commentaire commentaire) { |
this.commentaires.add(commentaire); |
} |
public String getEspece() { |
return espece; |
} |
public void setEspece(String espece) { |
this.espece = espece; |
} |
public ArrayList<VoteDetermination> getVotesDeterminations() { |
return votesDeterminations; |
} |
public void setVotesDeterminations(ArrayList<VoteDetermination> votesDeterminations) { |
this.votesDeterminations = votesDeterminations; |
} |
} |
/src/org/tela_botanica/del/client/modeles/Observation.java |
---|
New file |
0,0 → 1,128 |
package org.tela_botanica.del.client.modeles; |
import java.io.Serializable; |
import java.util.ArrayList; |
import java.util.List; |
public class Observation implements Serializable { |
private static final long serialVersionUID = 840032625524143547L; |
private String auteur; |
private String species; |
private String nomRetenu; |
private String famille; |
private String localite; |
private String date; |
private String numNomenclatural; |
private List<String> motsClefs = new ArrayList<String>(); |
private List<PropositionDetermination> propositionsDetermination = new ArrayList<PropositionDetermination>(); |
private List<Image> images = new ArrayList<Image>(); |
public String getAuteur() { |
return auteur; |
} |
public void setAuteur(String auteur) { |
this.auteur = auteur; |
} |
public String getSpecies() { |
return species; |
} |
public void setSpecies(String species) { |
this.species = species; |
} |
public String getNomRetenu() { |
return nomRetenu; |
} |
public void setNomRetenu(String commonName) { |
this.nomRetenu = commonName; |
} |
public String getFamille() { |
return famille; |
} |
public void setFamille(String famille) { |
this.famille = famille; |
} |
public String getLocalite() { |
return localite; |
} |
public void setLocalite(String localite) { |
this.localite = localite; |
} |
public String getDate() { |
return date; |
} |
public void setDate(String date) { |
this.date = date; |
} |
public String getNumNomenclatural() { |
return numNomenclatural; |
} |
public void setNumNomenclatural(String numNomenclatural) { |
this.numNomenclatural = numNomenclatural; |
} |
public List<PropositionDetermination> getPropositionsDetermination() { |
return propositionsDetermination; |
} |
public void setImageCelValidationDatas(List<PropositionDetermination> propositionsDetermination) { |
this.propositionsDetermination = propositionsDetermination; |
} |
public List<String> getMotsClefs() { |
return motsClefs; |
} |
public void setMotsClefs(List<String> motsClefs) { |
this.motsClefs = motsClefs; |
} |
public void addImageCelValidationData(PropositionDetermination observationValidation) { |
propositionsDetermination.add(observationValidation); |
} |
public ArrayList<String> getPropositionsTaxonsData() { |
ArrayList<String> propositionsTaxonDatas = new ArrayList<String>(); |
for (PropositionDetermination observationValidation : propositionsDetermination) { |
String espece = observationValidation.getEspece(); |
if (espece != "" && !propositionsTaxonDatas.contains(espece)) { |
propositionsTaxonDatas.add(observationValidation.getEspece()); |
} |
} |
return propositionsTaxonDatas; |
} |
public List<Image> getImages() { |
return images; |
} |
public void setImages(List<Image> images) { |
this.images = images; |
} |
} |
/src/org/tela_botanica/del/client/modeles/Vote.java |
---|
New file |
0,0 → 1,45 |
package org.tela_botanica.del.client.modeles; |
import java.util.Date; |
public class Vote { |
private String id; |
private int vote; |
private String contributeur; |
private Date date; |
public Vote() { |
} |
public String getId() { |
return id; |
} |
public void setId(String id) { |
this.id = id; |
} |
public int getVote() { |
return vote; |
} |
public void setVote(int vote) { |
this.vote = vote; |
} |
public String getContributeur() { |
return contributeur; |
} |
public void setContributeur(String contributeur) { |
this.contributeur = contributeur; |
} |
public Date getDate() { |
return date; |
} |
public void setDate(Date date) { |
this.date = date; |
} |
} |
/src/org/tela_botanica/del/client/modeles/VoteDetermination.java |
---|
New file |
0,0 → 1,19 |
package org.tela_botanica.del.client.modeles; |
import java.util.Date; |
public class VoteDetermination extends Vote { |
private static final long serialVersionUID = -1017065180398557172L; |
private PropositionDetermination propositionDetermination; |
public PropositionDetermination getPropositionDetermination() { |
return propositionDetermination; |
} |
public void setPropositionDetermination( |
PropositionDetermination propositionDetermination) { |
this.propositionDetermination = propositionDetermination; |
} |
} |
/src/org/tela_botanica/del/client/modeles/Image.java |
---|
New file |
0,0 → 1,68 |
package org.tela_botanica.del.client.modeles; |
import java.util.ArrayList; |
import java.util.List; |
public class Image { |
private String idImage; |
private Observation observation; |
private String url; |
private String urlFormat; |
private String miniature; |
public String getUrl() { |
return url; |
} |
public String getMiniature() { |
return miniature; |
} |
public String getUrlFormat(String format) { |
return urlFormat.replaceAll("%s%", format); |
} |
public void setUrlFormat(String urlFormat) { |
this.urlFormat = urlFormat; |
} |
public void setUrl(String url) { |
this.url = url; |
} |
public void setMiniature(String url) { |
miniature = url; |
} |
public String getIdImage() { |
return idImage; |
} |
public void setIdImage(String idImage) { |
this.idImage = idImage; |
} |
private List<VoteProtocole> voteProtocoles = new ArrayList<VoteProtocole>(); |
public List<VoteProtocole> getVoteProtocoles() { |
return voteProtocoles; |
} |
public void setVoteProtocoles(List<VoteProtocole> voteProtocoles) { |
this.voteProtocoles = voteProtocoles; |
} |
public Observation getObservation() { |
return observation; |
} |
public void setObservation(Observation observation) { |
this.observation = observation; |
} |
} |
/src/org/tela_botanica/del/client/modeles/Commentaire.java |
---|
New file |
0,0 → 1,60 |
package org.tela_botanica.del.client.modeles; |
import java.util.ArrayList; |
import java.util.Date; |
import java.util.List; |
public class Commentaire { |
private String auteur; |
private Date date; |
private String commentaire; |
private List<Commentaire> listeCommentaires = new ArrayList<Commentaire>(); |
public Commentaire(String auteur, Date date, String commentaire) { |
super(); |
this.auteur = auteur; |
this.date = date; |
this.commentaire = commentaire; |
} |
public String getAuteur() { |
return auteur; |
} |
public void setAuteur(String auteur) { |
this.auteur = auteur; |
} |
public Date getDate() { |
return date; |
} |
public void setDate(Date date) { |
this.date = date; |
} |
public String getCommentaire() { |
return commentaire; |
} |
public void setCommentaire(String commentaire) { |
this.commentaire = commentaire; |
} |
public List<Commentaire> getListeCommentaires() { |
return listeCommentaires; |
} |
public void setListeCommentaires(ArrayList<Commentaire> listeCommentaires) { |
this.listeCommentaires = listeCommentaires; |
} |
public void ajouterCommentaire(Commentaire commentaire) { |
this.listeCommentaires.add(commentaire); |
} |
} |
/src/org/tela_botanica/del/client/modeles/VoteProtocole.java |
---|
New file |
0,0 → 1,19 |
package org.tela_botanica.del.client.modeles; |
import java.io.Serializable; |
import java.util.Date; |
public class VoteProtocole extends Vote implements Serializable { |
private static final long serialVersionUID = -1017065180398557172L; |
private Protocole protocol; |
public Protocole getProtocol() { |
return protocol; |
} |
public void setProtocol(Protocole protocol) { |
this.protocol = protocol; |
} |
} |
/src/org/tela_botanica/del/client/pagination/pagination.css |
---|
New file |
0,0 → 1,5 |
.pagination {width:100%;} |
.selecteurElements {float:right} |
.pagination button {border:none; border-right:solid 1px #DDD; cursor:pointer} |
.pagination button:hover {background:#8EB533} |
select {background:white} |
/src/org/tela_botanica/del/client/pagination/PaginationVue.ui.xml |
---|
New file |
0,0 → 1,11 |
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' xmlns:g='urn:import:com.google.gwt.user.client.ui' ui:generateFormat='com.google.gwt.i18n.rebind.format.PropertiesFormat' |
ui:generateKeys="com.google.gwt.i18n.rebind.keygen.MD5KeyGenerator" ui:generateLocales="default"> |
<ui:style src="pagination.css" /> |
<ui:with field='res' type='org.tela_botanica.del.client.Ressources'/> |
<ui:with field="constants" type="org.tela_botanica.del.client.i18n.Vocabulary"/> |
<g:HorizontalPanel styleName="{style.pagination}"> |
<g:HorizontalPanel ui:field="zoneLiens"></g:HorizontalPanel> |
<g:ListBox ui:field="nbElements" styleName="{style.selecteurElements}"></g:ListBox> |
</g:HorizontalPanel> |
</ui:UiBinder> |
/src/org/tela_botanica/del/client/pagination/PaginationPresenteur.java |
---|
New file |
0,0 → 1,180 |
package org.tela_botanica.del.client.pagination; |
import java.util.Iterator; |
import java.util.Vector; |
import org.tela_botanica.del.client.cache.CacheClient; |
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.event.dom.client.ClickHandler; |
import com.google.gwt.user.client.ui.Button; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.HorizontalPanel; |
import com.google.gwt.user.client.ui.ListBox; |
public abstract class PaginationPresenteur { |
// Singleton |
private static PaginationPresenteur presenteur; |
private final PaginationVue vue; |
private int nbElementsTotal = 0; |
private int nbPage; |
private Vector<Button> liens; |
public PaginationPresenteur(int nbElements) { |
presenteur = this; |
this.nbElementsTotal = nbElements; |
actualiserNbPage(); |
vue = new PaginationVue(); |
setPas(CacheClient.getInstance().getPasPageRechercheImage()); |
} |
private void setBoutonActif() { |
Iterator<Button> it = liens.iterator(); |
while (it.hasNext()) { |
Button boutonCourant = it.next(); |
if (boutonCourant.getText().equals(String.valueOf(CacheClient.getInstance().getNumPageRechercheImage()))) { |
boutonCourant.setStyleName("actif"); |
} else { |
boutonCourant.setStyleName("inactif"); |
} |
} |
} |
private void actualiserNbPage() { |
Double a = Math.ceil((double) nbElementsTotal / (double) CacheClient.getInstance().getPasPageRechercheImage()); |
this.nbPage = a.intValue(); |
} |
public void setPas(int pas) { |
CacheClient.getInstance().setPasPageRechercheImage(pas); |
actualiserNbPage(); |
creerLiens(); |
changerPage(CacheClient.getInstance().getPasPageRechercheImage() * CacheClient.getInstance().getNumPageRechercheImage(), CacheClient.getInstance().getPasPageRechercheImage() * (CacheClient.getInstance().getNumPageRechercheImage() + 1)); |
} |
public void creerLiens() { |
HorizontalPanel zoneLiens = vue.getZoneLiens(); |
zoneLiens.clear(); |
liens = new Vector<Button>(); |
Button precedent = new Button(); |
precedent.setText("<"); |
precedent.addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
pagePrecedente(); |
} |
}); |
liens.add(precedent); |
vue.getZoneLiens().add(precedent); |
// TODO : gérer le nombre de pages excessives |
for (int i = 0; i < nbPage; i++) { |
Button bouton = new Button(); |
bouton.setText(String.valueOf(i)); |
liens.add(bouton); |
zoneLiens.add(bouton); |
} |
Button suivant = new Button(); |
suivant.setText(">"); |
suivant.addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
pageSuivante(); |
} |
}); |
liens.add(suivant); |
vue.getZoneLiens().add(suivant); |
handleEvents(); |
setBoutonActif(); |
} |
public void initNbElements() { |
ListBox nbElements = vue.getNbElements(); |
for (int i = 0; i < 20; i += 5) { |
int valeur = i; |
if (i == 0) { |
valeur = 1; |
} |
nbElements.addItem(String.valueOf(valeur)); |
} |
nbElements.setSelectedIndex(CacheClient.getInstance().getPasPageRechercheImage() / 5); |
nbElements.addChangeHandler(new ChangeHandler() { |
@Override |
public void onChange(ChangeEvent event) { |
ListBox nbElements = (ListBox) event.getSource(); |
int index = nbElements.getSelectedIndex(); |
setPas(Integer.parseInt(nbElements.getValue(index))); |
} |
}); |
} |
public void go(HasWidgets container) { |
initNbElements(); |
creerLiens(); |
container.add(vue); |
} |
public void handleEvents() { |
Iterator<Button> iterator = liens.iterator(); |
while (iterator.hasNext()) { |
Button bouton = iterator.next(); |
bouton.addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
Button bouton = (Button) event.getSource(); |
CacheClient.getInstance().setNumPageRechercheImage(Integer.parseInt(bouton.getText())); |
int debut = Integer.parseInt(bouton.getText()) * CacheClient.getInstance().getPasPageRechercheImage(); |
int fin = (debut + CacheClient.getInstance().getPasPageRechercheImage()); |
setBoutonActif(); |
changerPage(debut, fin); |
} |
}); |
} |
} |
public void pageSuivante() { |
if (CacheClient.getInstance().getNumPageRechercheImage() < nbPage - 1) { |
CacheClient.getInstance().setNumPageRechercheImage(CacheClient.getInstance().getNumPageRechercheImage() + 1); |
int debut = CacheClient.getInstance().getNumPageRechercheImage() * CacheClient.getInstance().getPasPageRechercheImage(); |
int fin = debut + CacheClient.getInstance().getPasPageRechercheImage(); |
changerPage(debut, fin); |
} |
setBoutonActif(); |
} |
public void pagePrecedente() { |
if (CacheClient.getInstance().getNumPageRechercheImage() > 0) { |
CacheClient.getInstance().setNumPageRechercheImage(CacheClient.getInstance().getNumPageRechercheImage() - 1); |
int debut = CacheClient.getInstance().getNumPageRechercheImage() * CacheClient.getInstance().getPasPageRechercheImage(); |
int fin = debut + CacheClient.getInstance().getPasPageRechercheImage(); |
changerPage(debut, fin); |
} |
setBoutonActif(); |
} |
public abstract void changerPage(int debut, int fin); |
public PaginationPresenteur getInstance() { |
return presenteur; |
} |
} |
/src/org/tela_botanica/del/client/pagination/PaginationVue.java |
---|
New file |
0,0 → 1,37 |
package org.tela_botanica.del.client.pagination; |
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.user.client.ui.Composite; |
import com.google.gwt.user.client.ui.HorizontalPanel; |
import com.google.gwt.user.client.ui.ListBox; |
import com.google.gwt.user.client.ui.Widget; |
public class PaginationVue extends Composite { |
@UiField |
HorizontalPanel zoneLiens; |
@UiField |
ListBox nbElements; |
// Annotation can be used to change the name of the associated xml file |
// @UiTemplate("PaginationVue.ui.xml") |
interface MyUiBinder extends UiBinder<Widget, PaginationVue> { |
} |
private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class); |
public PaginationVue() { |
initWidget(uiBinder.createAndBindUi(this)); |
} |
public HorizontalPanel getZoneLiens() { |
return this.zoneLiens; |
} |
public ListBox getNbElements() { |
return nbElements; |
} |
} |
/src/org/tela_botanica/del/client/navigation/evenement/rechercheimage/EvenementRechercheImage.java |
---|
New file |
0,0 → 1,37 |
package org.tela_botanica.del.client.navigation.evenement.rechercheimage; |
import java.util.List; |
import org.tela_botanica.del.client.modeles.Image; |
import com.google.gwt.event.shared.GwtEvent; |
public class EvenementRechercheImage extends GwtEvent<GestionnaireEvenementRechercheImage> { |
public static com.google.gwt.event.shared.GwtEvent.Type<GestionnaireEvenementRechercheImage> TYPE = new com.google.gwt.event.shared.GwtEvent.Type<GestionnaireEvenementRechercheImage>(); |
private List<Image> images; |
public EvenementRechercheImage(List<Image> images) { |
this.images = images; |
} |
@Override |
protected void dispatch(GestionnaireEvenementRechercheImage handler) { |
handler.onRechercheImage(this); |
} |
@Override |
public com.google.gwt.event.shared.GwtEvent.Type<GestionnaireEvenementRechercheImage> getAssociatedType() { |
return TYPE; |
} |
public List<Image> getImages() { |
return images; |
} |
public void setImages(List<Image> images) { |
this.images = images; |
} |
} |
/src/org/tela_botanica/del/client/navigation/evenement/rechercheimage/GestionnaireEvenementRechercheImage.java |
---|
New file |
0,0 → 1,8 |
package org.tela_botanica.del.client.navigation.evenement.rechercheimage; |
import com.google.gwt.event.shared.EventHandler; |
public interface GestionnaireEvenementRechercheImage extends EventHandler { |
public void onRechercheImage(EvenementRechercheImage event); |
} |
/src/org/tela_botanica/del/client/navigation/evenement/changementprotocole/GestionnaireEvenementChangementProtocole.java |
---|
New file |
0,0 → 1,8 |
package org.tela_botanica.del.client.navigation.evenement.changementprotocole; |
import com.google.gwt.event.shared.EventHandler; |
public interface GestionnaireEvenementChangementProtocole extends EventHandler { |
public void onChangementProtocole(EvenementChangementProtocole event); |
} |
/src/org/tela_botanica/del/client/navigation/evenement/changementprotocole/EvenementChangementProtocole.java |
---|
New file |
0,0 → 1,35 |
package org.tela_botanica.del.client.navigation.evenement.changementprotocole; |
import org.tela_botanica.del.client.modeles.Protocole; |
import com.google.gwt.event.shared.GwtEvent; |
public class EvenementChangementProtocole extends GwtEvent<GestionnaireEvenementChangementProtocole> { |
public static com.google.gwt.event.shared.GwtEvent.Type<GestionnaireEvenementChangementProtocole> TYPE = new com.google.gwt.event.shared.GwtEvent.Type<GestionnaireEvenementChangementProtocole>(); |
private Protocole protocole; |
public EvenementChangementProtocole(Protocole protocole) { |
this.protocole = protocole; |
} |
@Override |
protected void dispatch(GestionnaireEvenementChangementProtocole handler) { |
handler.onChangementProtocole(this); |
} |
@Override |
public com.google.gwt.event.shared.GwtEvent.Type<GestionnaireEvenementChangementProtocole> getAssociatedType() { |
return TYPE; |
} |
public Protocole getProtocole() { |
return protocole; |
} |
public void setProtocole(Protocole protocole) { |
this.protocole = protocole; |
} |
} |
/src/org/tela_botanica/del/client/navigation/evenement/voteDetermination/GestionnaireEvenementVoteDetermination.java |
---|
New file |
0,0 → 1,5 |
package org.tela_botanica.del.client.navigation.evenement.voteDetermination; |
public class GestionnaireEvenementVoteDetermination { |
} |
/src/org/tela_botanica/del/client/navigation/evenement/voteDetermination/EvenementVoteDetermination.java |
---|
New file |
0,0 → 1,5 |
package org.tela_botanica.del.client.navigation.evenement.voteDetermination; |
public class EvenementVoteDetermination { |
} |
/src/org/tela_botanica/del/client/navigation/evenement/ajoutdetermination/EvenementAjoutDetermination.java |
---|
New file |
0,0 → 1,35 |
package org.tela_botanica.del.client.navigation.evenement.ajoutdetermination; |
import org.tela_botanica.del.client.modeles.PropositionDetermination; |
import com.google.gwt.event.shared.GwtEvent; |
public class EvenementAjoutDetermination extends GwtEvent<GestionnaireEvenementAjoutDetermination> { |
public static com.google.gwt.event.shared.GwtEvent.Type<GestionnaireEvenementAjoutDetermination> TYPE = new com.google.gwt.event.shared.GwtEvent.Type<GestionnaireEvenementAjoutDetermination>(); |
private PropositionDetermination propositionDetermination; |
public EvenementAjoutDetermination(PropositionDetermination propositionDetermination) { |
this.propositionDetermination = propositionDetermination; |
} |
@Override |
protected void dispatch(GestionnaireEvenementAjoutDetermination handler) { |
handler.onAjoutDetermination(this); |
} |
@Override |
public com.google.gwt.event.shared.GwtEvent.Type<GestionnaireEvenementAjoutDetermination> getAssociatedType() { |
return TYPE; |
} |
public PropositionDetermination getPropositionDetermination() { |
return propositionDetermination; |
} |
public void setPropositionDetermination(PropositionDetermination propositionDetermination) { |
this.propositionDetermination = propositionDetermination; |
} |
} |
/src/org/tela_botanica/del/client/navigation/evenement/ajoutdetermination/GestionnaireEvenementAjoutDetermination.java |
---|
New file |
0,0 → 1,8 |
package org.tela_botanica.del.client.navigation.evenement.ajoutdetermination; |
import com.google.gwt.event.shared.EventHandler; |
public interface GestionnaireEvenementAjoutDetermination extends EventHandler { |
public void onAjoutDetermination(EvenementAjoutDetermination event); |
} |
/src/org/tela_botanica/del/client/navigation/evenement/validationobservation/GestionnaireEvenementValidation.java |
---|
New file |
0,0 → 1,8 |
package org.tela_botanica.del.client.navigation.evenement.validationobservation; |
import com.google.gwt.event.shared.EventHandler; |
public interface GestionnaireEvenementValidation extends EventHandler { |
public void onValidationImage(EvenementValidation event); |
} |
/src/org/tela_botanica/del/client/navigation/evenement/validationobservation/EvenementValidation.java |
---|
New file |
0,0 → 1,31 |
package org.tela_botanica.del.client.navigation.evenement.validationobservation; |
import org.tela_botanica.del.client.modeles.Image; |
import com.google.gwt.event.shared.GwtEvent; |
public class EvenementValidation extends GwtEvent<GestionnaireEvenementValidation> { |
public static com.google.gwt.event.shared.GwtEvent.Type<GestionnaireEvenementValidation> TYPE = new com.google.gwt.event.shared.GwtEvent.Type<GestionnaireEvenementValidation>(); |
private final Image image; |
public EvenementValidation(Image image) { |
this.image = image; |
} |
@Override |
protected void dispatch(GestionnaireEvenementValidation handler) { |
handler.onValidationImage(this); |
} |
@Override |
public com.google.gwt.event.shared.GwtEvent.Type<GestionnaireEvenementValidation> getAssociatedType() { |
return TYPE; |
} |
public Image getImage() { |
return image; |
} |
} |
/src/org/tela_botanica/del/client/navigation/evenement/comparaisoneflore/GestionnaireEvenementComparaisonEflore.java |
---|
New file |
0,0 → 1,8 |
package org.tela_botanica.del.client.navigation.evenement.comparaisoneflore; |
import com.google.gwt.event.shared.EventHandler; |
public interface GestionnaireEvenementComparaisonEflore extends EventHandler { |
public void onComparaisonEflore(EvenementComparaisonEflore event); |
} |
/src/org/tela_botanica/del/client/navigation/evenement/comparaisoneflore/EvenementComparaisonEflore.java |
---|
New file |
0,0 → 1,33 |
package org.tela_botanica.del.client.navigation.evenement.comparaisoneflore; |
import com.google.gwt.event.shared.GwtEvent; |
public class EvenementComparaisonEflore extends GwtEvent<GestionnaireEvenementComparaisonEflore> { |
public static com.google.gwt.event.shared.GwtEvent.Type<GestionnaireEvenementComparaisonEflore> TYPE = new com.google.gwt.event.shared.GwtEvent.Type<GestionnaireEvenementComparaisonEflore>(); |
private String taxonDemande; |
public EvenementComparaisonEflore(String taxonDemande) { |
this.taxonDemande = taxonDemande; |
} |
@Override |
protected void dispatch(GestionnaireEvenementComparaisonEflore handler) { |
handler.onComparaisonEflore(this); |
} |
@Override |
public com.google.gwt.event.shared.GwtEvent.Type<GestionnaireEvenementComparaisonEflore> getAssociatedType() { |
return TYPE; |
} |
public String getTaxonDemande() { |
return taxonDemande; |
} |
public void setTaxonDemande(String taxonDemande) { |
this.taxonDemande = taxonDemande; |
} |
} |
/src/org/tela_botanica/del/client/navigation/evenement/BusEvenementiel.java |
---|
New file |
0,0 → 1,97 |
package org.tela_botanica.del.client.navigation.evenement; |
import java.util.List; |
import org.tela_botanica.del.client.cache.CacheClient; |
import org.tela_botanica.del.client.gestionhistorique.ConstantesNavigation; |
import org.tela_botanica.del.client.modeles.Image; |
import org.tela_botanica.del.client.modeles.Protocole; |
import org.tela_botanica.del.client.navigation.evenement.changementprotocole.EvenementChangementProtocole; |
import org.tela_botanica.del.client.navigation.evenement.changementprotocole.GestionnaireEvenementChangementProtocole; |
import org.tela_botanica.del.client.navigation.evenement.comparaisoneflore.EvenementComparaisonEflore; |
import org.tela_botanica.del.client.navigation.evenement.comparaisoneflore.GestionnaireEvenementComparaisonEflore; |
import org.tela_botanica.del.client.navigation.evenement.rechercheimage.EvenementRechercheImage; |
import org.tela_botanica.del.client.navigation.evenement.rechercheimage.GestionnaireEvenementRechercheImage; |
import org.tela_botanica.del.client.navigation.evenement.validationobservation.EvenementValidation; |
import org.tela_botanica.del.client.navigation.evenement.validationobservation.GestionnaireEvenementValidation; |
import com.google.gwt.event.shared.HandlerManager; |
import com.google.gwt.user.client.History; |
public class BusEvenementiel extends HandlerManager { |
private static BusEvenementiel instance; |
private BusEvenementiel() { |
super(null); |
instance = this; |
createHandlers(); |
} |
public static BusEvenementiel getInstance() { |
if (instance == null) { |
instance = new BusEvenementiel(); |
} |
return instance; |
} |
private void createHandlers() { |
addHandler(EvenementValidation.TYPE, new GestionnaireEvenementValidation() { |
@Override |
public void onValidationImage(EvenementValidation event) { |
doValidationImage(event.getImage()); |
} |
}); |
addHandler(EvenementComparaisonEflore.TYPE, new GestionnaireEvenementComparaisonEflore() { |
@Override |
public void onComparaisonEflore(EvenementComparaisonEflore event) { |
doComparaisonAvecEflore(event.getTaxonDemande()); |
} |
}); |
addHandler(EvenementRechercheImage.TYPE, new GestionnaireEvenementRechercheImage() { |
@Override |
public void onRechercheImage(EvenementRechercheImage event) { |
doRechercheImage(event.getImages()); |
} |
}); |
addHandler(EvenementChangementProtocole.TYPE, new GestionnaireEvenementChangementProtocole() { |
@Override |
public void onChangementProtocole(EvenementChangementProtocole event) { |
doChangementProtocole(event.getProtocole()); |
} |
}); |
} |
private void doValidationImage(Image image) { |
CacheClient.getInstance().setCurrentObservation(image.getObservation()); |
CacheClient.getInstance().setImageCourante(image); |
History.newItem(ConstantesNavigation.PAGE_VALIDATION, true); |
History.fireCurrentHistoryState(); |
} |
private void doComparaisonAvecEflore(String taxon) { |
CacheClient.getInstance().setTaxonPourRechercheEflore(taxon); |
History.newItem(ConstantesNavigation.PAGE_COMPARAISON_EFLORE, true); |
History.fireCurrentHistoryState(); |
} |
private void doRechercheImage(List<Image> images) { |
CacheClient.getInstance().setImages(images); |
History.newItem(ConstantesNavigation.PAGE_RESULTAT_RECHERCHE_IMAGES, true); |
History.fireCurrentHistoryState(); |
} |
private void doChangementProtocole(Protocole protocole) { |
CacheClient.getInstance().setProtocoleCourant(protocole); |
History.newItem(ConstantesNavigation.PAGE_RESULTAT_RECHERCHE_IMAGES, true); |
History.fireCurrentHistoryState(); |
} |
} |
/src/org/tela_botanica/del/client/utils/KeyboardKeyListener.java |
---|
New file |
0,0 → 1,28 |
package org.tela_botanica.del.client.utils; |
import com.google.gwt.user.client.ui.KeyboardListener; |
import com.google.gwt.user.client.ui.Widget; |
@SuppressWarnings("deprecation") |
public abstract class KeyboardKeyListener implements KeyboardListener { |
public void onKeyDown(Widget arg0, char arg1, int arg2) { |
// TODO Auto-generated method stub |
} |
public void onKeyPress(Widget arg0, char arg1, int arg2) { |
// TODO Auto-generated method stub |
} |
public void onKeyUp(Widget arg0, char arg1, int arg2) { |
if (arg1 == KeyboardListener.KEY_ENTER) { |
onEnterKeyUp(); |
} |
} |
public abstract void onEnterKeyUp(); |
} |
/src/org/tela_botanica/del/client/utils/MockDatasource.java |
---|
New file |
0,0 → 1,300 |
package org.tela_botanica.del.client.utils; |
import java.util.ArrayList; |
import java.util.Date; |
import java.util.HashMap; |
import java.util.Iterator; |
import java.util.List; |
import org.tela_botanica.del.client.exceptions.ExceptionClient; |
import org.tela_botanica.del.client.i18n.I18n; |
import org.tela_botanica.del.client.modeles.Commentaire; |
import org.tela_botanica.del.client.modeles.Image; |
import org.tela_botanica.del.client.modeles.Observation; |
import org.tela_botanica.del.client.modeles.PropositionDetermination; |
import org.tela_botanica.del.client.modeles.Protocole; |
import org.tela_botanica.del.client.modeles.VoteDetermination; |
import org.tela_botanica.del.client.modeles.VoteProtocole; |
import com.google.gwt.i18n.client.DateTimeFormat; |
import com.google.gwt.i18n.client.DateTimeFormat.PredefinedFormat; |
public class MockDatasource { |
static MockDatasource instance; |
List<Observation> observations = new ArrayList<Observation>(); |
List<PropositionDetermination> observationValidationDatas = new ArrayList<PropositionDetermination>(); |
ArrayList<String> propositionsTaxonDatas = new ArrayList<String>(); |
List<Protocole> protocoles = new ArrayList<Protocole>(); |
List<Image> images = new ArrayList<Image>(); |
List<String> pourcentagesConfiance = new ArrayList<String>(); |
private MockDatasource() { |
HashMap<String, String> auteurObs = new HashMap<String, String>(); |
auteurObs.put("Juliette 1MOUREAU", "Tragopogon porrifolius subsp. australis (Jord.) Nyman"); |
auteurObs.put("Robert 2LERAS", "Iris lutescens subsp. lutescens"); |
auteurObs.put("Geneviève 3BOTTI", "Euphorbia dendroides L."); |
auteurObs.put("Robert 4LERAS", "Lonicera japonica Thunb. ex Murray"); |
auteurObs.put("Juliette 5MOUREAU", "Lavatera arborea L."); |
auteurObs.put("Robert 6LERAS", "Lavatera arborea L."); |
auteurObs.put("Juliette 7MOUREAU", "Serapias vomeracea (Burm.f.) Briq. "); |
auteurObs.put("Benjamin 8LIENS", "Lonicera etrusca Santi"); |
auteurObs.put("Aurélient 9PERONNET", "Ophrys scolopax Cav. "); |
auteurObs.put("Grégoire 10DUCHÉ", "Staehelina dubia L. "); |
auteurObs.put("Juliette 11MOUREAU", "Tragopogon porrifolius subsp. australis (Jord.) Nyman"); |
auteurObs.put("Robert 12LERAS", "Iris lutescens subsp. lutescens"); |
auteurObs.put("Geneviève 13BOTTI", "Euphorbia dendroides L."); |
auteurObs.put("Robert 14LERAS", "Lonicera japonica Thunb. ex Murray"); |
auteurObs.put("Juliette 15MOUREAU", "Lavatera arborea L."); |
auteurObs.put("Robert 16LERAS", "Lavatera arborea L."); |
auteurObs.put("Juliette 17MOUREAU", "Serapias vomeracea (Burm.f.) Briq. "); |
auteurObs.put("Benjamin 18LIENS", "Lonicera etrusca Santi"); |
auteurObs.put("Aurélient 19PERONNET", "Ophrys scolopax Cav. "); |
auteurObs.put("Grégoire 20DUCHÉ", "Staehelina dubia L. "); |
ArrayList<String> motsClefs = new ArrayList<String>(); |
motsClefs.add("plantnet"); |
motsClefs.add("fleur"); |
motsClefs.add("fruit"); |
Iterator<String> auteurs = auteurObs.keySet().iterator(); |
Protocole protocol1 = new Protocole(); |
protocol1.setNom(Protocole.ESTHETISME); |
protocol1.setId(1); |
Protocole protocol2 = new Protocole(); |
protocol2.setNom(Protocole.IDENTIFICATION_AUTOMATIQUE); |
protocol2.setId(2); |
protocoles.add(protocol1); |
protocoles.add(protocol2); |
VoteDetermination voteDetermination = new VoteDetermination(); |
voteDetermination.setVote(1); |
voteDetermination.setDate(new Date()); |
voteDetermination.setContributeur("benjamin"); |
PropositionDetermination observationValidationData = new PropositionDetermination(); |
observationValidationData.setEspece("Iris lutescens subsp. lutescens"); |
observationValidationData.setContributeur("contributeur test"); |
observationValidationData.setId("1"); |
observationValidationData.getVotesDeterminations().add(voteDetermination); |
observationValidationData.setDate(new Date()); |
observationValidationDatas.add(observationValidationData); |
PropositionDetermination observationValidationData2 = new PropositionDetermination(); |
observationValidationData2.setContributeur("contributeur test 2"); |
observationValidationData2.setEspece("Lavatera arborea L."); |
observationValidationData2.setId("2"); |
observationValidationData2.getVotesDeterminations().add(voteDetermination); |
observationValidationData2.setDate(new Date()); |
observationValidationDatas.add(observationValidationData2); |
PropositionDetermination observationValidationData3 = new PropositionDetermination(); |
observationValidationData3.setEspece("Acer monsp. L."); |
observationValidationData3.setContributeur("Léo Ferré"); |
Commentaire commentaire = new Commentaire("Greg", new Date(), "Avec le temps..."); |
Commentaire commentaireBis = new Commentaire("Benj", new Date(), "Pas d'accord avec Greg!"); |
commentaire.getListeCommentaires().add(commentaireBis); |
observationValidationData3.getCommentaires().add(commentaire); |
observationValidationData3.setId("1"); |
observationValidationData2.getVotesDeterminations().add(voteDetermination); |
observationValidationData3.setDate(new Date()); |
observationValidationDatas.add(observationValidationData3); |
PropositionDetermination observationValidationData4 = new PropositionDetermination(); |
observationValidationData4.setEspece("Acer aceras aus."); |
observationValidationData4.setContributeur("Pierre Desproges"); |
Commentaire commentaire2 = new Commentaire("Greg", new Date(), "Public chéri mon amour..."); |
observationValidationData4.getCommentaires().add(commentaire2); |
observationValidationData4.setId("2"); |
observationValidationData4.getVotesDeterminations().add(voteDetermination); |
observationValidationData4.setDate(new Date()); |
observationValidationDatas.add(observationValidationData4); |
PropositionDetermination observationValidationData5 = new PropositionDetermination(); |
observationValidationData5.setEspece("Acer monsp subsp. monsp."); |
observationValidationData5.setContributeur("Louis Aragon"); |
Commentaire commentaire3 = new Commentaire("Greg", new Date(), "Tout est affaire de décor..."); |
observationValidationData5.getCommentaires().add(commentaire3); |
observationValidationData5.setId("2"); |
observationValidationData5.getVotesDeterminations().add(voteDetermination); |
observationValidationData5.setDate(new Date()); |
observationValidationDatas.add(observationValidationData5); |
int numobs = 44120; |
for (int i = 0; i < 20; i++) { |
Observation observation = new Observation(); |
String auteur = auteurs.next(); |
observation.setAuteur(auteur); |
observation.setSpecies(auteurObs.get(auteur)); |
numobs += i; |
observation.setNumNomenclatural("num nomenclatural " + i); |
observation.setDate(DateTimeFormat.getFormat(PredefinedFormat.DATE_SHORT).format(new Date())); |
observation.setFamille("famille " + i); |
observation.setLocalite("localite " + i); |
observation.setNomRetenu(auteurObs.get(auteur)); |
observation.setMotsClefs(motsClefs); |
observation.setImageCelValidationDatas(observationValidationDatas); |
Image image = new Image(); |
image.setIdImage("id image " + i); |
image.setUrlFormat("http://www.tela-botanica.org/appli:cel-img:0000" + String.valueOf(numobs) + "%s%.jpg"); |
image.setUrl("http://www.tela-botanica.org/appli:cel-img:0000" + String.valueOf(numobs) + "CRS.jpg"); |
image.setMiniature("http://www.tela-botanica.org/appli:cel-img:0000" + String.valueOf(numobs) + "XS.jpg"); |
observation.getImages().add(image); |
image.setObservation(observation); |
images.add(image); |
// nombre d'images aléatoires |
int nbImagesAssociees = (int) Math.round(Math.random() * 10); |
for (int j = 0; j < nbImagesAssociees; j++) { |
numobs++; |
image = new Image(); |
image.setIdImage("id image " + i); |
image.setUrlFormat("http://www.tela-botanica.org/appli:cel-img:0000" + String.valueOf(numobs) + "%s%.jpg"); |
image.setUrl("http://www.tela-botanica.org/appli:cel-img:0000" + String.valueOf(numobs) + "CRS.jpg"); |
image.setMiniature("http://www.tela-botanica.org/appli:cel-img:0000" + String.valueOf(numobs) + "XS.jpg"); |
observation.getImages().add(image); |
image.setObservation(observation); |
images.add(image); |
} |
VoteProtocole voteProtocole = new VoteProtocole(); |
voteProtocole.setProtocol(protocol1); |
voteProtocole.setVote(3); |
voteProtocole.setContributeur("aurelien"); |
voteProtocole.setDate(new Date()); |
image.getVoteProtocoles().add(voteProtocole); |
VoteProtocole voteProtocole2 = new VoteProtocole(); |
voteProtocole2.setProtocol(protocol2); |
voteProtocole2.setVote(2); |
voteProtocole2.setContributeur("jpm"); |
voteProtocole2.setDate(new Date()); |
image.getVoteProtocoles().add(voteProtocole2); |
observations.add(observation); |
} |
ajouterVotesAleatoires(); |
pourcentagesConfiance.add(I18n.getVocabulary().confiance_simple_suggestion()); |
pourcentagesConfiance.add(I18n.getVocabulary().confiance_probable()); |
pourcentagesConfiance.add(I18n.getVocabulary().confiance_sur_cent()); |
} |
public void ajouterVotesAleatoires() { |
for (PropositionDetermination validation : observationValidationDatas) { |
int nbVotesAjoutes = (int) Math.round(Math.random() * 20); |
for (int i = 0; i < nbVotesAjoutes; i++) { |
VoteDetermination vd = new VoteDetermination(); |
vd.setVote((int) Math.round(Math.random())); |
vd.setDate(new Date()); |
vd.setContributeur("test"); |
validation.ajouterVoteDetermination(vd); |
} |
} |
} |
public List<Observation> getObservations(HashMap<String, String> champsRecherche) { |
if (champsRecherche == null) { |
return getObservations(); |
} else { |
int nbResultats = (int) Math.round(Math.random() * 20); |
List<Observation> resultatRecherche = new ArrayList<Observation>(); |
for (int i = 0; i < nbResultats; i++) { |
int numeroResultat = (int) Math.round(Math.random() * (observations.size() - 1)); |
resultatRecherche.add(observations.get(numeroResultat)); |
} |
return resultatRecherche; |
} |
} |
public List<Observation> getObservations() { |
return observations; |
} |
public List<Image> getImages() { |
return images; |
} |
public List<VoteProtocole> getVote(String idImage) { |
for (Image image : images) { |
if (image.getIdImage().equals(idImage)) { |
return image.getVoteProtocoles(); |
} |
} |
return null; |
} |
public List<VoteProtocole> getVoteByImageAndProtocol(String idImage, String protocolName) { |
List<VoteProtocole> voteProtocolesLocal = new ArrayList<VoteProtocole>(); |
for (Image image : images) { |
if (image.getIdImage().equals(idImage)) { |
for (VoteProtocole voteProtocole : image.getVoteProtocoles()) { |
if (voteProtocole.getProtocol().getNom().equals(protocolName)) { |
voteProtocolesLocal.add(voteProtocole); |
} |
} |
} |
} |
return voteProtocolesLocal; |
} |
public List<Image> getImagesEfloreParTaxon(String nomTaxon) { |
return images; |
} |
public Protocole getProtocole(String nomProtocole) { |
for (Protocole protocole : protocoles) { |
if (protocole.getNom().equals(nomProtocole)) { |
return protocole; |
} |
} |
return null; |
} |
public List<Protocole> getProtocoles() { |
return protocoles; |
} |
public void saveVote(VoteProtocole voteProtocole) { |
// TODO implement method |
} |
public List<String> getPourcentagesConfiance() { |
return pourcentagesConfiance; |
} |
public void saveValidationData(PropositionDetermination validationData) throws ExceptionClient { |
observationValidationDatas.add(validationData); |
} |
public static MockDatasource getInstance() { |
if (instance == null) { |
instance = new MockDatasource(); |
} |
return instance; |
} |
} |
/src/org/tela_botanica/del/client/cache/CacheClient.java |
---|
New file |
0,0 → 1,94 |
package org.tela_botanica.del.client.cache; |
import java.util.List; |
import org.tela_botanica.del.client.modeles.Image; |
import org.tela_botanica.del.client.modeles.Observation; |
import org.tela_botanica.del.client.modeles.Protocole; |
public class CacheClient { |
private Observation currentObservation; |
private Image imageCourante; |
private String taxonPourRechercheEflore; |
private Protocole protocoleCourant; |
private List<Image> images; |
private int numPageRechercheImage = 0; |
private int pasPageRechercheImage = 10; |
private static CacheClient instance; |
private CacheClient() { |
instance = this; |
} |
public Observation getCurrentObservation() { |
return currentObservation; |
} |
public void setCurrentObservation(Observation currentObservation) { |
this.currentObservation = currentObservation; |
} |
public static CacheClient getInstance() { |
if (instance == null) { |
instance = new CacheClient(); |
} |
return instance; |
} |
public String getTaxonPourRechercheEflore() { |
return taxonPourRechercheEflore; |
} |
public void setTaxonPourRechercheEflore(String taxonPourRechercheEflore) { |
this.taxonPourRechercheEflore = taxonPourRechercheEflore; |
} |
public int getNumPageRechercheImage() { |
return numPageRechercheImage; |
} |
public void setNumPageRechercheImage(int numPageRechercheImage) { |
this.numPageRechercheImage = numPageRechercheImage; |
} |
public int getPasPageRechercheImage() { |
return pasPageRechercheImage; |
} |
public void setPasPageRechercheImage(int pasPageRechercheImage) { |
this.pasPageRechercheImage = pasPageRechercheImage; |
} |
public List<Image> getImages() { |
return images; |
} |
public void setImages(List<Image> images) { |
this.images = images; |
} |
public Image getImageCourante() { |
return imageCourante; |
} |
public void setImageCourante(Image imageCourante) { |
this.imageCourante = imageCourante; |
} |
public Protocole getProtocoleCourant() { |
return protocoleCourant; |
} |
public void setProtocoleCourant(Protocole protocoleCourant) { |
this.protocoleCourant = protocoleCourant; |
} |
} |
/src/org/tela_botanica/del/test/TestMoyenneVote.java |
---|
New file |
0,0 → 1,95 |
package org.tela_botanica.del.test; |
import static org.junit.Assert.assertTrue; |
import java.util.ArrayList; |
import java.util.Date; |
import java.util.List; |
import org.junit.Test; |
import org.tela_botanica.del.client.modeles.MoyenneVote; |
import org.tela_botanica.del.client.modeles.PropositionDetermination; |
import org.tela_botanica.del.client.modeles.VoteDetermination; |
import org.tela_botanica.del.client.services.CalculVoteDeterminationService; |
public class TestMoyenneVote { |
@Test |
public void testCalculVote() { |
VoteDetermination voteDetermination = new VoteDetermination(); |
voteDetermination.setVote(1); |
voteDetermination.setDate(new Date()); |
voteDetermination.setContributeur("benjamin"); |
PropositionDetermination propositionDetermination = new PropositionDetermination(); |
propositionDetermination.setEspece("Iris lutescens subsp. lutescens"); |
propositionDetermination.setContributeur("contributeur test"); |
propositionDetermination.setId("1"); |
propositionDetermination.ajouterVoteDetermination(voteDetermination); |
MoyenneVote moyenneVote = CalculVoteDeterminationService |
.calculerVoteDetermination(propositionDetermination); |
assertTrue(moyenneVote.getScore() == 100); |
} |
@Test |
public void testCalculMoyenneVote() { |
VoteDetermination voteDetermination1 = new VoteDetermination(); |
voteDetermination1.setVote(1); |
voteDetermination1.setDate(new Date()); |
voteDetermination1.setContributeur("benjamin"); |
VoteDetermination voteDetermination2 = new VoteDetermination(); |
voteDetermination2.setVote(1); |
voteDetermination2.setDate(new Date()); |
voteDetermination2.setContributeur("aurelien"); |
VoteDetermination voteDetermination3 = new VoteDetermination(); |
voteDetermination3.setVote(0); |
voteDetermination3.setDate(new Date()); |
voteDetermination3.setContributeur("benjamin"); |
VoteDetermination voteDetermination4 = new VoteDetermination(); |
voteDetermination3.setVote(0); |
voteDetermination3.setDate(new Date()); |
voteDetermination3.setContributeur("benjamin"); |
VoteDetermination voteDetermination5 = new VoteDetermination(); |
voteDetermination4.setVote(1); |
voteDetermination4.setDate(new Date()); |
voteDetermination4.setContributeur("benjamin"); |
PropositionDetermination propositionDetermination = new PropositionDetermination(); |
propositionDetermination.setEspece("Iris lutescens subsp. lutescens"); |
propositionDetermination.setContributeur("contributeur test"); |
propositionDetermination.setId("1"); |
propositionDetermination.ajouterVoteDetermination(voteDetermination1); |
propositionDetermination.ajouterVoteDetermination(voteDetermination2); |
propositionDetermination.ajouterVoteDetermination(voteDetermination3); |
propositionDetermination.ajouterVoteDetermination(voteDetermination4); |
PropositionDetermination propositionDetermination2 = new PropositionDetermination(); |
propositionDetermination2.setEspece("Iris urticans"); |
propositionDetermination2.setContributeur("contributeur test2"); |
propositionDetermination2.setId("2"); |
propositionDetermination2.ajouterVoteDetermination(voteDetermination1); |
propositionDetermination2.ajouterVoteDetermination(voteDetermination2); |
propositionDetermination2.ajouterVoteDetermination(voteDetermination3); |
propositionDetermination2.ajouterVoteDetermination(voteDetermination5); |
List<PropositionDetermination> listePropositions = new ArrayList<PropositionDetermination>(); |
listePropositions.add(propositionDetermination2); |
listePropositions.add(propositionDetermination); |
List<MoyenneVote> listeMoyenneVote = CalculVoteDeterminationService |
.calculerVoteDeterminationPlusPopulaire(listePropositions); |
// le premier vote est sensé être celui qui possède le plus gros score |
assertTrue(listeMoyenneVote.get(0).getIntituleAssocie().equals("Iris urticans")); |
} |
} |
/src/org/tela_botanica/del/Del.gwt.xml |
---|
New file |
0,0 → 1,28 |
<?xml version="1.0" encoding="UTF-8"?> |
<module rename-to="del"> |
<!-- Inherit the core Web Toolkit stuff. --> |
<inherits name='com.google.gwt.user.User' /> |
<inherits name='org.cobogw.gwt.user.User' /> |
<!-- Inherit the default GWT style sheet. You can change --> |
<!-- the theme of your GWT application by uncommenting --> |
<!-- any one of the following lines. --> |
<inherits name='com.google.gwt.user.theme.standard.Standard' /> |
<!-- <inherits name='com.google.gwt.user.theme.chrome.Chrome'/> --> |
<!-- <inherits name='com.google.gwt.user.theme.dark.Dark'/> --> |
<!-- Other module inherits --> |
<inherits name="com.google.gwt.activity.Activity" /> |
<inherits name="com.google.gwt.place.Place" /> |
<!-- Specify the app entry point class. --> |
<entry-point class='org.tela_botanica.del.client.Del' /> |
<!-- UIBinder allows to design GWT UI's declarative via XML. --> |
<inherits name='com.google.gwt.uibinder.UiBinder' /> |
<!-- Specify the paths for translatable code --> |
<source path='client' /> |
<source path='shared' /> |
</module> |