⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 installpanel.java

📁 开源的java 编辑器源代码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/* * InstallPanel.java - For installing plugins * :tabSize=8:indentSize=8:noTabs=false: * :folding=explicit:collapseFolds=1: * * Copyright (C) 2002 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.pluginmgr;//{{{ Importsimport javax.swing.border.*;import javax.swing.event.*;import javax.swing.table.*;import javax.swing.*;import java.awt.event.*;import java.awt.*;import java.text.NumberFormat;import java.util.*;import org.gjt.sp.jedit.gui.*;import org.gjt.sp.jedit.io.VFSManager;import org.gjt.sp.jedit.*;import org.gjt.sp.util.Log;//}}}class InstallPanel extends JPanel{	//{{{ InstallPanel constructor	InstallPanel(PluginManager window, boolean updates)	{		super(new BorderLayout(12,12));		this.window = window;		this.updates = updates;		setBorder(new EmptyBorder(12,12,12,12));		JSplitPane split = new JSplitPane(JSplitPane.VERTICAL_SPLIT,true);		/* Setup the table */		table = new JTable(pluginModel = new PluginTableModel());		table.setShowGrid(false);		table.setIntercellSpacing(new Dimension(0,0));		table.setRowHeight(table.getRowHeight() + 2);		table.setPreferredScrollableViewportSize(new Dimension(500,200));		table.setRequestFocusEnabled(false);		table.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION);		table.setDefaultRenderer(Object.class, new TextRenderer(			(DefaultTableCellRenderer)table.getDefaultRenderer(Object.class)));		TableColumn col1 = table.getColumnModel().getColumn(0);		TableColumn col2 = table.getColumnModel().getColumn(1);		TableColumn col3 = table.getColumnModel().getColumn(2);		TableColumn col4 = table.getColumnModel().getColumn(3);		TableColumn col5 = table.getColumnModel().getColumn(4);		col1.setPreferredWidth(30);		col1.setMinWidth(30);		col1.setMaxWidth(30);		col1.setResizable(false);		col2.setPreferredWidth(180);		col3.setPreferredWidth(130);		col4.setPreferredWidth(70);		col5.setPreferredWidth(70);		JTableHeader header = table.getTableHeader();		header.setReorderingAllowed(false);		header.addMouseListener(new HeaderMouseHandler());		JScrollPane scrollpane = new JScrollPane(table);		scrollpane.getViewport().setBackground(table.getBackground());		split.setTopComponent(scrollpane);		/* Create description */		JScrollPane infoPane = new JScrollPane(new PluginInfoBox());		infoPane.setPreferredSize(new Dimension(500,100));		split.setBottomComponent(infoPane);		split.setDividerLocation(200);		add(BorderLayout.CENTER,split);		/* Create buttons */		Box buttons = new Box(BoxLayout.X_AXIS);		buttons.add(new InstallButton());		buttons.add(Box.createHorizontalStrut(12));		buttons.add(new SelectallButton());		buttons.add(Box.createGlue());		buttons.add(new SizeLabel());		add(BorderLayout.SOUTH,buttons);	} //}}}	//{{{ updateModel() method	public void updateModel()	{		pluginModel.showLoadingMessage();		VFSManager.runInAWTThread(new Runnable()		{			public void run()			{				pluginModel.update();			}		});	} //}}}	//{{{ Private members	//{{{ Variables	private JTable table;	private PluginTableModel pluginModel;	private PluginManager window;	private boolean updates;	//}}}	//{{{ formatSize() method	private String formatSize(int size)	{		NumberFormat df = NumberFormat.getInstance();		df.setMaximumFractionDigits(1);		df.setMinimumFractionDigits(0);		String sizeText;		if (size < 1048576)			sizeText = size/1024 + "KB";		else			sizeText = df.format(size/1048576d) + "MB";		return sizeText;	} //}}}	//}}}	//{{{ Inner classes	//{{{ PluginTableModel class	class PluginTableModel extends AbstractTableModel	{		private ArrayList entries = new ArrayList();		private int sortType = EntryCompare.CATEGORY;		//{{{ getColumnClass() method		public Class getColumnClass(int columnIndex)		{			switch (columnIndex)			{				case 0: return Boolean.class;				case 1:				case 2:				case 3:				case 4: return Object.class;				default: throw new Error("Column out of range");			}		} //}}}		//{{{ getColumnCount() method		public int getColumnCount()		{			return 5;		} //}}}		//{{{ getColumnName() method		public String getColumnName(int column)		{			switch (column)			{				case 0: return " ";				case 1: return " "+jEdit.getProperty("install-plugins.info.name");				case 2: return " "+jEdit.getProperty("install-plugins.info.category");				case 3: return " "+jEdit.getProperty("install-plugins.info.version");				case 4: return " "+jEdit.getProperty("install-plugins.info.size");				default: throw new Error("Column out of range");			}		} //}}}		//{{{ getRowCount() method		public int getRowCount()		{			return entries.size();		} //}}}		//{{{ getValueAt() method		public Object getValueAt(int rowIndex,int columnIndex)		{			Object obj = entries.get(rowIndex);			if(obj instanceof String)			{				if(columnIndex == 1)					return obj;				else					return null;			}			else			{				Entry entry = (Entry)obj;				switch (columnIndex)				{					case 0:						return new Boolean(							entry.install);					case 1:						return entry.name;					case 2:						return entry.set;					case 3:						return entry.version;					case 4:						return formatSize(entry.size);					default:						throw new Error("Column out of range");				}			}		} //}}}		//{{{ isCellEditable() method		public boolean isCellEditable(int rowIndex, int columnIndex)		{			return (columnIndex == 0);		} //}}}		//{{{ setSelectAll() method		public void setSelectAll(boolean b)		{			if(isDownloadingList())				return;			int length = getRowCount();			for (int i = 0; i < length; i++)			{				if (b)					setValueAt(new Boolean(true),i,0);				else				{					Entry entry = (Entry)entries.get(i);					entry.parents = new LinkedList();					entry.install = false;				}			}			fireTableChanged(new TableModelEvent(this));		} //}}}		//{{{ setSortType() method		public void setSortType(int type)		{			sortType = type;			sort(type);		} //}}}		//{{{ setValueAt() method		public void setValueAt(Object aValue, int row, int column)		{			if (column != 0) return;			Object obj = entries.get(row);			if(obj instanceof String)				return;			Entry entry = (Entry)obj;			Vector deps = entry.plugin.getCompatibleBranch().deps;			boolean value = ((Boolean)aValue).booleanValue();			if (!value)			{				if (entry.parents.size() > 0)				{					String[] args = {						entry.name,						entry.getParentString()					};					int result = GUIUtilities.confirm(						window,"plugin-manager.dependency",						args,JOptionPane.OK_CANCEL_OPTION,						JOptionPane.WARNING_MESSAGE);					if (result != JOptionPane.OK_OPTION)						return;					Iterator parentsIter = entry.parents.iterator();					while(parentsIter.hasNext())					{						((Entry)parentsIter.next()).install = false;					}					fireTableRowsUpdated(0,getRowCount() - 1);				}			}			for (int i = 0; i < deps.size(); i++)			{				PluginList.Dependency dep = (PluginList.Dependency)deps.elementAt(i);				if (dep.what.equals("plugin"))				{					for (int j = 0; j < entries.size(); j++)					{						Entry temp = (Entry)entries.get(j);						if (temp.plugin == dep.plugin)						{							if (value)							{								temp.parents.add(entry);								setValueAt(new Boolean(true),j,0);							}							else								temp.parents.remove(entry);						}					}				}			}			entry.install = Boolean.TRUE.equals(aValue);			fireTableCellUpdated(row,column);		} //}}}		//{{{ sort() method		public void sort(int type)		{			if(isDownloadingList())				return;			Collections.sort(entries,new EntryCompare(type));			fireTableChanged(new TableModelEvent(this));		}		//}}}		//{{{ isDownloadingList() method		private boolean isDownloadingList()		{			return (entries.size() == 1 && entries.get(0) instanceof String);		} //}}}		//{{{ showLoadingMessage() method

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -