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

📄 managepanel.java

📁 开源的java 编辑器源代码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
					jEdit.getSettingsDirectory(),"jars");			}			PluginJAR[] plugins = jEdit.getPluginJARs();			for(int i = 0; i < plugins.length; i++)			{				String path = plugins[i].getPath();				if(path.startsWith(systemJarDir)					|| (userJarDir != null					&& path.startsWith(userJarDir)))				{					Entry e = new Entry(plugins[i]);					if(!hideLibraries.isSelected()						|| e.clazz != null)					{						entries.add(e);					}				}			}			String[] newPlugins = jEdit.getNotLoadedPluginJARs();			for(int i = 0; i < newPlugins.length; i++)			{				Entry e = new Entry(newPlugins[i]);				if(!hideLibraries.isSelected()					|| e.clazz != null)				{					entries.add(e);				}			}			sort(sortType);		} //}}}		//{{{ loadExtraJARsIfNecessary() method		/**		 * This should go into the core...		 */		private void loadPluginJAR(String jarPath)		{			jEdit.addPluginJAR(jarPath);			PluginJAR jar = jEdit.getPluginJAR(jarPath);			if(jar == null || jar.getPlugin() == null)				return;			String jars = jEdit.getProperty("plugin."				+ jar.getPlugin().getClassName() + ".jars");			if(jars != null)			{				String dir = MiscUtilities.getParentOfPath(					jarPath);				StringTokenizer st = new StringTokenizer(jars);				while(st.hasMoreTokens())				{					String _jarPath						= MiscUtilities.constructPath(						dir,st.nextToken());					PluginJAR _jar = jEdit.getPluginJAR(						_jarPath);					if(_jar == null)					{						jEdit.addPluginJAR(_jarPath);					}				}			}			jar.checkDependencies();			jar.activatePluginIfNecessary();		} //}}}		//{{{ unloadPluginJARWithDialog() method		private void unloadPluginJARWithDialog(PluginJAR jar)		{			String[] dependents = jar.getDependentPlugins();			if(dependents.length == 0)				unloadPluginJAR(jar);			else			{				Vector listModel = new Vector();				transitiveClosure(dependents,listModel);				int button = showListConfirm(					"plugin-manager.dependency",					new String[] { jar.getFile()					.getName() },listModel);				if(button == JOptionPane.YES_OPTION)					unloadPluginJAR(jar);			}		} //}}}		//{{{ transitiveClosure() method		/**		 * If plugin A is needed by B, and B is needed by C, we want to		 * tell the user that A is needed by B and C when they try to		 * unload A.		 */		private void transitiveClosure(String[] dependents,			Vector listModel)		{			for(int i = 0; i < dependents.length; i++)			{				String jarPath = dependents[i];				if(!listModel.contains(jarPath))				{					listModel.add(jarPath);					PluginJAR jar = jEdit.getPluginJAR(						jarPath);					transitiveClosure(jar.getDependentPlugins(),						listModel);				}			}		} //}}}		//{{{ unloadPluginJAR() method		/**		 * This should go into a public method somewhere.		 */		private void unloadPluginJAR(PluginJAR jar)		{			String[] dependents = jar.getDependentPlugins();			for(int i = 0; i < dependents.length; i++)			{				PluginJAR _jar = jEdit.getPluginJAR(					dependents[i]);				if(_jar != null)				{					unloadPluginJAR(_jar);				}			}			jEdit.removePluginJAR(jar,false);		} //}}}	} //}}}	//{{{ TextRenderer class	class TextRenderer extends DefaultTableCellRenderer	{		private DefaultTableCellRenderer tcr;		public TextRenderer(DefaultTableCellRenderer tcr)		{			this.tcr = tcr;		}		public Component getTableCellRendererComponent(JTable table, Object value,			boolean isSelected, boolean hasFocus, int row, int column)		{			Entry entry = pluginModel.getEntry(row);			if (entry.status.equals(Entry.ERROR))				tcr.setForeground(Color.red);			else				tcr.setForeground(UIManager.getColor("Table.foreground"));			return tcr.getTableCellRendererComponent(table,value,isSelected,false,row,column);		}	} //}}}	//{{{ HideLibrariesButton class	class HideLibrariesButton extends JCheckBox implements ActionListener	{		HideLibrariesButton()		{			super(jEdit.getProperty("plugin-manager.hide-libraries"));			setSelected(jEdit.getBooleanProperty(				"plugin-manager.hide-libraries.toggle"));			addActionListener(this);		}		public void actionPerformed(ActionEvent evt)		{			jEdit.setBooleanProperty(				"plugin-manager.hide-libraries.toggle",				isSelected());			ManagePanel.this.update();		}	} //}}}	//{{{ RemoveButton class	class RemoveButton extends JButton implements ListSelectionListener, ActionListener	{		public RemoveButton()		{			super(jEdit.getProperty("manage-plugins.remove"));			table.getSelectionModel().addListSelectionListener(this);			addActionListener(this);			setEnabled(false);		}		public void actionPerformed(ActionEvent evt)		{			int[] selected = table.getSelectedRows();			Vector listModel = new Vector();			Roster roster = new Roster();			for(int i = 0; i < selected.length; i++)			{				Entry entry = pluginModel.getEntry(selected[i]);				Iterator iter = entry.jars.iterator();				while(iter.hasNext())				{					String jar = (String)iter.next();					listModel.addElement(jar);					roster.addRemove(jar);				}			}			int button = showListConfirm(				"plugin-manager.remove-confirm",				null,listModel);			if(button == JOptionPane.YES_OPTION)			{				roster.performOperationsInAWTThread(window);				pluginModel.update();			}		}		public void valueChanged(ListSelectionEvent e)		{			if (table.getSelectedRowCount() == 0)				setEnabled(false);			else				setEnabled(true);		}	} //}}}	//{{{ HelpButton class	class HelpButton extends JButton implements ListSelectionListener, ActionListener	{		private URL docURL;		public HelpButton()		{			super(jEdit.getProperty("manage-plugins.help"));			table.getSelectionModel().addListSelectionListener(this);			addActionListener(this);			setEnabled(false);		}		public void actionPerformed(ActionEvent evt)		{			new HelpViewer(docURL);		}		public void valueChanged(ListSelectionEvent e)		{			if (table.getSelectedRowCount() == 1)			{				try				{					Entry entry = pluginModel.getEntry(table.getSelectedRow());					String label = entry.clazz;					String docs = entry.docs;					PluginJAR jar = jEdit.getPlugin(label)						.getPluginJAR();					if(jar != null && label != null && docs != null)					{						URL url = jar.getClassLoader()							.getResource(docs);						if(url != null)						{							docURL = url;							setEnabled(true);							return;						}					}				}				catch (Exception ex) {}			}			setEnabled(false);		}	} //}}}	//{{{ EntryCompare class	static class EntryCompare implements Comparator	{		public static final int NAME = 1;		public static final int STATUS = 2;		private int type;		public EntryCompare(int type)		{			this.type = type;		}		public int compare(Object o1, Object o2)		{			Entry e1 = (Entry)o1;			Entry e2 = (Entry)o2;			if (type == NAME)				return compareNames(e1,e2);			else			{				int result;				if ((result = e1.status.compareToIgnoreCase(e2.status)) == 0)					return compareNames(e1,e2);				return result;			}		}		private int compareNames(Entry e1, Entry e2)		{			String s1, s2;			if(e1.name == null)				s1 = MiscUtilities.getFileName(e1.jar);			else				s1 = e1.name;			if(e2.name == null)				s2 = MiscUtilities.getFileName(e2.jar);			else				s2 = e2.name;			return s1.compareToIgnoreCase(s2);		}	} //}}}	//{{{ HeaderMouseHandler class	class HeaderMouseHandler extends MouseAdapter	{		public void mouseClicked(MouseEvent evt)		{			switch(table.getTableHeader().columnAtPoint(evt.getPoint()))			{				case 1:					pluginModel.setSortType(EntryCompare.NAME);					break;				case 3:					pluginModel.setSortType(EntryCompare.STATUS);					break;				default:					break;			}		}	} //}}}	//}}}}

⌨️ 快捷键说明

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