/trunk/src/org/tela_botanica/del/client/composants/motsclesimages/motcle/MotCleVue.java |
---|
New file |
0,0 → 1,69 |
package org.tela_botanica.del.client.composants.motsclesimages.motcle; |
import org.tela_botanica.del.client.i18n.I18n; |
import com.google.gwt.core.client.GWT; |
import com.google.gwt.event.dom.client.HasBlurHandlers; |
import com.google.gwt.event.dom.client.HasClickHandlers; |
import com.google.gwt.event.dom.client.HasFocusHandlers; |
import com.google.gwt.event.dom.client.HasMouseOutHandlers; |
import com.google.gwt.event.dom.client.HasMouseOverHandlers; |
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.HTML; |
import com.google.gwt.user.client.ui.HTMLPanel; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.InlineHTML; |
import com.google.gwt.user.client.ui.Panel; |
import com.google.gwt.user.client.ui.Widget; |
public class MotCleVue extends Composite implements MotClePresenteur.Vue { |
@UiField |
public InlineHTML motCle; |
@UiField |
public FocusPanel suppressionMotCle; |
@UiField |
public FocusPanel conteneurMotCle; |
interface MyUiBinder extends UiBinder<Widget, MotCleVue> { |
} |
private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class); |
public MotCleVue(String mot) { |
initWidget(uiBinder.createAndBindUi(this)); |
motCle.setText(mot); |
suppressionMotCle.setTitle(I18n.getVocabulary().indiceSupprimerMotCle()); |
} |
@Override |
public HasClickHandlers getZoneSuppressionMotCle() { |
return suppressionMotCle; |
} |
@Override |
public void afficherZoneSuppression() { |
suppressionMotCle.removeStyleName("invisible"); |
} |
@Override |
public void cacherZoneSuppression() { |
suppressionMotCle.addStyleName("invisible"); |
} |
@Override |
public HasMouseOverHandlers getZoneMotCleMouseHover() { |
return conteneurMotCle; |
} |
@Override |
public HasMouseOutHandlers getZoneMotCleMouseOut() { |
return conteneurMotCle; |
} |
} |
/trunk/src/org/tela_botanica/del/client/composants/motsclesimages/motcle/MotCle.css |
---|
New file |
0,0 → 1,26 |
.conteneurMotCle { |
display: inline-block; |
margin-right: 3px; |
} |
.motCle { |
border: 1px solid grey; |
background-color: #555; |
padding: 2px; |
line-height: 25px; |
} |
.suppressionMotCle { |
display: inline; |
border: 1px solid grey; |
border-left: none; |
background-color: #555; |
padding: 2px; |
line-height: 25px; |
cursor: pointer; |
color: red; |
} |
.suppressionMotCle:hover { |
background-color: #888; |
} |
/trunk/src/org/tela_botanica/del/client/composants/motsclesimages/motcle/MotCleVue.ui.xml |
---|
New file |
0,0 → 1,11 |
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' |
xmlns:g='urn:import:com.google.gwt.user.client.ui' |
ui:generateFormat='com.google.gwt.i18n.rebind.format.PropertiesFormat' |
ui:generateKeys="com.google.gwt.i18n.rebind.keygen.MD5KeyGenerator" |
ui:generateLocales="default"> |
<ui:with field='res' type='org.tela_botanica.del.client.resources.Ressources' /> |
<ui:with field="constants" type="org.tela_botanica.del.client.i18n.Vocabulary" /> |
<ui:style src="MotCle.css" /> |
<g:FocusPanel styleName="{style.conteneurMotCle}" ui:field="conteneurMotCle"><g:HTMLPanel><g:InlineHTML styleName="{style.motCle}" ui:field="motCle" /><g:FocusPanel styleName="invisible {style.suppressionMotCle}" ui:field="suppressionMotCle" ><g:InlineHTML>X</g:InlineHTML></g:FocusPanel></g:HTMLPanel></g:FocusPanel> |
</ui:UiBinder> |
/trunk/src/org/tela_botanica/del/client/composants/motsclesimages/motcle/MotClePresenteur.java |
---|
New file |
0,0 → 1,71 |
package org.tela_botanica.del.client.composants.motsclesimages.motcle; |
import com.google.gwt.event.dom.client.BlurEvent; |
import com.google.gwt.event.dom.client.BlurHandler; |
import com.google.gwt.event.dom.client.ClickEvent; |
import com.google.gwt.event.dom.client.ClickHandler; |
import com.google.gwt.event.dom.client.FocusEvent; |
import com.google.gwt.event.dom.client.FocusHandler; |
import com.google.gwt.event.dom.client.HasBlurHandlers; |
import com.google.gwt.event.dom.client.HasClickHandlers; |
import com.google.gwt.event.dom.client.HasFocusHandlers; |
import com.google.gwt.event.dom.client.HasMouseOutHandlers; |
import com.google.gwt.event.dom.client.HasMouseOverHandlers; |
import com.google.gwt.event.dom.client.MouseOutEvent; |
import com.google.gwt.event.dom.client.MouseOutHandler; |
import com.google.gwt.event.dom.client.MouseOverEvent; |
import com.google.gwt.event.dom.client.MouseOverHandler; |
import com.google.gwt.user.client.Window; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.IsWidget; |
public abstract class MotClePresenteur { |
String motCle; |
String idMotCle; |
public interface Vue extends IsWidget { |
HasClickHandlers getZoneSuppressionMotCle(); |
void afficherZoneSuppression(); |
void cacherZoneSuppression(); |
HasMouseOverHandlers getZoneMotCleMouseHover(); |
HasMouseOutHandlers getZoneMotCleMouseOut(); |
} |
private Vue vue; |
public MotClePresenteur(Vue vue, String motCleText, String motCleId) { |
this.vue = vue; |
this.idMotCle = motCleId; |
} |
public void go(HasWidgets composite) { |
composite.add(vue.asWidget()); |
gererEvenements(); |
} |
public void gererEvenements() { |
vue.getZoneSuppressionMotCle().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
surSuppression(idMotCle); |
} |
}); |
vue.getZoneMotCleMouseHover().addMouseOverHandler(new MouseOverHandler() { |
@Override |
public void onMouseOver(MouseOverEvent event) { |
vue.afficherZoneSuppression(); |
} |
}); |
vue.getZoneMotCleMouseOut().addMouseOutHandler(new MouseOutHandler() { |
@Override |
public void onMouseOut(MouseOutEvent event) { |
vue.cacherZoneSuppression(); |
} |
}); |
} |
public abstract void surSuppression(String idMotCle); |
} |
/trunk/src/org/tela_botanica/del/client/composants/motsclesimages/MotsClesImageVue.ui.xml |
---|
13,7 → 13,7 |
<g:HTMLPanel styleName="{style.panneauSaisieMotsCles}" ui:field="saisieMotsCles"></g:HTMLPanel> |
</g:HTMLPanel> |
<g:HTMLPanel> |
<g:HTML ui:field="motsCles"></g:HTML> |
<g:HTMLPanel styleName="gwt-HTML" ui:field="motsCles"></g:HTMLPanel> |
</g:HTMLPanel> |
</g:HTMLPanel> |
</ui:UiBinder> |
/trunk/src/org/tela_botanica/del/client/composants/motsclesimages/MotsClesImagePresenteur.java |
---|
1,19 → 1,20 |
package org.tela_botanica.del.client.composants.motsclesimages; |
import java.util.Iterator; |
import java.util.List; |
import org.tela_botanica.del.client.cache.CacheClient; |
import org.tela_botanica.del.client.composants.motsclesimages.formulairesaisiemotclesimages.FormulaireSaisieMotsClesImagePresenteur; |
import org.tela_botanica.del.client.modeles.InformationsRecherche; |
import org.tela_botanica.del.client.modeles.ModeTri; |
import org.tela_botanica.del.client.composants.motsclesimages.motcle.MotClePresenteur; |
import org.tela_botanica.del.client.composants.motsclesimages.motcle.MotCleVue; |
import org.tela_botanica.del.client.i18n.I18n; |
import org.tela_botanica.del.client.modeles.MotCle; |
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel; |
import org.tela_botanica.del.client.navigation.evenement.ajoutmotcleimage.EvenementAjoutMotCleImage; |
import org.tela_botanica.del.client.navigation.evenement.ajoutmotcleimage.GestionnaireEvenementAjoutMotCleImage; |
import org.tela_botanica.del.client.navigation.evenement.changementprotocole.EvenementChangementProtocole; |
import org.tela_botanica.del.client.navigation.evenement.changementprotocole.GestionnaireEvenementChangementProtocole; |
import org.tela_botanica.del.client.navigation.evenement.supressionmotcleimage.EvenementSuppressionMotCleImage; |
import org.tela_botanica.del.client.navigation.evenement.supressionmotcleimage.GestionnaireEvenementSuppressionMotCleImage; |
import org.tela_botanica.del.client.services.rest.MotsClesService; |
import org.tela_botanica.del.client.services.rest.MotsClesServiceConcret; |
import org.tela_botanica.del.client.services.rest.async.ListeMotsClesImageCallBack; |
import org.tela_botanica.del.client.services.rest.async.SuppressionMotCleImageCallback; |
import com.google.gwt.user.client.Window; |
import com.google.gwt.user.client.ui.HasWidgets; |
21,14 → 22,15 |
public class MotsClesImagePresenteur { |
List<String> motsCles; |
List<MotCle> motsCles; |
FormulaireSaisieMotsClesImagePresenteur formulaireSaisieMotsClesPresenteur; |
MotsClesService motsClesService; |
String idImage; |
public interface Vue extends IsWidget { |
public void afficherMotsCles(List<String> listeMotsCles); |
public HasWidgets getZoneMotsCles(); |
HasWidgets getZoneSaisieMotsCles(); |
void viderZoneMotsCles(); |
} |
private Vue vue; |
51,9 → 53,10 |
MotsClesService motsClesService = new MotsClesServiceConcret(); |
motsClesService.getMotsClesImage(idImage, new ListeMotsClesImageCallBack() { |
@Override |
public void surRetour(List<String> objetRetour) { |
public void surRetour(List<MotCle> objetRetour) { |
motsCles = objetRetour; |
vue.afficherMotsCles(motsCles); |
vue.viderZoneMotsCles(); |
afficherMotsCles(objetRetour); |
} |
}); |
} |
64,18 → 67,45 |
@Override |
public void onAjoutMotCleImage(EvenementAjoutMotCleImage event) { |
if(idImage != null && idImage.equals(event.getIdImage())) { |
List<String> motsClesAjoutes = event.getMotsCles(); |
for (Iterator iterator = motsClesAjoutes.iterator(); iterator |
.hasNext();) { |
String string = (String) iterator.next(); |
motsCles.add(string); |
} |
vue.afficherMotsCles(motsCles); |
motsCles = null; |
chargerMotsCles(idImage); |
formulaireSaisieMotsClesPresenteur.viderChampSaisie(); |
} |
} |
}); |
BusEvenementiel.getInstance().addHandler(EvenementSuppressionMotCleImage.TYPE, new GestionnaireEvenementSuppressionMotCleImage() { |
@Override |
public void onSuppressionMotCleImage(EvenementSuppressionMotCleImage event) { |
if(idImage != null && idImage.equals(event.getIdImage())) { |
motsCles = null; |
chargerMotsCles(idImage); |
} |
} |
}); |
} |
public void afficherMotsCles(List<MotCle> listeMotsCles) { |
this.motsCles = listeMotsCles; |
Object[] tabMotsCles = motsCles.toArray(); |
for (int i = 0; i < motsCles.toArray().length; i++) { |
MotCle motCleEnCours = (MotCle)tabMotsCles[i]; |
MotClePresenteur mcP = new MotClePresenteur(new MotCleVue(motCleEnCours.getMotCle()), motCleEnCours.getMotCle(), motCleEnCours.getIdMotCle()) { |
public void surSuppression(String idMotCle) { |
if(Window.confirm(I18n.getVocabulary().indiceSupprimerMotCle()+" ?")) { |
motsClesService.supprimerMotCleImage(idMotCle, new SuppressionMotCleImageCallback() { |
@Override |
public void surRetour(String objetRetour) { |
motsCles = null; |
chargerMotsCles(idImage); |
} |
}); |
} |
}; |
}; |
mcP.go(vue.getZoneMotsCles()); |
} |
} |
public void focuserChampsSaisie() { |
formulaireSaisieMotsClesPresenteur.focuserChampSaisie(); |
/trunk/src/org/tela_botanica/del/client/composants/motsclesimages/MotsClesImageVue.java |
---|
1,14 → 1,10 |
package org.tela_botanica.del.client.composants.motsclesimages; |
import java.util.List; |
import com.google.gwt.core.client.GWT; |
import com.google.gwt.uibinder.client.UiBinder; |
import com.google.gwt.uibinder.client.UiField; |
import com.google.gwt.user.client.ui.Composite; |
import com.google.gwt.user.client.ui.HTML; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.Label; |
import com.google.gwt.user.client.ui.Panel; |
import com.google.gwt.user.client.ui.Widget; |
15,7 → 11,7 |
public class MotsClesImageVue extends Composite implements MotsClesImagePresenteur.Vue { |
@UiField |
public HTML motsCles; |
public Panel motsCles; |
@UiField |
public Panel saisieMotsCles; |
30,18 → 26,15 |
// sets listBox |
initWidget(uiBinder.createAndBindUi(this)); |
} |
@Override |
public void viderZoneMotsCles() { |
motsCles.clear(); |
} |
@Override |
public void afficherMotsCles(List<String> listeMotsCles) { |
String chaine = ""; |
Object[] tabMotsCles = listeMotsCles.toArray(); |
int nbMc = tabMotsCles.length; |
for (int i = 0; i < tabMotsCles.length; i++) { |
String string = (String)tabMotsCles[i]; |
chaine += "<span class=\"motCleImage\">"+string+"</span>"; |
chaine += (i != (nbMc - 1)) ? " " : ""; |
} |
motsCles.setHTML(chaine); |
public HasWidgets getZoneMotsCles() { |
return motsCles; |
} |
@Override |
/trunk/src/org/tela_botanica/del/client/composants/motsclesimages/formulairesaisiemotclesimages/FormulaireSaisieMotsClesImagePresenteur.java |
---|
3,7 → 3,7 |
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel; |
import org.tela_botanica.del.client.navigation.evenement.ajoutmotcleimage.EvenementAjoutMotCleImage; |
import org.tela_botanica.del.client.services.rest.MotsClesService; |
import org.tela_botanica.del.client.services.rest.async.AjoutMotsClesImageCallBack; |
import org.tela_botanica.del.client.services.rest.async.AjoutMotsClesImageCallback; |
import com.google.gwt.event.dom.client.ClickEvent; |
import com.google.gwt.event.dom.client.ClickHandler; |
61,10 → 61,10 |
private void validerSaisie() { |
String texte = vue.getSaisieMotsCles().getText(); |
if(texte != null && !texte.isEmpty()) { |
motsClesService.ajouterMotCleImage(idImage, vue.getSaisieMotsCles().getText(), new AjoutMotsClesImageCallBack() { |
motsClesService.ajouterMotCleImage(idImage, vue.getSaisieMotsCles().getText(), new AjoutMotsClesImageCallback() { |
@Override |
public void surRetour(Void objetRetour) { |
EvenementAjoutMotCleImage event = new EvenementAjoutMotCleImage(idImage, vue.getSaisieMotsCles().getText()); |
EvenementAjoutMotCleImage event = new EvenementAjoutMotCleImage(idImage); |
BusEvenementiel.getInstance().fireEvent(event); |
} |
}); |