Package org.geoforge.appogcecl.actionperformer

Source Code of org.geoforge.appogcecl.actionperformer.ActPrfPrjExportOgcEclAbs

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package org.geoforge.appogcecl.actionperformer;

import com.lowagie.geoforge.toolbox.GfrPdfPhotoAlbumFromAbs;
import com.lowagie.geoforge.toolbox.GfrPdfPhotoAlbumFromFiles;
import gov.nasa.worldwind.geom.Position;
import java.awt.Desktop;
import java.awt.event.ActionEvent;
import java.awt.geom.Point2D;
import java.io.File;
import java.io.FileWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Logger;
import javax.swing.JFrame;
import org.geoforge.java.awt.desktop.GfrUtilDesktop;
import org.geoforge.guillc.dialog.GfrDlgAddFolderAbs;
import org.geoforge.guillc.dialog.GfrDlgAddFolderNew;
import org.geoforge.guillc.dialog.GfrDlgSelectObjects;
import org.geoforge.guillc.filechooser.GfrUtilFileChooserVol;
import org.geoforge.guillc.frame.GfrFrmAbs;
import org.geoforge.guillc.menuitem.GfrMimTrsAlrExpObj;
import org.geoforge.guillc.menuitem.GfrMimTrsAlrExpObjsTlo;
import org.geoforge.guillc.menuitem.GfrMimTrsAlrIdExpObjsLlo;
import org.geoforge.guillc.menuitem.GfrMimTrsAlrTloViewDftRdrPdfImgsAbs;
import org.geoforge.guillc.optionpane.GfrOptionPaneAbs;
import org.geoforge.guillcogcecl.enumeration.GfrEnuValuesKindObjectLloVarSpcPrjOgcEcl;
import org.geoforge.guillcogcecl.enumeration.GfrEnuValuesKindObjectTloSpcPrjOgcEcl;
import org.geoforge.guillcogcecl.menuitem.*;
import org.geoforge.io.enumeration.GfrEnuValuesKindFileFormat;
import org.geoforge.java.io.file.GfrUtilFile;
import org.geoforge.io.file.GfrUtilFileExcel;
import org.geoforge.java.io.file.GfrJavIoFileExtension;
import org.geoforge.io.header.GfrIoSheetColNamTlosPointGeometryAbs;
import org.geoforge.io.header.GfrIoSheetColNamTlosPointLatLonAbs;
import org.geoforge.io.header.GfrIoSheetColNamXlosNamAbs;
import org.geoforge.lang.enumeration.GfrEnuApplicationPropertiesImmutableKeys;
import org.geoforge.java.lang.system.GfrUtlSystem;
import org.geoforge.lang.util.GfrResBundleLang;
import org.geoforge.lang.util.arraylist.GfrAltPointDouble;
import org.geoforge.java.util.logging.filehandler.FileHandlerLogger;
import org.geoforge.wrpbasprsdatecl.GfrWrpBasDatObjNameTloEclAbs;
import org.geoforge.wrpbasprssynecl.*;

/**
*
* @author robert
*/
abstract public class ActPrfPrjExportOgcEclAbs extends ActPrfPrjExportOgcAbs
{
   // ----
   // begin: instantiate logger for this class

   final private static Logger _LOGGER_ = Logger.getLogger(ActPrfPrjExportOgcEclAbs.class.getName());

   static
   {
      ActPrfPrjExportOgcEclAbs._LOGGER_.addHandler(FileHandlerLogger.s_getInstance());
   }
   // end: instantiate logger for this class
   // ----

