use of org.phoenicis.repository.dto.CategoryDTO in project POL-POM-5 by PhoenicisOrg.
the class EnginesController method setDefaultEngineIcons.
/**
* Generates css for the button design associated with the given categories
*
* @param categoryDTOS The categories
*/
private void setDefaultEngineIcons(List<CategoryDTO> categoryDTOS) {
try {
StringBuilder cssBuilder = new StringBuilder();
for (CategoryDTO category : categoryDTOS) {
cssBuilder.append("#" + category.getName().toLowerCase() + "Button{\n");
URI categoryIcon = category.getIcon();
if (categoryIcon == null) {
cssBuilder.append("-fx-background-image: url('/org/phoenicis/javafx/views/common/phoenicis.png');\n");
} else {
cssBuilder.append("-fx-background-image: url('" + categoryIcon + "');\n");
}
cssBuilder.append("}\n");
}
String css = cssBuilder.toString();
Path temp = Files.createTempFile("defaultEngineIcons", ".css").toAbsolutePath();
File tempFile = temp.toFile();
tempFile.deleteOnExit();
Files.write(temp, css.getBytes());
String defaultEngineIconsCss = temp.toUri().toString();
themeManager.setDefaultEngineIconsCss(defaultEngineIconsCss);
} catch (IOException e) {
LOGGER.warn("Could not set default engine icons.", e);
}
}
use of org.phoenicis.repository.dto.CategoryDTO in project POL-POM-5 by PlayOnLinux.
the class Repository method getApplication.
default default ApplicationDTO getApplication(List<String> path) {
final CategoryDTO categoryDTO = getCategory(path);
if (categoryDTO == null) {
return null;
}
final Optional<ApplicationDTO> applicationDTO = categoryDTO.getApplications().stream().filter(application -> path.get(1).equals(application.getName())).findFirst();
return applicationDTO.orElse(null);
}
use of org.phoenicis.repository.dto.CategoryDTO in project POL-POM-5 by PlayOnLinux.
the class GitRepository method fetchInstallableApplications.
@Override
public synchronized List<CategoryDTO> fetchInstallableApplications() {
LOGGER.info(String.format("Begin fetching process of git-repository '%s' in '%s'", this.gitRepositoryUri, gitRepositoryLocation.getAbsolutePath()));
boolean folderExists = gitRepositoryLocation.exists();
// check that the repository folder exists
if (!folderExists) {
LOGGER.info(String.format("Creating new folder '%s' for git-repository '%s'", gitRepositoryLocation.getAbsolutePath(), this.gitRepositoryUri));
if (!gitRepositoryLocation.mkdirs()) {
LOGGER.error(String.format("Couldn't create folder for git repository '%s' at '%s'", this.gitRepositoryUri, gitRepositoryLocation.getAbsolutePath()));
return Collections.emptyList();
}
}
List<CategoryDTO> result = Collections.emptyList();
try {
Git gitRepository = null;
/*
* if the repository folder previously didn't exist, clone the
* repository now
*/
if (!folderExists) {
LOGGER.info(String.format("Cloning git-repository '%s' to '%s'", this.gitRepositoryUri, gitRepositoryLocation.getAbsolutePath()));
gitRepository = Git.cloneRepository().setURI(this.gitRepositoryUri.toString()).setDirectory(gitRepositoryLocation).call();
} else /*
* otherwise open the folder and pull the newest updates from the
* repository
*/
{
LOGGER.info(String.format("Opening git-repository '%s' at '%s'", this.gitRepositoryUri, gitRepositoryLocation.getAbsolutePath()));
gitRepository = Git.open(gitRepositoryLocation);
LOGGER.info(String.format("Pulling new commits from git-repository '%s' to '%s'", this.gitRepositoryUri, gitRepositoryLocation.getAbsolutePath()));
gitRepository.pull().call();
}
// close repository to free resources
gitRepository.close();
result = localRepositoryFactory.createInstance(this.gitRepositoryLocation, this.gitRepositoryUri).fetchInstallableApplications();
} catch (RepositoryNotFoundException | GitAPIException e) {
LOGGER.error(String.format("Folder '%s' is no git-repository", gitRepositoryLocation.getAbsolutePath()), e);
} catch (IOException e) {
LOGGER.error(String.format("An unknown error occured", e));
}
return result;
}
use of org.phoenicis.repository.dto.CategoryDTO in project POL-POM-5 by PhoenicisOrg.
the class EnginesController method populateView.
private void populateView(RepositoryDTO repositoryDTO) {
Platform.runLater(() -> {
List<CategoryDTO> categoryDTOS = new ArrayList<>();
for (TypeDTO typeDTO : repositoryDTO.getTypes()) {
if (typeDTO.getId().equals("Engines")) {
categoryDTOS = typeDTO.getCategories();
}
}
setDefaultEngineIcons(categoryDTOS);
enginesSource.fetchAvailableEngines(categoryDTOS, versions -> Platform.runLater(() -> this.enginesView.populate(versions)));
});
}
use of org.phoenicis.repository.dto.CategoryDTO in project phoenicis by PhoenicisOrg.
the class AppsController method setDefaultCategoryIcons.
private void setDefaultCategoryIcons(List<CategoryDTO> categoryDTOS) {
try {
StringBuilder cssBuilder = new StringBuilder();
for (CategoryDTO category : categoryDTOS) {
cssBuilder.append("#" + category.getId().toLowerCase() + "Button{\n");
URI categoryIcon = category.getIcon();
if (categoryIcon == null) {
cssBuilder.append("-fx-background-image: url('/org/phoenicis/javafx/views/common/phoenicis.png');\n");
} else {
cssBuilder.append("-fx-background-image: url('" + categoryIcon + "');\n");
}
cssBuilder.append("}\n");
}
String css = cssBuilder.toString();
Path temp = Files.createTempFile("defaultCategoryIcons", ".css").toAbsolutePath();
File tempFile = temp.toFile();
tempFile.deleteOnExit();
Files.write(temp, css.getBytes());
String defaultCategoryIconsCss = temp.toUri().toString();
themeManager.setDefaultCategoryIconsCss(defaultCategoryIconsCss);
} catch (IOException e) {
LOGGER.warn("Could not set default category icons.", e);
}
}
Aggregations