Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a new "Change engine version" button to the ContainerOverviewPanel #1970

Merged
merged 2 commits into from
Jun 9, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,6 @@ public class ContainersConfiguration {
@Autowired
private LibraryConfiguration libraryConfiguration;

@Autowired
private EnginesConfiguration enginesConfiguration;

@Autowired
private MultithreadingConfiguration multithreadingConfiguration;

Expand Down Expand Up @@ -63,9 +60,4 @@ public ContainersManager backgroundContainersManager() {
return new BackgroundContainersManager(containersManager(),
multithreadingConfiguration.containersExecutorService());
}

@Bean
public ContainerEngineController containerEngineController() {
return new ContainerEngineController(enginesConfiguration.enginesSource());
}
}
19 changes: 19 additions & 0 deletions phoenicis-engines/src/main/java/org/phoenicis/engines/Engine.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ public interface Engine {

/**
* returns the local directory (e.g. ~/.Phoenicis/engines/wine/upstream-linux-x86/3.0)
*
* @param subCategory e.g. upstream-linux-x86
* @param version e.g. 3.0
* @return local directory
Expand All @@ -19,6 +20,7 @@ public interface Engine {

/**
* returns true if the engine is installed
*
* @param subCategory e.g. upstream-linux-x86
* @param version e.g. 3.0
* @return is engine version installed
Expand All @@ -27,45 +29,59 @@ public interface Engine {

/**
* installs the given engine version
*
* @param subCategory e.g. upstream-linux-x86
* @param version e.g. 3.0
*/
void install(String subCategory, String version);

/**
* changes the engine version of the given container
*
* @param containerName the name of the container
*/
void changeVersion(String containerName);

/**
* deletes the given engine version
*
* @param subCategory e.g. upstream-linux-x86
* @param version e.g. 3.0
*/
void delete(String subCategory, String version);

/**
* fetches the available versions
*
* @return content of JSON file (format like the file provided by webservice.wine.url)
*/
String getAvailableVersions();

/**
* returns the current working container (i.e. name of container directory without full path)
*
* @return working container
*/
String getWorkingContainer();

/**
* sets the working container (i.e. name of container directory without full path)
*
* @param workingContainer working container
*/
void setWorkingContainer(String workingContainer);

/**
* returns path of a container
*
* @param containerName name of the container
* @return path of container
*/
String getContainerDirectory(String containerName);

/**
* creates a container
*
* @param subCategory e.g. upstream-linux-x86
* @param version e.g. 3.0
* @param containerName name of the container
Expand All @@ -74,6 +90,7 @@ public interface Engine {

/**
* runs an executable with this engine
*
* @param executable executable
* @param args program arguments
* @param workingDir working directory
Expand All @@ -87,12 +104,14 @@ String run(String executable, String[] args, String workingDir, boolean captureO

/**
* returns the setup wizard
*
* @return setup wizard
*/
SetupWizard getWizard();

/**
* sets the setup wizard
*
* @param wizard setup wizard
*/
void setWizard(SetupWizard wizard);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@
import javafx.beans.property.SimpleObjectProperty;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import org.phoenicis.containers.ContainerEngineController;
import org.phoenicis.containers.dto.ContainerDTO;
import org.phoenicis.engines.EngineSetting;
import org.phoenicis.engines.EngineToolsManager;
import org.phoenicis.engines.EnginesManager;
import org.phoenicis.engines.VerbsManager;
import org.phoenicis.javafx.components.common.control.ControlBase;
import org.phoenicis.javafx.components.container.skin.ContainerInformationPanelSkin;
Expand All @@ -33,14 +33,14 @@ public class ContainerInformationPanel extends ControlBase<ContainerInformationP
private final ObjectProperty<ContainerDTO> container;

/**
* The container engine controller
* The engine settings
*/
private final ObjectProperty<ContainerEngineController> containerEngineController;
private final ObservableList<EngineSetting> engineSettings;

/**
* The engine settings
* The verbs manager
*/
private final ObservableList<EngineSetting> engineSettings;
private final ObjectProperty<EnginesManager> enginesManager;

/**
* The verbs manager
Expand All @@ -67,6 +67,11 @@ public class ContainerInformationPanel extends ControlBase<ContainerInformationP
*/
private final ObjectProperty<Consumer<ContainerDTO>> onDeleteContainer;

/**
* Callback method for when the engine version of the container should be changed
*/
private final ObjectProperty<Consumer<ContainerDTO>> onChangeEngineVersion;

/**
* Callback method for when the folder containing the container should be openend in a file browser
*/
Expand All @@ -79,13 +84,14 @@ public ContainerInformationPanel() {
super();

this.container = new SimpleObjectProperty<>();
this.containerEngineController = new SimpleObjectProperty<>();
this.engineSettings = FXCollections.observableArrayList();
this.enginesManager = new SimpleObjectProperty<>();
this.verbsManager = new SimpleObjectProperty<>();
this.verbs = new SimpleObjectProperty<>();
this.engineToolsManager = new SimpleObjectProperty<>();
this.engineTools = new SimpleObjectProperty<>();
this.onDeleteContainer = new SimpleObjectProperty<>();
this.onChangeEngineVersion = new SimpleObjectProperty<>();
this.onOpenFileBrowser = new SimpleObjectProperty<>();
}

Expand All @@ -109,20 +115,20 @@ public void setContainer(ContainerDTO container) {
this.container.set(container);
}

public ContainerEngineController getContainerEngineController() {
return this.containerEngineController.get();
public ObservableList<EngineSetting> getEngineSettings() {
return this.engineSettings;
}

public ObjectProperty<ContainerEngineController> containerEngineControllerProperty() {
return this.containerEngineController;
public EnginesManager getEnginesManager() {
return this.enginesManager.get();
}

public void setContainerEngineController(ContainerEngineController containerEngineController) {
this.containerEngineController.set(containerEngineController);
public ObjectProperty<EnginesManager> enginesManagerProperty() {
return this.enginesManager;
}

public ObservableList<EngineSetting> getEngineSettings() {
return this.engineSettings;
public void setEnginesManager(EnginesManager enginesManager) {
this.enginesManager.set(enginesManager);
}

public VerbsManager getVerbsManager() {
Expand Down Expand Up @@ -185,6 +191,18 @@ public void setOnDeleteContainer(Consumer<ContainerDTO> onDeleteContainer) {
this.onDeleteContainer.set(onDeleteContainer);
}

public Consumer<ContainerDTO> getOnChangeEngineVersion() {
return this.onChangeEngineVersion.get();
}

public ObjectProperty<Consumer<ContainerDTO>> onChangeEngineVersionProperty() {
return this.onChangeEngineVersion;
}

public void setOnChangeEngineVersion(Consumer<ContainerDTO> onChangeEngineVersion) {
this.onChangeEngineVersion.set(onChangeEngineVersion);
}

public Consumer<ContainerDTO> getOnOpenFileBrowser() {
return this.onOpenFileBrowser.get();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,11 @@ public class ContainerOverviewPanel extends ControlBase<ContainerOverviewPanel,
*/
private final ObjectProperty<Consumer<ContainerDTO>> onDeleteContainer;

/**
* The callback method which is called when the engine version of the container should be changed
*/
private final ObjectProperty<Consumer<ContainerDTO>> onChangeEngineVersion;

/**
* The callback method which is called when the container should be opened in a file browser
*/
Expand All @@ -35,7 +40,9 @@ public ContainerOverviewPanel() {
super();

this.container = new SimpleObjectProperty<>();

this.onDeleteContainer = new SimpleObjectProperty<>();
this.onChangeEngineVersion = new SimpleObjectProperty<>();
this.onOpenFileBrowser = new SimpleObjectProperty<>();
}

Expand Down Expand Up @@ -71,6 +78,18 @@ public void setOnDeleteContainer(Consumer<ContainerDTO> onDeleteContainer) {
this.onDeleteContainer.set(onDeleteContainer);
}

public Consumer<ContainerDTO> getOnChangeEngineVersion() {
return this.onChangeEngineVersion.get();
}

public ObjectProperty<Consumer<ContainerDTO>> onChangeEngineVersionProperty() {
return this.onChangeEngineVersion;
}

public void setOnChangeEngineVersion(Consumer<ContainerDTO> onChangeEngineVersion) {
this.onChangeEngineVersion.set(onChangeEngineVersion);
}

public Consumer<ContainerDTO> getOnOpenFileBrowser() {
return this.onOpenFileBrowser.get();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
import javafx.beans.property.ObjectProperty;
import javafx.beans.property.SimpleBooleanProperty;
import javafx.beans.property.SimpleObjectProperty;
import org.phoenicis.containers.ContainerEngineController;
import org.phoenicis.containers.dto.ContainerDTO;
import org.phoenicis.engines.EnginesManager;
import org.phoenicis.javafx.components.common.control.ControlBase;
import org.phoenicis.javafx.components.container.skin.ContainerToolsPanelSkin;

Expand All @@ -19,9 +19,9 @@ public class ContainerToolsPanel extends ControlBase<ContainerToolsPanel, Contai
private final ObjectProperty<ContainerDTO> container;

/**
* The container engine controller used to execute a tool inside a container
* The engines manager used to execute a tool inside a container
*/
private final ObjectProperty<ContainerEngineController> containerEngineController;
private final ObjectProperty<EnginesManager> enginesManager;

/**
* A boolean signifying whether all tool buttons should be locked
Expand All @@ -35,7 +35,7 @@ public ContainerToolsPanel() {
super();

this.container = new SimpleObjectProperty<>();
this.containerEngineController = new SimpleObjectProperty<>();
this.enginesManager = new SimpleObjectProperty<>();
this.lockTools = new SimpleBooleanProperty();
}

Expand All @@ -59,16 +59,16 @@ public void setContainer(ContainerDTO container) {
this.container.set(container);
}

public ContainerEngineController getContainerEngineController() {
return this.containerEngineController.get();
public EnginesManager getEnginesManager() {
return this.enginesManager.get();
}

public ObjectProperty<ContainerEngineController> containerEngineControllerProperty() {
return this.containerEngineController;
public ObjectProperty<EnginesManager> enginesManagerProperty() {
return this.enginesManager;
}

public void setContainerEngineController(ContainerEngineController containerEngineController) {
this.containerEngineController.set(containerEngineController);
public void setEnginesManager(EnginesManager enginesManager) {
this.enginesManager.set(enginesManager);
}

public boolean isLockTools() {
Expand Down
Loading