/* * Copyright (c) 1998-2017 by Richard A. Wilkes. All rights reserved. * * This Source Code Form is subject to the terms of the Mozilla Public * License, version 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * This Source Code Form is "Incompatible With Secondary Licenses", as * defined by the Mozilla Public License, version 2.0. */ package com.trollworks.gcs.menu.edit; import com.trollworks.gcs.app.GCSImages; import com.trollworks.gcs.character.CharacterSheet; import com.trollworks.gcs.character.DescriptionRandomizer; import com.trollworks.toolkit.annotation.Localize; import com.trollworks.toolkit.ui.menu.Command; import com.trollworks.toolkit.ui.widget.WindowUtils; import com.trollworks.toolkit.utility.Localization; import java.awt.event.ActionEvent; import javax.swing.JOptionPane; /** Provides the "Randomize Description" command. */ public class RandomizeDescriptionCommand extends Command { @Localize("Randomize Description\u2026") @Localize(locale = "de", value = "Zufällige Beschreibung erstellen\u2026") @Localize(locale = "ru", value = "Случайное описание\u2026") @Localize(locale = "es", value = "Descripción al azar\u2026") private static String RANDOMIZE_DESCRIPTION; @Localize("Description Randomizer") @Localize(locale = "de", value = "Zufallsgenerator für Beschreibungen") @Localize(locale = "ru", value = "Сгенерировать описание") @Localize(locale = "es", value = "Descripción al azar") private static String RANDOMIZER; @Localize("Apply") @Localize(locale = "de", value = "Anwenden") @Localize(locale = "ru", value = "Применить") @Localize(locale = "es", value = "Aceptar") private static String APPLY; @Localize("Cancel") @Localize(locale = "de", value = "Abbrechen") @Localize(locale = "ru", value = "Отмена") @Localize(locale = "es", value = "Cancelar") private static String CANCEL; static { Localization.initialize(); } /** The action command this command will issue. */ public static final String CMD_RANDOMIZE_DESCRIPTION = "RandomizeDescription"; //$NON-NLS-1$ /** The singleton {@link RandomizeDescriptionCommand}. */ public static final RandomizeDescriptionCommand INSTANCE = new RandomizeDescriptionCommand(); private RandomizeDescriptionCommand() { super(RANDOMIZE_DESCRIPTION, CMD_RANDOMIZE_DESCRIPTION); } @Override public void adjust() { setEnabled(getTarget(CharacterSheet.class) != null); } @Override public void actionPerformed(ActionEvent event) { CharacterSheet target = getTarget(CharacterSheet.class); if (target != null) { DescriptionRandomizer panel = new DescriptionRandomizer(target.getCharacter()); if (WindowUtils.showOptionDialog(null, panel, RANDOMIZER, true, JOptionPane.OK_CANCEL_OPTION, JOptionPane.INFORMATION_MESSAGE, GCSImages.getCharacterSheetDocumentIcons().getImage(32), new String[] { APPLY, CANCEL }, APPLY) == JOptionPane.OK_OPTION) { panel.applyChanges(); } } } }