/trunk/src/org/tela_botanica/del/client/composants/fenetreOverlayDefilante/FenetreOverlayDefilanteVue.ui.xml |
---|
8,7 → 8,7 |
<g:HTMLPanel ui:field="overlay" /> |
<g:HorizontalPanel ui:field="conteneurOverlayContenu" styleName=""> |
<g:Button ui:field="boutonPrecedent" text="" /> |
<g:HTMLPanel ui:field="overlayContenu" /> |
<g:FocusPanel ui:field="overlayContenu" /> |
<g:Button ui:field="boutonSuivant" text="" /> |
<g:Button ui:field="boutonFermer" text="{constants.fermer}" /> |
</g:HorizontalPanel> |
/trunk/src/org/tela_botanica/del/client/composants/fenetreOverlayDefilante/FenetreOverlayDefilantePresenteur.java |
---|
4,7 → 4,14 |
import com.google.gwt.event.dom.client.ClickEvent; |
import com.google.gwt.event.dom.client.ClickHandler; |
import com.google.gwt.event.dom.client.FocusHandler; |
import com.google.gwt.event.dom.client.HasClickHandlers; |
import com.google.gwt.event.dom.client.HasFocusHandlers; |
import com.google.gwt.event.dom.client.HasKeyDownHandlers; |
import com.google.gwt.event.dom.client.KeyCodes; |
import com.google.gwt.event.dom.client.KeyDownEvent; |
import com.google.gwt.event.dom.client.KeyDownHandler; |
import com.google.gwt.event.shared.HasHandlers; |
import com.google.gwt.user.client.Window; |
import com.google.gwt.user.client.ui.HasVisibility; |
import com.google.gwt.user.client.ui.HasWidgets; |
14,6 → 21,7 |
public abstract class FenetreOverlayDefilantePresenteur { |
public interface Vue extends IsWidget { |
public HasKeyDownHandlers getConteneurGlobal(); |
public IsWidget getOverlay(); |
public HasVisibility getOverlayVisibility(); |
public IsWidget getOverlayContenu(); |
29,7 → 37,7 |
public void viderOverlayContenu(); |
public void surOuvertureFenetre(); |
public void surFermetureFenetre(); |
void surSetContenuFenetre(); |
public void surSetContenuFenetre(); |
} |
private Vue vue; |
64,15 → 72,28 |
vue.getBoutonPrecedent().addClickHandler(new ClickHandler() { |
public void onClick(ClickEvent event) { |
surClicBoutonPrecedent(event); |
surClicBoutonPrecedent(); |
} |
}); |
vue.getBoutonSuivant().addClickHandler(new ClickHandler() { |
public void onClick(ClickEvent event) { |
surClicBoutonSuivant(event); |
surClicBoutonSuivant(); |
} |
}); |
vue.getConteneurGlobal().addKeyDownHandler(new KeyDownHandler() { |
@Override |
public void onKeyDown(KeyDownEvent event) { |
if(event.getNativeKeyCode() == KeyCodes.KEY_LEFT) { |
surClicBoutonPrecedent(); |
} |
if(event.getNativeKeyCode() == KeyCodes.KEY_RIGHT) { |
surClicBoutonSuivant(); |
} |
} |
}); |
} |
public void ouvrirFenetreModaleDefilante(int indexElementAffiche, Presenteur presenteurModal) { |
95,8 → 116,8 |
vue.surSetContenuFenetre(); |
} |
public abstract void surClicBoutonSuivant(ClickEvent evt); |
public abstract void surClicBoutonPrecedent(ClickEvent evt); |
public abstract void surClicBoutonSuivant(); |
public abstract void surClicBoutonPrecedent(); |
public boolean fenetreModaleEstOuverte() { |
return fenetreModaleOuverte; |
/trunk/src/org/tela_botanica/del/client/composants/fenetreOverlayDefilante/FenetreOverlayDefilanteVue.java |
---|
4,6 → 4,9 |
import com.google.gwt.animation.client.Animation; |
import com.google.gwt.core.client.GWT; |
import com.google.gwt.event.dom.client.HasFocusHandlers; |
import com.google.gwt.event.dom.client.HasKeyDownHandlers; |
import com.google.gwt.event.dom.client.HasKeyPressHandlers; |
import com.google.gwt.event.dom.client.LoadEvent; |
import com.google.gwt.event.dom.client.LoadHandler; |
import com.google.gwt.event.dom.client.MouseMoveEvent; |
24,6 → 27,7 |
import com.google.gwt.user.client.ui.Button; |
import com.google.gwt.user.client.ui.Composite; |
import com.google.gwt.user.client.ui.FlowPanel; |
import com.google.gwt.user.client.ui.FocusPanel; |
import com.google.gwt.user.client.ui.HTMLPanel; |
import com.google.gwt.user.client.ui.HasVisibility; |
import com.google.gwt.user.client.ui.HasWidgets; |
44,7 → 48,10 |
VerticalPanel conteneurGlobal; |
@UiField |
HTMLPanel overlay, overlayContenu; |
HTMLPanel overlay; |
@UiField |
FocusPanel overlayContenu; |
@UiField |
Button boutonFermer, boutonSuivant, boutonPrecedent; |
61,7 → 68,7 |
return overlay; |
} |
public HTMLPanel getOverlayContenu() { |
public FocusPanel getOverlayContenu() { |
return overlayContenu; |
} |
93,6 → 100,11 |
} |
}); |
} |
@Override |
public HasKeyDownHandlers getConteneurGlobal() { |
return overlayContenu; |
} |
@Override |
public HasVisibility getOverlayVisibility() { |
137,7 → 149,7 |
private void gererDimensions() { |
UIObject overlayContenuUi = overlayContenu.getWidget(0); |
UIObject overlayContenuUi = overlayContenu.getWidget(); |
int topBoutonsSuivantsPrecedent = (overlayContenuUi.getAbsoluteTop() + overlayContenuUi.getOffsetHeight())/2 + 20; |
int topBoutonFermer = overlayContenuUi.getAbsoluteTop() - 10; |
181,7 → 193,7 |
} |
private boolean tailleDuContenuEstModifiee() { |
UIObject overlayContenuUi = overlayContenu.getWidget(0); |
UIObject overlayContenuUi = overlayContenu.getWidget(); |
return overlayContenuUi != null |
&& (overlayContenuUi.getOffsetHeight() != hauteurContenu |
|| overlayContenuUi.getOffsetWidth() != largeurContenu); |
195,6 → 207,7 |
@Override |
public void surSetContenuFenetre() { |
// nécessaire pour le défilement avec les touches du clavier |
overlayContenu.setFocus(true); |
} |
} |