private JPanel getJPanel1()

in taverna-plugins-gui/src/main/java/org/apache/taverna/raven/plugins/ui/PluginSiteFrame.java [181:290]


	private JPanel getJPanel1(final PluginSite pluginSite) {
		final JPanel pluginSitePanel = new JPanel();
		pluginSitePanel.setBackground(Color.WHITE);
		pluginSitePanel.setLayout(new GridBagLayout());
		GridBagConstraints gridBagConstraints = new GridBagConstraints();
		gridBagConstraints.gridx = 0;
		gridBagConstraints.gridy = 0;
		gridBagConstraints.anchor = GridBagConstraints.WEST;
		gridBagConstraints.fill = GridBagConstraints.HORIZONTAL;
		gridBagConstraints.gridwidth = 2;
		gridBagConstraints.insets = new Insets(5, 5, 5, 5);
		gridBagConstraints.ipadx = 5;
		gridBagConstraints.ipady = 5;
		gridBagConstraints.weightx = 1.0;
		//ShadedLabel siteNameLabel = getSiteLabel(pluginSite);
		JLabel siteNameLabel = getSiteLabel(pluginSite);

		pluginSitePanel.add(siteNameLabel, gridBagConstraints);

		final GridBagConstraints gridBagConstraints1 = new GridBagConstraints();
		gridBagConstraints1.gridx = 0;
		gridBagConstraints1.gridy = 1;
		gridBagConstraints1.anchor = GridBagConstraints.WEST;
		gridBagConstraints1.fill = GridBagConstraints.HORIZONTAL;
		gridBagConstraints1.gridwidth = 2;
		gridBagConstraints1.insets = new Insets(5, 5, 5, 5);
		gridBagConstraints1.weightx = 1.0;
		final JProgressBar progressBar = new JProgressBar();
		progressBar.setIndeterminate(true);
		progressBar.setStringPainted(true);
		progressBar.setString("Checking for new plugins");
		pluginSitePanel.add(progressBar, gridBagConstraints1);

		new Thread("Checking update site " + pluginSite) {
			public void run() {
				try {
					List<Plugin> plugins = pluginManager
							.getUninstalledPluginsFromSite(pluginSite);
					if (plugins.size() > 0) {
						Collections.sort(plugins, new Comparator<Plugin>() {

							public int compare(Plugin o1, Plugin o2) {
								return o1.getName().compareTo(o2.getName());
							}

						});

						pluginSitePanel.remove(progressBar);
						int gridY = 0;
						for (Plugin plugin : plugins) {
							gridY++;
							GridBagConstraints gridBagConstraints1 = new GridBagConstraints();
							gridBagConstraints1.gridx = 0;
							gridBagConstraints1.gridy = gridY;
							gridBagConstraints1.anchor = GridBagConstraints.WEST;
							gridBagConstraints1.insets = new Insets(5, 20, 0, 0);
							pluginSitePanel.add(getJCheckBox(plugin),
									gridBagConstraints1);

							gridY++;

							GridBagConstraints gridBagConstraintsDescription = new GridBagConstraints();
							gridBagConstraintsDescription.gridx = 0;
							gridBagConstraintsDescription.ipadx = 50;
							gridBagConstraintsDescription.gridy = gridY;
							gridBagConstraintsDescription.anchor = GridBagConstraints.WEST;
							gridBagConstraintsDescription.insets = new Insets(5, 25, 10, 5);

							gridY++;

							GridBagConstraints gridBagConstraintsProgress = new GridBagConstraints();
							gridBagConstraintsProgress.gridx = 0;
							gridBagConstraintsProgress.gridy = gridY;
							gridBagConstraintsProgress.fill = GridBagConstraints.HORIZONTAL;
							gridBagConstraintsProgress.anchor = GridBagConstraints.WEST;
							gridBagConstraintsProgress.insets = new Insets(5, 5, 0, 0);

							JLabel description = new JLabel();
							description.setText("<html>"+plugin.getDescription());
							description.setFont(getFont().deriveFont(Font.PLAIN));
							pluginSitePanel.add(description,gridBagConstraintsDescription);

							PluginRepositoryListener progress = new PluginRepositoryListener();
							listeners.put(plugin, progress);
							progress.setVisible(false);

							pluginSitePanel.add(progress.getProgressBar(),
									gridBagConstraintsProgress);
						}
					} else {
						pluginSitePanel.remove(progressBar);
						pluginSitePanel.add(new JLabel(
								"This update site contains no new plugins"),
								gridBagConstraints1);
					}
				} catch (Exception e) {
					pluginSitePanel.remove(progressBar);
					pluginSitePanel.add(new JLabel(
							"Unable to contact the update site"),
							gridBagConstraints1);
				} finally {
					pluginSitePanel.revalidate();
					pluginSitePanel.repaint();
				}
			}
		}.start();

		pluginSitePanel.setBorder(new EtchedBorder());
		return pluginSitePanel;
	}