5,14 → 5,17 |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.interfaces.VueListable; |
|
import com.google.gwt.core.client.GWT; |
import com.google.gwt.user.client.DOM; |
import com.google.gwt.user.client.Element; |
import com.google.gwt.user.client.Window; |
import com.google.gwt.user.client.ui.ClickListener; |
import com.google.gwt.user.client.ui.HTML; |
import com.google.gwt.user.client.ui.Widget; |
import com.gwtext.client.core.EventCallback; |
import com.gwtext.client.core.EventObject; |
import com.gwtext.client.core.Ext; |
import com.gwtext.client.core.ExtElement; |
import com.gwtext.client.core.Function; |
import com.gwtext.client.core.XTemplate; |
import com.gwtext.client.data.FieldDef; |
import com.gwtext.client.data.IntegerFieldDef; |
29,8 → 32,10 |
import com.gwtext.client.widgets.Container; |
import com.gwtext.client.widgets.DataView; |
import com.gwtext.client.widgets.Panel; |
import com.gwtext.client.widgets.event.ContainerListener; |
import com.gwtext.client.widgets.event.ContainerListenerAdapter; |
import com.gwtext.client.widgets.event.DataViewListenerAdapter; |
import com.gwtext.client.widgets.event.PanelListenerAdapter; |
import com.gwtext.client.widgets.grid.GridDragData; |
|
/** |
68,7 → 73,12 |
private boolean garderRatio = false; |
|
private int tailleOr = 100 ; |
|
boolean lienUploadInitialise = false ; |
|
HTML videPanel = null ; |
|
|
/** |
* Constructeur sans argument, privé car ne doit pas être utilisé |
*/ |
86,7 → 96,7 |
public GalerieImageVue(ImageMediateur im) { |
super("Galerie"); |
iMediateur = im; |
|
|
// on ajoute des listeners au composant tout entier |
this.addListener(new ContainerListenerAdapter() { |
|
98,24 → 108,11 |
if (!estInstancie) { |
initialiser(); |
} |
} |
|
public void onAfterLayout(Container c) { |
|
ExtElement lienUpload = Ext.get("lienUpload"); |
if(lienUpload != null) { |
lienUpload.addListener("click", new EventCallback() { |
|
public void execute(EventObject e) { |
|
getIMediateur().uploaderImages(); |
} |
|
}) ; |
} |
} |
|
}); |
|
AjouterListenersLiens(); |
|
// et on ajoute la tool bar |
pt = new BarrePaginationVue(this); |
133,6 → 130,7 |
|
// ajout de listeners pour la gestion de la selection |
// dans la galerie |
|
dView.addListener(new DataViewListenerAdapter() { |
|
// gestion du clic sur une image |
139,7 → 137,7 |
|
public void onClick(DataView source, int index, Element node, |
EventObject e) { |
|
|
// on en notifie le médiateur |
getIMediateur().clicGalerieImage(index, node, e); |
|
183,7 → 181,6 |
getIMediateur().synchroniserSelection("galerie"); |
} |
} |
|
}); |
} |
|
285,7 → 282,6 |
data.setProperty("taille_x_s", XYresize[0]); |
data.setProperty("taille_y_s", XYresize[1]); |
} |
|
}; |
dView.setTpl(template); |
|
294,7 → 290,7 |
dView.setAutoHeight(true); |
dView.setMultiSelect(true); |
dView.setOverCls("x-view-over"); |
dView.setEmptyText("<div class=\"avertissement\" >Aucune image à afficher. <a id=\"lienUpload\" href=# > Cliquez ici</a> pour en ajouter ou allez dans le menu Fichier -> Ajouter des images </div>"); |
dView.setEmptyText(""); |
|
// creation du store |
FieldDef defNumImage = new IntegerFieldDef("num_image"); |
314,14 → 310,20 |
|
this.getDView().setLoadingText("chargement"); |
|
this.add(dView); |
dView.hide(); |
|
videPanel = new HTML("<div class=\"avertissement\" >Aucune image à afficher. <br/> <a id=\"lienUploadMultiple\" href=\"#\" > Cliquez ici pour ajouter un dossier entier ou plusieurs fichiers </a> (nécessite Java) <br/> " + |
" <a id=\"lienUploadSimple\" href=\"#\" > Cliquez ici pour ajouter un fichier à la fois </a> <br/> " + |
" Pour ajouter des images plus tard, allez dans le menu Fichier -> Ajouter des images </div>"); |
this.add(videPanel); |
|
// ajouts de la gestion des evenements pour la dataview |
configDragAndDrop() ; |
ajouterListenersDataView(); |
configDragAndDrop() ; |
|
this.add(dView); |
|
// et on déclare le composant comme instancié |
estInstancie = true; |
|
estInstancie = true ; |
|
} |
|
public void configDragAndDrop() |
369,6 → 371,13 |
// on le charge |
st.load(); |
|
if(videPanel.isVisible()) { |
videPanel.setVisible(false) ; |
} |
|
if(!dView.isVisible()) { |
dView.setVisible(true); |
} |
// on l'affecte à la vue |
dView.setStore(st); |
// et on rafrachit la vue |
379,9 → 388,17 |
st.removeAll(); |
st.load(); |
dView.setStore(st); |
dView.refresh(); |
|
if(dView.isVisible()) { |
dView.hide() ; |
} |
|
if(!videPanel.isVisible()) { |
videPanel.setVisible(true); |
AjouterListenersLiens(); |
} |
|
} |
|
} |
|
// si le composant doit répandre le rafraichissement |
390,13 → 407,7 |
// et en notifiant qu'il en est l'expéditeur |
getIMediateur().synchroniserDonneesZoomListeGalerie( |
nouvelleDonnees, this); |
} |
|
// si c'est la première mise à jour que l'on reçoit |
if (!estInstancie) { |
// alors le composant est considéré comme instancié |
estInstancie = true; |
} |
} |
} |
|
/** |
444,5 → 455,30 |
|
return res; |
} |
|
private void AjouterListenersLiens() { |
|
addListener(new PanelListenerAdapter() { |
|
public void onAfterLayout(Container c) { |
ExtElement uploadS = Ext.get("lienUploadSimple"); |
uploadS.removeAllListeners(); |
uploadS.addListener("click", new EventCallback() { |
public void execute(EventObject e) { |
getIMediateur().uploaderImages(false); |
} |
|
}) ; |
|
ExtElement uploadM = Ext.get("lienUploadMultiple"); |
uploadM.removeAllListeners(); |
uploadM.addListener("click", new EventCallback() { |
public void execute(EventObject e) { |
getIMediateur().uploaderImages(true); |
} |
}); |
} |
|
}); |
} |
} |