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

📄 wizard.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:   Wizard.java

package org.gudy.azureus2.ui.swt.wizard;

import com.aelitis.azureus.core.AzureusCore;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.swt.events.DisposeEvent;
import org.eclipse.swt.events.DisposeListener;
import org.eclipse.swt.graphics.*;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.*;
import org.gudy.azureus2.core3.internat.MessageText;
import org.gudy.azureus2.core3.util.AERunnable;
import org.gudy.azureus2.core3.util.Debug;
import org.gudy.azureus2.ui.swt.Messages;
import org.gudy.azureus2.ui.swt.Utils;
import org.gudy.azureus2.ui.swt.components.shell.ShellFactory;

// Referenced classes of package org.gudy.azureus2.ui.swt.wizard:
//			IWizardPanel, WizardListener

public class Wizard
{

	private static final int DEFAULT_WIDTH = 500;
	List listeners;
	AzureusCore azureus_core;
	Display display;
	Shell wizardWindow;
	Label title;
	Label currentInfo;
	Label errorMessage;
	IWizardPanel currentPanel;
	Composite panel;
	Font titleFont;
	protected Button previous;
	protected Button next;
	protected Button finish;
	protected Button cancel;
	Listener closeCatcher = new Listener() {

		final Wizard this$0;

		public void handleEvent(Event event)
		{
			event.doit = false;
		}

			
			{
				this$0 = Wizard.this;
				super();
			}
	};
	int wizardHeight;

	public Wizard(AzureusCore azureus_core, String keyTitle, boolean modal)
	{
		this(azureus_core, modal);
		setTitleKey(keyTitle);
	}

	public Wizard(AzureusCore azureus_core, String keyTitle)
	{
		this(azureus_core, keyTitle, false);
	}

