Fixed possible name conflict when creating new themes.
This commit is contained in:
parent
1a3fbddfe2
commit
d2ee659ea7
@ -5,6 +5,7 @@ import java.awt.event.ActionListener;
|
|||||||
import java.awt.event.ItemEvent;
|
import java.awt.event.ItemEvent;
|
||||||
import java.awt.event.ItemListener;
|
import java.awt.event.ItemListener;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
@ -118,7 +119,10 @@ public class ThemeCustomizationPanel extends SettingsPanel {
|
|||||||
return (evt) -> {
|
return (evt) -> {
|
||||||
if (themeChanged) {
|
if (themeChanged) {
|
||||||
try {
|
try {
|
||||||
String name = JOptionPane.showInputDialog("Enter a name for the new theme");
|
String name = "";
|
||||||
|
while (name == "") {
|
||||||
|
name = newName();
|
||||||
|
}
|
||||||
logger.log(Level.FINEST, name);
|
logger.log(Level.FINEST, name);
|
||||||
Settings.getInstance().addNewThemeToMap(new Theme(name, temporaryTheme));
|
Settings.getInstance().addNewThemeToMap(new Theme(name, temporaryTheme));
|
||||||
themeArray = Arrays.copyOf(themeArray, themeArray.length + 1);
|
themeArray = Arrays.copyOf(themeArray, themeArray.length + 1);
|
||||||
@ -229,4 +233,16 @@ public class ThemeCustomizationPanel extends SettingsPanel {
|
|||||||
|
|
||||||
colorsPanel.add(button, gbc_button);
|
colorsPanel.add(button, gbc_button);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String newName () {
|
||||||
|
String name = JOptionPane.showInputDialog("Enter a name for the new theme");
|
||||||
|
for (Map.Entry<String, Theme> entry : Settings.getInstance().getThemes().entrySet()) {
|
||||||
|
System.out.println(entry.getKey().toString());
|
||||||
|
if(entry.getKey().equalsIgnoreCase(name)) {
|
||||||
|
JOptionPane.showMessageDialog(getParent(), "Name is already used! Please choose another one.");
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return name;
|
||||||
|
}
|
||||||
}
|
}
|
Reference in New Issue
Block a user