Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 177 → Rev 178

/src/org/tela_botanica/del/client/vues/rechercheimages/resultats/images/ImageVue.ui.xml
New file
0,0 → 1,45
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' xmlns:g='urn:import:com.google.gwt.user.client.ui' ui:generateFormat='com.google.gwt.i18n.rebind.format.PropertiesFormat'
ui:generateKeys="com.google.gwt.i18n.rebind.keygen.MD5KeyGenerator" ui:generateLocales="default">
 
<ui:with field='res' type='org.tela_botanica.del.client.Ressources'/>
<ui:with field="constants" type="org.tela_botanica.del.client.i18n.Vocabulary"/>
<ui:style src="image.css" />
 
<g:HTMLPanel styleName="{style.observations}">
<g:Image ui:field="imagePrincipale" resource='{res.logo}' />
<g:VerticalPanel styleName="{style.zonePlus}">
<g:Label ui:field="enSavoirPlus" text=" "/>
<g:VerticalPanel styleName="{style.zoneCache}" ui:field="zoneCache">
<g:VerticalPanel>
<g:HorizontalPanel>
<g:Label text="{constants.observateur} : "/>
<g:Label ui:field="nomObservateur">Nom observateur</g:Label>
</g:HorizontalPanel>
<g:HorizontalPanel>
<g:Label text="{constants.nom_retenu} : "/>
<g:Label ui:field="nomRetenu">Nom retenu</g:Label>
</g:HorizontalPanel>
<g:HorizontalPanel>
<g:Label text="{constants.date_observation} : "/>
<g:Label ui:field="dateObservation">Date observation</g:Label>
</g:HorizontalPanel>
<g:HorizontalPanel>
<g:Label text="{constants.famille} : "/>
<g:Label ui:field="famille">Famille</g:Label>
</g:HorizontalPanel>
<g:HorizontalPanel>
<g:Label text="{constants.localite} : "/>
<g:Label ui:field="localite">Localite</g:Label>
</g:HorizontalPanel>
</g:VerticalPanel>
</g:VerticalPanel>
<g:Label ui:field="ajoutValidation" styleName="{style.ajoutValidation}">Ajouter votre validation</g:Label>
</g:VerticalPanel>
<g:HorizontalPanel ui:field="voter"/>
<g:VerticalPanel>
<g:Label ui:field="nomAuteur" styleName="petit">Auteur</g:Label>
<g:Label ui:field="nomEspece" styleName="{style.espece}">Nom</g:Label>
</g:VerticalPanel>
</g:HTMLPanel>
</ui:UiBinder>
/src/org/tela_botanica/del/client/vues/rechercheimages/resultats/images/ImagePresenteur.java
New file
0,0 → 1,103
package org.tela_botanica.del.client.vues.rechercheimages.resultats.images;
 
import java.util.List;
 
import org.tela_botanica.del.client.modeles.Image;
import org.tela_botanica.del.client.modeles.Protocole;
import org.tela_botanica.del.client.modeles.VoteProtocole;
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
import org.tela_botanica.del.client.navigation.evenement.validationobservation.EvenementValidation;
import org.tela_botanica.del.client.utils.MockDatasource;
import org.tela_botanica.del.client.vues.rechercheimages.resultats.ResultatRechercheImagePresenteur;
import org.tela_botanica.del.client.vues.rechercheimages.vote.MoyenneVotePresenteur;
 
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.VerticalPanel;
 
public class ImagePresenteur {
 
private final MockDatasource validationService = MockDatasource.getInstance();
private ImageVue vue = new ImageVue();
private final Image image;
private boolean detailsOpen = false;
 
private Protocole protocole;
 
public ImagePresenteur(Image image, Protocole protocole) {
this.image = image;
this.protocole = protocole;
}
 
public void go(HasWidgets composite) {
composite.add(vue);
vue.loadImage(image);
loadValidationData();
handleEvents();
 
}
 
private void loadValidationData() {
 
List<VoteProtocole> observationValidationDatas = validationService.getVoteByImageAndProtocol(image.getIdImage(), protocole.getNom());
new MoyenneVotePresenteur(observationValidationDatas).go(vue.getVoter());
 
}
 
private void handleEvents() {
 
vue.getEnSavoirPlus().addClickHandler(new ClickHandler() {
 
@Override
public void onClick(ClickEvent event) {
 
if (!detailsOpen) {
afficherDetails();
} else {
cacherDetails();
}
 
}
});
 
vue.getAjoutValidation().addClickHandler(new ClickHandler() {
 
@Override
public void onClick(ClickEvent event) {
BusEvenementiel.getInstance().fireEvent(new EvenementValidation(image));
}
});
}
 
public void cacherDetails() {
VerticalPanel zoneCache = vue.getZoneCache();
Label enSavoirPlus = vue.getEnSavoirPlus();
 
zoneCache.setVisible(false);
enSavoirPlus.setStyleName("boutonPlus");
 
detailsOpen = false;
}
 
public void afficherDetails() {
ResultatRechercheImagePresenteur.getInstance().fermerTousPanneauxDetailsObservations();
 
VerticalPanel zoneCache = vue.getZoneCache();
Label enSavoirPlus = vue.getEnSavoirPlus();
 
zoneCache.setVisible(true);
enSavoirPlus.setStyleName("boutonMoins");
 
detailsOpen = true;
}
 
public boolean isDetailsOpen() {
return detailsOpen;
}
 
public ImageVue getVue() {
return vue;
}
}
/src/org/tela_botanica/del/client/vues/rechercheimages/resultats/images/ImageVue.java
New file
0,0 → 1,110
package org.tela_botanica.del.client.vues.rechercheimages.resultats.images;
 