   @Override
   public boolean doneJob(ActionEvent evt) throws Exception
   {
      if (super.doneJob(evt))
         return true;

      Object objEvt = evt.getSource();


      if (evt.getSource() instanceof GfrMimTrsAlrTloViewDftRdrPdfImgsSct)
      {
         GfrMimTrsAlrTloViewDftRdrPdfImgsAbs mim = (GfrMimTrsAlrTloViewDftRdrPdfImgsAbs) evt.getSource();
         JFrame frmOwner = GfrFrmAbs.s_getFrameOwner(mim);
         String strIdSource = mim.getIdTlo();

         this._imageGalleryEclToPdfTempo_(
                 frmOwner,
                 GfrWrpBasSynObjNameTloEclSct.getInstance(),
                 strIdSource);

         return true;
      }






      if (evt.getSource() instanceof GfrMimTrsAlrTloViewDftRdrPdfImgsSpn)
      {
         GfrMimTrsAlrTloViewDftRdrPdfImgsAbs mim = (GfrMimTrsAlrTloViewDftRdrPdfImgsAbs) evt.getSource();
         JFrame frmOwner = GfrFrmAbs.s_getFrameOwner(mim);
         String strIdSource = mim.getIdTlo();

         this._imageGalleryEclToPdfTempo_(
                 frmOwner,
                 GfrWrpBasSynObjNameTloEclSpn.getInstance(),
                 strIdSource);

         return true;
      }


      // memo: behaves like export
      if (evt.getSource() instanceof GfrMimTrsAlrTloViewDftRdrPdfImgsAre)
      {
         GfrMimTrsAlrTloViewDftRdrPdfImgsAbs mim = (GfrMimTrsAlrTloViewDftRdrPdfImgsAbs) evt.getSource();
         JFrame frmOwner = GfrFrmAbs.s_getFrameOwner(mim);
         String strIdSource = mim.getIdTlo();

         this._imageGalleryEclToPdfTempo_(
                 frmOwner,
                 GfrWrpBasSynObjNameTloEclAre.getInstance(),
                 strIdSource);

         return true;
      }

      // memo: behaves like export
      if (evt.getSource() instanceof GfrMimTrsAlrTloViewDftRdrPdfImgsPth)
      {
         GfrMimTrsAlrTloViewDftRdrPdfImgsAbs mim = (GfrMimTrsAlrTloViewDftRdrPdfImgsAbs) evt.getSource();
         JFrame frmOwner = GfrFrmAbs.s_getFrameOwner(mim);
         String strIdSource = mim.getIdTlo();

         this._imageGalleryEclToPdfTempo_(
                 frmOwner,
                 GfrWrpBasSynObjNameTloEclPth.getInstance(),
                 strIdSource);

         return true;
      }

      // memo: behaves like export

      if (evt.getSource() instanceof GfrMimTrsAlrTloViewDftRdrPdfImgsPlc)
      {
         GfrMimTrsAlrTloViewDftRdrPdfImgsAbs mim = (GfrMimTrsAlrTloViewDftRdrPdfImgsAbs) evt.getSource();
         JFrame frmOwner = GfrFrmAbs.s_getFrameOwner(mim);
         String strIdSource = mim.getIdTlo();

         this._imageGalleryEclToPdfTempo_(
                 frmOwner,
                 GfrWrpBasSynObjNameTloEclPlc.getInstance(),
                 strIdSource);

         return true;
      }

      if (evt.getSource() instanceof GfrMimTrsAlrTloViewDftRdrPdfImgsPnt)
      {
         GfrMimTrsAlrTloViewDftRdrPdfImgsAbs mim = (GfrMimTrsAlrTloViewDftRdrPdfImgsAbs) evt.getSource();
         JFrame frmOwner = GfrFrmAbs.s_getFrameOwner(mim);
         String strIdSource = mim.getIdTlo();

         this._imageGalleryEclToPdfTempo_(
                 frmOwner,
                 GfrWrpBasSynObjNameTloEclPnt.getInstance(),
                 strIdSource);

         return true;
      }

      if (objEvt instanceof GfrMimTrsAlrIdExpObjsLlo)
      {
         GfrMimTrsAlrIdExpObjsLlo mim = (GfrMimTrsAlrIdExpObjsLlo) objEvt;
         JFrame frmOwner = GfrFrmAbs.s_getFrameOwner(mim);
         String strIdSource = mim.getId();


         String strValueKindObject = mim.getPropertyImmutable(
                 GfrEnuApplicationPropertiesImmutableKeys.KEY_KIND_OBJECT.name());

         String strValueKindFileFormat = mim.getPropertyImmutable(
                 GfrEnuApplicationPropertiesImmutableKeys.KEY_KIND_FILE_FORMAT.name());

         //--
         if (strValueKindObject == null || strValueKindObject.length() < 1)
            return false;

         if (strValueKindFileFormat == null || strValueKindFileFormat.length() < 1)
            return false;

         if (strValueKindObject.compareTo(
                 GfrEnuValuesKindObjectLloVarSpcPrjOgcEcl.VALUE_LLO_IMAGE_ECL_SPN.name()) == 0)
         {
            if (strValueKindFileFormat.compareTo(GfrEnuValuesKindFileFormat.VALUE_PDF.name()) == 0)
            {
               this._imageGalleryTloEclToPdf_(
                       frmOwner,
                       GfrWrpBasSynObjNameTloEclSpn.getInstance(),
                       strIdSource);

               return true;
            }

            if (strValueKindFileFormat.compareTo(
                    GfrEnuValuesKindFileFormat.VALUE_FOLDER.name()) == 0)
            {
               this._imageGalleryTloEclToNewFolder_(
                       frmOwner,
                       GfrWrpBasSynObjNameTloEclSpn.getInstance(),
                       strIdSource);

               return true;
            }
         }

         if (strValueKindObject.compareTo(
                 GfrEnuValuesKindObjectLloVarSpcPrjOgcEcl.VALUE_LLO_IMAGE_ECL_ARE.name()) == 0)
         {
            if (strValueKindFileFormat.compareTo(
                    GfrEnuValuesKindFileFormat.VALUE_PDF.name()) == 0)
            {
               this._imageGalleryTloEclToPdf_(
                       frmOwner,
                       GfrWrpBasSynObjNameTloEclAre.getInstance(),
                       strIdSource);

               return true;
            }

            if (strValueKindFileFormat.compareTo(
                    GfrEnuValuesKindFileFormat.VALUE_FOLDER.name()) == 0)
            {
               this._imageGalleryTloEclToNewFolder_(
                       frmOwner,
                       GfrWrpBasSynObjNameTloEclAre.getInstance(),
                       strIdSource);

               return true;
            }
         }

         if (strValueKindObject.compareTo(
                 GfrEnuValuesKindObjectLloVarSpcPrjOgcEcl.VALUE_LLO_IMAGE_ECL_PLC.name()) == 0)
         {
            if (strValueKindFileFormat.compareTo(
                    GfrEnuValuesKindFileFormat.VALUE_PDF.name()) == 0)
            {
               this._imageGalleryTloEclToPdf_(
                       frmOwner,
                       GfrWrpBasSynObjNameTloEclPlc.getInstance(),
                       strIdSource);

               return true;
            }

            if (strValueKindFileFormat.compareTo(
                    GfrEnuValuesKindFileFormat.VALUE_FOLDER.name()) == 0)
            {
               this._imageGalleryTloEclToNewFolder_(
                       frmOwner,
                       GfrWrpBasSynObjNameTloEclPlc.getInstance(),
                       strIdSource);

               return true;
            }
         }

         if (strValueKindObject.compareTo(
                 GfrEnuValuesKindObjectLloVarSpcPrjOgcEcl.VALUE_LLO_IMAGE_ECL_PNT.name()) == 0)
         {
            if (strValueKindFileFormat.compareTo(
                    GfrEnuValuesKindFileFormat.VALUE_PDF.name()) == 0)
            {
               this._imageGalleryTloEclToPdf_(
                       frmOwner,
                       GfrWrpBasSynObjNameTloEclPnt.getInstance(),
                       strIdSource);

               return true;
            }

            if (strValueKindFileFormat.compareTo(
                    GfrEnuValuesKindFileFormat.VALUE_FOLDER.name()) == 0)
            {
               this._imageGalleryTloEclToNewFolder_(
                       frmOwner,
                       GfrWrpBasSynObjNameTloEclPnt.getInstance(),
                       strIdSource);

               return true;
            }
         }


         if (strValueKindObject.compareTo(
                 GfrEnuValuesKindObjectLloVarSpcPrjOgcEcl.VALUE_LLO_IMAGE_ECL_PTH.name()) == 0)
         {
            if (strValueKindFileFormat.compareTo(
                    GfrEnuValuesKindFileFormat.VALUE_PDF.name()) == 0)
            {
               this._imageGalleryTloEclToPdf_(
                       frmOwner,
                       GfrWrpBasSynObjNameTloEclPth.getInstance(),
                       strIdSource);

               return true;
            }

            if (strValueKindFileFormat.compareTo(
                    GfrEnuValuesKindFileFormat.VALUE_FOLDER.name()) == 0)
            {
               this._imageGalleryTloEclToNewFolder_(
                       frmOwner,
                       GfrWrpBasSynObjNameTloEclPth.getInstance(),
                       strIdSource);

               return true;
            }

         }

         if (strValueKindObject.compareTo(
                 GfrEnuValuesKindObjectLloVarSpcPrjOgcEcl.VALUE_LLO_IMAGE_ECL_SCT.name()) == 0)
         {
            if (strValueKindFileFormat.compareTo(
                    GfrEnuValuesKindFileFormat.VALUE_PDF.name()) == 0)
            {
               this._imageGalleryTloEclToPdf_(
                       frmOwner,
                       GfrWrpBasSynObjNameTloEclSct.getInstance(),
                       strIdSource);

               return true;
            }

            if (strValueKindFileFormat.compareTo(
                    GfrEnuValuesKindFileFormat.VALUE_FOLDER.name()) == 0)
            {
               this._imageGalleryTloEclToNewFolder_(
                       frmOwner,
                       GfrWrpBasSynObjNameTloEclSct.getInstance(),
                       strIdSource);

               return true;
            }
         }

         if (strValueKindObject.compareTo(
                 GfrEnuValuesKindObjectLloVarSpcPrjOgcEcl.VALUE_LLO_IMAGE_ECL_SEG_WISE_YES.name()) == 0)
         {
            if (strValueKindFileFormat.compareTo(
                    GfrEnuValuesKindFileFormat.VALUE_PDF.name()) == 0)
            {
               this._imageGalleryTloEclToPdf_(
                       frmOwner,
                       GfrWrpBasSynObjNameTloEclSegWiseYes.getInstance(),
                       strIdSource);

               return true;
            }

            if (strValueKindFileFormat.compareTo(
                    GfrEnuValuesKindFileFormat.VALUE_FOLDER.name()) == 0)
            {
               this._imageGalleryTloEclToNewFolder_(
                       frmOwner,
                       GfrWrpBasSynObjNameTloEclSegWiseYes.getInstance(),
                       strIdSource);

               return true;
            }
         }
      }


      if (evt.getSource() instanceof GfrMimTrsAlrExpObjsTlo)
      {
         GfrMimTrsAlrExpObjsTlo mim = (GfrMimTrsAlrExpObjsTlo) evt.getSource();
         JFrame frmOwner = GfrFrmAbs.s_getFrameOwner(mim);


         String strValueKindObject = mim.getPropertyImmutable(
                 GfrEnuApplicationPropertiesImmutableKeys.KEY_KIND_OBJECT.name());

         String strValueKindFileFormat = mim.getPropertyImmutable(
                 GfrEnuApplicationPropertiesImmutableKeys.KEY_KIND_FILE_FORMAT.name());

         //--
         if (strValueKindObject == null || strValueKindObject.length() < 1)
            return false;

         if (strValueKindFileFormat == null || strValueKindFileFormat.length() < 1)
            return false;

         //--
         if (strValueKindObject.compareTo(
                 GfrEnuValuesKindObjectTloSpcPrjOgcEcl.VALUE_TLO_ECL_SCT.name()) == 0)
         {
            if (strValueKindFileFormat.compareTo(
                    GfrEnuValuesKindFileFormat.VALUE_EXCEL.name()) == 0)
            {
               String strTodo = "TODO: GfrMimTrsExpObjsSctExc";
               ActPrfPrjExportOgcEclAbs._LOGGER_.warning(strTodo);
               GfrOptionPaneAbs.s_showDialogInfo(null, strTodo);

               return true;
            }

            if (strValueKindFileFormat.compareTo(
                    GfrEnuValuesKindFileFormat.VALUE_CSV.name()) == 0)
            {
               String strTodo = "TODO: GfrMimTrsExpObjsSctCsv";
               ActPrfPrjExportOgcEclAbs._LOGGER_.warning(strTodo);
               GfrOptionPaneAbs.s_showDialogInfo(null, strTodo);

               return true;
            }


         }

         if (strValueKindObject.compareTo(
                 GfrEnuValuesKindObjectTloSpcPrjOgcEcl.VALUE_TLO_ECL_PLC.name()) == 0)
         {
            if (strValueKindFileFormat.compareTo(
                    GfrEnuValuesKindFileFormat.VALUE_EXCEL.name()) == 0)
            {
               _exportToExcPlcs_(frmOwner);
               return true;
            }

            if (strValueKindFileFormat.compareTo(
                    GfrEnuValuesKindFileFormat.VALUE_CSV.name()) == 0)
            {
               _exportToCsvPlcs_(frmOwner);
               return true;
            }
         }


         if (strValueKindObject.compareTo(
                 GfrEnuValuesKindObjectTloSpcPrjOgcEcl.VALUE_TLO_ECL_PNT.name()) == 0)
         {
            if (strValueKindFileFormat.compareTo(GfrEnuValuesKindFileFormat.VALUE_EXCEL.name()) == 0)
            {
               _exportToExcPnts_(frmOwner);
               return true;
            }

            if (strValueKindFileFormat.compareTo(
                    GfrEnuValuesKindFileFormat.VALUE_CSV.name()) == 0)
            {
               _exportToCsvPnts_(frmOwner);
               return true;
            }
         }

         if (strValueKindObject.compareTo(GfrEnuValuesKindObjectTloSpcPrjOgcEcl.VALUE_TLO_ECL_SEG_WISE_YES.name()) == 0)
         {
            if (strValueKindFileFormat.compareTo(GfrEnuValuesKindFileFormat.VALUE_EXCEL.name()) == 0)
            {
               String strTodo = "TODO: GfrMimTrsExpObjsSegWiseYes - Excel";
               ActPrfPrjExportOgcEclAbs._LOGGER_.warning(strTodo);
               GfrOptionPaneAbs.s_showDialogInfo(null, strTodo);

               return true;
            }

            if (strValueKindFileFormat.compareTo(GfrEnuValuesKindFileFormat.VALUE_CSV.name()) == 0)
            {
               String strTodo = "TODO: GfrMimTrsExpObjsSegWiseYes - Csv";
               ActPrfPrjExportOgcEclAbs._LOGGER_.warning(strTodo);
               GfrOptionPaneAbs.s_showDialogInfo(null, strTodo);

               return true;
            }
         }

         if (strValueKindObject.compareTo(GfrEnuValuesKindObjectTloSpcPrjOgcEcl.VALUE_TLO_ECL_SPN.name()) == 0)
         {
            if (strValueKindFileFormat.compareTo(GfrEnuValuesKindFileFormat.VALUE_EXCEL.name()) == 0)
            {
               _exportToExcSpns_(frmOwner);
               return true;
            }

            if (strValueKindFileFormat.compareTo(GfrEnuValuesKindFileFormat.VALUE_CSV.name()) == 0)
            {
               _exportToCsvSpns_(frmOwner);
               return true;
            }
         }

         if (strValueKindObject.compareTo(GfrEnuValuesKindObjectTloSpcPrjOgcEcl.VALUE_TLO_ECL_PTH.name()) == 0)
         {
            if (strValueKindFileFormat.compareTo(GfrEnuValuesKindFileFormat.VALUE_EXCEL.name()) == 0)
            {
               _exportToExcPths_(frmOwner);
               return true;
            }

            if (strValueKindFileFormat.compareTo(GfrEnuValuesKindFileFormat.VALUE_CSV.name()) == 0)
            {
               _exportToCsvPths_(frmOwner);
               return true;
            }
         }


         if (strValueKindObject.compareTo(GfrEnuValuesKindObjectTloSpcPrjOgcEcl.VALUE_TLO_ECL_ARE.name()) == 0)
         {
            if (strValueKindFileFormat.compareTo(GfrEnuValuesKindFileFormat.VALUE_EXCEL.name()) == 0)
            {
               _exportToExcAres_(frmOwner);
               return true;
            }

            if (strValueKindFileFormat.compareTo(GfrEnuValuesKindFileFormat.VALUE_CSV.name()) == 0)
            {
               _exportToCsvAres_(frmOwner);
               return true;
            }
         }
      }
      if (evt.getSource() instanceof GfrMimTrsAlrExpObj)
      {
         GfrMimTrsAlrExpObj mim = (GfrMimTrsAlrExpObj) evt.getSource();
         JFrame frmOwner = GfrFrmAbs.s_getFrameOwner(mim);


         String strValueKindObject = mim.getPropertyImmutable(
                 GfrEnuApplicationPropertiesImmutableKeys.KEY_KIND_OBJECT.name());

         String strValueKindFileFormat = mim.getPropertyImmutable(
                 GfrEnuApplicationPropertiesImmutableKeys.KEY_KIND_FILE_FORMAT.name());



         //--
         if (strValueKindObject == null || strValueKindObject.length() < 1)
            return false;

         if (strValueKindFileFormat == null || strValueKindFileFormat.length() < 1)
            return false;

         if (strValueKindObject.compareTo(GfrEnuValuesKindObjectTloSpcPrjOgcEcl.VALUE_TLO_ECL_PLC.name()) == 0)
         {
            if (strValueKindFileFormat.compareTo(GfrEnuValuesKindFileFormat.VALUE_CSV.name()) == 0)
            {
               String strIdSource = mim.getIdSource();
               _exportToCsvPlc_(frmOwner, strIdSource);
               return true;
            }

            if (strValueKindFileFormat.compareTo(GfrEnuValuesKindFileFormat.VALUE_EXCEL.name()) == 0)
            {
               String strIdSource = mim.getIdSource();
               _exportToExcPlc_(frmOwner, strIdSource);
               return true;
            }
         }
         if (strValueKindObject.compareTo(GfrEnuValuesKindObjectTloSpcPrjOgcEcl.VALUE_TLO_ECL_PNT.name()) == 0)
         {
            if (strValueKindFileFormat.compareTo(GfrEnuValuesKindFileFormat.VALUE_CSV.name()) == 0)
            {
               String strIdSource = mim.getIdSource();
               _exportToCsvPnt_(frmOwner, strIdSource);
               return true;
            }



            if (strValueKindFileFormat.compareTo(GfrEnuValuesKindFileFormat.VALUE_EXCEL.name()) == 0)
            {
               String strIdSource = mim.getIdSource();
               _exportToExcPnt_(frmOwner, strIdSource);
               return true;
            }
         }
         if (strValueKindObject.compareTo(GfrEnuValuesKindObjectTloSpcPrjOgcEcl.VALUE_TLO_ECL_SCT.name()) == 0)
         {
            if (strValueKindFileFormat.compareTo(GfrEnuValuesKindFileFormat.VALUE_EXCEL.name()) == 0)
            {
               String strTodo = "TODO: GfrMimTrsExpObjExcSct";
               ActPrfPrjExportOgcEclAbs._LOGGER_.warning(strTodo);
               GfrOptionPaneAbs.s_showDialogInfo(null, strTodo);
               return true;
            }

            if (strValueKindFileFormat.compareTo(GfrEnuValuesKindFileFormat.VALUE_CSV.name()) == 0)
            {
               String strTodo = "TODO: GfrMimTrsExpObjCsvSct";
               ActPrfPrjExportOgcEclAbs._LOGGER_.warning(strTodo);
               GfrOptionPaneAbs.s_showDialogInfo(null, strTodo);
               return true;
            }
         }

      }

      // ending
      return false;
   }

