From 350f7c26256ec70919c79248c0c62c11aa4de72b Mon Sep 17 00:00:00 2001 From: xitiomet Date: Sat, 14 Jan 2023 14:45:08 -0500 Subject: [PATCH] Added windows build --- get_jre.cmd | 3 + pom.xml | 80 ++++++++++++++ src/main/java/org/openstatic/OutputData.java | 4 +- src/main/resources/jsonroller.icns | Bin 0 -> 40176 bytes src/main/resources/jsonroller.ico | Bin 0 -> 99678 bytes src/main/resources/jsonroller64.png | Bin 0 -> 1165 bytes src/nsis/json-roller.nsi | 104 +++++++++++++++++++ 7 files changed, 190 insertions(+), 1 deletion(-) create mode 100644 get_jre.cmd create mode 100644 src/main/resources/jsonroller.icns create mode 100644 src/main/resources/jsonroller.ico create mode 100644 src/main/resources/jsonroller64.png create mode 100644 src/nsis/json-roller.nsi diff --git a/get_jre.cmd b/get_jre.cmd new file mode 100644 index 0000000..0c56346 --- /dev/null +++ b/get_jre.cmd @@ -0,0 +1,3 @@ +@echo off +jlink.exe -v --add-modules java.base,java.logging,java.management,java.naming,java.security.jgss,java.sql,java.xml --output c:\Users\brian\src\json-roller\jre --strip-debug --compress 2 --no-header-files --no-man-pages +pause diff --git a/pom.xml b/pom.xml index 1c61e7d..0fbc046 100644 --- a/pom.xml +++ b/pom.xml @@ -122,6 +122,9 @@ jdeb org.vafer 1.8 + + false + @@ -154,6 +157,83 @@ + + com.akathist.maven.plugins.launch4j + launch4j-maven-plugin + 2.0.1 + + + l4j-gui + package + + launch4j + + + console + target/json-roller.exe + target/${project.artifactId}-${project.version}.jar + + false + Error in launch4j plugin + + ${mainClass} + + src/main/resources/jsonroller.ico + + %JAVA_HOME%;%PATH%;jre + 1.8.0 + 512 + 1024 + + -Djava.awt.headless=true + + + + 1.0.0.0 + 1.0.0.0 + json-roller + Copyright (c) 2019 + openstatic.org + 1.0.0.0 + ${project.version} + JSONRoller + JSONRoller + json-roller.exe + + + + + + + org.digitalmediaserver + nsis-maven-plugin + 1.0.2 + + C:\Program Files (x86)\NSIS\makensis.exe + /usr/bin/makensis + + lzma + true + 64 + + json-roller + ${project.name.camel} + + + + + build-windows-installer + + ${basedir}/src/nsis/json-roller.nsi + json-roller-setup.exe + + + generate-headerfile + make + + + + org.apache.maven.plugins maven-javadoc-plugin diff --git a/src/main/java/org/openstatic/OutputData.java b/src/main/java/org/openstatic/OutputData.java index f330ef9..41915d4 100644 --- a/src/main/java/org/openstatic/OutputData.java +++ b/src/main/java/org/openstatic/OutputData.java @@ -224,7 +224,9 @@ function makeSortable(table) var selectEl = document.createElement('select'); selectEl.style.width = '100%'; selectEl.id = 'filter'+j; - createOptions(selectEl, uniqueArray(valuesForColumn(table, j))); + createOptions(selectEl, uniqueArray(valuesForColumn(table, j)).sort(function (a, b) { // sort rows + return (a.localeCompare(b, 'en', {numeric: true})); + })); let fj = j, ftable = table, fselectEl = selectEl; selectEl.onchange = function() { applyFilters(); diff --git a/src/main/resources/jsonroller.icns b/src/main/resources/jsonroller.icns new file mode 100644 index 0000000000000000000000000000000000000000..8327886a47a7297f81e6e367b04062d1f6538c37 GIT binary patch literal 40176 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

AS^l1=1ky?>SONAfs3wH69p|6@e(ix=J9HB{3c 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 literal 0 HcmV?d00001 diff --git a/src/nsis/json-roller.nsi b/src/nsis/json-roller.nsi new file mode 100644 index 0000000..cf4821c --- /dev/null +++ b/src/nsis/json-roller.nsi @@ -0,0 +1,104 @@ +;NSIS Modern User Interface +;Basic Example Script +;Written by Joost Verburg + +;-------------------------------- +;Include Modern UI + +!include "MUI2.nsh" + +!include "EnvVarUpdate.nsh" + +;-------------------------------- +;General + + ;Name and file + Name "json-roller" + + ;Default installation folder + InstallDir "$PROGRAMFILES\json-roller" + + ;Get installation folder from registry if available + InstallDirRegKey HKCU "Software\json-roller" "" + + ;Request application privileges for Windows Vista + RequestExecutionLevel admin + + !define REG_UNINSTALL "Software\Microsoft\Windows\CurrentVersion\Uninstall\json-roller" + +;-------------------------------- +;Interface Settings + + !define MUI_ABORTWARNING + +;-------------------------------- +;Pages + + !insertmacro MUI_PAGE_COMPONENTS + !insertmacro MUI_PAGE_DIRECTORY + !insertmacro MUI_PAGE_INSTFILES + + !insertmacro MUI_UNPAGE_CONFIRM + !insertmacro MUI_UNPAGE_INSTFILES + + +;-------------------------------- +;Languages + + !insertmacro MUI_LANGUAGE "English" + +;-------------------------------- +;Installer Sections + +Section "json-roller" Main +SectionIn RO + WriteRegStr HKLM "${REG_UNINSTALL}" "DisplayName" "JSON Roller" + WriteRegStr HKLM "${REG_UNINSTALL}" "DisplayIcon" "$INSTDIR\Uninstall.exe" + WriteRegStr HKLM "${REG_UNINSTALL}" "DisplayVersion" "1.0" + WriteRegStr HKLM "${REG_UNINSTALL}" "Publisher" "openstatic.org" + WriteRegStr HKLM "${REG_UNINSTALL}" "InstallSource" "$EXEDIR\" + + ${EnvVarUpdate} $0 "PATH" "A" "HKCU" "$INSTDIR" + ${EnvVarUpdate} $0 "PATH" "A" "HKLM" "$INSTDIR" + + ;Under WinXP this creates two separate buttons: "Modify" and "Remove". + ;"Modify" will run installer and "Remove" will run uninstaller. + WriteRegDWord HKLM "${REG_UNINSTALL}" "NoModify" 1 + WriteRegDWord HKLM "${REG_UNINSTALL}" "NoRepair" 0 + WriteRegStr HKLM "${REG_UNINSTALL}" "UninstallString" '"$INSTDIR\Uninstall.exe"' + + SetOutPath "$INSTDIR" + + File ${PROJECT_BUILD_DIR}\json-roller.exe + + ;Store installation folder + WriteRegStr HKCU "Software\json-roller" "" $INSTDIR + + ;Create uninstaller + WriteUninstaller "$INSTDIR\Uninstall.exe" + +SectionEnd + +Section "Java Runtime Environment" java + + SetOutPath "$INSTDIR\jre" + File /r "${PROJECT_BASEDIR}\jre\*" +SectionEnd + +;-------------------------------- +;Uninstaller Section + +Section "Uninstall" + + ;ADD YOUR OWN FILES HERE... + + Delete "$INSTDIR\Uninstall.exe" + Delete "$INSTDIR\json-roller.exe" + RMDir /r "$INSTDIR" + + ${un.EnvVarUpdate} $0 "PATH" "R" "HKCU" "$INSTDIR" + ${un.EnvVarUpdate} $0 "PATH" "R" "HKLM" "$INSTDIR" + + DeleteRegKey /ifempty HKCU "Software\json-roller" + DeleteRegKey HKLM "${REG_UNINSTALL}" +SectionEnd