1,61 → 1,24 |
/** |
David Delon david.delon@clapas.net 2007 |
|
Ce logiciel est régi par la licence CeCILL soumise au droit français et |
respectant les principes de diffusion des logiciels libres. Vous pouvez |
utiliser, modifier et/ou redistribuer ce programme sous les conditions |
de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA |
sur le site "http://www.cecill.info". |
En contrepartie de l'accessibilité au code source et des droits de copie, |
de modification et de redistribution accordés par cette licence, il n'est |
offert aux utilisateurs qu'une garantie limitée. Pour les mêmes raisons, |
seule une responsabilité restreinte pèse sur l'auteur du programme, le |
titulaire des droits patrimoniaux et les concédants successifs. |
|
A cet égard l'attention de l'utilisateur est attirée sur les risques |
associés au chargement, à l'utilisation, à la modification et/ou au |
développement et à la reproduction du logiciel par l'utilisateur étant |
donné sa spécificité de logiciel libre, qui peut le rendre complexe à |
manipuler et qui le réserve donc à des développeurs et des professionnels |
avertis possédant des connaissances informatiques approfondies. Les |
utilisateurs sont donc invités à charger et tester l'adéquation du |
logiciel à leurs besoins dans des conditions permettant d'assurer la |
sécurité de leurs systèmes et ou de leurs données et, plus généralement, |
à l'utiliser et l'exploiter dans les mêmes conditions de sécurité. |
|
Le fait que vous puissiez accéder à cet en-tête signifie que vous avez |
pris connaissance de la licence CeCILL, et que vous en avez accepté les |
termes. |
|
*/ |
|
/* |
* EntryPanel.java (Composite de Panel) |
* Copyright 2006 Google Inc. |
* |
* Cas d'utilisation : |
* Saisie assistee (completion nom et completion commune) de releves. |
* L'identification n'est pas obligatoire |
* |
* 1 : L'utilisateur saisit a minima un nom de plante |
* 1: Le nom de plante provient d'une application externe : il est deduit du nuremo nomenclatural transmis en historique |
* 2 : Le programme assiste la saisie de nom de plante ou de localite par interrogation du systeme distant |
* 3 : L'utilisateur choisi le type de mise (ajout ou modification) |
* 3 : L'utilisateur valide sa saisie |
* 4 : Le programme transmet au systeme distant la nouvelle saisie pour l'identifiant en cours |
* 5 : Le programme transmet au systeme local un evenement annoncant une nouvelle saisie |
* Licensed under the Apache License, Version 2.0 (the "License"); you may not |
* use this file except in compliance with the License. You may obtain a copy of |
* the License at |
* |
* http://www.apache.org/licenses/LICENSE-2.0 |
* |
* Affichage detail d'un observation |
* 1 : Le programme affiche les donnees d'inventaire pour l'identifiant enregistre et pour le numero d'ordre transmis |
* |
* Unless required by applicable law or agreed to in writing, software |
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
* License for the specific language governing permissions and limitations under |
* the License. |
*/ |
|
|
package org.tela_botanica.client; |
|
import java.util.Date; |
|
import com.google.gwt.json.client.JSONArray; |
import com.google.gwt.json.client.JSONNull; |
import com.google.gwt.json.client.JSONParser; |
import com.google.gwt.json.client.JSONString; |
import com.google.gwt.json.client.JSONValue; |
62,6 → 25,7 |
import com.google.gwt.user.client.HTTPRequest; |
import com.google.gwt.user.client.History; |
import com.google.gwt.user.client.ResponseTextHandler; |
import com.google.gwt.user.client.Window; |
import com.google.gwt.user.client.ui.Button; |
import com.google.gwt.user.client.ui.ChangeListener; |
import com.google.gwt.user.client.ui.CheckBox; |
76,31 → 40,37 |
import com.google.gwt.user.client.ui.VerticalPanel; |
import com.google.gwt.user.client.ui.Widget; |
|
/** |
* Composite permet de wrapper des Widget pour creer un nouveau Widget cf methode initWidget() |
*/ |
|
public class EntryPanel extends Composite { |
|
private NameAssistant nameAssistant = null; |
private LocationAssistant locationAssistant = null; |
private TextBox date = new TextBox(); |
private TextBox complementLocation = new TextBox(); |
private TextBox comment = new TextBox(); |
private Button dateSelector = new Button("..."); |
TextBox date = new TextBox(); |
TextBox complementLocation = new TextBox(); |
TextBox comment = new TextBox(); |
Button dateSelector = new Button("..."); |
boolean visible=false; |
private Mediator mediator=null; |
Mediator mediator=null; |
|
private String serviceBaseUrl = null; |
|
private String user= null; |
private String ordre =null; |
|
private CalendarWidget calendar = null; // Lazy instantiation |
private PopupPanel choicesPopup = null; // Lazy instantiation |
final CalendarWidget calendar = new CalendarWidget(); |
|
private PopupPanel choicesPopup = new PopupPanel(true); |
|
public EntryPanel(final Mediator med) { |
|
|
mediator=med; |
user=mediator.getUser(); |
|
|
|
mediator.registerEntryPanel(this); |
|
mediator.registerDate(date); |
107,13 → 77,19 |
mediator.registerComment(comment); |
mediator.registerComplementLocation(complementLocation); |
|
|
user=mediator.getUser(); |
serviceBaseUrl = mediator.getServiceBaseUrl(); |
|
|
|
VerticalPanel outer = new VerticalPanel(); |
|
|
outer.add(new HTML("<b>Saisir un relevé :</b>")); |
outer.add(new HTML("<b>Saisir un relevé :</b>")); |
|
|
|
Grid inner = new Grid(3,4); |
|
for (int i=0; i<3;i++) { |
126,11 → 102,14 |
|
nameAssistant = new NameAssistant(mediator); |
locationAssistant = new LocationAssistant(mediator); |
|
|
|
|
// Saisie Nom |
|
inner.setHTML(0,0,"Espèce: "); |
HTML labelNameAssistant = new HTML("Espèce: "); |
inner.setWidget(0,0,labelNameAssistant); |
inner.setWidget(0,1,nameAssistant); |
|
nameAssistant.setWidth("100%"); |
137,7 → 116,8 |
|
// Saisie lieu |
|
inner.setHTML(1,0,"Commune: "); |
HTML labelLocationAssistant= new HTML("Commune: "); |
inner.setWidget(1,0,labelLocationAssistant); |
inner.setWidget(1,1,locationAssistant); |
|
locationAssistant.setWidth("100%"); |
144,6 → 124,7 |
|
// Saisie Date |
|
choicesPopup.add(calendar); |
|
dateSelector.addClickListener(new ClickListener () { |
|
155,23 → 136,6 |
} |
else { |
visible=true; |
if (calendar==null) { // Lazy instantiation |
calendar = new CalendarWidget(); |
choicesPopup = new PopupPanel(true); |
choicesPopup.add(calendar); |
calendar.addChangeListener(new ChangeListener() { |
|
public void onChange(Widget sender) { |
|
Date dateSelected=calendar.getDate(); |
date.setText(dateSelected.getDate()+"/"+(dateSelected.getMonth()+1)+"/"+(dateSelected.getYear()+1900)); |
visible=false; |
choicesPopup.hide(); |
} |
}); |
|
} |
|
choicesPopup.show(); |
choicesPopup.setPopupPosition(dateSelector.getAbsoluteLeft(), |
dateSelector.getAbsoluteTop() - dateSelector.getOffsetHeight() - choicesPopup.getOffsetHeight()); |
181,8 → 145,20 |
|
}); |
|
|
inner.setHTML(2,0,"Date: "); |
calendar.addChangeListener(new ChangeListener() { |
|
public void onChange(Widget sender) { |
|
Date dateSelected=calendar.getDate(); |
date.setText(dateSelected.getDate()+"/"+(dateSelected.getMonth()+1)+"/"+(dateSelected.getYear()+1900)); |
|
visible=false; |
choicesPopup.hide(); |
} |
}); |
|
HTML labelDate= new HTML("Date: "); |
inner.setWidget(2,0,labelDate); |
|
HorizontalPanel datePanel = new HorizontalPanel(); |
datePanel.add(date); |
189,20 → 165,27 |
datePanel.add(dateSelector); |
inner.setWidget(2,1,datePanel); |
|
// Saisie date |
|
|
|
|
date.addKeyboardListener( new KeyboardListener() { |
|
public void onKeyDown(Widget arg0, char arg1, int arg2) { |
|
|
if(arg1 == KEY_ENTER) |
{ |
mediator.onAddInventoryItem(); |
date.setText(""); |
} |
|
} |
|
public void onKeyUp(Widget arg0, char arg1, int arg2) { } |
public void onKeyPress(Widget arg0, char arg1, int arg2) { } |
public void onKeyUp(Widget arg0, char arg1, int arg2) { |
} |
|
public void onKeyPress(Widget arg0, char arg1, int arg2) { |
} |
|
} |
); |
209,9 → 192,10 |
|
|
|
// Saisie Complement de lieu (station) |
// Saisie Complement lieu |
|
inner.setHTML(1,2,"Station: "); |
HTML labelComplementLocation= new HTML("Station: "); |
inner.setWidget(1,2,labelComplementLocation); |
inner.setWidget(1,3,complementLocation); |
|
complementLocation.setWidth("100%"); |
220,6 → 204,8 |
complementLocation.addKeyboardListener( new KeyboardListener() { |
|
public void onKeyDown(Widget arg0, char arg1, int arg2) { |
|
|
if(arg1 == KEY_ENTER) |
{ |
mediator.onAddInventoryItem(); |
228,9 → 214,11 |
|
} |
|
public void onKeyUp(Widget arg0, char arg1, int arg2) { } |
public void onKeyUp(Widget arg0, char arg1, int arg2) { |
} |
|
public void onKeyPress(Widget arg0, char arg1, int arg2) { } |
public void onKeyPress(Widget arg0, char arg1, int arg2) { |
} |
|
} |
); |
238,7 → 226,8 |
|
// Saisie Commentaire |
|
inner.setHTML(2,2,"Notes: "); |
HTML labelComment= new HTML("Notes: "); |
inner.setWidget(2,2,labelComment); |
inner.setWidget(2,3,comment); |
|
comment.setWidth("100%"); |
247,6 → 236,8 |
comment.addKeyboardListener( new KeyboardListener() { |
|
public void onKeyDown(Widget arg0, char arg1, int arg2) { |
|
|
if(arg1 == KEY_ENTER) |
{ |
mediator.onAddInventoryItem(); |
255,47 → 246,55 |
|
} |
|
public void onKeyUp(Widget arg0, char arg1, int arg2) { } |
public void onKeyPress(Widget arg0, char arg1, int arg2) { } |
public void onKeyUp(Widget arg0, char arg1, int arg2) { |
} |
|
public void onKeyPress(Widget arg0, char arg1, int arg2) { |
} |
|
} |
); |
|
|
Button validButton = new Button("Valider"); |
|
Button addButton = new Button("Ajout"); |
Button updateButton = new Button("Modification"); |
|
validButton.addClickListener( |
addButton.addClickListener( |
|
new ClickListener() { |
|
public void onClick(Widget w) { |
if (ordre==null) { |
mediator.onAddInventoryItem(); |
} |
else { |
} |
} |
); |
|
HorizontalPanel buttonPanel = new HorizontalPanel(); |
|
|
updateButton.addClickListener( |
|
new ClickListener() { |
|
public void onClick(Widget w) { |
mediator.onModifyInventoryItem(ordre); |
ordre=null; |
} |
} |
} |
); |
|
|
|
HorizontalPanel actionPanel= new HorizontalPanel(); |
|
actionPanel.add(validButton); |
buttonPanel.add(addButton); |
buttonPanel.add(updateButton); |
|
|
inner.setWidth("100%"); |
inner.setWidth("100%"); |
|
outer.add(inner); |
outer.setCellWidth(inner, "100%"); |
outer.setSpacing(10); |
outer.add(inner); |
outer.setCellWidth(inner, "100%"); |
outer.setSpacing(10); |
|
outer.setHorizontalAlignment(HorizontalPanel.ALIGN_CENTER); |
outer.add(actionPanel); |
outer.add(buttonPanel); |
|
|
// Initialisation si provenance d'un lien |
304,7 → 303,7 |
|
final String anum=History.getToken(); |
|
HTTPRequest.asyncGet(mediator.getServiceBaseUrl() + "/Name/" + anum, |
HTTPRequest.asyncGet(serviceBaseUrl + "/Name/" + anum, |
new ResponseTextHandler() { |
|
public void onCompletion(String strcomplete) { |
370,7 → 369,7 |
|
public void update() { |
|
HTTPRequest.asyncGet(mediator.getServiceBaseUrl() + "/Inventory/" + user + "/" + ordre, |
HTTPRequest.asyncGet(serviceBaseUrl + "/Inventory/" + user + "/" + ordre, |
|
new ResponseTextHandler() { |
|
436,6 → 435,7 |
} |
|
|
|
} |
}); |
|
446,8 → 446,3 |
} |
|
} |
|
/* +--Fin du code ---------------------------------------------------------------------------------------+ |
* $Log$ |
* |
*/ |