refactor deck import content to include hints

This commit is contained in:
John Hitchings 2018-11-16 21:57:25 -08:00
parent baeb9d8b00
commit b1df464e8f
2 changed files with 24 additions and 6 deletions

View file

@ -16,6 +16,15 @@ import javax.swing.*;
public class DeckImportFromClipboardDialog extends JDialog { public class DeckImportFromClipboardDialog extends JDialog {
private static final String FORMAT_TEXT =
"// Example:\n" +
"//1 Library of Congress\n" +
"//1 Cryptic Gateway\n" +
"//1 Azami, Lady of Scrolls\n" +
"// NB: This is slow as, and will lock your screen :)\n" +
"\n" +
"// Your current clipboard:\n";
private JPanel contentPane; private JPanel contentPane;
private JButton buttonOK; private JButton buttonOK;
private JButton buttonCancel; private JButton buttonCancel;
@ -25,6 +34,9 @@ public class DeckImportFromClipboardDialog extends JDialog {
public DeckImportFromClipboardDialog() { public DeckImportFromClipboardDialog() {
initComponents(); initComponents();
onRefreshClipboard();
setContentPane(contentPane); setContentPane(contentPane);
setModal(true); setModal(true);
getRootPane().setDefaultButton(buttonOK); getRootPane().setDefaultButton(buttonOK);
@ -42,8 +54,6 @@ public class DeckImportFromClipboardDialog extends JDialog {
// Close on "ESC" // Close on "ESC"
contentPane.registerKeyboardAction(e -> onCancel(), KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT); contentPane.registerKeyboardAction(e -> onCancel(), KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
getClipboardStringData().ifPresent(content -> txtDeckList.setText(content));
} }
private Optional<String> getClipboardStringData() { private Optional<String> getClipboardStringData() {
@ -75,6 +85,10 @@ public class DeckImportFromClipboardDialog extends JDialog {
dispose(); dispose();
} }
private void onRefreshClipboard() {
txtDeckList.setText(FORMAT_TEXT + getClipboardStringData().orElse(""));
}
public String getTmpPath() { public String getTmpPath() {
return tmpPath; return tmpPath;
} }
@ -158,7 +172,7 @@ public class DeckImportFromClipboardDialog extends JDialog {
txtDeckList.setMinimumSize(new Dimension(250, 400)); txtDeckList.setMinimumSize(new Dimension(250, 400));
txtDeckList.setPreferredSize(new Dimension(550, 400)); txtDeckList.setPreferredSize(new Dimension(550, 400));
txtDeckList.setText("// Example:\n//1 Library of Congress\n//1 Cryptic Gateway\n//1 Azami, Lady of Scrolls\n// NB: This is slow as, and will lock your screen :)"); txtDeckList.setText(FORMAT_TEXT);
JScrollPane txtScrollableDeckList = new JScrollPane(txtDeckList); JScrollPane txtScrollableDeckList = new JScrollPane(txtDeckList);
panel3.add(txtScrollableDeckList, new GridBagConstraints(0, 0, 1, 1, 1.0, 0.0, panel3.add(txtScrollableDeckList, new GridBagConstraints(0, 0, 1, 1, 1.0, 0.0,
GridBagConstraints.CENTER, GridBagConstraints.BOTH, GridBagConstraints.CENTER, GridBagConstraints.BOTH,

View file

@ -26,6 +26,8 @@ import mage.view.CardView;
import mage.view.PermanentView; import mage.view.PermanentView;
import net.xeoh.plugins.base.PluginManager; import net.xeoh.plugins.base.PluginManager;
import net.xeoh.plugins.base.impl.PluginManagerFactory; import net.xeoh.plugins.base.impl.PluginManagerFactory;
import net.xeoh.plugins.base.util.uri.ClassURI;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import org.mage.plugins.card.CardPluginImpl; import org.mage.plugins.card.CardPluginImpl;
import static org.mage.plugins.card.utils.CardImageUtils.getImagesDir; import static org.mage.plugins.card.utils.CardImageUtils.getImagesDir;
@ -46,13 +48,15 @@ public enum Plugins implements MagePlugins {
@Override @Override
public void loadPlugins() { public void loadPlugins() {
LOGGER.info("Loading plugins..."); LOGGER.info("Loading plugins...");
pm = PluginManagerFactory.createPluginManager(); pm = PluginManagerFactory.createPluginManager();
pm.addPluginsFrom(new File(PLUGINS_DIRECTORY + File.separator).toURI()); pm.addPluginsFrom(new File(PLUGINS_DIRECTORY + File.separator).toURI());
this.cardPlugin = new CardPluginImpl(); pm.addPluginsFrom(new ClassURI(CardPluginImpl.class).toURI());
pm.addPluginsFrom(new ClassURI(ThemePluginImpl.class).toURI());
this.cardPlugin = pm.getPlugin(CardPlugin.class);
this.counterPlugin = pm.getPlugin(CounterPlugin.class); this.counterPlugin = pm.getPlugin(CounterPlugin.class);
this.themePlugin = new ThemePluginImpl(); this.themePlugin = pm.getPlugin(ThemePlugin.class);
LOGGER.info("Done."); LOGGER.info("Done.");
} }