   // ---
   protected ActPrfPrjExportOgcEclAbs()
   {
      super();
   }

   // ---
   private void _exportToCsvPlcs_(JFrame frmOwner)
   {
      try
      {
         String[] strsValueNameCandidateSorted = GfrWrpBasTopSynEclPlcs.getInstance().getSortedNamesTlo();

         GfrDlgSelectObjects dlg = new GfrDlgSelectObjects(
                 frmOwner,
                 "Select placemarks",
                 strsValueNameCandidateSorted);

         // !!!!!!!!!!!!!!!!!!!!!!!
         dlg.init();

         dlg.setVisible(true);

         boolean blnCancelled = dlg.isCancelled();
         String[] strsValueNameSelected = null;

         if (!blnCancelled)
         {
            strsValueNameSelected = dlg.getResult();
         }

         dlg.destroy();
         dlg = null;

         if (blnCancelled)
            return;

         String[] strsIdSource = new String[strsValueNameSelected.length];

         for (int i = 0; i < strsValueNameSelected.length; i++)
         {
            strsIdSource[i] = GfrWrpBasSynObjNameTloEclPlc.getInstance().getId(strsValueNameSelected[i]);
         }

         //-- GfrUtilFileChooserVol
         File fle = GfrUtilFileChooserVol.s_chooseFileSave(frmOwner,
                 "Save placemarks to CSV file", "placemarks", ".csv");

         if (fle == null)
            return;

         FileWriter fwr = new FileWriter(fle);

         // header
         fwr.append(GfrIoSheetColNamXlosNamAbs.STR_NAME);
         fwr.append(',');
         fwr.append(GfrIoSheetColNamTlosPointLatLonAbs.STR_LONGITUDE);
         fwr.append(',');
         fwr.append(GfrIoSheetColNamTlosPointLatLonAbs.STR_LATITUDE);
         fwr.append('\n');


         // ---
         for (int i = 0; i < strsIdSource.length; i++)
         {

            // values
            String strName = GfrWrpBasSynObjNameTloEclPlc.getInstance().getName(strsIdSource[i]);
            Position pos = GfrWrpBasSynObjNameTloEclPlc.getInstance().getGeometry(strsIdSource[i]);

            double[] dblsLatLon = pos.asDegreesArray();
            double dblLon = dblsLatLon[1];
            double dblLat = dblsLatLon[0];
            fwr.append(strName);
            fwr.append(',');
            fwr.append(String.valueOf(dblLon));
            fwr.append(',');
            fwr.append(String.valueOf(dblLat));
            fwr.append('\n');
         }

         // close
         fwr.flush();
         fwr.close();

         String strBody = "Successfully saved placemarks in";
         strBody += "\n " + fle.getAbsolutePath();
         GfrOptionPaneAbs.s_showDialogInfo(frmOwner, strBody);
      }
      catch (Exception exc)
      {
         exc.printStackTrace();

         String strLog = exc.getMessage();
         ActPrfPrjExportOgcEclAbs._LOGGER_.warning(strLog);

         String strMessage = "Failed to save placemarks";
         strMessage += "\n\n " + GfrResBundleLang.s_getInstance().getValue("word.details") + ":\n";
         strMessage += strLog;

         GfrOptionPaneAbs.s_showDialogError(frmOwner, strMessage);
      }
   }

