/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> |
/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/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,69 |
#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 |
#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 |
---|
--- del/client/i18n/Vocabulary_en.properties (revision 0) |
+++ del/client/i18n/Vocabulary_en.properties (revision 141) |
@@ -0,0 +1,3 @@ |
+#sample constant property to be translated in language specific versions of this property file |
+ |
+ |
/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,539 |
package org.tela_botanica.del.client.i18n; |
/** |
* Interface to represent the constants contained in resource bundle: |
* '/home/benjamin/Documents/dev/workspaces/exchangeformat/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 "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/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/determinationVue.css |
---|
New file |
0,0 → 1,4 |
.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%} |
.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/plateformedetermination/formulaireproposition/FormulairePropositionPresenteur.java |
---|
New file |
0,0 → 1,81 |
package org.tela_botanica.del.client.vues.plateformedetermination.formulaireproposition; |
import java.util.ArrayList; |
import java.util.Date; |
import java.util.Observable; |
import java.util.Observer; |
import org.tela_botanica.del.client.cache.CacheClient; |
import org.tela_botanica.del.client.composants.validation.NumericFormValidator; |
import org.tela_botanica.del.client.composants.validation.TextNotNullFormValidator; |
import org.tela_botanica.del.client.exceptions.ExceptionClient; |
import org.tela_botanica.del.client.modeles.Commentaire; |
import org.tela_botanica.del.client.modeles.PropositionDetermination; |
import org.tela_botanica.del.client.utils.GwtObservable; |
import org.tela_botanica.del.client.utils.GwtObserver; |
import org.tela_botanica.del.client.utils.MockDatasource; |
import com.google.gwt.core.client.GWT; |
import com.google.gwt.event.dom.client.ClickEvent; |
import com.google.gwt.event.dom.client.ClickHandler; |
import com.google.gwt.i18n.client.DateTimeFormat; |
import com.google.gwt.i18n.client.DateTimeFormat.PredefinedFormat; |
import com.google.gwt.user.client.ui.HTML; |
import com.google.gwt.user.client.ui.HasWidgets; |
public class FormulairePropositionPresenteur { |
private FormulairePropositionVue formulairePropositionVue = new FormulairePropositionVue(); |
public void go(HasWidgets composite) { |
formulairePropositionVue.chargerPourcentagesConfiance(MockDatasource.getInstance().getPourcentagesConfiance()); |
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); |
} |
} |
}); |
} |
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().getCurrentObservation().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()); |
propositionAjoutee.setPourcentageConfiance(formulairePropositionVue.getPourcentageConfiance().getValue(formulairePropositionVue.getPourcentageConfiance().getSelectedIndex())); |
return propositionAjoutee; |
} |
} |
/src/org/tela_botanica/del/client/vues/plateformedetermination/formulaireproposition/FormulairePropositionVue.java |
---|
New file |
0,0 → 1,71 |
package org.tela_botanica.del.client.vues.plateformedetermination.formulaireproposition; |
import java.util.ArrayList; |
import java.util.Iterator; |
import java.util.List; |
import org.tela_botanica.del.client.utils.MockDatasource; |
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 ListBox pourcentageConfiance = new ListBox(); |
@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 void chargerPourcentagesConfiance(ArrayList<String> pourcentagesConfiance) { |
pourcentageConfiance.clear(); |
for(Iterator<String> it = pourcentagesConfiance.iterator(); it.hasNext();) { |
pourcentageConfiance.addItem(it.next()); |
} |
} |
public TextBox getNomPrenom() { |
return nomPrenom; |
} |
public TextBox getPropositionTaxon() { |
return propositionTaxon; |
} |
public ListBox getPourcentageConfiance() { |
return pourcentageConfiance; |
} |
public TextArea getCommentaires() { |
return commentaires; |
} |
public Button getBoutonValidationProposition() { |
return boutonValidationProposition; |
} |
} |
/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,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' |
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:Label text="{constants.fiabilite}" styleName="sousTitre"/> |
<g:Label text="{constants.infoFiabilite}" styleName="petit"/> |
<g:ListBox ui:field="pourcentageConfiance" /> |
</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/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="barreRepartition" styleName="plein"/> |
<g:VerticalPanel ui:field="formulaireRechercheEflore"/> |
</g:VerticalPanel> |
<g:VerticalPanel styleName="{style.zoneVote}"> |
<g:VerticalPanel ui:field="vote" styleName="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.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/BarreRepartitionVotePresenteur.java |
---|
New file |
0,0 → 1,32 |
package org.tela_botanica.del.client.vues.plateformedetermination.vote.barrerepartition; |
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.modeles.Protocole; |
import org.tela_botanica.del.client.utils.MockDatasource; |
import org.tela_botanica.del.client.vues.plateformedetermination.vote.EnsembleVotesVue; |
import org.tela_botanica.del.client.vues.plateformedetermination.vote.protocole.moyenne.MoyenneVoteProtocolePresenteur; |
import com.google.gwt.user.client.ui.HasWidgets; |
public class BarreRepartitionVotePresenteur { |
private BarreRepartitionVoteVue vue = new BarreRepartitionVoteVue(); |
private MockDatasource validationService = MockDatasource.getInstance(); |
public void go(HasWidgets container) { |
container.add(vue); |
afficherVotes(); |
} |
private void afficherVotes() { |
vue.afficherVotes(70); |
} |
public BarreRepartitionVoteVue getBarreRepartitionVoteVue() { |
return vue; |
} |
} |
/src/org/tela_botanica/del/client/vues/plateformedetermination/vote/barrerepartition/BarreRepartitionVoteVue.java |
---|
New file |
0,0 → 1,36 |
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.ui.Composite; |
import com.google.gwt.user.client.ui.HTML; |
import com.google.gwt.user.client.ui.Widget; |
public class BarreRepartitionVoteVue extends Composite { |
interface MyUiBinder extends UiBinder<Widget, BarreRepartitionVoteVue> {} |
private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class); |
private int pourcentage = 0; |
@UiField(provided = true) |
public HTML barreRepartitionHtmlBrut = new HTML("<div class=\"barreRepartition\"></div>"); |
public BarreRepartitionVoteVue() { |
afficherVotes(70); |
initWidget(uiBinder.createAndBindUi(this)); |
} |
public void afficherVotes(int pourcentage) { |
this.pourcentage = pourcentage; |
String chaineHtml = "<div class=\"barreRepartition\">"+ |
"<div style=\"width:"+pourcentage+"%\" class=\"elementBarreRepartition voteOui\"></div>"+ |
"</div>"; |
barreRepartitionHtmlBrut = new HTML(chaineHtml); |
} |
} |
/src/org/tela_botanica/del/client/vues/plateformedetermination/vote/barrerepartition/barreRepartitionVue.css |
---|
--- del/client/vues/plateformedetermination/vote/barrerepartition/BarreRepartitionVoteVue.ui.xml (revision 0) |
+++ del/client/vues/plateformedetermination/vote/barrerepartition/BarreRepartitionVoteVue.ui.xml (revision 141) |
@@ -0,0 +1,6 @@ |
+<!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:HTML ui:field="barreRepartitionHtmlBrut" /> |
+</ui:UiBinder> |
\ No newline at end of file |
/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/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/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.PropositionDetermination; |
import org.tela_botanica.del.client.modeles.Protocole; |
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<PropositionDetermination> validationDatas; |
public VoteProtocolePresenteur(Protocole protocole, List<PropositionDetermination> 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/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.PropositionDetermination; |
import org.tela_botanica.del.client.modeles.Protocole; |
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<PropositionDetermination> 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,59 |
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.PropositionDetermination; |
import org.tela_botanica.del.client.modeles.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.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<PropositionDetermination> validationDatas) { |
initWidget(uiBinder.createAndBindUi(this)); |
nomProtocole.setText(protocole.getNom()); |
int meanVote = 0; |
int nbVote = 0; |
for (PropositionDetermination 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/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/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/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.PropositionDetermination; |
import org.tela_botanica.del.client.modeles.Protocole; |
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().getCurrentObservation().getIdImage(); |
Protocole protocoleEsthetisme = validationService.getProtocole(Protocole.ESTHETISME); |
List<PropositionDetermination> observationValidationsEsthetisme = validationService.getValidationDataByImageAndProtocol(idImageCourante, Protocole.ESTHETISME); |
new MoyenneVoteProtocolePresenteur(protocoleEsthetisme, observationValidationsEsthetisme).go(vue.getPanneauVotes()); |
Protocole protocoleIdentification = validationService.getProtocole(Protocole.IDENTIFICATION_AUTOMATIQUE); |
List<PropositionDetermination> observationValidationsIdentification = validationService.getValidationDataByImageAndProtocol(idImageCourante, Protocole.IDENTIFICATION_AUTOMATIQUE); |
new MoyenneVoteProtocolePresenteur(protocoleIdentification, observationValidationsIdentification).go(vue.getPanneauVotes()); |
} |
} |
/src/org/tela_botanica/del/client/vues/plateformedetermination/DeterminationPresenteur.java |
---|
New file |
0,0 → 1,31 |
package org.tela_botanica.del.client.vues.plateformedetermination; |
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(); |
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()); |
new BarreRepartitionVotePresenteur().go(determinationVue.getBarreRepartition()); |
composite.add(determinationVue); |
} |
} |
/src/org/tela_botanica/del/client/vues/plateformedetermination/DeterminationVue.java |
---|
New file |
0,0 → 1,48 |
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.HasWidgets; |
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.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,26 |
package org.tela_botanica.del.client.vues.plateformedetermination.detail; |
import java.util.List; |
import org.tela_botanica.del.client.cache.CacheClient; |
import org.tela_botanica.del.client.utils.MockDatasource; |
import com.google.gwt.core.client.GWT; |
import com.google.gwt.dom.client.Style.Unit; |
import com.google.gwt.uibinder.client.UiBinder; |
import com.google.gwt.user.client.ui.Composite; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.Image; |
import com.google.gwt.user.client.ui.Widget; |
public class DetailImageObservationPresenteur { |
private final MockDatasource validationService = MockDatasource.getInstance(); |
private DetailImageObservationVue detailImageObservationVue = new DetailImageObservationVue(); |
public void go(HasWidgets composite) { |
detailImageObservationVue.chargerInformationsObservation(CacheClient.getInstance().getCurrentObservation()); |
composite.add(detailImageObservationVue); |
} |
} |
/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 org.tela_botanica.del.client.modeles.Observation; |
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(Observation o) { |
imageObservation.setUrl(o.getUrl()); |
nomObservateur.setText(o.getAuteur()); |
nomRetenu.setText(o.getNomRetenu()); |
famille.setText(o.getFamille()); |
localite.setText(o.getLocalite()); |
dateObservation.setText(o.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/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:HTML ui:field='htmlTableau' styleName="{style.table}" /> |
</g:VerticalPanel> |
</ui:UiBinder> |
/src/org/tela_botanica/del/client/vues/plateformedetermination/forum/ForumPresenteur.java |
---|
New file |
0,0 → 1,43 |
package org.tela_botanica.del.client.vues.plateformedetermination.forum; |
import java.util.List; |
import org.tela_botanica.del.client.modeles.PropositionDetermination; |
import org.tela_botanica.del.client.utils.GwtObservable; |
import org.tela_botanica.del.client.utils.GwtObserver; |
import org.tela_botanica.del.client.cache.CacheClient; |
import org.tela_botanica.del.client.utils.MockDatasource; |
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.HasWidgets; |
import com.google.gwt.user.client.ui.Widget; |
public class ForumPresenteur implements GwtObserver { |
private ForumVue forumVue = new ForumVue(); |
private List<PropositionDetermination> determinations; |
public void go(HasWidgets composite) { |
CacheClient.getInstance().getCurrentObservation().addObserver(this); |
chargerCommentaires(); |
composite.add(forumVue); |
} |
private void chargerCommentaires() { |
determinations = CacheClient.getInstance().getCurrentObservation().getImageCelValidationDatas(); |
forumVue.chargerObservations(determinations); |
} |
@Override |
public void update(GwtObservable observable, Object data) { |
chargerCommentaires(); |
} |
} |
/src/org/tela_botanica/del/client/vues/plateformedetermination/forum/ForumVue.java |
---|
New file |
0,0 → 1,78 |
package org.tela_botanica.del.client.vues.plateformedetermination.forum; |
import java.util.ArrayList; |
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.HTML; |
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(provided = true) |
HTML htmlTableau = new HTML(); |
public ForumVue() { |
initWidget(uiBinder.createAndBindUi(this)); |
} |
public void chargerObservations(List<PropositionDetermination> determinations) { |
String ligne = "<table>"+ |
"<tr>"+ |
"<th> "+I18n.getVocabulary().nom()+" </th>"+ |
"<th> "+I18n.getVocabulary().contributeur()+" </th>"+ |
"<th> "+I18n.getVocabulary().fiabilite()+" </th>"+ |
"<th> "+I18n.getVocabulary().date()+" </th>"+ |
"<th> "+I18n.getVocabulary().commentaire()+" </th>"+ |
"</tr>"; |
for (PropositionDetermination observationDetermination : determinations) { |
ligne += "<tr>"+ |
"<td>"+observationDetermination.getEspece()+"</td>"+ |
"<td>"+observationDetermination.getContributeur()+"</td>"+ |
"<td>"+observationDetermination.getPourcentageConfiance()+"</td>"+ |
"<td>"+formaterDatePourForum(observationDetermination.getDate())+"</td>"+ |
"<td>"+creerListeCommentaireRecursive(observationDetermination.getCommentaires())+"</td>"+ |
"</tr>"; |
} |
ligne += "</table>"; |
htmlTableau.setHTML(ligne); |
} |
private String creerListeCommentaireRecursive(ArrayList<Commentaire> commentaires) { |
String commentairesHtml = "<ul class=\"liste_commentaire\">"; |
for (Commentaire commentaire : commentaires) { |
commentairesHtml += "<li class=\"commentaire\">"; |
commentairesHtml += "<div class=\"commentaire_texte\">"+commentaire.getCommentaire()+"</div>"; |
commentairesHtml += "<span class=\"commentaire_auteur\">"+commentaire.getAuteur()+"</span>"; |
commentairesHtml += "<span class=\"commentaire_date\">"+formaterDatePourForum(commentaire.getDate())+"</span>"; |
if(commentaire.getListeCommentaires().size() != 0) { |
commentairesHtml += creerListeCommentaireRecursive(commentaire.getListeCommentaires()); |
} |
commentairesHtml += "</li>"; |
} |
return commentairesHtml; |
} |
private String formaterDatePourForum(Date date) { |
return DateTimeFormat.getFormat(PredefinedFormat.DATE_SHORT).format(date); |
} |
} |
/src/org/tela_botanica/del/client/vues/rechercheobservations/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/rechercheobservations/vote/MoyenneVotePresenteur.java |
---|
New file |
0,0 → 1,20 |
package org.tela_botanica.del.client.vues.rechercheobservations.vote; |
import java.util.List; |
import org.tela_botanica.del.client.modeles.ObservationValidation; |
import com.google.gwt.user.client.ui.HasWidgets; |
public class MoyenneVotePresenteur { |
private MoyenneVoteVue view; |
public MoyenneVotePresenteur(List<ObservationValidation> validationDatas) { |
view = new MoyenneVoteVue(validationDatas); |
} |
public void go(HasWidgets container) { |
container.add(view); |
} |
} |
/src/org/tela_botanica/del/client/vues/rechercheobservations/vote/MoyenneVoteVue.java |
---|
New file |
0,0 → 1,54 |
package org.tela_botanica.del.client.vues.rechercheobservations.vote; |
import java.util.List; |
import org.cobogw.gwt.user.client.ui.Rating; |
import org.tela_botanica.del.client.modeles.ObservationValidation; |
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.Panel; |
import com.google.gwt.user.client.ui.VerticalPanel; |
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); |
private Panel mainPanel = new VerticalPanel(); |
@UiField |
FocusPanel voter; |
@UiField |
Label nbVotes; |
protected MoyenneVoteVue(List<ObservationValidation> validationDatas) { |
initWidget(uiBinder.createAndBindUi(this)); |
int meanVote = 0; |
int nbVote = 0; |
for (ObservationValidation 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/rechercheobservations/vote/DetailVotePresenteur.java |
---|
New file |
0,0 → 1,20 |
package org.tela_botanica.del.client.vues.rechercheobservations.vote; |
import java.util.List; |
import org.tela_botanica.del.client.modeles.ObservationValidation; |
import com.google.gwt.user.client.ui.HasWidgets; |
public class DetailVotePresenteur { |
private DetailVoteVue view; |
public DetailVotePresenteur(List<ObservationValidation> validationDatas) { |
view = new DetailVoteVue(validationDatas); |
} |
public void go(HasWidgets container) { |
container.add(view); |
} |
} |
/src/org/tela_botanica/del/client/vues/rechercheobservations/vote/DetailVoteVue.java |
---|
New file |
0,0 → 1,28 |
package org.tela_botanica.del.client.vues.rechercheobservations.vote; |
import java.util.List; |
import org.tela_botanica.del.client.modeles.ObservationValidation; |
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<ObservationValidation> validationDatas) { |
for (ObservationValidation imageCelValidationData : validationDatas) { |
mainPanel.add(new HTML("Vote " + imageCelValidationData.getVote() |
+ " par " + imageCelValidationData.getContributeur())); |
} |
initWidget(mainPanel); |
} |
} |
/src/org/tela_botanica/del/client/vues/rechercheobservations/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/rechercheobservations/ObservationRechercheVue.ui.xml |
---|
New file |
0,0 → 1,16 |
<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="observationRecherche.css" /> |
<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:FlexTable ui:field="imageTable"/> |
<g:VerticalPanel ui:field="panneauPagination"/> |
</g:HTMLPanel> |
</ui:UiBinder> |
/src/org/tela_botanica/del/client/vues/rechercheobservations/ObservationRecherchePresenteur.java |
---|
New file |
0,0 → 1,127 |
package org.tela_botanica.del.client.vues.rechercheobservations; |
import java.util.ArrayList; |
import java.util.Iterator; |
import java.util.List; |
import org.tela_botanica.del.client.modeles.Observation; |
import org.tela_botanica.del.client.pagination.PaginationPresenteur; |
import org.tela_botanica.del.client.utils.KeyboardKeyListener; |
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; |
import com.google.gwt.user.client.ui.Panel; |
public class ObservationRecherchePresenteur { |
private final MockDatasource observationService = MockDatasource.getInstance(); |
private final ObservationRechercheVue vue = new ObservationRechercheVue(); |
private static ObservationRecherchePresenteur instance; |
private List<ObservationPresenteur> observationPresenteurs = new ArrayList<ObservationPresenteur>(); |
private List<Observation> observations; |
public ObservationRecherchePresenteur() { |
instance = this; |
} |
public void go(HasWidgets composite) { |
composite.add(vue); |
gererEvenements(); |
} |
@SuppressWarnings("deprecation") |
public void gererEvenements() { |
// FIXME : temporaire, juste pour débug |
// chargerObservations(); |
vue.getBoutonChercher().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
vue.startChargement(); |
chargerObservations(); |
} |
}); |
// TODO : remplacer par KeyUp, KeyDown ... etc. |
vue.getTextBox().addKeyboardListener(new KeyboardKeyListener() { |
@Override |
public void onEnterKeyUp() { |
chargerObservations(); |
} |
}); |
} |
private void chargerObservations() { |
observations = observationService.getObservations(); |
// 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(observations); |
Iterator<Panel> panelIterator = vue.getPanneauxImages().iterator(); |
for (Observation observation : observations) { |
Panel imagePanel = panelIterator.next(); |
ObservationPresenteur observationPresenteur = new ObservationPresenteur(observation); |
observationPresenteur.go(imagePanel); |
observationPresenteurs.add(observationPresenteur); |
} |
vue.afficherPanneauxImage(0, vue.getNbImagesPerPage()); |
createPaginationWidget(observations.size()); |
vue.stopChargement(); |
} |
public void fermerTousPanneauxDetailsObservations(){ |
for(ObservationPresenteur observationPresenteur: observationPresenteurs){ |
if(observationPresenteur.isDetailsOpen()){ |
observationPresenteur.cacherDetails(); |
} |
} |
} |
private void createPaginationWidget(int nbImages) { |
new PaginationPresenteur(nbImages) { |
@Override |
public void changerPage(int debut, int fin) { |
ObservationRecherchePresenteur.getInstance().showImagePanels(debut, fin); |
} |
}.go(vue.getPanneauPagination()); |
/* |
* int nbPages = nbImages / vue.getNbImagesPerPage(); if (nbImages % |
* vue.getNbImagesPerPage() == 0) { nbPages--; } for (int i = 0; i <= |
* nbPages; i++) { new NumeroPagePresenteur(i + |
* 1).go(vue.getPanneauPagination()); } |
*/ |
} |
public void showImagePanels(int first, int last) { |
vue.afficherPanneauxImage(first, last); |
} |
public static ObservationRecherchePresenteur getInstance() { |
return instance; |
} |
public ObservationRechercheVue getView() { |
return vue; |
} |
public List<Observation> getObservations() { |
return observations; |
} |
} |
/src/org/tela_botanica/del/client/vues/rechercheobservations/detail/ObservationDetailVue.java |
---|
New file |
0,0 → 1,30 |
package org.tela_botanica.del.client.vues.rechercheobservations.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/rechercheobservations/detail/ObservationDetailPresenteur.java |
---|
New file |
0,0 → 1,22 |
package org.tela_botanica.del.client.vues.rechercheobservations.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/rechercheobservations/observation.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/rechercheobservations/ObservationRechercheVue.java |
---|
New file |
0,0 → 1,147 |
package org.tela_botanica.del.client.vues.rechercheobservations; |
import java.util.ArrayList; |
import java.util.Iterator; |
import java.util.List; |
import org.tela_botanica.del.client.modeles.Observation; |
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.FlexTable; |
import com.google.gwt.user.client.ui.FlowPanel; |
import com.google.gwt.user.client.ui.HTML; |
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 ObservationRechercheVue extends Composite { |
private final VerticalPanel mainPanel = new VerticalPanel(); |
private final Panel panneauChargement = new FlowPanel(); |
private final Panel taxaPanel = new FlowPanel(); |
private final List<Panel> panneauxImages = new ArrayList<Panel>(); |
private final HTML labelChargement = new HTML("<img src='img/wait.gif' />Contact du serveur du CEL..."); |
private final HTML labelChercher = new HTML("<img src='img/search_icon.gif' />Search taxon:"); |
private int nbCol = 5; |
private final int nbImagesPerPage = 10; |
private int numImage = 0; |
private final TextBox textBox = new TextBox(); |
// Annotation can be used to change the name of the associated xml file |
// @UiTemplate("ObservationRechercheVue.ui.xml") |
interface MyUiBinder extends UiBinder<Widget, ObservationRechercheVue> { |
} |
private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class); |
@UiField |
TextBox nomEspece; |
@UiField |
Panel panneauPagination; |
@UiField |
Button boutonChercher; |
@UiField |
FlexTable imageTable; |
// Constructeur |
protected ObservationRechercheVue() { |
initWidget(uiBinder.createAndBindUi(this)); |
nomEspece.setFocus(true); |
} |
/** |
* 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<Observation> observations) { |
for (int i = 0; i < observations.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 HTML getLabelChercher() { |
return labelChercher; |
} |
public Panel getPanneauPagination() { |
return panneauPagination; |
} |
public int getNbImagesPerPage() { |
return nbImagesPerPage; |
} |
public TextBox getTextBox() { |
return nomEspece; |
} |
public Panel getPanel() { |
return mainPanel; |
} |
public List<Panel> getPanneauxImages() { |
return panneauxImages; |
} |
public Button getBoutonChercher() { |
return boutonChercher; |
} |
} |
/src/org/tela_botanica/del/client/vues/rechercheobservations/ObservationVue.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="observation.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/rechercheobservations/ObservationPresenteur.java |
---|
New file |
0,0 → 1,100 |
package org.tela_botanica.del.client.vues.rechercheobservations; |
import java.util.List; |
import org.tela_botanica.del.client.modeles.Observation; |
import org.tela_botanica.del.client.modeles.ObservationValidation; |
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.rechercheobservations.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 ObservationPresenteur { |
private final MockDatasource validationService = MockDatasource.getInstance(); |
private ObservationVue vue = new ObservationVue(); |
private final Observation observation; |
private boolean detailsOpen = false; |
public ObservationPresenteur(Observation observation) { |
this.observation = observation; |
} |
public void go(HasWidgets composite) { |
composite.add(vue); |
vue.loadImage(observation); |
loadValidationData(); |
handleEvents(); |
} |
private void loadValidationData() { |
List<ObservationValidation> observationValidationDatas = validationService.getValidationData(observation.getIdImage()); |
observation.setImageCelValidationDatas(observationValidationDatas); |
new MoyenneVotePresenteur(observationValidationDatas).go(vue.getVoter()); |
vue.showValidationData(observationValidationDatas); |
} |
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(observation)); |
} |
}); |
} |
public void cacherDetails() { |
VerticalPanel zoneCache = vue.getZoneCache(); |
Label enSavoirPlus = vue.getEnSavoirPlus(); |
zoneCache.setVisible(false); |
enSavoirPlus.setStyleName("boutonPlus"); |
detailsOpen = false; |
} |
public void afficherDetails() { |
ObservationRecherchePresenteur.getInstance().fermerTousPanneauxDetailsObservations(); |
VerticalPanel zoneCache = vue.getZoneCache(); |
Label enSavoirPlus = vue.getEnSavoirPlus(); |
zoneCache.setVisible(true); |
enSavoirPlus.setStyleName("boutonMoins"); |
detailsOpen = true; |
} |
public boolean isDetailsOpen() { |
return detailsOpen; |
} |
public ObservationVue getVue() { |
return vue; |
} |
} |
/src/org/tela_botanica/del/client/vues/rechercheobservations/pagination/NumeroPagePresenteur.java |
---|
New file |
0,0 → 1,51 |
package org.tela_botanica.del.client.vues.rechercheobservations.pagination; |
import org.tela_botanica.del.client.vues.rechercheobservations.ObservationRecherchePresenteur; |
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 NumeroPagePresenteur { |
private final NumeroPageVue view; |
private int nbPage = 1; |
public NumeroPagePresenteur(int nbPage) { |
this.nbPage = nbPage; |
view = new NumeroPageVue(nbPage); |
} |
public void go(HasWidgets container) { |
container.add(view); |
handleEvents(); |
} |
public void handleEvents() { |
view.getNbPageHtml().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
int firstImage; |
int lastImage; |
int nbImagePerPage = ObservationRecherchePresenteur.getInstance() |
.getView().getNbImagesPerPage(); |
if (nbPage == 1) { |
firstImage = 0; |
} else { |
firstImage = ((nbPage - 1) * nbImagePerPage); |
} |
lastImage = (nbPage - 1) * nbImagePerPage + nbImagePerPage; |
ObservationRecherchePresenteur.getInstance().showImagePanels(firstImage, |
lastImage); |
} |
}); |
} |
} |
/src/org/tela_botanica/del/client/vues/rechercheobservations/pagination/NumeroPageVue.java |
---|
New file |
0,0 → 1,21 |
package org.tela_botanica.del.client.vues.rechercheobservations.pagination; |
import org.tela_botanica.del.client.gestionhistorique.ConstantesNavigation; |
import com.google.gwt.user.client.ui.Composite; |
import com.google.gwt.user.client.ui.HTML; |
public class NumeroPageVue extends Composite { |
private final HTML nbPageHtml = new HTML(); |
public NumeroPageVue(int nbPage) { |
nbPageHtml.setHTML("<h2><a href='#"+ConstantesNavigation.PAGE_PRINCIPALE+"'>" + nbPage + " </a></h2>"); |
initWidget(nbPageHtml); |
} |
public HTML getNbPageHtml() { |
return nbPageHtml; |
} |
} |
/src/org/tela_botanica/del/client/vues/rechercheobservations/ObservationVue.java |
---|
New file |
0,0 → 1,124 |
package org.tela_botanica.del.client.vues.rechercheobservations; |
import java.util.List; |
import org.tela_botanica.del.client.modeles.Observation; |
import org.tela_botanica.del.client.modeles.ObservationValidation; |
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 ObservationVue extends Composite { |
// Annotation can be used to change the name of the associated xml file |
// @UiTemplate("ObservationVue.ui.xml") |
interface MyUiBinder extends UiBinder<Widget, ObservationVue> { |
} |
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 ObservationVue() { |
// sets listBox |
initWidget(uiBinder.createAndBindUi(this)); |
} |
protected void loadImage(Observation observation) { |
enSavoirPlus.setStyleName("boutonPlus"); |
zoneCache.setVisible(false); |
nomEspece.setText(observation.getSpecies()); |
nomAuteur.setText(observation.getAuteur()); |
imagePrincipale.setUrl(observation.getUrl()); |
nomObservateur.setText(observation.getAuteur()); |
nomRetenu.setText(observation.getNomRetenu()); |
dateObservation.setText(observation.getDate()); |
famille.setText(observation.getFamille()); |
localite.setText(observation.getLocalite()); |
} |
protected void showValidationData(List<ObservationValidation> validationDatas) { |
/* |
* if (validationDatas == null || validationDatas.size() == 0) { |
* flowPanel.add(noValidationDataHtml); } |
* flowPanel.add(proposeValidationDataHtml); |
*/ |
} |
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/rechercheobservations/observationRecherche.css |
---|
New file |
0,0 → 1,2 |
.observationsRecherche {width:50%; margin:0 auto;} |
/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.Observation; |
import org.tela_botanica.del.client.modeles.ObservationValidation; |
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 Observation observationPrincipale; |
private String nomTaxonComparaison; |
private List<Observation> observationsEflore; |
public ComparaisonEflorePresenteur() { |
this.observationPrincipale = CacheClient.getInstance().getCurrentObservation(); |
this.nomTaxonComparaison = CacheClient.getInstance().getTaxonPourRechercheEflore(); |
} |
public void go(HasWidgets composite) { |
composite.add(vue); |
chargerValidationObservationPrincipale(); |
vue.chargerImagePrincipale(observationPrincipale); |
chargerObservationsEflore(); |
gererEvenements(); |
} |
private void chargerValidationObservationPrincipale() { |
List<ObservationValidation> observationValidations = validationService.getValidationData(observationPrincipale.getIdImage()); |
observationPrincipale.setImageCelValidationDatas(observationValidations); |
} |
private void chargerObservationsEflore() { |
observationsEflore = observationService.getObservationsEfloreParTaxon(nomTaxonComparaison); |
vue.chargerImagesEflore(observationsEflore, 0); |
} |
private void gererEvenements() { |
vue.getScrollLeftImage().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
vue.chargerImagesEflore(observationsEflore, vue.getCurrentIndexImages() - 1); |
} |
}); |
vue.getScrollRightImage().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
vue.chargerImagesEflore(observationsEflore, vue.getCurrentIndexImages() + 1); |
} |
}); |
} |
} |
/src/org/tela_botanica/del/client/vues/comparaisoneflore/ComparaisonEfloreVue.java |
---|
New file |
0,0 → 1,118 |
package org.tela_botanica.del.client.vues.comparaisoneflore; |
import java.util.Date; |
import java.util.List; |
import org.tela_botanica.del.client.modeles.Observation; |
import org.tela_botanica.del.client.modeles.ObservationValidation; |
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(Observation observationPrincipale) { |
// mots clefs |
String motsClefsConcatenes = ""; |
for (String motClef : observationPrincipale.getMotsClefs()) { |
motsClefsConcatenes += motClef + ","; |
} |
motsClefsConcatenes = motsClefsConcatenes.subSequence(0, motsClefsConcatenes.lastIndexOf(",")).toString(); |
// validateurs |
String validateursConcatenes = ""; |
for (ObservationValidation observationValidation : observationPrincipale.getImageCelValidationDatas()) { |
validateursConcatenes += observationValidation.getContributeur() + ", "; |
} |
validateursConcatenes = validateursConcatenes.subSequence(0, validateursConcatenes.lastIndexOf(",")).toString(); |
// date derniere validation |
Date dateDerniereValidation = null; |
for (ObservationValidation observationValidation : observationPrincipale.getImageCelValidationDatas()) { |
if (dateDerniereValidation == null) { |
dateDerniereValidation = observationValidation.getDate(); |
} else if (dateDerniereValidation.before(observationValidation.getDate())) { |
dateDerniereValidation = observationValidation.getDate(); |
} |
} |
motsClefs.setText(motsClefsConcatenes); |
nomAuteur.setText(observationPrincipale.getAuteur()); |
imagePrincipale.setUrl(observationPrincipale.getUrl()); |
dateObservation.setText(observationPrincipale.getDate()); |
famille.setText(observationPrincipale.getFamille()); |
validateurs.setText(validateursConcatenes); |
dateValidation.setText(DateTimeFormat.getFormat(PredefinedFormat.DATE_SHORT).format(dateDerniereValidation)); |
} |
protected void chargerImagesEflore(List<Observation> observationsEflore, int indexImage) { |
if (indexImage >= 0 && indexImage < observationsEflore.size()) { |
currentIndexImages = indexImage; |
} |
Observation observationEflore = observationsEflore.get(currentIndexImages); |
nomEspeceEflore.setText(observationEflore.getSpecies()); |
nomAuteurEflore.setText(observationEflore.getAuteur()); |
imageEflore.setUrl(observationEflore.getUrl()); |
dateObservationEflore.setText(observationEflore.getDate()); |
localiteEflore.setText(observationEflore.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/Del.java |
---|
New file |
0,0 → 1,22 |
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()); |
// displays init page |
// CacheClient.getInstance().setCurrentObservation(MockDatasource.getInstance().getObservationCourante()); |
// History.newItem(ConstantesNavigation.PAGE_COMPARAISON_EFLORE, true); |
History.newItem(ConstantesNavigation.PAGE_PRINCIPALE, true); |
History.fireCurrentHistoryState(); |
} |
} |
/src/org/tela_botanica/del/client/gestionhistorique/ConstantesNavigation.java |
---|
New file |
0,0 → 1,12 |
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 = "recherche_images_page"; |
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,38 |
package org.tela_botanica.del.client.gestionhistorique; |
import org.tela_botanica.del.client.cache.CacheClient; |
import org.tela_botanica.del.client.utils.MockDatasource; |
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.plateformedetermination.vote.EnsembleVotesPresenteur; |
import org.tela_botanica.del.client.vues.rechercheobservations.ObservationRecherchePresenteur; |
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 ObservationRecherchePresenteur().go(RootPanel.get()); |
} 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()); |
} |
} |
} |
/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/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/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/PropositionDetermination.java |
---|
New file |
0,0 → 1,97 |
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 String idImage; |
private ArrayList<Commentaire> commentaires = new ArrayList<Commentaire>(); |
private String pourcentageConfiance; |
private String espece; |
private int vote; |
private ArrayList<VoteDetermination> votesDeterminations = new ArrayList<VoteDetermination>(); |
private String contributeur; |
private Date date; |
public int getVotePondere() { |
vote = 50; |
return vote; |
} |
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 String getIdImage() { |
return idImage; |
} |
public void setIdImage(String idImage) { |
this.idImage = idImage; |
} |
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 getPourcentageConfiance() { |
return pourcentageConfiance; |
} |
public void setPourcentageConfiance(String pourcentageConfiance) { |
this.pourcentageConfiance = pourcentageConfiance; |
} |
public String getEspece() { |
return espece; |
} |
public void setEspece(String espece) { |
this.espece = espece; |
} |
} |
/src/org/tela_botanica/del/client/modeles/Observation.java |
---|
New file |
0,0 → 1,152 |
package org.tela_botanica.del.client.modeles; |
import java.io.Serializable; |
import java.util.ArrayList; |
import java.util.List; |
import org.tela_botanica.del.client.utils.GwtObservable; |
public class Observation extends GwtObservable 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 url; |
private String idImage; |
private String numNomenclatural; |
private List<String> motsClefs = new ArrayList<String>(); |
private List<PropositionDetermination> imageCelValidationDatas; |
private List<VoteProtocole> voteProtocoles; |
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 getUrl() { |
return url; |
} |
public void setUrl(String url) { |
this.url = url; |
} |
public String getNumNomenclatural() { |
return numNomenclatural; |
} |
public void setNumNomenclatural(String numNomenclatural) { |
this.numNomenclatural = numNomenclatural; |
} |
public String getIdImage() { |
return idImage; |
} |
public void setIdImage(String idImage) { |
this.idImage = idImage; |
} |
public List<PropositionDetermination> getImageCelValidationDatas() { |
return imageCelValidationDatas; |
} |
public void setImageCelValidationDatas(List<PropositionDetermination> imageCelValidationDatas) { |
this.imageCelValidationDatas = imageCelValidationDatas; |
} |
public List<String> getMotsClefs() { |
return motsClefs; |
} |
public void setMotsClefs(List<String> motsClefs) { |
this.motsClefs = motsClefs; |
} |
public List<VoteProtocole> getVoteProtocoles() { |
return voteProtocoles; |
} |
public void setVoteProtocoles(List<VoteProtocole> voteProtocoles) { |
this.voteProtocoles = voteProtocoles; |
} |
public void addImageCelValidationData(PropositionDetermination observationValidation) { |
imageCelValidationDatas.add(observationValidation); |
setChanged(); |
notifyObservers(); |
} |
public ArrayList<String> getPropositionsTaxonsData() { |
ArrayList<String> propositionsTaxonDatas = new ArrayList<String>(); |
for (PropositionDetermination observationValidation : imageCelValidationDatas) { |
String espece = observationValidation.getEspece(); |
if (espece != "" && !propositionsTaxonDatas.contains(espece)) { |
propositionsTaxonDatas.add(observationValidation.getEspece()); |
} |
} |
return propositionsTaxonDatas; |
} |
} |
/src/org/tela_botanica/del/client/modeles/VoteDetermination.java |
---|
New file |
0,0 → 1,58 |
package org.tela_botanica.del.client.modeles; |
import java.util.Date; |
public class VoteDetermination { |
private static final long serialVersionUID = -1017065180398557172L; |
private String id; |
private String idImage; |
private int vote; |
private String contributeur; |
private Date date; |
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 String getId() { |
return id; |
} |
public void setId(String id) { |
this.id = id; |
} |
public String getIdImage() { |
return idImage; |
} |
public void setIdImage(String idImage) { |
this.idImage = idImage; |
} |
public Date getDate() { |
return date; |
} |
public void setDate(Date date) { |
this.date = date; |
} |
} |
/src/org/tela_botanica/del/client/modeles/Commentaire.java |
---|
New file |
0,0 → 1,61 |
package org.tela_botanica.del.client.modeles; |
import java.util.ArrayList; |
import java.util.Date; |
import com.sun.xml.internal.bind.v2.runtime.unmarshaller.XsiNilLoader.Array; |
public class Commentaire { |
private String auteur; |
private Date date; |
private String commentaire; |
private ArrayList<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 ArrayList<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,73 |
package org.tela_botanica.del.client.modeles; |
import java.io.Serializable; |
import java.util.Date; |
public class VoteProtocole implements Serializable { |
/** |
* |
*/ |
private static final long serialVersionUID = -1017065180398557172L; |
private String id; |
private String idImage; |
private int vote; |
private String contributeur; |
private Date date; |
private Protocole protocol; |
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 String getId() { |
return id; |
} |
public void setId(String id) { |
this.id = id; |
} |
public String getIdImage() { |
return idImage; |
} |
public void setIdImage(String idImage) { |
this.idImage = idImage; |
} |
public Date getDate() { |
return date; |
} |
public void setDate(Date date) { |
this.date = date; |
} |
public Protocole getProtocol() { |
return protocol; |
} |
public void setProtocol(Protocole protocol) { |
this.protocol = protocol; |
} |
} |
/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/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,184 |
package org.tela_botanica.del.client.pagination; |
import java.util.Iterator; |
import java.util.Vector; |
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; |
private int pageActuelle = 0; |
private int pas; |
public PaginationPresenteur(int nbElements) { |
presenteur = this; |
this.nbElementsTotal = nbElements; |
actualiserNbPage(); |
vue = new PaginationVue(); |
setPas(10); |
} |
private void setBoutonActif() { |
Iterator<Button> it = liens.iterator(); |
while (it.hasNext()) { |
Button boutonCourant = it.next(); |
if (boutonCourant.getText().equals(String.valueOf(pageActuelle))) { |
boutonCourant.setStyleName("actif"); |
} else { |
boutonCourant.setStyleName("inactif"); |
} |
} |
} |
private void actualiserNbPage() { |
Double a = Math.ceil((double) nbElementsTotal / (double) pas); |
this.nbPage = a.intValue(); |
} |
public void setPageActuelle(int pageActuelle) { |
this.pageActuelle = pageActuelle; |
} |
public void setPas(int pas) { |
this.pas = pas; |
actualiserNbPage(); |
creerLiens(); |
changerPage(pas * pageActuelle, pas * (pageActuelle + 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(pas / 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(); |
pageActuelle = Integer.parseInt(bouton.getText()); |
int debut = Integer.parseInt(bouton.getText()) * pas; |
int fin = (debut + pas); |
setBoutonActif(); |
changerPage(debut, fin); |
} |
}); |
} |
} |
public void pageSuivante() { |
if (pageActuelle < nbPage - 1) { |
pageActuelle++; |
int debut = pageActuelle * pas; |
int fin = debut + pas; |
changerPage(debut, fin); |
} |
setBoutonActif(); |
} |
public void pagePrecedente() { |
if (pageActuelle > 0) { |
pageActuelle--; |
int debut = pageActuelle * pas; |
int fin = debut + pas; |
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/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.Observation; |
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 Observation observation; |
public EvenementValidation(Observation observation) { |
this.observation = observation; |
} |
@Override |
protected void dispatch(GestionnaireEvenementValidation handler) { |
handler.onValidationImage(this); |
} |
@Override |
public com.google.gwt.event.shared.GwtEvent.Type<GestionnaireEvenementValidation> getAssociatedType() { |
return TYPE; |
} |
public Observation getImageCel() { |
return observation; |
} |
} |
/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/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,61 |
package org.tela_botanica.del.client.navigation.evenement; |
import org.tela_botanica.del.client.cache.CacheClient; |
import org.tela_botanica.del.client.gestionhistorique.ConstantesNavigation; |
import org.tela_botanica.del.client.modeles.Observation; |
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.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) { |
doValidationObservation(event.getImageCel()); |
} |
}); |
addHandler(EvenementComparaisonEflore.TYPE, new GestionnaireEvenementComparaisonEflore() { |
@Override |
public void onComparaisonEflore(EvenementComparaisonEflore event) { |
doComparaisonAvecEflore(event.getTaxonDemande()); |
} |
}); |
} |
private void doValidationObservation(Observation observation) { |
CacheClient.getInstance().setCurrentObservation(observation); |
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(); |
} |
} |
/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,218 |
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.cache.CacheClient; |
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.Observation; |
import org.tela_botanica.del.client.modeles.PropositionDetermination; |
import org.tela_botanica.del.client.modeles.Protocole; |
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 extends GwtObservable { |
static MockDatasource instance; |
List<Observation> observations = new ArrayList<Observation>(); |
List<PropositionDetermination> propositionDeterminationDatas = new ArrayList<PropositionDetermination>(); |
ArrayList<String> propositionsTaxonDatas = new ArrayList<String>(); |
List<Protocole> protocoles = new ArrayList<Protocole>(); |
ArrayList<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); |
PropositionDetermination propositionDeterminationData = new PropositionDetermination(); |
propositionDeterminationData.setEspece("Iris lutescens subsp. lutescens"); |
propositionDeterminationData.setContributeur("contributeur test"); |
propositionDeterminationData.setId("1"); |
propositionDeterminationData.setIdImage("id image 1"); |
propositionDeterminationData.setPourcentageConfiance(I18n.getVocabulary().confiance_simple_suggestion()); |
propositionDeterminationData.setDate(new Date()); |
propositionDeterminationDatas.add(propositionDeterminationData); |
PropositionDetermination propositionDeterminationData2 = new PropositionDetermination(); |
propositionDeterminationData2.setContributeur("contributeur test 2"); |
propositionDeterminationData2.setEspece("Lavatera arborea L."); |
propositionDeterminationData2.setId("2"); |
propositionDeterminationData2.setIdImage("id image 1"); |
propositionDeterminationData2.setPourcentageConfiance(I18n.getVocabulary().confiance_sur_cent()); |
propositionDeterminationData2.setDate(new Date()); |
propositionDeterminationDatas.add(propositionDeterminationData2); |
Commentaire commentaire1 = new Commentaire("Léo Ferré", new Date(), "Avec le temps..."); |
PropositionDetermination propositionDeterminationData3 = new PropositionDetermination(); |
propositionDeterminationData3.setEspece("Acer monsp. L."); |
propositionDeterminationData3.setContributeur("Léo Ferré"); |
propositionDeterminationData3.ajouterCommentaire(commentaire1); |
propositionDeterminationData3.setId("1"); |
propositionDeterminationData3.setIdImage("id image 1"); |
propositionDeterminationData3.setPourcentageConfiance(I18n.getVocabulary().confiance_sur_cent()); |
propositionDeterminationData3.setDate(new Date()); |
propositionDeterminationDatas.add(propositionDeterminationData3); |
Commentaire commentaire2 = new Commentaire("Pierre Desproges", new Date(), "Public chéri mon amour !"); |
PropositionDetermination propositionDeterminationData4 = new PropositionDetermination(); |
propositionDeterminationData4.setEspece("Acer aceras aus."); |
propositionDeterminationData4.setContributeur("Pierre Desproges"); |
propositionDeterminationData4.ajouterCommentaire(commentaire2); |
propositionDeterminationData4.setId("2"); |
propositionDeterminationData4.setIdImage("id image 1"); |
propositionDeterminationData4.setPourcentageConfiance(I18n.getVocabulary().confiance_sur_cent()); |
propositionDeterminationData4.setDate(new Date()); |
propositionDeterminationDatas.add(propositionDeterminationData4); |
Commentaire commentaire3 = new Commentaire("Louis Aragon", new Date(), "Tout est affaire de décor"); |
Commentaire commentaire4 = new Commentaire("Gregoire Duché", new Date(), "Grrrrrr"); |
Commentaire commentaire5 = new Commentaire("Jean-Pascal Milcent", new Date(), "De l'ordre, de l'ordre et encore de l'ordre"); |
commentaire4.ajouterCommentaire(commentaire5); |
Commentaire commentaire6 = new Commentaire("Aurélien Peronnet", new Date(), "J'aime faire du bruit en machant mes chewing gums"); |
commentaire4.ajouterCommentaire(commentaire6); |
PropositionDetermination propositionDeterminationData5 = new PropositionDetermination(); |
propositionDeterminationData5.setEspece("Acer monsp subsp. monsp."); |
propositionDeterminationData5.setContributeur("Louis Aragon"); |
propositionDeterminationData5.ajouterCommentaire(commentaire3); |
propositionDeterminationData5.ajouterCommentaire(commentaire4); |
propositionDeterminationData5.setId("2"); |
propositionDeterminationData5.setIdImage("id image 1"); |
propositionDeterminationData5.setPourcentageConfiance(I18n.getVocabulary().confiance_probable()); |
propositionDeterminationData5.setDate(new Date()); |
propositionDeterminationDatas.add(propositionDeterminationData5); |
for (int i = 0; i < 20; i++) { |
Observation observation = new Observation(); |
String auteur = auteurs.next(); |
observation.setAuteur(auteur); |
observation.setSpecies(auteurObs.get(auteur)); |
int numobs = 44120 + i; |
observation.setUrl("http://www.tela-botanica.org/appli:cel-img:0000" + String.valueOf(numobs) + "CRS.jpg"); |
observation.setNumNomenclatural("num nomenclatural " + i); |
observation.setIdImage("id image " + 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(propositionDeterminationDatas); |
observations.add(observation); |
} |
pourcentagesConfiance.add(I18n.getVocabulary().confiance_simple_suggestion()); |
pourcentagesConfiance.add(I18n.getVocabulary().confiance_probable()); |
pourcentagesConfiance.add(I18n.getVocabulary().confiance_sur_cent()); |
} |
public List<Observation> getObservations() { |
return observations; |
} |
public List<PropositionDetermination> getValidationData(String idImage) { |
return propositionDeterminationDatas; |
} |
public List<PropositionDetermination> getValidationDataByImageAndProtocol(String idImage, String protocolName) { |
List<PropositionDetermination> validations = new ArrayList<PropositionDetermination>(); |
for (PropositionDetermination propositionDetermination : propositionDeterminationDatas) { |
/*if (propositionDetermination.getProtocol().getNom().equals(protocolName)) { |
validations.add(propositionDetermination); |
}*/ |
} |
return validations; |
} |
public Observation getObservationCourante() { |
return observations.get(0); |
} |
public List<Observation> getObservationsEfloreParTaxon(String nomTaxon) { |
return observations; |
} |
public Protocole getProtocole(String nomProtocole) { |
for (Protocole protocole : protocoles) { |
if (protocole.getNom().equals(nomProtocole)) { |
return protocole; |
} |
} |
return null; |
} |
public ArrayList<String> getPourcentagesConfiance() { |
return pourcentagesConfiance; |
} |
public void saveVote(VoteProtocole voteProtocole) { |
CacheClient.getInstance().getCurrentObservation().getVoteProtocoles().add(voteProtocole); |
} |
public void saveValidationData(PropositionDetermination validationData) throws ExceptionClient { |
propositionDeterminationDatas.add(validationData); |
} |
public static MockDatasource getInstance() { |
if (instance == null) { |
instance = new MockDatasource(); |
} |
return instance; |
} |
} |
/src/org/tela_botanica/del/client/utils/GwtObservable.java |
---|
New file |
0,0 → 1,125 |
package org.tela_botanica.del.client.utils; |
import java.util.ArrayList; |
import java.util.List; |
public class GwtObservable { |
List<GwtObserver> observers = new ArrayList<GwtObserver>(); |
boolean changed = false; |
/** |
* Constructs a new {@code Observable} object. |
*/ |
public GwtObservable() { |
super(); |
} |
/** |
* Adds the specified observer to the list of observers. If it is already |
* registered, it is not added a second time. |
* |
* @param observer |
* the Observer to add. |
*/ |
public void addObserver(GwtObserver observer) { |
if (observer == null) { |
throw new NullPointerException(); |
} |
synchronized (this) { |
if (!observers.contains(observer)) |
observers.add(observer); |
} |
} |
/** |
* Clears the changed flag for this {@code Observable}. After calling |
* {@code clearChanged()}, {@code hasChanged()} will return {@code false}. |
*/ |
protected void clearChanged() { |
changed = false; |
} |
/** |
* Returns the number of observers registered to this {@code Observable}. |
* |
* @return the number of observers. |
*/ |
public int countObservers() { |
return observers.size(); |
} |
/** |
* Removes the specified observer from the list of observers. Passing null |
* won't do anything. |
* |
* @param observer |
* the observer to remove. |
*/ |
public synchronized void deleteObserver(GwtObserver observer) { |
observers.remove(observer); |
} |
/** |
* Removes all observers from the list of observers. |
*/ |
public synchronized void deleteObservers() { |
observers.clear(); |
} |
/** |
* Returns the changed flag for this {@code Observable}. |
* |
* @return {@code true} when the changed flag for this {@code Observable} is |
* set, {@code false} otherwise. |
*/ |
public boolean hasChanged() { |
return changed; |
} |
/** |
* If {@code hasChanged()} returns {@code true}, calls the {@code update()} |
* method for every observer in the list of observers using null as the |
* argument. Afterwards, calls {@code clearChanged()}. |
* <p> |
* Equivalent to calling {@code notifyObservers(null)}. |
*/ |
public void notifyObservers() { |
notifyObservers(null); |
} |
/** |
* If {@code hasChanged()} returns {@code true}, calls the {@code update()} |
* method for every Observer in the list of observers using the specified |
* argument. Afterwards calls {@code clearChanged()}. |
* |
* @param data |
* the argument passed to {@code update()}. |
*/ |
public void notifyObservers(Object data) { |
int size = 0; |
GwtObserver[] arrays = null; |
synchronized (this) { |
if (hasChanged()) { |
clearChanged(); |
size = observers.size(); |
arrays = new GwtObserver[size]; |
observers.toArray(arrays); |
} |
} |
if (arrays != null) { |
for (GwtObserver observer : arrays) { |
observer.update(this, data); |
} |
} |
} |
/** |
* Sets the changed flag for this {@code Observable}. After calling |
* {@code setChanged()}, {@code hasChanged()} will return {@code true}. |
*/ |
protected void setChanged() { |
changed = true; |
} |
} |
/src/org/tela_botanica/del/client/utils/GwtObserver.java |
---|
New file |
0,0 → 1,23 |
package org.tela_botanica.del.client.utils; |
/** |
* {@code Observer} is the interface to be implemented by objects that receive |
* notification of updates on an {@code Observable} object. |
* |
* @see GwtObservable |
*/ |
public interface GwtObserver { |
/** |
* This method is called if the specified {@code Observable} object's |
* {@code notifyObservers} method is called (because the {@code Observable} |
* object has been updated. |
* |
* @param observable |
* the {@link GwtObservable} object. |
* @param data |
* the data passed to |
* {@link GwtObservable#notifyObservers(Object)}. |
*/ |
void update(GwtObservable observable, Object data); |
} |
/src/org/tela_botanica/del/client/cache/CacheClient.java |
---|
New file |
0,0 → 1,40 |
package org.tela_botanica.del.client.cache; |
import org.tela_botanica.del.client.modeles.Observation; |
public class CacheClient { |
private Observation currentObservation; |
private String taxonPourRechercheEflore; |
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; |
} |
} |