⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dataedit.java

📁 gpsLogger是一个基于手机或PDA的个人移动导航(车载导航)系统中记录gps信息的小工具
💻 JAVA
📖 第 1 页 / 共 2 页
字号:

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 + -