   private void _exportToCsvPnts_(JFrame frmOwner)
   {
      try
      {
         String[] strsValueNameCandidateSorted = GfrWrpBasTopSynEclPnts.getInstance().getSortedNamesTlo();

         GfrDlgSelectObjects dlg = new GfrDlgSelectObjects(
                 frmOwner,
                 "Select points",
                 strsValueNameCandidateSorted);

         // !!!!!!!!!!!!!!!!!!!!!!!
         dlg.init();

         dlg.setVisible(true);

         boolean blnCancelled = dlg.isCancelled();
         String[] strsValueNameSelected = null;

         if (!blnCancelled)
         {
            strsValueNameSelected = dlg.getResult();
         }

         dlg.destroy();
         dlg = null;

         if (blnCancelled)
            return;

         String[] strsIdSource = new String[strsValueNameSelected.length];

         for (int i = 0; i < strsValueNameSelected.length; i++)
         {
            strsIdSource[i] = GfrWrpBasSynObjNameTloEclPnt.getInstance().getId(strsValueNameSelected[i]);
         }

         //-- GfrUtilFileChooserVol
         File fle = GfrUtilFileChooserVol.s_chooseFileSave(frmOwner,
                 "Save points to CSV file", "points", ".csv");

         if (fle == null)
            return;

         FileWriter fwr = new FileWriter(fle);

         // header
         fwr.append(GfrIoSheetColNamXlosNamAbs.STR_NAME);
         fwr.append(',');
         fwr.append(GfrIoSheetColNamTlosPointLatLonAbs.STR_LONGITUDE);
         fwr.append(',');
         fwr.append(GfrIoSheetColNamTlosPointLatLonAbs.STR_LATITUDE);
         fwr.append('\n');


         // ---
         for (int i = 0; i < strsIdSource.length; i++)
         {

            // values
            String strName = GfrWrpBasSynObjNameTloEclPnt.getInstance().getName(strsIdSource[i]);
            Position pos = GfrWrpBasSynObjNameTloEclPnt.getInstance().getGeometry(strsIdSource[i]);

            double[] dblsLatLon = pos.asDegreesArray();
            double dblLon = dblsLatLon[1];
            double dblLat = dblsLatLon[0];
            fwr.append(strName);
            fwr.append(',');
            fwr.append(String.valueOf(dblLon));
            fwr.append(',');
            fwr.append(String.valueOf(dblLat));
            fwr.append('\n');
         }

         // close
         fwr.flush();
         fwr.close();

         String strBody = "Successfully saved placemarks in";
         strBody += "\n " + fle.getAbsolutePath();
         GfrOptionPaneAbs.s_showDialogInfo(frmOwner, strBody);
      }
      catch (Exception exc)
      {
         exc.printStackTrace();

         String strLog = exc.getMessage();
         ActPrfPrjExportOgcEclAbs._LOGGER_.warning(strLog);

         String strMessage = "Failed to save placemarks";
         strMessage += "\n\n " + GfrResBundleLang.s_getInstance().getValue("word.details") + ":\n";
         strMessage += strLog;

         GfrOptionPaneAbs.s_showDialogError(frmOwner, strMessage);
      }
   }

   private void _exportToExcPlcs_(JFrame frmOwner)
   {
      try
      {
         String[] strsValueNameCandidateSorted = GfrWrpBasTopSynEclPlcs.getInstance().getSortedNamesTlo();

         GfrDlgSelectObjects dlg = new GfrDlgSelectObjects(
                 frmOwner,
                 "Select placemarks",
                 strsValueNameCandidateSorted);

         dlg.init();

         dlg.setVisible(true);

         boolean blnCancelled = dlg.isCancelled();
         String[] strsValueNameSelected = null;

         if (!blnCancelled)
         {
            strsValueNameSelected = dlg.getResult();
         }

         dlg.destroy();
         dlg = null;

         if (blnCancelled)
            return;

         String[] strsIdSource = new String[strsValueNameSelected.length];

         for (int i = 0; i < strsValueNameSelected.length; i++)
         {
            strsIdSource[i] = GfrWrpBasSynObjNameTloEclPlc.getInstance().getId(strsValueNameSelected[i]);
         }


         //-- GfrUtilFileChooserVol
         File fle = GfrUtilFileChooserVol.s_chooseFileSave(frmOwner,
                 "Save placemarks to EXCEL file", "placemarks", ".xls");

         if (fle == null)
            return;


         // ---
         List<String> headerRow = new ArrayList<String>();
         headerRow.add(GfrIoSheetColNamXlosNamAbs.STR_NAME);
         headerRow.add(GfrIoSheetColNamTlosPointLatLonAbs.STR_LONGITUDE);
         headerRow.add(GfrIoSheetColNamTlosPointLatLonAbs.STR_LATITUDE);


         List<List> recordToAdd = new ArrayList<List>();
         recordToAdd.add(headerRow);

         for (int i = 0; i < strsIdSource.length; i++)
         {
            String strName = GfrWrpBasSynObjNameTloEclPlc.getInstance().getName(strsIdSource[i]);
            Position pos = GfrWrpBasSynObjNameTloEclPlc.getInstance().getGeometry(strsIdSource[i]);

            double[] dblsLatLon = pos.asDegreesArray();
            double dblLon = dblsLatLon[1];
            double dblLat = dblsLatLon[0];

            List<String> firstRow = new ArrayList<String>();
            firstRow.add(strName);
            firstRow.add(String.valueOf(dblLon));
            firstRow.add(String.valueOf(dblLat));

            // ---
            recordToAdd.add(firstRow);
         }

         GfrUtilFileExcel.s_doJob(fle, recordToAdd);

         String strBody = "Successfully saved placemarks in";
         strBody += "\n " + fle.getAbsolutePath();
         GfrOptionPaneAbs.s_showDialogInfo(frmOwner, strBody);
      }
      catch (Exception exc)
      {
         exc.printStackTrace();

         String strLog = exc.getMessage();
         ActPrfPrjExportOgcEclAbs._LOGGER_.warning(strLog);

         String strMessage = "Failed to save placemarks";
         strMessage += "\n\n " + GfrResBundleLang.s_getInstance().getValue("word.details") + "\n";
         strMessage += strLog;

         GfrOptionPaneAbs.s_showDialogError(frmOwner, strMessage);
      }
   }

   private void _exportToExcPnts_(JFrame frmOwner)
   {
      try
      {
         String[] strsValueNameCandidateSorted = GfrWrpBasTopSynEclPnts.getInstance().getSortedNamesTlo();

         GfrDlgSelectObjects dlg = new GfrDlgSelectObjects(
                 frmOwner,
                 "Select points",
                 strsValueNameCandidateSorted);

         dlg.init();

         dlg.setVisible(true);

         boolean blnCancelled = dlg.isCancelled();
         String[] strsValueNameSelected = null;

         if (!blnCancelled)
         {
            strsValueNameSelected = dlg.getResult();
         }

         dlg.destroy();
         dlg = null;

         if (blnCancelled)
            return;

         String[] strsIdSource = new String[strsValueNameSelected.length];

         for (int i = 0; i < strsValueNameSelected.length; i++)
         {
            strsIdSource[i] = GfrWrpBasSynObjNameTloEclPnt.getInstance().getId(strsValueNameSelected[i]);
         }


         //-- GfrUtilFileChooserVol
         File fle = GfrUtilFileChooserVol.s_chooseFileSave(frmOwner,
                 "Save points to EXCEL file", "points", ".xls");

         if (fle == null)
            return;


         // ---
         List<String> headerRow = new ArrayList<String>();
         headerRow.add(GfrIoSheetColNamXlosNamAbs.STR_NAME);
         headerRow.add(GfrIoSheetColNamTlosPointLatLonAbs.STR_LONGITUDE);
         headerRow.add(GfrIoSheetColNamTlosPointLatLonAbs.STR_LATITUDE);


         List<List> recordToAdd = new ArrayList<List>();
         recordToAdd.add(headerRow);

         for (int i = 0; i < strsIdSource.length; i++)
         {
            String strName = GfrWrpBasSynObjNameTloEclPnt.getInstance().getName(strsIdSource[i]);
            Position pos = GfrWrpBasSynObjNameTloEclPnt.getInstance().getGeometry(strsIdSource[i]);

            double[] dblsLatLon = pos.asDegreesArray();
            double dblLon = dblsLatLon[1];
            double dblLat = dblsLatLon[0];

            List<String> firstRow = new ArrayList<String>();
            firstRow.add(strName);
            firstRow.add(String.valueOf(dblLon));
            firstRow.add(String.valueOf(dblLat));

            // ---
            recordToAdd.add(firstRow);
         }

         GfrUtilFileExcel.s_doJob(fle, recordToAdd);

         String strBody = "Successfully saved placemarks in";
         strBody += "\n " + fle.getAbsolutePath();
         GfrOptionPaneAbs.s_showDialogInfo(frmOwner, strBody);
      }
      catch (Exception exc)
      {
         exc.printStackTrace();

         String strLog = exc.getMessage();
         ActPrfPrjExportOgcEclAbs._LOGGER_.warning(strLog);

         String strMessage = "Failed to save placemarks";
         strMessage += "\n\n " + GfrResBundleLang.s_getInstance().getValue("word.details") + "\n";
         strMessage += strLog;

         GfrOptionPaneAbs.s_showDialogError(frmOwner, strMessage);
      }
   }