	public Wizard(AzureusCore _azureus_core, boolean modal)
	{
		listeners = new ArrayList();
		azureus_core = _azureus_core;
		int style = 2160;
		if (modal)
			style |= 0x10000;
		wizardWindow = ShellFactory.createMainShell(style);
		display = wizardWindow.getDisplay();
		GridLayout layout = new GridLayout();
		layout.numColumns = 1;
		layout.horizontalSpacing = 0;
		layout.verticalSpacing = 0;
		layout.marginHeight = 0;
		layout.marginWidth = 0;
		wizardWindow.setLayout(layout);
		Utils.setShellIcon(wizardWindow);
		Composite cTitle = new Composite(wizardWindow, 0);
		org.eclipse.swt.graphics.Color white = display.getSystemColor(1);
		cTitle.setBackground(white);
		GridData gridData = new GridData(768);
		cTitle.setLayoutData(gridData);
		GridLayout titleLayout = new GridLayout();
		titleLayout.numColumns = 1;
		cTitle.setLayout(titleLayout);
		title = new Label(cTitle, 0);
		title.setBackground(white);
		gridData = new GridData(768);
		title.setLayoutData(gridData);
		Font font = title.getFont();
		FontData data[] = font.getFontData();
		for (int i = 0; i < data.length; i++)
			data[i].setStyle(1);

		titleFont = new Font(display, data);
		title.setFont(titleFont);
		currentInfo = new Label(cTitle, 0);
		gridData = new GridData(768);
		currentInfo.setLayoutData(gridData);
		currentInfo.setBackground(white);
		errorMessage = new Label(cTitle, 0);
		gridData = new GridData(768);
		errorMessage.setLayoutData(gridData);
		errorMessage.setBackground(white);
		org.eclipse.swt.graphics.Color red = display.getSystemColor(3);
		errorMessage.setForeground(red);
		gridData = new GridData(768);
		(new Label(wizardWindow, 258)).setLayoutData(gridData);
		panel = new Composite(wizardWindow, 0);
		gridData = new GridData(1808);
		panel.setLayoutData(gridData);
		gridData = new GridData(768);
		(new Label(wizardWindow, 258)).setLayoutData(gridData);
		Composite cButtons = new Composite(wizardWindow, 0);
		gridData = new GridData(768);
		cButtons.setLayoutData(gridData);
		GridLayout layoutButtons = new GridLayout();
		layoutButtons.numColumns = 5;
		cButtons.setLayout(layoutButtons);
		gridData = new GridData(768);
		(new Label(cButtons, 0)).setLayoutData(gridData);
		cancel = new Button(cButtons, 8);
		gridData = new GridData();
		gridData.widthHint = 90;
		gridData.horizontalAlignment = 2;
		cancel.setLayoutData(gridData);
		Messages.setLanguageText(cancel, "Button.cancel");
		previous = new Button(cButtons, 8);
		gridData = new GridData();
		gridData.widthHint = 90;
		gridData.horizontalAlignment = 3;
		previous.setLayoutData(gridData);
		Messages.setLanguageText(previous, "wizard.previous");
		next = new Button(cButtons, 8);
		gridData = new GridData();
		gridData.widthHint = 90;
		gridData.horizontalAlignment = 1;
		next.setLayoutData(gridData);
		Messages.setLanguageText(next, "wizard.next");
		finish = new Button(cButtons, 8);
		gridData = new GridData();
		gridData.widthHint = 90;
		gridData.horizontalAlignment = 2;
		finish.setLayoutData(gridData);
		Messages.setLanguageText(finish, "wizard.finish");
		previous.addListener(13, new Listener() {

			final Wizard this$0;

			public void handleEvent(Event arg0)
			{
				clearPanel();
				currentPanel = currentPanel.getPreviousPanel();
				refresh();
			}

			
			{
				this$0 = Wizard.this;
				super();
			}
		});
		next.addListener(13, new Listener() {

			final Wizard this$0;

			public void handleEvent(Event arg0)
			{
				IWizardPanel nextPanel = currentPanel.getNextPanel();
				clearPanel();
				currentPanel = nextPanel;
				refresh();
			}

			
			{
				this$0 = Wizard.this;
				super();
			}
		});
		finish.addListener(13, new Listener() {

			final Wizard this$0;

			public void handleEvent(Event arg0)
			{
				finishSelected();
			}

			
			{
				this$0 = Wizard.this;
				super();
			}
		});
		cancel.addListener(13, new Listener() {

			final Wizard this$0;

			public void handleEvent(Event arg0)
			{
				wizardWindow.dispose();
			}

			
			{
				this$0 = Wizard.this;
				super();
			}
		});
		wizardWindow.addDisposeListener(new DisposeListener() {

			final Wizard this$0;

			public void widgetDisposed(DisposeEvent de)
			{
				onClose();
			}

			
			{
				this$0 = Wizard.this;
				super();
			}
		});
		wizardWindow.addListener(31, new Listener() {

			final Wizard this$0;

			public void handleEvent(Event e)
			{
				if (e.character == '\033' && cancel.isEnabled())
					wizardWindow.dispose();
			}

			
			{
				this$0 = Wizard.this;
				super();
			}
		});
		wizardHeight = wizardWindow.computeSize(500, -1).y - 50;
		wizardWindow.setSize(500, 400);
	}

	private void finishSelected()
	{
		if (currentPanel.isFinishSelectionOK())
		{
			wizardWindow.addListener(21, closeCatcher);
			clearPanel();
			currentPanel = currentPanel.getFinishPanel();
			refresh();
			currentPanel.finish();
		}
	}

	private void clearPanel()
	{
		Control controls[] = panel.getChildren();
		for (int i = 0; i < controls.length; i++)
			if (controls[i] != null && !controls[i].isDisposed())
				controls[i].dispose();

		setTitle("");
		setCurrentInfo("");
	}

	private void refresh()
	{
		if (currentPanel == null)
		{
			setDefaultButton();
			return;
		} else
		{
			previous.setEnabled(currentPanel.isPreviousEnabled());
			next.setEnabled(currentPanel.isNextEnabled());
			finish.setEnabled(currentPanel.isFinishEnabled());
			setDefaultButton();
			currentPanel.show();
			panel.layout();
			panel.redraw();
			insureSize();
			return;
		}
	}

