package org.tomighty.ui.plugin; import org.tomighty.i18n.Messages; import org.tomighty.plugin.Plugin; import org.tomighty.plugin.PluginManager; import javax.inject.Inject; import javax.swing.*; import java.awt.*; import java.util.List; public class PluginManagerWindow extends JFrame { private final DefaultListModel pluginListModel; public PluginManagerWindow() { pluginListModel = new DefaultListModel(); setContentPane(createUI()); pack(); setLocationRelativeTo(null); } @Inject public void setPlugins(PluginManager pluginManager) { List<Plugin> plugins = pluginManager.getPlugins(); for(Plugin plugin : plugins) pluginListModel.addElement(new PluginModel(plugin)); } @Inject public void setMessages(Messages messages) { this.setTitle(messages.get("Tomighty Plugins")); } private JPanel createUI() { JPanel contentPane = new JPanel(new BorderLayout()); contentPane.add(createPluginListView(), BorderLayout.CENTER); return contentPane; } private JScrollPane createPluginListView() { JList pluginListView = new JList(pluginListModel); pluginListView.setPreferredSize(new Dimension(100, 100)); return new JScrollPane(pluginListView); } private class PluginModel { private final Plugin plugin; public PluginModel(Plugin plugin) { this.plugin = plugin; } @Override public String toString() { return plugin.getName(); } } }