   private void _exportToExcPths_(JFrame frmOwner)
   {
      try
      {
         String[] strsValueNameCandidateSorted = GfrWrpBasTopSynEclPths.getInstance().getSortedNamesTlo();

         GfrDlgSelectObjects dlg = new GfrDlgSelectObjects(
                 frmOwner,
                 "Select paths",
                 strsValueNameCandidateSorted);

         dlg.init();

         dlg.setVisible(true);

         boolean blnCancelled = dlg.isCancelled();
         String[] strsValueNameSelected = null;

         if (!blnCancelled)
         {
            strsValueNameSelected = dlg.getResult();
         }

         dlg.destroy();
         dlg = null;

         if (blnCancelled)
            return;

         String[] strsIdSource = new String[strsValueNameSelected.length];

         for (int i = 0; i < strsValueNameSelected.length; i++)
         {
            strsIdSource[i] = GfrWrpBasSynObjNameTloEclPth.getInstance().getId(strsValueNameSelected[i]);
         }


         //-- GfrUtilFileChooserVol
         File fle = GfrUtilFileChooserVol.s_chooseFileSave(frmOwner,
                 "Save paths to EXCEL file", "paths", ".xls");

         if (fle == null)
            return;


         // ---
         List<String> headerRow = new ArrayList<String>();
         headerRow.add(GfrIoSheetColNamXlosNamAbs.STR_NAME);
         headerRow.add(GfrIoSheetColNamTlosPointGeometryAbs.STR_GEOMETRY);


         List<List> recordToAdd = new ArrayList<List>();
         recordToAdd.add(headerRow);

         for (int i = 0; i < strsIdSource.length; i++)
         {
            String strName = GfrWrpBasSynObjNameTloEclPth.getInstance().getName(strsIdSource[i]);
            ArrayList<Point2D.Double> alt = GfrWrpBasSynObjNameTloEclPth.getInstance().getGeometryAsArrayList(strsIdSource[i]);


            List<String> firstRow = new ArrayList<String>();
            firstRow.add(strName);
            firstRow.add(GfrAltPointDouble.s_toString(alt, "|"));

            // ---
            recordToAdd.add(firstRow);
         }

         GfrUtilFileExcel.s_doJob(fle, recordToAdd);

         String strBody = "Successfully saved paths in";
         strBody += "\n " + fle.getAbsolutePath();
         GfrOptionPaneAbs.s_showDialogInfo(frmOwner, strBody);
      }
      catch (Exception exc)
      {
         exc.printStackTrace();

         String strLog = exc.getMessage();
         ActPrfPrjExportOgcEclAbs._LOGGER_.warning(strLog);

         String strMessage = "Failed to save paths";
         strMessage += "\n\n " + GfrResBundleLang.s_getInstance().getValue("word.details") + "\n";
         strMessage += strLog;

         GfrOptionPaneAbs.s_showDialogError(frmOwner, strMessage);
      }
   }

   private void _exportToCsvPths_(JFrame frmOwner)
   {
      try
      {
         String[] strsValueNameCandidateSorted = GfrWrpBasTopSynEclPths.getInstance().getSortedNamesTlo();

         GfrDlgSelectObjects dlg = new GfrDlgSelectObjects(
                 frmOwner,
                 "Select paths",
                 strsValueNameCandidateSorted);

         // !!!!!!!!!!!!!!!!!!!!!!!
         dlg.init();

         dlg.setVisible(true);

         boolean blnCancelled = dlg.isCancelled();
         String[] strsValueNameSelected = null;

         if (!blnCancelled)
         {
            strsValueNameSelected = dlg.getResult();
         }

         dlg.destroy();
         dlg = null;

         if (blnCancelled)
            return;

         String[] strsIdSource = new String[strsValueNameSelected.length];

         for (int i = 0; i < strsValueNameSelected.length; i++)
         {
            strsIdSource[i] = GfrWrpBasSynObjNameTloEclPth.getInstance().getId(strsValueNameSelected[i]);
         }

         //-- GfrUtilFileChooserVol
         File fle = GfrUtilFileChooserVol.s_chooseFileSave(frmOwner,
                 "Save paths to CSV file", "paths", ".csv");

         if (fle == null)
            return;

         FileWriter fwr = new FileWriter(fle);

         // header
         fwr.append(GfrIoSheetColNamXlosNamAbs.STR_NAME);
         fwr.append(',');
         fwr.append(GfrIoSheetColNamTlosPointGeometryAbs.STR_GEOMETRY);
         fwr.append('\n');


         // ---
         for (int i = 0; i < strsIdSource.length; i++)
         {

            // values
            String strName = GfrWrpBasSynObjNameTloEclPth.getInstance().getName(strsIdSource[i]);
            ArrayList<Point2D.Double> alt = GfrWrpBasSynObjNameTloEclPth.getInstance().getGeometryAsArrayList(strsIdSource[i]);

            fwr.append(strName);
            fwr.append(',');
            fwr.append(GfrAltPointDouble.s_toString(alt, "|"));
            fwr.append('\n');
         }

         // close
         fwr.flush();
         fwr.close();

         String strBody = "Successfully saved paths in";
         strBody += "\n " + fle.getAbsolutePath();
         GfrOptionPaneAbs.s_showDialogInfo(frmOwner, strBody);
      }
      catch (Exception exc)
      {
         exc.printStackTrace();

         String strLog = exc.getMessage();
         ActPrfPrjExportOgcEclAbs._LOGGER_.warning(strLog);

         String strMessage = "Failed to save paths";
         strMessage += "\n\n " + GfrResBundleLang.s_getInstance().getValue("word.details") + ":\n";
         strMessage += strLog;

         GfrOptionPaneAbs.s_showDialogError(frmOwner, strMessage);
      }
   }

   private void _exportToExcAres_(JFrame frmOwner)
   {
      try
      {
         String[] strsValueNameCandidateSorted = GfrWrpBasTopSynEclAres.getInstance().getSortedNamesTlo();

         GfrDlgSelectObjects dlg = new GfrDlgSelectObjects(
                 frmOwner,
                 "Select areas",
                 strsValueNameCandidateSorted);

         dlg.init();

         dlg.setVisible(true);

         boolean blnCancelled = dlg.isCancelled();
         String[] strsValueNameSelected = null;

         if (!blnCancelled)
         {
            strsValueNameSelected = dlg.getResult();
         }

         dlg.destroy();
         dlg = null;

         if (blnCancelled)
            return;

         String[] strsIdSource = new String[strsValueNameSelected.length];

         for (int i = 0; i < strsValueNameSelected.length; i++)
         {
            strsIdSource[i] = GfrWrpBasSynObjNameTloEclAre.getInstance().getId(strsValueNameSelected[i]);
         }


         //-- GfrUtilFileChooserVol
         File fle = GfrUtilFileChooserVol.s_chooseFileSave(frmOwner,
                 "Save areas to EXCEL file", "areas", ".xls");

         if (fle == null)
            return;


         // ---
         List<String> headerRow = new ArrayList<String>();
         headerRow.add(GfrIoSheetColNamXlosNamAbs.STR_NAME);
         headerRow.add(GfrIoSheetColNamTlosPointGeometryAbs.STR_GEOMETRY);


         List<List> recordToAdd = new ArrayList<List>();
         recordToAdd.add(headerRow);

         for (int i = 0; i < strsIdSource.length; i++)
         {
            String strName = GfrWrpBasSynObjNameTloEclAre.getInstance().getName(strsIdSource[i]);
            ArrayList<Point2D.Double> alt = GfrWrpBasSynObjNameTloEclAre.getInstance().getGeometryAsArrayList(strsIdSource[i]);

            List<String> firstRow = new ArrayList<String>();
            firstRow.add(strName);
            firstRow.add(GfrAltPointDouble.s_toString(alt, "|"));

            // ---
            recordToAdd.add(firstRow);
         }

         GfrUtilFileExcel.s_doJob(fle, recordToAdd);

         String strBody = "Successfully saved areas in";
         strBody += "\n " + fle.getAbsolutePath();
         GfrOptionPaneAbs.s_showDialogInfo(frmOwner, strBody);
      }
      catch (Exception exc)
      {
         exc.printStackTrace();

         String strLog = exc.getMessage();
         ActPrfPrjExportOgcEclAbs._LOGGER_.warning(strLog);

         String strMessage = "Failed to save areas";
         strMessage += "\n\n " + GfrResBundleLang.s_getInstance().getValue("word.details") + "\n";
         strMessage += strLog;

         GfrOptionPaneAbs.s_showDialogError(frmOwner, strMessage);
      }
   }

