|
What this is
Other links
The source code
/*
* PluginManagerOptionPane.java - Plugin options panel
* :tabSize=8:indentSize=8:noTabs=false:
* :folding=explicit:collapseFolds=1:
*
* Copyright (C) 2003 Kris Kopicki
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
package org.gjt.sp.jedit.options;
import javax.swing.*;
import javax.swing.border.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import org.gjt.sp.jedit.*;
import org.gjt.sp.jedit.gui.*;
import org.gjt.sp.jedit.io.VFSManager;
import org.gjt.sp.jedit.pluginmgr.*;
import org.gjt.sp.util.*;
public class PluginManagerOptionPane extends AbstractOptionPane
{
//{{{ Constructor
public PluginManagerOptionPane()
{
super("plugin-manager");
} //}}}
//{{{ _init() method
protected void _init()
{
setLayout(new BorderLayout());
locationLabel = new JLabel(jEdit.getProperty(
"options.plugin-manager.location"));
mirrorLabel = new JLabel(jEdit.getProperty(
"options.plugin-manager.mirror"));
if(jEdit.getSettingsDirectory() != null)
{
settingsDir = new JRadioButton(jEdit.getProperty(
"options.plugin-manager.settings-dir"));
settingsDir.setToolTipText(MiscUtilities.constructPath(
jEdit.getSettingsDirectory(),"jars"));
}
appDir = new JRadioButton(jEdit.getProperty(
"options.plugin-manager.app-dir"));
appDir.setToolTipText(MiscUtilities.constructPath(
jEdit.getJEditHome(),"jars"));
miraList = new JList(miraModel = new MirrorModel());
miraList.setSelectionModel(new SingleSelectionModel());
/* Download mirror */
add(BorderLayout.NORTH,mirrorLabel);
add(BorderLayout.CENTER,new JScrollPane(miraList));
JPanel buttonPanel = new JPanel();
buttonPanel.setLayout(new BoxLayout(buttonPanel,BoxLayout.Y_AXIS));
buttonPanel.add(Box.createVerticalStrut(6));
/* Update mirror list */
JButton updateMirrors = new JButton(jEdit.getProperty(
"options.plugin-manager.updateMirrors"));
updateMirrors.addActionListener(new ActionHandler());
buttonPanel.add(updateMirrors);
buttonPanel.add(Box.createVerticalStrut(6));
/* Download source */
downloadSource = new JCheckBox(jEdit.getProperty(
"options.plugin-manager.downloadSource"));
downloadSource.setSelected(jEdit.getBooleanProperty("plugin-manager.downloadSource"));
buttonPanel.add(downloadSource);
buttonPanel.add(Box.createVerticalStrut(6));
/* Delete downloaded files */
deleteDownloads = new JCheckBox(jEdit.getProperty(
"options.plugin-manager.deleteDownloads"));
deleteDownloads.setSelected(jEdit.getBooleanProperty("plugin-manager.deleteDownloads"));
buttonPanel.add(deleteDownloads);
buttonPanel.add(Box.createVerticalStrut(6));
/* Install location */
locGrp = new ButtonGroup();
if(jEdit.getSettingsDirectory() != null)
locGrp.add(settingsDir);
locGrp.add(appDir);
JPanel locPanel = new JPanel();
locPanel.setBorder(new EmptyBorder(3,12,0,0));
locPanel.setLayout(new BoxLayout(locPanel,BoxLayout.Y_AXIS));
if(jEdit.getSettingsDirectory() != null)
{
locPanel.add(settingsDir);
locPanel.add(Box.createVerticalStrut(3));
}
locPanel.add(appDir);
buttonPanel.add(locationLabel);
buttonPanel.add(locPanel);
buttonPanel.add(Box.createGlue());
add(BorderLayout.SOUTH,buttonPanel);
if (jEdit.getBooleanProperty("plugin-manager.installUser")
&& jEdit.getSettingsDirectory() != null)
settingsDir.setSelected(true);
else
appDir.setSelected(true);
} //}}}
//{{{ _save() method
protected void _save()
{
jEdit.setBooleanProperty("plugin-manager.installUser",
settingsDir != null && settingsDir.isSelected());
jEdit.setBooleanProperty("plugin-manager.downloadSource",downloadSource.isSelected());
jEdit.setBooleanProperty("plugin-manager.deleteDownloads",deleteDownloads.isSelected());
if(miraList.getSelectedIndex() != -1)
{
String currentMirror = miraModel.getID(miraList.getSelectedIndex());
String previousMirror = jEdit.getProperty("plugin-manager.mirror.id");
if (!previousMirror.equals(currentMirror))
{
jEdit.setProperty("plugin-manager.mirror.id",currentMirror);
// Insert code to update the plugin managers list here later
}
}
} //}}}
//{{{ Private members
//{{{ Instance variables
private JLabel locationLabel;
private JLabel mirrorLabel;
private ButtonGroup locGrp;
private JRadioButton settingsDir;
private JRadioButton appDir;
private JCheckBox downloadSource;
private JCheckBox deleteDownloads;
private MirrorModel miraModel;
private JList miraList;
//}}}
//}}}
//{{{ MirrorModel class
class MirrorModel extends AbstractListModel
{
private ArrayList mirrors;
public MirrorModel()
{
mirrors = new ArrayList();
}
public String getID(int index)
{
return ((MirrorList.Mirror)mirrors.get(index)).id;
}
public int getSize()
{
return mirrors.size();
}
public Object getElementAt(int index)
{
MirrorList.Mirror mirror = (MirrorList.Mirror)mirrors.get(index);
if(mirror.id.equals(MirrorList.Mirror.NONE))
return jEdit.getProperty("options.plugin-manager.none");
else
return mirror.continent+": "+mirror.description+" ("+mirror.location+")";
}
public void setList(ArrayList mirrors)
{
this.mirrors = mirrors;
fireContentsChanged(this,0,mirrors.size() - 1);
}
} //}}}
//{{{ SingleSelectionModel class
class SingleSelectionModel extends DefaultListSelectionModel
{
public SingleSelectionModel()
{
super();
setSelectionMode(SINGLE_SELECTION);
}
public void removeSelectionInterval(int index0, int index1) {}
} //}}}
//{{{ ActionHandler class
class ActionHandler implements ActionListener
{
public void actionPerformed(ActionEvent evt)
{
VFSManager.runInWorkThread(new DownloadMirrorsThread());
}
} //}}}
//{{{ DownloadMirrorsThread class
class DownloadMirrorsThread extends WorkRequest
{
public void run()
{
setStatus(jEdit.getProperty("options.plugin-manager.workthread"));
setProgressMaximum(1);
setProgressValue(0);
final ArrayList mirrors = new ArrayList();
try
{
mirrors.addAll(new MirrorList().mirrors);
}
catch (Exception ex)
{
Log.log(Log.ERROR,this,ex);
GUIUtilities.error(PluginManagerOptionPane.this,
"ioerror",new String[] { ex.toString() });
}
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
miraModel.setList(mirrors);
String id = jEdit.getProperty("plugin-manager.mirror.id");
int size = miraModel.getSize();
for (int i=0; i < size; i++)
{
if (size == 1 || miraModel.getID(i).equals(id))
{
miraList.setSelectedIndex(i);
break;
}
}
}
});
setProgressValue(1);
}
} //}}}
}
|
| ... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.