У меня есть форма с основным меню переполнения, которая должна предлагать варианты управления списком элементов этой формы.Одна часть сортирует список различными способами (что работает хорошо), другая часть обеспечивает фильтрацию списка.Например, наличие простого списка покупок элементов, которые можно проверить, и я хочу, чтобы фильтр отображал только «открытые» элементы, но при этом не отмечен, чтобы сосредоточиться на них.
Можно ли добавить ранее собранный компонент в меню переполнения?Это просто диалог, появляющийся в этом месте, поэтому он должен иметь возможность разместить любой компонент по этому вопросу.Однако параметры «Добавить (Материал) CommandToOverflowMenu» позволяют только добавлять команды напрямую или строку, значок, комбинацию слушателя.
Если пользовательский компонент невозможен, я все равно мог бы использовать значок, чтобы отобразить пустойсначала установите флажок, а затем обновите до установленного флажка, после нажатия.Однако, как манипулировать существующим элементом переполнения после его добавления?Я даже не вижу способа удалить ранее добавленные элементы переполнения, поскольку «getOverflowCommands» возвращает Iterable, который не должен использоваться для манипулирования списком.
Есть ли способ сделать это, яя должен настроить свое собственное, настраиваемое, переполненное меню, такое как диалоговое окно?
Спасибо и наилучшими пожеланиями
РЕДАКТИРОВАТЬ С РЕШЕНИЕМ Я создал новый класс для решения моей проблемы:
public class ToggleCommand extends Command {
private boolean selected;
private static Image selectedImage = FontImage.createMaterial(FontImage.MATERIAL_RADIO_BUTTON_CHECKED,
new Label().getUnselectedStyle());
private static Image unSelectedImage = FontImage.createMaterial(FontImage.MATERIAL_RADIO_BUTTON_UNCHECKED,
new Label().getUnselectedStyle());
public ToggleCommand(String command) {
this(command, selectedImage);
}
public ToggleCommand(String command, Image icon) {
super(command, icon);
selected = true;
}
public boolean isSelected() {
return selected;
}
public void setSelected(boolean selected) {
this.selected = selected;
if (selected) {
this.setIcon(selectedImage);
} else {
this.setIcon(unSelectedImage);
}
}
}
который вы можете использовать следующим образом:
filterDoneCommand = new ToggleCommand("Show closed?") {
@Override
public void actionPerformed(ActionEvent evt) {
filterDoneCommand.setSelected(!filterDoneCommand.isSelected());
// do your other stuff
}
};
getToolbar().addCommandToOverflowMenu(filterDoneCommand);