From 2d3068343638c31d2cf398a75c8a4afa1b92bad2 Mon Sep 17 00:00:00 2001 From: Dmitry Isaenko Date: Sun, 25 Dec 2022 07:03:37 +0300 Subject: [PATCH] Add language selector, update build config, add launch4j, other small changes that does not make impact on functionality --- .drone.yml | 5 +- README.md | 9 +- README_RU.md | 38 ++++++ pom.xml | 44 +++++- src/main/java/tihwin/Main.java | 2 + src/main/java/tihwin/MainAppUi.form | 21 ++- src/main/java/tihwin/MainAppUi.java | 101 +++++++++----- src/main/java/tihwin/Settings.java | 7 + src/main/java/tihwin/ui/LanguageComboBox.java | 76 +++++++++++ .../java/tihwin/ui/model/LocaleHolder.java | 55 ++++++++ .../ui/model/SettingsLanguagesSetup.java | 127 ++++++++++++++++++ .../tihwin/ui/ulupdater/UlTableModel.java | 28 ++-- src/main/resources/banner.png | Bin 21111 -> 21644 bytes src/main/resources/locale_en_US.properties | 0 src/main/resources/locale_es_ES.properties | 2 +- tw_icon.ico | Bin 0 -> 120937 bytes 16 files changed, 454 insertions(+), 61 deletions(-) create mode 100644 README_RU.md create mode 100644 src/main/java/tihwin/ui/LanguageComboBox.java create mode 100644 src/main/java/tihwin/ui/model/LocaleHolder.java create mode 100644 src/main/java/tihwin/ui/model/SettingsLanguagesSetup.java create mode 100644 src/main/resources/locale_en_US.properties create mode 100644 tw_icon.ico diff --git a/.drone.yml b/.drone.yml index bfc8767..6282950 100644 --- a/.drone.yml +++ b/.drone.yml @@ -3,8 +3,8 @@ type: docker name: default steps: - - name: build-install-locally - image: maven:3-jdk-11 + - name: build + image: maven:3-openjdk-17 commands: - mvn -B -DskipTests clean install - mvn test -B @@ -17,6 +17,7 @@ steps: commands: - mkdir -p /builds/Tihwin - cp target/Tihwin-*[0-9].jar /builds/Tihwin/ + - cp target/Tihwin-*[0-9].exe /builds/Tihwin/ volumes: - name: builds path: /builds diff --git a/README.md b/README.md index 4df2f71..1069811 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,9 @@ ## Tihwin ![License](https://img.shields.io/badge/License-GPLv3-blue.svg) ![LatestVer](https://img.shields.io/github/release/developersu/Tihwin.svg) [![Build Status](https://ci.redrise.ru/api/badges/desu/Tihwin/status.svg)](https://ci.redrise.ru/desu/Tihwin) -OPL-compatible PS2 tool for making split files. Sort of ul.cfg manager or USBUtil. +[по-русски](README_RU.md) + +OPL-compatible PS2 tool for making split files. Sort of ul.cfg manager or USBUtil. Good for use on mac and linux. ![Application screenshot1](screenshots/1.png) ![Application screenshot2](screenshots/2.png) @@ -14,6 +16,10 @@ GitHubs are arising and passing, cozy mirrors are eternal: https://git.redrise.r GNU GLPv3 or higher. Please see LICENSE. +#### Requirements + +* Java + #### Feedback Create new GitHub issue with bug report or proposition @@ -21,6 +27,7 @@ Create new GitHub issue with bug report or proposition #### Thanks * [DDinghoya](https://github.com/DDinghoya), who translated this application to Korean! +* [Ignacio Grosso](https://github.com/blckbearx), who translated this application to Spanish! #### Translations diff --git a/README_RU.md b/README_RU.md new file mode 100644 index 0000000..c7274ef --- /dev/null +++ b/README_RU.md @@ -0,0 +1,38 @@ +## Tihwin +![License](https://img.shields.io/badge/License-GPLv3-blue.svg) ![LatestVer](https://img.shields.io/github/release/developersu/Tihwin.svg) [![Build Status](https://ci.redrise.ru/api/badges/desu/Tihwin/status.svg)](https://ci.redrise.ru/desu/Tihwin) + +Это OPL-совместимая утилита для PS2. Используется для создания т.н. «сплит-файлов». Это что-то вроде менеджера ul.cfg или, другими словами, аналог USBUtil. Отличной подойдёт для использования в маке и линуксе. + +![Application screenshot1](screenshots/1.png) +![Application screenshot2](screenshots/2.png) + +#### Не будем теряться! + +Гитхабы приходят и уходят, уютные зеркала же − вечны! https://git.redrise.ru/desu/Tihwin + +#### Лицензия + +GNU GLPv3 или выше. Ознакомьтесь с файлом LICENSE. + +#### Требования + +* Java + +#### Обратная связь + +Просто создайте новую issue с отчётом об ошибке или предложением. + +#### Спасибо + +* [DDinghoya](https://github.com/DDinghoya), кто перевели приложение на Корейский! +* [Ignacio Grosso](https://github.com/blckbearx), кто перевели приложение на Испанский! + +#### Переводы + +Все знают что [вставьте_сюда_ваш_родной_язык] просто лучший! Вообще, просто на всякий случай, сделайте PR (пул реквест) или создайте issue с переведённым файлом `.../src/main/resources/locale.properties` + +(Кстати, чтобы конвертировать фалйы ил любой локали в читабельный формат и обратно, можете воспользоваться этим сайтом [https://itpro.cz/juniconv/](https://itpro.cz/juniconv/)) + +#### Как поддержать + +Да просто влепите звездочку GitHub \ No newline at end of file diff --git a/pom.xml b/pom.xml index 7931a0d..595783a 100644 --- a/pom.xml +++ b/pom.xml @@ -8,7 +8,7 @@ Tihwin Tihwin - 2.1 + 2.2 https://github.com/developersu/${project.artifactId}/ @@ -120,6 +120,48 @@ + + com.akathist.maven.plugins.launch4j + 2.2.0 + launch4j-maven-plugin + + + l4j-Tihwin + package + + launch4j + + + gui + tw_icon.ico + target/Tihwin-${project.version}-${maven.build.timestamp}.exe + target/${project.artifactId}-${project.version}-${maven.build.timestamp}.jar + Tihwin + + tihwin.Main + false + anything + + + 1.8.0 + %JAVA_HOME%;%PATH% + + + ${project.version}.0.0 + ${project.version} + ul.cfg utility + GNU General Public License v3, 2022 ${project.organization.name}, Russia + ${project.version}.0.0 + ${project.version} + ${project.organization.name} + ${project.name} + ${project.name} + ${project.name}.exe + + + + + \ No newline at end of file diff --git a/src/main/java/tihwin/Main.java b/src/main/java/tihwin/Main.java index 3a8293a..926dbce 100644 --- a/src/main/java/tihwin/Main.java +++ b/src/main/java/tihwin/Main.java @@ -20,11 +20,13 @@ package tihwin; import javax.swing.*; import java.awt.*; +import java.util.Locale; import java.util.Objects; import java.util.ResourceBundle; public class Main { public static void main(String[] args) { + Locale.setDefault(Settings.INSTANCE.getLocale()); String appVersion = ResourceBundle.getBundle("app").getString("_version"); MainAppUi frame = new MainAppUi("Tihwin "+appVersion); diff --git a/src/main/java/tihwin/MainAppUi.form b/src/main/java/tihwin/MainAppUi.form index a3efd14..ec0e66f 100644 --- a/src/main/java/tihwin/MainAppUi.form +++ b/src/main/java/tihwin/MainAppUi.form @@ -31,7 +31,7 @@ - + @@ -43,7 +43,7 @@ - + @@ -75,7 +75,7 @@ - + @@ -84,7 +84,7 @@ - + @@ -93,7 +93,7 @@ - + @@ -167,7 +167,7 @@ - + @@ -187,6 +187,15 @@ + + + + + + + + + diff --git a/src/main/java/tihwin/MainAppUi.java b/src/main/java/tihwin/MainAppUi.java index 79b4d93..e91a71f 100644 --- a/src/main/java/tihwin/MainAppUi.java +++ b/src/main/java/tihwin/MainAppUi.java @@ -23,19 +23,20 @@ import com.intellij.uiDesigner.core.GridLayoutManager; import com.jgoodies.forms.layout.CellConstraints; import com.jgoodies.forms.layout.FormLayout; import tihwin.cd.ISO9660; -import tihwin.ui.IsoFileFilter; -import tihwin.ui.TitleFieldFilter; -import tihwin.ui.UiUpdater; +import tihwin.ui.*; +import tihwin.ui.model.LocaleHolder; import tihwin.ul.UlConfiguration; import tihwin.ul.UlMaker; import javax.swing.*; +import javax.swing.border.Border; import javax.swing.text.AbstractDocument; import java.awt.*; import java.awt.event.WindowEvent; import java.awt.event.WindowListener; import java.io.File; import java.lang.reflect.Method; +import java.util.Locale; import java.util.ResourceBundle; public class MainAppUi extends JFrame { @@ -52,7 +53,11 @@ public class MainAppUi extends JFrame { private JRadioButton CDRadioButton; private JRadioButton DVDRadioButton; private JButton ulCfgBtn; - private final ResourceBundle resourceBundle; + private JComboBox ulLangComboBox; + private JLabel diskImageRoLbl; + private JLabel titleRoLbl; + private JLabel ulDestinationRoLbl; + private ResourceBundle resourceBundle; private String recentRomLocation; private File diskImage; @@ -63,6 +68,7 @@ public class MainAppUi extends JFrame { public MainAppUi(String appName) { super(appName); + $$$setupUI$$$(); resourceBundle = ResourceBundle.getBundle("locale"); AwesomeMediator.setMainUi(this); setLocationRelativeTo(null); // Set window on [kinda] center @@ -80,22 +86,29 @@ public class MainAppUi extends JFrame { CDRadioButton.setSelected(true); recentRomLocation = Settings.INSTANCE.getRomLocation(); destinationDirectoryLbl.setText(FilesHelper.getRealFolder(Settings.INSTANCE.getDestination())); - addWindowListener(getWindowListener()); + Border fitMoreTextOnButtonBorder = BorderFactory.createCompoundBorder( + BorderFactory.createLineBorder(Color.lightGray), + BorderFactory.createEmptyBorder(5, 5, 5, 5)); + diskImageSelectBtn.setBorder(fitMoreTextOnButtonBorder); + destinationSelectBtn.setBorder(fitMoreTextOnButtonBorder); + } private WindowListener getWindowListener() { return new WindowListener() { - @Override - public void windowOpened(WindowEvent windowEvent) { - - } - @Override public void windowClosing(WindowEvent windowEvent) { Settings.INSTANCE.setRomLocation(recentRomLocation); Settings.INSTANCE.setDestination(destinationDirectoryLbl.getText()); Settings.INSTANCE.setDvdSelected(DVDRadioButton.isSelected()); + Settings.INSTANCE.setLocale( + ((LocaleHolder) ulLangComboBox.getSelectedItem()).getLocaleCode()); + } + + @Override + public void windowOpened(WindowEvent windowEvent) { + diskImageSelectBtn.grabFocus(); } @Override @@ -104,22 +117,18 @@ public class MainAppUi extends JFrame { @Override public void windowIconified(WindowEvent windowEvent) { - } @Override public void windowDeiconified(WindowEvent windowEvent) { - } @Override public void windowActivated(WindowEvent windowEvent) { - } @Override public void windowDeactivated(WindowEvent windowEvent) { - } }; } @@ -221,11 +230,26 @@ public class MainAppUi extends JFrame { new UpdateUlTableUi(destinationDirectoryLbl.getText()); } - { -// GUI initializer generated by IntelliJ IDEA GUI Designer -// >>> IMPORTANT!! <<< -// DO NOT EDIT OR ADD ANY CODE HERE! - $$$setupUI$$$(); + private void onLanguageChanged() { + Locale newLocale = ((LocaleHolder) ulLangComboBox.getSelectedItem()).getLocale(); + Locale.setDefault(newLocale); + resourceBundle = ResourceBundle.getBundle("locale"); + + diskImageSelectBtn.setText(resourceBundle.getString("SelectBtn")); + destinationSelectBtn.setText(resourceBundle.getString("SelectBtn")); + if (doWeConvertAnythingNow) { + convertBtn.setText(resourceBundle.getString("AbortText")); + statusLbl.setText(resourceBundle.getString("InProgressText")); + } else + convertBtn.setText(resourceBundle.getString("ConvertBtn")); + + diskImageRoLbl.setText(resourceBundle.getString("DiskImageLbl")); + titleRoLbl.setText(resourceBundle.getString("TitleLbl")); + ulDestinationRoLbl.setText(resourceBundle.getString("ulDestinationLbl")); + + CDRadioButton.setText(resourceBundle.getString("CD")); + DVDRadioButton.setText(resourceBundle.getString("DVD")); + ulCfgBtn.setText(resourceBundle.getString("editUlCfgBtn")); } /** @@ -236,15 +260,16 @@ public class MainAppUi extends JFrame { * @noinspection ALL */ private void $$$setupUI$$$() { + createUIComponents(); mainPanel = new JPanel(); mainPanel.setLayout(new FormLayout("fill:p:noGrow,left:4dlu:noGrow,fill:p:noGrow,left:4dlu:noGrow,fill:p:noGrow,fill:max(d;4px):noGrow,fill:d:grow,left:4dlu:noGrow,fill:p:noGrow", "center:max(d;4px):noGrow,top:4dlu:noGrow,center:max(d;4px):noGrow,top:4dlu:noGrow,center:max(d;4px):noGrow,top:4dlu:noGrow,center:max(d;4px):noGrow,top:4dlu:noGrow,center:max(d;4px):noGrow,top:p:grow,top:4dlu:noGrow,center:max(d;4px):noGrow")); diskImageSelectBtn = new JButton(); diskImageSelectBtn.setBackground(new Color(-2034433)); this.$$$loadButtonText$$$(diskImageSelectBtn, this.$$$getMessageFromBundle$$$("locale", "SelectBtn")); CellConstraints cc = new CellConstraints(); - mainPanel.add(diskImageSelectBtn, new CellConstraints(1, 3, 3, 1, CellConstraints.DEFAULT, CellConstraints.DEFAULT, new Insets(0, 5, 0, 0))); + mainPanel.add(diskImageSelectBtn, new CellConstraints(1, 3, 3, 1, CellConstraints.DEFAULT, CellConstraints.CENTER, new Insets(0, 5, 0, 0))); titleField = new JTextField(); - mainPanel.add(titleField, cc.xyw(7, 5, 3)); + mainPanel.add(titleField, new CellConstraints(7, 5, 3, 1, CellConstraints.DEFAULT, CellConstraints.DEFAULT, new Insets(0, 0, 0, 5))); destinationDirectoryLbl = new JLabel(); destinationDirectoryLbl.setText(""); mainPanel.add(destinationDirectoryLbl, cc.xyw(7, 7, 3)); @@ -255,15 +280,15 @@ public class MainAppUi extends JFrame { destinationSelectBtn.setBackground(new Color(-2034433)); this.$$$loadButtonText$$$(destinationSelectBtn, this.$$$getMessageFromBundle$$$("locale", "SelectBtn")); mainPanel.add(destinationSelectBtn, new CellConstraints(1, 7, 3, 1, CellConstraints.DEFAULT, CellConstraints.DEFAULT, new Insets(0, 5, 0, 0))); - final JLabel label1 = new JLabel(); - this.$$$loadLabelText$$$(label1, this.$$$getMessageFromBundle$$$("locale", "ulDestinationLbl")); - mainPanel.add(label1, cc.xy(5, 7)); - final JLabel label2 = new JLabel(); - this.$$$loadLabelText$$$(label2, this.$$$getMessageFromBundle$$$("locale", "DiskImageLbl")); - mainPanel.add(label2, cc.xy(5, 3)); - final JLabel label3 = new JLabel(); - this.$$$loadLabelText$$$(label3, this.$$$getMessageFromBundle$$$("locale", "TitleLbl")); - mainPanel.add(label3, cc.xy(5, 5)); + ulDestinationRoLbl = new JLabel(); + this.$$$loadLabelText$$$(ulDestinationRoLbl, this.$$$getMessageFromBundle$$$("locale", "ulDestinationLbl")); + mainPanel.add(ulDestinationRoLbl, cc.xy(5, 7)); + diskImageRoLbl = new JLabel(); + this.$$$loadLabelText$$$(diskImageRoLbl, this.$$$getMessageFromBundle$$$("locale", "DiskImageLbl")); + mainPanel.add(diskImageRoLbl, cc.xy(5, 3)); + titleRoLbl = new JLabel(); + this.$$$loadLabelText$$$(titleRoLbl, this.$$$getMessageFromBundle$$$("locale", "TitleLbl")); + mainPanel.add(titleRoLbl, cc.xy(5, 5)); CDRadioButton = new JRadioButton(); this.$$$loadButtonText$$$(CDRadioButton, this.$$$getMessageFromBundle$$$("locale", "CD")); mainPanel.add(CDRadioButton, cc.xy(1, 5)); @@ -288,13 +313,15 @@ public class MainAppUi extends JFrame { progressBar.setIndeterminate(false); mainPanel.add(progressBar, cc.xyw(1, 11, 7, CellConstraints.FILL, CellConstraints.DEFAULT)); final JPanel panel1 = new JPanel(); - panel1.setLayout(new GridLayoutManager(1, 1, new Insets(0, 0, 0, 0), -1, -1)); + panel1.setLayout(new GridLayoutManager(1, 2, new Insets(0, 0, 0, 0), -1, -1)); panel1.setBackground(new Color(-9251843)); mainPanel.add(panel1, cc.xyw(1, 1, 9)); - final JLabel label4 = new JLabel(); - label4.setIcon(new ImageIcon(getClass().getResource("/banner.png"))); - label4.setText(""); - panel1.add(label4, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); + final JLabel label1 = new JLabel(); + label1.setIcon(new ImageIcon(getClass().getResource("/banner.png"))); + label1.setText(""); + panel1.add(label1, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); + ulLangComboBox.putClientProperty("html.disable", Boolean.FALSE); + panel1.add(ulLangComboBox, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_NORTHWEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); ulCfgBtn = new JButton(); ulCfgBtn.setBackground(new Color(-2031648)); ulCfgBtn.setMargin(new Insets(1, 1, 1, 1)); @@ -386,4 +413,8 @@ public class MainAppUi extends JFrame { return mainPanel; } + private void createUIComponents() { + this.ulLangComboBox = new LanguageComboBox(); + ulLangComboBox.addActionListener(e -> onLanguageChanged()); + } } diff --git a/src/main/java/tihwin/Settings.java b/src/main/java/tihwin/Settings.java index 87aa2dd..831e612 100644 --- a/src/main/java/tihwin/Settings.java +++ b/src/main/java/tihwin/Settings.java @@ -18,15 +18,19 @@ */ package tihwin; +import java.util.Locale; import java.util.prefs.Preferences; public class Settings { public static final Settings INSTANCE = new Settings(); private final Preferences preferences; + private final Locale locale; Settings(){ this.preferences = Preferences.userRoot().node("tihwin"); + String localeCode = preferences.get("locale", Locale.getDefault().toString()); + this.locale = new Locale(localeCode.substring(0, 2), localeCode.substring(3)); } public String getRomLocation(){ @@ -48,4 +52,7 @@ public class Settings { public void setDvdSelected(boolean value) { preferences.putBoolean("dvd_selected", value); } + + public Locale getLocale(){ return this.locale; } + public void setLocale(String localeId){ preferences.put("locale", localeId); } } diff --git a/src/main/java/tihwin/ui/LanguageComboBox.java b/src/main/java/tihwin/ui/LanguageComboBox.java new file mode 100644 index 0000000..cc47bb3 --- /dev/null +++ b/src/main/java/tihwin/ui/LanguageComboBox.java @@ -0,0 +1,76 @@ +/* + + Copyright "2022" Dmitry Isaenko + + This file is part of Tihwin. + + Tihwin is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Tihwin is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Tihwin. If not, see . + + */ +package tihwin.ui; + +import tihwin.ui.model.LocaleHolder; +import tihwin.ui.model.SettingsLanguagesSetup; + +import javax.swing.*; +import javax.swing.plaf.basic.BasicArrowButton; +import javax.swing.plaf.basic.BasicComboBoxUI; +import java.awt.*; +import java.util.List; + +public class LanguageComboBox extends JComboBox { + private static final Color COLOR_SKY_BLUE = new Color(114, 211, 253); + + public LanguageComboBox(){ + super(); + UIManager.put("ComboBox.selectionForeground", COLOR_SKY_BLUE); + UIManager.put("ComboBox.selectionBackground", Color.white); + UIManager.put("ComboBox.squareButton", Boolean.FALSE); + + setUI(new BasicComboBoxUI(){ + @Override + protected JButton createArrowButton() { + BasicArrowButton button = new BasicArrowButton(BasicArrowButton.SOUTH, + COLOR_SKY_BLUE, COLOR_SKY_BLUE, Color.white, COLOR_SKY_BLUE); + + button.setBorder(BorderFactory.createEmptyBorder()); + button.setVisible(false); + return button; + } + }); + + ListCellRenderer current = (ListCellRenderer) getRenderer(); + + setRenderer((list, localeHolder, index, isSelected, hasFocus) -> { + Component component = current.getListCellRendererComponent(list, localeHolder, index, isSelected, hasFocus); + + if (isSelected) { + component.setForeground(Color.black); + component.setBackground(Color.ORANGE); + } else { + component.setForeground(Color.white); + component.setBackground(COLOR_SKY_BLUE); + } + return component; + }); + setForeground(Color.white); + setBackground(COLOR_SKY_BLUE); + SettingsLanguagesSetup setup = new SettingsLanguagesSetup(); + + List languages = setup.getLanguages(); + for (LocaleHolder lang: languages) + addItem(lang); + this.setSelectedItem(setup.getRecentLanguage()); + } +} diff --git a/src/main/java/tihwin/ui/model/LocaleHolder.java b/src/main/java/tihwin/ui/model/LocaleHolder.java new file mode 100644 index 0000000..0dbfd58 --- /dev/null +++ b/src/main/java/tihwin/ui/model/LocaleHolder.java @@ -0,0 +1,55 @@ +/* + + Copyright "2022" Dmitry Isaenko + + This file is part of Tihwin. + + Tihwin is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Tihwin is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Tihwin. If not, see . + + */ +package tihwin.ui.model; + +import java.util.Locale; + +public class LocaleHolder { + + private final Locale locale; + private final String localeCode; + private final String languageName; + + public LocaleHolder(String localeFileName) { + String language = localeFileName.substring(7, 9); + String country; + if (localeFileName.length() > 23) + country = localeFileName.substring(10, localeFileName.indexOf('.')); + else + country = localeFileName.substring(10, 12); + this.locale = new Locale(language, country); + this.localeCode = locale.toString(); + this.languageName = locale.getDisplayLanguage(locale).toUpperCase(); + } + + @Override + public String toString(){ + return languageName; + } + + public String getLocaleCode(){ + return localeCode; + } + + public Locale getLocale() { + return locale; + } +} diff --git a/src/main/java/tihwin/ui/model/SettingsLanguagesSetup.java b/src/main/java/tihwin/ui/model/SettingsLanguagesSetup.java new file mode 100644 index 0000000..a3d9adf --- /dev/null +++ b/src/main/java/tihwin/ui/model/SettingsLanguagesSetup.java @@ -0,0 +1,127 @@ +/* + + Copyright "2022" Dmitry Isaenko + + This file is part of Tihwin. + + Tihwin is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Tihwin is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Tihwin. If not, see . + + */ +package tihwin.ui.model; + +import tihwin.Settings; + +import java.io.File; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URL; +import java.net.URLDecoder; +import java.util.*; +import java.util.jar.JarEntry; +import java.util.jar.JarFile; + +public class SettingsLanguagesSetup { + private final List languages; + private File thisApplicationFile; + private LocaleHolder recentlyUsedLanguageHolder; + + public SettingsLanguagesSetup() { + this.languages = new ArrayList<>(); + parseFiles(); + sortLanguages(); + defineRecentlyUsedLanguageHolder(); + } + + private void parseFiles() { + if (isApplicationIsJar()) // Executed as JAR file + parseFilesInsideJar(); + else // Executed within IDE + parseFilesInFilesystem(); + } + + private boolean isApplicationIsJar() { + getThisApplicationFile(); + return thisApplicationFile != null && thisApplicationFile.isFile(); + } + + private void getThisApplicationFile() { + try { + String encodedJarLocation = + getClass().getProtectionDomain().getCodeSource().getLocation().getPath().replace("+", "%2B"); + this.thisApplicationFile = new File(URLDecoder.decode(encodedJarLocation, "UTF-8")); + } catch (UnsupportedEncodingException uee) { + uee.printStackTrace(); + this.thisApplicationFile = null; + } + } + + private void parseFilesInsideJar() { + try { + JarFile jar = new JarFile(thisApplicationFile); + Enumeration entries = jar.entries(); //gives ALL entries in jar + while (entries.hasMoreElements()) { + String name = entries.nextElement().getName(); + if (name.startsWith("locale_")) { + languages.add(new LocaleHolder(name)); + } + } + jar.close(); + } catch (IOException ioe) { + ioe.printStackTrace(); + } + } + + private void parseFilesInFilesystem() { + URL resourceURL = this.getClass().getResource("/"); + String[] filesList = new File(resourceURL.getFile()).list(); // Screw it. This WON'T produce NullPointerException + + for (String jarFileName : filesList) { + if (jarFileName.startsWith("locale_")) { + languages.add(new LocaleHolder(jarFileName)); + } + } + } + + private void sortLanguages() { + languages.sort(Comparator.comparing(LocaleHolder::toString)); + } + + private void defineRecentlyUsedLanguageHolder() { + Locale localeFromPreferences = Settings.INSTANCE.getLocale(); + + for (LocaleHolder holder : languages) { + Locale holderLocale = holder.getLocale(); + + if (holderLocale.equals(localeFromPreferences)) { + this.recentlyUsedLanguageHolder = holder; + return; + } + } + // Otherwise define default one that is "en_US" + for (LocaleHolder holder : languages) { + if (holder.getLocaleCode().equals("en_US")) { + this.recentlyUsedLanguageHolder = holder; + return; + } + } + } + + public List getLanguages() { + return languages; + } + + public LocaleHolder getRecentLanguage() { + return recentlyUsedLanguageHolder; + } +} \ No newline at end of file diff --git a/src/main/java/tihwin/ui/ulupdater/UlTableModel.java b/src/main/java/tihwin/ui/ulupdater/UlTableModel.java index aeeb19d..eb02195 100644 --- a/src/main/java/tihwin/ui/ulupdater/UlTableModel.java +++ b/src/main/java/tihwin/ui/ulupdater/UlTableModel.java @@ -27,9 +27,19 @@ import java.util.List; import java.util.ResourceBundle; public class UlTableModel extends DefaultTableModel { - static { + + private final String REMOVE_ME_BUTTON_TEXT; + + private final String OK_STATUS; + private final String INCONSISTENT_STATUS; + + private final List rows; + private final List removedRows; + + public UlTableModel(){ + super(); ResourceBundle bundle = ResourceBundle.getBundle("locale"); - COLUMNS = new String[]{ + String[] columns = new String[]{ bundle.getString("ulManagerWindow_ColumnNameNumber"), bundle.getString("ulManagerWindow_ColumnNameTitle"), bundle.getString("ulManagerWindow_ColumnNamePublisherTitle"), @@ -37,23 +47,11 @@ public class UlTableModel extends DefaultTableModel { bundle.getString("ulManagerWindow_ColumnCdDvdFlag"), "", ""}; + super.setColumnIdentifiers(columns); REMOVE_ME_BUTTON_TEXT = bundle.getString("ulManagerWindow_Row_RemoveRowBtn"); OK_STATUS = bundle.getString("Ok"); INCONSISTENT_STATUS = bundle.getString("ulManagerWindow_InconsistentFileText"); - } - private static final String[] COLUMNS; - private static final String REMOVE_ME_BUTTON_TEXT; - - private static final String OK_STATUS; - private static final String INCONSISTENT_STATUS; - - private final List rows; - private final List removedRows; - - public UlTableModel(){ - super(); - super.setColumnIdentifiers(COLUMNS); this.rows = new ArrayList<>(); this.removedRows = new ArrayList<>(); } diff --git a/src/main/resources/banner.png b/src/main/resources/banner.png index b936a6c336420b2dbf1b00ff7ec73f880755b7ab..efea4a445934b40e6dca36a057fb0da2b8c97878 100644 GIT binary patch delta 17661 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 tU)