Rev 4 | Rev 6 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package org.tela_botanica.client.image;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.vues.GalerieImageVue;
import org.tela_botanica.client.vues.ListeImageVue;
import org.tela_botanica.client.vues.ZoomImageVue;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.Element;
import com.google.gwt.user.client.Event;
import com.google.gwt.user.client.Window;
import com.gwtext.client.core.EventObject;
import com.gwtext.client.core.RegionPosition;
import com.gwtext.client.data.Record;
import com.gwtext.client.data.Store;
import com.gwtext.client.widgets.DataView;
import com.gwtext.client.widgets.Panel;
import com.gwtext.client.widgets.TabPanel;
import com.gwtext.client.widgets.layout.BorderLayout;
import com.gwtext.client.widgets.layout.BorderLayoutData;
public class ImageMediateur {
// controleur
private ImageControleur iControleur = null ;
//widgets
//Panneau principal des images (onglet "images")
private final Panel panneauPrincipalImage = new Panel("Images");
// Panneau à onglet pour la liste, la galerie et la vue en grand
private TabPanel ongletsImage = null ;
private GalerieImageVue galerieImage = null ;
private ListeImageVue listeImage = null ;
private ZoomImageVue zoomImage = null ;
// panneau details et mots clés
private final Panel detailsEtMotsCles = new Panel("Détails et mots clés");
public ImageMediateur()
{
final BorderLayoutData regionEst = new BorderLayoutData(
RegionPosition.EAST);
regionEst.setSplit(true);
iControleur = new ImageControleur(this);
panneauPrincipalImage.setLayout(new BorderLayout());
ongletsImage = new TabPanel();
galerieImage = new GalerieImageVue(this) ;
Panel panneauListeImage = new Panel("Liste");
listeImage = new ListeImageVue(this);
panneauListeImage.add(listeImage);
zoomImage = new ZoomImageVue(this);
ongletsImage.add(galerieImage);
ongletsImage.add(zoomImage);
ongletsImage.add(panneauListeImage);
detailsEtMotsCles.setWidth("20%");
detailsEtMotsCles.setAnimCollapse(true);
detailsEtMotsCles.setTitleCollapse(true);
detailsEtMotsCles.setCollapsible(true);
panneauPrincipalImage.add(ongletsImage,new BorderLayoutData(RegionPosition.CENTER));
panneauPrincipalImage.add(detailsEtMotsCles,regionEst);
}
public ImageControleur getIControleur() {
return iControleur;
}
public Panel getPanneauPrincipalImage() {
return panneauPrincipalImage;
}
public TabPanel getOngletsImage() {
return ongletsImage;
}
public GalerieImageVue getGalerieImage() {
return galerieImage;
}
public ListeImageVue getListeImage() {
return listeImage;
}
public ZoomImageVue getZoomImage() {
return zoomImage;
}
public Panel getDetailsEtMotsCles() {
return detailsEtMotsCles;
}
public void synchroniserZoomListeGalerie(Object o, Rafraichissable r)
{
if(r != getGalerieImage())
{
getGalerieImage().rafraichir(o);
}
if(r != getZoomImage())
{
getZoomImage().rafraichir(o);
}
if(r != getListeImage())
{
getListeImage().rafraichir(o);
}
}
public void ObtenirPhotoGalerie(Rafraichissable r)
{
getIControleur().obtenirPhotoGalerie(r) ;
}
public void ClicGalerieImage(int index, Element node,
EventObject e)
{
Record rd = getGalerieImage().getDView().getRecord(node) ;
String imgUrl = rd.getAsString("url_image");
getZoomImage().rafraichir(imgUrl);
if(DOM.eventGetType(e.getBrowserEvent()) == Event.ONDBLCLICK)
{
getOngletsImage().setActiveTab(1);
}
}
public void DoubleClicZoomImage()
{
getOngletsImage().setActiveTab(0);
}
public void ClicBoutonZoomImage(String arg)
{
DataView dv = getGalerieImage().getDView();
Store st = getGalerieImage().getSt();
Record nRec = null ;
final int selected = st.indexOf(dv.getSelectedRecords()[0]);
int storeIndex = dv.indexOf(selected);
if(arg.equals("prev"))
{
// si la photo séléctionnée est la première, on passe à la
// dernière
if (selected == 0) {
storeIndex = st.getCount() - 1 ;
nRec = st.getAt(storeIndex);
}
else
{
storeIndex = storeIndex - 1 ;
nRec = st.getAt(storeIndex);
}
}
if(arg.equals("suiv"))
{
// si la photo selectionnée est la dernière on passe à la
// première
if (selected == st.getCount() - 1) {
storeIndex = 0 ;
nRec = st.getAt(0);
}
else
{
storeIndex = storeIndex + 1 ;
nRec = st.getAt(storeIndex);
}
}
if(nRec != null)
{
getZoomImage().rafraichir(nRec.getAsString("url_image"));
dv.select(storeIndex);
}
}
}