/*
* 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.GfrBasTblDatChildNameImgSpn;
import org.geoforge.basprjdatecl.table.objects.GfrBasTblDatTloEclSpn;
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 robert
*/
abstract public class GfrWrpBasDatObjNameTloEclSpn extends GfrWrpBasDatObjNameTloEclAbs
{
public void setGeometry(String strIdTlo, ArrayList<Position> altPos) throws Exception
{
ArrayList<Point2D.Double> altP2d = new ArrayList<Point2D.Double>();
for(int i = 0; i < altPos.size(); i++)
{
altP2d.add(new Point2D.Double(
altPos.get(i).getLongitude().degrees,
altPos.get(i).getLatitude().degrees));
}
String strGeomNew = GfrAltPointDouble.s_toString(altP2d);
GfrWrpSqlUpdateRecordingsKeyValueTarget.s_getInstance().doJob(
"",
"",
GfrWrpUsrSpcDspPrtAppWork.getInstance().getPathAbsoluteDbDataChild(GfrIoBasNameDatPrjEcl.STR_FILE),
GfrBasTblDatTloEclSpn.s_getInstance(),
GfrBasTblDatTloEclSpn.FLD_VAR_CHAR_GEOMETRY,
strGeomNew,
GfrBasTblDatObjAbs.FLD_VAR_CHAR_ID_OBJ,
strIdTlo);
}
@Override
public String[] getSortedNamesImage(String strIdThis) throws Exception
{
String[] strs = GfrWrpSqlGetRecordingsKeyValueTarget.s_getInstance().doJob(
"",
"",
GfrWrpUsrSpcDspPrtAppWork.getInstance().getPathAbsoluteDbDataChild(GfrIoBasNameDatPrjEcl.STR_FILE),
GfrBasTblDatChildNameImgSpn.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),
GfrBasTblDatChildNameImgSpn.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),
GfrBasTblDatChildNameImgSpn.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),
GfrBasTblDatChildNameImgSpn.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),
GfrBasTblDatChildNameImgSpn.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),
GfrBasTblDatChildNameImgSpn.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,
"spn",
GfrBasTblDatChildNameImgSpn.s_getInstance());
}
@Override
public String saveImage(
String strObjIdOwner,
String strNameChild,
String strPathAbsSource) throws Exception
{
return super._saveImage(
strObjIdOwner,
strNameChild,
strPathAbsSource,
"spn",
GfrBasTblDatChildNameImgSpn.s_getInstance());
}
@Override
public void deleteImage(String strId) throws Exception
{
super.deleteImage(strId);
super._deleteObject(
GfrWrpUsrSpcDspPrtAppWork.getInstance().getPathAbsoluteDbDataChild(GfrIoBasNameDatPrjEcl.STR_FILE),
GfrBasTblDatChildNameImgSpn.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),
GfrBasTblDatChildNameImgSpn.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),
GfrBasTblDatChildNameImgSpn.s_getInstance(),
strsIdLloVar);
}
@Override
public void renameImage(String strId, String strNameNew) throws Exception
{
GfrBasTblDatObjAbs tblTypeOfData = GfrBasTblDatChildNameImgSpn.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_POINTSET;
}
@Override
public void rename(String strId, String strNameNew) throws Exception
{
GfrBasTblDatObjAbs tblTypeOfData = GfrBasTblDatTloEclSpn.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),
GfrBasTblDatTloEclSpn.s_getInstance(),
GfrBasTblDatTloEclSpn.FLD_VAR_CHAR_GEOMETRY,
GfrBasTblDatObjAbs.FLD_VAR_CHAR_ID_OBJ,
strIdObject));
}
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),
GfrBasTblDatTloEclSpn.s_getInstance(),
strObjId);
}
@Override
public String getName(String strObjId) throws Exception
{
return super._getName(
GfrWrpUsrSpcDspPrtAppWork.getInstance().getPathAbsoluteDbDataChild(GfrIoBasNameDatPrjEcl.STR_FILE),
GfrBasTblDatTloEclSpn.s_getInstance(),
strObjId);
}
@Override
public String getId(String strName) throws Exception
{
return super._getId(
GfrWrpUsrSpcDspPrtAppWork.getInstance().getPathAbsoluteDbDataChild(GfrIoBasNameDatPrjEcl.STR_FILE),
GfrBasTblDatTloEclSpn.s_getInstance(),
strName);
}
@Override
public String getDescription(String strObjId) throws Exception
{
return super._getDescription(
GfrWrpUsrSpcDspPrtAppWork.getInstance().getPathAbsoluteDbDataChild(GfrIoBasNameDatPrjEcl.STR_FILE),
GfrBasTblDatTloEclSpn.s_getInstance(),
strObjId);
}
// ---
protected GfrWrpBasDatObjNameTloEclSpn()
{
super();
}
}