use of javafx.beans.property.SimpleObjectProperty in project POL-POM-5 by PlayOnLinux.
the class ContainersFeaturePanelSkin method createSidebar.
/**
* {@inheritDoc}
*/
@Override
public ObjectExpression<SidebarBase<?, ?, ?>> createSidebar() {
/*
* initialize the container categories by sorting them
*/
final SortedList<ContainerCategoryDTO> sortedCategories = getControl().getCategories().sorted(Comparator.comparing(ContainerCategoryDTO::getName));
final ContainerSidebar sidebar = new ContainerSidebar(getControl().getFilter(), sortedCategories, this.selectedListWidget);
// set the default selection
sidebar.setSelectedListWidget(Optional.ofNullable(getControl().getJavaFxSettingsManager()).map(JavaFxSettingsManager::getContainersListType).orElse(ListWidgetType.ICONS_LIST));
// save changes to the list widget selection to the hard drive
sidebar.selectedListWidgetProperty().addListener((observable, oldValue, newValue) -> {
final JavaFxSettingsManager javaFxSettingsManager = getControl().getJavaFxSettingsManager();
if (newValue != null) {
javaFxSettingsManager.setContainersListType(newValue);
javaFxSettingsManager.save();
}
});
return new SimpleObjectProperty<>(sidebar);
}
use of javafx.beans.property.SimpleObjectProperty in project POL-POM-5 by PlayOnLinux.
the class LibraryFeaturePanelSkin method createSidebar.
/**
* {@inheritDoc}
*/
@Override
public ObjectExpression<SidebarBase<?, ?, ?>> createSidebar() {
final SortedList<ShortcutCategoryDTO> sortedCategories = getControl().getCategories().sorted(Comparator.comparing(ShortcutCategoryDTO::getName));
final LibrarySidebar sidebar = new LibrarySidebar(getControl().getFilter(), sortedCategories, this.selectedListWidget);
sidebar.applicationNameProperty().bind(getControl().applicationNameProperty());
sidebar.javaFxSettingsManagerProperty().bind(getControl().javaFxSettingsManagerProperty());
sidebar.setOnCreateShortcut(() -> {
// deselect the currently selected shortcut
getControl().setSelectedShortcut(null);
// open the shortcut creation details panel
getControl().setOpenedDetailsPanel(new ShortcutCreation());
});
sidebar.setOnOpenConsole(getControl()::openConsole);
// set the default selection
sidebar.setSelectedListWidget(Optional.ofNullable(getControl().getJavaFxSettingsManager()).map(JavaFxSettingsManager::getLibraryListType).orElse(ListWidgetType.ICONS_LIST));
// save changes to the list widget selection to the hard drive
sidebar.selectedListWidgetProperty().addListener((observable, oldValue, newValue) -> {
final JavaFxSettingsManager javaFxSettingsManager = getControl().getJavaFxSettingsManager();
if (newValue != null) {
javaFxSettingsManager.setLibraryListType(newValue);
javaFxSettingsManager.save();
}
});
return new SimpleObjectProperty<>(sidebar);
}
use of javafx.beans.property.SimpleObjectProperty in project POL-POM-5 by PlayOnLinux.
the class LibraryFeaturePanelSkin method createContent.
/**
* {@inheritDoc}
*/
@Override
public ObjectExpression<Node> createContent() {
final CombinedListWidget<ShortcutDTO> combinedListWidget = createCombinedListWidget();
final Tab installedApplicationsTab = new Tab(tr("My applications"), combinedListWidget);
installedApplicationsTab.setClosable(false);
final TabPane container = new TabPane();
container.getStyleClass().add("rightPane");
getControl().selectedTabProperty().addListener((Observable invalidation) -> {
final Tab selectedTab = getControl().getSelectedTab();
if (selectedTab != null) {
container.getSelectionModel().select(selectedTab);
} else {
container.getSelectionModel().selectFirst();
}
});
container.getSelectionModel().selectedItemProperty().addListener((Observable invalidation) -> getControl().setSelectedTab(container.getSelectionModel().getSelectedItem()));
Bindings.bindContentBidirectional(container.getTabs(), getControl().getTabs());
container.getTabs().add(installedApplicationsTab);
return new SimpleObjectProperty<>(container);
}
use of javafx.beans.property.SimpleObjectProperty in project POL-POM-5 by PlayOnLinux.
the class ContainersFeaturePanelSkin method createContent.
/**
* {@inheritDoc}
*/
@Override
public ObjectExpression<Node> createContent() {
/*
* initialize the container lists by:
* 1. sorting the containers by their name
* 2. filtering the containers
*/
final FilteredList<ContainerDTO> filteredContainers = ConcatenatedList.create(new MappedList<>(getControl().getCategories().sorted(Comparator.comparing(ContainerCategoryDTO::getName)), ContainerCategoryDTO::getContainers)).sorted(Comparator.comparing(ContainerDTO::getName)).filtered(getControl().getFilter()::filter);
filteredContainers.predicateProperty().bind(Bindings.createObjectBinding(() -> getControl().getFilter()::filter, getControl().getFilter().searchTermProperty()));
final ObservableList<ListWidgetElement<ContainerDTO>> listWidgetEntries = new MappedList<>(filteredContainers, ListWidgetElement::create);
final CombinedListWidget<ContainerDTO> combinedListWidget = new CombinedListWidget<>(listWidgetEntries, this.selectedListWidget);
// bind direction: controller property -> skin property
getControl().selectedContainerProperty().addListener((observable, oldValue, newValue) -> {
if (newValue != null) {
combinedListWidget.select(newValue);
} else {
combinedListWidget.deselect();
}
});
// bind direction: skin property -> controller properties
combinedListWidget.selectedElementProperty().addListener((observable, oldValue, newValue) -> {
if (newValue != null) {
final ContainerDTO selectedItem = newValue.getItem();
getControl().setSelectedContainer(selectedItem);
getControl().setOpenedDetailsPanel(new ContainerInformation(selectedItem));
} else {
getControl().setSelectedContainer(null);
getControl().setOpenedDetailsPanel(new None());
}
});
return new SimpleObjectProperty<>(combinedListWidget);
}
use of javafx.beans.property.SimpleObjectProperty in project POL-POM-5 by PlayOnLinux.
the class ApplicationsFeaturePanelSkin method createSidebar.
/**
* {@inheritDoc}
*/
@Override
public ObjectExpression<SidebarBase<?, ?, ?>> createSidebar() {
/*
* initialize the category lists by:
* 1. filtering by installer categories
* 2. sorting the remaining categories by their name
*/
final SortedList<CategoryDTO> sortedCategories = getControl().getCategories().filtered(category -> category.getType() == CategoryDTO.CategoryType.INSTALLERS).sorted(Comparator.comparing(CategoryDTO::getName));
final ApplicationSidebar sidebar = new ApplicationSidebar(sortedCategories, this.selectedListWidget);
sidebar.operatingSystemProperty().bind(getControl().operatingSystemProperty());
sidebar.fuzzySearchRatioProperty().bind(getControl().fuzzySearchRatioProperty());
getControl().searchTermProperty().bind(sidebar.searchTermProperty());
getControl().filterCategoryProperty().bind(sidebar.selectedItemProperty());
getControl().containCommercialApplicationsProperty().bind(sidebar.containCommercialApplicationsProperty());
getControl().containRequiresPatchApplicationsProperty().bind(sidebar.containRequiresPatchApplicationsProperty());
getControl().containTestingApplicationsProperty().bind(sidebar.containTestingApplicationsProperty());
getControl().containAllOSCompatibleApplicationsProperty().bind(sidebar.containAllOSCompatibleApplicationsProperty());
// set the default selection
sidebar.setSelectedListWidget(Optional.ofNullable(getControl().getJavaFxSettingsManager()).map(JavaFxSettingsManager::getAppsListType).orElse(ListWidgetType.ICONS_LIST));
// save changes to the list widget selection to the hard drive
sidebar.selectedListWidgetProperty().addListener((observable, oldValue, newValue) -> {
final JavaFxSettingsManager javaFxSettingsManager = getControl().getJavaFxSettingsManager();
if (newValue != null) {
javaFxSettingsManager.setAppsListType(newValue);
javaFxSettingsManager.save();
}
});
return new SimpleObjectProperty<>(sidebar);
}
Aggregations