public void populate() {
        getContentTable().clear();
        getButtonTable().clearChildren();
        
        getButtonTable().padBottom(15.0f);
        
        if (property == null && customProperty == null) {
            getContentTable().add(new Label("Drawables", getSkin(), "title"));
        } else {
            getContentTable().add(new Label("Select a Drawable", getSkin(), "title"));
        }
        
        getContentTable().row();
        Table table = new Table(getSkin());
        table.defaults().pad(6.0f);
        getContentTable().add(table).growX();
        
        var button = new Button(getSkin(), "filter");
        button.setName("filter");
        button.setProgrammaticChangeEvents(false);
        table.add(button);
        button.addListener(handListener);
        button.addListener(new ChangeListener() {
            @Override
            public void changed(ChangeListener.ChangeEvent event, Actor actor) {
                var button = (Button) actor;
                button.setChecked(true);
                dialogFactory.showDialogDrawablesFilter(filterOptions, new DialogDrawablesFilter.FilterListener() {
                    @Override
                    public void applied() {
                        sortBySelectedMode();
                    }
                    
                    @Override
                    public void disabled() {
                        sortBySelectedMode();
                    }

                    @Override
                    public void cancelled() {
                        sortBySelectedMode();
                    }
                });
            }
        });
        
        button = new Button(getSkin(), "refresh");
        button.setName("refresh");
        Utils.onChange(button, () -> reloadAtlas());
        table.add(button);
        
        table.add("Sort:");
        
        sortSelectBox = new SelectBox(getSkin());
        sortSelectBox.setItems("A-Z", "Z-A", "Oldest", "Newest");
        sortSelectBox.setSelectedIndex(sortSelection);
        sortSelectBox.addListener(new ChangeListener() {
            @Override
            public void changed(ChangeListener.ChangeEvent event, Actor actor) {
                sortSelection = sortSelectBox.getSelectedIndex();
                sortBySelectedMode();
            }
        });
        sortSelectBox.addListener(handListener);
        sortSelectBox.getList().addListener(handListener);
        table.add(sortSelectBox);
        
        TextButton textButton = new TextButton("Add...", getSkin());
        table.add(textButton);
        textButton.addListener(handListener);
        textButton.addListener(new AddClickListener());
        
        table.add(new Label("Zoom:", getSkin())).right().expandX();
        zoomSlider = new Slider(0, 4, 1, false, getSkin());
        zoomSlider.setValue(zoomLevel);
        zoomSlider.addListener(new ChangeListener() {
            @Override
            public void changed(ChangeListener.ChangeEvent event, Actor actor) {
                zoomLevel = MathUtils.round(zoomSlider.getValue());
                refreshDrawableDisplay();
            }
        });
        zoomSlider.addListener(handListener);
        table.add(zoomSlider);
        
        getContentTable().row();
        contentTable = new Table();
        scrollPane = new ScrollPane(contentTable, getSkin());
        scrollPane.setFadeScrollBars(false);
        scrollPane.setFlickScroll(false);
        getContentTable().add(scrollPane).grow();
        sortBySelectedMode();
        scrollPane.addListener(new InputListener() {
            @Override
            public void enter(InputEvent event, float x, float y, int pointer, Actor fromActor) {
                getStage().setScrollFocus(scrollPane);
            }
        });
        
        getContentTable().row();
        if (property != null || customProperty != null) {
            button("Clear Drawable", true);
            button("Cancel", false);
            getButtonTable().getCells().first().getActor().addListener(handListener);
            getButtonTable().getCells().get(1).getActor().addListener(handListener);
        } else {
            button("Close", false);
            getButtonTable().getCells().first().getActor().addListener(handListener);
        }
        
        addListener(new InputListener() {
            @Override
            public boolean keyDown(InputEvent event, int keycode) {
                if (keycode == Keys.ESCAPE) {
                    if (filterOptions.name.equals("")) {
                        result(null);
                        hide();
                    } else {
                        filterOptions.name = "";
                        sortBySelectedMode();
                    }
                    return true;
                }
                return false;
            }
        });
    }
Recreates the drawables array only including visible drawables.
core/src/com/ray3k/skincomposer/dialog/DialogDrawables.java