11,6 → 11,7 |
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.Window; |
import com.gwtext.client.core.EventCallback; |
import com.gwtext.client.core.EventObject; |
25,6 → 26,7 |
import com.gwtext.client.data.Store; |
import com.gwtext.client.data.StringFieldDef; |
import com.gwtext.client.dd.DragData; |
import com.gwtext.client.dd.DragDropConfig; |
import com.gwtext.client.dd.DragSource; |
import com.gwtext.client.dd.DropTarget; |
import com.gwtext.client.dd.DropTargetConfig; |
44,7 → 46,10 |
import com.gwtext.client.widgets.grid.GridPanel; |
import com.gwtext.client.widgets.grid.Renderer; |
import com.gwtext.client.widgets.grid.event.GridListenerAdapter; |
import com.gwtext.client.widgets.grid.event.GridRowListener; |
import com.gwtext.client.widgets.grid.event.GridRowListenerAdapter; |
import com.gwtext.client.widgets.tree.TreeDragData; |
import com.gwtext.client.widgets.tree.TreeNode; |
|
/** |
* Liste d'observation composée de ligne d'observation |
303,12 → 308,7 |
this.setStore(st); |
this.getView().setAutoFill(true); |
this.getView().setForceFit(true) ; |
|
//Enable drag and drop |
this.setEnableDragDrop(true); |
//You need to set the same group for both grids |
this.setDdGroup("ObsMotsClesGroup"); |
|
|
// on crée un masque de chargement qui s'affichera lors des mises à jour |
this.setLoadMask("Chargement"); |
|
398,11 → 398,16 |
private void configDragAndDrop() |
{ |
|
setDdGroup("ObsMotsClesGroup"); |
setEnableDragDrop(true); |
setDragDropText("Glissez les observations sélectionnées sur un projet pour les lier"); |
// on fabrique la nouvelle configuration |
// les éléments sur lesquels on fait du drag 'n drop doivent tous avoir le même ddGroup |
this.setDdGroup("ObsMotsClesGroup"); |
DropTargetConfig dtc = new DropTargetConfig(); |
dtc.setdDdGroup("ObsMotsClesGroup"); |
dtc.setTarget(true); |
|
DragDropConfig ddc = new DragDropConfig(); |
|
//La drop target permet de gérer l'évenement onDrop sur l'élement courant |
@SuppressWarnings("unused") |
410,29 → 415,54 |
{ |
public boolean notifyDrop(DragSource source, EventObject e, DragData data){ |
|
// si on reçoit des données provenant d'une grille |
if(data instanceof GridDragData) |
{ |
// on la convertit |
GridDragData gdd = (GridDragData)data ; |
// et on vérifie que les données ne viennent pas de l'élément courant |
if(gdd.getGrid().getId().equals("x-list-obs")) |
{ |
Window.alert("on a recu du grid : "+data.toString()); |
return true ; |
// on appelle le médiateur |
//return iMediateur.lierImagesDD(source, e, data) ; |
} |
} |
return true ; |
|
// si on reçoit des données provenant d'un arbre |
// on les convertit |
if(data instanceof TreeDragData) { |
TreeDragData tdd = (TreeDragData)data ; |
|
TreeNode treeNode = tdd.getTreeNode(); |
String idMc = treeNode.getId(); |
|
int index = getView().findRowIndex(e); |
Record obsRd = getStore().getRecordAt(index); |
|
String ordreObs = obsRd.getAsString("ordre_observation"); |
|
if(ordreObs != null) { |
observationMediateur.gererDDMotCleSurObs(ordreObs, idMc); |
return true ; |
} else { |
return true; |
} |
} |
return true; |
} |
|
public String notifyOver(DragSource source, EventObject e, DragData data){ |
return "x-dd-drop-ok"; |
|
if(data instanceof TreeDragData) { |
TreeDragData tdd = (TreeDragData)data ; |
|
TreeNode treeNode = tdd.getTreeNode(); |
String idMc = treeNode.getId(); |
|
int index = getView().findRowIndex(e); |
if(index < 0) { |
return "x-dd-drop-nodrop"; |
} |
|
Record obsRd = getStore().getRecordAt(index); |
|
String ordreObs = obsRd.getAsString("ordre_observation"); |
|
if(ordreObs != null) { |
return observationMediateur.gererOverDDMotCleSurObs(ordreObs, idMc); |
} |
} |
|
return "x-dd-drop-nodrop"; |
} |
}; |
|
} |
|
/** |