JList pluginList = null;
	public PluginDialog(JFrame parent, PluginClassLoader pluginLoader) {		super("Available Plugins");		this.pluginLoader = pluginLoader;				JPanel buttonPanel;		JButton closeButton, infoButton, removeButton;		VerticalStaticJPanel mainPanel = new VerticalStaticJPanel();		mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS));				/* LIST PANEL */		JList pluginList = null;		MapReader readers[];		        try {            readers = (MapReader[]) pluginLoader.getReaders();            String [] plugins = new String[readers.length];			for(int i=0;i<readers.length;i++) {				plugins[i] = readers[i].getPluginPackage();				  				//TODO: check for a writer as well, and designate the				//		plugins that have both			}			pluginList = new JList(plugins);			        } catch (Throwable e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        		JScrollPane pluginScrollPane = new JScrollPane(pluginList);		pluginScrollPane.setAutoscrolls(true);		pluginScrollPane.setPreferredSize(new Dimension(200, 150));				mainPanel.add(pluginScrollPane);				/* BUTTON PANEL */		buttonPanel = new JPanel();		buttonPanel.setBorder(BorderFactory.createEmptyBorder(0, 5, 0, 0));		buttonPanel.setLayout(new GridLayout(2,2,0,0));		infoButton = new JButton("Info");		infoButton.addActionListener(this);		buttonPanel.add(infoButton);		removeButton = new JButton("Remove");		removeButton.addActionListener(this);		buttonPanel.add(removeButton);		closeButton = new JButton("Close");		closeButton.addActionListener(this);		buttonPanel.add(closeButton);				mainPanel.add(buttonPanel);		setContentPane(mainPanel);		setResizable(false);		setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);		pack();	}