/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package org.geoforge.wrpbasprsdatecl;
import gov.nasa.worldwind.geom.Position;
import java.awt.geom.Point2D;
import java.util.ArrayList;
import java.util.List;
import org.geoforge.basprjdat.io.GfrIoBasNameDatPrjAbs;
import org.geoforge.basprjdat.table.object.GfrBasTblDatChildAbs;
import org.geoforge.basprjdat.table.object.GfrBasTblDatChildNameAbs;
import org.geoforge.basprjdat.table.object.GfrBasTblDatObjAbs;
import org.geoforge.basprjdat.table.object.GfrBasTblDatTloAbs;
import org.geoforge.basprjdatecl.io.GfrIoBasNameDatPrjEcl;
import org.geoforge.basprjdatecl.table.objects.GfrBasTblDatChildNameImgAbs;
import org.geoforge.basprjdatecl.table.objects.GfrBasTblDatChildNameImgSct;
import org.geoforge.basprjdatecl.table.objects.GfrBasTblDatTloEclSct;
import org.geoforge.lang.util.arraylist.GfrAltPointDouble;
import org.geoforge.sql.field.GfrFldAbs;
import org.geoforge.wrpbasprsdat.util.UtilDeleteChildren;
import org.geoforge.wrpbasusr.GfrWrpUsrSpcDspPrtAppWork;
import org.geoforge.wrpsql.*;
/**
*
* @author bantchao@gmail.com
*/
abstract public class GfrWrpBasDatObjNameTloEclSct extends GfrWrpBasDatObjNameTloEclAbs
{
public void setGeometry(String strId, ArrayList<Point2D.Double> altp2ds) throws Exception
{
GfrBasTblDatObjAbs tblTypeOfData = GfrBasTblDatTloEclSct.s_getInstance();
String strGeometry = GfrAltPointDouble.s_toString(altp2ds);
GfrWrpSqlUpdateRecordingsKeyValueTarget.s_getInstance().doJob(
"",
"",
GfrWrpUsrSpcDspPrtAppWork.getInstance().getPathAbsoluteDbDataChild(GfrIoBasNameDatPrjEcl.STR_FILE),
tblTypeOfData,
GfrBasTblDatTloEclSct.FLD_VAR_CHAR_GEOMETRY,
strGeometry,
GfrBasTblDatObjAbs.FLD_VAR_CHAR_ID_OBJ,
strId);
}
@Override
public String[] getSortedNamesImage(String strIdThis) throws Exception
{
String[] strs = GfrWrpSqlGetRecordingsKeyValueTarget.s_getInstance().doJob(
"",
"",
GfrWrpUsrSpcDspPrtAppWork.getInstance().getPathAbsoluteDbDataChild(GfrIoBasNameDatPrjEcl.STR_FILE),
GfrBasTblDatChildNameImgSct.s_getInstance(),
GfrBasTblDatChildAbs.FLD_VAR_CHAR_NAME,
GfrBasTblDatChildAbs.FLD_VAR_CHAR_ID_OBJ_OWNER,
strIdThis);
if (strs != null && strs.length > 1)
java.util.Arrays.sort(strs, String.CASE_INSENSITIVE_ORDER);
return strs;
}
@Override
public String[] getPathsAbsoluteImageFileSortedByName(String strIdThis) throws Exception
{
//Trick : Ids end with .jpg
String strPathAbsoluteImageFolder = getPathAbsoluteImageFolder();
String[] strsIdsSorted = GfrWrpSqlGetRecordingsKeyValueTargetOrderBy.s_getInstance().doJob(
"",
"",
GfrWrpUsrSpcDspPrtAppWork.getInstance().getPathAbsoluteDbDataChild(GfrIoBasNameDatPrjEcl.STR_FILE),
GfrBasTblDatChildNameImgSct.s_getInstance(),
GfrBasTblDatChildAbs.FLD_VAR_CHAR_ID_OBJ,
GfrBasTblDatChildAbs.FLD_VAR_CHAR_ID_OBJ_OWNER,
strIdThis,
GfrBasTblDatChildAbs.FLD_VAR_CHAR_NAME,
false);
if (strsIdsSorted == null || strsIdsSorted.length < 1)
return null;
String[] strsPaths = new String[strsIdsSorted.length];
for (int i = 0; i < strsPaths.length; i++)
{
strsPaths[i] = strPathAbsoluteImageFolder + java.io.File.separator + strsIdsSorted[i];
}
return strsPaths;
}
@Override
public String getIdImage(String strIdTlo, String strNameImage) throws Exception
{
GfrFldAbs[] flds =
{
GfrBasTblDatChildNameAbs.FLD_VAR_CHAR_NAME,
GfrBasTblDatChildAbs.FLD_VAR_CHAR_ID_OBJ_OWNER
};
String[] strs =
{
strNameImage,
strIdTlo
};
return GfrWrpSqlGetRecordingKeysValuesTarget.s_getInstance().doJob(
"",
"",
GfrWrpUsrSpcDspPrtAppWork.getInstance().getPathAbsoluteDbDataChild(GfrIoBasNameDatPrjEcl.STR_FILE),
GfrBasTblDatChildNameImgSct.s_getInstance(),
GfrBasTblDatChildAbs.FLD_VAR_CHAR_ID_OBJ,
flds,
strs);
}
@Override
public String getTypeExtensionImage(String strIdObj) throws Exception
{
return GfrWrpSqlGetRecordingKeyValueTarget.s_getInstance().doJob(
"",
"",
GfrWrpUsrSpcDspPrtAppWork.getInstance().getPathAbsoluteDbDataChild(GfrIoBasNameDatPrjEcl.STR_FILE),
GfrBasTblDatChildNameImgSct.s_getInstance(),
GfrBasTblDatChildNameImgAbs.FLD_VAR_CHAR_EXTENSION_FILE,
GfrBasTblDatChildNameAbs.FLD_VAR_CHAR_ID_OBJ,
strIdObj);
}
@Override
public String getNameImage(String strIdObj) throws Exception
{
return GfrWrpSqlGetRecordingKeyValueTarget.s_getInstance().doJob(
"",
"",
GfrWrpUsrSpcDspPrtAppWork.getInstance().getPathAbsoluteDbDataChild(GfrIoBasNameDatPrjEcl.STR_FILE),
GfrBasTblDatChildNameImgSct.s_getInstance(),
GfrBasTblDatChildAbs.FLD_VAR_CHAR_NAME,
GfrBasTblDatChildNameAbs.FLD_VAR_CHAR_ID_OBJ,
strIdObj);
}
@Override
public String[] getIdsImage(String strIdObj) throws Exception
{
return GfrWrpSqlGetRecordingsKeyValueTarget.s_getInstance().doJob(
"",
"",
GfrWrpUsrSpcDspPrtAppWork.getInstance().getPathAbsoluteDbDataChild(GfrIoBasNameDatPrjEcl.STR_FILE),
GfrBasTblDatChildNameImgSct.s_getInstance(),
GfrBasTblDatObjAbs.FLD_VAR_CHAR_ID_OBJ,
GfrBasTblDatChildAbs.FLD_VAR_CHAR_ID_OBJ_OWNER,
strIdObj);
}
@Override
public String cloneImage(
String strIdTloOwner,
String strIdLloSource) throws Exception
{
return super._cloneImage(
strIdTloOwner,
strIdLloSource,
"sct",
GfrBasTblDatChildNameImgSct.s_getInstance());
}
@Override
public String saveImage(
String strObjIdOwner,
String strNameChild,
String strPathAbsSource) throws Exception
{
return super._saveImage(
strObjIdOwner,
strNameChild,
strPathAbsSource,
"sct",
GfrBasTblDatChildNameImgSct.s_getInstance());
}
@Override
public void deleteImage(String strId) throws Exception
{
super.deleteImage(strId);
super._deleteObject(
GfrWrpUsrSpcDspPrtAppWork.getInstance().getPathAbsoluteDbDataChild(GfrIoBasNameDatPrjEcl.STR_FILE),
GfrBasTblDatChildNameImgSct.s_getInstance(),
strId);
}
@Override
public void deleteAllImages(String strIdThis) throws Exception
{
super.deleteAllImages(strIdThis);
String[] strsIdLloVar =
GfrWrpSqlGetRecordingsKeyValueTarget.s_getInstance().doJob(
"",
"",
GfrWrpUsrSpcDspPrtAppWork.getInstance().getPathAbsoluteDbDataChild(GfrIoBasNameDatPrjEcl.STR_FILE),
GfrBasTblDatChildNameImgSct.s_getInstance(),
GfrBasTblDatObjAbs.FLD_VAR_CHAR_ID_OBJ,
GfrBasTblDatChildAbs.FLD_VAR_CHAR_ID_OBJ_OWNER,
strIdThis);
UtilDeleteChildren.s_doJob(
GfrWrpUsrSpcDspPrtAppWork.getInstance().getPathAbsoluteDbDataChild(GfrIoBasNameDatPrjEcl.STR_FILE),
GfrBasTblDatChildNameImgSct.s_getInstance(),
strsIdLloVar);
}
@Override
public void renameImage(String strId, String strNameNew) throws Exception
{
GfrBasTblDatObjAbs tblTypeOfData = GfrBasTblDatChildNameImgSct.s_getInstance();
GfrWrpSqlUpdateRecordingsKeyValueTarget.s_getInstance().doJob(
"",
"",
GfrWrpUsrSpcDspPrtAppWork.getInstance().getPathAbsoluteDbDataChild(GfrIoBasNameDatPrjEcl.STR_FILE),
tblTypeOfData,
GfrBasTblDatTloAbs.FLD_VAR_CHAR_NAME,
strNameNew,
GfrBasTblDatObjAbs.FLD_VAR_CHAR_ID_OBJ,
strId);
}
@Override
public String getPathAbsoluteDataFolder() throws Exception
{
return GfrWrpUsrSpcDspPrtAppWork.getInstance().getPathAbsoluteLastChildFromHistory()
+ java.io.File.separator + GfrIoBasNameDatPrjAbs.STR_NAME_FOLDER_DATA
+ java.io.File.separator + GfrIoBasNameDatPrjEcl.STR_NAME_FOLDER_SECTOR;
}
@Override
public void rename(String strId, String strNameNew) throws Exception
{
GfrBasTblDatObjAbs tblTypeOfData = GfrBasTblDatTloEclSct.s_getInstance();
GfrWrpSqlUpdateRecordingsKeyValueTarget.s_getInstance().doJob(
"",
"",
GfrWrpUsrSpcDspPrtAppWork.getInstance().getPathAbsoluteDbDataChild(GfrIoBasNameDatPrjEcl.STR_FILE),
tblTypeOfData,
GfrBasTblDatTloAbs.FLD_VAR_CHAR_NAME,
strNameNew,
GfrBasTblDatObjAbs.FLD_VAR_CHAR_ID_OBJ,
strId);
}
public ArrayList<Point2D.Double> getGeometryAsArrayList(String strIdObject) throws Exception
{
return GfrAltPointDouble.s_parse(
GfrWrpSqlGetRecordingKeyValueTarget.s_getInstance().doJob(
"",
"",
GfrWrpUsrSpcDspPrtAppWork.getInstance().getPathAbsoluteDbDataChild(GfrIoBasNameDatPrjEcl.STR_FILE),
GfrBasTblDatTloEclSct.s_getInstance(),
GfrBasTblDatTloEclSct.FLD_VAR_CHAR_GEOMETRY,
GfrBasTblDatObjAbs.FLD_VAR_CHAR_ID_OBJ,
strIdObject));
}
/*
* Memo:
* Position posMin = lstPosition.get(0);
Position posMax = lstPosition.get(1);
*/
public List<Position> getGeometry(String strIdObject) throws Exception
{
ArrayList<Point2D.Double> altPnt = getGeometryAsArrayList(strIdObject);
List<Position> lstPosition = new ArrayList<Position>();
if (altPnt == null || altPnt.size() < 1)
return lstPosition;
for (int i = 0; i < altPnt.size(); i++)
{
Point2D.Double dbl2dCur = altPnt.get(i);
double dblX = dbl2dCur.getX();
double dblY = dbl2dCur.getY();
//Memo Reading Lon Lat, but LatLon necessary for Position
lstPosition.add(Position.fromDegrees(dblY, dblX));
}
return lstPosition;
}
@Override
public String getUrlTlo(String strObjId) throws Exception
{
return super._getUrl(
GfrWrpUsrSpcDspPrtAppWork.getInstance().getPathAbsoluteDbDataChild(GfrIoBasNameDatPrjEcl.STR_FILE),
GfrBasTblDatTloEclSct.s_getInstance(),
strObjId);
}
@Override
public String getName(String strObjId) throws Exception
{
return super._getName(
GfrWrpUsrSpcDspPrtAppWork.getInstance().getPathAbsoluteDbDataChild(GfrIoBasNameDatPrjEcl.STR_FILE),
GfrBasTblDatTloEclSct.s_getInstance(),
strObjId);
}
@Override
public String getId(String strName) throws Exception
{
return super._getId(
GfrWrpUsrSpcDspPrtAppWork.getInstance().getPathAbsoluteDbDataChild(GfrIoBasNameDatPrjEcl.STR_FILE),
GfrBasTblDatTloEclSct.s_getInstance(),
strName);
}
@Override
public String getDescription(String strObjId) throws Exception
{
return super._getDescription(
GfrWrpUsrSpcDspPrtAppWork.getInstance().getPathAbsoluteDbDataChild(GfrIoBasNameDatPrjEcl.STR_FILE),
GfrBasTblDatTloEclSct.s_getInstance(),
strObjId);
}
// ---
protected GfrWrpBasDatObjNameTloEclSct()
{
super();
}
}