   private void _exportToCsvAres_(JFrame frmOwner)
   {
      try
      {
         String[] strsValueNameCandidateSorted = GfrWrpBasTopSynEclAres.getInstance().getSortedNamesTlo();

         GfrDlgSelectObjects dlg = new GfrDlgSelectObjects(
                 frmOwner,
                 "Select areas",
                 strsValueNameCandidateSorted);

         // !!!!!!!!!!!!!!!!!!!!!!!
         dlg.init();

         dlg.setVisible(true);

         boolean blnCancelled = dlg.isCancelled();
         String[] strsValueNameSelected = null;

         if (!blnCancelled)
         {
            strsValueNameSelected = dlg.getResult();
         }

         dlg.destroy();
         dlg = null;

         if (blnCancelled)
            return;

         String[] strsIdSource = new String[strsValueNameSelected.length];

         for (int i = 0; i < strsValueNameSelected.length; i++)
         {
            strsIdSource[i] = GfrWrpBasSynObjNameTloEclAre.getInstance().getId(strsValueNameSelected[i]);
         }

         //-- GfrUtilFileChooserVol
         File fle = GfrUtilFileChooserVol.s_chooseFileSave(frmOwner,
                 "Save areas to CSV file", "areas", ".csv");

         if (fle == null)
            return;

         FileWriter fwr = new FileWriter(fle);

         // header
         fwr.append(GfrIoSheetColNamXlosNamAbs.STR_NAME);
         fwr.append(',');
         fwr.append(GfrIoSheetColNamTlosPointGeometryAbs.STR_GEOMETRY);
         fwr.append('\n');


         // ---
         for (int i = 0; i < strsIdSource.length; i++)
         {

            // values
            String strName = GfrWrpBasSynObjNameTloEclAre.getInstance().getName(strsIdSource[i]);
            ArrayList<Point2D.Double> alt = GfrWrpBasSynObjNameTloEclAre.getInstance().getGeometryAsArrayList(strsIdSource[i]);

            fwr.append(strName);
            fwr.append(',');
            fwr.append(GfrAltPointDouble.s_toString(alt, "|"));
            fwr.append('\n');
         }

         // close
         fwr.flush();
         fwr.close();

         String strBody = "Successfully saved areas in";
         strBody += "\n " + fle.getAbsolutePath();
         GfrOptionPaneAbs.s_showDialogInfo(frmOwner, strBody);
      }
      catch (Exception exc)
      {
         exc.printStackTrace();

         String strLog = exc.getMessage();
         ActPrfPrjExportOgcEclAbs._LOGGER_.warning(strLog);

         String strMessage = "Failed to save areas";
         strMessage += "\n\n " + GfrResBundleLang.s_getInstance().getValue("word.details") + ":\n";
         strMessage += strLog;

         GfrOptionPaneAbs.s_showDialogError(frmOwner, strMessage);
      }
   }

   private void _exportToExcSpns_(JFrame frmOwner)
   {
      try
      {
         String[] strsValueNameCandidateSorted = GfrWrpBasTopSynEclSpns.getInstance().getSortedNamesTlo();

         GfrDlgSelectObjects dlg = new GfrDlgSelectObjects(
                 frmOwner,
                 "Select pointsets",
                 strsValueNameCandidateSorted);

         dlg.init();

         dlg.setVisible(true);

         boolean blnCancelled = dlg.isCancelled();
         String[] strsValueNameSelected = null;

         if (!blnCancelled)
         {
            strsValueNameSelected = dlg.getResult();
         }

         dlg.destroy();
         dlg = null;

         if (blnCancelled)
            return;

         String[] strsIdSource = new String[strsValueNameSelected.length];

         for (int i = 0; i < strsValueNameSelected.length; i++)
         {
            strsIdSource[i] = GfrWrpBasSynObjNameTloEclSpn.getInstance().getId(strsValueNameSelected[i]);
         }


         //-- GfrUtilFileChooserVol
         File fle = GfrUtilFileChooserVol.s_chooseFileSave(frmOwner,
                 "Save pointsets to EXCEL file", "pointsets", ".xls");

         if (fle == null)
            return;


         // ---
         List<String> headerRow = new ArrayList<String>();
         headerRow.add(GfrIoSheetColNamXlosNamAbs.STR_NAME);
         headerRow.add(GfrIoSheetColNamTlosPointGeometryAbs.STR_GEOMETRY);

         List<List> recordToAdd = new ArrayList<List>();
         recordToAdd.add(headerRow);

         for (int i = 0; i < strsIdSource.length; i++)
         {
            String strName = GfrWrpBasSynObjNameTloEclSpn.getInstance().getName(strsIdSource[i]);
            ArrayList<Point2D.Double> alt = GfrWrpBasSynObjNameTloEclSpn.getInstance().getGeometryAsArrayList(strsIdSource[i]);

            List<String> firstRow = new ArrayList<String>();
            firstRow.add(strName);
            firstRow.add(GfrAltPointDouble.s_toString(alt, "|"));

            // ---
            recordToAdd.add(firstRow);
         }

         GfrUtilFileExcel.s_doJob(fle, recordToAdd);

         String strBody = "Successfully saved pointsets in";
         strBody += "\n " + fle.getAbsolutePath();
         GfrOptionPaneAbs.s_showDialogInfo(frmOwner, strBody);
      }
      catch (Exception exc)
      {
         exc.printStackTrace();

         String strLog = exc.getMessage();
         ActPrfPrjExportOgcEclAbs._LOGGER_.warning(strLog);

         String strMessage = "Failed to save pointsets";
         strMessage += "\n\n " + GfrResBundleLang.s_getInstance().getValue("word.details") + "\n";
         strMessage += strLog;

         GfrOptionPaneAbs.s_showDialogError(frmOwner, strMessage);
      }
   }

   private void _exportToCsvSpns_(JFrame frmOwner)
   {
      try
      {
         String[] strsValueNameCandidateSorted = GfrWrpBasTopSynEclSpns.getInstance().getSortedNamesTlo();

         GfrDlgSelectObjects dlg = new GfrDlgSelectObjects(
                 frmOwner,
                 "Select pointsets",
                 strsValueNameCandidateSorted);

         // !!!!!!!!!!!!!!!!!!!!!!!
         dlg.init();

         dlg.setVisible(true);

         boolean blnCancelled = dlg.isCancelled();
         String[] strsValueNameSelected = null;

         if (!blnCancelled)
         {
            strsValueNameSelected = dlg.getResult();
         }

         dlg.destroy();
         dlg = null;

         if (blnCancelled)
            return;

         String[] strsIdSource = new String[strsValueNameSelected.length];

         for (int i = 0; i < strsValueNameSelected.length; i++)
         {
            strsIdSource[i] = GfrWrpBasSynObjNameTloEclSpn.getInstance().getId(strsValueNameSelected[i]);
         }

         //-- GfrUtilFileChooserVol
         File fle = GfrUtilFileChooserVol.s_chooseFileSave(frmOwner,
                 "Save pointsets to CSV file", "pointsets", ".csv");

         if (fle == null)
            return;

         FileWriter fwr = new FileWriter(fle);

         // header
         fwr.append(GfrIoSheetColNamXlosNamAbs.STR_NAME);
         fwr.append(',');
         fwr.append(GfrIoSheetColNamTlosPointGeometryAbs.STR_GEOMETRY);
         fwr.append('\n');


         // ---
         for (int i = 0; i < strsIdSource.length; i++)
         {

            // values
            String strName = GfrWrpBasSynObjNameTloEclSpn.getInstance().getName(strsIdSource[i]);
            ArrayList<Point2D.Double> alt = GfrWrpBasSynObjNameTloEclSpn.getInstance().getGeometryAsArrayList(strsIdSource[i]);

            fwr.append(strName);
            fwr.append(',');
            fwr.append(GfrAltPointDouble.s_toString(alt, "|"));
            fwr.append('\n');
         }

         // close
         fwr.flush();
         fwr.close();

         String strBody = "Successfully saved pointsets in";
         strBody += "\n " + fle.getAbsolutePath();
         GfrOptionPaneAbs.s_showDialogInfo(frmOwner, strBody);
      }
      catch (Exception exc)
      {
         exc.printStackTrace();

         String strLog = exc.getMessage();
         ActPrfPrjExportOgcEclAbs._LOGGER_.warning(strLog);

         String strMessage = "Failed to save pointsets";
         strMessage += "\n\n " + GfrResBundleLang.s_getInstance().getValue("word.details") + ":\n";
         strMessage += strLog;

         GfrOptionPaneAbs.s_showDialogError(frmOwner, strMessage);
      }
   }

