├── .gitignore ├── LICENSE ├── README.md ├── build.xml ├── lib ├── iText-2.1.3.jar ├── jai_imageio.jar └── l2fprod-common-fontchooser.jar ├── mac ├── appbundler-1.0.jar ├── icon.icns ├── icon.png ├── icon.psd ├── icon32x32.png └── icon48x48.png ├── manifest.mf ├── nbproject ├── build-impl.xml ├── genfiles.properties ├── project.properties └── project.xml ├── src ├── Jama │ ├── CholeskyDecomposition.java │ ├── EigenvalueDecomposition.java │ ├── LUDecomposition.java │ ├── Matrix.java │ ├── QRDecomposition.java │ ├── SingularValueDecomposition.java │ └── util │ │ └── Maths.java ├── com │ └── fizzysoft │ │ └── sdu │ │ └── RecentDocumentsManager.java └── ika │ ├── app │ ├── Application.properties │ ├── ApplicationInfo.java │ └── Main.java │ ├── data │ ├── coastlines.dbf │ ├── coastlines.shp │ ├── coastlines.shx │ ├── earth_mask_1000x500.gif │ ├── earth_mask_144x72.gif │ └── projections.txt │ ├── geo │ ├── AbstractRaster.java │ ├── AdaptiveZoomGeoSet.java │ ├── FeatureProjector.java │ ├── FlexProjectorModel.java │ ├── FontSymbol.java │ ├── GeoBinaryGrid.java │ ├── GeoControlPoint.java │ ├── GeoGrid.java │ ├── GeoImage.java │ ├── GeoImagePyramid.java │ ├── GeoMap.java │ ├── GeoObject.java │ ├── GeoPath.java │ ├── GeoPathIterator.java │ ├── GeoPathModel.java │ ├── GeoPoint.java │ ├── GeoProjector.java │ ├── GeoRefGrid.java │ ├── GeoSet.java │ ├── GeoSetBroadcaster.java │ ├── GeoText.java │ ├── GeoTreeRoot.java │ ├── GridProjector.java │ ├── ImageProjector.java │ ├── LineProjector.java │ ├── MapEvent.java │ ├── MapEventListener.java │ ├── MapEventTrigger.java │ ├── PointSymbol.java │ ├── PolygonProjector.java │ ├── RasterProjector.java │ ├── RenderParams.java │ ├── RenderParamsProvider.java │ ├── ShapeProjector.java │ ├── Symbol.java │ ├── VectorSymbol.java │ ├── clipboard │ │ ├── GeoClipboard.java │ │ └── GeoTransferable.java │ └── grid │ │ ├── AccumulationFlowOperator.java │ │ ├── Contourer.java │ │ ├── Convolution5x5.java │ │ ├── GaussianPyramid.java │ │ ├── GridAbsoluteOperator.java │ │ ├── GridAdditionOperator.java │ │ ├── GridAspectNeighborCounterOperator.java │ │ ├── GridAspectOperator.java │ │ ├── GridAspectSobelOperator.java │ │ ├── GridAssignOperator.java │ │ ├── GridCannyOperator.java │ │ ├── GridChangeVoidOperator.java │ │ ├── GridCombineOperator.java │ │ ├── GridCopyOperator.java │ │ ├── GridCutterOperator.java │ │ ├── GridDitheringOperator.java │ │ ├── GridEdgeMarker.java │ │ ├── GridExponentiationOperator.java │ │ ├── GridExtractMaskOperator.java │ │ ├── GridFalllineOperator.java │ │ ├── GridFastFalllineOperator.java │ │ ├── GridGaussLowPassOperator.java │ │ ├── GridInvalidateOperator.java │ │ ├── GridInvertOperator.java │ │ ├── GridLaplaceOperator.java │ │ ├── GridLimitMinimumOperator.java │ │ ├── GridLinearEquationOperator.java │ │ ├── GridLowerQuartileOperator.java │ │ ├── GridMask.java │ │ ├── GridMaskAbove.java │ │ ├── GridMaskBelow.java │ │ ├── GridMaskRaster.java │ │ ├── GridMaximumCurvatureOperator.java │ │ ├── GridMeanOperator.java │ │ ├── GridMedianOperator.java │ │ ├── GridMinimumCurvatureOperator.java │ │ ├── GridMultiplyOperator.java │ │ ├── GridOperator.java │ │ ├── GridPercentileFilterOperator.java │ │ ├── GridPercentileOperator.java │ │ ├── GridPlanCurvatureOperator.java │ │ ├── GridProfileCurvatureOperator.java │ │ ├── GridRelativeElevationOperator.java │ │ ├── GridResamplingOperator.java │ │ ├── GridRoundOperator.java │ │ ├── GridScaleNegativeOperator.java │ │ ├── GridScaleOperator.java │ │ ├── GridScalePositiveOperator.java │ │ ├── GridScaleToRangeOperator.java │ │ ├── GridShadeOperator.java │ │ ├── GridSlopeLineOperator.java │ │ ├── GridSlopeOperator.java │ │ ├── GridSobelOperator.java │ │ ├── GridThresholdOperator.java │ │ ├── GridToImageOperator.java │ │ ├── GridTransposeOperator.java │ │ ├── GridUpperQuartileOperator.java │ │ ├── HalveGrid.java │ │ ├── ImageToGridOperator.java │ │ ├── Interpolator.java │ │ ├── LaplacianPyramid.java │ │ └── ThreadedGridOperator.java │ ├── geoexport │ ├── DXFExporter.java │ ├── ESRIASCIIGridExporter.java │ ├── ESRIASCIIGridWriter.java │ ├── GeoExporter.java │ ├── GeoSetExporter.java │ ├── IllustratorExporter.java │ ├── ImageExporter.java │ ├── JPEGExporter.java │ ├── OBJGridWriter.java │ ├── PDFExporter.java │ ├── PNGExporter.java │ ├── RasterImageExporter.java │ ├── SVGExporter.java │ ├── ShapeExporter.java │ ├── ShapeGeometryExporter.java │ ├── UngenerateExporter.java │ ├── VectorGraphicsExporter.java │ ├── WMFExporter.java │ └── WorldFileExporter.java │ ├── geoimport │ ├── ASCIIPointImporter.java │ ├── DataReceiver.java │ ├── EsriASCIIGridReader.java │ ├── GeoImporter.java │ ├── GridHeaderImporter.java │ ├── ImageImporter.java │ ├── ImageImporterProgressAdaptor.java │ ├── MapDataReceiver.java │ ├── MapMakerImporter.java │ ├── OldImageImporter.java │ ├── ShapeGeometryImporter.java │ ├── ShapeImporter.java │ ├── SynchroneDataReceiver.java │ ├── UngenerateImporter.java │ ├── WorldFileImporter.java │ ├── ZippedShapeImporter.java │ └── geoimport.properties │ ├── gui │ ├── BorderedDropTarget.java │ ├── CharsetSelectionDialog.java │ ├── CheckBoxCellRenderer.java │ ├── ColorButton.java │ ├── CoordinateInfoPanel.form │ ├── CoordinateInfoPanel.java │ ├── CoordinatesInfoPanel.java │ ├── CreationToolBar.java │ ├── CurvesManager.java │ ├── DeformPanel.form │ ├── DeformPanel.java │ ├── DegreesInfoPanel.form │ ├── DegreesInfoPanel.java │ ├── DistortionProfilesManager.java │ ├── DnDListModel.java │ ├── DocumentSizeFilter.java │ ├── DraggableList.java │ ├── FlexProjectorPreferencesPanel.form │ ├── FlexProjectorPreferencesPanel.java │ ├── FlexProjectorWindow.form │ ├── FlexProjectorWindow.java │ ├── FlexUndoManager.java │ ├── GUIUtil.java │ ├── GeoExportGUI.java │ ├── GeoInspectorPanel.form │ ├── GeoInspectorPanel.java │ ├── GradationGraph.java │ ├── ImageDisplayer.java │ ├── ImageReaderProgressDialog.form │ ├── ImageReaderProgressDialog.java │ ├── LineAppearancePanel.form │ ├── LineAppearancePanel.java │ ├── ListDialog.form │ ├── ListDialog.java │ ├── MacWindowsManager.java │ ├── MainWindow.java │ ├── MapComponent.java │ ├── MapComponentBeanInfo.java │ ├── MapDropTarget.java │ ├── MapEventHandler.java │ ├── MapUndoManager.java │ ├── MemoryUsagePanel.form │ ├── MemoryUsagePanel.java │ ├── MenuToggleButton.java │ ├── MenuUtils.java │ ├── MovePanel.form │ ├── MovePanel.java │ ├── NumberField.java │ ├── PageFormat.java │ ├── PageFormatChangeListener.java │ ├── PageFormatDialog.form │ ├── PageFormatDialog.java │ ├── PageFormatPanel.form │ ├── PageFormatPanel.java │ ├── PreferencesDialog.form │ ├── PreferencesDialog.java │ ├── PreferencesPanel.java │ ├── ProgramInfoPanel.form │ ├── ProgramInfoPanel.java │ ├── ProgressIndicator.java │ ├── ProgressPanel.form │ ├── ProgressPanel.java │ ├── ProjDistortionTable.java │ ├── ProjectionBrewerPanel.form │ ├── ProjectionBrewerPanel.java │ ├── ProjectionPanel.form │ ├── ProjectionPanel.java │ ├── QPanel.form │ ├── QPanel.java │ ├── SaveFilePanel.form │ ├── SaveFilePanel.java │ ├── ScaleChangeHandler.java │ ├── ScaleLabel.java │ ├── ScalePanel.form │ ├── ScalePanel.java │ ├── SelectionBox.java │ ├── SimplePageFormatDialog.form │ ├── SimplePageFormatDialog.java │ ├── SimplePageFormatPanel.form │ ├── SimplePageFormatPanel.java │ ├── SliderUtils.java │ ├── SwingWorkerWithProgressIndicator.java │ ├── TableColumnResizer.java │ ├── ToggleSelectionModel.java │ ├── TransparentMacPanel.java │ ├── VectorSymbolPanel.form │ └── VectorSymbolPanel.java │ ├── icons │ ├── Action.png │ ├── Arrow16x16.gif │ ├── Black16x16.gif │ ├── Box16x16.gif │ ├── Circle16x16.png │ ├── ClosedHand16x16.gif │ ├── ClosedHand32x32.gif │ ├── Hand16x16.gif │ ├── Hand32x32.gif │ ├── Line16x16.gif │ ├── MovePoint16x16.gif │ ├── MovePoint32x32.gif │ ├── Pen16x16.gif │ ├── Pen32x32.gif │ ├── Rotate32x32.png │ ├── Ruler16x16.gif │ ├── ScaleAsc32x32.png │ ├── ScaleDes32x32.png │ ├── ScaleH32x32.png │ ├── ScaleV32x32.png │ ├── SelectPoints16x16.gif │ ├── SelectPoints32x32.gif │ ├── SetPoint16x16.gif │ ├── SetPoint32x32.gif │ ├── ShowAll16x16.gif │ ├── ShowAll20x14.png │ ├── Text16x16.gif │ ├── ZoomIn16x16.gif │ ├── ZoomIn32x32.gif │ ├── ZoomOut16x16.gif │ ├── ZoomOut32x32.gif │ ├── curve_linear.png │ ├── curve_peak.png │ ├── curve_round.png │ ├── line1.gif │ ├── line2.gif │ ├── line3.gif │ ├── line4.gif │ ├── line5.gif │ ├── logo128x128.png │ ├── logo64x64.png │ ├── point1.gif │ ├── point2.gif │ ├── point3.gif │ ├── point4.gif │ ├── point5.gif │ ├── point6.gif │ └── text.png │ ├── map │ └── tools │ │ ├── CombinableTool.java │ │ ├── CombinedTool.java │ │ ├── DoubleBufferedTool.java │ │ ├── MapTool.java │ │ ├── MapToolMouseMotionListener.java │ │ ├── MeasureTool.java │ │ ├── MeasureToolListener.java │ │ ├── MoverTool.java │ │ ├── PanTool.java │ │ ├── PointSetterTool.java │ │ ├── PolygonTool.java │ │ ├── PolygonToolBase.java │ │ ├── RectangleTool.java │ │ ├── RotateScaleMoveSelectionTool.java │ │ ├── RotateTool.java │ │ ├── ScaleMoveSelectionTool.java │ │ ├── ScaleTool.java │ │ ├── SelectionEditingTool.java │ │ ├── SelectionTool.java │ │ ├── SingleSelectionPointSetterTool.java │ │ ├── ZoomInTool.java │ │ └── ZoomOutTool.java │ ├── proj │ ├── AbstractMixerProjection.java │ ├── BlendedProjection.java │ ├── DesignProjection.java │ ├── DistortionComparator.java │ ├── FlexMixProjection.java │ ├── FlexProjection.java │ ├── FlexProjectionModel.java │ ├── LatitudeMixerProjection.java │ ├── MeanProjection.java │ ├── ProjectionDerivatives.java │ ├── ProjectionDistortionParameters.java │ ├── ProjectionFactors.java │ ├── ProjectionsManager.java │ ├── QModel.java │ ├── SerializableProjection.java │ └── TableFiller.java │ ├── table │ ├── DBFExporter.java │ ├── DBFImporter.java │ ├── DBFShapeImporter.java │ ├── DisplayableTableColumn.java │ ├── Table.java │ ├── TableExporter.java │ ├── TableImporter.java │ ├── TableLink.java │ ├── TableLinkExporter.java │ └── TableLinkImporter.java │ ├── transformation │ ├── MultiquadraticInterpolation.java │ ├── Transformation.java │ ├── TransformationAffine5.java │ ├── TransformationAffine6.java │ ├── TransformationHelmert.java │ ├── TransformationIdentity.java │ ├── TransformationRobustHelmert.java │ ├── TransformationWeightedHelmert.java │ └── robustestimator │ │ ├── HampelEstimator.java │ │ ├── HuberEstimator.java │ │ ├── RobustEstimator.java │ │ └── VEstimator.java │ └── utils │ ├── Announcer.java │ ├── ApplicationIcon.java │ ├── ArrayUtils.java │ ├── CatmullRomSpline.java │ ├── CenteredStringRenderer.java │ ├── ColorUtils.java │ ├── CoordinateFormatter.java │ ├── CubicSpline.java │ ├── CursorUtils.java │ ├── ErrorDialog.java │ ├── FileUtils.java │ ├── FocusUtils.java │ ├── GeometryUtils.java │ ├── GraphicsUtils.java │ ├── IconUtils.java │ ├── ImageUtils.java │ ├── ImageWriter.java │ ├── LittleEndianInputStream.java │ ├── LittleEndianOutputStream.java │ ├── MathUtils.java │ ├── MatrixUtils.java │ ├── Median.java │ ├── MixedEndianDataInputStream.java │ ├── MixedEndianDataOutputStream.java │ ├── NumberFormatter.java │ ├── PPMImageWriter.java │ ├── PaddedDecimalFormat.java │ ├── PathUtils.java │ ├── PropertiesLoader.java │ ├── Serializer.java │ ├── StdErrOutWindows.java │ ├── StringUtils.java │ ├── SwingThreadUtils.java │ ├── Sys.java │ ├── TIFFImageWriter.java │ ├── TextWindow.java │ ├── TimeUtils.java │ ├── URLUtils.java │ ├── Undo.java │ ├── VectorUtils.java │ └── XMLDOMPrinter.java └── win ├── FlexProjector.xml ├── ICOBundle ├── ICOBundle.app │ ├── Contents │ │ ├── Info.plist │ │ ├── MacOS │ │ │ └── ICOBundle │ │ └── MacOSClassic │ │ │ └── ICOBundle │ └── ICOBundle └── README.txt ├── Thumbs.db ├── icon16x16.ico ├── icon32x32.ico ├── icon48x48.ico ├── icons.ico └── launch4j ├── .classpath ├── .gitignore ├── .project ├── .settings ├── org.eclipse.core.resources.prefs ├── org.eclipse.core.runtime.prefs └── org.eclipse.jdt.core.prefs ├── LICENSE.txt ├── bin ├── COPYING ├── ld └── windres ├── build.xml ├── demo ├── ConsoleApp │ ├── .gitignore │ ├── ConsoleApp.jar │ ├── build.xml │ ├── l4j │ │ └── ConsoleApp.ico │ ├── lib │ │ └── readme.txt │ ├── readme.txt │ └── src │ │ └── net │ │ └── sf │ │ └── launch4j │ │ └── example │ │ └── ConsoleApp.java ├── ExitCodeApp │ ├── .gitignore │ ├── pom.xml │ └── src │ │ └── net │ │ └── sf │ │ └── launch4j │ │ └── example │ │ └── ExitCodeApp.java ├── LICENSE.txt ├── SimpleApp │ ├── .gitignore │ ├── SimpleApp.jar │ ├── build.xml │ ├── l4j │ │ ├── SimpleApp.ico │ │ ├── SimpleApp.xml │ │ └── splash.bmp │ ├── lib │ │ └── readme.txt │ ├── readme.txt │ └── src │ │ └── net │ │ └── sf │ │ └── launch4j │ │ └── example │ │ └── SimpleApp.java └── readme.txt ├── head ├── LICENSE.txt ├── consolehead.o ├── guihead.o └── head.o ├── head_jni_BETA ├── LICENSE.txt ├── head.o ├── jniconsolehead.o ├── jniguihead.o └── jnihead.o ├── head_src ├── LICENSE.txt ├── consolehead │ ├── .gitignore │ ├── Makefile.win │ ├── consolehead.c │ └── consolehead.dev ├── guihead │ ├── .gitignore │ ├── Makefile.win │ ├── guihead.c │ ├── guihead.dev │ └── guihead.h ├── head.c ├── head.h ├── jniconsolehead_BETA │ ├── .gitignore │ ├── Makefile.win │ ├── jniconsolehead.c │ └── jniconsolehead.dev ├── jniguihead_BETA │ ├── .gitignore │ ├── Makefile.win │ ├── jniguihead.c │ ├── jniguihead.dev │ └── jniguihead.h ├── jnihead.c ├── jnihead.h └── resource.h ├── launch4j ├── launch4j.jar ├── launch4j.jfpr ├── lib ├── JGoodies.Forms.LICENSE.txt ├── JGoodies.Looks.LICENSE.txt ├── Nuvola.Icon.Theme.LICENSE.txt ├── XStream.LICENSE.txt ├── ant.LICENSE.txt ├── ant.jar ├── commons-beanutils.jar ├── commons-logging.jar ├── commons.LICENSE.txt ├── formsrt.jar ├── foxtrot.LICENSE.txt ├── foxtrot.jar ├── jgoodies-common.jar ├── jgoodies-forms.jar ├── jgoodies-looks.jar └── xstream.jar ├── manifest └── uac.exe.manifest ├── maven ├── .classpath ├── .project ├── .settings │ └── org.eclipse.m2e.core.prefs ├── assembly │ ├── assemble-dist.xml │ ├── assemble-linux.xml │ ├── assemble-mac.xml │ ├── assemble-osx.xml │ ├── assemble-solaris.xml │ ├── assemble-win32.xml │ └── src.xml ├── maven-readme.txt └── pom.xml ├── sign4j ├── README.txt └── sign4j.c ├── src ├── LICENSE.txt ├── images │ ├── asterix-o.gif │ ├── asterix.gif │ ├── build.png │ ├── button_ok.png │ ├── cancel16.png │ ├── down16.png │ ├── edit_add16.png │ ├── info.png │ ├── new.png │ ├── new16.png │ ├── ok16.png │ ├── open.png │ ├── open16.png │ ├── run.png │ ├── save.png │ └── up16.png ├── launch4j.properties └── net │ └── sf │ └── launch4j │ ├── Builder.java │ ├── BuilderException.java │ ├── ExecException.java │ ├── FileChooserFilter.java │ ├── KanjiEscapeOutputStream.java │ ├── Log.java │ ├── Main.java │ ├── Messages.java │ ├── RcBuilder.java │ ├── Util.java │ ├── ant │ ├── AntClassPath.java │ ├── AntConfig.java │ ├── AntJre.java │ ├── Launch4jTask.java │ ├── Messages.java │ ├── StringWrapper.java │ ├── messages.properties │ └── messages_es.properties │ ├── binding │ ├── Binding.java │ ├── BindingException.java │ ├── Bindings.java │ ├── IValidatable.java │ ├── InvariantViolationException.java │ ├── JComboBoxBinding.java │ ├── JListBinding.java │ ├── JRadioButtonBinding.java │ ├── JTextAreaBinding.java │ ├── JTextComponentBinding.java │ ├── JToggleButtonBinding.java │ ├── Messages.java │ ├── OptComponentBinding.java │ ├── OptJTextAreaBinding.java │ ├── Validator.java │ ├── messages.properties │ └── messages_es.properties │ ├── config │ ├── CharsetID.java │ ├── ClassPath.java │ ├── Config.java │ ├── ConfigPersister.java │ ├── ConfigPersisterException.java │ ├── Describable.java │ ├── Jre.java │ ├── LanguageID.java │ ├── LdDefaults.java │ ├── Messages.java │ ├── Msg.java │ ├── SingleInstance.java │ ├── Splash.java │ ├── VersionInfo.java │ ├── messages.properties │ └── messages_es.properties │ ├── form │ ├── BasicForm.java │ ├── BasicForm.jfrm │ ├── ClassPathForm.java │ ├── ClassPathForm.jfrm │ ├── ConfigForm.java │ ├── ConfigForm.jfrm │ ├── EnvironmentVarsForm.java │ ├── EnvironmentVarsForm.jfrm │ ├── HeaderForm.java │ ├── HeaderForm.jfrm │ ├── JreForm.java │ ├── JreForm.jfrm │ ├── Messages.java │ ├── MessagesForm.java │ ├── MessagesForm.jfrm │ ├── SingleInstanceForm.java │ ├── SingleInstanceForm.jfrm │ ├── SplashForm.java │ ├── SplashForm.jfrm │ ├── VersionInfoForm.java │ ├── VersionInfoForm.jfrm │ ├── messages.properties │ └── messages_es.properties │ ├── formimpl │ ├── AbstractAcceptListener.java │ ├── BasicFormImpl.java │ ├── BrowseActionListener.java │ ├── ClassPathFormImpl.java │ ├── ConfigFormImpl.java │ ├── EnvironmentVarsFormImpl.java │ ├── FileChooser.java │ ├── GlassPane.java │ ├── HeaderFormImpl.java │ ├── JreFormImpl.java │ ├── MainFrame.java │ ├── Messages.java │ ├── MessagesFormImpl.java │ ├── SingleInstanceFormImpl.java │ ├── SplashFormImpl.java │ ├── VersionInfoFormImpl.java │ ├── messages.properties │ └── messages_es.properties │ ├── messages.properties │ └── messages_es.properties ├── w32api ├── MinGW.LICENSE.txt ├── crt2.o ├── libadvapi32.a ├── libgcc.a ├── libkernel32.a ├── libmingw32.a ├── libmsvcrt.a ├── libshell32.a └── libuser32.a ├── w32api_jni ├── MinGW.LICENSE.txt ├── crt2.o ├── libadvapi32.a ├── libgcc.a ├── libkernel32.a ├── libmingw32.a ├── libmingwex.a ├── libmoldname.a ├── libmsvcrt.a ├── libshell32.a └── libuser32.a └── web ├── bullet.gif ├── changelog.html ├── docs.html ├── index.html ├── launch4j-use.gif ├── launch4j.gif ├── links.html └── style.css /.gitignore: -------------------------------------------------------------------------------- 1 | nbproject/private/ 2 | build/ 3 | dist/ 4 | win/FlexProjector.exe 5 | win/Flex Projector Windows.zip 6 | mac/Flex Projector.app/ 7 | mac/Flex Projector macOS.zip 8 | FlexProjectorJar.zip 9 | *.DS_Store 10 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | FlexProjector 2 | ============= 3 | 4 | Flex Projector creates custom world map projections 5 | 6 | http://www.flexprojector.com 7 | 8 | Flex Projector uses [JMapProjLib](https://github.com/OSUCartography/JMapProjLib). 9 | -------------------------------------------------------------------------------- /lib/iText-2.1.3.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/lib/iText-2.1.3.jar -------------------------------------------------------------------------------- /lib/jai_imageio.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/lib/jai_imageio.jar -------------------------------------------------------------------------------- /lib/l2fprod-common-fontchooser.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/lib/l2fprod-common-fontchooser.jar -------------------------------------------------------------------------------- /mac/appbundler-1.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/mac/appbundler-1.0.jar -------------------------------------------------------------------------------- /mac/icon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/mac/icon.icns -------------------------------------------------------------------------------- /mac/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/mac/icon.png -------------------------------------------------------------------------------- /mac/icon.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/mac/icon.psd -------------------------------------------------------------------------------- /mac/icon32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/mac/icon32x32.png -------------------------------------------------------------------------------- /mac/icon48x48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/mac/icon48x48.png -------------------------------------------------------------------------------- /manifest.mf: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | X-COMMENT: Main-Class will be added automatically by build 3 | 4 | -------------------------------------------------------------------------------- /nbproject/genfiles.properties: -------------------------------------------------------------------------------- 1 | build.xml.data.CRC32=099e3892 2 | build.xml.script.CRC32=2b38d8ad 3 | build.xml.stylesheet.CRC32=240b97a2 4 | # This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. 5 | # Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. 6 | nbproject/build-impl.xml.data.CRC32=f1387dc4 7 | nbproject/build-impl.xml.script.CRC32=488c61db 8 | nbproject/build-impl.xml.stylesheet.CRC32=3a2fa800@1.91.1.48 9 | -------------------------------------------------------------------------------- /nbproject/project.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | org.netbeans.modules.java.j2seproject 4 | 5 | 6 | FlexProjector 7 | 1.6.5 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | JMapProjLib 19 | jar 20 | 21 | jar 22 | clean 23 | jar 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /src/Jama/util/Maths.java: -------------------------------------------------------------------------------- 1 | package Jama.util; 2 | 3 | public class Maths { 4 | 5 | /** sqrt(a^2 + b^2) without under/overflow. **/ 6 | 7 | public static double hypot(double a, double b) { 8 | double r; 9 | if (Math.abs(a) > Math.abs(b)) { 10 | r = b/a; 11 | r = Math.abs(a)*Math.sqrt(1+r*r); 12 | } else if (b != 0) { 13 | r = a/b; 14 | r = Math.abs(b)*Math.sqrt(1+r*r); 15 | } else { 16 | r = 0.0; 17 | } 18 | return r; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/ika/app/Application.properties: -------------------------------------------------------------------------------- 1 | #the main document window class 2 | MainWindow=ika.gui.FlexProjectorWindow 3 | 4 | #the name of the application 5 | ApplicationName=Flex Projector 6 | 7 | #the preferences panel class 8 | PreferencesPanel=ika.gui.FlexProjectorPreferencesPanel 9 | 10 | #The version of the application, numbers only in the format X.Y.Z, e.g. "1.12.5" 11 | #The last number is optional, i.e. "1.12" is valid. 12 | #The numbers can be followed by a string, such as "0.12 alpha" 13 | ApplicationVersion=1.0.8.1 14 | 15 | #a small icon for display in information dialogs 16 | ApplicationIcon=logo64x64.png 17 | 18 | #a large icon for display in the about dialog 19 | LargeApplicationIcon=logo128x128.png 20 | 21 | #a formatted html copyright string 22 | CopyrightHTML=
Development and Programming by
Bernhard Jenny
Monash University
Clayton, Australia

