package plugins;
/*
 * Ѥpluginpluginsѥåľ֤ 
 * package plugins;
 */
import java.awt.Rectangle;
import java.util.HashSet;

/* Reallocatorimport */
import jp.ac.waseda.info.ueda.unyo.customReallocator.Reallocator;

/**
 * ֤Υƥץ졼
 * @author wakako
 *
 */

/* 
 * ѰդƤ᥽å
 * HashSet getConnectedNodes(node, observer) // nodeȥ󥯤ǷҤäNode
 * Object getNthNode(node, i, observer) // iܤΥNode
 * Rectangle getBounds(node) // Node⤵֤
 * int getLinkNum(node) // 󥯿
 * String getName(node) // Node̾
 * boolean isAtom(node) // Nodeȥफɤ
 * move(node, dx, dy) //dx, dy ʬNodeư
 */

public class Template extends Reallocator{

	/**
	 * ֤ŬϰϤꤹ롥
	 * ȤʤnodelinkǷҤänodeΰŬϰϤȤ֤
	 * ⤷nodeƤ֤
	 */
	@Override
	public HashSet<Object> groupNode(Object node, Object observer) {
		/*
		 * getConnectedNodes᥽åɤNodeȥ󥯤ǷҤä
		 * NodeǤ롥(ʬȤϴޤޤʤ)
		 * ʲϡ󥯤ǷҤäNodeƤŬϰϤȤ硥
		 */
//		HashSet nodeSet = new HashSet();
//		HashSet nthSet = getConnectedNodes(node, observer);
//		return nthSet;
	}
	
	/**
	 * ꤵ줿nodeȤnodeȰۤʤ硤false֤
	 */
	@Override
	public boolean isBaseNode(Object node, Object observer) {
		return true;
	}

	/**
	 * baseNode˺֤Ԥ
	 */
	@Override
	public void reallocate(Object baseNode, Object observer) {

//		Object nthNode = getNthNode(baseNode, 0, observer);
//		Rectangle rect = getBounds(baseNode);
//		double x = rect.getCenterX();
//		double y = rect.getCenterY();
//
//		Rectangle nthRect = getBounds(nthNode);
//		move(nthNode, x - nthRect.getCenterX(), y - nthRect.getCenterY());

	}
	
	/**
	 * typeName֤
	 */
	@Override
	public String typeName() {
//		return "typeName";
	}

	/**
	 * ̾ϳؤȤ硤true֤
	 */
	@Override
	public boolean useDefaultFource() {
		return false;
	}

}
