package advancedsystemsmanager.flow.elements; import advancedsystemsmanager.client.gui.GuiManager; import advancedsystemsmanager.helpers.CollisionHelper; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class WideNumberBoxList { public List<WideNumberBox> textBoxes = new ArrayList(); public WideNumberBox selectedTextBox; @SideOnly(Side.CLIENT) public void draw(GuiManager gui, int mX, int mY) { Iterator i$ = this.textBoxes.iterator(); while (i$.hasNext()) { WideNumberBox textBox = (WideNumberBox)i$.next(); if (textBox.isVisible()) { int srcTextBoxY = textBox.equals(this.selectedTextBox) ? 177 : 165; gui.drawTexture(textBox.getX(), textBox.getY(), 0, srcTextBoxY, textBox.getWidth(), 12); String str = String.valueOf(textBox.getNumber()); gui.drawString(str, textBox.getX(), textBox.getY() + textBox.getTextY(), textBox.getTextSize(), 16777215); } } } public void onClick(int mX, int mY, int button) { Iterator i$ = this.textBoxes.iterator(); while (i$.hasNext()) { WideNumberBox textBox = (WideNumberBox)i$.next(); if (textBox.isVisible() && CollisionHelper.inBounds(textBox.getX(), textBox.getY(), textBox.getWidth(), 12, mX, mY)) { if (textBox.equals(this.selectedTextBox)) { if (button == 0) { this.selectedTextBox = null; } else { textBox.setNumber(0); this.selectedTextBox.onUpdate(); } } else { this.selectedTextBox = textBox; } break; } } } @SideOnly(Side.CLIENT) public boolean onKeyStroke(GuiManager gui, char c, int k) { if (this.selectedTextBox != null && this.selectedTextBox.isVisible()) { int i; if (Character.isDigit(c)) { i = Integer.parseInt(String.valueOf(c)); if ((double)Math.abs(this.selectedTextBox.getNumber()) < Math.pow(10.0D, (double)(this.selectedTextBox.getLength() - 1))) { this.selectedTextBox.setNumber(Math.min(this.selectedTextBox.getNumber() * 10 + i, this.selectedTextBox.getMaxNumber())); this.selectedTextBox.onUpdate(); } return true; } if (c == 45 && this.selectedTextBox.allowNegative()) { this.selectedTextBox.setNumber(this.selectedTextBox.getNumber() * -1); this.selectedTextBox.onUpdate(); } else { if (k == 14) { this.selectedTextBox.setNumber(this.selectedTextBox.getNumber() / 10); this.selectedTextBox.onUpdate(); return true; } if (k == 15) { for (i = 0; i < this.textBoxes.size(); ++i) { WideNumberBox textBox = this.textBoxes.get(i); if (textBox.equals(this.selectedTextBox)) { int nextId = (i + 1) % this.textBoxes.size(); this.selectedTextBox = this.textBoxes.get(nextId); break; } } return true; } } } return false; } public void addTextBox(WideNumberBox textBox) { this.textBoxes.add(textBox); } public WideNumberBox getTextBox(int id) { return this.textBoxes.get(id); } }