From 61d7659745eeab0b63b002eae1c96cc4e6f3ddbc Mon Sep 17 00:00:00 2001 From: Chris Date: Tue, 10 Nov 2020 00:10:28 +0100 Subject: [PATCH 1/5] #66 - Added html-minifier-terser dependency. --- custom-packages/html-minifier-terser | 15 +++ custom-packages/html-minifier-terser.cmd | 17 ++++ custom-packages/package.json | 9 +- custom-packages/yarn.lock | 116 ++++++++++++++++++++++- 4 files changed, 153 insertions(+), 4 deletions(-) create mode 100644 custom-packages/html-minifier-terser create mode 100644 custom-packages/html-minifier-terser.cmd diff --git a/custom-packages/html-minifier-terser b/custom-packages/html-minifier-terser new file mode 100644 index 0000000..1b75a31 --- /dev/null +++ b/custom-packages/html-minifier-terser @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/node_modules/html-minifier-terser/cli.js" "$@" + ret=$? +else + node "$basedir/node_modules/html-minifier-terser/cli.js" "$@" + ret=$? +fi +exit $ret diff --git a/custom-packages/html-minifier-terser.cmd b/custom-packages/html-minifier-terser.cmd new file mode 100644 index 0000000..73766a8 --- /dev/null +++ b/custom-packages/html-minifier-terser.cmd @@ -0,0 +1,17 @@ +@ECHO off +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +"%_prog%" "%dp0%\node_modules\html-minifier-terser\cli.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/custom-packages/package.json b/custom-packages/package.json index 3ecfc05..3d7e109 100644 --- a/custom-packages/package.json +++ b/custom-packages/package.json @@ -1,10 +1,13 @@ { "name": "minifierbeans-custom-packages", - "version": "1.1.0", + "version": "1.2.0", "description": "CLIs to minify JS, CSS, HTML, XML and JSON.", "devDependencies": { "cssnano": "^4.1.10", - "postcss-cli": "^7.1.0", - "google-closure-compiler": "^20201006.0.0" + "google-closure-compiler": "^20201006.0.0", + "postcss-cli": "^7.1.0" + }, + "dependencies": { + "html-minifier-terser": "^5.1.1" } } diff --git a/custom-packages/yarn.lock b/custom-packages/yarn.lock index 237b09a..716b7e3 100644 --- a/custom-packages/yarn.lock +++ b/custom-packages/yarn.lock @@ -142,6 +142,11 @@ browserslist@^4.0.0: node-releases "^1.1.53" pkg-up "^2.0.0" +buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + caller-callsite@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" @@ -161,6 +166,14 @@ callsites@^2.0.0: resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= +camel-case@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.1.tgz#1fc41c854f00e2f7d0139dfeba1542d6896fe547" + integrity sha512-7fa2WcG4fYFkclIvEmxBbTvmibwF2/agfEBc6q3lOpVu0A13ltLsA+Hr/8Hp6kp5f+G7hKi6t8lys6XxP+1K6Q== + dependencies: + pascal-case "^3.1.1" + tslib "^1.10.0" + camelcase@^5.0.0: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" @@ -213,6 +226,13 @@ chokidar@^3.3.0: optionalDependencies: fsevents "~2.1.2" +clean-css@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78" + integrity sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA== + dependencies: + source-map "~0.6.0" + cliui@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" @@ -295,6 +315,16 @@ color@^3.0.0: color-convert "^1.9.1" color-string "^1.5.2" +commander@^2.20.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== + concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" @@ -494,6 +524,14 @@ domutils@^1.7.0: dom-serializer "0" domelementtype "1" +dot-case@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.3.tgz#21d3b52efaaba2ea5fda875bb1aa8124521cf4aa" + integrity sha512-7hwEmg6RiSQfm/GwPL4AAWXKy3YNNZA3oFv2Pdiey0mwkRCPZ9x6SZbkLcn8Ma5PYeVokzoD4Twv2n7LKp5WeA== + dependencies: + no-case "^3.0.3" + tslib "^1.10.0" + dot-prop@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.2.0.tgz#c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb" @@ -729,6 +767,11 @@ has@^1.0.0, has@^1.0.3: dependencies: function-bind "^1.1.1" +he@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + hex-color-regex@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" @@ -749,6 +792,19 @@ html-comment-regex@^1.1.0: resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== +html-minifier-terser@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#922e96f1f3bb60832c2634b79884096389b1f054" + integrity sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg== + dependencies: + camel-case "^4.1.1" + clean-css "^4.2.3" + commander "^4.1.1" + he "^1.2.0" + param-case "^3.0.3" + relateurl "^0.2.7" + terser "^4.6.3" + ignore@^5.1.1: version "5.1.4" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.4.tgz#84b7b3dbe64552b6ef0eca99f6743dbec6d97adf" @@ -958,6 +1014,13 @@ log-symbols@^2.2.0: dependencies: chalk "^2.0.1" +lower-case@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.1.tgz#39eeb36e396115cc05e29422eaea9e692c9408c7" + integrity sha512-LiWgfDLLb1dwbFQZsSglpRj+1ctGnayXz3Uv0/WO8n558JycT5fg6zkNcnW0G68Nn0aEldTFeEfmjCfmqry/rQ== + dependencies: + tslib "^1.10.0" + mdn-data@2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" @@ -1000,6 +1063,14 @@ mkdirp@~0.5.1: dependencies: minimist "^1.2.5" +no-case@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.3.tgz#c21b434c1ffe48b39087e86cfb4d2582e9df18f8" + integrity sha512-ehY/mVQCf9BL0gKfsJBvFJen+1V//U+0HQMPrWct40ixE4jnv0bfvxDbWtAHL9EcaPEOJHVVYKoQn1TlZUB8Tw== + dependencies: + lower-case "^2.0.1" + tslib "^1.10.0" + node-releases@^1.1.53: version "1.1.53" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.53.tgz#2d821bfa499ed7c5dffc5e2f28c88e78a08ee3f4" @@ -1105,6 +1176,14 @@ p-try@^2.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== +param-case@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.3.tgz#4be41f8399eff621c56eebb829a5e451d9801238" + integrity sha512-VWBVyimc1+QrzappRs7waeN2YmoZFCGXWASRYX1/rGHtXqEcrGEIDm+jqIwFa2fRXNgQEwrxaYuIrX0WcAguTA== + dependencies: + dot-case "^3.0.3" + tslib "^1.10.0" + parse-json@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" @@ -1113,6 +1192,14 @@ parse-json@^4.0.0: error-ex "^1.3.1" json-parse-better-errors "^1.0.1" +pascal-case@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.1.tgz#5ac1975133ed619281e88920973d2cd1f279de5f" + integrity sha512-XIeHKqIrsquVTQL2crjq3NfJUxmdLasn3TYOU0VBM+UX2a6ztAWBlJQBePLGY7VHW8+2dRadeIPK5+KImwTxQA== + dependencies: + no-case "^3.0.3" + tslib "^1.10.0" + path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" @@ -1512,6 +1599,11 @@ readdirp@~3.3.0: dependencies: picomatch "^2.0.7" +relateurl@^0.2.7: + version "0.2.7" + resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" + integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= + remove-trailing-separator@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" @@ -1584,12 +1676,20 @@ slash@^3.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== +source-map-support@~0.5.12: + version "0.5.19" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" + integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + source-map@^0.5.1: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= -source-map@^0.6.1: +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== @@ -1710,6 +1810,15 @@ svgo@^1.0.0: unquote "~1.1.1" util.promisify "~1.0.0" +terser@^4.6.3: + version "4.8.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" + integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== + dependencies: + commander "^2.20.0" + source-map "~0.6.1" + source-map-support "~0.5.12" + timsort@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" @@ -1722,6 +1831,11 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" +tslib@^1.10.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + uniq@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" From 9e8c78bddb6fbda476c7336de0c77e165b51c8fb Mon Sep 17 00:00:00 2001 From: Chris Date: Tue, 10 Nov 2020 00:11:45 +0100 Subject: [PATCH 2/5] #66 - Simplified UI. --- pom.xml | 2 +- .../css/ui/options/CssOptionsPanel.form | 73 ++--- .../css/ui/options/CssOptionsPanel.java | 50 ++-- .../html/HtmlMinifierCliExecutable.java | 172 +++++++++++ .../html/ui/options/HtmlOptionsPanel.form | 149 +++++---- .../html/ui/options/HtmlOptionsPanel.java | 140 ++++----- .../javascript/ui/options/JsOptionsPanel.form | 283 ++++++++---------- .../javascript/ui/options/JsOptionsPanel.java | 159 +++++----- .../json/ui/options/JsonOptionsPanel.form | 53 +--- .../json/ui/options/JsonOptionsPanel.java | 34 +-- .../ui/options/ProjectOptionsPanel.form | 215 +++++++------ .../ui/options/ProjectOptionsPanel.java | 150 +++++----- .../minifierbeans/ui/MinifyProperty.java | 30 -- .../util/source/minify/MinifyUtil.java | 12 +- .../xml/ui/options/XmlOptionsPanel.form | 49 +-- .../xml/ui/options/XmlOptionsPanel.java | 55 ++-- .../css/ui/options/Bundle.properties | 11 +- .../html/ui/options/Bundle.properties | 16 +- .../javascript/ui/options/Bundle.properties | 11 +- .../json/ui/options/Bundle.properties | 9 +- .../project/ui/options/Bundle.properties | 40 ++- .../xml/ui/options/Bundle.properties | 9 +- 22 files changed, 842 insertions(+), 880 deletions(-) create mode 100644 src/main/java/io/github/chris2011/netbeans/minifierbeans/html/HtmlMinifierCliExecutable.java diff --git a/pom.xml b/pom.xml index 81faba8..7d7d878 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ io.github.chris2011.netbeans.minifierbeans Minifierbeans - 3.1.0 + 3.2.0 nbm Minifierbeans https://github.com/Chris2011/minifierbeans diff --git a/src/main/java/io/github/chris2011/netbeans/minifierbeans/css/ui/options/CssOptionsPanel.form b/src/main/java/io/github/chris2011/netbeans/minifierbeans/css/ui/options/CssOptionsPanel.form index e632f1a..56d9b1b 100644 --- a/src/main/java/io/github/chris2011/netbeans/minifierbeans/css/ui/options/CssOptionsPanel.form +++ b/src/main/java/io/github/chris2011/netbeans/minifierbeans/css/ui/options/CssOptionsPanel.form @@ -19,17 +19,22 @@ - - + + + + - + + + + @@ -40,7 +45,7 @@ - + @@ -56,15 +61,18 @@ - - + - + + + + + @@ -72,7 +80,7 @@ - + @@ -87,16 +95,15 @@ - - - + + - + @@ -106,43 +113,33 @@ - - - - - - + + + + + + - + - - - - - - - - - - - + - + @@ -155,7 +152,7 @@ - + @@ -169,10 +166,7 @@ - - - - + @@ -185,7 +179,7 @@ - + @@ -197,11 +191,6 @@ - - - - - diff --git a/src/main/java/io/github/chris2011/netbeans/minifierbeans/css/ui/options/CssOptionsPanel.java b/src/main/java/io/github/chris2011/netbeans/minifierbeans/css/ui/options/CssOptionsPanel.java index d848576..4270b65 100644 --- a/src/main/java/io/github/chris2011/netbeans/minifierbeans/css/ui/options/CssOptionsPanel.java +++ b/src/main/java/io/github/chris2011/netbeans/minifierbeans/css/ui/options/CssOptionsPanel.java @@ -36,7 +36,6 @@ private void init() { /*-------- CSS ----------*/ newCSSFile.setSelected(minifyProperty.isNewCSSFile()); preExtensionCSS.setEnabled(minifyProperty.isNewCSSFile()); - preExtensionCSS_Label.setEnabled(minifyProperty.isNewCSSFile()); projectOptionsPanel.skipPreExtensionCSS.setEnabled(minifyProperty.isNewCSSFile()); this.preExtensionCSS.setText(minifyProperty.getPreExtensionCSS()); @@ -78,7 +77,6 @@ public void itemStateChanged(ItemEvent e) { minifyProperty.setPreExtensionCSS(".min"); preExtensionCSS.setText(".min"); preExtensionCSS.setEnabled(Boolean.TRUE); - preExtensionCSS_Label.setEnabled(Boolean.TRUE); if (minifyProperty.isBuildCSSMinify() && minifyProperty.isNewCSSFile()) { projectOptionsPanel.skipPreExtensionCSS.setEnabled(Boolean.TRUE); @@ -89,7 +87,6 @@ public void itemStateChanged(ItemEvent e) { } else { minifyProperty.setNewCSSFile(Boolean.FALSE); preExtensionCSS.setEnabled(Boolean.FALSE); - preExtensionCSS_Label.setEnabled(Boolean.FALSE); projectOptionsPanel.skipPreExtensionCSS.setEnabled(Boolean.FALSE); minifyProperty.setSkipPreExtensionCSS(Boolean.FALSE); projectOptionsPanel.skipPreExtensionCSS.setSelected(Boolean.FALSE); @@ -141,7 +138,6 @@ private void initComponents() { jPanel1 = new javax.swing.JPanel(); cssNanoLabel = new javax.swing.JLabel(); jPanel2 = new javax.swing.JPanel(); - preExtensionCSS_Label = new javax.swing.JLabel(); extLabel = new javax.swing.JLabel(); preExtensionCSS = new javax.swing.JTextField(); autoMinifyCSS = new javax.swing.JCheckBox(); @@ -157,17 +153,17 @@ private void initComponents() { jPanel1Layout.setHorizontalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() - .addContainerGap() .addComponent(cssNanoLabel) - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addGap(0, 476, Short.MAX_VALUE)) ); jPanel1Layout.setVerticalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(cssNanoLabel) + .addGroup(jPanel1Layout.createSequentialGroup() + .addContainerGap() + .addComponent(cssNanoLabel) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); - org.openide.awt.Mnemonics.setLocalizedText(preExtensionCSS_Label, org.openide.util.NbBundle.getMessage(CssOptionsPanel.class, "CssOptionsPanel.preExtensionCSS_Label.text")); // NOI18N - extLabel.setForeground(extLabel.getForeground().darker()); org.openide.awt.Mnemonics.setLocalizedText(extLabel, org.openide.util.NbBundle.getMessage(CssOptionsPanel.class, "CssOptionsPanel.extLabel.text")); // NOI18N @@ -179,7 +175,6 @@ private void initComponents() { newCSSFile.setBackground(new java.awt.Color(255, 255, 255)); org.openide.awt.Mnemonics.setLocalizedText(newCSSFile, org.openide.util.NbBundle.getMessage(CssOptionsPanel.class, "CssOptionsPanel.newCSSFile.text")); // NOI18N - newCSSFile.setToolTipText(org.openide.util.NbBundle.getMessage(CssOptionsPanel.class, "CssOptionsPanel.newCSSFile.toolTipText")); // NOI18N newCSSFile.setContentAreaFilled(false); javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2); @@ -190,14 +185,13 @@ private void initComponents() { .addGap(6, 6, 6) .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(autoMinifyCSS, javax.swing.GroupLayout.PREFERRED_SIZE, 117, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(newCSSFile) .addGroup(jPanel2Layout.createSequentialGroup() - .addComponent(preExtensionCSS_Label, javax.swing.GroupLayout.PREFERRED_SIZE, 148, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(6, 6, 6) + .addComponent(newCSSFile) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(preExtensionCSS, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(extLabel))) - .addGap(6, 6, 6)) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); jPanel2Layout.setVerticalGroup( jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) @@ -205,18 +199,16 @@ private void initComponents() { .addGap(6, 6, 6) .addComponent(autoMinifyCSS) .addGap(6, 6, 6) - .addComponent(newCSSFile) - .addGap(6, 6, 6) - .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(preExtensionCSS_Label, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(preExtensionCSS, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(extLabel)) - .addGap(6, 6, 6)) + .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(preExtensionCSS, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(extLabel)) + .addComponent(newCSSFile)) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); org.openide.awt.Mnemonics.setLocalizedText(headerLabelCSS, org.openide.util.NbBundle.getMessage(CssOptionsPanel.class, "CssOptionsPanel.headerLabelCSS.text")); // NOI18N - headerEditorPaneCSS.setToolTipText(org.openide.util.NbBundle.getMessage(CssOptionsPanel.class, "CssOptionsPanel.headerEditorPaneCSS.toolTipText")); // NOI18N headerScrollPaneCSS.setViewportView(headerEditorPaneCSS); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); @@ -226,14 +218,17 @@ private void initComponents() { .addGroup(layout.createSequentialGroup() .addGap(6, 6, 6) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jPanel1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(jPanel2, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(headerLabelCSS) .addComponent(headerScrollPaneCSS, javax.swing.GroupLayout.PREFERRED_SIZE, 339, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGap(6, 6, 6))) - .addGap(6, 6, 6)) + .addGap(12, 12, 12)) + .addGroup(layout.createSequentialGroup() + .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addGap(6, 6, 6)))) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) @@ -242,7 +237,7 @@ private void initComponents() { .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(6, 6, 6) + .addGap(18, 18, 18) .addComponent(headerLabelCSS) .addGap(6, 6, 6) .addComponent(headerScrollPaneCSS, javax.swing.GroupLayout.PREFERRED_SIZE, 139, javax.swing.GroupLayout.PREFERRED_SIZE) @@ -273,7 +268,6 @@ boolean valid() { private javax.swing.JPanel jPanel2; public javax.swing.JCheckBox newCSSFile; public javax.swing.JTextField preExtensionCSS; - public javax.swing.JLabel preExtensionCSS_Label; // End of variables declaration//GEN-END:variables void fireChange() { diff --git a/src/main/java/io/github/chris2011/netbeans/minifierbeans/html/HtmlMinifierCliExecutable.java b/src/main/java/io/github/chris2011/netbeans/minifierbeans/html/HtmlMinifierCliExecutable.java new file mode 100644 index 0000000..b9c54f1 --- /dev/null +++ b/src/main/java/io/github/chris2011/netbeans/minifierbeans/html/HtmlMinifierCliExecutable.java @@ -0,0 +1,172 @@ +package io.github.chris2011.netbeans.minifierbeans.html; + +import io.github.chris2011.netbeans.minifierbeans.util.StringUtils; +import java.awt.EventQueue; +import java.io.File; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.concurrent.Future; +import org.netbeans.api.annotations.common.CheckForNull; +import org.netbeans.api.annotations.common.NullAllowed; +import org.netbeans.api.extexecution.ExecutionDescriptor; +import org.netbeans.api.project.Project; +import io.github.chris2011.netbeans.minifierbeans.ExternalExecutable; +import io.github.chris2011.netbeans.minifierbeans.util.FileUtils; +import java.util.Arrays; +import org.openide.filesystems.FileUtil; +import org.openide.util.NbBundle; +import org.openide.util.Utilities; + +public class HtmlMinifierCliExecutable { + + public static final String HTML_MINIFIER_CLI_NAME; + + private static final String OUTPUT_FILE_PARAM = "--output"; // NOI18N + private static final String CONFIG_DIR = System.getProperty("user.home") + "/.netbeans/minifierbeans/custom-packages"; + + protected final Project project; + protected final String htmlMinifierPath; + + static { + if (Utilities.isWindows()) { + HTML_MINIFIER_CLI_NAME = CONFIG_DIR + "/html-minifier-terser.cmd"; // NOI18N + } else { + HTML_MINIFIER_CLI_NAME = CONFIG_DIR + "/html-minifier-terser"; // NOI18N + } + } + + private static final String OPTIONS_PATH = "HTML5/Minifier"; + + HtmlMinifierCliExecutable(String htmlMinifierCliPath, @NullAllowed Project project) { + assert htmlMinifierCliPath != null; + + this.htmlMinifierPath = htmlMinifierCliPath; + this.project = project; + } + + @CheckForNull + public static HtmlMinifierCliExecutable getDefault(@NullAllowed Project project) { + return createExecutable(HTML_MINIFIER_CLI_NAME, project); + } + + private static HtmlMinifierCliExecutable createExecutable(String htmlMinifierCli, Project project) { + if (Utilities.isMac()) { + return new HtmlMinifierCliExecutable.MacHtmlMinifierCliExecutable(htmlMinifierCli, project); + } + return new HtmlMinifierCliExecutable(htmlMinifierCli, project); + } + + String getCommand() { + return htmlMinifierPath; + } + + @NbBundle.Messages({ + "# {0} - project name", + "HtmlMinifierCliExecutable.generate=HTML Minifier CLI ({0})",}) + public Future generate(File inputFile, File outputFile, String compilerFlags) { + assert !EventQueue.isDispatchThread(); + assert project != null; + + Future task = getExecutable("Minification in progress") + .additionalParameters(getGenerateParams(inputFile, outputFile, compilerFlags)) + .run(getDescriptor()); + + assert task != null : htmlMinifierPath; + return task; + } + + private ExternalExecutable getExecutable(String title) { + assert title != null; + + return new ExternalExecutable(getCommand()) + .workDir(getWorkDir()) + .displayName(title) + .optionsPath(OPTIONS_PATH) + .noOutput(false); + } + + private ExecutionDescriptor getDescriptor() { + assert project != null; + + return ExternalExecutable.DEFAULT_EXECUTION_DESCRIPTOR + .showSuspended(true) + .optionsPath(OPTIONS_PATH) + .outLineBased(true) + .errLineBased(true) + .postExecution(new Runnable() { + @Override + public void run() { + project.getProjectDirectory().refresh(); + } + }); + } + + private File getWorkDir() { + if (project == null) { + return FileUtils.TMP_DIR; + } + + File workDir = FileUtil.toFile(project.getProjectDirectory()); + + assert workDir != null : project.getProjectDirectory(); + + return workDir; + } + + private List getGenerateParams(File inputFile, File outputFile, String compilerFlags) { + List params = new ArrayList<>(); + + params.add(inputFile.getAbsolutePath().replace("\\", "/")); + + if (!compilerFlags.isEmpty()) { + String[] splittedCompilerFlags = compilerFlags.split("; "); + + for (String splittedCompilerFlag : splittedCompilerFlags) { + String[] splittedKeyAndValue = splittedCompilerFlag.split(" "); + + params.addAll(Arrays.asList(splittedKeyAndValue)); + } + } + + params.add(OUTPUT_FILE_PARAM); + params.add(outputFile.getAbsolutePath().replace("\\", "/")); + + return getParams(params); + } + + List getParams(List params) { + assert params != null; + + return params; + } + + //~ Inner classes + private static final class MacHtmlMinifierCliExecutable extends HtmlMinifierCliExecutable { + + private static final String BASH_COMMAND = "/bin/bash -lc"; // NOI18N + + MacHtmlMinifierCliExecutable(String htmlMinifierCliPath, Project project) { + super(htmlMinifierCliPath, project); + } + + @Override + String getCommand() { + return BASH_COMMAND; + } + + @Override + List getParams(List params) { + StringBuilder sb = new StringBuilder(200); + sb.append("\""); // NOI18N + sb.append(htmlMinifierPath); + sb.append("\" \""); // NOI18N + sb.append(StringUtils.implode(super.getParams(params), "\" \"")); // NOI18N + sb.append("\""); // NOI18N + + return Collections.singletonList(sb.toString()); + } + + } + +} diff --git a/src/main/java/io/github/chris2011/netbeans/minifierbeans/html/ui/options/HtmlOptionsPanel.form b/src/main/java/io/github/chris2011/netbeans/minifierbeans/html/ui/options/HtmlOptionsPanel.form index b1dc2fb..77ef232 100644 --- a/src/main/java/io/github/chris2011/netbeans/minifierbeans/html/ui/options/HtmlOptionsPanel.form +++ b/src/main/java/io/github/chris2011/netbeans/minifierbeans/html/ui/options/HtmlOptionsPanel.form @@ -24,17 +24,17 @@ - - - - - - - - + + + + + + + + - + @@ -43,13 +43,13 @@ - - - + + + - + @@ -65,15 +65,31 @@ - + + + + - + + + + + + + + + + + + + + @@ -88,24 +104,26 @@ + - - + + + + + + + + + - - - - - - - - - + + + @@ -113,24 +131,23 @@ - - + + - - + + + + + + - - - - - - + @@ -142,22 +159,9 @@ - - - - - - - - - - - - - - - + + @@ -166,7 +170,7 @@ - + @@ -179,9 +183,9 @@ - + - + @@ -193,44 +197,40 @@ - + - + - - + + + + + + - + - - - - - + - - + + - + - - - - - + @@ -242,11 +242,6 @@ - - - - - diff --git a/src/main/java/io/github/chris2011/netbeans/minifierbeans/html/ui/options/HtmlOptionsPanel.java b/src/main/java/io/github/chris2011/netbeans/minifierbeans/html/ui/options/HtmlOptionsPanel.java index 49a9a5b..c71c433 100644 --- a/src/main/java/io/github/chris2011/netbeans/minifierbeans/html/ui/options/HtmlOptionsPanel.java +++ b/src/main/java/io/github/chris2011/netbeans/minifierbeans/html/ui/options/HtmlOptionsPanel.java @@ -35,7 +35,6 @@ private void init() { newHTMLFile.setSelected(minifyProperty.isNewHTMLFile()); preExtensionHTML.setEnabled(minifyProperty.isNewHTMLFile()); - preExtensionHTML_Label.setEnabled(minifyProperty.isNewHTMLFile()); projectOptionsPanel.skipPreExtensionHTML.setEnabled(minifyProperty.isNewHTMLFile()); this.preExtensionHTML.setText(minifyProperty.getPreExtensionHTML()); autoMinifyHTML.setSelected(minifyProperty.isAutoMinifyHTML()); @@ -75,7 +74,6 @@ public void itemStateChanged(ItemEvent e) { minifyProperty.setPreExtensionHTML(".min"); preExtensionHTML.setText(".min"); preExtensionHTML.setEnabled(Boolean.TRUE); - preExtensionHTML_Label.setEnabled(Boolean.TRUE); if (minifyProperty.isBuildHTMLMinify() && minifyProperty.isNewHTMLFile()) { projectOptionsPanel.skipPreExtensionHTML.setEnabled(Boolean.TRUE); minifyProperty.setSkipPreExtensionHTML(Boolean.TRUE); @@ -85,7 +83,6 @@ public void itemStateChanged(ItemEvent e) { } else { minifyProperty.setNewHTMLFile(Boolean.FALSE); preExtensionHTML.setEnabled(Boolean.FALSE); - preExtensionHTML_Label.setEnabled(Boolean.FALSE); projectOptionsPanel.skipPreExtensionHTML.setEnabled(Boolean.FALSE); minifyProperty.setSkipPreExtensionHTML(Boolean.FALSE); projectOptionsPanel.skipPreExtensionHTML.setSelected(Boolean.FALSE); @@ -111,35 +108,6 @@ public void focusLost(FocusEvent fe) { minifyProperty.setPreExtensionHTML(text); } }); - - if (minifyProperty.isBuildInternalCSSMinify()) { - this.buildInternalCSSMinify.setSelected(Boolean.TRUE); - } - - if (minifyProperty.isBuildInternalJSMinify()) { - this.buildInternalJSMinify.setSelected(Boolean.TRUE); - } - this.buildInternalCSSMinify.addItemListener(new ItemListener() { - @Override - public void itemStateChanged(ItemEvent e) { - if (e.getStateChange() == ItemEvent.SELECTED) { - minifyProperty.setBuildInternalCSSMinify(Boolean.TRUE); - } else { - minifyProperty.setBuildInternalCSSMinify(Boolean.FALSE); - } - } - }); - this.buildInternalJSMinify.addItemListener(new ItemListener() { - @Override - public void itemStateChanged(ItemEvent e) { - if (e.getStateChange() == ItemEvent.SELECTED) { - minifyProperty.setBuildInternalJSMinify(Boolean.TRUE); - } else { - minifyProperty.setBuildInternalJSMinify(Boolean.FALSE); - } - //minifyPropertyController.writeMinifyProperty(minifyProperty); - } - }); } public static HtmlOptionsPanel create() { @@ -172,14 +140,15 @@ public void removeChangeListener(ChangeListener listener) { private void initComponents() { jPanel1 = new javax.swing.JPanel(); + closureCompilerLabel = new javax.swing.JLabel(); jPanel2 = new javax.swing.JPanel(); newHTMLFile = new javax.swing.JCheckBox(); - preExtensionHTML_Label = new javax.swing.JLabel(); preExtensionHTML = new javax.swing.JTextField(); autoMinifyHTML = new javax.swing.JCheckBox(); extLabel = new javax.swing.JLabel(); - buildInternalJSMinify = new javax.swing.JCheckBox(); - buildInternalCSSMinify = new javax.swing.JCheckBox(); + htmlMinifierFlagsLabel = new javax.swing.JLabel(); + htmlMinifierFlagsTextField = new javax.swing.JTextField(); + htmlMinifierFlagsHintsLabel = new javax.swing.JLabel(); headerLabelHTML = new javax.swing.JLabel(); headerScrollPaneHTML = new javax.swing.JScrollPane(); headerEditorPaneHTML = new javax.swing.JEditorPane(); @@ -188,42 +157,45 @@ private void initComponents() { jPanel1.setPreferredSize(new java.awt.Dimension(0, 32)); + org.openide.awt.Mnemonics.setLocalizedText(closureCompilerLabel, org.openide.util.NbBundle.getMessage(HtmlOptionsPanel.class, "HtmlOptionsPanel.closureCompilerLabel.text")); // NOI18N + javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); jPanel1.setLayout(jPanel1Layout); jPanel1Layout.setHorizontalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 0, Short.MAX_VALUE) + .addGroup(jPanel1Layout.createSequentialGroup() + .addComponent(closureCompilerLabel) + .addGap(0, 0, Short.MAX_VALUE)) ); jPanel1Layout.setVerticalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 32, Short.MAX_VALUE) + .addGroup(jPanel1Layout.createSequentialGroup() + .addContainerGap() + .addComponent(closureCompilerLabel) + .addContainerGap(10, Short.MAX_VALUE)) ); jPanel2.setPreferredSize(new java.awt.Dimension(762, 86)); newHTMLFile.setBackground(new java.awt.Color(255, 255, 255)); org.openide.awt.Mnemonics.setLocalizedText(newHTMLFile, org.openide.util.NbBundle.getMessage(HtmlOptionsPanel.class, "HtmlOptionsPanel.newHTMLFile.text")); // NOI18N - newHTMLFile.setToolTipText(org.openide.util.NbBundle.getMessage(HtmlOptionsPanel.class, "HtmlOptionsPanel.newHTMLFile.toolTipText")); // NOI18N - newHTMLFile.setOpaque(false); - - org.openide.awt.Mnemonics.setLocalizedText(preExtensionHTML_Label, org.openide.util.NbBundle.getMessage(HtmlOptionsPanel.class, "HtmlOptionsPanel.preExtensionHTML_Label.text")); // NOI18N + newHTMLFile.setContentAreaFilled(false); preExtensionHTML.setText(org.openide.util.NbBundle.getMessage(HtmlOptionsPanel.class, "HtmlOptionsPanel.preExtensionHTML.text")); // NOI18N autoMinifyHTML.setBackground(new java.awt.Color(255, 255, 255)); org.openide.awt.Mnemonics.setLocalizedText(autoMinifyHTML, org.openide.util.NbBundle.getMessage(HtmlOptionsPanel.class, "HtmlOptionsPanel.autoMinifyHTML.text")); // NOI18N - autoMinifyHTML.setOpaque(false); + autoMinifyHTML.setContentAreaFilled(false); extLabel.setForeground(extLabel.getForeground().darker()); org.openide.awt.Mnemonics.setLocalizedText(extLabel, org.openide.util.NbBundle.getMessage(HtmlOptionsPanel.class, "HtmlOptionsPanel.extLabel.text")); // NOI18N - buildInternalJSMinify.setBackground(new java.awt.Color(255, 255, 255)); - org.openide.awt.Mnemonics.setLocalizedText(buildInternalJSMinify, org.openide.util.NbBundle.getMessage(HtmlOptionsPanel.class, "HtmlOptionsPanel.buildInternalJSMinify.text")); // NOI18N - buildInternalJSMinify.setOpaque(false); + org.openide.awt.Mnemonics.setLocalizedText(htmlMinifierFlagsLabel, org.openide.util.NbBundle.getMessage(HtmlOptionsPanel.class, "HtmlOptionsPanel.htmlMinifierFlagsLabel.text")); // NOI18N - buildInternalCSSMinify.setBackground(new java.awt.Color(255, 255, 255)); - org.openide.awt.Mnemonics.setLocalizedText(buildInternalCSSMinify, org.openide.util.NbBundle.getMessage(HtmlOptionsPanel.class, "HtmlOptionsPanel.buildInternalCSSMinify.text")); // NOI18N - buildInternalCSSMinify.setOpaque(false); + htmlMinifierFlagsTextField.setText(org.openide.util.NbBundle.getMessage(HtmlOptionsPanel.class, "HtmlOptionsPanel.htmlMinifierFlagsTextField.text")); // NOI18N + + htmlMinifierFlagsHintsLabel.setFont(new java.awt.Font("Segoe UI", 0, 11)); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(htmlMinifierFlagsHintsLabel, org.openide.util.NbBundle.getMessage(HtmlOptionsPanel.class, "HtmlOptionsPanel.htmlMinifierFlagsHintsLabel.text")); // NOI18N javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2); jPanel2.setLayout(jPanel2Layout); @@ -232,44 +204,45 @@ private void initComponents() { .addGroup(jPanel2Layout.createSequentialGroup() .addGap(6, 6, 6) .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(autoMinifyHTML, javax.swing.GroupLayout.PREFERRED_SIZE, 117, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(jPanel2Layout.createSequentialGroup() - .addComponent(preExtensionHTML_Label) - .addGap(6, 6, 6) + .addComponent(newHTMLFile) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(preExtensionHTML, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(extLabel)) + .addComponent(extLabel))) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addGroup(jPanel2Layout.createSequentialGroup() + .addComponent(htmlMinifierFlagsLabel) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel2Layout.createSequentialGroup() - .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(autoMinifyHTML, javax.swing.GroupLayout.PREFERRED_SIZE, 117, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(newHTMLFile)) - .addGap(6, 6, 6) - .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(buildInternalJSMinify) - .addComponent(buildInternalCSSMinify, javax.swing.GroupLayout.PREFERRED_SIZE, 150, javax.swing.GroupLayout.PREFERRED_SIZE)))) + .addComponent(htmlMinifierFlagsHintsLabel) + .addGap(0, 165, Short.MAX_VALUE)) + .addComponent(htmlMinifierFlagsTextField)) .addContainerGap()) ); jPanel2Layout.setVerticalGroup( jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanel2Layout.createSequentialGroup() - .addGap(6, 6, 6) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup() + .addContainerGap() .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(autoMinifyHTML) - .addComponent(buildInternalJSMinify)) + .addComponent(htmlMinifierFlagsLabel) + .addComponent(htmlMinifierFlagsTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(htmlMinifierFlagsHintsLabel) + .addGap(18, 18, 18) + .addComponent(autoMinifyHTML) .addGap(6, 6, 6) .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(newHTMLFile) - .addComponent(buildInternalCSSMinify)) - .addGap(6, 6, 6) - .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(preExtensionHTML_Label, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(preExtensionHTML, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(extLabel)) - .addGap(6, 6, 6)) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); org.openide.awt.Mnemonics.setLocalizedText(headerLabelHTML, org.openide.util.NbBundle.getMessage(HtmlOptionsPanel.class, "HtmlOptionsPanel.headerLabelHTML.text")); // NOI18N - headerEditorPaneHTML.setToolTipText(org.openide.util.NbBundle.getMessage(HtmlOptionsPanel.class, "HtmlOptionsPanel.headerEditorPaneHTML.toolTipText")); // NOI18N headerScrollPaneHTML.setViewportView(headerEditorPaneHTML); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); @@ -279,29 +252,27 @@ private void initComponents() { .addGroup(layout.createSequentialGroup() .addGap(6, 6, 6) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addComponent(headerScrollPaneHTML, javax.swing.GroupLayout.PREFERRED_SIZE, 339, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(6, 6, 6)) - .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, 756, Short.MAX_VALUE) - .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, 756, Short.MAX_VALUE)) - .addGap(6, 6, 6)) + .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, 762, Short.MAX_VALUE))) .addGroup(layout.createSequentialGroup() - .addGap(6, 6, 6) - .addComponent(headerLabelHTML) - .addGap(6, 6, 6)) + .addContainerGap() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(headerScrollPaneHTML, javax.swing.GroupLayout.PREFERRED_SIZE, 339, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(headerLabelHTML)) + .addGap(0, 0, Short.MAX_VALUE)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(6, 6, 6) .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(6, 6, 6) - .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, 92, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(6, 6, 6) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, 119, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(18, 18, 18) .addComponent(headerLabelHTML) .addGap(6, 6, 6) .addComponent(headerScrollPaneHTML, javax.swing.GroupLayout.PREFERRED_SIZE, 139, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(6, 6, 6)) + .addContainerGap()) ); }// //GEN-END:initComponents @@ -319,17 +290,18 @@ boolean valid() { // Variables declaration - do not modify//GEN-BEGIN:variables public javax.swing.JCheckBox autoMinifyHTML; - public javax.swing.JCheckBox buildInternalCSSMinify; - public javax.swing.JCheckBox buildInternalJSMinify; + private javax.swing.JLabel closureCompilerLabel; private javax.swing.JLabel extLabel; protected javax.swing.JEditorPane headerEditorPaneHTML; private javax.swing.JLabel headerLabelHTML; private javax.swing.JScrollPane headerScrollPaneHTML; + private javax.swing.JLabel htmlMinifierFlagsHintsLabel; + private javax.swing.JLabel htmlMinifierFlagsLabel; + private javax.swing.JTextField htmlMinifierFlagsTextField; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; public javax.swing.JCheckBox newHTMLFile; public javax.swing.JTextField preExtensionHTML; - public javax.swing.JLabel preExtensionHTML_Label; // End of variables declaration//GEN-END:variables void fireChange() { diff --git a/src/main/java/io/github/chris2011/netbeans/minifierbeans/javascript/ui/options/JsOptionsPanel.form b/src/main/java/io/github/chris2011/netbeans/minifierbeans/javascript/ui/options/JsOptionsPanel.form index 0ee144e..996bea1 100644 --- a/src/main/java/io/github/chris2011/netbeans/minifierbeans/javascript/ui/options/JsOptionsPanel.form +++ b/src/main/java/io/github/chris2011/netbeans/minifierbeans/javascript/ui/options/JsOptionsPanel.form @@ -16,42 +16,20 @@ - - - - - - - - - - - - - - - - - - - - - - + + + + + - - - - - - - - - - + + + + + + - @@ -62,37 +40,13 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + @@ -139,20 +93,133 @@ - + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -164,101 +231,11 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/main/java/io/github/chris2011/netbeans/minifierbeans/javascript/ui/options/JsOptionsPanel.java b/src/main/java/io/github/chris2011/netbeans/minifierbeans/javascript/ui/options/JsOptionsPanel.java index cf8da93..c88cf61 100644 --- a/src/main/java/io/github/chris2011/netbeans/minifierbeans/javascript/ui/options/JsOptionsPanel.java +++ b/src/main/java/io/github/chris2011/netbeans/minifierbeans/javascript/ui/options/JsOptionsPanel.java @@ -33,7 +33,6 @@ private void init() { newJSFile.setSelected(minifyProperty.isNewJSFile()); preExtensionJS.setEnabled(minifyProperty.isNewJSFile()); - preExtensionJS_Label.setEnabled(minifyProperty.isNewJSFile()); projectOptionsPanel.skipPreExtensionJS.setEnabled(minifyProperty.isNewJSFile()); minifyProperty.setSkipPreExtensionJS(minifyProperty.isNewJSFile()); @@ -105,7 +104,6 @@ public void itemStateChanged(ItemEvent e) { preExtensionJS.setText(".min"); preExtensionJS.setEnabled(Boolean.TRUE); - preExtensionJS_Label.setEnabled(Boolean.TRUE); if (minifyProperty.isBuildJSMinify() && minifyProperty.isNewJSFile()) { projectOptionsPanel.skipPreExtensionJS.setEnabled(true); @@ -115,7 +113,6 @@ public void itemStateChanged(ItemEvent e) { } else { minifyProperty.setNewJSFile(Boolean.FALSE); preExtensionJS.setEnabled(Boolean.FALSE); - preExtensionJS_Label.setEnabled(Boolean.FALSE); projectOptionsPanel.skipPreExtensionJS.setEnabled(false); @@ -170,17 +167,16 @@ private void initComponents() { jPanel1 = new javax.swing.JPanel(); closureCompilerLabel = new javax.swing.JLabel(); jPanel2 = new javax.swing.JPanel(); - headerLabelJS = new javax.swing.JLabel(); - headerScrollPaneJS = new javax.swing.JScrollPane(); - headerEditorPaneJS = new javax.swing.JEditorPane(); - closureCompilerFlagsLabel = new javax.swing.JLabel(); - closureCompilerFlagsTextField = new javax.swing.JTextField(); - closureCompilerArgumentsHintsLabel = new javax.swing.JLabel(); autoMinifyJS = new javax.swing.JCheckBox(); newJSFile = new javax.swing.JCheckBox(); - preExtensionJS_Label = new javax.swing.JLabel(); preExtensionJS = new javax.swing.JTextField(); extLabel = new javax.swing.JLabel(); + closureCompilerFlagsLabel = new javax.swing.JLabel(); + closureCompilerFlagsTextField = new javax.swing.JTextField(); + closureCompilerArgumentsHintsLabel = new javax.swing.JLabel(); + headerLabelJS = new javax.swing.JLabel(); + headerScrollPaneJS = new javax.swing.JScrollPane(); + headerEditorPaneJS = new javax.swing.JEditorPane(); org.openide.awt.Mnemonics.setLocalizedText(closureCompilerLabel, org.openide.util.NbBundle.getMessage(JsOptionsPanel.class, "JsOptionsPanel.closureCompilerLabel.text")); // NOI18N @@ -202,78 +198,87 @@ private void initComponents() { jPanel2.setPreferredSize(new java.awt.Dimension(762, 86)); - javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2); - jPanel2.setLayout(jPanel2Layout); - jPanel2Layout.setHorizontalGroup( - jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 0, Short.MAX_VALUE) - ); - jPanel2Layout.setVerticalGroup( - jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 92, Short.MAX_VALUE) - ); - - org.openide.awt.Mnemonics.setLocalizedText(headerLabelJS, org.openide.util.NbBundle.getMessage(JsOptionsPanel.class, "JsOptionsPanel.headerLabelJS.text")); // NOI18N - - headerEditorPaneJS.setToolTipText(org.openide.util.NbBundle.getMessage(JsOptionsPanel.class, "JsOptionsPanel.headerEditorPaneJS.toolTipText")); // NOI18N - headerScrollPaneJS.setViewportView(headerEditorPaneJS); - - org.openide.awt.Mnemonics.setLocalizedText(closureCompilerFlagsLabel, org.openide.util.NbBundle.getMessage(JsOptionsPanel.class, "JsOptionsPanel.closureCompilerFlagsLabel.text")); // NOI18N - - closureCompilerFlagsTextField.setText(org.openide.util.NbBundle.getMessage(JsOptionsPanel.class, "JsOptionsPanel.closureCompilerFlagsTextField.text")); // NOI18N - - closureCompilerArgumentsHintsLabel.setFont(new java.awt.Font("Segoe UI", 0, 11)); // NOI18N - org.openide.awt.Mnemonics.setLocalizedText(closureCompilerArgumentsHintsLabel, org.openide.util.NbBundle.getMessage(JsOptionsPanel.class, "JsOptionsPanel.closureCompilerArgumentsHintsLabel.text")); // NOI18N - autoMinifyJS.setBackground(new java.awt.Color(255, 255, 255)); org.openide.awt.Mnemonics.setLocalizedText(autoMinifyJS, org.openide.util.NbBundle.getMessage(JsOptionsPanel.class, "JsOptionsPanel.autoMinifyJS.text")); // NOI18N autoMinifyJS.setContentAreaFilled(false); newJSFile.setBackground(new java.awt.Color(255, 255, 255)); org.openide.awt.Mnemonics.setLocalizedText(newJSFile, org.openide.util.NbBundle.getMessage(JsOptionsPanel.class, "JsOptionsPanel.newJSFile.text")); // NOI18N - newJSFile.setToolTipText(org.openide.util.NbBundle.getMessage(JsOptionsPanel.class, "JsOptionsPanel.newJSFile.toolTipText")); // NOI18N newJSFile.setContentAreaFilled(false); - org.openide.awt.Mnemonics.setLocalizedText(preExtensionJS_Label, org.openide.util.NbBundle.getMessage(JsOptionsPanel.class, "JsOptionsPanel.preExtensionJS_Label.text")); // NOI18N - preExtensionJS.setText(org.openide.util.NbBundle.getMessage(JsOptionsPanel.class, "JsOptionsPanel.preExtensionJS.text")); // NOI18N extLabel.setForeground(extLabel.getForeground().darker()); org.openide.awt.Mnemonics.setLocalizedText(extLabel, org.openide.util.NbBundle.getMessage(JsOptionsPanel.class, "JsOptionsPanel.extLabel.text")); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(closureCompilerFlagsLabel, org.openide.util.NbBundle.getMessage(JsOptionsPanel.class, "JsOptionsPanel.closureCompilerFlagsLabel.text")); // NOI18N + + closureCompilerFlagsTextField.setText(org.openide.util.NbBundle.getMessage(JsOptionsPanel.class, "JsOptionsPanel.closureCompilerFlagsTextField.text")); // NOI18N + + closureCompilerArgumentsHintsLabel.setFont(new java.awt.Font("Segoe UI", 0, 11)); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(closureCompilerArgumentsHintsLabel, org.openide.util.NbBundle.getMessage(JsOptionsPanel.class, "JsOptionsPanel.closureCompilerArgumentsHintsLabel.text")); // NOI18N + + javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2); + jPanel2.setLayout(jPanel2Layout); + jPanel2Layout.setHorizontalGroup( + jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel2Layout.createSequentialGroup() + .addContainerGap() + .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel2Layout.createSequentialGroup() + .addComponent(newJSFile) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(preExtensionJS, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(extLabel)) + .addComponent(autoMinifyJS)) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup() + .addComponent(closureCompilerFlagsLabel) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addComponent(closureCompilerArgumentsHintsLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(closureCompilerFlagsTextField)) + .addGap(0, 0, Short.MAX_VALUE)) + ); + jPanel2Layout.setVerticalGroup( + jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup() + .addContainerGap() + .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(closureCompilerFlagsLabel) + .addComponent(closureCompilerFlagsTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(closureCompilerArgumentsHintsLabel) + .addGap(18, 18, 18) + .addComponent(autoMinifyJS) + .addGap(6, 6, 6) + .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(newJSFile) + .addComponent(extLabel) + .addComponent(preExtensionJS, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + ); + + org.openide.awt.Mnemonics.setLocalizedText(headerLabelJS, org.openide.util.NbBundle.getMessage(JsOptionsPanel.class, "JsOptionsPanel.headerLabelJS.text")); // NOI18N + + headerScrollPaneJS.setViewportView(headerEditorPaneJS); + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addGap(6, 6, 6) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(headerLabelJS) - .addComponent(headerScrollPaneJS, javax.swing.GroupLayout.PREFERRED_SIZE, 339, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addGroup(layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(newJSFile) - .addGroup(layout.createSequentialGroup() - .addComponent(preExtensionJS_Label) - .addGap(6, 6, 6) - .addComponent(preExtensionJS, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(extLabel)) - .addComponent(autoMinifyJS)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, 332, Short.MAX_VALUE)))) - .addGap(6, 6, 6)) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addComponent(closureCompilerFlagsLabel) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addGroup(layout.createSequentialGroup() - .addComponent(closureCompilerArgumentsHintsLabel) - .addGap(0, 35, Short.MAX_VALUE)) - .addComponent(closureCompilerFlagsTextField)) + .addContainerGap() + .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, 794, Short.MAX_VALUE)) + .addGroup(layout.createSequentialGroup() + .addGap(6, 6, 6) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(headerLabelJS) + .addComponent(headerScrollPaneJS, javax.swing.GroupLayout.PREFERRED_SIZE, 339, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))) .addContainerGap()) ); layout.setVerticalGroup( @@ -281,32 +286,13 @@ private void initComponents() { .addGroup(layout.createSequentialGroup() .addGap(6, 6, 6) .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(closureCompilerFlagsLabel) - .addComponent(closureCompilerFlagsTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(closureCompilerArgumentsHintsLabel) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, 92, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(6, 6, 6)) - .addGroup(layout.createSequentialGroup() - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(autoMinifyJS) - .addGap(6, 6, 6) - .addComponent(newJSFile) - .addGap(6, 6, 6) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(preExtensionJS_Label, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(extLabel) - .addComponent(preExtensionJS, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) + .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, 119, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(18, 18, 18) .addComponent(headerLabelJS) .addGap(6, 6, 6) .addComponent(headerScrollPaneJS, javax.swing.GroupLayout.PREFERRED_SIZE, 139, javax.swing.GroupLayout.PREFERRED_SIZE) - .addContainerGap()) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); }// //GEN-END:initComponents @@ -337,7 +323,6 @@ boolean valid() { private javax.swing.JPanel jPanel2; public javax.swing.JCheckBox newJSFile; public javax.swing.JTextField preExtensionJS; - public javax.swing.JLabel preExtensionJS_Label; // End of variables declaration//GEN-END:variables void fireChange() { diff --git a/src/main/java/io/github/chris2011/netbeans/minifierbeans/json/ui/options/JsonOptionsPanel.form b/src/main/java/io/github/chris2011/netbeans/minifierbeans/json/ui/options/JsonOptionsPanel.form index a9b1803..9fdd3e9 100644 --- a/src/main/java/io/github/chris2011/netbeans/minifierbeans/json/ui/options/JsonOptionsPanel.form +++ b/src/main/java/io/github/chris2011/netbeans/minifierbeans/json/ui/options/JsonOptionsPanel.form @@ -43,13 +43,13 @@ - - - + + + - + @@ -83,17 +83,16 @@ - - - + + - + @@ -103,16 +102,14 @@ - - - + - + @@ -124,22 +121,9 @@ - - - - - - - - - - - - - - - + + @@ -148,7 +132,7 @@ - + @@ -161,9 +145,9 @@ - + - + @@ -175,7 +159,7 @@ - + @@ -189,11 +173,6 @@ - - - - - @@ -203,7 +182,7 @@ - + diff --git a/src/main/java/io/github/chris2011/netbeans/minifierbeans/json/ui/options/JsonOptionsPanel.java b/src/main/java/io/github/chris2011/netbeans/minifierbeans/json/ui/options/JsonOptionsPanel.java index e4e77c4..2fa2934 100644 --- a/src/main/java/io/github/chris2011/netbeans/minifierbeans/json/ui/options/JsonOptionsPanel.java +++ b/src/main/java/io/github/chris2011/netbeans/minifierbeans/json/ui/options/JsonOptionsPanel.java @@ -35,7 +35,6 @@ private void init() { newJSONFile.setSelected(minifyProperty.isNewJSONFile()); preExtensionJSON.setEnabled(minifyProperty.isNewJSONFile()); - preExtensionJSON_Label.setEnabled(minifyProperty.isNewJSONFile()); projectOptionsPanel.skipPreExtensionJSON.setEnabled(minifyProperty.isNewJSONFile()); this.preExtensionJSON.setText(minifyProperty.getPreExtensionJSON()); autoMinifyJSON.setSelected(minifyProperty.isAutoMinifyJSON()); @@ -77,7 +76,6 @@ public void itemStateChanged(ItemEvent e) { minifyProperty.setPreExtensionJSON(".min"); preExtensionJSON.setText(".min"); preExtensionJSON.setEnabled(Boolean.TRUE); - preExtensionJSON_Label.setEnabled(Boolean.TRUE); if (minifyProperty.isBuildJSONMinify() && minifyProperty.isNewJSONFile()) { projectOptionsPanel.skipPreExtensionJSON.setEnabled(Boolean.TRUE); minifyProperty.setSkipPreExtensionJSON(Boolean.TRUE); @@ -87,7 +85,6 @@ public void itemStateChanged(ItemEvent e) { } else { minifyProperty.setNewJSONFile(Boolean.FALSE); preExtensionJSON.setEnabled(Boolean.FALSE); - preExtensionJSON_Label.setEnabled(Boolean.FALSE); projectOptionsPanel.skipPreExtensionJSON.setEnabled(Boolean.FALSE); minifyProperty.setSkipPreExtensionJSON(Boolean.FALSE); projectOptionsPanel.skipPreExtensionJSON.setSelected(Boolean.FALSE); @@ -139,7 +136,6 @@ private void initComponents() { jPanel1 = new javax.swing.JPanel(); jPanel2 = new javax.swing.JPanel(); newJSONFile = new javax.swing.JCheckBox(); - preExtensionJSON_Label = new javax.swing.JLabel(); preExtensionJSON = new javax.swing.JTextField(); autoMinifyJSON = new javax.swing.JCheckBox(); extLabel = new javax.swing.JLabel(); @@ -164,16 +160,13 @@ private void initComponents() { newJSONFile.setBackground(new java.awt.Color(255, 255, 255)); org.openide.awt.Mnemonics.setLocalizedText(newJSONFile, org.openide.util.NbBundle.getMessage(JsonOptionsPanel.class, "JsonOptionsPanel.newJSONFile.text")); // NOI18N - newJSONFile.setToolTipText(org.openide.util.NbBundle.getMessage(JsonOptionsPanel.class, "JsonOptionsPanel.newJSONFile.toolTipText")); // NOI18N - newJSONFile.setOpaque(false); - - org.openide.awt.Mnemonics.setLocalizedText(preExtensionJSON_Label, org.openide.util.NbBundle.getMessage(JsonOptionsPanel.class, "JsonOptionsPanel.preExtensionJSON_Label.text")); // NOI18N + newJSONFile.setContentAreaFilled(false); preExtensionJSON.setText(org.openide.util.NbBundle.getMessage(JsonOptionsPanel.class, "JsonOptionsPanel.preExtensionJSON.text")); // NOI18N autoMinifyJSON.setBackground(new java.awt.Color(255, 255, 255)); org.openide.awt.Mnemonics.setLocalizedText(autoMinifyJSON, org.openide.util.NbBundle.getMessage(JsonOptionsPanel.class, "JsonOptionsPanel.autoMinifyJSON.text")); // NOI18N - autoMinifyJSON.setOpaque(false); + autoMinifyJSON.setContentAreaFilled(false); extLabel.setForeground(extLabel.getForeground().darker()); org.openide.awt.Mnemonics.setLocalizedText(extLabel, org.openide.util.NbBundle.getMessage(JsonOptionsPanel.class, "JsonOptionsPanel.extLabel.text")); // NOI18N @@ -185,15 +178,14 @@ private void initComponents() { .addGroup(jPanel2Layout.createSequentialGroup() .addGap(6, 6, 6) .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(newJSONFile) .addComponent(autoMinifyJSON, javax.swing.GroupLayout.PREFERRED_SIZE, 117, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(jPanel2Layout.createSequentialGroup() - .addComponent(preExtensionJSON_Label, javax.swing.GroupLayout.PREFERRED_SIZE, 156, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(6, 6, 6) + .addComponent(newJSONFile) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(preExtensionJSON, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(extLabel))) - .addGap(0, 0, 0)) + .addContainerGap(371, Short.MAX_VALUE)) ); jPanel2Layout.setVerticalGroup( jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) @@ -201,17 +193,14 @@ private void initComponents() { .addGap(6, 6, 6) .addComponent(autoMinifyJSON) .addGap(6, 6, 6) - .addComponent(newJSONFile) - .addGap(6, 6, 6) .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(extLabel) .addComponent(preExtensionJSON, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addComponent(preExtensionJSON_Label, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGap(6, 6, 6)) + .addComponent(newJSONFile)) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); - headerEditorPaneJSON.setToolTipText(org.openide.util.NbBundle.getMessage(JsonOptionsPanel.class, "JsonOptionsPanel.headerEditorPaneJSON.toolTipText")); // NOI18N headerScrollPaneJSON.setViewportView(headerEditorPaneJSON); org.openide.awt.Mnemonics.setLocalizedText(headerLabelJSON, org.openide.util.NbBundle.getMessage(JsonOptionsPanel.class, "JsonOptionsPanel.headerLabelJSON.text")); // NOI18N @@ -238,13 +227,13 @@ private void initComponents() { .addGroup(layout.createSequentialGroup() .addGap(6, 6, 6) .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(6, 6, 6) - .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, 92, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(6, 6, 6) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, 58, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(18, 18, 18) .addComponent(headerLabelJSON) .addGap(6, 6, 6) .addComponent(headerScrollPaneJSON, javax.swing.GroupLayout.PREFERRED_SIZE, 139, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(6, 6, 6)) + .addContainerGap()) ); }// //GEN-END:initComponents @@ -263,7 +252,6 @@ boolean valid() { private javax.swing.JPanel jPanel2; public javax.swing.JCheckBox newJSONFile; public javax.swing.JTextField preExtensionJSON; - public javax.swing.JLabel preExtensionJSON_Label; // End of variables declaration//GEN-END:variables void fireChange() { diff --git a/src/main/java/io/github/chris2011/netbeans/minifierbeans/project/ui/options/ProjectOptionsPanel.form b/src/main/java/io/github/chris2011/netbeans/minifierbeans/project/ui/options/ProjectOptionsPanel.form index 1429049..fc1d97b 100644 --- a/src/main/java/io/github/chris2011/netbeans/minifierbeans/project/ui/options/ProjectOptionsPanel.form +++ b/src/main/java/io/github/chris2011/netbeans/minifierbeans/project/ui/options/ProjectOptionsPanel.form @@ -20,19 +20,24 @@ - - + + + + + + + - + - + - + @@ -50,7 +55,7 @@ - + @@ -67,9 +72,9 @@ - + - + @@ -86,9 +91,9 @@ - + - + @@ -109,7 +114,7 @@ - + @@ -126,9 +131,9 @@ - + - + @@ -145,12 +150,9 @@ - - - - + - + @@ -168,7 +170,7 @@ - + @@ -176,35 +178,37 @@ - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - + - - + + + + + + + + + + + - + @@ -216,34 +220,37 @@ - - - - - - + + + + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - + @@ -255,39 +262,26 @@ - - - - + - + - - - - - - - - - - - + - + @@ -299,9 +293,9 @@ - + - + @@ -313,12 +307,9 @@ - + - - - - + @@ -330,12 +321,9 @@ - - - - + - + @@ -347,7 +335,7 @@ - + @@ -357,9 +345,9 @@ - + - + @@ -371,12 +359,9 @@ - - - - + - + @@ -388,9 +373,9 @@ - + - + @@ -402,12 +387,9 @@ - + - - - - + @@ -419,9 +401,9 @@ - + - + @@ -433,17 +415,28 @@ - - - - + - + + + + + + + + + + + + + + + diff --git a/src/main/java/io/github/chris2011/netbeans/minifierbeans/project/ui/options/ProjectOptionsPanel.java b/src/main/java/io/github/chris2011/netbeans/minifierbeans/project/ui/options/ProjectOptionsPanel.java index 176313d..7aa1f08 100644 --- a/src/main/java/io/github/chris2011/netbeans/minifierbeans/project/ui/options/ProjectOptionsPanel.java +++ b/src/main/java/io/github/chris2011/netbeans/minifierbeans/project/ui/options/ProjectOptionsPanel.java @@ -379,7 +379,6 @@ private void initComponents() { enableShortKeyActionConfirmBox = new javax.swing.JCheckBox(); jPanel3 = new javax.swing.JPanel(); separatBuild = new javax.swing.JCheckBox(); - jLabel7 = new javax.swing.JLabel(); buildJSMinify = new javax.swing.JCheckBox(); buildCSSMinify = new javax.swing.JCheckBox(); skipPreExtensionJS = new javax.swing.JCheckBox(); @@ -391,92 +390,88 @@ private void initComponents() { skipPreExtensionXML = new javax.swing.JCheckBox(); buildJSONMinify = new javax.swing.JCheckBox(); skipPreExtensionJSON = new javax.swing.JCheckBox(); + jLabel1 = new javax.swing.JLabel(); + jLabel2 = new javax.swing.JLabel(); - jLayeredPane8.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), org.openide.util.NbBundle.getMessage(ProjectOptionsPanel.class, "ProjectOptionsPanel.jLayeredPane8.border.title"), javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Dialog", 1, 12), new java.awt.Color(102, 102, 102))); // NOI18N + jLayeredPane8.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), org.openide.util.NbBundle.getMessage(ProjectOptionsPanel.class, "ProjectOptionsPanel.jLayeredPane8.border.title"), javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Segoe UI", 0, 12), new java.awt.Color(102, 102, 102))); // NOI18N addLogToFile.setBackground(new java.awt.Color(255, 255, 255)); org.openide.awt.Mnemonics.setLocalizedText(addLogToFile, org.openide.util.NbBundle.getMessage(ProjectOptionsPanel.class, "ProjectOptionsPanel.addLogToFile.text")); // NOI18N - addLogToFile.setOpaque(false); + addLogToFile.setContentAreaFilled(false); jLayeredPane8.add(addLogToFile); - addLogToFile.setBounds(10, 20, 280, 24); + addLogToFile.setBounds(10, 20, 280, 20); enableOutputLogAlert.setBackground(new java.awt.Color(255, 255, 255)); org.openide.awt.Mnemonics.setLocalizedText(enableOutputLogAlert, org.openide.util.NbBundle.getMessage(ProjectOptionsPanel.class, "ProjectOptionsPanel.enableOutputLogAlert.text")); // NOI18N - enableOutputLogAlert.setOpaque(false); + enableOutputLogAlert.setContentAreaFilled(false); jLayeredPane8.add(enableOutputLogAlert); - enableOutputLogAlert.setBounds(10, 40, 390, 24); + enableOutputLogAlert.setBounds(10, 40, 390, 20); - jLayeredPane10.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), org.openide.util.NbBundle.getMessage(ProjectOptionsPanel.class, "ProjectOptionsPanel.jLayeredPane10.border.title"), javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Dialog", 1, 12), new java.awt.Color(102, 102, 102))); // NOI18N + jLayeredPane10.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), org.openide.util.NbBundle.getMessage(ProjectOptionsPanel.class, "ProjectOptionsPanel.jLayeredPane10.border.title"), javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Segoe UI", 0, 12), new java.awt.Color(102, 102, 102))); // NOI18N enableShortKeyAction.setBackground(new java.awt.Color(255, 255, 255)); org.openide.awt.Mnemonics.setLocalizedText(enableShortKeyAction, org.openide.util.NbBundle.getMessage(ProjectOptionsPanel.class, "ProjectOptionsPanel.enableShortKeyAction.text")); // NOI18N - enableShortKeyAction.setOpaque(false); + enableShortKeyAction.setContentAreaFilled(false); jLayeredPane10.add(enableShortKeyAction); enableShortKeyAction.setBounds(10, 20, 280, 20); enableShortKeyActionConfirmBox.setBackground(new java.awt.Color(255, 255, 255)); org.openide.awt.Mnemonics.setLocalizedText(enableShortKeyActionConfirmBox, org.openide.util.NbBundle.getMessage(ProjectOptionsPanel.class, "ProjectOptionsPanel.enableShortKeyActionConfirmBox.text")); // NOI18N - enableShortKeyActionConfirmBox.setToolTipText(org.openide.util.NbBundle.getMessage(ProjectOptionsPanel.class, "ProjectOptionsPanel.enableShortKeyActionConfirmBox.toolTipText")); // NOI18N - enableShortKeyActionConfirmBox.setOpaque(false); + enableShortKeyActionConfirmBox.setContentAreaFilled(false); jLayeredPane10.add(enableShortKeyActionConfirmBox); enableShortKeyActionConfirmBox.setBounds(10, 40, 350, 20); separatBuild.setBackground(new java.awt.Color(255, 255, 255)); org.openide.awt.Mnemonics.setLocalizedText(separatBuild, org.openide.util.NbBundle.getMessage(ProjectOptionsPanel.class, "ProjectOptionsPanel.separatBuild.text")); // NOI18N - separatBuild.setToolTipText(org.openide.util.NbBundle.getMessage(ProjectOptionsPanel.class, "ProjectOptionsPanel.separatBuild.toolTipText")); // NOI18N separatBuild.setActionCommand(org.openide.util.NbBundle.getMessage(ProjectOptionsPanel.class, "ProjectOptionsPanel.separatBuild.actionCommand")); // NOI18N - separatBuild.setOpaque(false); - - jLabel7.setFont(new java.awt.Font("Arial", 1, 12)); // NOI18N - org.openide.awt.Mnemonics.setLocalizedText(jLabel7, org.openide.util.NbBundle.getMessage(ProjectOptionsPanel.class, "ProjectOptionsPanel.jLabel7.text")); // NOI18N + separatBuild.setContentAreaFilled(false); buildJSMinify.setBackground(new java.awt.Color(255, 255, 255)); org.openide.awt.Mnemonics.setLocalizedText(buildJSMinify, org.openide.util.NbBundle.getMessage(ProjectOptionsPanel.class, "ProjectOptionsPanel.buildJSMinify.text")); // NOI18N - buildJSMinify.setOpaque(false); + buildJSMinify.setContentAreaFilled(false); buildCSSMinify.setBackground(new java.awt.Color(255, 255, 255)); org.openide.awt.Mnemonics.setLocalizedText(buildCSSMinify, org.openide.util.NbBundle.getMessage(ProjectOptionsPanel.class, "ProjectOptionsPanel.buildCSSMinify.text")); // NOI18N - buildCSSMinify.setOpaque(false); + buildCSSMinify.setContentAreaFilled(false); skipPreExtensionJS.setBackground(new java.awt.Color(255, 255, 255)); org.openide.awt.Mnemonics.setLocalizedText(skipPreExtensionJS, org.openide.util.NbBundle.getMessage(ProjectOptionsPanel.class, "ProjectOptionsPanel.skipPreExtensionJS.text")); // NOI18N - skipPreExtensionJS.setToolTipText(org.openide.util.NbBundle.getMessage(ProjectOptionsPanel.class, "ProjectOptionsPanel.skipPreExtensionJS.toolTipText")); // NOI18N - skipPreExtensionJS.setOpaque(false); + skipPreExtensionJS.setContentAreaFilled(false); skipPreExtensionCSS.setBackground(new java.awt.Color(255, 255, 255)); org.openide.awt.Mnemonics.setLocalizedText(skipPreExtensionCSS, org.openide.util.NbBundle.getMessage(ProjectOptionsPanel.class, "ProjectOptionsPanel.skipPreExtensionCSS.text")); // NOI18N - skipPreExtensionCSS.setToolTipText(org.openide.util.NbBundle.getMessage(ProjectOptionsPanel.class, "ProjectOptionsPanel.skipPreExtensionCSS.toolTipText")); // NOI18N - skipPreExtensionCSS.setOpaque(false); + skipPreExtensionCSS.setContentAreaFilled(false); jLabel6.setForeground(new java.awt.Color(102, 102, 255)); org.openide.awt.Mnemonics.setLocalizedText(jLabel6, org.openide.util.NbBundle.getMessage(ProjectOptionsPanel.class, "ProjectOptionsPanel.jLabel6.text")); // NOI18N buildHTMLMinify.setBackground(new java.awt.Color(255, 255, 255)); org.openide.awt.Mnemonics.setLocalizedText(buildHTMLMinify, org.openide.util.NbBundle.getMessage(ProjectOptionsPanel.class, "ProjectOptionsPanel.buildHTMLMinify.text")); // NOI18N - buildHTMLMinify.setOpaque(false); + buildHTMLMinify.setContentAreaFilled(false); skipPreExtensionHTML.setBackground(new java.awt.Color(255, 255, 255)); org.openide.awt.Mnemonics.setLocalizedText(skipPreExtensionHTML, org.openide.util.NbBundle.getMessage(ProjectOptionsPanel.class, "ProjectOptionsPanel.skipPreExtensionHTML.text")); // NOI18N - skipPreExtensionHTML.setToolTipText(org.openide.util.NbBundle.getMessage(ProjectOptionsPanel.class, "ProjectOptionsPanel.skipPreExtensionHTML.toolTipText")); // NOI18N - skipPreExtensionHTML.setOpaque(false); + skipPreExtensionHTML.setContentAreaFilled(false); buildXMLMinify.setBackground(new java.awt.Color(255, 255, 255)); org.openide.awt.Mnemonics.setLocalizedText(buildXMLMinify, org.openide.util.NbBundle.getMessage(ProjectOptionsPanel.class, "ProjectOptionsPanel.buildXMLMinify.text")); // NOI18N - buildXMLMinify.setOpaque(false); + buildXMLMinify.setContentAreaFilled(false); skipPreExtensionXML.setBackground(new java.awt.Color(255, 255, 255)); org.openide.awt.Mnemonics.setLocalizedText(skipPreExtensionXML, org.openide.util.NbBundle.getMessage(ProjectOptionsPanel.class, "ProjectOptionsPanel.skipPreExtensionXML.text")); // NOI18N - skipPreExtensionXML.setToolTipText(org.openide.util.NbBundle.getMessage(ProjectOptionsPanel.class, "ProjectOptionsPanel.skipPreExtensionXML.toolTipText")); // NOI18N - skipPreExtensionXML.setOpaque(false); + skipPreExtensionXML.setContentAreaFilled(false); buildJSONMinify.setBackground(new java.awt.Color(255, 255, 255)); org.openide.awt.Mnemonics.setLocalizedText(buildJSONMinify, org.openide.util.NbBundle.getMessage(ProjectOptionsPanel.class, "ProjectOptionsPanel.buildJSONMinify.text")); // NOI18N - buildJSONMinify.setOpaque(false); + buildJSONMinify.setContentAreaFilled(false); skipPreExtensionJSON.setBackground(new java.awt.Color(255, 255, 255)); org.openide.awt.Mnemonics.setLocalizedText(skipPreExtensionJSON, org.openide.util.NbBundle.getMessage(ProjectOptionsPanel.class, "ProjectOptionsPanel.skipPreExtensionJSON.text")); // NOI18N - skipPreExtensionJSON.setToolTipText(org.openide.util.NbBundle.getMessage(ProjectOptionsPanel.class, "ProjectOptionsPanel.skipPreExtensionJSON.toolTipText")); // NOI18N - skipPreExtensionJSON.setOpaque(false); + skipPreExtensionJSON.setContentAreaFilled(false); + + org.openide.awt.Mnemonics.setLocalizedText(jLabel1, org.openide.util.NbBundle.getMessage(ProjectOptionsPanel.class, "ProjectOptionsPanel.jLabel1.text")); // NOI18N + + org.openide.awt.Mnemonics.setLocalizedText(jLabel2, org.openide.util.NbBundle.getMessage(ProjectOptionsPanel.class, "ProjectOptionsPanel.jLabel2.text")); // NOI18N javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3); jPanel3.setLayout(jPanel3Layout); @@ -489,28 +484,29 @@ private void initComponents() { .addComponent(separatBuild) .addGap(6, 6, 6) .addComponent(jLabel6)) - .addGroup(jPanel3Layout.createSequentialGroup() - .addComponent(buildJSMinify, javax.swing.GroupLayout.PREFERRED_SIZE, 110, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(90, 90, 90) - .addComponent(skipPreExtensionJS, javax.swing.GroupLayout.PREFERRED_SIZE, 300, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(jPanel3Layout.createSequentialGroup() - .addComponent(buildCSSMinify, javax.swing.GroupLayout.PREFERRED_SIZE, 140, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(60, 60, 60) - .addComponent(skipPreExtensionCSS, javax.swing.GroupLayout.PREFERRED_SIZE, 300, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(jPanel3Layout.createSequentialGroup() - .addComponent(buildHTMLMinify, javax.swing.GroupLayout.PREFERRED_SIZE, 170, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(30, 30, 30) - .addComponent(skipPreExtensionHTML, javax.swing.GroupLayout.PREFERRED_SIZE, 310, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addComponent(jLabel7) .addGroup(jPanel3Layout.createSequentialGroup() .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(buildJSONMinify, javax.swing.GroupLayout.PREFERRED_SIZE, 170, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(buildXMLMinify)) - .addGap(30, 30, 30) + .addGroup(jPanel3Layout.createSequentialGroup() + .addGap(6, 6, 6) + .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) + .addComponent(buildXMLMinify, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(buildHTMLMinify, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(buildCSSMinify, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(buildJSMinify, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 110, Short.MAX_VALUE) + .addComponent(buildJSONMinify, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) + .addComponent(jLabel1)) + .addGap(18, 18, 18) .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(skipPreExtensionXML, javax.swing.GroupLayout.PREFERRED_SIZE, 320, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(skipPreExtensionJSON, javax.swing.GroupLayout.PREFERRED_SIZE, 310, javax.swing.GroupLayout.PREFERRED_SIZE)))) - .addGap(6, 6, 6)) + .addGroup(jPanel3Layout.createSequentialGroup() + .addGap(8, 8, 8) + .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) + .addComponent(skipPreExtensionCSS, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(skipPreExtensionHTML, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(skipPreExtensionXML, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(skipPreExtensionJSON, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, 85, javax.swing.GroupLayout.PREFERRED_SIZE))) + .addComponent(jLabel2) + .addComponent(skipPreExtensionJS, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 87, javax.swing.GroupLayout.PREFERRED_SIZE)))) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); jPanel3Layout.setVerticalGroup( jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) @@ -519,29 +515,31 @@ private void initComponents() { .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(separatBuild) .addComponent(jLabel6)) - .addGap(16, 16, 16) - .addComponent(jLabel7) - .addGap(7, 7, 7) - .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(buildJSMinify) - .addComponent(skipPreExtensionJS)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 19, Short.MAX_VALUE) + .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(jLabel1) + .addComponent(jLabel2)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(skipPreExtensionJS) + .addComponent(buildJSMinify)) .addGap(6, 6, 6) - .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(buildCSSMinify) - .addComponent(skipPreExtensionCSS)) + .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(skipPreExtensionCSS) + .addComponent(buildCSSMinify)) .addGap(6, 6, 6) - .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(buildHTMLMinify) - .addComponent(skipPreExtensionHTML)) + .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(skipPreExtensionHTML) + .addComponent(buildHTMLMinify)) .addGap(6, 6, 6) - .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(buildXMLMinify) - .addComponent(skipPreExtensionXML)) + .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(skipPreExtensionXML) + .addComponent(buildXMLMinify)) .addGap(6, 6, 6) - .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(buildJSONMinify) - .addComponent(skipPreExtensionJSON)) - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(skipPreExtensionJSON) + .addComponent(buildJSONMinify)) + .addGap(23, 23, 23)) ); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); @@ -552,16 +550,19 @@ private void initComponents() { .addGap(6, 6, 6) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(jLayeredPane8) - .addComponent(jLayeredPane10)) - .addGap(6, 6, 6)) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addComponent(jLayeredPane8, javax.swing.GroupLayout.DEFAULT_SIZE, 481, Short.MAX_VALUE) + .addComponent(jLayeredPane10)) + .addGap(0, 0, Short.MAX_VALUE))) + .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() - .addGap(6, 6, 6) + .addContainerGap() .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(6, 6, 6) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLayeredPane8, javax.swing.GroupLayout.PREFERRED_SIZE, 70, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jLayeredPane10, javax.swing.GroupLayout.PREFERRED_SIZE, 70, javax.swing.GroupLayout.PREFERRED_SIZE) @@ -591,8 +592,9 @@ boolean valid() { public javax.swing.JCheckBox enableOutputLogAlert; public javax.swing.JCheckBox enableShortKeyAction; public javax.swing.JCheckBox enableShortKeyActionConfirmBox; + private javax.swing.JLabel jLabel1; + private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel6; - private javax.swing.JLabel jLabel7; private javax.swing.JLayeredPane jLayeredPane10; private javax.swing.JLayeredPane jLayeredPane8; private javax.swing.JPanel jPanel3; diff --git a/src/main/java/io/github/chris2011/netbeans/minifierbeans/ui/MinifyProperty.java b/src/main/java/io/github/chris2011/netbeans/minifierbeans/ui/MinifyProperty.java index 9a6c2ab..38725e2 100644 --- a/src/main/java/io/github/chris2011/netbeans/minifierbeans/ui/MinifyProperty.java +++ b/src/main/java/io/github/chris2011/netbeans/minifierbeans/ui/MinifyProperty.java @@ -42,8 +42,6 @@ public class MinifyProperty implements Serializable { private String headerHTML = ""; private boolean newHTMLFile = true; private String preExtensionHTML = ".min"; - private boolean buildInternalJSMinify = true; - private boolean buildInternalCSSMinify = true; // INFO: XML Minifier private boolean autoMinifyXML = false; @@ -440,34 +438,6 @@ public void setSkipPreExtensionHTML(boolean skipPreExtensionHTML) { this.skipPreExtensionHTML = skipPreExtensionHTML; } - /** - * @return the buildInternalJSMinify - */ - public boolean isBuildInternalJSMinify() { - return buildInternalJSMinify; - } - - /** - * @param buildInternalJSMinify the buildInternalJSMinify to set - */ - public void setBuildInternalJSMinify(boolean buildInternalJSMinify) { - this.buildInternalJSMinify = buildInternalJSMinify; - } - - /** - * @return the buildInternalCSSMinify - */ - public boolean isBuildInternalCSSMinify() { - return buildInternalCSSMinify; - } - - /** - * @param buildInternalCSSMinify the buildInternalCSSMinify to set - */ - public void setBuildInternalCSSMinify(boolean buildInternalCSSMinify) { - this.buildInternalCSSMinify = buildInternalCSSMinify; - } - /** * @return the appendLogToFile */ diff --git a/src/main/java/io/github/chris2011/netbeans/minifierbeans/util/source/minify/MinifyUtil.java b/src/main/java/io/github/chris2011/netbeans/minifierbeans/util/source/minify/MinifyUtil.java index a8dbd4e..4548437 100644 --- a/src/main/java/io/github/chris2011/netbeans/minifierbeans/util/source/minify/MinifyUtil.java +++ b/src/main/java/io/github/chris2011/netbeans/minifierbeans/util/source/minify/MinifyUtil.java @@ -257,8 +257,8 @@ public void compressHtmlInternal(Reader in, Writer out, MinifyProperty minifyPro try { HtmlCompressor compressor = new HtmlCompressor(); compressor.setRemoveIntertagSpaces(true); - compressor.setCompressCss(minifyProperty.isBuildInternalCSSMinify()); //compress inline css - compressor.setCompressJavaScript(minifyProperty.isBuildInternalJSMinify()); +// compressor.setCompressCss(minifyProperty.isBuildInternalCSSMinify()); //compress inline css +// compressor.setCompressJavaScript(minifyProperty.isBuildInternalJSMinify()); String output = compressor.compress(fromStream(in));//out, minifyProperty.getLineBreakPosition()); in.close(); in = null; @@ -298,8 +298,8 @@ public MinifyFileResult compressContent(String inputFilename, String content, St HtmlCompressor htmlCompressor = new HtmlCompressor(); htmlCompressor.setRemoveIntertagSpaces(true); - htmlCompressor.setCompressCss(minifyProperty.isBuildInternalCSSMinify()); //compress inline css - htmlCompressor.setCompressJavaScript(minifyProperty.isBuildInternalJSMinify()); //compress inline javascript +// htmlCompressor.setCompressCss(minifyProperty.isBuildInternalCSSMinify()); //compress inline css +// htmlCompressor.setCompressJavaScript(minifyProperty.isBuildInternalJSMinify()); //compress inline javascript output = htmlCompressor.compress(content); @@ -404,8 +404,8 @@ public MinifyFileResult compress(String inputFilename, String mimeType, String o case "text/html": HtmlCompressor htmlCompressor = new HtmlCompressor(); htmlCompressor.setRemoveIntertagSpaces(true); - htmlCompressor.setCompressCss(minifyProperty.isBuildInternalCSSMinify()); //compress inline css - htmlCompressor.setCompressJavaScript(minifyProperty.isBuildInternalJSMinify()); //compress inline javascript +// htmlCompressor.setCompressCss(minifyProperty.isBuildInternalCSSMinify()); //compress inline css +// htmlCompressor.setCompressJavaScript(minifyProperty.isBuildInternalJSMinify()); //compress inline javascript output = htmlCompressor.compress(fromStream(in)); out.write(MinifyProperty.getInstance().getHeaderHTML() + "\n" + output); diff --git a/src/main/java/io/github/chris2011/netbeans/minifierbeans/xml/ui/options/XmlOptionsPanel.form b/src/main/java/io/github/chris2011/netbeans/minifierbeans/xml/ui/options/XmlOptionsPanel.form index 90fce28..6f17ba7 100644 --- a/src/main/java/io/github/chris2011/netbeans/minifierbeans/xml/ui/options/XmlOptionsPanel.form +++ b/src/main/java/io/github/chris2011/netbeans/minifierbeans/xml/ui/options/XmlOptionsPanel.form @@ -43,8 +43,8 @@ - - + + @@ -87,15 +87,14 @@ - - - - - + + + + @@ -107,10 +106,8 @@ - - - + @@ -126,22 +123,9 @@ - - - - - - - - - - - - - - - + + @@ -150,7 +134,7 @@ - + @@ -163,9 +147,9 @@ - + - + @@ -177,7 +161,7 @@ - + @@ -186,7 +170,7 @@ - + @@ -198,11 +182,6 @@ - - - - - diff --git a/src/main/java/io/github/chris2011/netbeans/minifierbeans/xml/ui/options/XmlOptionsPanel.java b/src/main/java/io/github/chris2011/netbeans/minifierbeans/xml/ui/options/XmlOptionsPanel.java index dead798..a40cd8b 100644 --- a/src/main/java/io/github/chris2011/netbeans/minifierbeans/xml/ui/options/XmlOptionsPanel.java +++ b/src/main/java/io/github/chris2011/netbeans/minifierbeans/xml/ui/options/XmlOptionsPanel.java @@ -35,7 +35,6 @@ private void init() { newXMLFile.setSelected(minifyProperty.isNewXMLFile()); preExtensionXML.setEnabled(minifyProperty.isNewXMLFile()); - preExtensionXML_Label.setEnabled(minifyProperty.isNewXMLFile()); projectOptionsPanel.skipPreExtensionXML.setEnabled(minifyProperty.isNewXMLFile()); this.preExtensionXML.setText(minifyProperty.getPreExtensionXML()); autoMinifyXML.setSelected(minifyProperty.isAutoMinifyXML()); @@ -77,7 +76,6 @@ public void itemStateChanged(ItemEvent e) { minifyProperty.setPreExtensionXML(".min"); preExtensionXML.setText(".min"); preExtensionXML.setEnabled(Boolean.TRUE); - preExtensionXML_Label.setEnabled(Boolean.TRUE); if (minifyProperty.isBuildXMLMinify() && minifyProperty.isNewXMLFile()) { projectOptionsPanel.skipPreExtensionXML.setEnabled(Boolean.TRUE); minifyProperty.setSkipPreExtensionXML(Boolean.TRUE); @@ -87,7 +85,6 @@ public void itemStateChanged(ItemEvent e) { } else { minifyProperty.setNewXMLFile(Boolean.FALSE); preExtensionXML.setEnabled(Boolean.FALSE); - preExtensionXML_Label.setEnabled(Boolean.FALSE); projectOptionsPanel.skipPreExtensionXML.setEnabled(Boolean.FALSE); minifyProperty.setSkipPreExtensionXML(Boolean.FALSE); projectOptionsPanel.skipPreExtensionXML.setSelected(Boolean.FALSE); @@ -146,7 +143,6 @@ private void initComponents() { jPanel1 = new javax.swing.JPanel(); jPanel2 = new javax.swing.JPanel(); newXMLFile = new javax.swing.JCheckBox(); - preExtensionXML_Label = new javax.swing.JLabel(); preExtensionXML = new javax.swing.JTextField(); autoMinifyXML = new javax.swing.JCheckBox(); extLabel = new javax.swing.JLabel(); @@ -169,16 +165,13 @@ private void initComponents() { newXMLFile.setBackground(new java.awt.Color(255, 255, 255)); org.openide.awt.Mnemonics.setLocalizedText(newXMLFile, org.openide.util.NbBundle.getMessage(XmlOptionsPanel.class, "XmlOptionsPanel.newXMLFile.text")); // NOI18N - newXMLFile.setToolTipText(org.openide.util.NbBundle.getMessage(XmlOptionsPanel.class, "XmlOptionsPanel.newXMLFile.toolTipText")); // NOI18N - newXMLFile.setOpaque(false); - - org.openide.awt.Mnemonics.setLocalizedText(preExtensionXML_Label, org.openide.util.NbBundle.getMessage(XmlOptionsPanel.class, "XmlOptionsPanel.preExtensionXML_Label.text")); // NOI18N + newXMLFile.setContentAreaFilled(false); preExtensionXML.setText(org.openide.util.NbBundle.getMessage(XmlOptionsPanel.class, "XmlOptionsPanel.preExtensionXML.text")); // NOI18N autoMinifyXML.setBackground(new java.awt.Color(255, 255, 255)); org.openide.awt.Mnemonics.setLocalizedText(autoMinifyXML, org.openide.util.NbBundle.getMessage(XmlOptionsPanel.class, "XmlOptionsPanel.autoMinifyXML.text")); // NOI18N - autoMinifyXML.setOpaque(false); + autoMinifyXML.setContentAreaFilled(false); extLabel.setForeground(extLabel.getForeground().darker()); org.openide.awt.Mnemonics.setLocalizedText(extLabel, org.openide.util.NbBundle.getMessage(XmlOptionsPanel.class, "XmlOptionsPanel.extLabel.text")); // NOI18N @@ -188,20 +181,15 @@ private void initComponents() { jPanel2Layout.setHorizontalGroup( jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel2Layout.createSequentialGroup() + .addGap(6, 6, 6) .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel2Layout.createSequentialGroup() - .addGap(6, 6, 6) - .addComponent(newXMLFile)) - .addGroup(jPanel2Layout.createSequentialGroup() - .addGap(6, 6, 6) - .addComponent(autoMinifyXML, javax.swing.GroupLayout.PREFERRED_SIZE, 117, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(jPanel2Layout.createSequentialGroup() - .addGap(6, 6, 6) - .addComponent(preExtensionXML_Label) - .addGap(6, 6, 6) + .addComponent(newXMLFile) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(preExtensionXML, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(extLabel))) + .addComponent(extLabel)) + .addComponent(autoMinifyXML, javax.swing.GroupLayout.PREFERRED_SIZE, 117, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap()) ); jPanel2Layout.setVerticalGroup( @@ -210,10 +198,8 @@ private void initComponents() { .addGap(6, 6, 6) .addComponent(autoMinifyXML) .addGap(6, 6, 6) - .addComponent(newXMLFile) - .addGap(6, 6, 6) .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(preExtensionXML_Label, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(newXMLFile) .addComponent(extLabel) .addComponent(preExtensionXML, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) @@ -221,7 +207,6 @@ private void initComponents() { org.openide.awt.Mnemonics.setLocalizedText(headerLabelXML, org.openide.util.NbBundle.getMessage(XmlOptionsPanel.class, "XmlOptionsPanel.headerLabelXML.text")); // NOI18N - headerEditorPaneXML.setToolTipText(org.openide.util.NbBundle.getMessage(XmlOptionsPanel.class, "XmlOptionsPanel.headerEditorPaneXML.toolTipText")); // NOI18N headerScrollPaneXML.setViewportView(headerEditorPaneXML); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); @@ -229,16 +214,17 @@ private void initComponents() { layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(headerLabelXML) - .addComponent(headerScrollPaneXML, javax.swing.GroupLayout.PREFERRED_SIZE, 339, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGap(6, 6, 6)) - .addGroup(layout.createSequentialGroup() - .addGap(6, 6, 6) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(headerLabelXML) + .addComponent(headerScrollPaneXML, javax.swing.GroupLayout.PREFERRED_SIZE, 339, javax.swing.GroupLayout.PREFERRED_SIZE))) + .addGroup(layout.createSequentialGroup() + .addGap(6, 6, 6) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))) .addGap(6, 6, 6)) ); layout.setVerticalGroup( @@ -247,8 +233,8 @@ private void initComponents() { .addGap(6, 6, 6) .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, 92, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, 58, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(18, 18, 18) .addComponent(headerLabelXML) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(headerScrollPaneXML, javax.swing.GroupLayout.PREFERRED_SIZE, 139, javax.swing.GroupLayout.PREFERRED_SIZE) @@ -280,7 +266,6 @@ boolean valid() { private javax.swing.JPanel jPanel2; public javax.swing.JCheckBox newXMLFile; public javax.swing.JTextField preExtensionXML; - public javax.swing.JLabel preExtensionXML_Label; // End of variables declaration//GEN-END:variables void fireChange() { diff --git a/src/main/resources/io/github/chris2011/netbeans/minifierbeans/css/ui/options/Bundle.properties b/src/main/resources/io/github/chris2011/netbeans/minifierbeans/css/ui/options/Bundle.properties index ddcb019..41c1cb9 100644 --- a/src/main/resources/io/github/chris2011/netbeans/minifierbeans/css/ui/options/Bundle.properties +++ b/src/main/resources/io/github/chris2011/netbeans/minifierbeans/css/ui/options/Bundle.properties @@ -1,9 +1,6 @@ -CssOptionsPanel.newCSSFile.text=Create New CSS File -CssOptionsPanel.headerEditorPaneCSS.toolTipText= -CssOptionsPanel.headerLabelCSS.text=Header +CssOptionsPanel.newCSSFile.text=Generate minified CSS file with pre extension +CssOptionsPanel.headerLabelCSS.text=Fixed header content CssOptionsPanel.autoMinifyCSS.text=Minify on save -CssOptionsPanel.preExtensionCSS_Label.text=CSS Minify Pre Extension: -CssOptionsPanel.newCSSFile.toolTipText= CssOptionsPanel.extLabel.text=(e.g. .min) -CssOptionsPanel.preExtensionCSS.text= -CssOptionsPanel.cssNanoLabel.text=Info: Node.js is required, because PostCSS and CSSNano is used. +CssOptionsPanel.preExtensionCSS.text=.min +CssOptionsPanel.cssNanoLabel.text=Info: Node.js is required, due to the usage of the npm packages postcss and cssnano. diff --git a/src/main/resources/io/github/chris2011/netbeans/minifierbeans/html/ui/options/Bundle.properties b/src/main/resources/io/github/chris2011/netbeans/minifierbeans/html/ui/options/Bundle.properties index 7a7d10c..ad5d8f6 100644 --- a/src/main/resources/io/github/chris2011/netbeans/minifierbeans/html/ui/options/Bundle.properties +++ b/src/main/resources/io/github/chris2011/netbeans/minifierbeans/html/ui/options/Bundle.properties @@ -1,10 +1,10 @@ HtmlOptionsPanel.extLabel.text=(e.g. .min) -HtmlOptionsPanel.headerEditorPaneHTML.toolTipText=Copyright header -HtmlOptionsPanel.headerLabelHTML.text=Header +HtmlOptionsPanel.headerLabelHTML.text=Fixed header content HtmlOptionsPanel.autoMinifyHTML.text=Minify on save -HtmlOptionsPanel.preExtensionHTML.text= -HtmlOptionsPanel.preExtensionHTML_Label.text=HTML Minify Pre Extension -HtmlOptionsPanel.newHTMLFile.toolTipText=Create New HTML File instead of overwrite orignal HTML file -HtmlOptionsPanel.newHTMLFile.text=Create New HTML File -HtmlOptionsPanel.buildInternalJSMinify.text=JS Minify Internal -HtmlOptionsPanel.buildInternalCSSMinify.text=CSS Minify Internal +HtmlOptionsPanel.preExtensionHTML.text=.min +HtmlOptionsPanel.newHTMLFile.text=Generate minified HTML file with pre extension +HtmlOptionsPanel.closureCompilerLabel.text=Info: Node.js is required, due to usage of the npm package html-minifier-terser. +HtmlOptionsPanel.htmlMinifierFlagsLabel.text=Compiler Flags: +HtmlOptionsPanel.htmlMinifierFlagsTextField.text=--minify-js true; --minify-css true; --minify-urls true; --collapse-whitespace; --keep-closing-slash +HtmlOptionsPanel.htmlMinifierFlagsHintsLabel.text=Example: "--flagname value [optional]; ...". For a full list of the supported flags see --help argument. +HtmlOptionsPanel.autoMinifyJS.text= diff --git a/src/main/resources/io/github/chris2011/netbeans/minifierbeans/javascript/ui/options/Bundle.properties b/src/main/resources/io/github/chris2011/netbeans/minifierbeans/javascript/ui/options/Bundle.properties index 597f349..68b62bb 100644 --- a/src/main/resources/io/github/chris2011/netbeans/minifierbeans/javascript/ui/options/Bundle.properties +++ b/src/main/resources/io/github/chris2011/netbeans/minifierbeans/javascript/ui/options/Bundle.properties @@ -1,12 +1,9 @@ JsOptionsPanel.extLabel.text=(e.g. .min) -JsOptionsPanel.headerEditorPaneJS.toolTipText=Copyright header -JsOptionsPanel.headerLabelJS.text=Header +JsOptionsPanel.headerLabelJS.text=Fixed header content JsOptionsPanel.autoMinifyJS.text=Minify on save -JsOptionsPanel.preExtensionJS.text= -JsOptionsPanel.preExtensionJS_Label.text=JS Minify Pre Extension: -JsOptionsPanel.newJSFile.toolTipText=Create New JS File instead of overwrite orignal JS file -JsOptionsPanel.newJSFile.text=Create New JS File -JsOptionsPanel.closureCompilerLabel.text=Info: Node.js is required, because Google Closure Compiler is used. +JsOptionsPanel.preExtensionJS.text=.min +JsOptionsPanel.newJSFile.text=Generate minified JS file with pre extension +JsOptionsPanel.closureCompilerLabel.text=Info: Node.js is required, due to the usage of the npm package google-closure-compiler. JsOptionsPanel.closureCompilerFlagsLabel.text=Compiler Flags: JsOptionsPanel.closureCompilerArgumentsHintsLabel.text=Example: "--flagname value; ...". For a full list of the compiler flags see: https://github.com/google/closure-compiler/wiki/Flags-and-Options JsOptionsPanel.closureCompilerFlagsTextField.text=--compilation_level SIMPLE; --language_in STABLE; --language_out STABLE diff --git a/src/main/resources/io/github/chris2011/netbeans/minifierbeans/json/ui/options/Bundle.properties b/src/main/resources/io/github/chris2011/netbeans/minifierbeans/json/ui/options/Bundle.properties index 3ce4824..5139452 100644 --- a/src/main/resources/io/github/chris2011/netbeans/minifierbeans/json/ui/options/Bundle.properties +++ b/src/main/resources/io/github/chris2011/netbeans/minifierbeans/json/ui/options/Bundle.properties @@ -1,8 +1,5 @@ JsonOptionsPanel.extLabel.text=(e.g. .min) -JsonOptionsPanel.headerEditorPaneJSON.toolTipText=Copyright header -JsonOptionsPanel.headerLabelJSON.text=Header +JsonOptionsPanel.headerLabelJSON.text=Fixed header content JsonOptionsPanel.autoMinifyJSON.text=Minify on save -JsonOptionsPanel.preExtensionJSON.text= -JsonOptionsPanel.preExtensionJSON_Label.text=JSON Minify Pre Extension -JsonOptionsPanel.newJSONFile.toolTipText=Create New JSON File instead of overwrite orignal JSON file -JsonOptionsPanel.newJSONFile.text=Create New JSON File +JsonOptionsPanel.preExtensionJSON.text=.min +JsonOptionsPanel.newJSONFile.text=Generate minified JSON file with pre extension diff --git a/src/main/resources/io/github/chris2011/netbeans/minifierbeans/project/ui/options/Bundle.properties b/src/main/resources/io/github/chris2011/netbeans/minifierbeans/project/ui/options/Bundle.properties index ca74812..d42016a 100644 --- a/src/main/resources/io/github/chris2011/netbeans/minifierbeans/project/ui/options/Bundle.properties +++ b/src/main/resources/io/github/chris2011/netbeans/minifierbeans/project/ui/options/Bundle.properties @@ -1,27 +1,21 @@ -ProjectOptionsPanel.buildJSMinify.text=JS Minify -ProjectOptionsPanel.skipPreExtensionJSON.toolTipText=Skip CSS file to minify if CSS file postfix pre extension is defined -ProjectOptionsPanel.skipPreExtensionJSON.text=Skip all minfied JSON files -ProjectOptionsPanel.jLabel7.text=Project Build process includes following Minify Action: -ProjectOptionsPanel.buildJSONMinify.text=JSON Minify +ProjectOptionsPanel.buildJSMinify.text=JS +ProjectOptionsPanel.skipPreExtensionJSON.text=JSON +ProjectOptionsPanel.buildJSONMinify.text=JSON ProjectOptionsPanel.separatBuild.actionCommand=Create Separate Build Folder -ProjectOptionsPanel.separatBuild.toolTipText=Create Separate final build project instead of modify orignal project -ProjectOptionsPanel.separatBuild.text=Create Separate Build Folder -ProjectOptionsPanel.skipPreExtensionXML.toolTipText=Skip CSS file to minify if CSS file postfix pre extension is defined -ProjectOptionsPanel.skipPreExtensionXML.text=Skip all minified XML files -ProjectOptionsPanel.buildXMLMinify.text=XML Minify -ProjectOptionsPanel.enableShortKeyActionConfirmBox.toolTipText=Skip HTML file to minify if HTML file postfix pre extension is defined -ProjectOptionsPanel.enableShortKeyActionConfirmBox.text=Enable Confirm Option before ShortKey Action (Alt + M) -ProjectOptionsPanel.skipPreExtensionHTML.toolTipText=Skip HTML file to minify if HTML file postfix pre extension is defined -ProjectOptionsPanel.skipPreExtensionHTML.text=Skip all minified HTML files -ProjectOptionsPanel.enableShortKeyAction.text=Enable ShortKey (Alt + M) -ProjectOptionsPanel.buildHTMLMinify.text=HTML Minify +ProjectOptionsPanel.separatBuild.text=Create separate build folder +ProjectOptionsPanel.skipPreExtensionXML.text=XML +ProjectOptionsPanel.buildXMLMinify.text=XML +ProjectOptionsPanel.enableShortKeyActionConfirmBox.text=Confirm option before ShortKey Action (Alt + M) +ProjectOptionsPanel.skipPreExtensionHTML.text=HTML +ProjectOptionsPanel.enableShortKeyAction.text=ShortKey (Alt + M) +ProjectOptionsPanel.buildHTMLMinify.text=HTML ProjectOptionsPanel.jLayeredPane10.border.title=Shortkey Action ProjectOptionsPanel.jLabel6.text=(Minifies all supported files inside the selected project) -ProjectOptionsPanel.enableOutputLogAlert.text=Enable Output Log Alert -ProjectOptionsPanel.skipPreExtensionCSS.toolTipText=Skip CSS file to minify if CSS file postfix pre extension is defined -ProjectOptionsPanel.skipPreExtensionCSS.text=Skip all minified CSS files -ProjectOptionsPanel.addLogToFile.text=Add Output Log to File (JS/CSS/HTML) -ProjectOptionsPanel.skipPreExtensionJS.toolTipText=Skip JS file to minify if JS file postfix pre extension is defined -ProjectOptionsPanel.skipPreExtensionJS.text=Skip all minified JS files +ProjectOptionsPanel.enableOutputLogAlert.text=Output log alert +ProjectOptionsPanel.skipPreExtensionCSS.text=CSS +ProjectOptionsPanel.addLogToFile.text=Add output log to file (JS/CSS/HTML) +ProjectOptionsPanel.skipPreExtensionJS.text=JS ProjectOptionsPanel.jLayeredPane8.border.title=Log -ProjectOptionsPanel.buildCSSMinify.text=CSS Minify \ No newline at end of file +ProjectOptionsPanel.buildCSSMinify.text=CSS +ProjectOptionsPanel.jLabel1.text=Minify: +ProjectOptionsPanel.jLabel2.text=Skip minified files: diff --git a/src/main/resources/io/github/chris2011/netbeans/minifierbeans/xml/ui/options/Bundle.properties b/src/main/resources/io/github/chris2011/netbeans/minifierbeans/xml/ui/options/Bundle.properties index 7382185..af12f32 100644 --- a/src/main/resources/io/github/chris2011/netbeans/minifierbeans/xml/ui/options/Bundle.properties +++ b/src/main/resources/io/github/chris2011/netbeans/minifierbeans/xml/ui/options/Bundle.properties @@ -1,9 +1,6 @@ XmlOptionsPanel.extLabel.text=(e.g. .min) -XmlOptionsPanel.headerEditorPaneXML.toolTipText=Copyright header -XmlOptionsPanel.headerLabelXML.text=Header +XmlOptionsPanel.headerLabelXML.text=Fixed header content XmlOptionsPanel.autoMinifyXML.text=Minify on save -XmlOptionsPanel.preExtensionXML.text= -XmlOptionsPanel.preExtensionXML_Label.text=XML Minify Pre Extension -XmlOptionsPanel.newXMLFile.toolTipText=Create New XML File instead of overwrite orignal XML file -XmlOptionsPanel.newXMLFile.text=Create New XML File +XmlOptionsPanel.preExtensionXML.text=.min +XmlOptionsPanel.newXMLFile.text=Generate minified XML file with pre extension XmlOptionsPanel.jPanel2.AccessibleContext.accessibleName= \ No newline at end of file From f99f6f3c5fab48de3072b68283ee8e1874c211a1 Mon Sep 17 00:00:00 2001 From: Chris Date: Wed, 18 Nov 2020 21:28:38 +0100 Subject: [PATCH 3/5] #66 - Refactored code and using html-minifier-terser instead of java impl. --- custom-packages/package.json | 4 +- pom.xml | 24 ----- .../minifierbeans/html/HTMLMinify.java | 96 ++++++++++++++----- .../html/ui/options/HtmlOptionsPanel.form | 8 +- .../html/ui/options/HtmlOptionsPanel.java | 34 ++++++- .../javascript/ui/options/JsOptionsPanel.java | 3 +- .../minifierbeans/ui/MinifyProperty.java | 16 ++++ .../html/ui/options/Bundle.properties | 2 +- 8 files changed, 123 insertions(+), 64 deletions(-) diff --git a/custom-packages/package.json b/custom-packages/package.json index 3d7e109..dcfa3a7 100644 --- a/custom-packages/package.json +++ b/custom-packages/package.json @@ -5,9 +5,7 @@ "devDependencies": { "cssnano": "^4.1.10", "google-closure-compiler": "^20201006.0.0", - "postcss-cli": "^7.1.0" - }, - "dependencies": { + "postcss-cli": "^7.1.0", "html-minifier-terser": "^5.1.1" } } diff --git a/pom.xml b/pom.xml index 7d7d878..08082db 100644 --- a/pom.xml +++ b/pom.xml @@ -99,30 +99,6 @@ --> - - com.github.eirslett - frontend-maven-plugin - 1.8.0 - - - install node and yarn - - install-node-and-yarn - - - - yarn install - - yarn - - - - - v10.16.0 - v1.16.0 - custom-packages - - diff --git a/src/main/java/io/github/chris2011/netbeans/minifierbeans/html/HTMLMinify.java b/src/main/java/io/github/chris2011/netbeans/minifierbeans/html/HTMLMinify.java index 6c070f1..6ceca56 100644 --- a/src/main/java/io/github/chris2011/netbeans/minifierbeans/html/HTMLMinify.java +++ b/src/main/java/io/github/chris2011/netbeans/minifierbeans/html/HTMLMinify.java @@ -15,6 +15,7 @@ */ package io.github.chris2011.netbeans.minifierbeans.html; +import io.github.chris2011.netbeans.minifierbeans.javascript.GoogleClosureCompilerCliExecutable; import java.awt.HeadlessException; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; @@ -25,6 +26,13 @@ import io.github.chris2011.netbeans.minifierbeans.ui.MinifyProperty; import io.github.chris2011.netbeans.minifierbeans.util.source.minify.MinifyFileResult; import io.github.chris2011.netbeans.minifierbeans.util.source.minify.MinifyUtil; +import java.io.StringWriter; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.Future; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; +import org.netbeans.api.project.FileOwnerQuery; +import org.netbeans.api.project.Project; import org.openide.loaders.DataObject; import org.openide.awt.ActionRegistration; @@ -37,6 +45,7 @@ import org.openide.util.NbBundle.Messages; import org.openide.util.RequestProcessor; import org.openide.util.TaskListener; +import org.openide.windows.TopComponent; @ActionID(category = "Build", id = "org.netbeans.util.source.minify.HTMLMinify") @@ -47,12 +56,13 @@ }) @Messages("CTL_HTMLMinify=Minify HTML") public final class HTMLMinify implements ActionListener { + private final DataObject context; + private final static RequestProcessor RP = new RequestProcessor("HTMLMinify", 1, true); public HTMLMinify(DataObject context) { this.context = context; } - private final static RequestProcessor RP = new RequestProcessor("HTMLMinify", 1, true); @Override public void actionPerformed(ActionEvent ev) { @@ -66,48 +76,82 @@ public void run() { htmlMinify(context, content, notify); } }; + final RequestProcessor.Task theTask = RP.create(runnable); final ProgressHandle ph = ProgressHandleFactory.createHandle("Minifying HTML " + context.getPrimaryFile().getName(), theTask); + theTask.addTaskListener(new TaskListener() { @Override public void taskFinished(org.openide.util.Task task) { ph.finish(); } }); + ph.start(); theTask.schedule(0); } private static void htmlMinify(DataObject context, String content, boolean notify) { + Project project = TopComponent.getRegistry().getActivated().getLookup().lookup(Project.class); + FileObject file = context.getPrimaryFile(); + MinifyProperty minifyProperty = MinifyProperty.getInstance(); MinifyUtil util = new MinifyUtil(); + MinifyFileResult minifyFileResult = new MinifyFileResult(); + + if (!util.isMinifiedFile(file.getName(), minifyProperty.getPreExtensionHTML())) { + String inputFilePath = file.getPath(); + String outputFilePath; + + if (minifyProperty.isNewHTMLFile() && minifyProperty.getPreExtensionHTML() != null && !minifyProperty.getPreExtensionHTML().trim().isEmpty()) { + outputFilePath = file.getParent().getPath() + "/" + file.getName() + minifyProperty.getPreExtensionHTML() + "." + file.getExt(); + } else { + outputFilePath = inputFilePath; + } - try { - FileObject file = context.getPrimaryFile(); - if (!util.isMinifiedFile(file.getName(), minifyProperty.getPreExtensionHTML())) { - String inputFilePath = file.getPath(); - String outputFilePath; - - if (minifyProperty.isNewHTMLFile() && minifyProperty.getPreExtensionHTML() != null && !minifyProperty.getPreExtensionHTML().trim().isEmpty()) { - outputFilePath = file.getParent().getPath() + File.separator + file.getName() + minifyProperty.getPreExtensionHTML() + "." + file.getExt(); - } else { - outputFilePath = inputFilePath; - } - - MinifyFileResult minifyFileResult; - if (content != null) { - minifyFileResult = util.compressContent(inputFilePath, content, "text/html", outputFilePath, minifyProperty); - } else { - minifyFileResult = util.compress(inputFilePath, "text/html", outputFilePath, minifyProperty); - } - if (minifyProperty.isEnableOutputLogAlert() && notify) { - NotificationDisplayer.getDefault().notify("Successful HTML minification", NotificationDisplayer.Priority.NORMAL.getIcon(), String.format("Input HTML Files Size: %s Bytes \n" - + "After Minifying HTML Files Size: %s Bytes \n" - + "HTML Space Saved %s%%", minifyFileResult.getInputFileSize(), minifyFileResult.getOutputFileSize(), minifyFileResult.getSavedPercentage()), null); - } + File inputFile = new File(inputFilePath); + File outputFile = new File(outputFilePath); + minifyFileResult.setInputFileSize(inputFile.length()); + + StringWriter outputWriter = new StringWriter(); + + outputWriter.flush(); + + if (project == null) { + project = FileOwnerQuery.getOwner(file); + } + + HtmlMinifierCliExecutable htmlMinifierCliExecutable = HtmlMinifierCliExecutable.getDefault(project); + Future task = htmlMinifierCliExecutable.generate(inputFile, outputFile, minifyProperty.getCompilerFlagsHTML()); + + try { + task.get(1, TimeUnit.MINUTES); + + minifyFileResult.setOutputFileSize(outputFile.length()); + } catch (InterruptedException ex) { + Thread.currentThread().interrupt(); + } catch (ExecutionException | TimeoutException ex) { + Exceptions.printStackTrace(ex); } - } catch (HeadlessException | IOException ex) { - Exceptions.printStackTrace(ex); + + if (minifyProperty.isEnableOutputLogAlert() && notify) { + NotificationDisplayer.getDefault().notify("Successful HTML minification", + NotificationDisplayer.Priority.NORMAL.getIcon(), String.format( + "Input HTML Files Size: %s Bytes \n" + + "HTML Minified Completed Successfully\n" + + "After Minifying HTML Files Size: %s Bytes \n" + + "HTML Space Saved %s%%", minifyFileResult.getInputFileSize(), minifyFileResult.getOutputFileSize(), minifyFileResult.getSavedPercentage()), null); + } + +// if (content != null) { +// minifyFileResult = util.compressContent(inputFilePath, content, "text/html", outputFilePath, minifyProperty); +// } else { +// minifyFileResult = util.compress(inputFilePath, "text/html", outputFilePath, minifyProperty); +// } +// if (minifyProperty.isEnableOutputLogAlert() && notify) { +// NotificationDisplayer.getDefault().notify("Successful HTML minification", NotificationDisplayer.Priority.NORMAL.getIcon(), String.format("Input HTML Files Size: %s Bytes \n" +// + "After Minifying HTML Files Size: %s Bytes \n" +// + "HTML Space Saved %s%%", minifyFileResult.getInputFileSize(), minifyFileResult.getOutputFileSize(), minifyFileResult.getSavedPercentage()), null); } } } diff --git a/src/main/java/io/github/chris2011/netbeans/minifierbeans/html/ui/options/HtmlOptionsPanel.form b/src/main/java/io/github/chris2011/netbeans/minifierbeans/html/ui/options/HtmlOptionsPanel.form index 77ef232..344c991 100644 --- a/src/main/java/io/github/chris2011/netbeans/minifierbeans/html/ui/options/HtmlOptionsPanel.form +++ b/src/main/java/io/github/chris2011/netbeans/minifierbeans/html/ui/options/HtmlOptionsPanel.form @@ -66,7 +66,7 @@ - + @@ -75,17 +75,17 @@ - + - + - + diff --git a/src/main/java/io/github/chris2011/netbeans/minifierbeans/html/ui/options/HtmlOptionsPanel.java b/src/main/java/io/github/chris2011/netbeans/minifierbeans/html/ui/options/HtmlOptionsPanel.java index c71c433..5a8b0fd 100644 --- a/src/main/java/io/github/chris2011/netbeans/minifierbeans/html/ui/options/HtmlOptionsPanel.java +++ b/src/main/java/io/github/chris2011/netbeans/minifierbeans/html/ui/options/HtmlOptionsPanel.java @@ -38,6 +38,30 @@ private void init() { projectOptionsPanel.skipPreExtensionHTML.setEnabled(minifyProperty.isNewHTMLFile()); this.preExtensionHTML.setText(minifyProperty.getPreExtensionHTML()); autoMinifyHTML.setSelected(minifyProperty.isAutoMinifyHTML()); + + htmlMinifierFlagsTextField.setText(minifyProperty.getCompilerFlagsHTML()); + + htmlMinifierFlagsTextField.addFocusListener(new FocusListener() { + @Override + public void focusGained(FocusEvent arg0) { + + } + + @Override + public void focusLost(FocusEvent arg0) { + String text = htmlMinifierFlagsTextField.getText(); + + if (text == null || text.trim().isEmpty()) { + text = ""; + htmlMinifierFlagsTextField.setText(""); + } else { + text = text.trim(); + } + + minifyProperty.setCompilerFlagsHTML(text); + } + }); + headerEditorPaneHTML.setText(minifyProperty.getHeaderHTML()); headerEditorPaneHTML.addFocusListener(new FocusListener() { @Override @@ -140,7 +164,7 @@ public void removeChangeListener(ChangeListener listener) { private void initComponents() { jPanel1 = new javax.swing.JPanel(); - closureCompilerLabel = new javax.swing.JLabel(); + htmlMinifierLabel = new javax.swing.JLabel(); jPanel2 = new javax.swing.JPanel(); newHTMLFile = new javax.swing.JCheckBox(); preExtensionHTML = new javax.swing.JTextField(); @@ -157,21 +181,21 @@ private void initComponents() { jPanel1.setPreferredSize(new java.awt.Dimension(0, 32)); - org.openide.awt.Mnemonics.setLocalizedText(closureCompilerLabel, org.openide.util.NbBundle.getMessage(HtmlOptionsPanel.class, "HtmlOptionsPanel.closureCompilerLabel.text")); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(htmlMinifierLabel, org.openide.util.NbBundle.getMessage(HtmlOptionsPanel.class, "HtmlOptionsPanel.htmlMinifierLabel.text")); // NOI18N javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); jPanel1.setLayout(jPanel1Layout); jPanel1Layout.setHorizontalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() - .addComponent(closureCompilerLabel) + .addComponent(htmlMinifierLabel) .addGap(0, 0, Short.MAX_VALUE)) ); jPanel1Layout.setVerticalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addContainerGap() - .addComponent(closureCompilerLabel) + .addComponent(htmlMinifierLabel) .addContainerGap(10, Short.MAX_VALUE)) ); @@ -290,7 +314,6 @@ boolean valid() { // Variables declaration - do not modify//GEN-BEGIN:variables public javax.swing.JCheckBox autoMinifyHTML; - private javax.swing.JLabel closureCompilerLabel; private javax.swing.JLabel extLabel; protected javax.swing.JEditorPane headerEditorPaneHTML; private javax.swing.JLabel headerLabelHTML; @@ -298,6 +321,7 @@ boolean valid() { private javax.swing.JLabel htmlMinifierFlagsHintsLabel; private javax.swing.JLabel htmlMinifierFlagsLabel; private javax.swing.JTextField htmlMinifierFlagsTextField; + private javax.swing.JLabel htmlMinifierLabel; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; public javax.swing.JCheckBox newHTMLFile; diff --git a/src/main/java/io/github/chris2011/netbeans/minifierbeans/javascript/ui/options/JsOptionsPanel.java b/src/main/java/io/github/chris2011/netbeans/minifierbeans/javascript/ui/options/JsOptionsPanel.java index c88cf61..a325743 100644 --- a/src/main/java/io/github/chris2011/netbeans/minifierbeans/javascript/ui/options/JsOptionsPanel.java +++ b/src/main/java/io/github/chris2011/netbeans/minifierbeans/javascript/ui/options/JsOptionsPanel.java @@ -39,7 +39,6 @@ private void init() { preExtensionJS.setText(minifyProperty.getPreExtensionJS()); autoMinifyJS.setSelected(minifyProperty.isAutoMinifyJS()); - headerEditorPaneJS.setText(minifyProperty.getHeaderJS()); closureCompilerFlagsTextField.setText(minifyProperty.getCompilerFlagsJS()); @@ -63,6 +62,8 @@ public void focusLost(FocusEvent arg0) { minifyProperty.setCompilerFlagsJS(text); } }); + + headerEditorPaneJS.setText(minifyProperty.getHeaderJS()); headerEditorPaneJS.addFocusListener(new FocusListener() { @Override diff --git a/src/main/java/io/github/chris2011/netbeans/minifierbeans/ui/MinifyProperty.java b/src/main/java/io/github/chris2011/netbeans/minifierbeans/ui/MinifyProperty.java index 38725e2..d660a12 100644 --- a/src/main/java/io/github/chris2011/netbeans/minifierbeans/ui/MinifyProperty.java +++ b/src/main/java/io/github/chris2011/netbeans/minifierbeans/ui/MinifyProperty.java @@ -15,6 +15,7 @@ */ package io.github.chris2011.netbeans.minifierbeans.ui; +import io.github.chris2011.netbeans.minifierbeans.html.ui.options.HtmlOptionsPanel; import io.github.chris2011.netbeans.minifierbeans.javascript.ui.options.JsOptionsPanel; import java.io.Serializable; import java.lang.reflect.Field; @@ -40,6 +41,7 @@ public class MinifyProperty implements Serializable { // INFO: HTML Minifier private boolean autoMinifyHTML = false; private String headerHTML = ""; + private String compilerFlagsHTML = NbBundle.getMessage(HtmlOptionsPanel.class, "HtmlOptionsPanel.htmlMinifierFlagsTextField.text"); private boolean newHTMLFile = true; private String preExtensionHTML = ".min"; @@ -729,6 +731,20 @@ public void setCompilerFlagsJS(String compilerFlagsJS) { this.compilerFlagsJS = compilerFlagsJS; } + /** + * @return the compilerflags + */ + public String getCompilerFlagsHTML() { + return compilerFlagsHTML; + } + + /** + * @param compilerFlagsJS the compilerFlagsJS to set + */ + public void setCompilerFlagsHTML(String compilerFlagsHTML) { + this.compilerFlagsHTML = compilerFlagsHTML; + } + /** * @return the headerCSS */ diff --git a/src/main/resources/io/github/chris2011/netbeans/minifierbeans/html/ui/options/Bundle.properties b/src/main/resources/io/github/chris2011/netbeans/minifierbeans/html/ui/options/Bundle.properties index ad5d8f6..fc5cc42 100644 --- a/src/main/resources/io/github/chris2011/netbeans/minifierbeans/html/ui/options/Bundle.properties +++ b/src/main/resources/io/github/chris2011/netbeans/minifierbeans/html/ui/options/Bundle.properties @@ -3,8 +3,8 @@ HtmlOptionsPanel.headerLabelHTML.text=Fixed header content HtmlOptionsPanel.autoMinifyHTML.text=Minify on save HtmlOptionsPanel.preExtensionHTML.text=.min HtmlOptionsPanel.newHTMLFile.text=Generate minified HTML file with pre extension -HtmlOptionsPanel.closureCompilerLabel.text=Info: Node.js is required, due to usage of the npm package html-minifier-terser. HtmlOptionsPanel.htmlMinifierFlagsLabel.text=Compiler Flags: HtmlOptionsPanel.htmlMinifierFlagsTextField.text=--minify-js true; --minify-css true; --minify-urls true; --collapse-whitespace; --keep-closing-slash HtmlOptionsPanel.htmlMinifierFlagsHintsLabel.text=Example: "--flagname value [optional]; ...". For a full list of the supported flags see --help argument. HtmlOptionsPanel.autoMinifyJS.text= +HtmlOptionsPanel.htmlMinifierLabel.text=Info: Node.js is required, due to usage of the npm package html-minifier-terser. From a1adf03d2454cf1c07c8ffc0d4eacfd06da62ed2 Mon Sep 17 00:00:00 2001 From: Chris Date: Wed, 18 Nov 2020 21:31:02 +0100 Subject: [PATCH 4/5] #66 - Updated the changelog. --- Changelog.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Changelog.md b/Changelog.md index c01cf2d..cc3a9a0 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,5 +1,14 @@ # Changelog +## Updates in 3.2.0 + +### General +1 - Simplified UI, removed unused code and options. Will be handled via compiler flags. + +### Features +1 - [#66](https://github.com/Chris2011/minifierbeans/issues/66): Switch from Java HTMLCompressor to html-minifier-terser. + + ## Updates in 3.1.0 ### General From 0a451c44166607d5b8df429df206dfa1d3212999 Mon Sep 17 00:00:00 2001 From: Chris Date: Wed, 18 Nov 2020 21:36:27 +0100 Subject: [PATCH 5/5] #66 - Updated the changelog. --- Changelog.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Changelog.md b/Changelog.md index cc3a9a0..eee7614 100644 --- a/Changelog.md +++ b/Changelog.md @@ -5,6 +5,9 @@ ### General 1 - Simplified UI, removed unused code and options. Will be handled via compiler flags. +### Fixes +1 - [#58](https://github.com/Chris2011/minifierbeans/issues/58): javascript let makes minify fail. + ### Features 1 - [#66](https://github.com/Chris2011/minifierbeans/issues/66): Switch from Java HTMLCompressor to html-minifier-terser.