runtimes view

This commit is contained in:
guillaume 2019-01-28 13:49:21 +01:00
commit 85930218ba
14 changed files with 259 additions and 88 deletions

View file

@ -9,6 +9,7 @@ import org.chtijbug.drools.console.service.model.kie.KieConfigurationData;
import org.chtijbug.drools.console.service.model.kie.KieContainerInfo;
import org.chtijbug.drools.console.service.model.kie.KieServerJobStatus;
import org.chtijbug.drools.console.service.util.AppContext;
import org.chtijbug.drools.proxy.persistence.json.KeyProject;
import org.chtijbug.drools.proxy.persistence.model.ProjectPersist;
import org.chtijbug.drools.proxy.persistence.model.RuntimePersist;
import org.chtijbug.drools.proxy.persistence.repository.ProjectRepository;
@ -18,6 +19,7 @@ import org.kie.server.api.model.ReleaseId;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@ -54,32 +56,41 @@ public class ProjectPersistService {
for(PlatformProjectResponse platformProjectResponse:platformProjectResponses) {
ProjectPersist projectPersist = projectRepository.findByProjectName(platformProjectResponse.getSpaceName() + "-" + platformProjectResponse.getName());
ProjectPersist projectPersist = projectRepository.findByProjectName(new KeyProject(platformProjectResponse.getSpaceName(),platformProjectResponse.getName()));
if (projectPersist == null) {
projectPersist = platformProjectResponseToProjectPersist(platformProjectResponse);
projectRepository.save(projectPersist);
addProjectToSession(projectPersist);
addProjectToSession(projectPersist,true);
}else {
addProjectToSession(projectPersist);
addProjectToSession(projectPersist,false);
}
}
}
public Set<ProjectPersist> getProjectsSession() {
return (Set<ProjectPersist>) VaadinSession.getCurrent().getAttribute(PROJECT);
public HashMap<String,ProjectPersist> getProjectsSession() {
return (HashMap<String, ProjectPersist>) VaadinSession.getCurrent().getAttribute(PROJECT);
}
public void addProjectToSession(ProjectPersist projectPersist) {
public void addProjectToSession(ProjectPersist projectPersist,boolean isModifiable) {
Set<ProjectPersist> projectPersists=getProjectsSession();
HashMap<String,ProjectPersist> projectPersists=getProjectsSession();
if(projectPersists==null){
projectPersists=new HashSet<>();
projectPersists=new HashMap<>();
}
if(isModifiable){
projectPersists.put(projectPersist.getProjectName().toString(),projectPersist);
}else {
ProjectPersist tmp=projectPersists.get(projectPersist.getProjectName().toString());
if(tmp==null){
projectPersists.put(projectPersist.getProjectName().toString(),projectPersist);
}
}
projectPersists.add(projectPersist);
VaadinSession.getCurrent().setAttribute(PROJECT, projectPersists);
}
@ -95,7 +106,7 @@ public class ProjectPersistService {
projectPersist.setStatus(ProjectPersist.Deployable);
projectPersist.setContainerID(projectPersist.getDeploymentName()+"-"+projectPersist.getProjectName());
projectRepository.save(projectPersist);
addProjectToSession(projectPersist);
addProjectToSession(projectPersist,true);
return true;
}
@ -115,12 +126,10 @@ public class ProjectPersistService {
ProjectPersist projectPersist=new ProjectPersist();
projectPersist.setArtifactID(platformProjectResponse.getArtifactId());
projectPersist.setGroupID(platformProjectResponse.getGroupId());
projectPersist.setProjectName(platformProjectResponse.getSpaceName()+"-"+platformProjectResponse.getName());
projectPersist.setProjectName(new KeyProject(platformProjectResponse.getSpaceName(),platformProjectResponse.getName()));
projectPersist.setProjectVersion(platformProjectResponse.getVersion());
projectPersist.setStatus(ProjectPersist.ADEFINIR);
projectPersist.setClassNameList(platformProjectResponse.getJavaClasses());
projectPersist.setSpaceName(platformProjectResponse.getSpaceName());
projectPersist.setOldName(platformProjectResponse.getName());
return projectPersist;
}
@ -132,12 +141,12 @@ public class ProjectPersistService {
public void run() {
JobStatus result = kieRepositoryService.buildProject(config.getKiewbUrl(), userConnected.getUserName(),
userConnected.getUserPassword(), projectPersist.getSpaceName(), projectPersist.getOldName(), "compile", workOnGoingView,ui);
userConnected.getUserPassword(), projectPersist.getProjectName().getSpaceName(), projectPersist.getProjectName().getName(), "compile", workOnGoingView,ui);
executeWrite(url,username,password,workOnGoingView,result.getJobId(),ui);
result = kieRepositoryService.buildProject(config.getKiewbUrl(), userConnected.getUserName(),
userConnected.getUserPassword(), projectPersist.getSpaceName(), projectPersist.getOldName(), "install", workOnGoingView,ui);
userConnected.getUserPassword(), projectPersist.getProjectName().getSpaceName(), projectPersist.getProjectName().getName(), "install", workOnGoingView,ui);
executeWrite(url,username,password,workOnGoingView,result.getJobId(),ui);

View file

@ -9,10 +9,7 @@ import org.chtijbug.drools.console.service.UserConnectedService;
import org.chtijbug.drools.console.service.util.AppContext;
import org.chtijbug.drools.console.vaadinComponent.componentView.ConsoleDeploy;
import org.chtijbug.drools.console.vaadinComponent.leftMenu.LeftMenuGlobal;
import org.chtijbug.drools.console.vaadinComponent.menu.MenuPrincipal;
import org.chtijbug.drools.console.vaadinComponent.menu.MenuScondaireDeployement;
import org.chtijbug.drools.console.vaadinComponent.menu.MenuSecondaireAssets;
import org.chtijbug.drools.console.vaadinComponent.menu.MenuSecondaireInfoUser;
import org.chtijbug.drools.console.vaadinComponent.menu.*;
import org.chtijbug.drools.console.view.DeploymentView;
@StyleSheet("css/accueil.css")
@ -28,6 +25,8 @@ public class SqueletteComposant extends VerticalLayout {
private MenuSecondaireAssets menuSecondaireAssets;
private MenuSecondaireRuntime menuSecondaireRuntime;
private VerticalLayout content;
private VerticalLayout infoPage;
@ -67,6 +66,9 @@ public class SqueletteComposant extends VerticalLayout {
menuSecondaireAssets = new MenuSecondaireAssets(this);
tmp.add(menuSecondaireAssets);
menuSecondaireRuntime=new MenuSecondaireRuntime(this);
tmp.add(menuSecondaireRuntime);
infoPage = new VerticalLayout();
infoPage.setClassName("squelette-component-infoPage");
content.add(infoPage);
@ -118,6 +120,14 @@ public class SqueletteComposant extends VerticalLayout {
this.menuSecondaireAssets = menuSecondaireAssets;
}
public MenuSecondaireRuntime getMenuSecondaireRuntime() {
return menuSecondaireRuntime;
}
public void setMenuSecondaireRuntime(MenuSecondaireRuntime menuSecondaireRuntime) {
this.menuSecondaireRuntime = menuSecondaireRuntime;
}
public void setLeftMenuGlobal(LeftMenuGlobal leftMenuGlobal) {
this.leftMenuGlobal = leftMenuGlobal;
}

View file

@ -95,7 +95,7 @@ public class DefineProject extends VerticalLayout {
valider.setClassName("login-application-connexion");
valider.addClickListener(buttonClickEvent -> {
projectPersist.setStatus(ProjectPersist.DEFINI);
projectPersistService.addProjectToSession(projectPersist);
projectPersistService.addProjectToSession(projectPersist,true);
projectPersistService.getProjectRepository().save(projectPersist);
deploymentView.setDataProvider();
dialog.close();

View file

@ -0,0 +1,46 @@
package org.chtijbug.drools.console.vaadinComponent.leftMenu.Action;
import com.vaadin.flow.component.button.Button;
import com.vaadin.flow.component.dialog.Dialog;
import com.vaadin.flow.component.icon.VaadinIcon;
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import org.chtijbug.drools.console.vaadinComponent.Squelette.SqueletteComposant;
import org.chtijbug.drools.console.vaadinComponent.componentView.AddRuntime;
public class RuntimesAction extends VerticalLayout {
private Button addRuntime;
public RuntimesAction(SqueletteComposant squeletteComposant){
setClassName("leftMenu-global-action");
addRuntime=new Button("add runtime", VaadinIcon.PLUS.create());
addRuntime.setClassName("leftMenu-global-button");
add(addRuntime);
Dialog dialog=new Dialog();
dialog.add(new AddRuntime(dialog,squeletteComposant));
addRuntime.addClickListener(buttonClickEvent -> {
active(addRuntime);
dialog.open();
});
}
private boolean isActive(Button button){
return button.getClassNames().contains("active");
}
private void removeActive(Button button) {
if(button.getClassNames().contains("active")){
button.getClassNames().remove("active");
}
}
private void active(Button button){
removeActive(addRuntime);
button.getClassNames().add("active");
}
}

View file

@ -26,6 +26,8 @@ public class MenuPrincipal extends HorizontalLayout {
private Button assets;
private Button runtimes;
private Button infoUser;
private Button hamburger;
@ -80,12 +82,13 @@ public class MenuPrincipal extends HorizontalLayout {
squeletteComposant.getMenuScondaireDeployement().setVisible(true);
squeletteComposant.getMenuSecondaireInfoUser().setVisible(false);
squeletteComposant.getMenuSecondaireAssets().setVisible(false);
squeletteComposant.getMenuSecondaireRuntime().setVisible(false);
}else {
removeActive(deployement);
squeletteComposant.getMenuScondaireDeployement().setVisible(false);
squeletteComposant.getMenuSecondaireInfoUser().setVisible(false);
squeletteComposant.getMenuSecondaireAssets().setVisible(false);
squeletteComposant.getMenuSecondaireRuntime().setVisible(false);
}
});
@ -99,12 +102,34 @@ public class MenuPrincipal extends HorizontalLayout {
squeletteComposant.getMenuScondaireDeployement().setVisible(false);
squeletteComposant.getMenuSecondaireInfoUser().setVisible(false);
squeletteComposant.getMenuSecondaireAssets().setVisible(true);
squeletteComposant.getMenuSecondaireRuntime().setVisible(false);
}else {
removeActive(assets);
squeletteComposant.getMenuScondaireDeployement().setVisible(false);
squeletteComposant.getMenuSecondaireInfoUser().setVisible(false);
squeletteComposant.getMenuSecondaireAssets().setVisible(false);
squeletteComposant.getMenuSecondaireRuntime().setVisible(false);
}
});
runtimes=new Button("Runtimes");
runtimes.setClassName("menu-principal-button");
add(runtimes);
runtimes.addClickListener(buttonClickEvent -> {
if(!isActive(runtimes)) {
active(runtimes);
squeletteComposant.getMenuScondaireDeployement().setVisible(false);
squeletteComposant.getMenuSecondaireInfoUser().setVisible(false);
squeletteComposant.getMenuSecondaireAssets().setVisible(false);
squeletteComposant.getMenuSecondaireRuntime().setVisible(true);
}else {
removeActive(runtimes);
squeletteComposant.getMenuScondaireDeployement().setVisible(false);
squeletteComposant.getMenuSecondaireInfoUser().setVisible(false);
squeletteComposant.getMenuSecondaireAssets().setVisible(false);
squeletteComposant.getMenuSecondaireRuntime().setVisible(false);
}
});
@ -118,12 +143,16 @@ public class MenuPrincipal extends HorizontalLayout {
squeletteComposant.getMenuScondaireDeployement().setVisible(false);
squeletteComposant.getMenuSecondaireInfoUser().setVisible(true);
squeletteComposant.getMenuSecondaireAssets().setVisible(false);
squeletteComposant.getMenuSecondaireRuntime().setVisible(false);
}else {
removeActive(infoUser);
squeletteComposant.getMenuScondaireDeployement().setVisible(false);
squeletteComposant.getMenuSecondaireInfoUser().setVisible(false);
squeletteComposant.getMenuSecondaireAssets().setVisible(false);
squeletteComposant.getMenuSecondaireRuntime().setVisible(false);
}
});
@ -144,6 +173,7 @@ public class MenuPrincipal extends HorizontalLayout {
removeActive(infoUser);
removeActive(deployement);
removeActive(assets);
removeActive(runtimes);
button.getClassNames().add("active");
}

View file

@ -14,8 +14,6 @@ import org.chtijbug.drools.console.view.DeploymentView;
@StyleSheet("css/accueil.css")
public class MenuScondaireDeployement extends HorizontalLayout {
private Button addRuntime;
private Button deployment;
public MenuScondaireDeployement(SqueletteComposant squeletteComposant){
@ -37,17 +35,6 @@ public class MenuScondaireDeployement extends HorizontalLayout {
deploymentView.setDeploymentAction(deploymentAction);
squeletteComposant.navigate(deploymentView,DeploymentView.pageName,deploymentAction);
});
addRuntime=new Button("add runtime", VaadinIcon.PLUS.create());
addRuntime.setClassName("menu-secondaire-button");
add(addRuntime);
Dialog dialog=new Dialog();
dialog.add(new AddRuntime(dialog,squeletteComposant));
addRuntime.addClickListener(buttonClickEvent -> {
dialog.open();
});
}
private boolean isActive(Button button){
@ -60,20 +47,11 @@ public class MenuScondaireDeployement extends HorizontalLayout {
}
}
private void active(Button button){
removeActive(addRuntime);
removeActive(deployment);
button.getClassNames().add("active");
}
public Button getAddRuntime() {
return addRuntime;
}
public void setAddRuntime(Button addRuntime) {
this.addRuntime = addRuntime;
}
public Button getDeployment() {
return deployment;
}

View file

@ -0,0 +1,61 @@
package org.chtijbug.drools.console.vaadinComponent.menu;
import com.vaadin.flow.component.button.Button;
import com.vaadin.flow.component.dependency.StyleSheet;
import com.vaadin.flow.component.dialog.Dialog;
import com.vaadin.flow.component.icon.VaadinIcon;
import com.vaadin.flow.component.orderedlayout.HorizontalLayout;
import org.chtijbug.drools.console.vaadinComponent.Squelette.SqueletteComposant;
import org.chtijbug.drools.console.vaadinComponent.componentView.AddRuntime;
import org.chtijbug.drools.console.vaadinComponent.leftMenu.Action.DeploymentAction;
import org.chtijbug.drools.console.vaadinComponent.leftMenu.Action.RuntimesAction;
import org.chtijbug.drools.console.view.DeploymentView;
import org.chtijbug.drools.console.view.RuntimesView;
@StyleSheet("css/accueil.css")
public class MenuSecondaireRuntime extends HorizontalLayout {
private Button gestionRuntime;
public MenuSecondaireRuntime(SqueletteComposant squeletteComposant){
setVisible(false);
setClassName("menu-secondaire-content");
gestionRuntime =new Button("Gestion", VaadinIcon.OUTBOX.create());
gestionRuntime.setClassName("menu-secondaire-button");
add(gestionRuntime);
gestionRuntime.addClickListener(buttonClickEvent -> {
if(!isActive(gestionRuntime)) {
active(gestionRuntime);
}
RuntimesView deploymentView=new RuntimesView();
RuntimesAction deploymentAction=new RuntimesAction(squeletteComposant);
squeletteComposant.navigate(deploymentView,DeploymentView.pageName,deploymentAction);
});
}
private boolean isActive(Button button){
return button.getClassNames().contains("active");
}
private void removeActive(Button button) {
if(button.getClassNames().contains("active")){
button.getClassNames().remove("active");
}
}
private void active(Button button){
removeActive(gestionRuntime);
button.getClassNames().add("active");
}
public Button getGestionRuntime() {
return gestionRuntime;
}
public void setGestionRuntime(Button gestionRuntime) {
this.gestionRuntime = gestionRuntime;
}
}

View file

@ -9,7 +9,7 @@ import com.vaadin.flow.router.Route;
import com.vaadin.flow.shared.communication.PushMode;
import org.chtijbug.drools.console.vaadinComponent.Squelette.SqueletteComposant;
@Push(PushMode.MANUAL)
@Push(PushMode.AUTOMATIC)
@StyleSheet("css/accueil.css")
@Route("accueil")
public class AccueilView extends SqueletteComposant implements BeforeEnterObserver {

View file

@ -13,15 +13,18 @@ import com.vaadin.flow.data.provider.ConfigurableFilterDataProvider;
import com.vaadin.flow.data.provider.ListDataProvider;
import com.vaadin.flow.data.value.ValueChangeMode;
import com.vaadin.flow.function.SerializablePredicate;
import com.vaadin.flow.shared.communication.PushMode;
import org.chtijbug.drools.console.AddLog;
import org.chtijbug.drools.console.service.ProjectPersistService;
import org.chtijbug.drools.console.service.util.AppContext;
import org.chtijbug.drools.console.vaadinComponent.Squelette.SqueletteComposant;
import org.chtijbug.drools.console.vaadinComponent.leftMenu.Action.DeploymentAction;
import org.chtijbug.drools.proxy.persistence.json.KeyProject;
import org.chtijbug.drools.proxy.persistence.model.ProjectPersist;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Set;
@StyleSheet("css/accueil.css")
@ -200,7 +203,7 @@ public class DeploymentView extends VerticalLayout implements AddLog{
else if(type.equals(strNameDeploy)){
columnPredicate = asset -> (asset.getDeploymentName()!=null&&asset.getDeploymentName().toUpperCase().contains(value.toUpperCase()));
} else if(type.equals(strNameProject)){
columnPredicate = asset -> (asset.getProjectName()!=null&&asset.getProjectName().toUpperCase().contains(value.toUpperCase()));
columnPredicate = asset -> (asset.getProjectName()!=null&&asset.getProjectName().toString().toUpperCase().contains(value.toUpperCase()));
}else if(type.equals(strProcessID)){
columnPredicate = asset -> (asset.getProcessID()!=null&&asset.getProcessID().toUpperCase().contains(value.toUpperCase()));
}else if(type.equals(strStatus)){
@ -213,9 +216,9 @@ public class DeploymentView extends VerticalLayout implements AddLog{
}
public void setDataProvider(){
Set<ProjectPersist> projectPersists = projectPersistService.getProjectsSession();
HashMap<String,ProjectPersist> projectPersists = projectPersistService.getProjectsSession();
if(projectPersists!=null) {
dataProvider = new ListDataProvider<>(projectPersists);
dataProvider = new ListDataProvider<>(projectPersists.values());
filterDataProvider = dataProvider.withConfigurableFilter();
@ -257,7 +260,7 @@ public class DeploymentView extends VerticalLayout implements AddLog{
@Override
public void addRow(String textToAdd,UI ui) {
getUI().get().access(()->{
ui.access(()->{
HorizontalLayout horizontalLayout=new HorizontalLayout();
horizontalLayout.setClassName("console-row");
@ -265,19 +268,22 @@ public class DeploymentView extends VerticalLayout implements AddLog{
date.setClassName("console-date");
horizontalLayout.add(date);
horizontalLayout.add(new Label(textToAdd));
squeletteComposant.getConsoleDeploy().getLogContent().getElement().getNode().markAsDirty();
squeletteComposant.getConsoleDeploy().getLogContent().add(horizontalLayout);
//getUI().get().push();
});
/**
ui.getSession().lock();
try {
ui.getPushConfiguration().setPushMode(PushMode.AUTOMATIC);
ui.push();
}catch (Exception e){
e.printStackTrace();
ui.getSession().unlock();
}finally {
ui.getSession().unlock();
}
**/
System.out.println(textToAdd);
}
public Grid<ProjectPersist> getProjectPersistGrid() {
return projectPersistGrid;

View file

@ -0,0 +1,20 @@
package org.chtijbug.drools.console.view;
import com.vaadin.flow.component.dependency.StyleSheet;
import com.vaadin.flow.component.html.Label;
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import org.chtijbug.drools.console.vaadinComponent.componentView.GridRuntime;
@StyleSheet("css/accueil.css")
public class RuntimesView extends VerticalLayout {
public static final String pageName="Runtimes";
public RuntimesView(){
add(new Label("Runtimes enrigistré"));
add(new GridRuntime());
}
}