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

📄 configsectionipfilter.java

📁 java 文件下载器。可自定义
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi space 
// Source File Name:   ConfigSectionIPFilter.java

package org.gudy.azureus2.ui.swt.views.configsections;

import com.aelitis.azureus.core.AzureusCore;
import com.aelitis.azureus.ui.swt.imageloader.ImageLoader;
import java.io.File;
import java.util.Arrays;
import java.util.Comparator;
import org.eclipse.swt.events.MouseAdapter;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.*;
import org.gudy.azureus2.core3.config.COConfigurationManager;
import org.gudy.azureus2.core3.internat.MessageText;
import org.gudy.azureus2.core3.ipfilter.*;
import org.gudy.azureus2.core3.logging.LogAlert;
import org.gudy.azureus2.core3.logging.Logger;
import org.gudy.azureus2.core3.util.AERunnable;
import org.gudy.azureus2.core3.util.DisplayFormatters;
import org.gudy.azureus2.ui.swt.Messages;
import org.gudy.azureus2.ui.swt.Utils;
import org.gudy.azureus2.ui.swt.config.*;
import org.gudy.azureus2.ui.swt.plugins.UISWTConfigSection;

public class ConfigSectionIPFilter
	implements UISWTConfigSection
{
	class FilterComparator
		implements Comparator
	{

		boolean ascending;
		static final int FIELD_NAME = 0;
		static final int FIELD_START_IP = 1;
		static final int FIELD_END_IP = 2;
		int field;
		final ConfigSectionIPFilter this$0;

		public int compare(Object arg0, Object arg1)
		{
			IpRange range0 = (IpRange)arg0;
			IpRange range1 = (IpRange)arg1;
			if (field == 0)
				return (ascending ? 1 : -1) * range0.compareDescription(range1);
			if (field == 1)
				return (ascending ? 1 : -1) * range0.compareStartIpTo(range1);
			if (field == 2)
				return (ascending ? 1 : -1) * range0.compareEndIpTo(range1);
			else
				return 0;
		}

		public void setField(int newField)
		{
			if (field == newField)
				ascending = !ascending;
			field = newField;
		}

		FilterComparator()
		{
			this$0 = ConfigSectionIPFilter.this;
			super();
			ascending = true;
			field = 1;
		}
	}


	AzureusCore azureus_core;
	IpFilter filter;
	Table table;
	boolean noChange;
	FilterComparator comparator;
	private boolean bIsCachingDescriptions;
	IpRange ipRanges[];
	Label percentage_blocked;
	private IPFilterListener filterListener;

	public ConfigSectionIPFilter(AzureusCore _azureus_core)
	{
		bIsCachingDescriptions = false;
		azureus_core = _azureus_core;
		comparator = new FilterComparator();
	}

	public String configSectionGetParentSection()
	{
		return "root";
	}

	public String configSectionGetName()
	{
		return "ipfilter";
	}

	public void configSectionSave()
	{
		try
		{
			if (filter != null)
				filter.save();
		}
		catch (Exception e)
		{
			Logger.log(new LogAlert(false, "Save of filter file fails", e));
		}
	}

	public int maxUserMode()
	{
		return 1;
	}

	public void configSectionDelete()
	{
		if (bIsCachingDescriptions)
		{
			IpFilterManager ipFilterManager = azureus_core.getIpFilterManager();
			ipFilterManager.clearDescriptionCache();
			bIsCachingDescriptions = false;
		}
		if (filter != null)
			filter.removeListener(filterListener);
		ImageLoader imageLoader = ImageLoader.getInstance();
		imageLoader.releaseImage("openFolderButton");
		imageLoader.releaseImage("subitem");
	}

	public Composite configSectionCreate(final Composite parent)
	{
		ImageLoader imageLoader = ImageLoader.getInstance();
		Image imgOpenFolder = imageLoader.getImage("openFolderButton");
		int userMode = COConfigurationManager.getIntParameter("User Mode");
		final IpFilterManager ipFilterManager = azureus_core.getIpFilterManager();
		filter = ipFilterManager.getIPFilter();
		Composite gFilter = new Composite(parent, 0);
		GridLayout layout = new GridLayout();
		layout.marginHeight = 0;
		layout.marginWidth = 0;
		gFilter.setLayout(layout);
		GridData gridData = new GridData(272);
		gFilter.setLayoutData(gridData);
		gridData = new GridData();
		BooleanParameter enabled = new BooleanParameter(gFilter, "Ip Filter Enabled");
		enabled.setLayoutData(gridData);
		Messages.setLanguageText(enabled.getControl(), "ConfigView.section.ipfilter.enable");
		gridData = new GridData();
		BooleanParameter deny = new BooleanParameter(gFilter, "Ip Filter Allow");
		deny.setLayoutData(gridData);
		Messages.setLanguageText(deny.getControl(), "ConfigView.section.ipfilter.allow");
		deny.addChangeListener(new ParameterChangeAdapter() {

			final ConfigSectionIPFilter this$0;

			public void parameterChanged(Parameter p, boolean caused_internally)
			{
				setPercentageBlocked();
			}

			
			{
				this$0 = ConfigSectionIPFilter.this;
				super();
			}
		});
		gridData = new GridData();
		BooleanParameter persist_bad_data_banning = new BooleanParameter(gFilter, "Ip Filter Banning Persistent");
		persist_bad_data_banning.setLayoutData(gridData);
		Messages.setLanguageText(persist_bad_data_banning.getControl(), "ConfigView.section.ipfilter.persistblocking");
		Group gBlockBanning = new Group(gFilter, 0);
		Messages.setLanguageText(gBlockBanning, "ConfigView.section.ipfilter.peerblocking.group");
		layout = new GridLayout();
		layout.numColumns = 2;
		gBlockBanning.setLayout(layout);
		BooleanParameter enable_bad_data_banning = new BooleanParameter(gBlockBanning, "Ip Filter Enable Banning", "ConfigView.section.ipfilter.enablebanning");
		gridData = new GridData();
		gridData.horizontalSpan = 2;
		enable_bad_data_banning.setLayoutData(gridData);
		Label discard_label = new Label(gBlockBanning, 0);
		Messages.setLanguageText(discard_label, "ConfigView.section.ipfilter.discardbanning");
		FloatParameter discard_ratio = new FloatParameter(gBlockBanning, "Ip Filter Ban Discard Ratio");
		gridData = new GridData();
		gridData.widthHint = 30;
		discard_ratio.setLayoutData(gridData);
		Composite cIndent = new Composite(gBlockBanning, 0);
		gridData = new GridData(1808);
		gridData.horizontalSpan = 2;
		gridData.horizontalIndent = 15;
		cIndent.setLayoutData(gridData);
		layout = new GridLayout(3, false);
		layout.marginHeight = 0;
		layout.marginWidth = 0;
		cIndent.setLayout(layout);
		Image img = imageLoader.getImage("subitem");
		Label label = new Label(cIndent, 0);
		gridData = new GridData(2);
		label.setLayoutData(gridData);
		label.setImage(img);
		Label discard_min_label = new Label(cIndent, 0);
		Messages.setLanguageText(discard_min_label, "ConfigView.section.ipfilter.discardminkb", new String[] {
			DisplayFormatters.getUnit(1)
		});
		IntParameter discard_min = new IntParameter(cIndent, "Ip Filter Ban Discard Min KB");
		gridData = new GridData();
		gridData.widthHint = 30;
		discard_min.setLayoutData(gridData);
		Label block_label = new Label(gBlockBanning, 0);
		Messages.setLanguageText(block_label, "ConfigView.section.ipfilter.blockbanning");
		IntParameter block_banning = new IntParameter(gBlockBanning, "Ip Filter Ban Block Limit");
		gridData = new GridData();
		gridData.widthHint = 30;
		block_banning.setLayoutData(gridData);
		enable_bad_data_banning.setAdditionalActionPerformer(new ChangeSelectionActionPerformer(new Control[] {
			block_banning.getControl(), block_label, discard_ratio.getControl(), discard_label, discard_min.getControl(), discard_min_label
		}));
		Group gAutoLoad = new Group(gFilter, 0);
		Messages.setLanguageText(gAutoLoad, "ConfigView.section.ipfilter.autoload.group");
		layout = new GridLayout();
		layout.numColumns = 4;
		gAutoLoad.setLayout(layout);
		gAutoLoad.setLayoutData(new GridData(256));
		String sCurConfigID = "Ip Filter Autoload File";
		Label lblDefaultDir = new Label(gAutoLoad, 0);
		Messages.setLanguageText(lblDefaultDir, "ConfigView.section.ipfilter.autoload.file");
		lblDefaultDir.setLayoutData(new GridData());
		gridData = new GridData(768);
		gridData.minimumWidth = 50;
		final StringParameter pathParameter = new StringParameter(gAutoLoad, sCurConfigID);
		pathParameter.setLayoutData(gridData);
		Button browse = new Button(gAutoLoad, 8);
		browse.setImage(imgOpenFolder);
		imgOpenFolder.setBackground(browse.getBackground());
		browse.addListener(13, new Listener() {

			final Composite val$parent;
			final StringParameter val$pathParameter;
			final ConfigSectionIPFilter this$0;

			public void handleEvent(Event event)
			{
				FileDialog dialog = new FileDialog(parent.getShell(), 0x10000);
				dialog.setFilterPath(pathParameter.getValue());
				dialog.setText(MessageText.getString("ConfigView.section.ipfilter.autoload.file"));
				dialog.setFilterExtensions(new String[] {
					(new StringBuilder()).append("*.dat").append(File.pathSeparator).append("*.p2p").append(File.pathSeparator).append("*.p2b").append(File.pathSeparator).append("*.txt").toString(), "*.*"
				});
				dialog.setFileName("ipfilter.dat");
				String file = dialog.open();
				if (file != null)
					pathParameter.setValue(file);
			}

			
			{
				this$0 = ConfigSectionIPFilter.this;
				parent = composite;
				pathParameter = stringparameter;
				super();
			}
		});
		browse.setLayoutData(new GridData());
		final Button btnLoadNow = new Button(gAutoLoad, 8);
		Messages.setLanguageText(btnLoadNow, "ConfigView.section.ipfilter.autoload.loadnow");
		btnLoadNow.addListener(13, new Listener() {

			final Button val$btnLoadNow;
			final ConfigSectionIPFilter this$0;

			public void handleEvent(Event event)
			{
				try
				{
					btnLoadNow.getShell().setCursor(btnLoadNow.getDisplay().getSystemCursor(1));
					COConfigurationManager.setParameter("Ip Filter Autoload Last Date", 0);
					filter.reload();
					btnLoadNow.getShell().setCursor(btnLoadNow.getDisplay().getSystemCursor(0));
				}
				catch (Exception e)
				{
					e.printStackTrace();
				}
			}

			
			{
				this$0 = ConfigSectionIPFilter.this;
				btnLoadNow = button;
				super();
			}
		});
		btnLoadNow.setLayoutData(new GridData());
		Label lblAutoLoadInfo = new Label(gAutoLoad, 64);
		Messages.setLanguageText(lblAutoLoadInfo, "ConfigView.section.ipfilter.autoload.info");
		lblAutoLoadInfo.setLayoutData(Utils.getWrappableLabelGridData(4, 0));
		if (userMode > 0)
		{
			gridData = new GridData();
			BooleanParameter enableDesc = new BooleanParameter(gFilter, "Ip Filter Enable Description Cache");
			enableDesc.setLayoutData(gridData);
			Messages.setLanguageText(enableDesc.getControl(), "ConfigView.section.ipfilter.enable.descriptionCache");
		}
		table = new Table(gFilter, 0x10010804);
		String headers[] = {
			"ConfigView.section.ipfilter.description", "ConfigView.section.ipfilter.start", "ConfigView.section.ipfilter.end"
		};
		int sizes[] = {
			110, 110, 110
		};
		int aligns[] = {
			16384, 0x1000000, 0x1000000
		};
		for (int i = 0; i < headers.length; i++)
		{
			TableColumn tc = new TableColumn(table, aligns[i]);
			tc.setText(headers[i]);
			tc.setWidth(sizes[i]);
			Messages.setLanguageText(tc, headers[i]);
		}

		TableColumn columns[] = table.getColumns();
		columns[0].setData(new Integer(0));
		columns[1].setData(new Integer(1));
		columns[2].setData(new Integer(2));
		Listener listener = new Listener() {

			final IpFilterManager val$ipFilterManager;
			final ConfigSectionIPFilter this$0;

			public void handleEvent(Event e)
			{
				TableColumn tc = (TableColumn)e.widget;
				int field = ((Integer)tc.getData()).intValue();
				comparator.setField(field);

⌨️ 快捷键说明

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