	private void setDefaultButton()
	{
		if (!wizardWindow.isDisposed())
			display.asyncExec(new AERunnable() {

				final Wizard this$0;

				public void runSupport()
				{
					if (!wizardWindow.isDisposed())
					{
						Button default_button = null;
						if (next.isEnabled())
							default_button = next;
						else
						if (finish.isEnabled())
							default_button = finish;
						else
						if (previous.isEnabled())
							default_button = previous;
						else
						if (cancel.isEnabled())
							default_button = cancel;
						if (default_button != null)
							wizardWindow.setDefaultButton(default_button);
					}
				}

			
			{
				this$0 = Wizard.this;
				super();
			}
			});
	}

	public Composite getPanel()
	{
		return panel;
	}

	public void setTitle(String title)
	{
		this.title.setText(title);
	}

	public void setTitleAsResourceID(String id)
	{
		Messages.setLanguageText(title, id);
	}

	public void setCurrentInfo(String currentInfo)
	{
		this.currentInfo.setText((new StringBuilder()).append("\t").append(currentInfo).toString());
	}

	public void setErrorMessage(String errorMessage)
	{
		this.errorMessage.setText(errorMessage);
	}

	public void setTitleKey(String key)
	{
		Messages.setLanguageText(wizardWindow, key);
	}

	public void setNextEnabled(boolean enabled)
	{
		next.setEnabled(enabled);
		setDefaultButton();
	}

	public void setPreviousEnabled(boolean enabled)
	{
		previous.setEnabled(enabled);
		setDefaultButton();
	}

	public void setFinishEnabled(boolean enabled)
	{
		finish.setEnabled(enabled);
		setDefaultButton();
	}

	public void setFirstPanel(IWizardPanel panel)
	{
		currentPanel = panel;
		refresh();
		insureSize();
		Utils.centreWindow(wizardWindow);
		wizardWindow.open();
		do
		{
			if (wizardWindow.isDisposed())
				break;
			try
			{
				if (!display.readAndDispatch())
					display.sleep();
			}
			catch (Exception e)
			{
				Debug.out(e);
			}
		} while (true);
	}

	public Shell getWizardWindow()
	{
		return wizardWindow;
	}

	public String getErrorMessage()
	{
		return errorMessage.getText();
	}

	public Display getDisplay()
	{
		return display;
	}

	public void switchToClose()
	{
		if (!wizardWindow.isDisposed())
			display.asyncExec(new AERunnable() {

				final Wizard this$0;

				public void runSupport()
				{
					if (closeCatcher != null && wizardWindow != null && !wizardWindow.isDisposed())
					{
						wizardWindow.removeListener(21, closeCatcher);
						cancel.setText(MessageText.getString("wizard.close"));
						cancel.setEnabled(true);
						setDefaultButton();
					}
				}

			
			{
				this$0 = Wizard.this;
				super();
			}
			});
	}

	public void onClose()
	{
		if (titleFont != null && !titleFont.isDisposed())
		{
			titleFont.dispose();
			titleFont = null;
		}
		for (int i = 0; i < listeners.size(); i++)
			((WizardListener)listeners.get(i)).closed();

	}

	public IWizardPanel getCurrentPanel()
	{
		return currentPanel;
	}

	private void insureSize()
	{
		Point p = panel.computeSize(wizardWindow.getSize().x, -1);
		int height = p.y + wizardHeight;
		if (height > wizardWindow.getSize().y)
			wizardWindow.setSize(p.x, height);
	}

	public AzureusCore getAzureusCore()
	{
		return azureus_core;
	}

	public void addListener(WizardListener l)
	{
		if (wizardWindow.isDisposed() && closeCatcher != null)
			l.closed();
		listeners.add(l);
	}

	public void removeListener(WizardListener l)
	{
		listeners.remove(l);
	}




}

⌨️ 快捷键说明

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