/*
* Copyright (C) 2011-2014 GeoForge Project
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
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.GfrBasTblDatChildNameImgSegWiseYes;
import org.geoforge.basprjdatecl.table.objects.GfrBasTblDatTloSegWiseYesEcl;
import org.geoforge.java.awt.geom.GfrUtilPoint2D;
import org.geoforge.sql.field.GfrFldAbs;
import org.geoforge.wrpbasprsdat.util.UtilDeleteChildren;
import org.geoforge.wrpbasusr.GfrWrpUsrSpcDspPrtAppWork;
import org.geoforge.wrpsql.GfrWrpSqlGetRecordingKeyValueTarget;
import org.geoforge.wrpsql.GfrWrpSqlGetRecordingKeysValuesTarget;
import org.geoforge.wrpsql.GfrWrpSqlGetRecordingsKeyValueTarget;
import org.geoforge.wrpsql.GfrWrpSqlGetRecordingsKeyValueTargetOrderBy;
import org.geoforge.wrpsql.GfrWrpSqlUpdateRecordingsKeyValueTarget;
import org.geoforge.wrpsql.GfrWrpSqlUpdateRecordingsKeyValueTargets;
/**
*
* @author Amadeus.Sowerby
*
* email: Amadeus.Sowerby_AT_gmail.com ... please remove "_AT_" from the above
* string to get the right email address
*/
abstract public class GfrWrpBasDatObjNameTloEclSegWiseYes extends GfrWrpBasDatObjNameTloEclAbs
{
public void setGeometry(
String strId,
Point2D.Double p2dStart,
Point2D.Double p2dEnd) throws Exception
{
GfrBasTblDatObjAbs tblTypeOfData = GfrBasTblDatTloSegWiseYesEcl.s_getInstance();
String strGeometryStart = GfrUtilPoint2D.s_toString(p2dStart);
String strGeometryEnd = GfrUtilPoint2D.s_toString(p2dEnd);
GfrFldAbs[] flds =
{
GfrBasTblDatTloSegWiseYesEcl.FLD_VAR_CHAR_POINT_START,
GfrBasTblDatTloSegWiseYesEcl.FLD_VAR_CHAR_POINT_END
};
String[] strs =
{
strGeometryStart,
strGeometryEnd
};
GfrWrpSqlUpdateRecordingsKeyValueTargets.s_getInstance().doJob(
"",
"",
GfrWrpUsrSpcDspPrtAppWork.getInstance().getPathAbsoluteDbDataChild(GfrIoBasNameDatPrjEcl.STR_FILE),
tblTypeOfData,
GfrBasTblDatObjAbs.FLD_VAR_CHAR_ID_OBJ,
strId,
flds,
strs);
}
@Override
public String[] getSortedNamesImage(String strIdThis) throws Exception
{
String[] strs = GfrWrpSqlGetRecordingsKeyValueTarget.s_getInstance().doJob(
"",
"",
GfrWrpUsrSpcDspPrtAppWork.getInstance().getPathAbsoluteDbDataChild(GfrIoBasNameDatPrjEcl.STR_FILE),
GfrBasTblDatChildNameImgSegWiseYes.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),
GfrBasTblDatChildNameImgSegWiseYes.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),
GfrBasTblDatChildNameImgSegWiseYes.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),
GfrBasTblDatChildNameImgSegWiseYes.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),
GfrBasTblDatChildNameImgSegWiseYes.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),
GfrBasTblDatChildNameImgSegWiseYes.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,
"swy",
GfrBasTblDatChildNameImgSegWiseYes.s_getInstance());
}
@Override
public String saveImage(
String strObjIdOwner,
String strNameChild,
String strPathAbsSource) throws Exception
{
return super._saveImage(
strObjIdOwner,
strNameChild,
strPathAbsSource,
"swy",
GfrBasTblDatChildNameImgSegWiseYes.s_getInstance());
}
@Override
public void deleteImage(String strId) throws Exception
{
super.deleteImage(strId);
super._deleteObject(
GfrWrpUsrSpcDspPrtAppWork.getInstance().getPathAbsoluteDbDataChild(GfrIoBasNameDatPrjEcl.STR_FILE),
GfrBasTblDatChildNameImgSegWiseYes.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),
GfrBasTblDatChildNameImgSegWiseYes.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),
GfrBasTblDatChildNameImgSegWiseYes.s_getInstance(),
strsIdLloVar);
}
@Override
public void renameImage(String strId, String strNameNew) throws Exception
{
GfrBasTblDatObjAbs tblTypeOfData = GfrBasTblDatChildNameImgSegWiseYes.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_SEGMENT_WIZE_YES;
}
@Override
public void rename(String strId, String strNameNew) throws Exception
{
GfrBasTblDatObjAbs tblTypeOfData = GfrBasTblDatTloSegWiseYesEcl.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 Point2D.Double getGeometryPointStartAsPoint2D(String strIdObject) throws Exception
{
String strGeometry = GfrWrpSqlGetRecordingKeyValueTarget.s_getInstance().doJob(
"",
"",
GfrWrpUsrSpcDspPrtAppWork.getInstance().getPathAbsoluteDbDataChild(GfrIoBasNameDatPrjEcl.STR_FILE),
GfrBasTblDatTloSegWiseYesEcl.s_getInstance(),
GfrBasTblDatTloSegWiseYesEcl.FLD_VAR_CHAR_POINT_START,
GfrBasTblDatObjAbs.FLD_VAR_CHAR_ID_OBJ,
strIdObject);
Point2D.Double p2d = GfrUtilPoint2D.s_parse(strGeometry);
return p2d;
}
public Point2D.Double getGeometryPointEndAsPoint2D(String strIdObject) throws Exception
{
String strGeometry = GfrWrpSqlGetRecordingKeyValueTarget.s_getInstance().doJob(
"",
"",
GfrWrpUsrSpcDspPrtAppWork.getInstance().getPathAbsoluteDbDataChild(GfrIoBasNameDatPrjEcl.STR_FILE),
GfrBasTblDatTloSegWiseYesEcl.s_getInstance(),
GfrBasTblDatTloSegWiseYesEcl.FLD_VAR_CHAR_POINT_END,
GfrBasTblDatObjAbs.FLD_VAR_CHAR_ID_OBJ,
strIdObject);
Point2D.Double p2d = GfrUtilPoint2D.s_parse(strGeometry);
return p2d;
}
/* public ArrayList<Point2D.Double> getGeometryAsArrayList(String strIdObject) throws Exception
{
return GfrAltPointDouble.s_parse(
GfrWrpSqlGetRecordingKeyValueTarget.s_getInstance().doJob(
"",
"",
GfrWrpUsrSpcDspPrtAppWork.getInstance().getPathAbsoluteDbDataChild(GfrIoBasNameDatPrjEcl.STR_FILE),
GfrBasTblDatTloSegWiseYesEcl.s_getInstance(),
GfrBasTblDatTloSegWiseYesEcl.FLD_VAR_CHAR_GEOMETRY,
GfrBasTblDatObjAbs.FLD_VAR_CHAR_ID_OBJ,
strIdObject));
}*/
public Position getGeometryPointStart(String strIdObject) throws Exception
{
Point2D.Double p2d = getGeometryPointStartAsPoint2D(strIdObject);
//Memo Reading Lon Lat, but LatLon necessary for Position
Position pos = Position.fromDegrees(p2d.getY(), p2d.getX());
return pos;
}
public Position getGeometryPointEnd(String strIdObject) throws Exception
{
Point2D.Double p2d = getGeometryPointEndAsPoint2D(strIdObject);
//Memo Reading Lon Lat, but LatLon necessary for Position
Position pos = Position.fromDegrees(p2d.getY(), p2d.getX());
return pos;
}
public List<Position> getPositions(String strIdObject) throws Exception
{
List<Position> lstPosition = new ArrayList<Position>();
Position posStart = getGeometryPointStart(strIdObject);
Position posEnd = getGeometryPointEnd(strIdObject);
lstPosition.add(posStart);
lstPosition.add(posEnd);
return lstPosition;
}
@Override
public String getUrlTlo(String strObjId) throws Exception
{
return super._getUrl(
GfrWrpUsrSpcDspPrtAppWork.getInstance().getPathAbsoluteDbDataChild(GfrIoBasNameDatPrjEcl.STR_FILE),
GfrBasTblDatTloSegWiseYesEcl.s_getInstance(),
strObjId);
}
@Override
public String getName(String strObjId) throws Exception
{
return super._getName(
GfrWrpUsrSpcDspPrtAppWork.getInstance().getPathAbsoluteDbDataChild(GfrIoBasNameDatPrjEcl.STR_FILE),
GfrBasTblDatTloSegWiseYesEcl.s_getInstance(),
strObjId);
}
@Override
public String getId(String strName) throws Exception
{
return super._getId(
GfrWrpUsrSpcDspPrtAppWork.getInstance().getPathAbsoluteDbDataChild(GfrIoBasNameDatPrjEcl.STR_FILE),
GfrBasTblDatTloSegWiseYesEcl.s_getInstance(),
strName);
}
@Override
public String getDescription(String strObjId) throws Exception
{
return super._getDescription(
GfrWrpUsrSpcDspPrtAppWork.getInstance().getPathAbsoluteDbDataChild(GfrIoBasNameDatPrjEcl.STR_FILE),
GfrBasTblDatTloSegWiseYesEcl.s_getInstance(),
strObjId);
}
// ---
protected GfrWrpBasDatObjNameTloEclSegWiseYes()
{
super();
}
}