   private void _exportToCsvPlc_(JFrame frmOwner, String strIdSource)
   {
      try
      {

         File fle = GfrUtilFileChooserVol.s_chooseFileSave(frmOwner,
                 "Save placemark to CSV file", "placemark", ".csv");

         if (fle == null)
            return;

         FileWriter fwr = new FileWriter(fle);

         // header
         fwr.append(GfrIoSheetColNamXlosNamAbs.STR_NAME);
         fwr.append(',');
         fwr.append(GfrIoSheetColNamTlosPointLatLonAbs.STR_LONGITUDE);
         fwr.append(',');
         fwr.append(GfrIoSheetColNamTlosPointLatLonAbs.STR_LATITUDE);
         fwr.append('\n');

         // values
         String strName = GfrWrpBasSynObjNameTloEclPlc.getInstance().getName(strIdSource);
         Position pos = GfrWrpBasSynObjNameTloEclPlc.getInstance().getGeometry(strIdSource);

         double[] dblsLatLon = pos.asDegreesArray();
         double dblLon = dblsLatLon[1];
         double dblLat = dblsLatLon[0];
         fwr.append(strName);
         fwr.append(',');
         fwr.append(String.valueOf(dblLon));
         fwr.append(',');
         fwr.append(String.valueOf(dblLat));
         fwr.append('\n');

         // close
         fwr.flush();
         fwr.close();

         String strBody = "Successfully saved " + strName;
         strBody += "\n in " + fle.getAbsolutePath();
         GfrOptionPaneAbs.s_showDialogInfo(frmOwner, strBody);
      }
      catch (Exception exc)
      {
         exc.printStackTrace();

         String strLog = exc.getMessage();
         ActPrfPrjExportOgcEclAbs._LOGGER_.warning(strLog);

         String strMessage = "Failed to save placemark";
         strMessage += "\n\n " + GfrResBundleLang.s_getInstance().getValue("word.details") + "\n";
         strMessage += strLog;

         GfrOptionPaneAbs.s_showDialogError(frmOwner, strMessage);
      }
   }

   private void _exportToCsvPnt_(JFrame frmOwner, String strIdSource)
   {
      try
      {

         File fle = GfrUtilFileChooserVol.s_chooseFileSave(frmOwner,
                 "Save point to CSV file", "points", ".csv");

         if (fle == null)
            return;

         FileWriter fwr = new FileWriter(fle);

         // header
         fwr.append(GfrIoSheetColNamXlosNamAbs.STR_NAME);
         fwr.append(',');
         fwr.append(GfrIoSheetColNamTlosPointLatLonAbs.STR_LONGITUDE);
         fwr.append(',');
         fwr.append(GfrIoSheetColNamTlosPointLatLonAbs.STR_LATITUDE);
         fwr.append('\n');

         // values
         String strName = GfrWrpBasSynObjNameTloEclPnt.getInstance().getName(strIdSource);
         Position pos = GfrWrpBasSynObjNameTloEclPnt.getInstance().getGeometry(strIdSource);

         double[] dblsLatLon = pos.asDegreesArray();
         double dblLon = dblsLatLon[1];
         double dblLat = dblsLatLon[0];
         fwr.append(strName);
         fwr.append(',');
         fwr.append(String.valueOf(dblLon));
         fwr.append(',');
         fwr.append(String.valueOf(dblLat));
         fwr.append('\n');

         // close
         fwr.flush();
         fwr.close();

         String strBody = "Successfully saved " + strName;
         strBody += "\n in " + fle.getAbsolutePath();
         GfrOptionPaneAbs.s_showDialogInfo(frmOwner, strBody);
      }
      catch (Exception exc)
      {
         exc.printStackTrace();

         String strLog = exc.getMessage();
         ActPrfPrjExportOgcEclAbs._LOGGER_.warning(strLog);

         String strMessage = "Failed to save placemark";
         strMessage += "\n\n " + GfrResBundleLang.s_getInstance().getValue("word.details") + "\n";
         strMessage += strLog;

         GfrOptionPaneAbs.s_showDialogError(frmOwner, strMessage);
      }
   }

   private void _exportToExcPlc_(JFrame frmOwner, String strIdSource)
   {
      try
      {
         File fle = GfrUtilFileChooserVol.s_chooseFileSave(frmOwner,
                 "Save placemark to EXCEL file", "placemark", ".xls");

         if (fle == null)
            return;


         // ---
         List<String> headerRow = new ArrayList<String>();
         headerRow.add(GfrIoSheetColNamXlosNamAbs.STR_NAME);
         headerRow.add(GfrIoSheetColNamTlosPointLatLonAbs.STR_LONGITUDE);
         headerRow.add(GfrIoSheetColNamTlosPointLatLonAbs.STR_LATITUDE);

         // ---
         String strName = GfrWrpBasSynObjNameTloEclPlc.getInstance().getName(strIdSource);
         Position pos = GfrWrpBasSynObjNameTloEclPlc.getInstance().getGeometry(strIdSource);

         double[] dblsLatLon = pos.asDegreesArray();
         double dblLon = dblsLatLon[1];
         double dblLat = dblsLatLon[0];

         List<String> firstRow = new ArrayList<String>();
         firstRow.add(strName);
         firstRow.add(String.valueOf(dblLon));
         firstRow.add(String.valueOf(dblLat));

         // ---
         List<List> recordToAdd = new ArrayList<List>();
         recordToAdd.add(headerRow);
         recordToAdd.add(firstRow);

         GfrUtilFileExcel.s_doJob(fle, recordToAdd);

         String strBody = "Successfully saved " + strName;
         strBody += "\n in " + fle.getAbsolutePath();
         GfrOptionPaneAbs.s_showDialogInfo(frmOwner, strBody);
      }
      catch (Exception exc)
      {
         exc.printStackTrace();

         String strLog = exc.getMessage();
         ActPrfPrjExportOgcEclAbs._LOGGER_.warning(strLog);

         String strMessage = "Failed to save placemark";
         strMessage += "\n\n " + GfrResBundleLang.s_getInstance().getValue("word.details") + "\n";
         strMessage += strLog;

         GfrOptionPaneAbs.s_showDialogError(frmOwner, strMessage);
      }
   }

   private void _exportToExcPnt_(JFrame frmOwner, String strIdSource)
   {
      try
      {
         File fle = GfrUtilFileChooserVol.s_chooseFileSave(frmOwner,
                 "Save point to EXCEL file", "point", ".xls");

         if (fle == null)
            return;


         // ---
         List<String> headerRow = new ArrayList<String>();
         headerRow.add(GfrIoSheetColNamXlosNamAbs.STR_NAME);
         headerRow.add(GfrIoSheetColNamTlosPointLatLonAbs.STR_LONGITUDE);
         headerRow.add(GfrIoSheetColNamTlosPointLatLonAbs.STR_LATITUDE);

         // ---
         String strName = GfrWrpBasSynObjNameTloEclPnt.getInstance().getName(strIdSource);
         Position pos = GfrWrpBasSynObjNameTloEclPnt.getInstance().getGeometry(strIdSource);

         double[] dblsLatLon = pos.asDegreesArray();
         double dblLon = dblsLatLon[1];
         double dblLat = dblsLatLon[0];

         List<String> firstRow = new ArrayList<String>();
         firstRow.add(strName);
         firstRow.add(String.valueOf(dblLon));
         firstRow.add(String.valueOf(dblLat));

         // ---
         List<List> recordToAdd = new ArrayList<List>();
         recordToAdd.add(headerRow);
         recordToAdd.add(firstRow);

         GfrUtilFileExcel.s_doJob(fle, recordToAdd);

         String strBody = "Successfully saved " + strName;
         strBody += "\n in " + fle.getAbsolutePath();
         GfrOptionPaneAbs.s_showDialogInfo(frmOwner, strBody);
      }
      catch (Exception exc)
      {
         exc.printStackTrace();

         String strLog = exc.getMessage();
         ActPrfPrjExportOgcEclAbs._LOGGER_.warning(strLog);

         String strMessage = "Failed to save placemark";
         strMessage += "\n\n " + GfrResBundleLang.s_getInstance().getValue("word.details") + "\n";
         strMessage += strLog;

         GfrOptionPaneAbs.s_showDialogError(frmOwner, strMessage);
      }
   }

