?? dataedit.java
字號:
import litebase.*;
import litebase.ui.*;
import waba.fx.Sound;
import waba.sys.Convert;
import waba.sys.Time;
import waba.sys.Vm;
import waba.ui.Button;
import waba.ui.Container;
import waba.ui.Control;
import waba.ui.ControlEvent;
import waba.ui.Edit;
import waba.ui.Event;
import waba.ui.Label;
import waba.ui.MessageBox;
import waba.ui.PushButtonGroup;
import waba.ui.Timer;
import waba.util.Date;
import litebase.LitebaseConnection;
import litebase.ResultSet;
class dataEdit extends Container{
Timer trackLogTimer;
dataCapture dataCapture;
gpsDataLogger gpsDataLogger;
Edit edTimestamp,edSpecies,edCount,edLocation,edTerrain,edLatitude,edLatns,edLongitude,edLongew,edSky,edWater,edOverall,edLive,edRowId;
Button btnFirstRecord, btnNextRecord, btnPreviousRecord, btnLastRecord, btnClear, btnSave, btnUpdate,btnDelete;
Label lbStatus;
String szRowId,szSpecies,szTerrain,szLatitude,szLatns,szLongitude,szLongew,szSky,szWater,szOverall,szLive;;
int iRowId;
private PushButtonGroup pbgBrowseButtons;
String szBrowseButtons[] = {" Save ","Update","Delete","Clear "," ||<<"," << "," >> "," >>|| "};
LitebaseConnection driver = LitebaseConnection.getInstance("AZoe");
public void onStart(){
int iTmpWidth=this.width;
edTimestamp = new Edit();
add (edTimestamp);
edTimestamp.setRect(iTmpWidth/3,AFTER+4,iTmpWidth/16*9,PREFERRED);
edTimestamp.setMaxLength(15);
add(new Label("Timestamp"),BEFORE-2,SAME);
edTimestamp.setEditable(false);
add(new Label("Species"),LEFT+3,AFTER+4);
edSpecies = new Edit();
add (edSpecies);
edSpecies.setRect(AFTER+2,SAME,100,PREFERRED);
edSpecies.setMaxLength(20);
add(new Label("Count"),AFTER+4,SAME);
edCount = new Edit();
edCount.setValidChars("0123456789");
add (edCount);
edCount.setRect(AFTER+2,SAME,35,PREFERRED);
edCount.setMaxLength(10);
edLocation = new Edit();
add (edLocation);
edLocation.setRect(iTmpWidth/3,AFTER+4,iTmpWidth/8*5,PREFERRED);
edLocation.setMaxLength(50);
add(new Label("Location"),BEFORE-2,SAME);
edTerrain = new Edit();
add (edTerrain);
edTerrain.setRect(iTmpWidth/3,AFTER+4,iTmpWidth/8*5,PREFERRED);
edTerrain.setMaxLength(20);
add(new Label("Terrain"),BEFORE-2,SAME);
//Any way to make this right justified and width dynamic?
add(new Label("Lat"),LEFT+5,AFTER+4);
edLatitude = new Edit();
add (edLatitude);
edLatitude.setRect(AFTER+1,SAME,iTmpWidth/16*5,PREFERRED);
edLatitude.setMaxLength(20);
edLatitude.setEditable(false);
edLatns = new Edit();
add (edLatns);
edLatns.setRect(AFTER,SAME,18,PREFERRED);
edLatns.setMaxLength(3);
edLatns.setEditable(false);
add(new Label("Long"),AFTER+3,SAME);
edLongitude = new Edit();
add (edLongitude);
edLongitude.setRect(AFTER+1,SAME,iTmpWidth/16*5,PREFERRED);
edLongitude.setMaxLength(20);
edLongitude.setEditable(false);
edLongew = new Edit();
add (edLongew);
edLongew.setRect(AFTER,SAME,18,PREFERRED);
edLongew.setMaxLength(3);
edLongew.setEditable(false);
add(new Label("Sky"),LEFT+2,AFTER+3);
edSky = new Edit();
edSky.setValidChars("12345");
add (edSky);
edSky.setRect(AFTER+3,SAME,35,PREFERRED);
edSky.setMaxLength(10);
add(new Label("Water"),AFTER+3,SAME);
edWater = new Edit();
edWater.setValidChars("12345");
add (edWater);
edWater.setRect(AFTER+3,SAME,35,PREFERRED);
edWater.setMaxLength(10);
add(new Label("Overall"),AFTER+3,SAME);
edOverall = new Edit();
edOverall.setValidChars("12345");
add (edOverall);
edOverall.setRect(AFTER+3,SAME,35,PREFERRED);
edOverall.setMaxLength(10);
add(new Label("RowID"),LEFT+3,AFTER+3);
edRowId = new Edit();
add (edRowId);
edRowId.setRect(AFTER+2,SAME,15,PREFERRED);
edRowId.setMaxLength(5);
edRowId.setEditable(false);
add(new Label("Live/dead"),AFTER+3,SAME);
edLive = new Edit();
add (edLive);
edLive.setRect(AFTER+3,SAME,35,PREFERRED);
edLive.setMaxLength(10);
pbgBrowseButtons = new PushButtonGroup(szBrowseButtons,false,-1,2,6,2,true,PushButtonGroup.BUTTON);
add(pbgBrowseButtons,CENTER,AFTER+4);
lbStatus = new Label("",CENTER);
lbStatus.setInvert(true);
lbStatus.setForeColor(getForeColor().brighter());
add(lbStatus, LEFT,BOTTOM);
}
public void CreateTrackLogTimer(){//specifies how often tracklog point is stored
removeTimer(trackLogTimer);
trackLogTimer = addTimer(gpsDataLogger.iTrackLogInterval);
}
private boolean verifyFields(){
boolean timestampOk = edTimestamp.getText().length() > 0;
boolean speciesOk = edSpecies.getText().length() > 0;
boolean countOk = edCount.getText().length() > 0;
boolean locationOk = edLocation.getText().length() > 0;
boolean terrainOk = edTerrain.getText().length() > 0;
boolean latitudeOk = edLatitude.getText().length() > 0;
boolean latnsOk = edLatns.getText().length() > 0;
boolean longitudeOk = edLongitude.getText().length() > 0;
boolean longewOk = edLongew.getText().length() > 0;
boolean skyOk = edSky.getText().length() > 0;
boolean waterOk = edWater.getText().length() > 0;
boolean overallOk = edOverall.getText().length() > 0;
boolean liveOk = edLive.getText().length() > 0;
StringBuffer sb = new StringBuffer();
if (!timestampOk) sb.append("Timestamp|");
if (!speciesOk) sb.append("Species|");
if (!countOk) sb.append("Count|");
if (!locationOk) sb.append("Location|");
if (!terrainOk) sb.append("Terrain|");
if (!latitudeOk) sb.append("Latitude|");
if (!latnsOk) sb.append("Latitude N/S|");
if (!longitudeOk) sb.append("Longitude|");
if (!longewOk) sb.append("Longitude E/W|");
if (!skyOk) sb.append("Sky|");
if (!waterOk) sb.append("Water|");
if (!overallOk) sb.append("Overall|");
if (!liveOk) sb.append("Live|");
if (sb.length() > 0) {
sb.setLength(sb.length()-1); // remove the last |
new MessageBox("Attention","Required fields are empty!|Please check that|there are valuesin|the following fields:|"+sb).popupModal();
repaint();
return false;
}
return true;
}
public void onEvent(Event e){
int ipbg;
Control edAtual;
if (e.type == ControlEvent.TIMER){
trackLog();
}
else if (e.type == ControlEvent.PRESSED){
if ((e.target == pbgBrowseButtons &&
(ipbg = pbgBrowseButtons.getSelected()) != -1)){
switch (ipbg){
case -1:break; //no item selected
case 0:{ // Save button
edAtual = getParentWindow().getFocus();
if (edAtual != null) {
if (verifyFields())
doInsertUpdate(true);
clear();
gpsDataLogger.iEmptyLocationLookupTable = 0; //reset flag to 'not empty'
}
}break;
case 1:{ // Update button
edAtual = getParentWindow().getFocus();
if (edAtual != null) {
if (verifyFields()){
if (iRowId > 0){
doInsertUpdate(false);
clear();}
else
Sound.beep();
}
}
}break;
case 2:{ // Delete button
edAtual = getParentWindow().getFocus();
if (edAtual != null) {
szRowId = edRowId.getText();
iRowId = Convert.toInt(szRowId);
if (iRowId > 0)
doDelete();
else
Sound.beep();
}
}break;
case 3:{ // Clear button
edAtual = getParentWindow().getFocus();
if (edAtual != null) {
clear();
}
}break;
case 4:{ // First Record, ("||<<") button
edAtual = getParentWindow().getFocus();
if (edAtual != null) {
firstRecord();
}
}break;
case 5:{ // Previous Record, ("<<") button
edAtual = getParentWindow().getFocus();
if (edAtual != null) {
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -