/trunk/src/org/tela_botanica/client/modeles/LienImageAsynchroneDAO.java |
---|
36,26 → 36,26 |
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, iModele |
.getConfig().getServiceBaseUrl() |
+ "/inventoryImageLink/" + iModele.getIdentifiant() + "/" + paramGet); |
try { |
rb.sendRequest(null, new RequestCallback() { |
public void onError(Request request, Throwable exception) { |
// TODO Auto-generated method stub |
} |
public void onResponseReceived(Request request, |
Response response) { |
Window.alert(response.toString()) ; |
} |
}); |
} catch (RequestException e) { |
// TODO Auto-generated catch block |
e.printStackTrace(); |
} |
try { |
rb.sendRequest(null, new RequestCallback() { |
public void onError(Request request, Throwable exception) { |
// TODO Auto-generated method stub |
} |
public void onResponseReceived(Request request, |
Response response) { |
Window.alert(response.toString()) ; |
} |
}); |
} catch (RequestException e) { |
// TODO Auto-generated catch block |
e.printStackTrace(); |
} |
} |
public void lierImageBaseDeDonnees(String idsImages, String idsObs) { |
70,28 → 70,32 |
RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, iModele |
.getConfig().getServiceBaseUrl() |
+ "/inventoryImageLink/"); |
try { |
rb.sendRequest(postData, new RequestCallback() { |
public void onError(Request request, Throwable exception) { |
// TODO Auto-generated method stub |
} |
public void onResponseReceived(Request request, |
Response response) { |
// quand la requête est éxecutée on le signale au modèle |
// poru qu'il mette à jour les données |
// et en notifie le médiateur |
// iModele.requeteTerminee(); |
} |
}); |
} catch (RequestException e) { |
// TODO Auto-generated catch block |
e.printStackTrace(); |
if(Window.confirm("Lier les images "+idsImages+" aux observations "+idsObs+" ?")) |
{ |
try { |
rb.sendRequest(postData, new RequestCallback() { |
public void onError(Request request, Throwable exception) { |
// TODO Auto-generated method stub |
} |
public void onResponseReceived(Request request, |
Response response) { |
// quand la requête est éxecutée on le signale au modèle |
// poru qu'il mette à jour les données |
// et en notifie le médiateur |
// iModele.requeteTerminee(); |
} |
}); |
} catch (RequestException e) { |
// TODO Auto-generated catch block |
e.printStackTrace(); |
} |
} |
} |
} |
/trunk/src/org/tela_botanica/client/image/ImageMediateur.java |
---|
1377,6 → 1377,35 |
} |
public void LierTamponObservations() { |
Record[] obsRec = getMetadonneesIptcExif().getMiniListeObservation().getSelectionModel().getSelections() ; |
String idsObs = "" ; |
for(int i =0 ; i< obsRec.length ; i++) |
{ |
idsObs += obsRec[i].getAsString("id_obs")+"," ; |
} |
if(getIModele().renvoyerSelection().equals("-255")) |
{ |
Window.alert("Le tampon est vide") ; |
return ; |
} |
if(obsRec.length == 0) |
{ |
Window.alert("Aucune(s) observation(s) selectionnée(s)") ; |
return ; |
} |
else |
{ |
lierImagesObservation(idsObs, getIModele().renvoyerSelection()) ; |
} |
} |
/** |
* Lie une ou plusieurs images à une ou plusieurs observations |
* @param idsObs les identifiants des observations séparés par des "," |
/trunk/src/org/tela_botanica/client/vues/BarreNotationVue.java |
---|
179,7 → 179,7 |
// qu'on remplit par defaut avec des images d'étoiles vides |
for (int i = 0; i < noteMax; i++) { |
etoiles[i] = new Image("etoile_vide.png"); |
etoiles[i] = new Image("note_off.gif"); |
etoiles[i].setStylePrimaryName("x-view-notation-bar"); |
this.add(etoiles[i]); |
} |
/trunk/src/org/tela_botanica/client/vues/MiniListeObservationVue.java |
---|
8,6 → 8,7 |
import org.tela_botanica.client.modeles.Observation; |
import com.google.gwt.user.client.Window; |
import com.google.gwt.user.client.ui.MouseListenerAdapter; |
import com.gwtext.client.data.SimpleStore; |
import com.gwtext.client.data.Store; |
import com.gwtext.client.dd.DragSource; |
17,10 → 18,13 |
import com.gwtext.client.widgets.event.ComponentListenerAdapter; |
import com.gwtext.client.widgets.event.ContainerListener; |
import com.gwtext.client.widgets.event.ContainerListenerAdapter; |
import com.gwtext.client.widgets.event.PanelListenerAdapter; |
import com.gwtext.client.widgets.grid.ColumnConfig; |
import com.gwtext.client.widgets.grid.ColumnModel; |
import com.gwtext.client.widgets.grid.GridDragData; |
import com.gwtext.client.widgets.grid.GridPanel; |
import com.gwtext.client.widgets.grid.event.GridListener; |
import com.gwtext.client.widgets.grid.event.GridListenerAdapter; |
import com.gwtext.client.core.EventObject; |
import com.gwtext.client.dd.DragData; |
62,8 → 66,8 |
// on crée un store simple contenant un petit set de données et deux colonnes |
store = new SimpleStore(new String[]{"id_obs","plante","date"}, getObs()); |
ColumnConfig[] columns = { |
new ColumnConfig("Numero", "id_obs", 55, true), |
new ColumnConfig("Taxon", "plante", 150, true), |
new ColumnConfig("Numero", "id_obs", 50, true), |
new ColumnConfig("Taxon", "plante", 145, true), |
new ColumnConfig("Date", "date", 68, true) } ; |
ColumnModel columnModel = new ColumnModel(columns); |
73,8 → 77,9 |
setTitle("Observations"); |
// on associe le modèle de colonnes |
setColumnModel(columnModel); |
setAutoHeight(true); |
setWidth(200); |
setAutoScroll(true) ; |
setHeight("100%") ; |
setAutoWidth(true) ; |
// on autorise le drag 'n drop pour un certain groupe |
this.setEnableDragDrop(true); |
this.setDdGroup("DragGroupName"); |
81,6 → 86,7 |
store.load(); |
setStore(store) ; |
setAutoScroll(true) ; |
// on configure le drag 'n drop |
configDragAndDrop() ; |
93,6 → 99,19 |
} |
}) ; |
this.addGridListener(new GridListenerAdapter() { |
@Override |
public void onContextMenu(EventObject e) { |
e.stopEvent() ; |
MenuLiaisonVue mlv = new MenuLiaisonVue(iMediateur) ; |
mlv.showAt(e.getXY()) ; |
} |
}) ; |
} |
117,7 → 136,7 |
@SuppressWarnings("unused") |
DropTarget tg = new DropTarget(this, dtc) |
{ |
public boolean notifyDrop(DragSource source, EventObject e, DragData data){ |
public boolean notifyDrop(DragSource source, EventObject e, DragData data){ |
// si on reçoit des données provenant d'une grille |
if(data instanceof GridDragData) |
192,6 → 211,11 |
} ; |
} |
public Store getStore() |
{ |
return store ; |
} |
} |
/trunk/src/org/tela_botanica/client/vues/PanneauMetadonneesVue.java |
---|
17,6 → 17,7 |
import com.gwtext.client.widgets.grid.GridView; |
import com.gwtext.client.widgets.grid.PropertyGridPanel; |
import com.gwtext.client.widgets.grid.event.GridCellListenerAdapter; |
import com.gwtext.client.widgets.layout.FitLayout; |
import com.gwtext.client.widgets.layout.VerticalLayout; |
/** |
149,7 → 150,12 |
noteVue = new BarreNotationVue(im, 5); |
Panel panneauMiniListeObservation = new Panel("Observations") ; |
panneauMiniListeObservation.setLayout(new FitLayout()) ; |
panneauMiniListeObservation.setHeight(800) ; |
panneauMiniListeObservation.setAutoWidth(true) ; |
miniListeObservation = new MiniListeObservationVue(im) ; |
panneauMiniListeObservation.add(miniListeObservation) ; |
sousPanneauInfosGenerales.add(labelComm); |
sousPanneauInfosGenerales.add(commentaireGeneral); |
170,7 → 176,7 |
this.add(panneauInfoGrid); |
this.add(panneauExifGrid); |
this.add(panneauIptcGrid); |
this.add(miniListeObservation) ; |
this.add(panneauMiniListeObservation) ; |
gViewExif = new GridView(); |
gViewExif.setForceFit(true); |
/trunk/src/org/tela_botanica/client/vues/MenuLiaisonVue.java |
---|
New file |
0,0 → 1,102 |
package org.tela_botanica.client.vues; |
import org.tela_botanica.client.image.ImageMediateur; |
import com.gwtext.client.widgets.menu.BaseItem; |
import com.gwtext.client.widgets.menu.Item; |
import com.gwtext.client.widgets.menu.Menu; |
import com.gwtext.client.widgets.menu.event.MenuListenerAdapter; |
import com.gwtext.client.core.EventObject;; |
/** |
* Menu de gestion des images |
* |
* @author aurelien |
* |
*/ |
public class MenuLiaisonVue extends Menu { |
/** |
* Le médiateur associé à la vue |
*/ |
private ImageMediateur iMediateur; |
/** |
* Item pour lier la selection d'images aux observations selectionnées |
*/ |
private Item lierSelection = null ; |
/** |
* Item pour afficher la selection d'images |
*/ |
private Item afficherSelection = null; |
/** |
* Constructeur sans argument (privé car ne doit être utilisé) |
*/ |
@SuppressWarnings("unused") |
private MenuLiaisonVue() { |
super(); |
} |
/** |
* Constructeur avec paramètre |
* |
* @param im |
* le médiateur à associer |
*/ |
public MenuLiaisonVue(ImageMediateur im) { |
super(); |
iMediateur = im; |
// on construit le menu |
lierSelection = new Item("Lier le tampon à la sélection d'observation"); |
afficherSelection = new Item("Afficher le tampon"); |
addItem(lierSelection); |
addItem(afficherSelection); |
// on ajoute les listeners |
ajouterListeners(); |
} |
/** |
* Ajoute les listeners pour la gestions des évènements |
*/ |
private void ajouterListeners() { |
this.addListener(new MenuListenerAdapter() { |
// gestion du clic sur un item |
public void onItemClick(BaseItem item, EventObject e) { |
// si c'est la suppression |
if (item.equals(lierSelection)) { |
// on notifie le médiateur |
getIMediateur().LierTamponObservations(); |
} |
// si c'est la liaison |
if (item.equals(afficherSelection)) { |
getIMediateur().afficherIdSelectionImages(); |
} |
// enfin, on cache le menu |
hide(); |
} |
}); |
} |
/** |
* Accesseur pour le médiateur |
* |
* @return le médiateur associé à la vue |
*/ |
public ImageMediateur getIMediateur() { |
return iMediateur; |
} |
} |