Subversion Repositories eFlore/Archives.cel-v1

Compare Revisions

Ignore whitespace Rev 1 → Rev 2

/trunk/src/org/tela_botanica/client/TaxonList.java
New file
0,0 → 1,155
/*
* Copyright 2006 Google Inc.
*
* 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
*
* 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 com.google.gwt.json.client.JSONArray;
import com.google.gwt.json.client.JSONParser;
import com.google.gwt.json.client.JSONString;
import com.google.gwt.json.client.JSONValue;
import com.google.gwt.user.client.HTTPRequest;
import com.google.gwt.user.client.ResponseTextHandler;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.FlexTable;
import com.google.gwt.user.client.ui.Grid;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.CheckBox;
import com.google.gwt.user.client.ui.HTMLTable.CellFormatter;
 
 
/**
* A composite that displays a list of emails that can be selected.
*/
public class TaxonList extends Composite implements AutoCompleteAsyncTextBoxListener {
 
 
private Grid header = new Grid(1,3);
private FlexTable table = new FlexTable();
private CellFormatter cellFormater = table.getCellFormatter();
private VerticalPanel panel = new VerticalPanel();
public TaxonList() {
// Setup the header
header.setCellSpacing(0);
header.setCellPadding(2);
header.setWidth("100%");
 
header.setStyleName("taxon-ListHeader");
header.setText(0, 0, "Action");
header.setText(0, 1, "Nom");
header.setText(0, 2, "Famille");
// Setup the table.
table.setCellSpacing(0);
table.setCellPadding(2);
table.setWidth("100%");
 
table.setStyleName("taxon-List");
 
panel.add(header);
panel.add(table);
initWidget(panel);
update();
 
}
public void onValidate(SourcesAutoCompleteAsyncTextBoxEvents sender, String str) {
// TODO : passer par une table de stockage temporaire
// TODO : creer un objet externe ...
int lastOrdre=new Integer(table.getText(table.getRowCount()-1,2)).intValue()+1;
int row=table.insertRow(table.getRowCount());
table.setWidget(row,0,new CheckBox());
table.setText(row,1,str);
table.setText(row,2,new Integer(lastOrdre).toString());
cellFormater.setVisible(row,2,false);
HTTPRequest.asyncPost("http://localhost/david/jrest/Inventory/", "identifiant=dd&nom="+str,
new ResponseTextHandler(){
 
public void onCompletion(String str) {
}
});
 
}
 
public void deleteElement() {
 
// Lifo ...
for (int i=table.getRowCount()-1; i>=0;i--){
if (((CheckBox) table.getWidget(i,0)).isChecked()) {
String str=table.getText(i,2);
table.removeRow(i);
HTTPRequest.asyncPost("http://localhost/david/jrest/Inventory/dd/"+str, "action=DELETE",
new ResponseTextHandler(){
 
public void onCompletion(String str) {
}
});
 
}
}
}
private void update() {
HTTPRequest.asyncGet("http://localhost/david/jrest/InventoryList/dd/"+"1",
new ResponseTextHandler(){
 
public void onCompletion(String str) {
 
JSONValue jsonValue= JSONParser.parse(str);
JSONArray jsonArray;
JSONArray jsonArrayNested;
// Lifo ...
for (int i=table.getRowCount()-1; i>=0;i--){
table.removeRow(i);
}
 
 
if ((jsonArray = jsonValue.isArray()) != null) {
for (int i = 0; i < jsonArray.size(); ++i) {
if ((jsonArrayNested = jsonArray.get(i).isArray()) != null) {
int row=table.insertRow(table.getRowCount());
table.setWidget(row,0,new CheckBox());
table.setText(row,1,((JSONString) jsonArrayNested.get(0)).stringValue());
table.setText(row,2,((JSONString) jsonArrayNested.get(1)).stringValue());
cellFormater.setVisible(row,2,false);
}
}
}
}
});
 
}
 
}