Ideas, Testing and Icon by
Tom Patterson
US National Park Service
23 | 24 | #a formatted html information string 25 | InformationHTML=
Copyright \u00a9 2007-2018 Bernhard Jenny,
GNU General Public License.

Vector data by Richard Furno, Azimuth Inc.

Flex Projector uses
Java Map Projection Library JMapProjLib,
iText, Jama, and launch4j.
Thanks to the authors.
26 | 27 | #a link to the homepage of this application 28 | Homepage=http://www.flexprojector.com/ 29 | 30 | #the file extension of documents created by this application 31 | FileExtension=txt 32 | 33 | #a link to a web page where data can be downloaded 34 | DataWebPage=http://www.flexprojector.com/downloaddata/index.html 35 | 36 | #the path to the default data set to display 37 | MapData=/ika/data/coastlines.shp 38 | 39 | #the path to a terrain-ocean mask 40 | EarthMask=/ika/data/earth_mask_144x72.gif 41 | 42 | #the path to a list of projections 43 | Projections=/ika/data/projections.txt 44 | 45 | #a link to a web page with a manual for Flex Projector 46 | HelpWebPage=http://www.flexprojector.com/man/index.html 47 | 48 | #a link to a web page with some help about the projection scale factor 49 | HelpSizeWebPage=http://www.flexprojector.com/man/projectionsize.html -------------------------------------------------------------------------------- /src/ika/data/coastlines.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/data/coastlines.dbf -------------------------------------------------------------------------------- /src/ika/data/coastlines.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/data/coastlines.shp -------------------------------------------------------------------------------- /src/ika/data/coastlines.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/data/coastlines.shx -------------------------------------------------------------------------------- /src/ika/data/earth_mask_1000x500.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/data/earth_mask_1000x500.gif -------------------------------------------------------------------------------- /src/ika/data/earth_mask_144x72.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/data/earth_mask_144x72.gif -------------------------------------------------------------------------------- /src/ika/data/projections.txt: -------------------------------------------------------------------------------- 1 | Aitoff, true, approx 2 | Arden-Close, true 3 | Boggs Eumorphic, true 4 | Compact Miller, true 5 | Cylindrical Equal-Area, true 6 | Craster Parabolic (Putnins P4), true 7 | Denoyer Semi-elliptical, true, approx 8 | Eckert I, true 9 | Eckert II, true, approx 10 | Eckert III, true, approx 11 | Eckert IV, true 12 | Eckert V, true 13 | Eckert VI, true 14 | Eckert-Greifendorff, true, approx 15 | Equal Earth, true 16 | Equirectangular, true 17 | Fahey, true, approx 18 | Foucaut, true, 19 | Foucaut Sinusoidal, true 20 | Gall (Gall Stereographic), true 21 | Gall-Peters, true 22 | Ginzburg VIII (TsNIIGAiK 1944), true 23 | Goode Homolosine, true 24 | Hammer, true, approx 25 | Hölzel, true, approx 26 | Kavrayskiy I, true 27 | Kavrayskiy V, true 28 | Kavrayskiy VII, true 29 | Larrivée, true, approx 30 | McBryde-Thomas Flat-Pole Sine (No. 2), true 31 | Mercator, true 32 | Miller Cylindrical I, true 33 | Mollweide, true 34 | Natural Earth, true, approx 35 | Natural Earth II, true, approx 36 | Nell, true 37 | Nell-Hammer, true 38 | Patterson, true 39 | Putnins P1, true 40 | Putnins P2, true 41 | Putnins P4', true 42 | Putnins P5', true 43 | Quartic Authalic, true 44 | Robinson, true 45 | Sinusoidal, true 46 | Tobler-Mercator, true 47 | van der Grinten (I), true, approx 48 | Wagner I, true 49 | Wagner II, true 50 | Wagner III, true 51 | Wagner IV, true 52 | Wagner VI, true 53 | Wagner VII, true, approx 54 | Winkel I, true 55 | Winkel II, true, approx 56 | Winkel Tripel, true, approx -------------------------------------------------------------------------------- /src/ika/geo/AdaptiveZoomGeoSet.java: -------------------------------------------------------------------------------- 1 | /* 2 | * AdaptiveZoomGeoSet.java 3 | * 4 | * Created on 30. Januar 2007, 12:10 5 | * 6 | */ 7 | 8 | package ika.geo; 9 | 10 | import java.awt.GraphicsConfiguration; 11 | import java.awt.geom.AffineTransform; 12 | 13 | /** 14 | * A GeoSet that is only drawn within a certain map scale. The minimum and 15 | * maximum scale are handled by this AdatpiveZoomGeoSet. 16 | * 17 | * @author Bernhard Jenny & Chris Lienert, Institute of Cartography, ETH Zurich 18 | */ 19 | public class AdaptiveZoomGeoSet extends GeoSet { 20 | 21 | private double minScale = 0; 22 | private double maxScale = Double.MAX_VALUE; 23 | 24 | /** Creates a new instance of AdaptiveZoomGeoSet */ 25 | public AdaptiveZoomGeoSet() { 26 | } 27 | 28 | @Override 29 | public synchronized void drawNormalState(RenderParams rp) { 30 | 31 | if (!this.isVisible()) { 32 | return; 33 | } 34 | 35 | // determine the current map scale 36 | GraphicsConfiguration gc = rp.g2d.getDeviceConfiguration(); 37 | AffineTransform trans = gc.getNormalizingTransform(); 38 | final double dpiScale = trans.getScaleX(); 39 | final double scale = (72 * dpiScale * 100 / 2.54) / rp.scale; 40 | if (scale >= minScale && scale < maxScale) { 41 | super.drawNormalState(rp); 42 | } 43 | 44 | } 45 | 46 | public double getMinScale() { 47 | return minScale; 48 | } 49 | 50 | public void setMinScale(double minScale) { 51 | this.minScale = minScale; 52 | } 53 | 54 | public double getMaxScale() { 55 | return maxScale; 56 | } 57 | 58 | public void setMaxScale(double maxScale) { 59 | this.maxScale = maxScale; 60 | } 61 | 62 | } 63 | -------------------------------------------------------------------------------- /src/ika/geo/GeoControlPoint.java: -------------------------------------------------------------------------------- 1 | /* 2 | * GeoControlPoint.java 3 | * 4 | * Created on May 13, 2005, 6:15 PM 5 | */ 6 | 7 | package ika.geo; 8 | 9 | import java.awt.geom.*; 10 | 11 | /** 12 | * 13 | */ 14 | public class GeoControlPoint extends GeoPoint{ 15 | 16 | private double destX = Double.NaN; 17 | private double destY = Double.NaN; 18 | 19 | /** 20 | * Create a new instance. 21 | * @param point The location of the point. 22 | */ 23 | public GeoControlPoint(Point2D point) { 24 | super (point, true); 25 | } 26 | 27 | public GeoControlPoint(double x, double y) { 28 | super (new Point2D.Double (x, y), true); 29 | } 30 | 31 | public double getDestX() { 32 | return destX; 33 | } 34 | 35 | public void setDestX(double destX) { 36 | this.destX = destX; 37 | MapEventTrigger.inform(this); 38 | } 39 | 40 | public double getDestY() { 41 | return destY; 42 | } 43 | 44 | public void setDestY(double destY) { 45 | this.destY = destY; 46 | MapEventTrigger.inform(this); 47 | } 48 | 49 | 50 | } 51 | -------------------------------------------------------------------------------- /src/ika/geo/GeoPath.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/geo/GeoPath.java -------------------------------------------------------------------------------- /src/ika/geo/MapEventListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * MapChangeListener.java 3 | * 4 | * Created on March 5, 2005, 3:28 PM 5 | */ 6 | 7 | package ika.geo; 8 | 9 | /** 10 | * MapEventListener - a listener for change events. 11 | * Whenever a GeoObject changes mapEvent is informed. 12 | * @author Bernhard Jenny, Institute of Cartography, ETH Zurich. 13 | */ 14 | public interface MapEventListener { 15 | 16 | /** 17 | * mapEvent() is called whenever a GeoObject changes. 18 | * @param evt Information about the type of change. 19 | */ 20 | public void mapEvent (MapEvent evt); 21 | } 22 | -------------------------------------------------------------------------------- /src/ika/geo/RenderParamsProvider.java: -------------------------------------------------------------------------------- 1 | /* 2 | * RenderParamsProvider.java 3 | * 4 | * Created on December 17, 2006, 6:41 PM 5 | * 6 | */ 7 | 8 | package ika.geo; 9 | 10 | /** 11 | * A RenderParamsProvider can customize the rendering parameters used by a 12 | * MapComponent. 13 | * @author Bernhard Jenny, Institute of Cartography, ETH Zurich 14 | */ 15 | public interface RenderParamsProvider { 16 | 17 | /** 18 | * Customize the passed defaultRenderParams. These parameters are used 19 | * to render a map. The customized RenderParams are returned from this 20 | * method. A new object of a class derived from RenderParams can be returned. 21 | */ 22 | public RenderParams getRenderParams(RenderParams defaultRenderParams); 23 | } 24 | -------------------------------------------------------------------------------- /src/ika/geo/Symbol.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Symbol.java 3 | * 4 | * Created on May 16, 2005, 12:37 PM 5 | */ 6 | 7 | package ika.geo; 8 | 9 | /** 10 | * 11 | * @author jenny 12 | */ 13 | public class Symbol implements java.io.Serializable { 14 | private static final long serialVersionUID = -7308893545390729292L; 15 | } 16 | -------------------------------------------------------------------------------- /src/ika/geo/grid/GridAbsoluteOperator.java: -------------------------------------------------------------------------------- 1 | package ika.geo.grid; 2 | 3 | import ika.geo.GeoGrid; 4 | 5 | /** 6 | * Computes the absolute values in a grid. 7 | * @author jenny 8 | */ 9 | public class GridAbsoluteOperator extends ThreadedGridOperator { 10 | 11 | public String getName() { 12 | return "Absolute"; 13 | } 14 | 15 | public void operate(GeoGrid src, GeoGrid dst, int startRow, int endRow) { 16 | 17 | float[][] srcGrid = src.getGrid(); 18 | float[][] dstGrid = dst.getGrid(); 19 | final int nCols = src.getCols(); 20 | 21 | for (int row = startRow; row < endRow; ++row) { 22 | float[] srcRow = srcGrid[row]; 23 | float[] dstRow = dstGrid[row]; 24 | for (int col = 0; col < nCols; ++col) { 25 | dstRow[col] = Math.abs(srcRow[col]); 26 | } 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/ika/geo/grid/GridAdditionOperator.java: -------------------------------------------------------------------------------- 1 | package ika.geo.grid; 2 | 3 | import ika.geo.GeoGrid; 4 | 5 | /** 6 | * Add a constant to a grid. 7 | * @author jenny 8 | */ 9 | public class GridAdditionOperator implements GridOperator{ 10 | 11 | private float add; 12 | 13 | public GridAdditionOperator() { 14 | } 15 | 16 | public GridAdditionOperator(float add) { 17 | this.add = add; 18 | } 19 | 20 | public String getName() { 21 | return "Addition"; 22 | } 23 | 24 | public GeoGrid operate(GeoGrid geoGrid) { 25 | if (geoGrid == null) 26 | throw new IllegalArgumentException(); 27 | 28 | final int nrows = geoGrid.getRows(); 29 | final int ncols = geoGrid.getCols(); 30 | GeoGrid newGrid = new GeoGrid(ncols, nrows, geoGrid.getCellSize()); 31 | newGrid.setWest(geoGrid.getWest()); 32 | newGrid.setNorth(geoGrid.getNorth()); 33 | newGrid.setName(geoGrid.getName()); 34 | 35 | float[][] srcGrid = geoGrid.getGrid(); 36 | float[][] dstGrid = newGrid.getGrid(); 37 | 38 | for (int row = 0; row < nrows; ++row) { 39 | float[] srcRow = srcGrid[row]; 40 | float[] dstRow = dstGrid[row]; 41 | for (int col = 0; col < ncols; ++col) { 42 | dstRow[col] = srcRow[col] + add; 43 | } 44 | } 45 | return newGrid; 46 | } 47 | 48 | } 49 | -------------------------------------------------------------------------------- /src/ika/geo/grid/GridAspectOperator.java: -------------------------------------------------------------------------------- 1 | /* 2 | * GridAspectOperator.java 3 | * 4 | * Created on January 28, 2006, 2:43 PM 5 | * 6 | */ 7 | package ika.geo.grid; 8 | 9 | import ika.geo.*; 10 | 11 | /** 12 | * Extracts aspect angles from a grid. Aspect angles are in radians, counted 13 | * from the horizontal x axis towards north (standard geometric coordinate 14 | * system). Angles point upwards. 15 | * 16 | * @author jenny 17 | */ 18 | public class GridAspectOperator implements GridOperator { 19 | 20 | /** 21 | * Creates a new instance of GridAspectOperator 22 | */ 23 | public GridAspectOperator() { 24 | } 25 | 26 | public String getName() { 27 | return "Grid Aspect"; 28 | } 29 | 30 | public ika.geo.GeoGrid operate(ika.geo.GeoGrid geoGrid) { 31 | if (geoGrid == null) { 32 | throw new IllegalArgumentException(); 33 | } 34 | 35 | final int newCols = geoGrid.getCols() - 2; 36 | final int newRows = geoGrid.getRows() - 2; 37 | final double cellSize = geoGrid.getCellSize(); 38 | GeoGrid newGrid = new GeoGrid(newCols, newRows, cellSize); 39 | newGrid.setWest(geoGrid.getWest() + cellSize); 40 | newGrid.setNorth(geoGrid.getNorth() - cellSize); 41 | 42 | float[][] srcGrid = geoGrid.getGrid(); 43 | float[][] dstGrid = newGrid.getGrid(); 44 | final int srcRows = geoGrid.getRows(); 45 | final int srcCols = geoGrid.getCols(); 46 | 47 | for (int row = 1; row < srcRows - 1; row++) { 48 | for (int col = 1; col < srcCols - 1; col++) { 49 | final float w = srcGrid[row][col - 1]; 50 | final float e = srcGrid[row][col + 1]; 51 | final float s = srcGrid[row + 1][col]; 52 | final float n = srcGrid[row - 1][col]; 53 | final float aspect = (float) Math.atan2(n - s, e - w); 54 | 55 | dstGrid[row - 1][col - 1] = aspect; 56 | } 57 | } 58 | 59 | return newGrid; 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /src/ika/geo/grid/GridAssignOperator.java: -------------------------------------------------------------------------------- 1 | package ika.geo.grid; 2 | 3 | import ika.geo.GeoGrid; 4 | import java.util.Arrays; 5 | 6 | /** 7 | * Assign a constant value to a grid. The source grid is ignored. 8 | * @author jenny 9 | */ 10 | public class GridAssignOperator extends ThreadedGridOperator { 11 | 12 | private float value = 0f; 13 | 14 | public GridAssignOperator() { 15 | } 16 | 17 | public GridAssignOperator(float value) { 18 | this.value = value; 19 | } 20 | 21 | @Override 22 | protected void operate(GeoGrid src, GeoGrid dst, int startRow, int endRow) { 23 | for (int row = startRow; row < endRow; ++row) { 24 | Arrays.fill(src.getGrid()[row], value); 25 | } 26 | } 27 | 28 | public String getName() { 29 | return "Assign Constant"; 30 | } 31 | 32 | /** 33 | * @return the value 34 | */ 35 | public float getValue() { 36 | return value; 37 | } 38 | 39 | /** 40 | * @param value the value to set 41 | */ 42 | public void setValue(float value) { 43 | this.value = value; 44 | } 45 | 46 | } -------------------------------------------------------------------------------- /src/ika/geo/grid/GridChangeVoidOperator.java: -------------------------------------------------------------------------------- 1 | package ika.geo.grid; 2 | 3 | import ika.geo.GeoGrid; 4 | 5 | /** 6 | * Changes all void values of a grid to a specific value. 7 | * @author jenny 8 | */ 9 | public class GridChangeVoidOperator extends ThreadedGridOperator{ 10 | 11 | private float v; 12 | 13 | public GridChangeVoidOperator() { 14 | this.v = 0; 15 | } 16 | 17 | public GridChangeVoidOperator(float v) { 18 | this.v = v; 19 | } 20 | 21 | public String getName() { 22 | return "Change Void"; 23 | } 24 | 25 | @Override 26 | public void operate(GeoGrid src, GeoGrid dst, int startRow, int endRow) { 27 | final int ncols = src.getCols(); 28 | for (int row = startRow; row < endRow; ++row) { 29 | float[] srcRow = src.getGrid()[row]; 30 | float[] dstRow = dst.getGrid()[row]; 31 | for (int col = 0; col < ncols; ++col) { 32 | dstRow[col] = Float.isNaN(srcRow[col]) ? v : srcRow[col]; 33 | } 34 | } 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /src/ika/geo/grid/GridCopyOperator.java: -------------------------------------------------------------------------------- 1 | package ika.geo.grid; 2 | 3 | import ika.geo.GeoGrid; 4 | 5 | /** 6 | * Copy a grid. 7 | * @author jenny 8 | */ 9 | public class GridCopyOperator extends ThreadedGridOperator { 10 | 11 | @Override 12 | protected void operate(GeoGrid src, GeoGrid dst, int startRow, int endRow) { 13 | for (int row = startRow; row < endRow; ++row) { 14 | float[] srcArray = src.getGrid()[row]; 15 | float[] dstArray = dst.getGrid()[row]; 16 | System.arraycopy(srcArray, 0, dstArray, 0, srcArray.length); 17 | } 18 | } 19 | 20 | public String getName() { 21 | return "Copy"; 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/ika/geo/grid/GridEdgeMarker.java: -------------------------------------------------------------------------------- 1 | /* 2 | * To change this template, choose Tools | Templates 3 | * and open the template in the editor. 4 | */ 5 | package ika.geo.grid; 6 | 7 | import ika.geo.GeoGrid; 8 | 9 | /** 10 | * 11 | * @author jenny 12 | */ 13 | public class GridEdgeMarker { 14 | 15 | public static GeoGrid markEdges(GeoGrid grid) { 16 | 17 | int cols = grid.getCols(); 18 | int rows = grid.getRows(); 19 | GeoGrid markedGrid = new GeoGrid(cols, rows, grid.getCellSize()); 20 | markedGrid.setWest(grid.getWest()); 21 | markedGrid.setNorth(grid.getNorth()); 22 | 23 | for (int r = 1; r < rows - 1; r++) { 24 | for (int c = 1; c < cols - 1; c++) { 25 | 26 | if (grid.getValue(c, r) == 1f) { 27 | if (grid.getValue(c - 1, r) == 0 28 | || grid.getValue(c + 1, r) == 0 29 | || grid.getValue(c, r - 1) == 0 30 | || grid.getValue(c, r + 1) == 0) { 31 | markedGrid.setValue(0.5f, c, r); 32 | } else { 33 | markedGrid.setValue(1f, c, r); 34 | } 35 | } 36 | } 37 | } 38 | 39 | return markedGrid; 40 | 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /src/ika/geo/grid/GridExponentiationOperator.java: -------------------------------------------------------------------------------- 1 | package ika.geo.grid; 2 | 3 | import ika.geo.GeoGrid; 4 | 5 | /** 6 | * Applies a power function to the values in a grid. 7 | * @author Bernhard Jenny, Institute of Cartography, ETH Zurich. 8 | */ 9 | public class GridExponentiationOperator implements GridOperator { 10 | 11 | private double exponent; 12 | private float negativeVal = 0f; 13 | 14 | public GridExponentiationOperator() { 15 | } 16 | 17 | public GridExponentiationOperator(double exponent, float negativeVal) { 18 | this.exponent = exponent; 19 | this.negativeVal = negativeVal; 20 | } 21 | 22 | public String getName() { 23 | return "Exponentiation"; 24 | } 25 | 26 | public void operate(GeoGrid geoGrid, GeoGrid newGrid) { 27 | if (geoGrid == null || newGrid == null) { 28 | throw new IllegalArgumentException(); 29 | } 30 | 31 | final int nrows = geoGrid.getRows(); 32 | final int ncols = geoGrid.getCols(); 33 | newGrid.setWest(geoGrid.getWest()); 34 | newGrid.setNorth(geoGrid.getNorth()); 35 | 36 | float[][] srcGrid = geoGrid.getGrid(); 37 | float[][] dstGrid = newGrid.getGrid(); 38 | 39 | for (int row = 0; row < nrows; ++row) { 40 | final float[] srcRow = srcGrid[row]; 41 | final float[] dstRow = dstGrid[row]; 42 | for (int col = 0; col < ncols; ++col) { 43 | final float v = srcRow[col]; 44 | dstRow[col] = v > 0 ? (float) Math.pow(v, exponent) : negativeVal; 45 | } 46 | } 47 | } 48 | 49 | public GeoGrid operate(GeoGrid geoGrid) { 50 | final int nrows = geoGrid.getRows(); 51 | final int ncols = geoGrid.getCols(); 52 | final double meshSize = geoGrid.getCellSize(); 53 | GeoGrid newGrid = new GeoGrid(ncols, nrows, meshSize); 54 | this.operate(geoGrid, newGrid); 55 | return newGrid; 56 | } 57 | 58 | } 59 | -------------------------------------------------------------------------------- /src/ika/geo/grid/GridExtractMaskOperator.java: -------------------------------------------------------------------------------- 1 | package ika.geo.grid; 2 | 3 | import ika.geo.GeoGrid; 4 | import ika.geo.grid.ThreadedGridOperator; 5 | 6 | /** 7 | * Fills the destination grid with NaN values where the source grid has NaN 8 | * values. Other cells are set to 0. 9 | * @author jenny 10 | */ 11 | public class GridExtractMaskOperator extends ThreadedGridOperator{ 12 | 13 | @Override 14 | public void operate(GeoGrid src, GeoGrid dst, int startRow, int endRow) { 15 | final int ncols = src.getCols(); 16 | for (int row = startRow; row < endRow; ++row) { 17 | float[] srcRow = src.getGrid()[row]; 18 | float[] dstRow = dst.getGrid()[row]; 19 | for (int col = 0; col < ncols; ++col) { 20 | dstRow[col] = Float.isNaN(srcRow[col]) ? Float.NaN : 0; 21 | } 22 | } 23 | } 24 | 25 | @Override 26 | public String getName() { 27 | return "Extract NaN Mask"; 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/ika/geo/grid/GridInvalidateOperator.java: -------------------------------------------------------------------------------- 1 | package ika.geo.grid; 2 | 3 | import ika.geo.GeoGrid; 4 | 5 | /** 6 | * Changes all cells with a certain value to void. 7 | */ 8 | public class GridInvalidateOperator implements GridOperator{ 9 | 10 | private float v; 11 | 12 | public GridInvalidateOperator() { 13 | } 14 | 15 | public GridInvalidateOperator(float v) { 16 | this.v = v; 17 | } 18 | 19 | public String getName() { 20 | return "Invalidate"; 21 | } 22 | 23 | public GeoGrid operate(GeoGrid geoGrid) { 24 | if (geoGrid == null) { 25 | throw new IllegalArgumentException(); 26 | } 27 | 28 | final int nrows = geoGrid.getRows(); 29 | final int ncols = geoGrid.getCols(); 30 | GeoGrid newGrid = new GeoGrid(ncols, nrows, geoGrid.getCellSize()); 31 | newGrid.setWest(geoGrid.getWest()); 32 | newGrid.setNorth(geoGrid.getNorth()); 33 | newGrid.setName(geoGrid.getName()); 34 | 35 | float[][] srcGrid = geoGrid.getGrid(); 36 | float[][] dstGrid = newGrid.getGrid(); 37 | 38 | for (int row = 0; row < nrows; ++row) { 39 | float[] srcRow = srcGrid[row]; 40 | float[] dstRow = dstGrid[row]; 41 | for (int col = 0; col < ncols; ++col) { 42 | dstRow[col] = (srcRow[col] == v) ? Float.NaN : srcRow[col]; 43 | } 44 | } 45 | return newGrid; 46 | } 47 | 48 | } 49 | -------------------------------------------------------------------------------- /src/ika/geo/grid/GridInvertOperator.java: -------------------------------------------------------------------------------- 1 | /* 2 | * GridInvertOperator.java 3 | * 4 | * Created on February 6, 2006, 9:56 AM 5 | * 6 | */ 7 | 8 | package ika.geo.grid; 9 | 10 | import ika.geo.GeoGrid; 11 | 12 | /** 13 | * 14 | * @author jenny 15 | */ 16 | public class GridInvertOperator implements GridOperator { 17 | 18 | /** Creates a new instance of GridInvertOperator */ 19 | public GridInvertOperator() { 20 | } 21 | 22 | public String getName() { 23 | return "Invert"; 24 | } 25 | 26 | public ika.geo.GeoGrid operate(ika.geo.GeoGrid geoGrid) { 27 | if (geoGrid == null) 28 | throw new IllegalArgumentException(); 29 | 30 | float[] minMax = geoGrid.getMinMax(); 31 | final float minPlusMax = minMax[0] + minMax[1]; 32 | 33 | final int ncols = geoGrid.getCols(); 34 | final int nrows = geoGrid.getRows(); 35 | GeoGrid newGrid = new GeoGrid(ncols, nrows, geoGrid.getCellSize()); 36 | newGrid.setWest(geoGrid.getWest()); 37 | newGrid.setNorth(geoGrid.getNorth()); 38 | 39 | float[][] srcGrid = geoGrid.getGrid(); 40 | float[][] dstGrid = newGrid.getGrid(); 41 | 42 | for (int row = 0; row < nrows; row++) { 43 | float[] srcRow = srcGrid[row]; 44 | float[] dstRow = dstGrid[row]; 45 | for (int col = 0; col < ncols; ++col) { 46 | dstRow[col] = -srcRow[col] + minPlusMax; 47 | } 48 | } 49 | return newGrid; 50 | } 51 | 52 | } 53 | -------------------------------------------------------------------------------- /src/ika/geo/grid/GridLaplaceOperator.java: -------------------------------------------------------------------------------- 1 | /* 2 | * GridLaplaceOperator.java 3 | * 4 | * Created on February 19, 2006, 12:05 AM 5 | * 6 | */ 7 | 8 | package ika.geo.grid; 9 | 10 | import ika.geo.*; 11 | 12 | /** 13 | * 14 | * @author jenny 15 | */ 16 | public class GridLaplaceOperator implements GridOperator{ 17 | 18 | /** Creates a new instance of GridLaplaceOperator */ 19 | public GridLaplaceOperator() { 20 | } 21 | 22 | public String getName() { 23 | return "Laplace"; 24 | } 25 | 26 | public GeoObject operate(GeoGrid geoGrid) { 27 | if (geoGrid == null) { 28 | throw new IllegalArgumentException(); 29 | } 30 | 31 | final int newCols = geoGrid.getCols() - 2; 32 | final int newRows = geoGrid.getRows() - 2; 33 | final double meshSize = geoGrid.getCellSize(); 34 | GeoGrid newGrid = new GeoGrid(newCols, newRows, meshSize); 35 | newGrid.setWest(geoGrid.getWest() + meshSize); 36 | newGrid.setNorth(geoGrid.getNorth() + meshSize); 37 | 38 | float[][] srcGrid = geoGrid.getGrid(); 39 | float[][] dstGrid = newGrid.getGrid(); 40 | final int srcRows = geoGrid.getRows(); 41 | final int srcCols = geoGrid.getCols(); 42 | 43 | for (int row = 1; row < srcRows - 1; row++) { 44 | for (int col = 1; col < srcCols - 1; col++) { 45 | /* 46 | | 0 1 0 | 47 | | 1 -4 1 | 48 | | 0 1 0 | 49 | */ 50 | final float center = srcGrid[row][col]; 51 | final float top = srcGrid[row-1][col]; 52 | final float left = srcGrid[row][col-1]; 53 | final float right = srcGrid[row][col+1]; 54 | final float bottom = srcGrid[row+1][col]; 55 | 56 | final float val = top + left - 4f * center + right + bottom; 57 | dstGrid[row-1][col-1] = val; 58 | } 59 | } 60 | 61 | return newGrid; 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /src/ika/geo/grid/GridLowerQuartileOperator.java: -------------------------------------------------------------------------------- 1 | /* 2 | * GridMedianOperator.java 3 | * 4 | * Created on August 12, 2008 5 | * 6 | */ 7 | 8 | package ika.geo.grid; 9 | 10 | /** 11 | * 12 | * @author Bernhard Jenny, Institute of Cartography, ETH Zurich. 13 | */ 14 | public class GridLowerQuartileOperator extends GridPercentileFilterOperator { 15 | 16 | public GridLowerQuartileOperator() { 17 | } 18 | 19 | public GridLowerQuartileOperator(int filterSize) { 20 | super(filterSize); 21 | } 22 | 23 | public String getName() { 24 | return "Lower Quartile"; 25 | } 26 | 27 | @Override 28 | protected final float percentile(float[] values) { 29 | return ika.utils.Median.lowerQuartile(values); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /src/ika/geo/grid/GridMask.java: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * 4 | */ 5 | 6 | package ika.geo.grid; 7 | 8 | /** 9 | * 10 | * @author Bernhard Jenny, Institute of Cartography, ETH Zurich. 11 | */ 12 | public interface GridMask { 13 | 14 | public float getWeight(int col, int row, int pyramidLevel); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/ika/geo/grid/GridMaskAbove.java: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * 4 | */ 5 | 6 | package ika.geo.grid; 7 | 8 | /** 9 | * 10 | * @author Bernhard Jenny, Institute of Cartography, ETH Zurich. 11 | */ 12 | public class GridMaskAbove implements GridMask { 13 | 14 | private GaussianPyramid elevationPyramid; 15 | private float threshold; 16 | private float margin; 17 | 18 | public GridMaskAbove (GaussianPyramid elevationPyramid, float threshold, float margin) { 19 | this.elevationPyramid = elevationPyramid; 20 | this.threshold = threshold; 21 | this.margin = margin; 22 | } 23 | 24 | public final float getWeight(int col, int row, int pyramidLevel) { 25 | float v = this.elevationPyramid.getValue(col, row, pyramidLevel); 26 | if (v < threshold - margin) { 27 | return 0f; 28 | } else if (v > threshold + margin) { 29 | return 1f; 30 | } else if (margin > 0f) { 31 | return (v - threshold + margin) * (1.f / (2f * margin)); 32 | } 33 | return 1f; 34 | } 35 | 36 | public float getThreshold() { 37 | return threshold; 38 | } 39 | 40 | public float getMargin() { 41 | return margin; 42 | } 43 | 44 | } 45 | -------------------------------------------------------------------------------- /src/ika/geo/grid/GridMaskBelow.java: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * 4 | */ 5 | 6 | package ika.geo.grid; 7 | 8 | /** 9 | * 10 | * @author Bernhard Jenny, Institute of Cartography, ETH Zurich. 11 | */ 12 | public class GridMaskBelow implements GridMask { 13 | 14 | private GaussianPyramid elevationPyramid; 15 | private float threshold; 16 | private float margin; 17 | 18 | public GridMaskBelow (GaussianPyramid elevationPyramid, float threshold, float margin) { 19 | this.elevationPyramid = elevationPyramid; 20 | this.threshold = threshold; 21 | this.margin = margin; 22 | } 23 | 24 | public final float getWeight(int col, int row, int pyramidLevel) { 25 | float v = this.elevationPyramid.getValue(col, row, pyramidLevel); 26 | if (v < threshold - margin) { 27 | return 1f; 28 | } else if (v > threshold + margin) { 29 | return 0f; 30 | } else if (margin > 0) { 31 | return (v - threshold + margin) * (-1.f / (2f * margin)); 32 | } 33 | return 1f; 34 | } 35 | 36 | public float getThreshold() { 37 | return threshold; 38 | } 39 | 40 | public float getMargin() { 41 | return margin; 42 | } 43 | 44 | } 45 | -------------------------------------------------------------------------------- /src/ika/geo/grid/GridMaskRaster.java: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * 4 | */ 5 | package ika.geo.grid; 6 | 7 | import ika.geo.GeoGrid; 8 | 9 | /** 10 | * 11 | * @author Bernhard Jenny, Institute of Cartography, ETH Zurich. 12 | */ 13 | public class GridMaskRaster extends GaussianPyramid implements GridMask { 14 | 15 | private String path; 16 | 17 | public GridMaskRaster(GeoGrid geoGrid, int levelsCount, String path) { 18 | super(geoGrid, levelsCount); 19 | this.path = path; 20 | } 21 | 22 | public final float getWeight(int col, int row, int pyramidLevel) { 23 | return this.getValue(col, row, pyramidLevel); 24 | } 25 | 26 | public String getPath() { 27 | return path; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/ika/geo/grid/GridMedianOperator.java: -------------------------------------------------------------------------------- 1 | /* 2 | * GridMedianOperator.java 3 | * 4 | * Created on February 14, 2006, 9:05 PM 5 | * 6 | */ 7 | 8 | package ika.geo.grid; 9 | 10 | /** 11 | * 12 | * @author Bernhard Jenny, Institute of Cartography, ETH Zurich. 13 | */ 14 | public class GridMedianOperator extends GridPercentileFilterOperator{ 15 | 16 | /** Creates a new instance of GridMedianOperator */ 17 | public GridMedianOperator() { 18 | } 19 | 20 | /** Creates a new instance of GridMedianOperator */ 21 | public GridMedianOperator(int filterSize) { 22 | super(filterSize); 23 | } 24 | 25 | public String getName() { 26 | return "Median"; 27 | } 28 | 29 | @Override 30 | protected final float percentile(float[] values) { 31 | return ika.utils.Median.median(values, false); 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/ika/geo/grid/GridOperator.java: -------------------------------------------------------------------------------- 1 | /* 2 | * GridOperator.java 3 | * 4 | * Created on January 28, 2006, 2:10 PM 5 | * 6 | */ 7 | 8 | package ika.geo.grid; 9 | 10 | import ika.geo.*; 11 | 12 | /** 13 | * 14 | * @author Bernhard Jenny, Institute of Cartography, ETH Zurich. 15 | */ 16 | public interface GridOperator { 17 | 18 | /** Returns a descriptive name of this GridOperator 19 | * @return The name of this GridOperator. 20 | */ 21 | public String getName(); 22 | 23 | /** 24 | * Start operating on the passed GeoGrid. 25 | * @param geoGrid The GeoGrid to operate on. 26 | * @return A new GeoGrid containing the result. The resulting GeoGrid may 27 | * be of a different size than the passed GeoGrid. 28 | */ 29 | public GeoObject operate (GeoGrid geoGrid); 30 | 31 | } 32 | -------------------------------------------------------------------------------- /src/ika/geo/grid/GridRoundOperator.java: -------------------------------------------------------------------------------- 1 | /* 2 | * GridRoundOperator.java 3 | * 4 | * Created on February 2, 2006, 8:48 PM 5 | * 6 | */ 7 | 8 | package ika.geo.grid; 9 | 10 | import ika.geo.*; 11 | 12 | /** 13 | * Rounds all values in a grid to their nearest entire integer value. 14 | * @author jenny 15 | */ 16 | public class GridRoundOperator implements GridOperator { 17 | 18 | /** Creates a new instance of GridRoundOperator */ 19 | public GridRoundOperator() { 20 | } 21 | 22 | public String getName() { 23 | return "Round"; 24 | } 25 | 26 | public ika.geo.GeoObject operate(ika.geo.GeoGrid geoGrid) { 27 | if (geoGrid == null) 28 | throw new IllegalArgumentException(); 29 | 30 | final int ncols = geoGrid.getCols(); 31 | final int nrows = geoGrid.getRows(); 32 | GeoGrid newGrid = new GeoGrid(ncols, nrows, geoGrid.getCellSize()); 33 | newGrid.setWest(geoGrid.getWest()); 34 | newGrid.setNorth(geoGrid.getNorth()); 35 | 36 | float[][] srcGrid = geoGrid.getGrid(); 37 | float[][] dstGrid = newGrid.getGrid(); 38 | 39 | for (int row = 0; row < nrows; row++) { 40 | float[] srcRow = srcGrid[row]; 41 | float[] dstRow = dstGrid[row]; 42 | for (int col = 0; col < ncols; ++col) { 43 | dstRow[col] = (float)Math.round(srcRow[col]); 44 | } 45 | } 46 | return newGrid; 47 | } 48 | 49 | 50 | } 51 | -------------------------------------------------------------------------------- /src/ika/geo/grid/GridScaleNegativeOperator.java: -------------------------------------------------------------------------------- 1 | /* 2 | * GridScaleNegativeOperator.java 3 | * 4 | * Created on February 2, 2006, 8:33 PM 5 | * 6 | */ 7 | package ika.geo.grid; 8 | 9 | import ika.geo.*; 10 | 11 | /** 12 | * Scale negative values. Positive values are set to 0. 13 | * @author jenny 14 | */ 15 | public class GridScaleNegativeOperator extends ThreadedGridOperator { 16 | 17 | private float scale; 18 | 19 | public GridScaleNegativeOperator() { 20 | this.scale = 1; 21 | } 22 | 23 | public GridScaleNegativeOperator(float scale) { 24 | this.scale = scale; 25 | } 26 | 27 | @Override 28 | public String getName() { 29 | return "Scale Negative Values"; 30 | } 31 | 32 | @Override 33 | public void operate(GeoGrid src, GeoGrid dst, int startRow, int endRow) { 34 | 35 | float[][] srcGrid = src.getGrid(); 36 | float[][] dstGrid = dst.getGrid(); 37 | final int nCols = src.getCols(); 38 | for (int row = startRow; row < endRow; ++row) { 39 | float[] srcRow = srcGrid[row]; 40 | float[] dstRow = dstGrid[row]; 41 | for (int col = 0; col < nCols; ++col) { 42 | final float in = srcRow[col]; 43 | dstRow[col] = in > 0f ? 0f : in * scale; 44 | } 45 | } 46 | } 47 | 48 | public float getScale() { 49 | return scale; 50 | } 51 | 52 | public void setScale(float scale) { 53 | this.scale = scale; 54 | } 55 | 56 | } -------------------------------------------------------------------------------- /src/ika/geo/grid/GridScaleOperator.java: -------------------------------------------------------------------------------- 1 | package ika.geo.grid; 2 | 3 | import ika.geo.GeoGrid; 4 | 5 | /** 6 | * Multiply a grid by a constant factor. 7 | * @author jenny 8 | */ 9 | public class GridScaleOperator extends ThreadedGridOperator { 10 | 11 | private float scale; 12 | 13 | public GridScaleOperator() { 14 | this.scale = 1; 15 | } 16 | 17 | public GridScaleOperator(float scale) { 18 | this.scale = scale; 19 | } 20 | 21 | public String getName() { 22 | return "Scale"; 23 | } 24 | 25 | public void operate(GeoGrid src, GeoGrid dst, int startRow, int endRow) { 26 | 27 | float[][] srcGrid = src.getGrid(); 28 | float[][] dstGrid = dst.getGrid(); 29 | final int nCols = src.getCols(); 30 | for (int row = startRow; row < endRow; ++row) { 31 | float[] srcRow = srcGrid[row]; 32 | float[] dstRow = dstGrid[row]; 33 | for (int col = 0; col < nCols; ++col) { 34 | dstRow[col] = srcRow[col] * scale; 35 | } 36 | } 37 | } 38 | 39 | public float getScale() { 40 | return scale; 41 | } 42 | 43 | public void setScale(float scale) { 44 | this.scale = scale; 45 | } 46 | 47 | } 48 | -------------------------------------------------------------------------------- /src/ika/geo/grid/GridScalePositiveOperator.java: -------------------------------------------------------------------------------- 1 | /* 2 | * GridScalePositiveOperator.java 3 | * 4 | * Created on February 2, 2006, 8:33 PM 5 | * 6 | */ 7 | package ika.geo.grid; 8 | 9 | import ika.geo.*; 10 | 11 | /** 12 | * Scale positive values. Negative values are set to 0. 13 | * @author jenny 14 | */ 15 | public class GridScalePositiveOperator extends ThreadedGridOperator { 16 | 17 | private float scale; 18 | 19 | public GridScalePositiveOperator() { 20 | this.scale = 1; 21 | } 22 | 23 | public GridScalePositiveOperator(float scale) { 24 | this.scale = scale; 25 | } 26 | 27 | @Override 28 | public String getName() { 29 | return "Scale Positive Values"; 30 | } 31 | 32 | @Override 33 | public void operate(GeoGrid src, GeoGrid dst, int startRow, int endRow) { 34 | 35 | float[][] srcGrid = src.getGrid(); 36 | float[][] dstGrid = dst.getGrid(); 37 | final int nCols = src.getCols(); 38 | for (int row = startRow; row < endRow; ++row) { 39 | float[] srcRow = srcGrid[row]; 40 | float[] dstRow = dstGrid[row]; 41 | for (int col = 0; col < nCols; ++col) { 42 | final float in = srcRow[col]; 43 | dstRow[col] = in < 0f ? 0f : in * scale; 44 | } 45 | } 46 | } 47 | 48 | public float getScale() { 49 | return scale; 50 | } 51 | 52 | public void setScale(float scale) { 53 | this.scale = scale; 54 | } 55 | 56 | } -------------------------------------------------------------------------------- /src/ika/geo/grid/GridTransposeOperator.java: -------------------------------------------------------------------------------- 1 | package ika.geo.grid; 2 | 3 | import ika.geo.GeoGrid; 4 | 5 | /** 6 | * 7 | * @author jenny 8 | */ 9 | public class GridTransposeOperator implements GridOperator { 10 | 11 | public String getName() { 12 | throw new UnsupportedOperationException("Transpose"); 13 | } 14 | 15 | public GeoGrid operate(GeoGrid geoGrid) { 16 | 17 | int cols = geoGrid.getCols(); 18 | int rows = geoGrid.getRows(); 19 | GeoGrid dst = new GeoGrid(rows, cols, geoGrid.getCellSize()); 20 | dst.setWest(geoGrid.getWest()); 21 | dst.setNorth(geoGrid.getNorth()); 22 | 23 | for (int r = 0; r < rows; ++r) { 24 | for (int c = 0; c < cols; ++c) { 25 | dst.setValue(geoGrid.getValue(c, r), r, c); 26 | } 27 | } 28 | 29 | return dst; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/ika/geo/grid/GridUpperQuartileOperator.java: -------------------------------------------------------------------------------- 1 | /* 2 | * GridMedianOperator.java 3 | * 4 | * Created on August 12, 2008 5 | * 6 | */ 7 | package ika.geo.grid; 8 | 9 | /** 10 | * 11 | * @author Bernhard Jenny, Institute of Cartography, ETH Zurich. 12 | */ 13 | public class GridUpperQuartileOperator extends GridPercentileFilterOperator { 14 | 15 | public GridUpperQuartileOperator() { 16 | } 17 | 18 | public GridUpperQuartileOperator(int filterSize) { 19 | super(filterSize); 20 | } 21 | 22 | public String getName() { 23 | return "Upper Quartile"; 24 | } 25 | 26 | @Override 27 | protected final float percentile(float[] values) { 28 | return ika.utils.Median.upperQuartile(values); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/ika/geo/grid/HalveGrid.java: -------------------------------------------------------------------------------- 1 | 2 | package ika.geo.grid; 3 | 4 | import ika.geo.GeoGrid; 5 | 6 | /** 7 | * 8 | * @author jenny 9 | */ 10 | public class HalveGrid { 11 | 12 | public static GeoGrid halve(GeoGrid grid) { 13 | 14 | int cols = grid.getCols(); 15 | int rows = grid.getRows(); 16 | double cellsize = grid.getCellSize(); 17 | GeoGrid halfGrid = new GeoGrid(cols / 2, rows / 2, cellsize * 2); 18 | halfGrid.setWest(grid.getWest()); 19 | halfGrid.setNorth(grid.getNorth()); 20 | 21 | for (int r = 0; r < rows; r += 2) { 22 | for (int c = 0; c < cols; c += 2) { 23 | final float v = grid.getValue(c, r); 24 | halfGrid.setValue(v, c / 2, r / 2); 25 | } 26 | } 27 | 28 | return halfGrid; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/ika/geo/grid/ImageToGridOperator.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ImageToGridOperator.java 3 | * 4 | * Created on October 25, 2007, 4:20 PM 5 | * 6 | */ 7 | 8 | package ika.geo.grid; 9 | 10 | import ika.geo.GeoGrid; 11 | import ika.geo.GeoImage; 12 | import java.awt.image.BufferedImage; 13 | 14 | /** 15 | * Convert a GeoImage to a GeoGrid. RGB colors are converted to gray and stored 16 | * with a range of 0 to 255. 17 | * @author Bernhard Jenny, Institute of Cartography, ETH Zurich. 18 | */ 19 | public class ImageToGridOperator { 20 | 21 | /** Creates a new instance of ImageToGridOperator */ 22 | public ImageToGridOperator() { 23 | } 24 | 25 | /** Returns a descriptive name of this GridOperator 26 | * @return The name of this GridOperator. 27 | */ 28 | public String getName() { 29 | return "Grid to Image"; 30 | } 31 | 32 | public GeoGrid operate (GeoImage geoImage) { 33 | int cols = geoImage.getCols(); 34 | int rows = geoImage.getRows(); 35 | double cellSize = geoImage.getCellSize(); 36 | GeoGrid grid = new GeoGrid(cols, rows, cellSize); 37 | grid.setWest(geoImage.getWest() + 0.5 * cellSize); 38 | grid.setNorth(geoImage.getNorth() - 0.5 * cellSize); 39 | 40 | BufferedImage image = geoImage.getBufferedImage(); 41 | 42 | for (int row = 0; row < rows; row++) { 43 | for (int col = 0; col < cols; col++) { 44 | final int rgb = image.getRGB(col, row); 45 | 46 | // extract r, g and b values from the combined integer value. 47 | final int r = (rgb >> 16) & 255; 48 | final int g = (rgb >> 8) & 255; 49 | final int b = rgb & 255; 50 | // compute the weighted gray value from the red, green and blue values 51 | // see e.g.: http://de.wikipedia.org/wiki/RGB-Farbraum 52 | final float gray = 0.299f * r + 0.587f * g + 0.114f * b; 53 | grid.setValue(gray, col, row); 54 | } 55 | } 56 | return grid; 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /src/ika/geoexport/GeoExporter.java: -------------------------------------------------------------------------------- 1 | package ika.geoexport; 2 | 3 | import ika.gui.ProgressIndicator; 4 | 5 | /** 6 | * 7 | * @author Bernhard Jenny, Institute of Cartography, ETH Zurich. 8 | */ 9 | public abstract class GeoExporter { 10 | 11 | /** 12 | * A ProgressIndicator that is displayed during a long export. 13 | * The ProgressIndicator must be set using setProgressIndicator(). 14 | * The default is not to have any ProgressIndicator. 15 | */ 16 | protected ProgressIndicator progressIndicator = null; 17 | 18 | protected GeoExporter() { 19 | } 20 | 21 | /** 22 | * Returns the file extension of the main file created by this exporter. 23 | * @return The file extension. 24 | */ 25 | public abstract String getFileExtension(); 26 | 27 | /** 28 | * Returns a short string that can be used to construct a string for 29 | * a file selection dialog of the form "Save xyz file". 30 | * @return The name of the format. 31 | */ 32 | public abstract String getFileFormatName(); 33 | 34 | /** 35 | * @return the progressIndicator 36 | */ 37 | public ProgressIndicator getProgressIndicator() { 38 | return progressIndicator; 39 | } 40 | 41 | /** 42 | * @param progressIndicator the progressIndicator to set 43 | */ 44 | public void setProgressIndicator(ProgressIndicator progressIndicator) { 45 | this.progressIndicator = progressIndicator; 46 | } 47 | 48 | } 49 | -------------------------------------------------------------------------------- /src/ika/geoexport/IllustratorExporter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/geoexport/IllustratorExporter.java -------------------------------------------------------------------------------- /src/ika/geoexport/ImageExporter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ImageExporter.java 3 | * 4 | * Created on May 13, 2005, 6:47 PM 5 | */ 6 | 7 | package ika.geoexport; 8 | 9 | import ika.geo.*; 10 | import java.io.*; 11 | import java.awt.image.*; 12 | import javax.imageio.*; 13 | import ika.utils.*; 14 | 15 | /** 16 | * 17 | * @author jenny 18 | */ 19 | public class ImageExporter { 20 | 21 | public static void exportGeoImage(GeoImage geoImage, String filePath) 22 | throws IOException { 23 | if (filePath == null || geoImage == null) 24 | return; 25 | filePath = FileUtils.forceFileNameExtension(filePath, "jpg"); 26 | File file = new File(filePath); 27 | 28 | BufferedImage image = geoImage.getBufferedImage(); 29 | BufferedImage exportImage = new BufferedImage(image.getWidth(), 30 | image.getHeight(), BufferedImage.TYPE_INT_RGB); 31 | // draw the passed image into the exportImage 32 | exportImage.getGraphics().drawImage(image, 0, 0, null); 33 | 34 | ImageIO.write(exportImage, "jpeg", file); 35 | 36 | String worldFilePath = WorldFileExporter.constructPath(filePath); 37 | WorldFileExporter.writeWorldFile(worldFilePath, geoImage); 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /src/ika/geoexport/JPEGExporter.java: -------------------------------------------------------------------------------- 1 | package ika.geoexport; 2 | 3 | 4 | 5 | public class JPEGExporter extends RasterImageExporter { 6 | public JPEGExporter() { 7 | super.setFormat("jpg"); 8 | } 9 | 10 | public void setFormat(String format) { 11 | if (format.equalsIgnoreCase("jpg") == false) 12 | throw new IllegalArgumentException(); 13 | } 14 | } -------------------------------------------------------------------------------- /src/ika/geoexport/PNGExporter.java: -------------------------------------------------------------------------------- 1 | package ika.geoexport; 2 | 3 | 4 | 5 | public class PNGExporter extends RasterImageExporter { 6 | public PNGExporter() { 7 | super.setFormat("png"); 8 | } 9 | 10 | public void setFormat(String format) { 11 | if (format.equalsIgnoreCase("png") == false) 12 | throw new IllegalArgumentException(); 13 | } 14 | } -------------------------------------------------------------------------------- /src/ika/geoimport/ImageImporterProgressAdaptor.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ImageImporterProgressAdaptor.java 3 | * 4 | * Created on August 15, 2006, 8:51 PM 5 | * 6 | */ 7 | 8 | package ika.geoimport; 9 | 10 | import ika.gui.ProgressIndicator; 11 | 12 | /** 13 | * 14 | * @author Bernhard Jenny, Institute of Cartography, ETH Zurich 15 | */ 16 | public class ImageImporterProgressAdaptor 17 | implements javax.imageio.event.IIOReadProgressListener{ 18 | 19 | private ProgressIndicator progressIndicator; 20 | 21 | /** Creates a new instance of ImageImporterProgressAdaptor */ 22 | public ImageImporterProgressAdaptor(ProgressIndicator progressIndicator) { 23 | if (progressIndicator == null) 24 | throw new IllegalArgumentException(); 25 | this.progressIndicator = progressIndicator; 26 | } 27 | 28 | public void showDialog() { 29 | this.progressIndicator.start(); 30 | } 31 | 32 | public void imageStarted(javax.imageio.ImageReader imageReader, int param) { 33 | } 34 | 35 | public void imageComplete(javax.imageio.ImageReader source) { 36 | } 37 | 38 | public void imageProgress(javax.imageio.ImageReader imageReader, 39 | final float percentage) { 40 | if (this.progressIndicator.isAborted()) { 41 | imageReader.abort(); 42 | } else 43 | this.progressIndicator.progress((int)percentage); 44 | } 45 | 46 | public void readAborted(javax.imageio.ImageReader source) { 47 | this.progressIndicator.abort(); 48 | } 49 | 50 | public void sequenceComplete(javax.imageio.ImageReader source) { 51 | } 52 | 53 | public void sequenceStarted(javax.imageio.ImageReader imageReader, int param) { 54 | } 55 | 56 | public void thumbnailComplete(javax.imageio.ImageReader source) { 57 | } 58 | 59 | public void thumbnailProgress(javax.imageio.ImageReader imageReader, float param) { 60 | } 61 | 62 | public void thumbnailStarted(javax.imageio.ImageReader imageReader, int param, int param2) { 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /src/ika/geoimport/MapDataReceiver.java: -------------------------------------------------------------------------------- 1 | /* 2 | * MapDataReceiver.java 3 | * 4 | * Created on November 5, 2006, 3:43 PM 5 | * 6 | */ 7 | 8 | package ika.geoimport; 9 | 10 | import ika.geo.*; 11 | import ika.gui.*; 12 | import ika.table.Table; 13 | 14 | /** 15 | * MapDataReceiver receives imported GeoObjects from a GeoImporter and is 16 | * responsible for storing the data. 17 | * It has a reference on a MapComponent which is used to adjust the currently 18 | * visible area when GeoObjects are added. 19 | * @author Bernhard Jenny, Institute of Cartography, ETH Zurich 20 | */ 21 | public class MapDataReceiver extends DataReceiver { 22 | 23 | private MapComponent mapComponent; 24 | 25 | /** Creates a new instance of MapDataReceiver */ 26 | public MapDataReceiver(MapComponent mapComponent) { 27 | this.mapComponent = mapComponent; 28 | } 29 | 30 | public boolean add(GeoSet geoSet) { 31 | boolean added = super.add(geoSet); 32 | if (added) 33 | this.informMapComponent(); 34 | return added; 35 | } 36 | 37 | public boolean add(GeoImage geoImage) { 38 | boolean added = super.add(geoImage); 39 | if (added) 40 | this.informMapComponent(); 41 | return added; 42 | } 43 | 44 | public boolean add(ika.table.TableLink tableLink) { 45 | boolean added = super.add(tableLink); 46 | if (added) 47 | this.informMapComponent(); 48 | return added; 49 | } 50 | 51 | protected GeoSet getDestinationGeoSet() { 52 | return this.mapComponent.getImportExportGeoSet(); 53 | } 54 | 55 | private void informMapComponent() { 56 | this.mapComponent.showAll(); 57 | this.mapComponent.addUndo("Import Data"); 58 | } 59 | } -------------------------------------------------------------------------------- /src/ika/geoimport/OldImageImporter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/geoimport/OldImageImporter.java -------------------------------------------------------------------------------- /src/ika/geoimport/ShapeImporter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ShapeImporter.java 3 | * 4 | * Created on August 16, 2006, 7:56 PM 5 | * 6 | */ 7 | package ika.geoimport; 8 | 9 | import ika.geo.*; 10 | import ika.table.*; 11 | import java.io.IOException; 12 | 13 | /** 14 | * An importer for ESRI shape file sets. Reads geometry from a shp file, and 15 | * attributes from a dbf file. 16 | * @author Bernhard Jenny, Institute of Cartography, ETH Zurich 17 | */ 18 | public class ShapeImporter extends ShapeGeometryImporter 19 | implements TableLinkImporter { 20 | 21 | private TableLink tableLink; 22 | 23 | /** Creates a new instance of ShapeImporter */ 24 | public ShapeImporter() { 25 | } 26 | 27 | @Override 28 | protected GeoObject importData(java.net.URL url) throws IOException { 29 | GeoSet geoSet = (GeoSet) super.importData(url); 30 | if (this.progressIndicator != null && this.progressIndicator.isAborted()) { 31 | return null; 32 | } 33 | 34 | // import the Table 35 | DBFImporter dbfImporter = new DBFShapeImporter(); 36 | Table table = dbfImporter.read(url); 37 | 38 | if (table.getRowCount() < geoSet.getNumberOfChildren()) { 39 | throw new java.io.IOException("DBF Shape attributes corrupt."); 40 | } 41 | 42 | // create a link between the table and the geometry 43 | if (geoSet != null && table != null) { 44 | this.tableLink = new TableLink(table, geoSet); 45 | } else { 46 | this.tableLink = null; 47 | } 48 | 49 | return geoSet; 50 | } 51 | 52 | public TableLink getTableLink() { 53 | return this.tableLink; 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /src/ika/geoimport/SynchroneDataReceiver.java: -------------------------------------------------------------------------------- 1 | package ika.geoimport; 2 | 3 | import ika.geo.GeoObject; 4 | import ika.geo.GeoSet; 5 | 6 | /** 7 | * A data receiver that collects imported data in a GeoSet. It is executed in 8 | * the thread of the calling method. 9 | * @author Bernhard Jenny, Institute of Cartography, ETH Zurich. 10 | */ 11 | public class SynchroneDataReceiver extends DataReceiver { 12 | 13 | private GeoSet geoSet; 14 | 15 | public SynchroneDataReceiver() { 16 | this.geoSet = new GeoSet(); 17 | } 18 | 19 | public SynchroneDataReceiver(GeoSet destinationGeoSet) { 20 | this.geoSet = destinationGeoSet != null ? destinationGeoSet : new GeoSet(); 21 | } 22 | 23 | public GeoSet getDestinationGeoSet() { 24 | return this.geoSet; 25 | } 26 | 27 | public GeoObject getImportedData() { 28 | 29 | if (this.geoSet.getNumberOfChildren() == 0) 30 | return null; 31 | 32 | GeoSet res = this.geoSet; 33 | while (res.getNumberOfChildren() == 1 && (res.getGeoObject(0)) instanceof GeoSet) { 34 | res = (GeoSet) res.getGeoObject(0); 35 | } 36 | return res.getNumberOfChildren() == 1 ? res.getGeoObject(0) : res; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/ika/geoimport/ZippedShapeImporter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ZippedShapeImporter.java 3 | * 4 | * Created on June 26, 2007, 2:03 PM 5 | * 6 | */ 7 | 8 | package ika.geoimport; 9 | 10 | import java.io.BufferedInputStream; 11 | import java.io.IOException; 12 | import java.util.zip.GZIPInputStream; 13 | 14 | /** 15 | * Importer for zipped ESRI Shape files. The shp file is gzipped and its ".shp" 16 | * file extension is replaced by ".gz". 17 | * @author Bernhard Jenny, Institute of Cartography, ETH Zurich. 18 | */ 19 | public class ZippedShapeImporter extends ShapeImporter { 20 | 21 | /** Creates a new instance of ZippedShapeImporter */ 22 | public ZippedShapeImporter() { 23 | } 24 | 25 | protected String getLowerCaseDataFileExtension() { 26 | return "gz"; 27 | } 28 | 29 | protected BufferedInputStream findInputStream(java.net.URL url) throws IOException { 30 | BufferedInputStream bis = new BufferedInputStream( new GZIPInputStream(url.openStream())); 31 | return bis; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/ika/geoimport/geoimport.properties: -------------------------------------------------------------------------------- 1 | #importers for geo data 2 | geoimporters=ika.geoimport.ImageImporter,ika.geoimport.ShapeImporter,ika.geoimport.UngenerateImporter,ika.geoimport.ZippedShapeImporter 3 | -------------------------------------------------------------------------------- /src/ika/gui/CheckBoxCellRenderer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * CheckBoxCellRenderer.java 3 | * 4 | * Created on March 6, 2006, 11:54 AM 5 | * 6 | * To change this template, choose Tools | Template Manager 7 | * and open the template in the editor. 8 | */ 9 | 10 | package ika.gui; 11 | 12 | import javax.swing.*; 13 | import javax.swing.border.*; 14 | import java.awt.*; 15 | import java.awt.event.*; 16 | 17 | /** 18 | * 19 | * @author jenny 20 | */ 21 | public class CheckBoxCellRenderer implements ListCellRenderer { 22 | 23 | /** Creates a new instance of CheckBoxCellRenderer */ 24 | public CheckBoxCellRenderer() { 25 | } 26 | 27 | public Component getListCellRendererComponent( 28 | JList list, Object value, int index, 29 | boolean isSelected, boolean cellHasFocus) { 30 | JCheckBox checkbox = new JCheckBox(value.toString()); 31 | checkbox.setBackground(Color.WHITE); 32 | checkbox.setSelected(isSelected); 33 | checkbox.setEnabled(true); 34 | checkbox.setFocusPainted(false); 35 | return checkbox; 36 | } 37 | } -------------------------------------------------------------------------------- /src/ika/gui/DnDListModel.java: -------------------------------------------------------------------------------- 1 | /* 2 | * DnDListModel.java 3 | * 4 | * Created on March 1, 2006, 1:51 PM 5 | * 6 | */ 7 | 8 | package ika.gui; 9 | 10 | import java.util.*; 11 | 12 | /** 13 | * A ListModel for DraggableList. 14 | * Originally based on https://www.informit.com/guides/content.asp?g=java&seqNum=58 15 | * @author Bernhard Jenny, Institute of Cartography, ETH Zurich 16 | */ 17 | public class DnDListModel extends javax.swing.DefaultListModel { 18 | 19 | public DnDListModel() { 20 | } 21 | 22 | public DnDListModel(Object[] listData){ 23 | for (int i = 0; i < listData.length; i++) { 24 | this.addElement(listData[i]); 25 | } 26 | } 27 | 28 | public DnDListModel(Vector listData) { 29 | for (int i = 0; i < listData.size(); i++) { 30 | this.addElement(listData.get(i)); 31 | } 32 | } 33 | 34 | public DnDListModel(javax.swing.ListModel listModel) { 35 | for (int i = 0; i < listModel.getSize(); i++) { 36 | this.addElement(listModel.getElementAt(i)); 37 | } 38 | } 39 | 40 | public void itemsMoved( int newIndex, int[] indicies ) { 41 | // Copy the objects to a temporary ArrayList 42 | ArrayList objects = new ArrayList(); 43 | for (int i = 0; i < indicies.length; i++) { 44 | objects.add(this.get(indicies[i])); 45 | } 46 | 47 | // Delete the objects from the list 48 | for( int i=indicies.length-1; i>=0; i-- ) { 49 | this.remove( indicies[ i ] ); 50 | } 51 | 52 | // Insert the items at the new location 53 | for( Iterator i = objects.iterator(); i.hasNext(); ) { 54 | this.insertElementAt(i.next(), newIndex++); 55 | } 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /src/ika/gui/DocumentSizeFilter.java: -------------------------------------------------------------------------------- 1 | /** 2 | * A DocumentFilter to limit the number of characters in a Document used 3 | * by swing text fields. 4 | * A 1.4 class used by TextComponentDemo.java. 5 | * Adapted and changed from: 6 | * http://java.sun.com/docs/books/tutorial/uiswing/components/example-1dot4/DocumentSizeFilter.java 7 | */ 8 | 9 | package ika.gui; 10 | 11 | import javax.swing.*; 12 | import javax.swing.text.*; 13 | import java.awt.Toolkit; 14 | 15 | public class DocumentSizeFilter extends DocumentFilter { 16 | int maxCharacters; 17 | 18 | public DocumentSizeFilter(int maxChars) { 19 | maxCharacters = maxChars; 20 | } 21 | 22 | public void insertString(FilterBypass fb, int offs, 23 | String str, AttributeSet a) 24 | throws BadLocationException { 25 | 26 | //This rejects the entire insertion if it would make 27 | //the contents too long. Another option would be 28 | //to truncate the inserted string so the contents 29 | //would be exactly maxCharacters in length. 30 | if ((fb.getDocument().getLength() + str.length()) <= maxCharacters) 31 | super.insertString(fb, offs, str, a); 32 | else 33 | Toolkit.getDefaultToolkit().beep(); 34 | } 35 | 36 | public void replace(FilterBypass fb, int offs, 37 | int length, 38 | String str, AttributeSet a) 39 | throws BadLocationException { 40 | 41 | if (fb == null || str == null) 42 | return; 43 | 44 | //This rejects the entire replacement if it would make 45 | //the contents too long. Another option would be 46 | //to truncate the replacement string so the contents 47 | //would be exactly maxCharacters in length. 48 | if ((fb.getDocument().getLength() + str.length() 49 | - length) <= maxCharacters) 50 | super.replace(fb, offs, length, str, a); 51 | else 52 | Toolkit.getDefaultToolkit().beep(); 53 | } 54 | 55 | } 56 | -------------------------------------------------------------------------------- /src/ika/gui/FlexProjectorPreferencesPanel.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/gui/FlexProjectorPreferencesPanel.java -------------------------------------------------------------------------------- /src/ika/gui/FlexProjectorWindow.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/gui/FlexProjectorWindow.java -------------------------------------------------------------------------------- /src/ika/gui/FlexUndoManager.java: -------------------------------------------------------------------------------- 1 | /* 2 | * FlexUndoManager.java 3 | * 4 | * Created on September 28, 2007, 11:17 PM 5 | * 6 | */ 7 | 8 | package ika.gui; 9 | 10 | import ika.geo.FlexProjectorModel; 11 | import ika.proj.DesignProjection; 12 | import java.io.IOException; 13 | 14 | /** 15 | * 16 | * @author Bernhard Jenny, Institute of Cartography, ETH Zurich 17 | */ 18 | public class FlexUndoManager implements MapUndoManager { 19 | 20 | FlexProjectorModel flexProjectorModel; 21 | ProjectionBrewerPanel flexPanel; 22 | 23 | /** Creates a new instance of FlexUndoManager */ 24 | public FlexUndoManager(FlexProjectorModel flexProjectorModel, 25 | ProjectionBrewerPanel flexPanel) { 26 | 27 | this.flexProjectorModel = flexProjectorModel; 28 | this.flexPanel = flexPanel; 29 | 30 | } 31 | 32 | @Override 33 | public void applyUndoRedoState(Object data) throws IOException, ClassNotFoundException { 34 | 35 | DesignProjection p = DesignProjection.factory((String)data); 36 | flexProjectorModel.setDesignProjection(p); 37 | flexPanel.updateDistortionIndicesAndInformListeners(); 38 | 39 | // update the gui 40 | flexPanel.writeMethodGUI(); 41 | } 42 | 43 | @Override 44 | public Object getUndoRedoState() throws IOException { 45 | return flexProjectorModel.getDesignProjection().serializeToString(); 46 | } 47 | 48 | } 49 | -------------------------------------------------------------------------------- /src/ika/gui/GeoInspectorPanel.form: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/ika/gui/ImageDisplayer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ImageDisplayer.java 3 | * 4 | * Created on December 3, 2007, 2:41 PM 5 | * 6 | */ 7 | 8 | package ika.gui; 9 | 10 | import java.awt.BorderLayout; 11 | import java.awt.image.BufferedImage; 12 | 13 | /** 14 | * 15 | * @author Bernhard Jenny, Institute of Cartography, ETH Zurich. 16 | */ 17 | public class ImageDisplayer { 18 | 19 | private javax.swing.JFrame frame; 20 | private javax.swing.JLabel label; 21 | 22 | /** Creates a new instance of ImageDisplayer */ 23 | public ImageDisplayer(BufferedImage image) { 24 | this.displayImageInWindow(image); 25 | } 26 | 27 | public void displayImageInWindow(BufferedImage image) { 28 | // Use a JLabel in a JFrame to display the image 29 | frame = new javax.swing.JFrame(); 30 | label = new javax.swing.JLabel(new javax.swing.ImageIcon(image)); 31 | frame.getContentPane().add(label, BorderLayout.CENTER); 32 | frame.pack(); 33 | frame.setVisible(true); 34 | } 35 | 36 | public void updateImage(BufferedImage image) { 37 | int h = label.getIcon().getIconHeight(); 38 | int w = label.getIcon().getIconWidth(); 39 | label.setIcon(new javax.swing.ImageIcon(image)); 40 | if (h != image.getHeight() || w != image.getWidth()) 41 | frame.pack(); 42 | } 43 | 44 | 45 | } 46 | -------------------------------------------------------------------------------- /src/ika/gui/MapUndoManager.java: -------------------------------------------------------------------------------- 1 | /* 2 | * MapUndoManager.java 3 | * 4 | * Created on September 28, 2007, 10:55 PM 5 | * 6 | */ 7 | 8 | package ika.gui; 9 | 10 | import java.io.IOException; 11 | 12 | /** 13 | * This is a plug-in for the MapComponent that allows the undo/redo 14 | * process to be customized. 15 | * @author Bernhard Jenny, Institute of Cartography, ETH Zurich 16 | */ 17 | public interface MapUndoManager { 18 | 19 | /** 20 | * Restore the data to a snapshot that was previously taken. 21 | */ 22 | public void applyUndoRedoState(Object data) throws IOException, ClassNotFoundException; 23 | 24 | /** 25 | * Provide a data snapshot of the current state. 26 | */ 27 | public Object getUndoRedoState() throws IOException; 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/ika/gui/MenuUtils.java: -------------------------------------------------------------------------------- 1 | /* 2 | * MenuUtils.java 3 | * 4 | * Created on June 16, 2007, 3:17 PM 5 | * 6 | */ 7 | 8 | package ika.gui; 9 | 10 | import javax.swing.*; 11 | 12 | /** 13 | * 14 | * @author Bernhard Jenny, Institute of Cartography, ETH Zurich 15 | */ 16 | public class MenuUtils { 17 | 18 | /** 19 | * Adds a menu shortcut (or accelerator) to the input map. This can be used 20 | * to add multiple shortcuts to a menu item. 21 | * @uniqueActionName A unique name. 22 | * @action The action to add. 23 | * @keyCode Virtual key code, e.g. KeyEvent.VK_L 24 | * @frame The frome for which to add the action. 25 | */ 26 | public static void registerMenuShortcut(String uniqueActionName, 27 | Action action, int keyCode, JFrame frame) { 28 | 29 | JRootPane rootPane = frame.getRootPane(); 30 | InputMap inputMap = rootPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW); 31 | ActionMap actionMap = rootPane.getActionMap(); 32 | int ctrlKey = java.awt.Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(); 33 | inputMap.put(KeyStroke.getKeyStroke(keyCode, ctrlKey), uniqueActionName); 34 | actionMap.put(uniqueActionName, action); 35 | 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/ika/gui/PageFormatChangeListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * PageFormatChangeListener.java 3 | * 4 | * Created on April 20, 2007, 9:37 PM 5 | * 6 | */ 7 | 8 | package ika.gui; 9 | 10 | /** 11 | * 12 | * @author Bernhard Jenny, Institute of Cartography, ETH Zurich 13 | */ 14 | public interface PageFormatChangeListener { 15 | public void pageFormatChanged (PageFormat pageFormat); 16 | } 17 | -------------------------------------------------------------------------------- /src/ika/gui/PreferencesPanel.java: -------------------------------------------------------------------------------- 1 | /* 2 | * PreferencesPanel.java 3 | * 4 | * Created on June 2, 2007, 9:39 PM 5 | * 6 | */ 7 | 8 | package ika.gui; 9 | 10 | /** 11 | * A PreferencesPanel is shown by a PreferencesDialog. 12 | * @author Bernhard Jenny, Institute of Cartography, ETH Zurich 13 | */ 14 | public interface PreferencesPanel { 15 | 16 | public void okPressed(); 17 | 18 | public void cancelPressed(); 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/ika/gui/ProjDistortionTable.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/gui/ProjDistortionTable.java -------------------------------------------------------------------------------- /src/ika/gui/ProjectionBrewerPanel.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/gui/ProjectionBrewerPanel.java -------------------------------------------------------------------------------- /src/ika/gui/ScaleChangeHandler.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ScaleChangeHandler.java 3 | * 4 | * Created on February 26, 2007, 8:32 PM 5 | * 6 | */ 7 | 8 | package ika.gui; 9 | 10 | /** 11 | * An event handler that is called whenever the scale of MapComponent changes. 12 | * @author Bernhard Jenny, Institute of Cartography, ETH Zurich 13 | */ 14 | public interface ScaleChangeHandler { 15 | 16 | /** 17 | * This method is called whenever the scale of the map changes. 18 | * @param mapComponent The MapComponent that just changed its scale. 19 | * @param currentMapScaleFactor The scale factor to transform from screen 20 | * pixels to coordinates as currently displayed. 21 | * @param currentMapScaleNumber The scale to transform from ground coordinates 22 | * to coordinates as currently displayed. 23 | */ 24 | public void scaleChanged (MapComponent mapComponent, 25 | double currentMapScaleFactor, 26 | double currentMapScaleNumber); 27 | } 28 | -------------------------------------------------------------------------------- /src/ika/gui/ToggleSelectionModel.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ToggleSelectionModel.java 3 | * 4 | * Created on March 6, 2006, 3:26 PM 5 | * 6 | */ 7 | 8 | package ika.gui; 9 | 10 | import javax.swing.*; 11 | 12 | /** 13 | * ToggleSelectionModel toggles the selection state of an item clicked in a JList. 14 | * modified version of http://java.sun.com/products/jfc/tsc/tech_topics/jlist_1/jlist.html 15 | */ 16 | public class ToggleSelectionModel extends DefaultListSelectionModel { 17 | 18 | // toggling should only occur for the first update generated by a mouse 19 | // press-drag-release gesture. The gestureStarted flag keeps track of this. 20 | boolean gestureStarted = false; 21 | 22 | public void setSelectionInterval(int index0, int index1) { 23 | 24 | // in single selection mode, only the second argument is used. 25 | if (this.getSelectionMode() == this.SINGLE_SELECTION) { 26 | if (this.isSelectedIndex(index1) && !gestureStarted) 27 | super.removeSelectionInterval(index0, index1); 28 | else 29 | super.setSelectionInterval(index0, index1); 30 | } else { 31 | // multiple selection 32 | if (isSelectedIndex(index0) && index0 == index1 && !gestureStarted) { 33 | super.removeSelectionInterval(index0, index1); 34 | } else { 35 | super.addSelectionInterval(index0, index1); 36 | } 37 | } 38 | gestureStarted = true; 39 | } 40 | 41 | public void setValueIsAdjusting(boolean isAdjusting) { 42 | if (isAdjusting == false) { 43 | gestureStarted = false; 44 | } 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /src/ika/gui/TransparentMacPanel.java: -------------------------------------------------------------------------------- 1 | package ika.gui; 2 | 3 | import java.awt.LayoutManager; 4 | import javax.swing.JPanel; 5 | 6 | /** 7 | * Makes a JPanel transparent when on Mac OS X or newer. This is useful for 8 | * panels in JTabbedPanes. 9 | * @author Bernhard Jenny, Institute of Cartography, ETH Zurich. 10 | */ 11 | public class TransparentMacPanel extends JPanel { 12 | 13 | private void conditionalTransparency() { 14 | if (ika.utils.Sys.isMacOSX_10_5_orHigherWithJava5()) { 15 | this.setOpaque(false); 16 | } 17 | } 18 | 19 | public TransparentMacPanel(LayoutManager layout, boolean isDoubleBuffered) { 20 | super(layout, isDoubleBuffered); 21 | conditionalTransparency(); 22 | } 23 | 24 | public TransparentMacPanel(LayoutManager layout) { 25 | super(layout); 26 | conditionalTransparency(); 27 | } 28 | 29 | public TransparentMacPanel(boolean isDoubleBuffered) { 30 | super(isDoubleBuffered); 31 | conditionalTransparency(); 32 | } 33 | 34 | public TransparentMacPanel() { 35 | conditionalTransparency(); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/ika/icons/Action.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/icons/Action.png -------------------------------------------------------------------------------- /src/ika/icons/Arrow16x16.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/icons/Arrow16x16.gif -------------------------------------------------------------------------------- /src/ika/icons/Black16x16.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/icons/Black16x16.gif -------------------------------------------------------------------------------- /src/ika/icons/Box16x16.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/icons/Box16x16.gif -------------------------------------------------------------------------------- /src/ika/icons/Circle16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/icons/Circle16x16.png -------------------------------------------------------------------------------- /src/ika/icons/ClosedHand16x16.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/icons/ClosedHand16x16.gif -------------------------------------------------------------------------------- /src/ika/icons/ClosedHand32x32.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/icons/ClosedHand32x32.gif -------------------------------------------------------------------------------- /src/ika/icons/Hand16x16.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/icons/Hand16x16.gif -------------------------------------------------------------------------------- /src/ika/icons/Hand32x32.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/icons/Hand32x32.gif -------------------------------------------------------------------------------- /src/ika/icons/Line16x16.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/icons/Line16x16.gif -------------------------------------------------------------------------------- /src/ika/icons/MovePoint16x16.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/icons/MovePoint16x16.gif -------------------------------------------------------------------------------- /src/ika/icons/MovePoint32x32.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/icons/MovePoint32x32.gif -------------------------------------------------------------------------------- /src/ika/icons/Pen16x16.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/icons/Pen16x16.gif -------------------------------------------------------------------------------- /src/ika/icons/Pen32x32.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/icons/Pen32x32.gif -------------------------------------------------------------------------------- /src/ika/icons/Rotate32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/icons/Rotate32x32.png -------------------------------------------------------------------------------- /src/ika/icons/Ruler16x16.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/icons/Ruler16x16.gif -------------------------------------------------------------------------------- /src/ika/icons/ScaleAsc32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/icons/ScaleAsc32x32.png -------------------------------------------------------------------------------- /src/ika/icons/ScaleDes32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/icons/ScaleDes32x32.png -------------------------------------------------------------------------------- /src/ika/icons/ScaleH32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/icons/ScaleH32x32.png -------------------------------------------------------------------------------- /src/ika/icons/ScaleV32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/icons/ScaleV32x32.png -------------------------------------------------------------------------------- /src/ika/icons/SelectPoints16x16.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/icons/SelectPoints16x16.gif -------------------------------------------------------------------------------- /src/ika/icons/SelectPoints32x32.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/icons/SelectPoints32x32.gif -------------------------------------------------------------------------------- /src/ika/icons/SetPoint16x16.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/icons/SetPoint16x16.gif -------------------------------------------------------------------------------- /src/ika/icons/SetPoint32x32.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/icons/SetPoint32x32.gif -------------------------------------------------------------------------------- /src/ika/icons/ShowAll16x16.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/icons/ShowAll16x16.gif -------------------------------------------------------------------------------- /src/ika/icons/ShowAll20x14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/icons/ShowAll20x14.png -------------------------------------------------------------------------------- /src/ika/icons/Text16x16.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/icons/Text16x16.gif -------------------------------------------------------------------------------- /src/ika/icons/ZoomIn16x16.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/icons/ZoomIn16x16.gif -------------------------------------------------------------------------------- /src/ika/icons/ZoomIn32x32.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/icons/ZoomIn32x32.gif -------------------------------------------------------------------------------- /src/ika/icons/ZoomOut16x16.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/icons/ZoomOut16x16.gif -------------------------------------------------------------------------------- /src/ika/icons/ZoomOut32x32.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/icons/ZoomOut32x32.gif -------------------------------------------------------------------------------- /src/ika/icons/curve_linear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/icons/curve_linear.png -------------------------------------------------------------------------------- /src/ika/icons/curve_peak.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/icons/curve_peak.png -------------------------------------------------------------------------------- /src/ika/icons/curve_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/icons/curve_round.png -------------------------------------------------------------------------------- /src/ika/icons/line1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/icons/line1.gif -------------------------------------------------------------------------------- /src/ika/icons/line2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/icons/line2.gif -------------------------------------------------------------------------------- /src/ika/icons/line3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/icons/line3.gif -------------------------------------------------------------------------------- /src/ika/icons/line4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/icons/line4.gif -------------------------------------------------------------------------------- /src/ika/icons/line5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/icons/line5.gif -------------------------------------------------------------------------------- /src/ika/icons/logo128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/icons/logo128x128.png -------------------------------------------------------------------------------- /src/ika/icons/logo64x64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/icons/logo64x64.png -------------------------------------------------------------------------------- /src/ika/icons/point1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/icons/point1.gif -------------------------------------------------------------------------------- /src/ika/icons/point2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/icons/point2.gif -------------------------------------------------------------------------------- /src/ika/icons/point3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/icons/point3.gif -------------------------------------------------------------------------------- /src/ika/icons/point4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/icons/point4.gif -------------------------------------------------------------------------------- /src/ika/icons/point5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/icons/point5.gif -------------------------------------------------------------------------------- /src/ika/icons/point6.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/icons/point6.gif -------------------------------------------------------------------------------- /src/ika/icons/text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/icons/text.png -------------------------------------------------------------------------------- /src/ika/map/tools/CombinableTool.java: -------------------------------------------------------------------------------- 1 | /* 2 | * CombinableTool.java 3 | * 4 | * Created on March 29, 2007, 11:24 AM 5 | * 6 | */ 7 | 8 | package ika.map.tools; 9 | 10 | import java.awt.geom.Point2D; 11 | 12 | /** 13 | * A CombinableTool can be part of a CombinedTool. 14 | * @author Bernhard Jenny, Institute of Cartography, ETH Zurich. 15 | */ 16 | public interface CombinableTool { 17 | /** 18 | * Adjust the cursor if necessary. Don't set the cursor to the default cursor. 19 | * @return True if the cursor has been changed. 20 | */ 21 | boolean adjustCursor(Point2D.Double point); 22 | } 23 | -------------------------------------------------------------------------------- /src/ika/map/tools/MapToolMouseMotionListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * MapToolMouseMotionListener.java 3 | * 4 | * Created on May 15, 2005, 6:47 PM 5 | */ 6 | 7 | package ika.map.tools; 8 | 9 | import java.awt.geom.*; 10 | import ika.gui.MapComponent; 11 | 12 | /** 13 | * 14 | * @author jenny 15 | */ 16 | public interface MapToolMouseMotionListener { 17 | public void mouseMoved(Point2D.Double point, MapComponent mapComponent); 18 | } 19 | -------------------------------------------------------------------------------- /src/ika/map/tools/MeasureToolListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * MeasureToolListener.java 3 | * 4 | * Created on April 22, 2005, 2:47 PM 5 | */ 6 | 7 | package ika.map.tools; 8 | 9 | /** 10 | * MeasureToolListener - a listener for events generated by a MeasureTool. 11 | * @author Bernhard Jenny, Institute of Cartography, ETH Zurich. 12 | */ 13 | public interface MeasureToolListener { 14 | 15 | /** 16 | * The measure tool has computed a new distance. This is called while the 17 | * user drags the mouse. 18 | * @param distance The new distance. 19 | */ 20 | void distanceChanged(double distance, double angle, ika.gui.MapComponent mapComponent); 21 | 22 | /** 23 | * The measure tool has computed a new distance. This is called when the user 24 | * releases the mouse. 25 | * @param distance The new distance. 26 | */ 27 | void newDistance(double distance, double angle, ika.gui.MapComponent mapComponent); 28 | 29 | 30 | /** 31 | * The mouse has been released, the line is therefore not visible anymore 32 | * in the map. 33 | */ 34 | void clearDistance(); 35 | } 36 | -------------------------------------------------------------------------------- /src/ika/map/tools/PolygonTool.java: -------------------------------------------------------------------------------- 1 | /* 2 | * PolygonTool.java 3 | * 4 | * Created on October 27, 2005, 12:02 PM 5 | * 6 | */ 7 | 8 | package ika.map.tools; 9 | 10 | import ika.gui.MapComponent; 11 | 12 | /** 13 | * Tool to draw GeoPaths 14 | * @author jenny 15 | */ 16 | public class PolygonTool extends PolygonToolBase { 17 | 18 | /** Creates a new instance of PolygonTool */ 19 | public PolygonTool(MapComponent mapComponent) { 20 | super(mapComponent); 21 | } 22 | 23 | /** 24 | * Finish drawing. Add the GeoPath to the map. 25 | */ 26 | protected void finishPath() { 27 | 28 | // add the GeoPath to the map. 29 | if (geoPath != null && geoPath.hasOneOrMorePoints()) { 30 | //geoPath.setSelected(false); 31 | if (this.destinationGeoSet != null) 32 | this.destinationGeoSet.add(geoPath); 33 | else 34 | this.mapComponent.addGeoObject(geoPath, true); 35 | } 36 | 37 | // this will reset the GeoPath. So call this at the end of this method. 38 | super.finishPath(); 39 | } 40 | 41 | protected String getCursorName() { 42 | return "pen"; 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /src/ika/map/tools/RotateScaleMoveSelectionTool.java: -------------------------------------------------------------------------------- 1 | /* 2 | * RotateScaleMoveSelectionTool.java 3 | * 4 | * Created on May 31, 2006, 11:15 AM 5 | * 6 | */ 7 | 8 | package ika.map.tools; 9 | 10 | import ika.gui.MapComponent; 11 | 12 | /** 13 | * A tool to select objects (by clicking or by rectangular dragging), to move, 14 | * scale and rotate objects. 15 | * @author Bernhard Jenny, Institute of Cartography, ETH Zurich. 16 | */ 17 | public class RotateScaleMoveSelectionTool extends CombinedTool { 18 | 19 | /** 20 | * Creates a new instance of RotateScaleMoveSelectionTool 21 | */ 22 | public RotateScaleMoveSelectionTool(MapComponent mapComponent) { 23 | super(mapComponent, "Select - Move - Scale"); 24 | 25 | SelectionTool selectionTool = new SelectionTool(this.mapComponent); 26 | MoverTool moveTool = new MoverTool(this.mapComponent); 27 | moveTool.setSelectOnDragStart(true); 28 | ScaleTool scaleTool = new ScaleTool(this.mapComponent); 29 | RotateTool rotateTool = new RotateTool(this.mapComponent); 30 | 31 | this.addMapTool(scaleTool); 32 | this.addMapTool(rotateTool); 33 | this.addMapTool(moveTool); 34 | // selection tool must be last added tool 35 | this.addMapTool(selectionTool); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/ika/map/tools/ScaleMoveSelectionTool.java: -------------------------------------------------------------------------------- 1 | /* 2 | * RotateScaleMoveSelectionTool.java 3 | * 4 | * Created on May 31, 2006, 11:15 AM 5 | * 6 | */ 7 | 8 | package ika.map.tools; 9 | 10 | import ika.gui.MapComponent; 11 | 12 | /** 13 | * A tool to select objects (by clicking or by rectangular dragging), to move, 14 | * scale and rotate objects. 15 | * @author Bernhard Jenny, Institute of Cartography, ETH Zurich. 16 | */ 17 | public class ScaleMoveSelectionTool extends CombinedTool { 18 | 19 | /** 20 | * Creates a new instance of RotateScaleMoveSelectionTool 21 | */ 22 | public ScaleMoveSelectionTool(MapComponent mapComponent) { 23 | super(mapComponent, "Select - Move - Scale"); 24 | 25 | SelectionTool selectionTool = new SelectionTool(this.mapComponent); 26 | MoverTool moveTool = new MoverTool(this.mapComponent); 27 | moveTool.setSelectOnDragStart(true); 28 | ScaleTool scaleTool = new ScaleTool(this.mapComponent); 29 | 30 | this.addMapTool(scaleTool); 31 | this.addMapTool(moveTool); 32 | // selection tool must be added last 33 | this.addMapTool(selectionTool); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/ika/map/tools/SelectionTool.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SelectionTool.java 3 | * 4 | * Created on April 7, 2005, 7:21 PM 5 | */ 6 | package ika.map.tools; 7 | 8 | import java.awt.geom.*; 9 | import java.awt.event.*; 10 | import ika.gui.MapComponent; 11 | 12 | /** 13 | * SelectionTool - a tool to select GeoObjects by mouse clicks and mouse drags. 14 | * @author Bernhard Jenny, Institute of Cartography, ETH Zurich. 15 | */ 16 | public class SelectionTool extends RectangleTool implements CombinableTool { 17 | 18 | /** 19 | * Tolerance for selection of objects by mouse clicks. 20 | */ 21 | protected static final int CLICK_PIXEL_TOLERANCE = 2; 22 | 23 | /** 24 | * Create a new instance. 25 | * @param mapComponent The MapComponent for which this MapTool provides its services. 26 | */ 27 | public SelectionTool(MapComponent mapComponent) { 28 | super(mapComponent); 29 | } 30 | 31 | /** 32 | * A drag ends, while this MapTool was the active one. 33 | * @param point The location of the mouse in world coordinates. 34 | * @param evt The original event. 35 | */ 36 | @Override 37 | public void endDrag(Point2D.Double point, MouseEvent evt) { 38 | Rectangle2D.Double r = getRectangle(); 39 | super.endDrag(point, evt); 40 | boolean selChanged = mapComponent.selectByRectangle(r, evt.isShiftDown()); 41 | setDefaultCursor(); 42 | } 43 | 44 | /** 45 | * The mouse was clicked, while this MapTool was the active one. 46 | * @param point The location of the mouse in world coordinates. 47 | * @param evt The original event. 48 | */ 49 | @Override 50 | public void mouseClicked(Point2D.Double point, MouseEvent evt) { 51 | //super.mouseClicked(point, evt); 52 | 53 | // try selecting objects close to the mouse click. 54 | boolean selChanged = mapComponent.selectByPoint( 55 | point, evt.isShiftDown(), CLICK_PIXEL_TOLERANCE); 56 | } 57 | 58 | @Override 59 | protected String getCursorName() { 60 | return "selectionarrow"; 61 | } 62 | 63 | public boolean adjustCursor(Point2D.Double point) { 64 | this.setDefaultCursor(); 65 | return true; 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /src/ika/map/tools/SingleSelectionPointSetterTool.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SingleSelectionPointSetterTool.java 3 | * 4 | * Created on June 30, 2005, 9:48 AM 5 | * 6 | */ 7 | 8 | package ika.map.tools; 9 | 10 | import ika.gui.MapComponent; 11 | import ika.geo.*; 12 | import java.awt.geom.*; 13 | import java.awt.event.*; 14 | 15 | /** 16 | * SingleSelectionPointSetterTool extends PointSetterTool and allows for a new 17 | * point to be set only when the currently selected point can first be deselected. 18 | * @author jenny 19 | */ 20 | public class SingleSelectionPointSetterTool extends PointSetterTool { 21 | 22 | /** 23 | * Create a new instance. 24 | * @param mapComponent The MapComponent for which this MapTool provides its services. 25 | * @param destinationGeoSet The GeoSet that will receive the newly created points. 26 | */ 27 | public SingleSelectionPointSetterTool(MapComponent mapComponent) { 28 | super(mapComponent); 29 | } 30 | 31 | /** 32 | * Create a new instance. 33 | * @param mapComponent The MapComponent for which this MapTool provides its services. 34 | * @param destinationGeoSet The GeoSet that will receive the newly created points. 35 | * @param pointSymbol The PointSymbol used to draw newly created points. 36 | */ 37 | public SingleSelectionPointSetterTool(MapComponent mapComponent, 38 | PointSymbol pointSymbol) { 39 | super(mapComponent, pointSymbol); 40 | } 41 | 42 | /** 43 | * The mouse was clicked, while this MapTool was the active one. 44 | * @param point The location of the mouse in world coordinates. 45 | * @param evt The original event. 46 | */ 47 | public void mouseClicked(Point2D.Double point, MouseEvent evt) { 48 | if (this.getDestinationGeoSet() == null) 49 | return; 50 | 51 | // test if the currently selected point can be deselected. 52 | //if (this.getDestinationGeoSet().canChangeSelectionOfChildren()) 53 | super.mouseClicked(point, evt); 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /src/ika/map/tools/ZoomOutTool.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ZoomOutTool.java 3 | * 4 | * Created on April 8, 2005, 12:20 PM 5 | */ 6 | package ika.map.tools; 7 | 8 | import java.awt.geom.*; 9 | import java.awt.event.*; 10 | import ika.gui.MapComponent; 11 | 12 | /** 13 | * ZoomOutTool - a MapTool to zoom out in a map. 14 | * @author Bernhard Jenny, Institute of Cartography, ETH Zurich. 15 | */ 16 | public class ZoomOutTool extends MapTool { 17 | 18 | /** 19 | * Creates a new instance of ZoomOutTool 20 | * @param mapComponent The MapComponent for which to zoom out. 21 | */ 22 | public ZoomOutTool(MapComponent mapComponent) { 23 | super(mapComponent); 24 | } 25 | 26 | /** 27 | * The mouse was clicked, while this MapTool was the active one. 28 | * @param point The location of the mouse in world coordinates. 29 | * @param evt The original event. 30 | */ 31 | @Override 32 | public void mouseClicked(Point2D.Double point, MouseEvent evt) { 33 | mapComponent.zoomOut(point); 34 | } 35 | 36 | @Override 37 | protected String getCursorName() { 38 | return "zoomout"; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /src/ika/proj/AbstractMixerProjection.java: -------------------------------------------------------------------------------- 1 | package ika.proj; 2 | 3 | import com.jhlabs.map.proj.MillerCylindrical1Projection; 4 | import com.jhlabs.map.proj.MollweideProjection; 5 | import com.jhlabs.map.proj.Projection; 6 | 7 | /** 8 | * 9 | * @author jenny 10 | */ 11 | public abstract class AbstractMixerProjection extends DesignProjection { 12 | 13 | protected Projection p1 = new MollweideProjection(); 14 | protected Projection p2 = new MillerCylindrical1Projection(); 15 | 16 | public Projection getProjection1() { 17 | return p1; 18 | } 19 | 20 | public void setProjection1(Projection p) { 21 | if (!canMix(p)) { 22 | throw new IllegalArgumentException("cannot mix projection " + p); 23 | } 24 | this.p1 = p; 25 | } 26 | 27 | public Projection getProjection2() { 28 | return p2; 29 | } 30 | 31 | public void setProjection2(Projection p) { 32 | if (!canMix(p)) { 33 | throw new IllegalArgumentException("cannot mix projection " + p); 34 | } 35 | this.p2 = p; 36 | } 37 | 38 | public boolean canMix(Projection p) { 39 | return true; 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /src/ika/proj/ProjectionDerivatives.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/proj/ProjectionDerivatives.java -------------------------------------------------------------------------------- /src/ika/proj/SerializableProjection.java: -------------------------------------------------------------------------------- 1 | package ika.proj; 2 | 3 | /** 4 | * Methods for serializing and de-serializing designed projections to a string. 5 | * @author jenny 6 | */ 7 | public interface SerializableProjection { 8 | 9 | public String serializeToString(); 10 | public void deserializeFromString(String str); 11 | 12 | } 13 | -------------------------------------------------------------------------------- /src/ika/table/DBFShapeImporter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * DBFShapeImporter.java 3 | * 4 | * Created on July 6, 2006, 2:28 PM 5 | * 6 | */ 7 | 8 | package ika.table; 9 | 10 | 11 | /** 12 | * Extends DBFImporter to add support for finding a dbf file that is part of 13 | * a ESRI shape file set. 14 | * @author jenny 15 | */ 16 | public class DBFShapeImporter extends DBFImporter { 17 | 18 | /** Creates a new instance of DBFShapeImporter */ 19 | public DBFShapeImporter() { 20 | } 21 | 22 | private java.net.URL findDbfFileSibling(java.net.URL url) { 23 | 24 | if (url == null || url.getPath().length() < 5) 25 | return null; 26 | 27 | String lowerCaseFilePath = url.getPath().toLowerCase(); 28 | if (lowerCaseFilePath.endsWith(".dbf")) 29 | return url; 30 | 31 | final boolean is_dbf_sibling = 32 | lowerCaseFilePath.endsWith(".shp") || 33 | lowerCaseFilePath.endsWith(".prj") || 34 | lowerCaseFilePath.endsWith(".sbn") || 35 | lowerCaseFilePath.endsWith(".sbx") || 36 | lowerCaseFilePath.endsWith(".shx"); 37 | 38 | if (!is_dbf_sibling) 39 | return null; 40 | 41 | url = ika.utils.URLUtils.replaceFileExtension(url, "dbf"); 42 | if (!ika.utils.URLUtils.resourceExists(url)) 43 | url = ika.utils.URLUtils.replaceFileExtension(url, "DBF"); 44 | return ika.utils.URLUtils.resourceExists(url) ? url : null; 45 | } 46 | 47 | public Table read(java.net.URL url) throws java.io.IOException { 48 | return super.read(this.findDbfFileSibling(url)); 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /src/ika/table/DisplayableTableColumn.java: -------------------------------------------------------------------------------- 1 | /* 2 | * DisplayableTableColumn.java 3 | * 4 | * Created on June 15, 2006, 5:34 PM 5 | * 6 | */ 7 | 8 | package ika.table; 9 | 10 | import javax.swing.table.TableColumn; 11 | /** 12 | * A TableColumn that overwrites toString to return the header value. 13 | * @author jenny 14 | */ 15 | public class DisplayableTableColumn extends TableColumn { 16 | 17 | /** 18 | * Creates a new instance of DisplayableTableColumn 19 | */ 20 | public DisplayableTableColumn(int modelIndex) { 21 | super(modelIndex); 22 | } 23 | 24 | public String toString() { 25 | return this.getHeaderValue().toString(); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/ika/table/TableExporter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * TableExporter.java 3 | * 4 | * Created on April 13, 2007, 3:46 PM 5 | * 6 | */ 7 | 8 | package ika.table; 9 | 10 | import java.io.IOException; 11 | import java.io.OutputStream; 12 | 13 | /** 14 | * 15 | * @author Bernhard Jenny, Institute of Cartography, ETH Zurich. 16 | */ 17 | public interface TableExporter { 18 | 19 | public void exportTable(OutputStream outputStream, Table table) 20 | throws IOException; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/ika/table/TableImporter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * TableImporter.java 3 | * 4 | * Created on February 1, 2007, 8:57 PM 5 | * 6 | */ 7 | 8 | package ika.table; 9 | 10 | /** 11 | * 12 | * @author Bernhard Jenny, Institute of Cartography, ETH Zurich 13 | */ 14 | public class TableImporter { 15 | 16 | /** Creates a new instance of TableImporter */ 17 | public TableImporter() { 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/ika/table/TableLinkExporter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * TableLinkExporter.java 3 | * 4 | * Created on April 13, 2007, 3:49 PM 5 | * 6 | */ 7 | 8 | package ika.table; 9 | 10 | import java.io.IOException; 11 | 12 | /** 13 | * 14 | * @author Bernhard Jenny, Institute of Cartography, ETH Zurich. 15 | */ 16 | public interface TableLinkExporter { 17 | 18 | public void exportTableForGeometry (String geometryFilePath, 19 | TableLink tableLink) throws IOException; 20 | 21 | public int getFeatureCount(); 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/ika/table/TableLinkImporter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * TableLinkImporter.java 3 | * 4 | * Created on August 16, 2006, 8:16 PM 5 | * 6 | */ 7 | 8 | package ika.table; 9 | 10 | /** 11 | * 12 | * @author Bernhard Jenny, Institute of Cartography, ETH Zurich 13 | */ 14 | public interface TableLinkImporter { 15 | public TableLink getTableLink(); 16 | } 17 | -------------------------------------------------------------------------------- /src/ika/transformation/TransformationAffine6.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/transformation/TransformationAffine6.java -------------------------------------------------------------------------------- /src/ika/transformation/robustestimator/RobustEstimator.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/src/ika/transformation/robustestimator/RobustEstimator.java -------------------------------------------------------------------------------- /src/ika/utils/ApplicationIcon.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ApplicationIcon.java 3 | * 4 | * Created on March 29, 2005, 11:39 PM 5 | */ 6 | 7 | package ika.utils; 8 | 9 | /** 10 | * Returns an icon for this application. 11 | * @author Bernhard Jenny, Institute of Cartography, ETH Zurich. 12 | */ 13 | public class ApplicationIcon { 14 | 15 | /** 16 | * Returns an icon for this application. 17 | * @return The icon of this application. 18 | */ 19 | public static final javax.swing.Icon getApplicationIcon() { 20 | try { 21 | Class applicationInfo = Class.forName("ika.app.ApplicationInfo"); 22 | java.lang.reflect.Method met = applicationInfo.getMethod( 23 | "getApplicationIcon", (java.lang.Class[])null); 24 | return (javax.swing.Icon)met.invoke(null, (java.lang.Object[])null); 25 | } catch (Exception exc) { 26 | return null; 27 | } 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/ika/utils/CenteredStringRenderer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * CenteredStringRenderer.java 3 | * 4 | * Created on August 15, 2006, 12:39 AM 5 | * 6 | */ 7 | package ika.utils; 8 | 9 | import java.awt.*; 10 | import java.awt.font.*; 11 | import java.awt.geom.*; 12 | 13 | /** 14 | * CenteredStringRenderer draws a string centered on a point. 15 | * @author Bernhard Jenny, Institute of Cartography, ETH Zurich 16 | */ 17 | public class CenteredStringRenderer { 18 | 19 | public static final boolean NOFLIP = false; 20 | public static final boolean FLIPY = true; 21 | 22 | /** 23 | * Draws a string centered on its mid-point. 24 | * From http://forum.java.sun.com/thread.jspa?forumID=20&threadID=516778 25 | */ 26 | public static void drawCentered(Graphics2D g2, String text, 27 | float centerX, float centerY, boolean flipY) { 28 | 29 | if (g2 == null || text == null || text.length() == 0) { 30 | return; 31 | } 32 | 33 | AffineTransform initialTrans = g2.getTransform(); 34 | try { 35 | if (flipY == FLIPY) { 36 | g2.translate(0, centerY); 37 | g2.scale(1, -1); 38 | g2.translate(0, -centerY); 39 | } 40 | FontRenderContext frc = g2.getFontRenderContext(); 41 | Font font = g2.getFont(); 42 | Rectangle2D bounds = new TextLayout(text, font, frc).getBounds(); 43 | float w = (float) bounds.getWidth(); 44 | float h = (float) bounds.getHeight(); 45 | float x = (float) (centerX - bounds.getX() - w / 2); 46 | float y = (float) (centerY - bounds.getY() - h / 2); 47 | g2.drawString(text, x, y); 48 | } finally { 49 | g2.setTransform(initialTrans); 50 | } 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /src/ika/utils/CoordinateFormatter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * CoordinateFormatter.java 3 | * 4 | * Created on August 12, 2005, 5:54 AM 5 | * 6 | */ 7 | 8 | package ika.utils; 9 | 10 | import java.text.DecimalFormat; 11 | 12 | /** 13 | * 14 | * @author jenny 15 | */ 16 | public class CoordinateFormatter { 17 | 18 | /** 19 | * Coordinates are multiplied by scaleFactor before 20 | * being converted to a string. This scale factor can be used to transform 21 | * between the global mapping unit of the GeoObjects and the 22 | * unit for displaying coorinates. 23 | * e.g. meter - centimeter -> scaleFactor = 100 24 | */ 25 | private double scaleFactor = 1.d; 26 | 27 | private java.text.DecimalFormat decimalFormat; 28 | private java.text.DecimalFormat shortDecimalFormat; 29 | 30 | /** Creates a new instance of CoordinateFormatter */ 31 | public CoordinateFormatter(String format, String shortFormat, double scaleFactor) { 32 | decimalFormat = new java.text.DecimalFormat (format); 33 | shortDecimalFormat = new java.text.DecimalFormat (shortFormat); 34 | this.scaleFactor = scaleFactor; 35 | } 36 | 37 | public String format (double number) { 38 | return decimalFormat.format(number * scaleFactor); 39 | } 40 | 41 | public String formatShort (double number) { 42 | return shortDecimalFormat.format(number * scaleFactor); 43 | } 44 | 45 | public double getScaleFactor() { 46 | return scaleFactor; 47 | } 48 | 49 | public void setScaleFactor(double scaleFactor) { 50 | if (scaleFactor == 0.) 51 | throw new IllegalArgumentException(); 52 | this.scaleFactor = scaleFactor; 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /src/ika/utils/GraphicsUtils.java: -------------------------------------------------------------------------------- 1 | package ika.utils; 2 | 3 | import java.awt.Toolkit; 4 | import java.util.Map; 5 | 6 | /** 7 | * 8 | * @author jenny 9 | */ 10 | public class GraphicsUtils { 11 | 12 | /** 13 | * Rendering hints for antialiased text as used by the operating system. 14 | * Should reflect OS-wide user settings. 15 | * Apply with g2d.addRenderingHints(GraphicsUtils.antialiasedTextHints); 16 | */ 17 | public static Map antialiasedTextHints; 18 | static { 19 | Toolkit tk = Toolkit.getDefaultToolkit(); 20 | antialiasedTextHints = (Map)(tk.getDesktopProperty("awt.font.desktophints")); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/ika/utils/MathUtils.java: -------------------------------------------------------------------------------- 1 | /* 2 | * MathUtils.java 3 | * 4 | * Created on February 19, 2006, 1:13 AM 5 | * 6 | */ 7 | 8 | package ika.utils; 9 | 10 | /** 11 | * 12 | * @author jenny 13 | */ 14 | public class MathUtils { 15 | 16 | public static final int binomialCoeff(int n, int k) { 17 | return MathUtils.fact(n) / (MathUtils.fact(k) * MathUtils.fact(n-k)); 18 | } 19 | 20 | public static final int fact(int m) { 21 | int fact = 1; 22 | for (int i = 2; i <= m; i++) 23 | fact *= i; 24 | return fact; 25 | } 26 | 27 | /** 28 | * Since 1.5 there is Math.log10() 29 | * @param x 30 | * @return 31 | */ 32 | public static final double log10 (double x) { 33 | return Math.log(x)/Math.log(10.); 34 | } 35 | 36 | public static final double log2 (double x) { 37 | return Math.log(x)/Math.log(2.); 38 | } 39 | 40 | public static boolean numbersAreClose (double x, double y) { 41 | final double TOL = 0.000000001; 42 | return MathUtils.numbersAreClose (x, y, TOL); 43 | } 44 | public static boolean numbersAreClose(double x, double y, double tolerance) { 45 | return (Math.abs(x-y) < tolerance); 46 | } 47 | 48 | /** Numbers are signed in Java. This converts an unsigned byte to an int.*/ 49 | public static int unsignedByteToInt(byte b) { 50 | return (int) b & 0xFF; 51 | } 52 | 53 | /** 54 | * Returns whether a number is a power of two, e.g. 64, 128, 512. 55 | * http://www.codeguru.com/FORUM/showthread.php?p=1642580#post1642580 56 | * @param x 57 | * @return 58 | */ 59 | public static boolean isPower2(int x) { 60 | return ((x > 0) && ((x & (x - 1)) == 0)); 61 | } 62 | 63 | } 64 | -------------------------------------------------------------------------------- /src/ika/utils/PPMImageWriter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * PPMImageWriter.java 3 | * 4 | * Created on June 5, 2007, 10:16 AM 5 | * 6 | */ 7 | package ika.utils; 8 | 9 | import java.io.IOException; 10 | import java.io.OutputStream; 11 | 12 | /** 13 | * Writes PPM rgb images. Can handle large images that do not fit into the 14 | * availble memory. PPM is an simple file format that can be opened 15 | * by Photoshop and other applications. 16 | * @author Bernhard Jenny, Institute of Cartography, ETH Zurich. 17 | */ 18 | public class PPMImageWriter extends ImageWriter { 19 | 20 | /** 21 | * Creates a new instance of PBMImageWriter and writes the header 22 | of the file. 23 | */ 24 | public PPMImageWriter(OutputStream out, 25 | int cols, int rows) throws java.io.IOException { 26 | super(out, cols, rows); 27 | } 28 | 29 | protected void writeHeader() throws java.io.IOException { 30 | String newline = System.getProperty("line.separator"); 31 | this.out.write(("P6" + newline).getBytes("ASCII")); 32 | this.out.write(Integer.toString(cols).getBytes("ASCII")); 33 | this.out.write(newline.getBytes()); 34 | this.out.write(Integer.toString(rows).getBytes("ASCII")); 35 | this.out.write(newline.getBytes()); 36 | this.out.write(("255" + newline).getBytes("ASCII")); 37 | } 38 | 39 | /** 40 | * Writes a color value to the image file. 41 | * @param r Red in the range [0..255] 42 | * @param g Green in the range [0..255] 43 | * @param b Blue in the range [0..255] 44 | */ 45 | public void writeRGB(int r, int g, int b) throws IOException { 46 | this.out.write((byte) r); 47 | this.out.write((byte) g); 48 | this.out.write((byte) b); 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /src/ika/utils/PathUtils.java: -------------------------------------------------------------------------------- 1 | /* 2 | * PathUtils.java 3 | * 4 | * Created on February 17, 2006, 4:41 PM 5 | * 6 | */ 7 | 8 | package ika.utils; 9 | 10 | import java.awt.geom.*; 11 | 12 | /** 13 | * 14 | * @author jenny 15 | */ 16 | public class PathUtils { 17 | 18 | /** Returns true if this GeneralPath consists of more than one line or 19 | * polygon, i.e. it has more moveto commands than the initial one. 20 | */ 21 | static public boolean isCompound(GeneralPath generalPath) { 22 | PathIterator pi = generalPath.getPathIterator(null); 23 | return ika.utils.PathUtils.isCompound(pi); 24 | } 25 | 26 | /** Returns true if this PathIterator consists of more than one line or 27 | * polygon, i.e. it has more moveto commands than the initial one. 28 | */ 29 | static public boolean isCompound(PathIterator pi) { 30 | if (pi.isDone()) 31 | return false; 32 | 33 | // overread initial moveto 34 | pi.next(); 35 | 36 | // search for moveto 37 | double [] coords = new double [6]; 38 | while (pi.isDone() == false) { 39 | // moveto starts a new line that is not connected to the previous one. 40 | if (pi.currentSegment(coords) == PathIterator.SEG_MOVETO) { 41 | return true; 42 | } 43 | pi.next(); 44 | } 45 | return false; 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /src/ika/utils/SwingThreadUtils.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SwingThreadUtils.java 3 | * 4 | * Created on December 3, 2006, 6:01 PM 5 | * 6 | */ 7 | 8 | package ika.utils; 9 | 10 | import java.lang.reflect.InvocationTargetException; 11 | import javax.swing.SwingUtilities; 12 | 13 | /** 14 | * 15 | * @author Bernhard Jenny, Institute of Cartography, ETH Zurich 16 | */ 17 | public class SwingThreadUtils { 18 | 19 | /** 20 | * A wrapper around SwingUtilities.invokeAndWait() that makes sure that 21 | * SwingUtilities.invokeAndWait() is only called when the current thread is 22 | * not the AWT event dispatching thread, as required by the documentation 23 | * of SwingUtilities.invokeAndWait(); plus catches exceptions thrown by 24 | * SwingUtilities.invokeAndWait(). 25 | * @param runnable The Runnable to call in the event dispatch thread. 26 | */ 27 | public static void invokeAndWait(Runnable runnable) { 28 | try { 29 | if (SwingUtilities.isEventDispatchThread()) 30 | runnable.run(); 31 | else 32 | SwingUtilities.invokeAndWait(runnable); 33 | } catch (InvocationTargetException ex) { 34 | ex.printStackTrace(); 35 | } catch (InterruptedException ex) { 36 | ex.printStackTrace(); 37 | } 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /src/ika/utils/TimeUtils.java: -------------------------------------------------------------------------------- 1 | /* 2 | * TimeUtils.java 3 | * 4 | * Created on January 9, 2006, 10:20 AM 5 | * 6 | */ 7 | 8 | package ika.utils; 9 | 10 | /** 11 | * Also see NanoTimer class for measuring time with nanosecond resolution. 12 | * @author Bernhard Jenny, Institute of Cartography, ETH Zurich 13 | */ 14 | public class TimeUtils { 15 | 16 | /** 17 | * Returns the current time and date in a formatted string. 18 | * @return The string containing time and date. 19 | */ 20 | public static final String getCurrentTimeAndDate() { 21 | return java.text.DateFormat.getDateTimeInstance().format(new java.util.Date()); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /win/FlexProjector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | false 4 | gui 5 | ../dist/FlexProjector.jar 6 | FlexProjector.exe 7 | FlexProjector 8 | 9 | 10 | normal 11 | http://java.com/download 12 | 13 | false 14 | false 15 | 16 | icons.ico 17 | 18 | 19 | false 20 | false 21 | 1.8.0 22 | 23 | preferJre 24 | 64/32 25 | -Xmx1000m 26 | 27 | 28 | 1.0.6.0 29 | 1.0.6.0 30 | Flex Projector 1.0.6 31 | @Bernhard Jenny 32 | 1.0.6.0 33 | 1.0.6.0 34 | Flex Projector 35 | 36 | Flex Projector 37 | FlexProjector.exe 38 | 39 | ENGLISH_US 40 | 41 | -------------------------------------------------------------------------------- /win/ICOBundle/ICOBundle.app/Contents/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/ICOBundle/ICOBundle.app/Contents/Info.plist -------------------------------------------------------------------------------- /win/ICOBundle/ICOBundle.app/Contents/MacOS/ICOBundle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/ICOBundle/ICOBundle.app/Contents/MacOS/ICOBundle -------------------------------------------------------------------------------- /win/ICOBundle/ICOBundle.app/Contents/MacOSClassic/ICOBundle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/ICOBundle/ICOBundle.app/Contents/MacOSClassic/ICOBundle -------------------------------------------------------------------------------- /win/ICOBundle/ICOBundle.app/ICOBundle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/ICOBundle/ICOBundle.app/ICOBundle -------------------------------------------------------------------------------- /win/Thumbs.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/Thumbs.db -------------------------------------------------------------------------------- /win/icon16x16.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/icon16x16.ico -------------------------------------------------------------------------------- /win/icon32x32.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/icon32x32.ico -------------------------------------------------------------------------------- /win/icon48x48.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/icon48x48.ico -------------------------------------------------------------------------------- /win/icons.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/icons.ico -------------------------------------------------------------------------------- /win/launch4j/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /win/launch4j/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | /target 3 | -------------------------------------------------------------------------------- /win/launch4j/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | launch4j 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | 15 | org.eclipse.jdt.core.javanature 16 | 17 | 18 | -------------------------------------------------------------------------------- /win/launch4j/.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding/=UTF-8 3 | -------------------------------------------------------------------------------- /win/launch4j/.settings/org.eclipse.core.runtime.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | line.separator=\n 3 | -------------------------------------------------------------------------------- /win/launch4j/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Launch4j (http://launch4j.sourceforge.net/) 2 | Cross-platform Java application wrapper for creating Windows native executables. 3 | 4 | Copyright (c) 2004, 2015 Grzegorz Kowal 5 | All rights reserved. 6 | 7 | Redistribution and use in source and binary forms, with or without modification, 8 | are permitted provided that the following conditions are met: 9 | 10 | 1. Redistributions of source code must retain the above copyright notice, 11 | this list of conditions and the following disclaimer. 12 | 13 | 2. Redistributions in binary form must reproduce the above copyright notice, 14 | this list of conditions and the following disclaimer in the documentation 15 | and/or other materials provided with the distribution. 16 | 17 | 3. Neither the name of the copyright holder nor the names of its contributors 18 | may be used to endorse or promote products derived from this software without 19 | specific prior written permission. 20 | 21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 22 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 23 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 24 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 25 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 26 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 27 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 28 | AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 29 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- /win/launch4j/bin/ld: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/bin/ld -------------------------------------------------------------------------------- /win/launch4j/bin/windres: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/bin/windres -------------------------------------------------------------------------------- /win/launch4j/demo/ConsoleApp/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /win/launch4j/demo/ConsoleApp/ConsoleApp.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/demo/ConsoleApp/ConsoleApp.jar -------------------------------------------------------------------------------- /win/launch4j/demo/ConsoleApp/build.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /win/launch4j/demo/ConsoleApp/l4j/ConsoleApp.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/demo/ConsoleApp/l4j/ConsoleApp.ico -------------------------------------------------------------------------------- /win/launch4j/demo/ConsoleApp/lib/readme.txt: -------------------------------------------------------------------------------- 1 | Put your jar libs here and the build script will include them 2 | in the classpath stored inside the jar manifest. 3 | In order to run your application move the output exe file from 4 | the dist directory to the same level as lib. 5 | 6 | SimpleApp.exe 7 | lib/ 8 | lib/xml.jar 9 | -------------------------------------------------------------------------------- /win/launch4j/demo/ConsoleApp/readme.txt: -------------------------------------------------------------------------------- 1 | To build the example application set JAVA_HOME and ANT_HOME environment variables. 2 | -------------------------------------------------------------------------------- /win/launch4j/demo/ExitCodeApp/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | /target 3 | -------------------------------------------------------------------------------- /win/launch4j/demo/ExitCodeApp/src/net/sf/launch4j/example/ExitCodeApp.java: -------------------------------------------------------------------------------- 1 | /* 2 | Launch4j (http://launch4j.sourceforge.net/) 3 | Cross-platform Java application wrapper for creating Windows native executables. 4 | 5 | Copyright (c) 2004, 2015 Grzegorz Kowal 6 | All rights reserved. 7 | 8 | Redistribution and use in source and binary forms, with or without modification, 9 | are permitted provided that the following conditions are met: 10 | 11 | 1. Redistributions of source code must retain the above copyright notice, 12 | this list of conditions and the following disclaimer. 13 | 14 | 2. Redistributions in binary form must reproduce the above copyright notice, 15 | this list of conditions and the following disclaimer in the documentation 16 | and/or other materials provided with the distribution. 17 | 18 | 3. Neither the name of the copyright holder nor the names of its contributors 19 | may be used to endorse or promote products derived from this software without 20 | specific prior written permission. 21 | 22 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 23 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 24 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 25 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 26 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 27 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 28 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 29 | AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 30 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 31 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 32 | */ 33 | 34 | package net.sf.launch4j.example; 35 | 36 | public class ExitCodeApp { 37 | public static void main(String[] args) { 38 | int exitCode = 0; 39 | 40 | if (args.length > 0) { 41 | exitCode = Integer.parseInt(args[0]); 42 | } 43 | 44 | System.out.println("Exit code: " + String.valueOf(exitCode)); 45 | System.exit(exitCode); 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /win/launch4j/demo/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Launch4j (http://launch4j.sourceforge.net/) 2 | Cross-platform Java application wrapper for creating Windows native executables. 3 | 4 | Copyright (c) 2004, 2015 Grzegorz Kowal 5 | All rights reserved. 6 | 7 | Redistribution and use in source and binary forms, with or without modification, 8 | are permitted provided that the following conditions are met: 9 | 10 | 1. Redistributions of source code must retain the above copyright notice, 11 | this list of conditions and the following disclaimer. 12 | 13 | 2. Redistributions in binary form must reproduce the above copyright notice, 14 | this list of conditions and the following disclaimer in the documentation 15 | and/or other materials provided with the distribution. 16 | 17 | 3. Neither the name of the copyright holder nor the names of its contributors 18 | may be used to endorse or promote products derived from this software without 19 | specific prior written permission. 20 | 21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 22 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 23 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 24 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 25 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 26 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 27 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 28 | AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 29 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | -------------------------------------------------------------------------------- /win/launch4j/demo/SimpleApp/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /win/launch4j/demo/SimpleApp/SimpleApp.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/demo/SimpleApp/SimpleApp.jar -------------------------------------------------------------------------------- /win/launch4j/demo/SimpleApp/build.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /win/launch4j/demo/SimpleApp/l4j/SimpleApp.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/demo/SimpleApp/l4j/SimpleApp.ico -------------------------------------------------------------------------------- /win/launch4j/demo/SimpleApp/l4j/SimpleApp.xml: -------------------------------------------------------------------------------- 1 | 2 | gui 3 | ../SimpleApp.jar 4 | ../SimpleApp.exe 5 | SimpleApp 6 | . 7 | SimpleApp.ico 8 | true 9 | 10 | 1.6.0 11 | 12 | 13 | splash.bmp 14 | true 15 | 60 16 | true 17 | 18 | -------------------------------------------------------------------------------- /win/launch4j/demo/SimpleApp/l4j/splash.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/demo/SimpleApp/l4j/splash.bmp -------------------------------------------------------------------------------- /win/launch4j/demo/SimpleApp/lib/readme.txt: -------------------------------------------------------------------------------- 1 | Put your jar libs here and the build script will include them 2 | in the classpath stored inside the jar manifest. 3 | In order to run your application move the output exe file from 4 | the dist directory to the same level as lib. 5 | 6 | SimpleApp.exe 7 | lib/ 8 | lib/xml.jar 9 | -------------------------------------------------------------------------------- /win/launch4j/demo/SimpleApp/readme.txt: -------------------------------------------------------------------------------- 1 | To build the example application set JAVA_HOME and ANT_HOME environment variables. 2 | -------------------------------------------------------------------------------- /win/launch4j/demo/readme.txt: -------------------------------------------------------------------------------- 1 | JRE/SDK 1.6.0 or higher must be installed on your system to run this demo. 2 | 3 | try running it with some command line arguments... 4 | -------------------------------------------------------------------------------- /win/launch4j/head/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Launch4j (http://launch4j.sourceforge.net/) 2 | Cross-platform Java application wrapper for creating Windows native executables. 3 | 4 | Copyright (c) 2004, 2015 Grzegorz Kowal 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in 14 | all copies or substantial portions of the Software. 15 | 16 | Except as contained in this notice, the name(s) of the above copyright holders 17 | shall not be used in advertising or otherwise to promote the sale, use or other 18 | dealings in this Software without prior written authorization. 19 | 20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 23 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 25 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 26 | THE SOFTWARE. -------------------------------------------------------------------------------- /win/launch4j/head/consolehead.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/head/consolehead.o -------------------------------------------------------------------------------- /win/launch4j/head/guihead.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/head/guihead.o -------------------------------------------------------------------------------- /win/launch4j/head/head.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/head/head.o -------------------------------------------------------------------------------- /win/launch4j/head_jni_BETA/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Launch4j (http://launch4j.sourceforge.net/) 2 | Cross-platform Java application wrapper for creating Windows native executables. 3 | 4 | Copyright (c) 2004, 2015 Grzegorz Kowal 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in 14 | all copies or substantial portions of the Software. 15 | 16 | Except as contained in this notice, the name(s) of the above copyright holders 17 | shall not be used in advertising or otherwise to promote the sale, use or other 18 | dealings in this Software without prior written authorization. 19 | 20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 23 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 25 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 26 | THE SOFTWARE. -------------------------------------------------------------------------------- /win/launch4j/head_jni_BETA/head.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/head_jni_BETA/head.o -------------------------------------------------------------------------------- /win/launch4j/head_jni_BETA/jniconsolehead.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/head_jni_BETA/jniconsolehead.o -------------------------------------------------------------------------------- /win/launch4j/head_jni_BETA/jniguihead.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/head_jni_BETA/jniguihead.o -------------------------------------------------------------------------------- /win/launch4j/head_jni_BETA/jnihead.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/head_jni_BETA/jnihead.o -------------------------------------------------------------------------------- /win/launch4j/head_src/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Launch4j (http://launch4j.sourceforge.net/) 2 | Cross-platform Java application wrapper for creating Windows native executables. 3 | 4 | Copyright (c) 2004, 2015 Grzegorz Kowal 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in 14 | all copies or substantial portions of the Software. 15 | 16 | Except as contained in this notice, the name(s) of the above copyright holders 17 | shall not be used in advertising or otherwise to promote the sale, use or other 18 | dealings in this Software without prior written authorization. 19 | 20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 23 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 25 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 26 | THE SOFTWARE. 27 | -------------------------------------------------------------------------------- /win/launch4j/head_src/consolehead/.gitignore: -------------------------------------------------------------------------------- 1 | /consolehead.exe 2 | /consolehead.layout 3 | -------------------------------------------------------------------------------- /win/launch4j/head_src/consolehead/Makefile.win: -------------------------------------------------------------------------------- 1 | # Project: consolehead 2 | # Makefile created by Dev-C++ 4.9.9.2 3 | 4 | CPP = g++.exe 5 | CC = gcc.exe 6 | WINDRES = windres.exe 7 | RES = 8 | OBJ = ../../head/consolehead.o ../../head/head.o $(RES) 9 | LINKOBJ = ../../head/consolehead.o ../../head/head.o $(RES) 10 | LIBS = -L"C:/Dev-Cpp/lib" -n -s 11 | INCS = -I"C:/Dev-Cpp/include" 12 | CXXINCS = -I"C:/Dev-Cpp/lib/gcc/mingw32/3.4.2/include" -I"C:/Dev-Cpp/include/c++/3.4.2/backward" -I"C:/Dev-Cpp/include/c++/3.4.2/mingw32" -I"C:/Dev-Cpp/include/c++/3.4.2" -I"C:/Dev-Cpp/include" 13 | BIN = consolehead.exe 14 | CXXFLAGS = $(CXXINCS) -fexpensive-optimizations -O3 15 | CFLAGS = $(INCS) -fexpensive-optimizations -O3 16 | RM = rm -f 17 | 18 | .PHONY: all all-before all-after clean clean-custom 19 | 20 | all: all-before consolehead.exe all-after 21 | 22 | 23 | clean: clean-custom 24 | ${RM} $(OBJ) $(BIN) 25 | 26 | $(BIN): $(OBJ) 27 | # $(CC) $(LINKOBJ) -o "consolehead.exe" $(LIBS) 28 | 29 | ../../head/consolehead.o: consolehead.c 30 | $(CC) -c consolehead.c -o ../../head/consolehead.o $(CFLAGS) 31 | 32 | ../../head/head.o: ../head.c 33 | $(CC) -c ../head.c -o ../../head/head.o $(CFLAGS) 34 | -------------------------------------------------------------------------------- /win/launch4j/head_src/consolehead/consolehead.dev: -------------------------------------------------------------------------------- 1 | [Project] 2 | FileName=consolehead.dev 3 | Name=consolehead 4 | UnitCount=4 5 | Type=1 6 | Ver=1 7 | ObjFiles= 8 | Includes= 9 | Libs= 10 | PrivateResource= 11 | ResourceIncludes= 12 | MakeIncludes= 13 | Compiler= 14 | CppCompiler= 15 | Linker=-n_@@_ 16 | IsCpp=0 17 | Icon= 18 | ExeOutput= 19 | ObjectOutput=..\..\head 20 | OverrideOutput=0 21 | OverrideOutputName=consolehead.exe 22 | HostApplication= 23 | Folders= 24 | CommandLine= 25 | UseCustomMakefile=1 26 | CustomMakefile=Makefile.win 27 | IncludeVersionInfo=0 28 | SupportXPThemes=0 29 | CompilerSet=0 30 | CompilerSettings=0000000001001000000100 31 | 32 | [Unit1] 33 | FileName=consolehead.c 34 | CompileCpp=0 35 | Folder=consolehead 36 | Compile=1 37 | Link=1 38 | Priority=1000 39 | OverrideBuildCmd=0 40 | BuildCmd= 41 | 42 | [VersionInfo] 43 | Major=0 44 | Minor=1 45 | Release=1 46 | Build=1 47 | LanguageID=1033 48 | CharsetID=1252 49 | CompanyName= 50 | FileVersion= 51 | FileDescription=Developed using the Dev-C++ IDE 52 | InternalName= 53 | LegalCopyright= 54 | LegalTrademarks= 55 | OriginalFilename= 56 | ProductName= 57 | ProductVersion= 58 | AutoIncBuildNr=0 59 | 60 | [Unit2] 61 | FileName=..\resource.h 62 | CompileCpp=0 63 | Folder=consolehead 64 | Compile=1 65 | Link=1 66 | Priority=1000 67 | OverrideBuildCmd=0 68 | BuildCmd= 69 | 70 | [Unit3] 71 | FileName=..\head.c 72 | CompileCpp=0 73 | Folder=consolehead 74 | Compile=1 75 | Link=1 76 | Priority=1000 77 | OverrideBuildCmd=0 78 | BuildCmd= 79 | 80 | [Unit4] 81 | FileName=..\head.h 82 | CompileCpp=0 83 | Folder=consolehead 84 | Compile=1 85 | Link=1 86 | Priority=1000 87 | OverrideBuildCmd=0 88 | BuildCmd= 89 | 90 | [Unit5] 91 | FileName=..\head.rc 92 | Folder=consolehead 93 | Compile=1 94 | Link=0 95 | Priority=1000 96 | OverrideBuildCmd=0 97 | BuildCmd= 98 | 99 | [Unit6] 100 | FileName=..\resid.h 101 | CompileCpp=0 102 | Folder=consolehead 103 | Compile=1 104 | Link=1 105 | Priority=1000 106 | OverrideBuildCmd=0 107 | BuildCmd= 108 | 109 | -------------------------------------------------------------------------------- /win/launch4j/head_src/guihead/.gitignore: -------------------------------------------------------------------------------- 1 | /guihead.exe 2 | /guihead.layout 3 | -------------------------------------------------------------------------------- /win/launch4j/head_src/guihead/Makefile.win: -------------------------------------------------------------------------------- 1 | # Project: guihead 2 | # Makefile created by Dev-C++ 4.9.9.2 3 | 4 | CPP = g++.exe 5 | CC = gcc.exe 6 | WINDRES = windres.exe 7 | RES = 8 | OBJ = ../../head/guihead.o ../../head/head.o $(RES) 9 | LINKOBJ = ../../head/guihead.o ../../head/head.o $(RES) 10 | LIBS = -L"C:/Dev-Cpp/lib" -mwindows -n -s 11 | INCS = -I"C:/Dev-Cpp/include" 12 | CXXINCS = -I"C:/Dev-Cpp/lib/gcc/mingw32/3.4.2/include" -I"C:/Dev-Cpp/include/c++/3.4.2/backward" -I"C:/Dev-Cpp/include/c++/3.4.2/mingw32" -I"C:/Dev-Cpp/include/c++/3.4.2" -I"C:/Dev-Cpp/include" 13 | BIN = guihead.exe 14 | CXXFLAGS = $(CXXINCS) -fexpensive-optimizations -O3 15 | CFLAGS = $(INCS) -fexpensive-optimizations -O3 16 | RM = rm -f 17 | 18 | .PHONY: all all-before all-after clean clean-custom 19 | 20 | all: all-before guihead.exe all-after 21 | 22 | 23 | clean: clean-custom 24 | ${RM} $(OBJ) $(BIN) 25 | 26 | $(BIN): $(OBJ) 27 | # $(CC) $(LINKOBJ) -o "guihead.exe" $(LIBS) 28 | 29 | ../../head/guihead.o: guihead.c 30 | $(CC) -c guihead.c -o ../../head/guihead.o $(CFLAGS) 31 | 32 | ../../head/head.o: ../head.c 33 | $(CC) -c ../head.c -o ../../head/head.o $(CFLAGS) 34 | -------------------------------------------------------------------------------- /win/launch4j/head_src/guihead/guihead.dev: -------------------------------------------------------------------------------- 1 | [Project] 2 | FileName=guihead.dev 3 | Name=guihead 4 | UnitCount=5 5 | Type=0 6 | Ver=1 7 | ObjFiles= 8 | Includes= 9 | Libs= 10 | PrivateResource= 11 | ResourceIncludes= 12 | MakeIncludes= 13 | Compiler= 14 | CppCompiler= 15 | Linker=-n_@@_ 16 | IsCpp=0 17 | Icon= 18 | ExeOutput= 19 | ObjectOutput=..\..\head 20 | OverrideOutput=0 21 | OverrideOutputName=guihead.exe 22 | HostApplication= 23 | Folders= 24 | CommandLine= 25 | UseCustomMakefile=1 26 | CustomMakefile=Makefile.win 27 | IncludeVersionInfo=0 28 | SupportXPThemes=0 29 | CompilerSet=0 30 | CompilerSettings=0000000001001000000100 31 | 32 | [Unit1] 33 | FileName=guihead.c 34 | CompileCpp=0 35 | Folder=guihead 36 | Compile=1 37 | Link=1 38 | Priority=1000 39 | OverrideBuildCmd=0 40 | BuildCmd=$(CC) -c guihead.c -o ../../head/guihead.o $(CFLAGS) 41 | 42 | [Unit2] 43 | FileName=guihead.h 44 | CompileCpp=0 45 | Folder=guihead 46 | Compile=1 47 | Link=1 48 | Priority=1000 49 | OverrideBuildCmd=0 50 | BuildCmd= 51 | 52 | [VersionInfo] 53 | Major=0 54 | Minor=1 55 | Release=1 56 | Build=1 57 | LanguageID=1033 58 | CharsetID=1252 59 | CompanyName= 60 | FileVersion= 61 | FileDescription=Developed using the Dev-C++ IDE 62 | InternalName= 63 | LegalCopyright= 64 | LegalTrademarks= 65 | OriginalFilename= 66 | ProductName= 67 | ProductVersion= 68 | AutoIncBuildNr=0 69 | 70 | [Unit4] 71 | FileName=..\head.h 72 | CompileCpp=0 73 | Folder=guihead 74 | Compile=1 75 | Link=1 76 | Priority=1000 77 | OverrideBuildCmd=0 78 | BuildCmd= 79 | 80 | [Unit6] 81 | FileName=..\resid.h 82 | CompileCpp=0 83 | Folder=guihead 84 | Compile=1 85 | Link=1 86 | Priority=1000 87 | OverrideBuildCmd=0 88 | BuildCmd= 89 | 90 | [Unit3] 91 | FileName=..\head.c 92 | CompileCpp=0 93 | Folder=guihead 94 | Compile=1 95 | Link=1 96 | Priority=1000 97 | OverrideBuildCmd=0 98 | BuildCmd= 99 | 100 | [Unit5] 101 | FileName=..\resource.h 102 | CompileCpp=0 103 | Folder=guihead 104 | Compile=1 105 | Link=1 106 | Priority=1000 107 | OverrideBuildCmd=0 108 | BuildCmd= 109 | 110 | -------------------------------------------------------------------------------- /win/launch4j/head_src/guihead/guihead.h: -------------------------------------------------------------------------------- 1 | /* 2 | Launch4j (http://launch4j.sourceforge.net/) 3 | Cross-platform Java application wrapper for creating Windows native executables. 4 | 5 | Copyright (c) 2004, 2007 Grzegorz Kowal 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | Except as contained in this notice, the name(s) of the above copyright holders 18 | shall not be used in advertising or otherwise to promote the sale, use or other 19 | dealings in this Software without prior written authorization. 20 | 21 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 26 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 27 | THE SOFTWARE. 28 | */ 29 | 30 | #define ID_TIMER 1 31 | #define DEFAULT_SPLASH_TIMEOUT 60 /* 60 seconds */ 32 | #define MAX_SPLASH_TIMEOUT 60 * 15 /* 15 minutes */ 33 | #define TIMER_PROC_INTERVAL 100 /* interval in ms between calls to EnumWindows */ 34 | 35 | HWND getInstanceWindow(); 36 | 37 | BOOL CALLBACK enumwndfn(HWND hwnd, LPARAM lParam); 38 | 39 | VOID CALLBACK TimerProc( 40 | HWND hwnd, // handle of window for timer messages 41 | UINT uMsg, // WM_TIMER message 42 | UINT idEvent, // timer identifier 43 | DWORD dwTime // current system time 44 | ); 45 | -------------------------------------------------------------------------------- /win/launch4j/head_src/jniconsolehead_BETA/.gitignore: -------------------------------------------------------------------------------- 1 | /jniconsolehead.exe 2 | /jniconsolehead.layout 3 | -------------------------------------------------------------------------------- /win/launch4j/head_src/jniconsolehead_BETA/Makefile.win: -------------------------------------------------------------------------------- 1 | # Project: jniconsolehead 2 | # Makefile created by Dev-C++ 5.7.1 3 | 4 | CPP = g++.exe 5 | CC = gcc.exe 6 | WINDRES = windres.exe 7 | OBJ = ../../head_jni_BETA/jniconsolehead.o ../../head_jni_BETA/head.o ../../head_jni_BETA/jnihead.o 8 | LINKOBJ = ../../head_jni_BETA/jniconsolehead.o ../../head_jni_BETA/head.o ../../head_jni_BETA/jnihead.o 9 | LIBS = -L"C:/Users/GMan/Dev-Cpp 5.7.1/MinGW32/lib" -L"C:/Users/GMan/Dev-Cpp 5.7.1/MinGW32/mingw32/lib" -static-libstdc++ -static-libgcc -n -s 10 | INCS = -I"C:/Users/GMan/Dev-Cpp 5.7.1/MinGW32/include" -I"C:/Users/GMan/Dev-Cpp 5.7.1/MinGW32/mingw32/include" -I"C:/Users/GMan/Dev-Cpp 5.7.1/MinGW32/lib/gcc/mingw32/4.8.1/include" -I"C:/Program Files (x86)/Java/jdk 1.4/include" -I"C:/Program Files (x86)/Java/jdk 1.4/include/win32" 11 | CXXINCS = -I"C:/Users/GMan/Dev-Cpp 5.7.1/MinGW32/include" -I"C:/Users/GMan/Dev-Cpp 5.7.1/MinGW32/mingw32/include" -I"C:/Users/GMan/Dev-Cpp 5.7.1/MinGW32/lib/gcc/mingw32/4.8.1/include" -I"C:/Users/GMan/Dev-Cpp 5.7.1/MinGW32/lib/gcc/mingw32/4.8.1/include/c++" -I"C:/Program Files (x86)/Java/jdk 1.4/include" -I"C:/Program Files (x86)/Java/jdk 1.4/include/win32" 12 | BIN = jniconsolehead.exe 13 | CXXFLAGS = $(CXXINCS) -Os 14 | CFLAGS = $(INCS) -Os 15 | RM = rm.exe -f 16 | 17 | .PHONY: all all-before all-after clean clean-custom 18 | 19 | all: all-before $(BIN) all-after 20 | 21 | clean: clean-custom 22 | ${RM} $(OBJ) $(BIN) 23 | 24 | $(BIN): $(OBJ) 25 | $(CC) $(LINKOBJ) -o $(BIN) $(LIBS) 26 | 27 | ../../head_jni_BETA/jniconsolehead.o: jniconsolehead.c 28 | $(CC) -c jniconsolehead.c -o ../../head_jni_BETA/jniconsolehead.o $(CFLAGS) 29 | 30 | ../../head_jni_BETA/head.o: ../head.c 31 | $(CC) -c ../head.c -o ../../head_jni_BETA/head.o $(CFLAGS) 32 | 33 | ../../head_jni_BETA/jnihead.o: ../jnihead.c 34 | $(CC) -c ../jnihead.c -o ../../head_jni_BETA/jnihead.o $(CFLAGS) 35 | -------------------------------------------------------------------------------- /win/launch4j/head_src/jniguihead_BETA/.gitignore: -------------------------------------------------------------------------------- 1 | /jniguihead.exe 2 | /jniguihead.layout 3 | -------------------------------------------------------------------------------- /win/launch4j/head_src/jniguihead_BETA/Makefile.win: -------------------------------------------------------------------------------- 1 | # Project: jniguihead 2 | # Makefile created by Dev-C++ 5.7.1 3 | 4 | CPP = g++.exe 5 | CC = gcc.exe 6 | WINDRES = windres.exe 7 | OBJ = ../../head_jni_BETA/jniguihead.o ../../head_jni_BETA/head.o ../../head_jni_BETA/jnihead.o 8 | LINKOBJ = ../../head_jni_BETA/jniguihead.o ../../head_jni_BETA/head.o ../../head_jni_BETA/jnihead.o 9 | LIBS = -L"C:/Users/GMan/Dev-Cpp 5.7.1/MinGW32/lib" -L"C:/Users/GMan/Dev-Cpp 5.7.1/MinGW32/mingw32/lib" -static-libstdc++ -static-libgcc -mwindows -n -s 10 | INCS = -I"C:/Users/GMan/Dev-Cpp 5.7.1/MinGW32/include" -I"C:/Users/GMan/Dev-Cpp 5.7.1/MinGW32/mingw32/include" -I"C:/Users/GMan/Dev-Cpp 5.7.1/MinGW32/lib/gcc/mingw32/4.8.1/include" -I"C:/Program Files (x86)/Java/jdk 1.4/include" -I"C:/Program Files (x86)/Java/jdk 1.4/include/win32" 11 | CXXINCS = -I"C:/Users/GMan/Dev-Cpp 5.7.1/MinGW32/include" -I"C:/Users/GMan/Dev-Cpp 5.7.1/MinGW32/mingw32/include" -I"C:/Users/GMan/Dev-Cpp 5.7.1/MinGW32/lib/gcc/mingw32/4.8.1/include" -I"C:/Users/GMan/Dev-Cpp 5.7.1/MinGW32/lib/gcc/mingw32/4.8.1/include/c++" -I"C:/Program Files (x86)/Java/jdk 1.4/include" -I"C:/Program Files (x86)/Java/jdk 1.4/include/win32" 12 | BIN = jniguihead.exe 13 | CXXFLAGS = $(CXXINCS) -Os 14 | CFLAGS = $(INCS) -Os 15 | RM = rm.exe -f 16 | 17 | .PHONY: all all-before all-after clean clean-custom 18 | 19 | all: all-before $(BIN) all-after 20 | 21 | clean: clean-custom 22 | ${RM} $(OBJ) $(BIN) 23 | 24 | $(BIN): $(OBJ) 25 | $(CC) $(LINKOBJ) -o $(BIN) $(LIBS) 26 | 27 | ../../head_jni_BETA/jniguihead.o: jniguihead.c 28 | $(CC) -c jniguihead.c -o ../../head_jni_BETA/jniguihead.o $(CFLAGS) 29 | 30 | ../../head_jni_BETA/head.o: ../head.c 31 | $(CC) -c ../head.c -o ../../head_jni_BETA/head.o $(CFLAGS) 32 | 33 | ../../head_jni_BETA/jnihead.o: ../jnihead.c 34 | $(CC) -c ../jnihead.c -o ../../head_jni_BETA/jnihead.o $(CFLAGS) 35 | -------------------------------------------------------------------------------- /win/launch4j/head_src/jniguihead_BETA/jniguihead.h: -------------------------------------------------------------------------------- 1 | /* 2 | Launch4j (http://launch4j.sourceforge.net/) 3 | Cross-platform Java application wrapper for creating Windows native executables. 4 | 5 | Copyright (c) 2004, 2007 Grzegorz Kowal 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | Except as contained in this notice, the name(s) of the above copyright holders 18 | shall not be used in advertising or otherwise to promote the sale, use or other 19 | dealings in this Software without prior written authorization. 20 | 21 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 26 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 27 | THE SOFTWARE. 28 | */ 29 | 30 | #define ID_TIMER 1 31 | #define DEFAULT_SPLASH_TIMEOUT 60 /* 60 seconds */ 32 | #define MAX_SPLASH_TIMEOUT 60 * 15 /* 15 minutes */ 33 | 34 | HWND getInstanceWindow(); 35 | 36 | BOOL CALLBACK enumwndfn(HWND hwnd, LPARAM lParam); 37 | 38 | VOID CALLBACK TimerProc( 39 | HWND hwnd, // handle of window for timer messages 40 | UINT uMsg, // WM_TIMER message 41 | UINT idEvent, // timer identifier 42 | DWORD dwTime // current system time 43 | ); 44 | -------------------------------------------------------------------------------- /win/launch4j/head_src/jnihead.h: -------------------------------------------------------------------------------- 1 | /* 2 | Launch4j (http://launch4j.sourceforge.net/) 3 | Cross-platform Java application wrapper for creating Windows native executables. 4 | 5 | Copyright (c) 2007 Ryan Rusaw 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | Except as contained in this notice, the name(s) of the above copyright holders 18 | shall not be used in advertising or otherwise to promote the sale, use or other 19 | dealings in this Software without prior written authorization. 20 | 21 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 26 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 27 | THE SOFTWARE. 28 | */ 29 | 30 | #include 31 | #include 32 | 33 | #include "head.h" 34 | 35 | int getArgCount(const char* pcArgStr); 36 | void saveJvmOptions(const char *jrePath, const char *mainClass, const char *pcOpts); 37 | JNIEnv* createVm(); 38 | int invokeMainClass(JNIEnv* psJNIEnv); 39 | void cleanupVm(); 40 | BOOL executeVm(DWORD *dwExitCode); 41 | 42 | -------------------------------------------------------------------------------- /win/launch4j/launch4j: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | LAUNCH4J="$(dirname "$0")"/launch4j.jar 3 | if [ -n "$JAVA_HOME" ]; then 4 | $JAVA_HOME/bin/java -jar "$LAUNCH4J" "$@" 5 | else 6 | java -jar "$LAUNCH4J" "$@" 7 | fi 8 | -------------------------------------------------------------------------------- /win/launch4j/launch4j.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/launch4j.jar -------------------------------------------------------------------------------- /win/launch4j/launch4j.jfpr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/launch4j.jfpr -------------------------------------------------------------------------------- /win/launch4j/lib/JGoodies.Forms.LICENSE.txt: -------------------------------------------------------------------------------- 1 | 2 | The BSD License for the JGoodies Forms 3 | ====================================== 4 | 5 | Copyright (c) 2002-2014 JGoodies Software GmbH. All rights reserved. 6 | 7 | Redistribution and use in source and binary forms, with or without 8 | modification, are permitted provided that the following conditions are met: 9 | 10 | o Redistributions of source code must retain the above copyright notice, 11 | this list of conditions and the following disclaimer. 12 | 13 | o Redistributions in binary form must reproduce the above copyright notice, 14 | this list of conditions and the following disclaimer in the documentation 15 | and/or other materials provided with the distribution. 16 | 17 | o Neither the name of JGoodies Software GmbH nor the names of 18 | its contributors may be used to endorse or promote products derived 19 | from this software without specific prior written permission. 20 | 21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 22 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 23 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 24 | PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 25 | CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 26 | EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 27 | PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 28 | OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 29 | WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 30 | OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 31 | EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 32 | -------------------------------------------------------------------------------- /win/launch4j/lib/JGoodies.Looks.LICENSE.txt: -------------------------------------------------------------------------------- 1 | 2 | The BSD License for the JGoodies Looks 3 | ====================================== 4 | 5 | Copyright (c) 2001-2014 JGoodies Software GmbH. All rights reserved. 6 | 7 | Redistribution and use in source and binary forms, with or without 8 | modification, are permitted provided that the following conditions are met: 9 | 10 | o Redistributions of source code must retain the above copyright notice, 11 | this list of conditions and the following disclaimer. 12 | 13 | o Redistributions in binary form must reproduce the above copyright notice, 14 | this list of conditions and the following disclaimer in the documentation 15 | and/or other materials provided with the distribution. 16 | 17 | o Neither the name of JGoodies Software GmbH nor the names of 18 | its contributors may be used to endorse or promote products derived 19 | from this software without specific prior written permission. 20 | 21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 22 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 23 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 24 | PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 25 | CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 26 | EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 27 | PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 28 | OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 29 | WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 30 | OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 31 | EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 32 | -------------------------------------------------------------------------------- /win/launch4j/lib/XStream.LICENSE.txt: -------------------------------------------------------------------------------- 1 | (BSD Style License) 2 | 3 | Copyright (c) 2003-2004, Joe Walnes 4 | All rights reserved. 5 | 6 | Redistribution and use in source and binary forms, with or without 7 | modification, are permitted provided that the following conditions are met: 8 | 9 | Redistributions of source code must retain the above copyright notice, this list of 10 | conditions and the following disclaimer. Redistributions in binary form must reproduce 11 | the above copyright notice, this list of conditions and the following disclaimer in 12 | the documentation and/or other materials provided with the distribution. 13 | 14 | Neither the name of XStream nor the names of its contributors may be used to endorse 15 | or promote products derived from this software without specific prior written 16 | permission. 17 | 18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 19 | EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 20 | OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 21 | SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 22 | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED 23 | TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 24 | BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 25 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY 26 | WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 27 | DAMAGE. 28 | -------------------------------------------------------------------------------- /win/launch4j/lib/ant.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/lib/ant.jar -------------------------------------------------------------------------------- /win/launch4j/lib/commons-beanutils.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/lib/commons-beanutils.jar -------------------------------------------------------------------------------- /win/launch4j/lib/commons-logging.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/lib/commons-logging.jar -------------------------------------------------------------------------------- /win/launch4j/lib/formsrt.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/lib/formsrt.jar -------------------------------------------------------------------------------- /win/launch4j/lib/foxtrot.LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2002, Simone Bordet & Marco Cravero 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without modification, are permitted 5 | provided that the following conditions are met: 6 | 7 | - Redistributions of source code must retain the above copyright notice, 8 | this list of conditions and the following disclaimer. 9 | 10 | - Redistributions in binary form must reproduce the above copyright notice, 11 | this list of conditions and the following disclaimer in the documentation 12 | and/or other materials provided with the distribution. 13 | 14 | - Neither the name of Foxtrot nor the names of the contributors may be used 15 | to endorse or promote products derived from this software without specific prior 16 | written permission. 17 | 18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS 19 | OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY 20 | AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS 21 | BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, 23 | OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 24 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF 25 | THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | -------------------------------------------------------------------------------- /win/launch4j/lib/foxtrot.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/lib/foxtrot.jar -------------------------------------------------------------------------------- /win/launch4j/lib/jgoodies-common.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/lib/jgoodies-common.jar -------------------------------------------------------------------------------- /win/launch4j/lib/jgoodies-forms.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/lib/jgoodies-forms.jar -------------------------------------------------------------------------------- /win/launch4j/lib/jgoodies-looks.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/lib/jgoodies-looks.jar -------------------------------------------------------------------------------- /win/launch4j/lib/xstream.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/lib/xstream.jar -------------------------------------------------------------------------------- /win/launch4j/manifest/uac.exe.manifest: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /win/launch4j/maven/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /win/launch4j/maven/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | launch4j 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | org.eclipse.m2e.core.maven2Builder 15 | 16 | 17 | 18 | 19 | 20 | org.eclipse.m2e.core.maven2Nature 21 | org.eclipse.jdt.core.javanature 22 | 23 | 24 | -------------------------------------------------------------------------------- /win/launch4j/maven/.settings/org.eclipse.m2e.core.prefs: -------------------------------------------------------------------------------- 1 | activeProfiles= 2 | eclipse.preferences.version=1 3 | resolveWorkspaceProjects=true 4 | version=1 5 | -------------------------------------------------------------------------------- /win/launch4j/maven/assembly/assemble-dist.xml: -------------------------------------------------------------------------------- 1 | 3 | distribution-libs 4 | 5 | dir 6 | 7 | false 8 | 9 | 10 | 11 | false 12 | 13 | 14 | -------------------------------------------------------------------------------- /win/launch4j/maven/maven-readme.txt: -------------------------------------------------------------------------------- 1 | Run once the Ant target switch-to-maven, it will reconfigure the project to use maven. 2 | 3 | *** Creation of Distribution Release *** 4 | Windows: mvn -P dist,win32 clean package 5 | 6 | Linux: mvn -P dist,linux clean package 7 | 8 | MacOsX 10.8: mvn -P dist,macosx-x86-10.8 clean package 9 | 10 | MacOsX: mvn -P dist,macosx-x86 clean package 11 | -------------------------------------------------------------------------------- /win/launch4j/sign4j/README.txt: -------------------------------------------------------------------------------- 1 | sign4j version 3.0 2 | ------------------ 3 | 4 | sign4j is a very simple utility to digitally sign executables containing an appended jar file, like those created by launch4j. 5 | 6 | It works by first signing a temporary file to detect the size of the applied signature, and by then adding that size to a counter in the ZIP_END_HEADER of the embedded jar, so as to pretend that the signature is a comment belonging to it. That way the jar remains formally correct, and java accepts it. 7 | 8 | This manipulation must be done atomically with the signing process, because doing it before would invalidate the jar file, while doing it later would break the signature. That's why the whole command line of your signing tool must be passed to sign4j, which will do the job. 9 | 10 | Any signing tool can be used, as long as the name of the output file can be recognized among its parameters. This is currently done by either using an -out option if present, or taking the last filename with an exe suffix after all supplied options. 11 | 12 | If the involved tool is able to remove a previous signature before adding the new one (as is normally the case) the initial test can be performed on the target executable itself, avoiding the creation of a temporary file. You can use the option --onthespot to signal that to sign4j. 13 | 14 | The option --strict can be used to suppress the use of double quotes around parameters that strictly don't need them. The option --verbose shows diagnostics about intermediary steps of the process. 15 | 16 | This utility can also be used to sign normal executables, but then it will remember you that the file can be signed directly. 17 | 18 | Please send comments to bramfeld@diogen.de 19 | -------------------------------------------------------------------------------- /win/launch4j/src/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Launch4j (http://launch4j.sourceforge.net/) 2 | Cross-platform Java application wrapper for creating Windows native executables. 3 | 4 | Copyright (c) 2004, 2015 Grzegorz Kowal 5 | All rights reserved. 6 | 7 | Redistribution and use in source and binary forms, with or without modification, 8 | are permitted provided that the following conditions are met: 9 | 10 | 1. Redistributions of source code must retain the above copyright notice, 11 | this list of conditions and the following disclaimer. 12 | 13 | 2. Redistributions in binary form must reproduce the above copyright notice, 14 | this list of conditions and the following disclaimer in the documentation 15 | and/or other materials provided with the distribution. 16 | 17 | 3. Neither the name of the copyright holder nor the names of its contributors 18 | may be used to endorse or promote products derived from this software without 19 | specific prior written permission. 20 | 21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 22 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 23 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 24 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 25 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 26 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 27 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 28 | AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 29 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- /win/launch4j/src/images/asterix-o.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/src/images/asterix-o.gif -------------------------------------------------------------------------------- /win/launch4j/src/images/asterix.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/src/images/asterix.gif -------------------------------------------------------------------------------- /win/launch4j/src/images/build.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/src/images/build.png -------------------------------------------------------------------------------- /win/launch4j/src/images/button_ok.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/src/images/button_ok.png -------------------------------------------------------------------------------- /win/launch4j/src/images/cancel16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/src/images/cancel16.png -------------------------------------------------------------------------------- /win/launch4j/src/images/down16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/src/images/down16.png -------------------------------------------------------------------------------- /win/launch4j/src/images/edit_add16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/src/images/edit_add16.png -------------------------------------------------------------------------------- /win/launch4j/src/images/info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/src/images/info.png -------------------------------------------------------------------------------- /win/launch4j/src/images/new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/src/images/new.png -------------------------------------------------------------------------------- /win/launch4j/src/images/new16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/src/images/new16.png -------------------------------------------------------------------------------- /win/launch4j/src/images/ok16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/src/images/ok16.png -------------------------------------------------------------------------------- /win/launch4j/src/images/open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/src/images/open.png -------------------------------------------------------------------------------- /win/launch4j/src/images/open16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/src/images/open16.png -------------------------------------------------------------------------------- /win/launch4j/src/images/run.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/src/images/run.png -------------------------------------------------------------------------------- /win/launch4j/src/images/save.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/src/images/save.png -------------------------------------------------------------------------------- /win/launch4j/src/images/up16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/src/images/up16.png -------------------------------------------------------------------------------- /win/launch4j/src/launch4j.properties: -------------------------------------------------------------------------------- 1 | versionNumber=3.9.0.0 2 | version=3.9 3 | -------------------------------------------------------------------------------- /win/launch4j/src/net/sf/launch4j/BuilderException.java: -------------------------------------------------------------------------------- 1 | /* 2 | Launch4j (http://launch4j.sourceforge.net/) 3 | Cross-platform Java application wrapper for creating Windows native executables. 4 | 5 | Copyright (c) 2004, 2015 Grzegorz Kowal 6 | All rights reserved. 7 | 8 | Redistribution and use in source and binary forms, with or without modification, 9 | are permitted provided that the following conditions are met: 10 | 11 | 1. Redistributions of source code must retain the above copyright notice, 12 | this list of conditions and the following disclaimer. 13 | 14 | 2. Redistributions in binary form must reproduce the above copyright notice, 15 | this list of conditions and the following disclaimer in the documentation 16 | and/or other materials provided with the distribution. 17 | 18 | 3. Neither the name of the copyright holder nor the names of its contributors 19 | may be used to endorse or promote products derived from this software without 20 | specific prior written permission. 21 | 22 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 23 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 24 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 25 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 26 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 27 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 28 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 29 | AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 30 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 31 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 32 | */ 33 | 34 | /* 35 | * Created on May 13, 2005 36 | */ 37 | package net.sf.launch4j; 38 | 39 | /** 40 | * @author Copyright (C) 2005 Grzegorz Kowal 41 | */ 42 | public class BuilderException extends Exception { 43 | public BuilderException() {} 44 | 45 | public BuilderException(Throwable t) { 46 | super(t); 47 | } 48 | 49 | public BuilderException(String msg) { 50 | super(msg); 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /win/launch4j/src/net/sf/launch4j/ant/messages.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Launch4j (http://launch4j.sourceforge.net/) 3 | # Cross-platform Java application wrapper for creating Windows native executables. 4 | # 5 | # Copyright (c) 2004, 2015 Grzegorz Kowal 6 | # All rights reserved. 7 | # 8 | # Redistribution and use in source and binary forms, with or without modification, 9 | # are permitted provided that the following conditions are met: 10 | # 11 | # 1. Redistributions of source code must retain the above copyright notice, 12 | # this list of conditions and the following disclaimer. 13 | # 14 | # 2. Redistributions in binary form must reproduce the above copyright notice, 15 | # this list of conditions and the following disclaimer in the documentation 16 | # and/or other materials provided with the distribution. 17 | # 18 | # 3. Neither the name of the copyright holder nor the names of its contributors 19 | # may be used to endorse or promote products derived from this software without 20 | # specific prior written permission. 21 | # 22 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 23 | # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 24 | # THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 25 | # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 26 | # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 27 | # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 28 | # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 29 | # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 30 | # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 31 | # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 32 | # 33 | 34 | Launch4jTask.specify.config=Specify configFile or config 35 | AntConfig.duplicate.element=Duplicate element 36 | -------------------------------------------------------------------------------- /win/launch4j/src/net/sf/launch4j/ant/messages_es.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/src/net/sf/launch4j/ant/messages_es.properties -------------------------------------------------------------------------------- /win/launch4j/src/net/sf/launch4j/binding/IValidatable.java: -------------------------------------------------------------------------------- 1 | /* 2 | Launch4j (http://launch4j.sourceforge.net/) 3 | Cross-platform Java application wrapper for creating Windows native executables. 4 | 5 | Copyright (c) 2004, 2015 Grzegorz Kowal 6 | All rights reserved. 7 | 8 | Redistribution and use in source and binary forms, with or without modification, 9 | are permitted provided that the following conditions are met: 10 | 11 | 1. Redistributions of source code must retain the above copyright notice, 12 | this list of conditions and the following disclaimer. 13 | 14 | 2. Redistributions in binary form must reproduce the above copyright notice, 15 | this list of conditions and the following disclaimer in the documentation 16 | and/or other materials provided with the distribution. 17 | 18 | 3. Neither the name of the copyright holder nor the names of its contributors 19 | may be used to endorse or promote products derived from this software without 20 | specific prior written permission. 21 | 22 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 23 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 24 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 25 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 26 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 27 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 28 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 29 | AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 30 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 31 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 32 | */ 33 | 34 | /* 35 | * Created on 2004-01-30 36 | */ 37 | package net.sf.launch4j.binding; 38 | 39 | /** 40 | * @author Copyright (C) 2004 Grzegorz Kowal 41 | */ 42 | public interface IValidatable { 43 | public void checkInvariants(); 44 | } 45 | -------------------------------------------------------------------------------- /win/launch4j/src/net/sf/launch4j/binding/messages_es.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/src/net/sf/launch4j/binding/messages_es.properties -------------------------------------------------------------------------------- /win/launch4j/src/net/sf/launch4j/config/Describable.java: -------------------------------------------------------------------------------- 1 | package net.sf.launch4j.config; 2 | 3 | import java.util.Comparator; 4 | 5 | public interface Describable { 6 | 7 | String getDescription(); 8 | 9 | int getIndex(); 10 | 11 | class DescribableComparator implements Comparator { 12 | 13 | @Override 14 | public int compare(Describable o1, Describable o2) { 15 | return o1.getDescription().compareTo(o2.getDescription()); 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /win/launch4j/src/net/sf/launch4j/config/messages_es.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/src/net/sf/launch4j/config/messages_es.properties -------------------------------------------------------------------------------- /win/launch4j/src/net/sf/launch4j/form/BasicForm.jfrm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/src/net/sf/launch4j/form/BasicForm.jfrm -------------------------------------------------------------------------------- /win/launch4j/src/net/sf/launch4j/form/ClassPathForm.jfrm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/src/net/sf/launch4j/form/ClassPathForm.jfrm -------------------------------------------------------------------------------- /win/launch4j/src/net/sf/launch4j/form/ConfigForm.jfrm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/src/net/sf/launch4j/form/ConfigForm.jfrm -------------------------------------------------------------------------------- /win/launch4j/src/net/sf/launch4j/form/EnvironmentVarsForm.jfrm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/src/net/sf/launch4j/form/EnvironmentVarsForm.jfrm -------------------------------------------------------------------------------- /win/launch4j/src/net/sf/launch4j/form/HeaderForm.jfrm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/src/net/sf/launch4j/form/HeaderForm.jfrm -------------------------------------------------------------------------------- /win/launch4j/src/net/sf/launch4j/form/JreForm.jfrm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/src/net/sf/launch4j/form/JreForm.jfrm -------------------------------------------------------------------------------- /win/launch4j/src/net/sf/launch4j/form/MessagesForm.jfrm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/src/net/sf/launch4j/form/MessagesForm.jfrm -------------------------------------------------------------------------------- /win/launch4j/src/net/sf/launch4j/form/SingleInstanceForm.jfrm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/src/net/sf/launch4j/form/SingleInstanceForm.jfrm -------------------------------------------------------------------------------- /win/launch4j/src/net/sf/launch4j/form/SplashForm.jfrm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/src/net/sf/launch4j/form/SplashForm.jfrm -------------------------------------------------------------------------------- /win/launch4j/src/net/sf/launch4j/form/VersionInfoForm.jfrm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/src/net/sf/launch4j/form/VersionInfoForm.jfrm -------------------------------------------------------------------------------- /win/launch4j/src/net/sf/launch4j/form/messages_es.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/src/net/sf/launch4j/form/messages_es.properties -------------------------------------------------------------------------------- /win/launch4j/src/net/sf/launch4j/formimpl/GlassPane.java: -------------------------------------------------------------------------------- 1 | package net.sf.launch4j.formimpl; 2 | 3 | import java.awt.AWTEvent; 4 | import java.awt.Component; 5 | import java.awt.Cursor; 6 | import java.awt.Toolkit; 7 | import java.awt.Window; 8 | import java.awt.event.AWTEventListener; 9 | import java.awt.event.KeyAdapter; 10 | import java.awt.event.KeyEvent; 11 | import java.awt.event.MouseAdapter; 12 | 13 | import javax.swing.JComponent; 14 | import javax.swing.SwingUtilities; 15 | 16 | /** 17 | * This is the glass pane class that intercepts screen interactions during 18 | * system busy states. 19 | * 20 | * Based on JavaWorld article by Yexin Chen. 21 | */ 22 | public class GlassPane extends JComponent implements AWTEventListener { 23 | private final Window _window; 24 | 25 | public GlassPane(Window w) { 26 | _window = w; 27 | addMouseListener(new MouseAdapter() {}); 28 | addKeyListener(new KeyAdapter() {}); 29 | setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); 30 | } 31 | 32 | /** 33 | * Receives all key events in the AWT and processes the ones that originated 34 | * from the current window with the glass pane. 35 | * 36 | * @param event 37 | * the AWTEvent that was fired 38 | */ 39 | public void eventDispatched(AWTEvent event) { 40 | Object source = event.getSource(); 41 | if (event instanceof KeyEvent 42 | && source instanceof Component) { 43 | /* 44 | * If the event originated from the window w/glass pane, 45 | * consume the event. 46 | */ 47 | if ((SwingUtilities.windowForComponent((Component) source) == _window)) { 48 | ((KeyEvent) event).consume(); 49 | } 50 | } 51 | } 52 | 53 | /** 54 | * Sets the glass pane as visible or invisible. The mouse cursor will be set 55 | * accordingly. 56 | */ 57 | public void setVisible(boolean visible) { 58 | if (visible) { 59 | // Start receiving all events and consume them if necessary 60 | Toolkit.getDefaultToolkit().addAWTEventListener(this, AWTEvent.KEY_EVENT_MASK); 61 | } else { 62 | // Stop receiving all events 63 | Toolkit.getDefaultToolkit().removeAWTEventListener(this); 64 | } 65 | super.setVisible(visible); 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /win/launch4j/src/net/sf/launch4j/formimpl/messages_es.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/src/net/sf/launch4j/formimpl/messages_es.properties -------------------------------------------------------------------------------- /win/launch4j/src/net/sf/launch4j/messages_es.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/src/net/sf/launch4j/messages_es.properties -------------------------------------------------------------------------------- /win/launch4j/w32api/MinGW.LICENSE.txt: -------------------------------------------------------------------------------- 1 | MinGW - Licensing Terms 2 | 3 | Various pieces distributed with MinGW come with its own copyright and license: 4 | 5 | Basic MinGW runtime 6 | MinGW base runtime package is uncopyrighted and placed in the public domain. 7 | This basically means that you can do what you want with the code. 8 | 9 | w32api 10 | You are free to use, modify and copy this package. 11 | No restrictions are imposed on programs or object files compiled with this library. 12 | You may not restrict the the usage of this library. 13 | You may distribute this library as part of another package or as a modified package 14 | if and only if you do not restrict the usage of the portions consisting 15 | of this (optionally modified) library. 16 | If distributed as a modified package then this file must be included. 17 | 18 | This library is distributed in the hope that it will be useful, 19 | but WITHOUT ANY WARRANTY; without even the implied warranty 20 | of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 21 | 22 | MinGW profiling code 23 | MinGW profiling code is distributed under the GNU General Public License. 24 | 25 | The development tools such as GCC, GDB, GNU Make, etc all covered by GNU General Public License. 26 | -------------------------------------------------------------------------------- /win/launch4j/w32api/crt2.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/w32api/crt2.o -------------------------------------------------------------------------------- /win/launch4j/w32api/libadvapi32.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/w32api/libadvapi32.a -------------------------------------------------------------------------------- /win/launch4j/w32api/libgcc.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/w32api/libgcc.a -------------------------------------------------------------------------------- /win/launch4j/w32api/libkernel32.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/w32api/libkernel32.a -------------------------------------------------------------------------------- /win/launch4j/w32api/libmingw32.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/w32api/libmingw32.a -------------------------------------------------------------------------------- /win/launch4j/w32api/libmsvcrt.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/w32api/libmsvcrt.a -------------------------------------------------------------------------------- /win/launch4j/w32api/libshell32.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/w32api/libshell32.a -------------------------------------------------------------------------------- /win/launch4j/w32api/libuser32.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/w32api/libuser32.a -------------------------------------------------------------------------------- /win/launch4j/w32api_jni/MinGW.LICENSE.txt: -------------------------------------------------------------------------------- 1 | MinGW - Licensing Terms 2 | 3 | Various pieces distributed with MinGW come with its own copyright and license: 4 | 5 | Basic MinGW runtime 6 | MinGW base runtime package is uncopyrighted and placed in the public domain. 7 | This basically means that you can do what you want with the code. 8 | 9 | w32api 10 | You are free to use, modify and copy this package. 11 | No restrictions are imposed on programs or object files compiled with this library. 12 | You may not restrict the the usage of this library. 13 | You may distribute this library as part of another package or as a modified package 14 | if and only if you do not restrict the usage of the portions consisting 15 | of this (optionally modified) library. 16 | If distributed as a modified package then this file must be included. 17 | 18 | This library is distributed in the hope that it will be useful, 19 | but WITHOUT ANY WARRANTY; without even the implied warranty 20 | of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 21 | 22 | MinGW profiling code 23 | MinGW profiling code is distributed under the GNU General Public License. 24 | 25 | The development tools such as GCC, GDB, GNU Make, etc all covered by GNU General Public License. 26 | -------------------------------------------------------------------------------- /win/launch4j/w32api_jni/crt2.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/w32api_jni/crt2.o -------------------------------------------------------------------------------- /win/launch4j/w32api_jni/libadvapi32.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/w32api_jni/libadvapi32.a -------------------------------------------------------------------------------- /win/launch4j/w32api_jni/libgcc.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/w32api_jni/libgcc.a -------------------------------------------------------------------------------- /win/launch4j/w32api_jni/libkernel32.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/w32api_jni/libkernel32.a -------------------------------------------------------------------------------- /win/launch4j/w32api_jni/libmingw32.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/w32api_jni/libmingw32.a -------------------------------------------------------------------------------- /win/launch4j/w32api_jni/libmingwex.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/w32api_jni/libmingwex.a -------------------------------------------------------------------------------- /win/launch4j/w32api_jni/libmoldname.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/w32api_jni/libmoldname.a -------------------------------------------------------------------------------- /win/launch4j/w32api_jni/libmsvcrt.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/w32api_jni/libmsvcrt.a -------------------------------------------------------------------------------- /win/launch4j/w32api_jni/libshell32.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/w32api_jni/libshell32.a -------------------------------------------------------------------------------- /win/launch4j/w32api_jni/libuser32.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/w32api_jni/libuser32.a -------------------------------------------------------------------------------- /win/launch4j/web/bullet.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/web/bullet.gif -------------------------------------------------------------------------------- /win/launch4j/web/launch4j-use.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/web/launch4j-use.gif -------------------------------------------------------------------------------- /win/launch4j/web/launch4j.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSUCartography/FlexProjector/ba9e391ff36b41aa836b4fe5bf2597f96403b78c/win/launch4j/web/launch4j.gif --------------------------------------------------------------------------------