package crazypants.enderio.conduit.gui;
import crazypants.enderio.conduit.IConduit;
import crazypants.enderio.conduit.gas.IGasConduit;
import crazypants.enderio.conduit.gui.item.ItemSettings;
import crazypants.enderio.conduit.item.IItemConduit;
import crazypants.enderio.conduit.liquid.ILiquidConduit;
import crazypants.enderio.conduit.me.IMEConduit;
import crazypants.enderio.conduit.power.IPowerConduit;
import crazypants.enderio.conduit.redstone.IRedstoneConduit;
import crazypants.enderio.gui.ITabPanel;
public class TabFactory {
public static final TabFactory instance = new TabFactory();
private TabFactory() {
}
public ITabPanel createPanelForConduit(GuiExternalConnection gui, IConduit con) {
Class<? extends IConduit> baseType = con.getBaseConduitType();
if(baseType.isAssignableFrom(IPowerConduit.class)) {
return new PowerSettings(gui, con);
} else if(baseType.isAssignableFrom(ILiquidConduit.class)) {
return new LiquidSettings(gui, con);
} else if(baseType.isAssignableFrom(IItemConduit.class)) {
return new ItemSettings(gui, con);
} else if(baseType.isAssignableFrom(IRedstoneConduit.class)) {
return new RedstoneSettings(gui, con);
} else if(baseType.isAssignableFrom(IGasConduit.class)) {
return new GasSettings(gui, con);
} else if(baseType.isAssignableFrom(IMEConduit.class)) {
return new MESettings(gui, con);
}
return null;
}
}