Newer
Older
ultramine_private_regions / src / main / java / org / ultramine / gui / ElementLinkedCheckBox.java
@vlad20012 vlad20012 on 29 Mar 2016 1 KB Initial commit
package org.ultramine.gui;

import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;

@SideOnly(Side.CLIENT)
public class ElementLinkedCheckBox extends ElementCheckBox implements ILinkable
{
	private ILinkable previous;
	private ILinkable next;
	
	public ElementLinkedCheckBox(int id, int x, int y)
	{
		super(id, x, y);
	}
	
	public ElementLinkedCheckBox(int id, int x, int y, String str)
	{
		super(id, x, y, str);
	}
	
	@Override
	protected void stateChanged()
	{
		if(isChecked)
		{
			if(previous != null)	previous.otherElementAction(this, PREV);
			if(next != null)		next.otherElementAction(this, NEXT);
		}
	}

	@Override
	public boolean linkTo(ILinkable to)
	{
		if(!(to instanceof ElementLinkedCheckBox)) return false;
		next = to;
		to.setPrevious(this);
		return true;
	}

	@Override
	public void setPrevious(ILinkable to)
	{
		previous = to;
	}

	@Override
	public ILinkable getPrevious()
	{
		return previous;
	}

	@Override
	public ILinkable getNext()
	{
		return next;
	}

	@Override
	public void otherElementAction(ILinkable element, int side)
	{
		isChecked = false;
		if(side == PREV && previous != null)	previous.otherElementAction(this, PREV);
		if(side == NEXT && next != null)		next.otherElementAction(this, NEXT);
	}

}