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

📄 functionsignaturelistener.java

📁 Python Development Environment (Python IDE plugin for Eclipse). Features editor, code completion, re
💻 JAVA
字号:
package org.python.pydev.refactoring.ui.pages.listener;

import java.util.Arrays;
import java.util.Iterator;
import java.util.List;

import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableItem;
import org.python.pydev.refactoring.ui.controls.LabeledEdit;
import org.python.pydev.refactoring.ui.model.table.SimpleTableItem;

public class FunctionSignatureListener implements Listener {

	private final String METHODDEF = "def ";

	private final String OPENBRACKET = "(";

	private final String CLOSEBRACKET = ")";

	private Table argumentTable;

	private Label signatureLabel;

	private LabeledEdit functionNameEdit;

	private IValidationPage page;

	public FunctionSignatureListener(IValidationPage page, Label signature, LabeledEdit functionNameEdit, Table argumentTable) {
		this.page = page;
		this.signatureLabel = signature;
		this.functionNameEdit = functionNameEdit;
		this.argumentTable = argumentTable;
	}

	private void updateSignature() {
		if (functionNameEdit.getEdit().getText().length() == 0) {
			return;
		}

		StringBuilder signature = new StringBuilder();

		signature.append(METHODDEF);
		signature.append(this.functionNameEdit.getEdit().getText());
		signature.append(OPENBRACKET);

		initArguments(signature);
		signature.append(CLOSEBRACKET);

		signatureLabel.setText(signature.toString());
	}

	private void initArguments(StringBuilder signature) {
		if (this.argumentTable != null) {
			List<TableItem> items = Arrays.asList(argumentTable.getItems());
			Iterator<TableItem> iter = items.iterator();
			while (iter.hasNext()) {
				TableItem item = iter.next();
				if (item instanceof SimpleTableItem) {
					signature.append(item.getText());
					if (iter.hasNext())
						signature.append(", ");
				}
			}
		}
	}

	public void handleEvent(Event event) {
		if (page.isPageComplete()) {
			updateSignature();
		}
	}
}

⌨️ 快捷键说明

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