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

📄 localeutilswt.java

📁 java 文件下载器。可自定义
💻 JAVA
字号:
// 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:   LocaleUtilSWT.java

package org.gudy.azureus2.ui.swt;

import com.aelitis.azureus.core.AzureusCore;
import java.util.ArrayList;
import java.util.Arrays;
import org.eclipse.swt.events.*;
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.*;
import org.gudy.azureus2.core3.util.AERunnable;
import org.gudy.azureus2.core3.util.Debug;
import org.gudy.azureus2.ui.swt.components.shell.ShellFactory;

// Referenced classes of package org.gudy.azureus2.ui.swt:
//			Messages, Utils

public class LocaleUtilSWT
	implements LocaleUtilListener
{

	protected static boolean rememberEncodingDecision = true;
	protected static LocaleUtilDecoder rememberedDecoder = null;
	protected static Object remembered_on_behalf_of;

	public LocaleUtilSWT(AzureusCore core)
	{
		LocaleTorrentUtil.addListener(this);
	}

	public LocaleUtilDecoderCandidate selectDecoder(LocaleUtil locale_util, Object decision_owner, LocaleUtilDecoderCandidate candidates[])
		throws LocaleUtilEncodingException
	{
		if (decision_owner != remembered_on_behalf_of)
		{
			remembered_on_behalf_of = decision_owner;
			rememberedDecoder = null;
		}
		if (rememberEncodingDecision && rememberedDecoder != null)
		{
			for (int i = 0; i < candidates.length; i++)
				if (candidates[i].getValue() != null && rememberedDecoder == candidates[i].getDecoder())
					return candidates[i];

		}
		LocaleUtilDecoderCandidate default_candidate = candidates[0];
		String defaultString = candidates[0].getValue();
		Arrays.sort(candidates);
		boolean always_prompt = COConfigurationManager.getBooleanParameter("File.Decoder.Prompt", false);
		if (!always_prompt)
		{
			int minlength = candidates[0].getValue().length();
			if (defaultString != null && defaultString.length() == minlength)
				return null;
			String default_name = COConfigurationManager.getStringParameter("File.Decoder.Default", "");
			if (default_name.length() > 0)
			{
				for (int i = 0; i < candidates.length; i++)
					if (candidates[i].getValue() != null && candidates[i].getDecoder().getName().equals(default_name))
						return candidates[i];

			}
		}
		ArrayList choosableCandidates = new ArrayList();
		if (defaultString != null)
			choosableCandidates.add(default_candidate);
		LocaleUtilDecoder general_decoders[] = locale_util.getGeneralDecoders();
label0:
		for (int j = 0; j < general_decoders.length; j++)
		{
			int i = 0;
			do
			{
				if (i >= candidates.length)
					continue label0;
				if (candidates[i].getValue() != null && candidates[i].getDecoder() != null && general_decoders[j] != null && general_decoders[j].getName().equals(candidates[i].getDecoder().getName()) && !choosableCandidates.contains(candidates[i]))
				{
					choosableCandidates.add(candidates[i]);
					continue label0;
				}
				i++;
			} while (true);
		}

		for (int i = 0; i < candidates.length; i++)
			if (candidates[i].getValue() != null && candidates[i].getDecoder() != null && !choosableCandidates.contains(candidates[i]))
				choosableCandidates.add(candidates[i]);

		final LocaleUtilDecoderCandidate candidatesToChoose[] = (LocaleUtilDecoderCandidate[])(LocaleUtilDecoderCandidate[])choosableCandidates.toArray(new LocaleUtilDecoderCandidate[choosableCandidates.size()]);
		final LocaleUtilDecoderCandidate selected_candidate[] = {
			null
		};
		Utils.execSWTThread(new AERunnable() {

			final LocaleUtilDecoderCandidate val$candidatesToChoose[];
			final LocaleUtilDecoderCandidate val$selected_candidate[];
			final LocaleUtilSWT this$0;

			public void runSupport()
			{
				try
				{
					showChoosableEncodingWindow(Utils.findAnyShell(), candidatesToChoose, selected_candidate);
				}
				catch (Throwable e)
				{
					Debug.printStackTrace(e);
				}
			}

			
			{
				this$0 = LocaleUtilSWT.this;
				candidatesToChoose = alocaleutildecodercandidate;
				selected_candidate = alocaleutildecodercandidate1;
				super();
			}
		}, false);
		if (selected_candidate[0] == null)
			throw new LocaleUtilEncodingException(true);
		else
			return selected_candidate[0];
	}

	private void showChoosableEncodingWindow(Shell shell, final LocaleUtilDecoderCandidate candidates[], final LocaleUtilDecoderCandidate selected_candidate[])
	{
		final Shell s = ShellFactory.createShell(shell, 34928);
		Utils.setShellIcon(s);
		s.setText(MessageText.getString("LocaleUtil.title"));
		s.setLayout(new GridLayout(1, true));
		Label label = new Label(s, 16384);
		Messages.setLanguageText(label, "LocaleUtil.label.chooseencoding");
		final Table table = new Table(s, 0x10a04);
		GridData gridData = new GridData(1808);
		table.setLayoutData(gridData);
		table.setLinesVisible(true);
		table.setHeaderVisible(true);
		String titlesPieces[] = {
			"encoding", "text"
		};
		for (int i = 0; i < titlesPieces.length; i++)
		{
			TableColumn column = new TableColumn(table, 16384);
			Messages.setLanguageText(column, (new StringBuilder()).append("LocaleUtil.column.").append(titlesPieces[i]).toString());
		}

		for (int i = 0; i < candidates.length; i++)
		{
			TableItem item = new TableItem(table, 0);
			String name = candidates[i].getDecoder().getName();
			item.setText(0, name);
			item.setText(1, candidates[i].getValue());
		}

		int lastSelectedIndex = 0;
		int i = 1;
		do
		{
			if (i >= candidates.length)
				break;
			if (candidates[i].getValue() != null && candidates[i].getDecoder() == rememberedDecoder)
			{
				lastSelectedIndex = i;
				break;
			}
			i++;
		} while (true);
		table.select(lastSelectedIndex);
		table.getColumn(0).pack();
		table.getColumn(1).pack();
		label = new Label(s, 16384);
		Messages.setLanguageText(label, "LocaleUtil.label.hint.doubleclick");
		Composite composite = new Composite(s, 0);
		gridData = new GridData(768);
		composite.setLayoutData(gridData);
		GridLayout subLayout = new GridLayout();
		subLayout.numColumns = 2;
		composite.setLayout(subLayout);
		final Button checkBox = new Button(composite, 32);
		checkBox.setLayoutData(new GridData(32));
		checkBox.setSelection(rememberEncodingDecision);
		Messages.setLanguageText(checkBox, "LocaleUtil.label.checkbox.rememberdecision");
		Button ok = new Button(composite, 8);
		ok.setText(" ".concat(MessageText.getString("Button.next")).concat(" "));
		gridData = new GridData(3);
		gridData.widthHint = 100;
		ok.setLayoutData(gridData);
		s.setSize(500, 500);
		s.layout();
		Utils.centreWindow(s);
		ok.addSelectionListener(new SelectionAdapter() {

			final Shell val$s;
			final Table val$table;
			final Button val$checkBox;
			final LocaleUtilDecoderCandidate val$candidates[];
			final LocaleUtilDecoderCandidate val$selected_candidate[];
			final LocaleUtilSWT this$0;

			public void widgetSelected(SelectionEvent event)
			{
				setSelectedIndex(s, table, checkBox, candidates, selected_candidate);
				s.dispose();
			}

			
			{
				this$0 = LocaleUtilSWT.this;
				s = shell;
				table = table1;
				checkBox = button;
				candidates = alocaleutildecodercandidate;
				selected_candidate = alocaleutildecodercandidate1;
				super();
			}
		});
		table.addMouseListener(new MouseAdapter() {

			final Shell val$s;
			final Table val$table;
			final Button val$checkBox;
			final LocaleUtilDecoderCandidate val$candidates[];
			final LocaleUtilDecoderCandidate val$selected_candidate[];
			final LocaleUtilSWT this$0;

			public void mouseDoubleClick(MouseEvent mEvent)
			{
				setSelectedIndex(s, table, checkBox, candidates, selected_candidate);
				s.dispose();
			}

			
			{
				this$0 = LocaleUtilSWT.this;
				s = shell;
				table = table1;
				checkBox = button;
				candidates = alocaleutildecodercandidate;
				selected_candidate = alocaleutildecodercandidate1;
				super();
			}
		});
		s.open();
		do
		{
			if (s.isDisposed())
				break;
			if (!s.getDisplay().readAndDispatch())
				s.getDisplay().sleep();
		} while (true);
	}

	private void setSelectedIndex(Shell s, Table table, Button checkBox, LocaleUtilDecoderCandidate candidates[], LocaleUtilDecoderCandidate selected_candidate[])
	{
		int selectedIndex = table.getSelectionIndex();
		if (-1 == selectedIndex)
			return;
		rememberEncodingDecision = checkBox.getSelection();
		selected_candidate[0] = candidates[selectedIndex];
		if (rememberEncodingDecision)
			rememberedDecoder = selected_candidate[0].getDecoder();
		else
			rememberedDecoder = null;
		s.dispose();
	}

	private void abandonSelection(Shell s)
	{
		s.dispose();
	}



}

⌨️ 快捷键说明

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