public void uimsg(String msg, Object... args) {
        if (msg == "pop") {
            is_ready = true;
            final int xoff = 50;
            if (inputs != null) {
                for (Widget w : inputs)
                    w.unlink();
                for (Widget w : outputs)
                    w.unlink();
            }
            inputs = new LinkedList<Widget>();
            outputs = new LinkedList<Widget>();
            int i;
            Coord c = new Coord(xoff, 10);
            for (i = 0; (Integer) args[i] >= 0; i += 2) {
                Widget box = new Inventory(c, new Coord(1, 1), this);
                inputs.add(box);
                c = c.add(new Coord(31, 0));
                new Item(Coord.z, (Integer) args[i], -1, box, null,
                        (Integer) args[i + 1]);
            }
            c = new Coord(xoff, 65);
            for (i++; (i < args.length) && ((Integer) args[i] >= 0); i += 2) {
                Widget box = new Inventory(c, new Coord(1, 1), this);
                outputs.add(box);
                c = c.add(new Coord(31, 0));
                new Item(Coord.z, (Integer) args[i], -1, box, null,
                        (Integer) args[i + 1]);
            }
        }
    }