Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 61 → Rev 62

/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/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;
}
 
}
/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);