   private void _imageGalleryTloEclToNewFolder_(
           JFrame frmOwner,
           GfrWrpBasDatObjNameTloEclAbs wrp,
           String strIdSource)
   {
      try
      {
         String strName = wrp.getName(strIdSource);


         GfrDlgAddFolderAbs dlg = new GfrDlgAddFolderNew(
                 frmOwner,
                 new String[0],
                 "image-gallery-");


         if (!dlg.init())
         {
            String str = "! dlg.init()";
            ActPrfPrjExportOgcEclAbs._LOGGER_.severe(str);
            throw new Exception(str);
         }

         dlg.setVisible(true);

         boolean blnCancelled = dlg.isCancelled();

         String strValue = null;

         if (!blnCancelled)
         {
            strValue = dlg.getValuePath();
         }

         dlg.destroy();
         dlg = null;

         if (blnCancelled)
            return;

         File fleFolderOut = new File(strValue);

         // ---
         if (!fleFolderOut.mkdir())
         {
            String strError = "Failed to create folder:" + "\n   " + fleFolderOut.getAbsolutePath();
            GfrOptionPaneAbs.s_showDialogError(frmOwner, strError);
            return;
         }


         // ---

         /*String[] strsLabel = wrp.getSortedNamesImage(strIdSource);
        
         String[] strsFileIn =
         wrp.getPathsAbsoluteImageFileSortedByName(strIdSource);*/


         String[] strsIdsImage =
                 wrp.getIdsImage(strIdSource);

         // ---
         String strPathAbsOutFolder = fleFolderOut.getAbsolutePath();

         //-- beg !!!! ATTN !!!!
         //-- unknown file format, once imported images are stored with .img extension
         //-- => gif? png? jpg?
         //-- MEMO : plugin extracts map to png file format

         //-- end !!!! ATTN !!!!

         //-- copy images
         for (String strIdImgCur : strsIdsImage)
         {
            String strPathInImgCur = wrp.getPathAbsoluteImageFile(strIdImgCur);

            String strNameImageCur = null;

            // ATTENTION: machine dependant, for now, just filtering for windows !!!!!!!!!!!!!!

            if (GfrUtlSystem.s_isWindows())
            {
               strNameImageCur = wrp.getNameImage(strIdImgCur);

               strNameImageCur = strNameImageCur.replace("\\", "_backslash_");
               strNameImageCur = strNameImageCur.replace("/", "_slash_");
               strNameImageCur = strNameImageCur.replace(":", "_colon_");
               strNameImageCur = strNameImageCur.replace("*", "_star_");
               strNameImageCur = strNameImageCur.replace("?", "_questionmark_");
               strNameImageCur = strNameImageCur.replace("\"", "_doublequotes_");
               strNameImageCur = strNameImageCur.replace("<", "_lower_");
               strNameImageCur = strNameImageCur.replace(">", "_upper_");
               strNameImageCur = strNameImageCur.replace("|", "_pipe_");
            }
            else
            {
               strNameImageCur = strIdImgCur;
            }

            //---

            String strPathOutImgCur = strPathAbsOutFolder;
            strPathOutImgCur += File.separator;
            strPathOutImgCur += strNameImageCur;

            String strExtension = wrp.getTypeExtensionImage(strIdImgCur);

            if (strExtension != null && strExtension.length() > 0)
               strPathOutImgCur += strExtension;

            File fleImageIn = new File(strPathInImgCur);
            File fleImageOut = new File(strPathOutImgCur);

            GfrUtilFile.s_copy(fleImageIn, fleImageOut);
         }

         boolean blnIsDesktopSupported = GfrUtilDesktop.s_isSupported();

         String strBody = "Successfully saved \"" + strName + "\" image gallery in\"";
         strBody += "\n   " + fleFolderOut.getAbsolutePath();

         if (blnIsDesktopSupported)
         {
            strBody += "\n\n";
            strBody += "View results?";

            if (!GfrOptionPaneAbs.s_showDialogConfirm(frmOwner, "Done : Export image gallery to folder", strBody))
               return;

            try
            {
               Desktop desktop = Desktop.getDesktop();
               desktop.open(fleFolderOut);
            }
            catch (Exception exc)
            {
               exc.printStackTrace();
               GfrOptionPaneAbs.s_showDialogError(frmOwner, "failed to launch default file manager");
            }

            return;
         }

         GfrOptionPaneAbs.s_showDialogInfo(frmOwner, strBody);
      }
      catch (Exception exc)
      {
         exc.printStackTrace();

         String strLog = exc.getMessage();
         ActPrfPrjExportOgcEclAbs._LOGGER_.warning(strLog);

         String strMessage = "Failed to export image gallery";
         strMessage += "\n\n " + GfrResBundleLang.s_getInstance().getValue("word.details") + "\n";
         strMessage += strLog;

         GfrOptionPaneAbs.s_showDialogError(frmOwner, strMessage);
      }
   }

   private void _imageGalleryTloEclToPdf_(
           JFrame frmOwner,
           GfrWrpBasDatObjNameTloEclAbs wrp,
           String strIdSource)
   {
      try
      {
         String strName = wrp.getName(strIdSource);

         File fleOut = GfrUtilFileChooserVol.s_chooseFileSave(frmOwner,
                 "Export image gallery to PDF file", strName, "." + GfrJavIoFileExtension.STR_PDF);

         if (fleOut == null)
            return;


         // ---

         String[] strsLabel = wrp.getSortedNamesImage(strIdSource);

         String[] strsFileIn =
                 wrp.getPathsAbsoluteImageFileSortedByName(strIdSource);

         // ---

         String strPathAbsOut = fleOut.getAbsolutePath();

         GfrPdfPhotoAlbumFromAbs pdfWriter = new GfrPdfPhotoAlbumFromFiles(strsFileIn,
                 strsLabel, strPathAbsOut);

         pdfWriter.execute();

         String strError = pdfWriter.getErrorMessage();

         if (strError != null)
         {
            GfrOptionPaneAbs.s_showDialogError(frmOwner, "Failed to export as PDF:" + "\n\n   " + strError);
            return;
         }

         boolean blnIsDesktopSupported = GfrUtilDesktop.s_isSupported();

         String strBody = "Successfully saved \"" + strName + "\" image gallery in\"";
         strBody += "\n   " + fleOut.getAbsolutePath();

         if (blnIsDesktopSupported)
         {
            strBody += "\n\n";
            strBody += "View results?";

            if (!GfrOptionPaneAbs.s_showDialogConfirm(frmOwner, "Done PDF image gallery", strBody))
               return;

            try
            {
               Desktop desktop = Desktop.getDesktop();
               desktop.open(fleOut);
            }
            catch (Exception exc)
            {
               exc.printStackTrace();
               GfrOptionPaneAbs.s_showDialogError(frmOwner, "failed to launch default PDF reader");
            }

            return;
         }

         GfrOptionPaneAbs.s_showDialogInfo(frmOwner, strBody);
      }
      catch (Exception exc)
      {
         exc.printStackTrace();

         String strLog = exc.getMessage();
         ActPrfPrjExportOgcEclAbs._LOGGER_.warning(strLog);

         String strMessage = "Failed to export image gallery";
         strMessage += "\n\n " + GfrResBundleLang.s_getInstance().getValue("word.details") + "\n";
         strMessage += strLog;

         GfrOptionPaneAbs.s_showDialogError(frmOwner, strMessage);
      }
   }

   private void _imageGalleryEclToPdfTempo_(
           final JFrame frmOwner,
           final GfrWrpBasDatObjNameTloEclAbs wrp,
           final String strIdSource)
   {
      Thread thr = new Thread(new Runnable()
      {

         @Override
         public void run()
         {
            _launchInThreadImagesReader_(frmOwner, wrp, strIdSource);
         }
      });

      thr.start();
   }

   private void _launchInThreadImagesReader_(
           JFrame frmOwner,
           GfrWrpBasDatObjNameTloEclAbs wrp,
           String strIdSource)
   {
      try
      {
         String[] strsLabel = wrp.getSortedNamesImage(strIdSource);

         String[] strsFileIn = wrp.getPathsAbsoluteImageFileSortedByName(strIdSource);

         // should be located in .sharpergeo's temp directory !!!!!!!!!!!!!!!!!!!!!!!!!!
         File fleOut = GfrUtilFile.s_createTempFile("imageGallery", "." + GfrJavIoFileExtension.STR_PDF);
 


         // ---

         String strPathAbsOut = fleOut.getAbsolutePath();

         GfrPdfPhotoAlbumFromAbs pdfWriter = new GfrPdfPhotoAlbumFromFiles(strsFileIn,
                 strsLabel, strPathAbsOut);

         pdfWriter.execute();

         String strError = pdfWriter.getErrorMessage();

         if (strError != null)
         {
            GfrOptionPaneAbs.s_showDialogError(frmOwner, "Failed to create PDF:" + "\n\n   " + strError);
            return;
         }

         boolean blnIsDesktopSupported = GfrUtilDesktop.s_isSupported();

         if (blnIsDesktopSupported)
         {
            try
            {
               Desktop desktop = Desktop.getDesktop();
               desktop.open(fleOut);
            }
            catch (Exception exc)
            {
               exc.printStackTrace();
               GfrOptionPaneAbs.s_showDialogError(frmOwner, "failed to launch default PDF reader");
            }

            return;
         }
      }
      catch (Exception exc)
      {
         exc.printStackTrace();

         String strLog = exc.getMessage();
         ActPrfPrjExportOgcEclAbs._LOGGER_.warning(strLog);

         String strMessage = "Failed to view image gallery";
         strMessage += "\n\n " + GfrResBundleLang.s_getInstance().getValue("word.details") + "\n";
         strMessage += strLog;

         GfrOptionPaneAbs.s_showDialogError(frmOwner, strMessage);
      }
   }
}
TOP

Related Classes of org.geoforge.appogcecl.actionperformer.ActPrfPrjExportOgcEclAbs

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.