Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 2211 → Rev 2212

/branches/v1.12-aluminium/src/org/tela_botanica/del/client/composants/motsclesimages/propositions/MotClePropositionVue.java
New file
0,0 → 1,68
package org.tela_botanica.del.client.composants.motsclesimages.propositions;
 
import org.tela_botanica.del.client.config.Config;
 
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.HasClickHandlers;
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.CheckBox;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.FocusPanel;
import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.Panel;
import com.google.gwt.user.client.ui.Widget;
 
public class MotClePropositionVue extends Composite implements MotClePropositionPresenteur.Vue {
@UiField
CheckBox ajouterMotCle;
@UiField
Image iconeTag;
@UiField
FocusPanel lienMotCle;
interface MyUiBinder extends UiBinder<Widget, MotClePropositionVue> {}
private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class);
 
public MotClePropositionVue() {
// sets listBox
initWidget(uiBinder.createAndBindUi(this));
}
 
@Override
public void setMotCle(String motcle) {
ajouterMotCle.setText(motcle);
iconeTag.setUrl((new Config()).getUrl("iconeBaseUrl") + motcle + ".png");
}
public HasClickHandlers getLienMotCle() {
return lienMotCle;
}
public void toggleCb() {
boolean val = ajouterMotCle.getValue();
ajouterMotCle.setValue(!ajouterMotCle.getValue());
if(ajouterMotCle.getValue()) {
addStyleName("motClePictoCoche");
} else {
removeStyleName("motClePictoCoche");
}
}
public boolean estAAjouter() {
return ajouterMotCle.getValue();
}
public void setEstAAjouter() {
ajouterMotCle.setValue(true);
addStyleName("motClePictoCoche");
}
public HasClickHandlers getAjouterMotCle() {
return ajouterMotCle;
}
}
/branches/v1.12-aluminium/src/org/tela_botanica/del/client/composants/motsclesimages/propositions/MotCleProposition.css
New file
0,0 → 1,21
.logoTag {
width:30px;
height:30px;
margin:0 5px;
float:right;
}
 
.motCle {
width:80px;
margin:5px;
cursor:pointer;
}
 
.lienMotCle {
background: none repeat scroll 0 0 #DDDDDD;
border-radius: 9px 9px 9px 9px;
height: 40px;
margin: 2px;
padding: 3px;
width: 160px;
}
/branches/v1.12-aluminium/src/org/tela_botanica/del/client/composants/motsclesimages/propositions/MotClePropositionVue.ui.xml
New file
0,0 → 1,14
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:g='urn:import:com.google.gwt.user.client.ui'
ui:generateFormat='com.google.gwt.i18n.rebind.format.PropertiesFormat'
ui:generateLocales="default">
<ui:with field="constants" type="org.tela_botanica.del.client.i18n.Vocabulary" />
 
<ui:style src="MotCleProposition.css" />
<g:FocusPanel styleName="{style.lienMotCle} gauche motclesPicto" ui:field="lienMotCle" title="{constants.aideLiaisonMotCle}">
<g:HTMLPanel>
<g:CheckBox ui:field="ajouterMotCle" text="motcle" styleName=" {style.motCle} texteMotClePicto"></g:CheckBox>
<g:Image styleName="{style.logoTag}" ui:field="iconeTag"/>
</g:HTMLPanel>
</g:FocusPanel>
</ui:UiBinder>
/branches/v1.12-aluminium/src/org/tela_botanica/del/client/composants/motsclesimages/propositions/MotClePropositionPresenteur.java
New file
0,0 → 1,81
package org.tela_botanica.del.client.composants.motsclesimages.propositions;
 
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
 
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.dom.client.HasClickHandlers;
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.IsWidget;
 
public class MotClePropositionPresenteur extends Presenteur{
 
public interface Vue extends IsWidget {
public void setMotCle(String motcle);
public HasClickHandlers getLienMotCle();
public void toggleCb();
public boolean estAAjouter();
public void setEstAAjouter();
public HasClickHandlers getAjouterMotCle();
}
private Vue vue;
private String motcle;
public MotClePropositionPresenteur(Vue vue, String motCle) {
this.vue = vue;
this.motcle = motCle;
vue.setMotCle(motCle);
}
@Override
public void go(HasWidgets composite) {
composite.add(vue.asWidget());
gererEvenements();
}
 
@Override
protected void gererEvenements() {
/* Attention : dans la gestion des évènements, comme la case à cocher est contenu dans
* le lien Mot Cle, lorsque je clique sur la case directement, l'application :
* - change la valeur de la case suite à l'évènement sur la case
* - rechange la valeur de la case suite à l'évènement sur le lien
* Il est donc impossible de changer la valeur de la case !
*
* La solution consiste à ajouter un changement de valeur lorsqu'on clique sur la case :
*/
vue.getAjouterMotCle().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
vue.toggleCb();
event.stopPropagation();
}
});
// Ajout du changement de valeur de la case lors du clic sur la case
vue.getLienMotCle().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
vue.toggleCb();
event.stopPropagation();
}
});
}
 
public boolean estAAjouter() {
return vue.estAAjouter();
}
public void setEstAAjouter() {
vue.setEstAAjouter();
}
public String getTag() {
return this.motcle;
}
}