/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("scroll-arrow-left.gif") |
ImageResource arrowLeft(); |
@Source("scroll-arrow-right.gif") |
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,45 |
#vocabulaire partagé |
oui=oui |
non=non |
accepter=Valider |
annuler=Annuler |
chargement=Chargement |
ok=ok |
#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 sa détermination |
contributeur=Contributeur |
fiabilite=Fiabilite |
commentaire=Commentaire |
autres_informations=Autres informations |
choisir_un_taxon=Choisir un taxon |
autre=autre |
#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 |
/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 |
---|
--- tela_botanica/del/client/i18n/Vocabulary_en.properties (revision 0) |
+++ tela_botanica/del/client/i18n/Vocabulary_en.properties (revision 100) |
@@ -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,341 |
package org.tela_botanica.del.client.i18n; |
/** |
* Interface to represent the constants contained in resource bundle: |
* '/home/aurelien/web/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 "Auteur". |
* |
* @return translated "Auteur" |
*/ |
@DefaultStringValue("Auteur") |
@Key("auteur") |
String auteur(); |
/** |
* Translated "autre". |
* |
* @return translated "autre" |
*/ |
@DefaultStringValue("autre") |
@Key("autre") |
String autre(); |
/** |
* Translated "Autres informations ". |
* |
* @return translated "Autres informations " |
*/ |
@DefaultStringValue("Autres informations ") |
@Key("autres_informations") |
String autres_informations(); |
/** |
* 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 "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 "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 "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 sa détermination". |
* |
* @return translated "Proposer sa détermination" |
*/ |
@DefaultStringValue("Proposer sa 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 "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 "Transmis le". |
* |
* @return translated "Transmis le" |
*/ |
@DefaultStringValue("Transmis le") |
@Key("transmis_le") |
String transmis_le(); |
/** |
* Translated "Valide par". |
* |
* @return translated "Valide par" |
*/ |
@DefaultStringValue("Valide par") |
@Key("valide_par") |
String valide_par(); |
} |
/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/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/scroll-arrow-left.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/src/org/tela_botanica/del/client/scroll-arrow-left.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/src/org/tela_botanica/del/client/vues/plateformedetermination/formulaireproposition/FormulairePropositionVue.ui.xml |
---|
New file |
0,0 → 1,21 |
<!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"/> |
<g:VerticalPanel> |
<g:HTML HTML="{constants.proposer_sa_determination}"></g:HTML> |
<g:FlowPanel> |
<g:TextBox ui:field="nomPrenom" /> |
<g:ListBox ui:field="choixProposition" /> |
<g:TextBox ui:field="autreProposition" /> |
<g:TextBox ui:field="pourcentageConfiance" /> |
<g:TextArea ui:field="commentaires" /> |
</g:FlowPanel> |
<g:Button text="{constants.ok}" ui:field="boutonValidationProposition" /> |
</g:VerticalPanel> |
</ui:UiBinder> |
/src/org/tela_botanica/del/client/vues/plateformedetermination/formulaireproposition/FormulairePropositionPresenteur.java |
---|
New file |
0,0 → 1,62 |
package org.tela_botanica.del.client.vues.plateformedetermination.formulaireproposition; |
import java.util.ArrayList; |
import java.util.Date; |
import org.tela_botanica.del.client.cache.CacheClient; |
import org.tela_botanica.del.client.exceptions.ExceptionClient; |
import org.tela_botanica.del.client.modeles.ObservationValidation; |
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.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.HasWidgets; |
public class FormulairePropositionPresenteur { |
private final MockDatasource validationService = MockDatasource.getInstance(); |
private ArrayList<String> propositionsTaxons; |
private FormulairePropositionVue formulairePropositionVue = new FormulairePropositionVue(); |
public void go(HasWidgets composite) { |
propositionsTaxons = validationService.getPropositionsTaxonsData(CacheClient.getInstance().getCurrentObservation().getIdImage()); |
formulairePropositionVue.chargerPropositionsTaxons(propositionsTaxons); |
composite.add(formulairePropositionVue); |
gererEvenements(); |
} |
private void gererEvenements() { |
formulairePropositionVue.getBoutonValidationProposition().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
ObservationValidation propositionAjoutee = new ObservationValidation(); |
propositionAjoutee.setId(CacheClient.getInstance().getCurrentObservation().getIdImage()); |
propositionAjoutee.setCommentaire(formulairePropositionVue.getCommentaires().getText()); |
propositionAjoutee.setContributeur(formulairePropositionVue.getNomPrenom().getText()); |
propositionAjoutee.setDate(new Date()); |
if (formulairePropositionVue.getAutreProposition().getText() != "") { |
propositionAjoutee.setEspece(formulairePropositionVue.getAutreProposition().getText()); |
} else { |
propositionAjoutee.setEspece(formulairePropositionVue.getChoixProposition().getItemText(formulairePropositionVue.getChoixProposition().getSelectedIndex())); |
} |
propositionAjoutee.setPourcentageConfiance(Integer.parseInt(formulairePropositionVue.getPourcentageConfiance().getText())); |
try { |
validationService.saveValidationData(propositionAjoutee); |
} catch (ExceptionClient e) { |
// TODO Auto-generated catch block |
e.printStackTrace(); |
} |
} |
}); |
} |
} |
/src/org/tela_botanica/del/client/vues/plateformedetermination/formulaireproposition/FormulairePropositionVue.java |
---|
New file |
0,0 → 1,75 |
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 ListBox choixProposition = new ListBox(); |
@UiField(provided = true) |
public TextBox autreProposition = new TextBox(); |
@UiField(provided = true) |
public TextBox pourcentageConfiance = new TextBox(); |
@UiField(provided = true) |
public TextArea commentaires = new TextArea(); |
@UiField(provided = true) |
public Button boutonValidationProposition = new Button(); |
interface FormulairePropositionUIiBinder extends UiBinder<Widget, FormulairePropositionVue>{}; |
FormulairePropositionUIiBinder uiBinder = GWT.create(FormulairePropositionUIiBinder.class); |
public FormulairePropositionVue() { |
initWidget(uiBinder.createAndBindUi(this)); |
} |
public void chargerPropositionsTaxons(ArrayList<String> propositionsTaxons) { |
for(Iterator<String> it = propositionsTaxons.iterator(); it.hasNext();) { |
choixProposition.addItem(it.next()); |
} |
} |
public TextBox getNomPrenom() { |
return nomPrenom; |
} |
public ListBox getChoixProposition() { |
return choixProposition; |
} |
public TextBox getAutreProposition() { |
return autreProposition; |
} |
public TextBox getPourcentageConfiance() { |
return pourcentageConfiance; |
} |
public TextArea getCommentaires() { |
return commentaires; |
} |
public Button getBoutonValidationProposition() { |
return boutonValidationProposition; |
} |
} |
/src/org/tela_botanica/del/client/vues/plateformedetermination/formulairerechercheeflore/FormulaireRechercheEfloreVue.ui.xml |
---|
New file |
0,0 → 1,13 |
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent"> |
<ui:UiBinder |
xmlns:ui='urn:ui:com.google.gwt.uibinder' |
xmlns:g='urn:import:com.google.gwt.user.client.ui'> |
<ui:with field="constants" type="org.tela_botanica.del.client.i18n.Vocabulary"/> |
<g:VerticalPanel> |
<g:TextBox ui:field="formulaireRechercheObservationEflore" /> |
<g:Button text="{constants.ok}" ui:field="boutonValidationRechercheObservation" /> |
</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,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' |
xmlns:forum="urn:import:org.tela_botanica.del.client.vues.plateformedetermination.forum"> |
<g:VerticalPanel> |
<g:VerticalPanel ui:field="detailImageObservation"></g:VerticalPanel> |
<g:VerticalPanel ui:field="forum"></g:VerticalPanel> |
<g:VerticalPanel ui:field="formulaireProposition"></g:VerticalPanel> |
<g:VerticalPanel ui:field="formulaireRechercheEflore"></g:VerticalPanel> |
</g:VerticalPanel> |
</ui:UiBinder> |
/src/org/tela_botanica/del/client/vues/plateformedetermination/DeterminationPresenteur.java |
---|
New file |
0,0 → 1,28 |
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.formulaireproposition.FormulairePropositionVue; |
import org.tela_botanica.del.client.vues.plateformedetermination.formulairerechercheeflore.FormulaireRechercheEflorePresenteur; |
import org.tela_botanica.del.client.vues.plateformedetermination.forum.ForumPresenteur; |
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 ForumPresenteur().go(determinationVue.getForum()); |
new FormulairePropositionPresenteur().go(determinationVue.getFormulaireProposition()); |
new FormulaireRechercheEflorePresenteur().go(determinationVue.getFormulaireProposition()); |
composite.add(determinationVue); |
} |
} |
/src/org/tela_botanica/del/client/vues/plateformedetermination/DeterminationVue.java |
---|
New file |
0,0 → 1,46 |
package org.tela_botanica.del.client.vues.plateformedetermination; |
import com.google.gwt.core.client.GWT; |
import com.google.gwt.uibinder.client.UiBinder; |
import com.google.gwt.uibinder.client.UiField; |
import com.google.gwt.user.client.ui.Composite; |
import com.google.gwt.user.client.ui.VerticalPanel; |
import com.google.gwt.user.client.ui.Widget; |
public class DeterminationVue extends Composite { |
@UiField(provided = true) |
VerticalPanel forum = new VerticalPanel(); |
@UiField(provided = true) |
VerticalPanel detailImageObservation = new VerticalPanel(); |
@UiField(provided = true) |
VerticalPanel formulaireProposition = new VerticalPanel(); |
@UiField(provided = true) |
VerticalPanel formulaireRechercheEflore = new VerticalPanel(); |
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; |
} |
} |
/src/org/tela_botanica/del/client/vues/plateformedetermination/detail/DetailImageObservationVue.java |
---|
New file |
0,0 → 1,41 |
package org.tela_botanica.del.client.vues.plateformedetermination.detail; |
import org.tela_botanica.del.client.i18n.I18n; |
import org.tela_botanica.del.client.modeles.Observation; |
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.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.HasWidgets; |
import com.google.gwt.user.client.ui.Image; |
import com.google.gwt.user.client.ui.Widget; |
public class DetailImageObservationVue extends Composite { |
@UiField(provided = true) |
public Image imageObservation = new Image(); |
@UiField(provided = true) |
public HTML detailObservation = new HTML(); |
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()); |
detailObservation.setHTML("<ul>"+ |
"<li> "+I18n.getVocabulary().nom_retenu()+" : "+o.getNomRetenu()+"</li>"+ |
"<li> "+I18n.getVocabulary().localite()+" : "+o.getLocalite()+"</li>"+ |
"<li> "+I18n.getVocabulary().auteur()+" : "+o.getAuteur()+"</li>"+ |
"<li> "+I18n.getVocabulary().date_observation()+" : "+o.getDate()+"</li>"+ |
"<li> "+I18n.getVocabulary().autres_informations()+" : "+o.toString()+"</li>"+ |
"</ul>"); |
} |
} |
/src/org/tela_botanica/del/client/vues/plateformedetermination/detail/DetailImageObservationVue.ui.xml |
---|
New file |
0,0 → 1,11 |
<!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'> |
<g:HorizontalPanel> |
<g:Image ui:field="imageObservation"></g:Image> |
<g:HTML ui:field="detailObservation"></g:HTML> |
</g:HorizontalPanel> |
</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/forum/ForumVue.ui.xml |
---|
New file |
0,0 → 1,9 |
<!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"> |
<g:HTML ui:field='htmlTableau' /> |
</ui:UiBinder> |
/src/org/tela_botanica/del/client/vues/plateformedetermination/forum/ForumPresenteur.java |
---|
New file |
0,0 → 1,45 |
package org.tela_botanica.del.client.vues.plateformedetermination.forum; |
import java.util.List; |
import org.tela_botanica.del.client.modeles.ObservationValidation; |
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 final MockDatasource validationService = MockDatasource.getInstance(); |
private List<ObservationValidation> determinations; |
public void go(HasWidgets composite) { |
validationService.addObserver(this); |
chargerCommentaires(); |
composite.add(forumVue); |
} |
private void chargerCommentaires() { |
determinations = validationService.getValidationData(CacheClient.getInstance().getCurrentObservation().getIdImage()); |
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,51 |
package org.tela_botanica.del.client.vues.plateformedetermination.forum; |
import java.util.List; |
import org.tela_botanica.del.client.i18n.I18n; |
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.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<ObservationValidation> 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 (ObservationValidation observationDetermination : determinations) { |
ligne += "<tr>"+ |
"<td>"+observationDetermination.getEspece()+"</td>"+ |
"<td>"+observationDetermination.getContributeur()+"</td>"+ |
"<td>"+observationDetermination.getPourcentageConfiance()+"%</td>"+ |
"<td>"+observationDetermination.getDate()+"</td>"+ |
"<td>"+observationDetermination.getCommentaire()+"</td>"+ |
"</tr>"; |
} |
ligne += "</table>"; |
htmlTableau.setHTML(ligne); |
} |
} |
/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,121 |
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; |
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; |
} |
} |
/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/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/ObservationRecherchePresenteur.java |
---|
New file |
0,0 → 1,122 |
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.utils.KeyboardKeyListener; |
import org.tela_botanica.del.client.utils.MockDatasource; |
import org.tela_botanica.del.client.vues.rechercheobservations.pagination.NumeroPagePresenteur; |
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.getLabelChercher().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) { |
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/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/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/observation.css |
---|
New file |
0,0 → 1,9 |
.observations {border: solid 1px #DDD; padding:10px; width:150px; height:230px; -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 } |
.petit {font-size:11px; color:#AAA} |
.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,148 |
package org.tela_botanica.del.client.vues.rechercheobservations; |
import java.util.ArrayList; |
import java.util.List; |
import org.tela_botanica.del.client.modeles.Observation; |
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.HasHorizontalAlignment; |
import com.google.gwt.user.client.ui.HorizontalPanel; |
import com.google.gwt.user.client.ui.Panel; |
import com.google.gwt.user.client.ui.TextBox; |
import com.google.gwt.user.client.ui.VerticalPanel; |
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 FlexTable imageTable = new FlexTable(); |
private final Panel panneauPagination = new HorizontalPanel(); |
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(); |
// Constructeur |
protected ObservationRechercheVue() { |
textBox.setText("apifera"); |
textBox.setFocus(true); |
mainPanel.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER); |
mainPanel.setSize("100%", "100%"); |
Panel textBoxPanel = new HorizontalPanel(); |
textBoxPanel.add(labelChercher); |
textBoxPanel.add(textBox); |
Panel searchPanel = new VerticalPanel(); |
searchPanel.add(new HTML("Rechercher une image")); |
searchPanel.add(textBoxPanel); |
searchPanel.add(new HTML("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")); |
panneauChargement.add(labelChargement); |
panneauChargement.setVisible(false); |
mainPanel.add(panneauChargement); |
taxaPanel.add(imageTable); |
mainPanel.add(searchPanel); |
mainPanel.add(panneauPagination); |
mainPanel.add(taxaPanel); |
initWidget(mainPanel); |
} |
/** |
* 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 textBox; |
} |
public Panel getPanel() { |
return mainPanel; |
} |
public List<Panel> getPanneauxImages() { |
return panneauxImages; |
} |
} |
/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:VerticalPanel> |
<g:HorizontalPanel ui:field="voter"/> |
<g:VerticalPanel> |
<g:Label ui:field="nomAuteur" styleName="{style.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.getImagePrincipale().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/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/vues/comparaisoneflore/ComparaisonEfloreVue.ui.xml |
---|
New file |
0,0 → 1,113 |
<!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" /> |
<g:HTMLPanel> |
<g:VerticalPanel> |
<g:HorizontalPanel> |
<g:VerticalPanel> |
<g:Label text="{constants.taxon_a_determiner} : " /> |
<g:HorizontalPanel> |
<g:Image ui:field="imagePrincipale" /> |
</g:HorizontalPanel> |
<g:HTML> |
<br /> |
</g:HTML> |
<g:HorizontalPanel> |
<g:Label text="{constants.metadonnees_photo} : " /> |
</g:HorizontalPanel> |
<g:HTML> |
<br /> |
</g:HTML> |
<g:HorizontalPanel> |
<g:Label text="{constants.observateur} : " /> |
<g:HTML> |
</g:HTML> |
<g:Label ui:field="nomAuteur"></g:Label> |
</g:HorizontalPanel> |
<g:Label text="----------------" /> |
<g:HorizontalPanel> |
<g:Label text="{constants.date_observation} : " /> |
<g:HTML> |
</g:HTML> |
<g:Label ui:field="dateObservation"></g:Label> |
</g:HorizontalPanel> |
<g:Label text="----------------" /> |
<g:HorizontalPanel> |
<g:Label text="{constants.commentaires} : " /> |
<g:HTML> |
</g:HTML> |
<g:Label ui:field="famille"></g:Label> |
</g:HorizontalPanel> |
<g:HorizontalPanel> |
<g:Label text="{constants.mots_clefs} : " /> |
<g:HTML> |
</g:HTML> |
<g:Label ui:field="motsClefs"></g:Label> |
</g:HorizontalPanel> |
<g:HorizontalPanel> |
<g:Label text="{constants.valide_par} : " /> |
<g:HTML> |
</g:HTML> |
<g:Label ui:field="validateurs"></g:Label> |
</g:HorizontalPanel> |
<g:HorizontalPanel> |
<g:Label text="{constants.date_validation} : " /> |
<g:HTML> |
</g:HTML> |
<g:Label ui:field="dateValidation"></g:Label> |
</g:HorizontalPanel> |
</g:VerticalPanel> |
<g:VerticalPanel> |
<g:Label text="{constants.image_eflore} : " /> |
<g:HorizontalPanel> |
<g:Image ui:field="scrollLeftImage" resource='{res.arrowLeft}' /> |
<g:Image ui:field="imageEflore" /> |
<g:Image ui:field="scrollRightImage" resource='{res.arrowRight}' /> |
</g:HorizontalPanel> |
<g:HTML> |
<br /> |
</g:HTML> |
<g:HorizontalPanel> |
<g:Label text="{constants.metadonnees_photo} : " /> |
</g:HorizontalPanel> |
<g:HTML> |
<br /> |
</g:HTML> |
<g:HorizontalPanel> |
<g:Label text="{constants.taxon} : " /> |
<g:HTML> |
</g:HTML> |
<g:Label ui:field="nomEspeceEflore"></g:Label> |
</g:HorizontalPanel> |
<g:HorizontalPanel> |
<g:Label text="{constants.localite} : " /> |
<g:HTML> |
</g:HTML> |
<g:Label ui:field="localiteEflore"></g:Label> |
</g:HorizontalPanel> |
<g:HorizontalPanel> |
<g:Label text="{constants.auteur} : " /> |
<g:HTML> |
</g:HTML> |
<g:Label ui:field="nomAuteurEflore"></g:Label> |
</g:HorizontalPanel> |
<g:HorizontalPanel> |
<g:Label text="{constants.transmis_le} : " /> |
<g:HTML> |
</g:HTML> |
<g:Label ui:field="dateObservationEflore"></g:Label> |
</g:HorizontalPanel> |
</g:VerticalPanel> |
</g:HorizontalPanel> |
</g:VerticalPanel> |
</g:HTMLPanel> |
</ui:UiBinder> |
/src/org/tela_botanica/del/client/Del.java |
---|
New file |
0,0 → 1,20 |
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 |
History.newItem(ConstantesNavigation.PAGE_PRINCIPALE, true); |
History.fireCurrentHistoryState(); |
} |
} |
/src/org/tela_botanica/del/client/gestionhistorique/GestionnaireHistorique.java |
---|
New file |
0,0 → 1,35 |
package org.tela_botanica.del.client.gestionhistorique; |
import org.tela_botanica.del.client.vues.comparaisoneflore.ComparaisonEflorePresenteur; |
import org.tela_botanica.del.client.vues.plateformedetermination.DeterminationPresenteur; |
import org.tela_botanica.del.client.vues.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)) { |
new DeterminationPresenteur().go(RootPanel.get()); |
RootPanel.get().clear(); |
new ComparaisonEflorePresenteur().go(RootPanel.get()); |
} |
} |
} |
/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/modeles/Protocol.java |
---|
New file |
0,0 → 1,25 |
package org.tela_botanica.del.client.modeles; |
public class Protocol { |
private int id; |
private String name; |
public int getId() { |
return id; |
} |
public void setId(int id) { |
this.id = id; |
} |
public String getName() { |
return name; |
} |
public void setName(String name) { |
this.name = name; |
} |
} |
/src/org/tela_botanica/del/client/modeles/ObservationValidation.java |
---|
New file |
0,0 → 1,100 |
package org.tela_botanica.del.client.modeles; |
import java.io.Serializable; |
import java.util.Date; |
public class ObservationValidation implements Serializable { |
private static final long serialVersionUID = 840032625524143547L; |
private String id; |
private String idImage; |
private String commentaire; |
private int pourcentageConfiance; |
private String espece; |
private int vote; |
private String contributeur; |
private Date date; |
private Protocol 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 String getCommentaire() { |
return commentaire; |
} |
public void setCommentaire(String commentaire) { |
this.commentaire = commentaire; |
} |
public int getPourcentageConfiance() { |
return pourcentageConfiance; |
} |
public void setPourcentageConfiance(int pourcentageConfiance) { |
this.pourcentageConfiance = pourcentageConfiance; |
} |
public String getEspece() { |
return espece; |
} |
public void setEspece(String espece) { |
this.espece = espece; |
} |
public Protocol getProtocol() { |
return protocol; |
} |
public void setProtocol(Protocol protocol) { |
this.protocol = protocol; |
} |
} |
/src/org/tela_botanica/del/client/modeles/Observation.java |
---|
New file |
0,0 → 1,121 |
package org.tela_botanica.del.client.modeles; |
import java.io.Serializable; |
import java.util.ArrayList; |
import java.util.List; |
public class Observation implements Serializable { |
private static final long serialVersionUID = 840032625524143547L; |
private String auteur; |
private String species; |
private String nomRetenu; |
private String famille; |
private String localite; |
private String date; |
private String url; |
private String idImage; |
private String numNomenclatural; |
private List<String> motsClefs = new ArrayList<String>(); |
private List<ObservationValidation> imageCelValidationDatas; |
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<ObservationValidation> getImageCelValidationDatas() { |
return imageCelValidationDatas; |
} |
public void setImageCelValidationDatas(List<ObservationValidation> imageCelValidationDatas) { |
this.imageCelValidationDatas = imageCelValidationDatas; |
} |
public List<String> getMotsClefs() { |
return motsClefs; |
} |
public void setMotsClefs(List<String> motsClefs) { |
this.motsClefs = motsClefs; |
} |
} |
/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/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/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/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/MockDatasource.java |
---|
New file |
0,0 → 1,183 |
package org.tela_botanica.del.client.utils; |
import java.util.ArrayList; |
import java.util.Date; |
import java.util.HashMap; |
import java.util.Iterator; |
import java.util.List; |
import org.tela_botanica.del.client.exceptions.ExceptionClient; |
import org.tela_botanica.del.client.modeles.Observation; |
import org.tela_botanica.del.client.modeles.ObservationValidation; |
import org.tela_botanica.del.client.modeles.Protocol; |
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<ObservationValidation> observationValidationDatas = new ArrayList<ObservationValidation>(); |
ArrayList<String> propositionsTaxonDatas = 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(); |
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("nom retenu " + i); |
observation.setMotsClefs(motsClefs); |
observations.add(observation); |
} |
Protocol protocol1 = new Protocol(); |
protocol1.setName("Esthetisme"); |
protocol1.setId(1); |
Protocol protocol2 = new Protocol(); |
protocol2.setName("Identification automatique"); |
protocol2.setId(2); |
ObservationValidation observationValidationData = new ObservationValidation(); |
observationValidationData.setEspece("Espece 1"); |
observationValidationData.setContributeur("contributeur test"); |
observationValidationData.setId("1"); |
observationValidationData.setIdImage("id image 1"); |
observationValidationData.setVote(4); |
observationValidationData.setPourcentageConfiance(90); |
observationValidationData.setDate(new Date()); |
observationValidationData.setProtocol(protocol1); |
observationValidationDatas.add(observationValidationData); |
ObservationValidation observationValidationData2 = new ObservationValidation(); |
observationValidationData2.setContributeur("contributeur test 2"); |
observationValidationData2.setId("2"); |
observationValidationData2.setIdImage("id image 1"); |
observationValidationData2.setVote(2); |
observationValidationData2.setPourcentageConfiance(50); |
observationValidationData2.setDate(new Date()); |
observationValidationData2.setProtocol(protocol2); |
observationValidationDatas.add(observationValidationData2); |
ObservationValidation observationValidationData3 = new ObservationValidation(); |
observationValidationData3.setEspece("Acer monsp. L."); |
observationValidationData3.setContributeur("Léo Ferré"); |
observationValidationData3.setCommentaire("Avec le temps..."); |
observationValidationData3.setId("1"); |
observationValidationData3.setIdImage("id image 1"); |
observationValidationData2.setVote(3); |
observationValidationData3.setPourcentageConfiance(90); |
observationValidationData3.setDate(new Date()); |
observationValidationDatas.add(observationValidationData3); |
ObservationValidation observationValidationData4 = new ObservationValidation(); |
observationValidationData4.setEspece("Acer aceras aus."); |
observationValidationData4.setContributeur("Pierre Desproges"); |
observationValidationData4.setCommentaire("Public chéri mon amour !"); |
observationValidationData4.setId("2"); |
observationValidationData4.setIdImage("id image 1"); |
observationValidationData2.setVote(1); |
observationValidationData4.setPourcentageConfiance(30); |
observationValidationData4.setDate(new Date()); |
observationValidationDatas.add(observationValidationData4); |
ObservationValidation observationValidationData5 = new ObservationValidation(); |
observationValidationData5.setEspece("Acer monsp subsp. monsp."); |
observationValidationData5.setContributeur("Louis Aragon"); |
observationValidationData5.setCommentaire("Tout est affaire de décor"); |
observationValidationData5.setId("2"); |
observationValidationData5.setIdImage("id image 1"); |
observationValidationData2.setVote(2); |
observationValidationData5.setPourcentageConfiance(50); |
observationValidationData5.setDate(new Date()); |
observationValidationDatas.add(observationValidationData5); |
propositionsTaxonDatas.add("Acer monsp. L."); |
propositionsTaxonDatas.add("Acer aceras aus."); |
propositionsTaxonDatas.add("Acer monsp subsp. monsp."); |
propositionsTaxonDatas.add("Acer australis L."); |
} |
public List<Observation> getObservations() { |
return observations; |
} |
public List<ObservationValidation> getValidationData(String idImage) { |
return observationValidationDatas; |
} |
public ArrayList<String> getPropositionsTaxonsData(String idImage) { |
return propositionsTaxonDatas; |
} |
public Observation getObservationCourante() { |
return observations.get(0); |
} |
public List<Observation> getObservationsEfloreParTaxon(String nomTaxon) { |
return observations; |
} |
public void saveValidationData(ObservationValidation validationData) throws ExceptionClient { |
observationValidationDatas.add(validationData); |
setChanged(); |
notifyObservers(); |
} |
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/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/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; |
} |
} |
/src/org/tela_botanica/del/client/scroll-arrow-right.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/src/org/tela_botanica/del/client/scroll-arrow-right.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/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> |