import com.google.gwt.core.client.GWT;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.Panel;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
 
public class ImageVue extends Composite {
 
// Annotation can be used to change the name of the associated xml file
// @UiTemplate("ObservationVue.ui.xml")
interface MyUiBinder extends UiBinder<Widget, ImageVue> {
}
 
private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class);
 
@UiField
protected Label nomEspece, nomAuteur, nomObservateur, nomRetenu, dateObservation, famille, localite;
 
@UiField
protected HorizontalPanel voter;
 
@UiField
protected VerticalPanel zoneCache;
 
@UiField
Image imagePrincipale;
 
@UiField
Label enSavoirPlus, ajoutValidation;
 
public ImageVue() {
// sets listBox
initWidget(uiBinder.createAndBindUi(this));
}
 
protected void loadImage(org.tela_botanica.del.client.modeles.Image image) {
enSavoirPlus.setStyleName("boutonPlus");
zoneCache.setVisible(false);
nomEspece.setText(image.getObservation().getSpecies());
nomAuteur.setText(image.getObservation().getAuteur());
imagePrincipale.setUrl(image.getUrl());
nomObservateur.setText(image.getObservation().getAuteur());
nomRetenu.setText(image.getObservation().getNomRetenu());
dateObservation.setText(image.getObservation().getDate());
famille.setText(image.getObservation().getFamille());
localite.setText(image.getObservation().getLocalite());
 
}
 
protected void clearDetails() {
/*
* detailsPanel.clear();
* moreDetailsHtml.setHTML("<img src='img/icon_plus.gif' >");
*/
}
 
public Panel getFlowPanel() {
// return flowPanel;
return new FlowPanel();
}
 
public Panel getDetailsPanel() {
// return detailsPanel;
return new FlowPanel();
}
 
public HTML getMoreDetailsHtml() {
// return moreDetailsHtml;
return new HTML();
}
 
public HTML getNoValidationDataHtml() {
// return noValidationDataHtml;
return new HTML();
}
 
public HTML getProposeValidationDataHtml() {
// return proposeValidationDataHtml;
return new HTML();
}
 
public HorizontalPanel getVoter() {
return voter;
}
 
public VerticalPanel getZoneCache() {
return zoneCache;
}
 
public Label getEnSavoirPlus() {
return enSavoirPlus;
}
 
public Image getImagePrincipale() {
return imagePrincipale;
}
 
public Label getAjoutValidation() {
return ajoutValidation;
}
}
/src/org/tela_botanica/del/client/vues/rechercheimages/resultats/images/image.css
New file
0,0 → 1,9
.observations {border: solid 1px #DDD; padding:10px; width:150px; height:250px; -moz-border-radius:10px; -webkit-border-radius:10px; }
.observations img {width:150px}
.zoneCache {position:absolute; padding:15px; border:solid 1px #CCC; background:white; z-index:1000; -moz-border-radius:5px; -webkit-border-radius:5px; -moz-box-shadow:2px 2px 2px 2px #AAA; -webkit-box-shadow:2px 2px 2px 2px #AAA }
 
.ajoutValidation {background:url(./img/add.png) no-repeat; font-size:11px; padding:2px 0px 2px 18px; margin-top:4px; cursor:pointer}
.espece {font-size:12px; font-weight:bold; color:#454341}
 
.zonePlus {position:absolute; margin-top:65px;}
.voter {/*position:absolute; margin-top:65px; margin-left:20px;*/}