private void initializeCompactColonyPanel() {
        Specification spec = getSpecification();
        goodsTypes = new ArrayList<GoodsType>(spec.getGoodsTypeList());
        Collections.sort(goodsTypes, goodsComparator);
        while (!goodsTypes.get(0).isStorable()
            || goodsTypes.get(0).isTradeGoods()) {
            goodsTypes.remove(0);
        }

        // Define the layout, with a column for each goods type.
        String cols = "[l][c][c][c]";
        for (int i = 0; i < goodsTypes.size(); i++) cols += "[c]";
        cols += "[c][l][l][c][l]";
        reportPanel.setLayout(new MigLayout("fillx, insets 0, gap 0 0",
                cols, ""));

        // Load the customized colours, with simple fallbacks.
        cAlarm = ResourceManager.getColor("report.colony.alarmColor");
        cWarn = ResourceManager.getColor("report.colony.warningColor");
        cPlain = ResourceManager.getColor("report.colony.plainColor");
        cExport = ResourceManager.getColor("report.colony.exportColor");
        cGood = ResourceManager.getColor("report.colony.goodColor");
        if (cAlarm == null) cAlarm = Color.RED;
        if (cWarn == null) cWarn = Color.MAGENTA;
        if (cPlain == null) cPlain = Color.DARK_GRAY;
        if (cExport == null) cExport = Color.GREEN;
        if (cGood == null) cGood = Color.BLUE;
    }