avancement template + excel
This commit is contained in:
parent
f3a1407e00
commit
7ef810b391
14 changed files with 525 additions and 180 deletions
|
|
@ -12,8 +12,8 @@
|
||||||
<artifactId>drools-framework-admin-console</artifactId>
|
<artifactId>drools-framework-admin-console</artifactId>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<vaadin.version>12.0.2</vaadin.version>
|
<vaadin.version>12.0.5</vaadin.version>
|
||||||
<spring-boot.version>2.1.0.RELEASE</spring-boot.version>
|
<spring-boot.version>2.1.2.RELEASE</spring-boot.version>
|
||||||
<spring-version>5.1.2.RELEASE</spring-version>
|
<spring-version>5.1.2.RELEASE</spring-version>
|
||||||
<webapp.directory>src/main/webapp</webapp.directory>
|
<webapp.directory>src/main/webapp</webapp.directory>
|
||||||
<jbpm.version>7.15.0.Final</jbpm.version>
|
<jbpm.version>7.15.0.Final</jbpm.version>
|
||||||
|
|
@ -57,6 +57,19 @@
|
||||||
|
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.poi</groupId>
|
||||||
|
<artifactId>poi</artifactId>
|
||||||
|
<version>4.0.1</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.poi</groupId>
|
||||||
|
<artifactId>poi-ooxml</artifactId>
|
||||||
|
<version>4.0.1</version>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.kie.server</groupId>
|
<groupId>org.kie.server</groupId>
|
||||||
<artifactId>kie-server-api</artifactId>
|
<artifactId>kie-server-api</artifactId>
|
||||||
|
|
@ -93,10 +106,19 @@
|
||||||
<groupId>com.vaadin</groupId>
|
<groupId>com.vaadin</groupId>
|
||||||
<artifactId>vaadin-core</artifactId>
|
<artifactId>vaadin-core</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.vaadin</groupId>
|
||||||
|
<artifactId>vaadin-upload-flow</artifactId>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.vaadin</groupId>
|
<groupId>com.vaadin</groupId>
|
||||||
<artifactId>vaadin-spring-boot-starter</artifactId>
|
<artifactId>vaadin-spring-boot-starter</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.vaadin.olli</groupId>
|
||||||
|
<artifactId>file-download-wrapper</artifactId>
|
||||||
|
<version>1.1.0</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,153 @@
|
||||||
|
package org.chtijbug.drools.console.service;
|
||||||
|
|
||||||
|
import javassist.bytecode.ByteArray;
|
||||||
|
import org.apache.poi.ss.usermodel.*;
|
||||||
|
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||||
|
import org.chtijbug.drools.console.service.model.kie.KieConfigurationData;
|
||||||
|
import org.chtijbug.drools.console.service.util.AppContext;
|
||||||
|
import org.drools.workbench.models.datamodel.rule.InterpolationVariable;
|
||||||
|
import org.drools.workbench.models.guided.template.backend.RuleTemplateModelXMLPersistenceImpl;
|
||||||
|
import org.drools.workbench.models.guided.template.shared.TemplateModel;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.io.*;
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class ExcelService {
|
||||||
|
|
||||||
|
|
||||||
|
private KieRepositoryService kieRepositoryService;
|
||||||
|
private KieConfigurationData config;
|
||||||
|
|
||||||
|
private UserConnectedService userConnectedService;
|
||||||
|
|
||||||
|
|
||||||
|
public ExcelService(){
|
||||||
|
this.kieRepositoryService = AppContext.getApplicationContext().getBean(KieRepositoryService.class);
|
||||||
|
this.config = AppContext.getApplicationContext().getBean(KieConfigurationData.class);
|
||||||
|
this.userConnectedService = AppContext.getApplicationContext().getBean(UserConnectedService.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public List<HashMap<String,Object>> importExcel(InputStream inputStream) throws IOException {
|
||||||
|
|
||||||
|
Workbook workbook= WorkbookFactory.create(inputStream);
|
||||||
|
|
||||||
|
DataFormatter dataFormatter = new DataFormatter();
|
||||||
|
|
||||||
|
List<HashMap<String,Object>> result=new ArrayList<>();
|
||||||
|
|
||||||
|
for(Sheet sheet: workbook) {
|
||||||
|
for (Row row: sheet) {
|
||||||
|
|
||||||
|
if(row.getRowNum()!=0) {
|
||||||
|
|
||||||
|
HashMap<String, Object> tmp = new HashMap<>();
|
||||||
|
result.add(tmp);
|
||||||
|
|
||||||
|
for (Cell cell : row) {
|
||||||
|
String cellValue = dataFormatter.formatCellValue(cell);
|
||||||
|
|
||||||
|
Integer numColumn = cell.getColumnIndex();
|
||||||
|
Cell title = sheet.getRow(0).getCell(numColumn);
|
||||||
|
tmp.put(dataFormatter.formatCellValue(title), cellValue);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
public ByteArrayInputStream exportExcel(String nameTemplate){
|
||||||
|
|
||||||
|
//Récupération des objets JAVA
|
||||||
|
|
||||||
|
String assetContent = kieRepositoryService.getAssetSource(config.getKiewbUrl(),
|
||||||
|
userConnectedService.getUserConnected().getUserName(),
|
||||||
|
userConnectedService.getUserConnected().getUserPassword(),
|
||||||
|
userConnectedService.getSpace(),
|
||||||
|
userConnectedService.getProject(),
|
||||||
|
userConnectedService.getAsset());
|
||||||
|
|
||||||
|
TemplateModel model = RuleTemplateModelXMLPersistenceImpl.getInstance().unmarshal(assetContent);
|
||||||
|
InterpolationVariable[] variablesList = model.getInterpolationVariablesList();
|
||||||
|
String[][] contenuTable = model.getTableAsArray();
|
||||||
|
|
||||||
|
|
||||||
|
List<HashMap<String, Object>> rows = new ArrayList<>();
|
||||||
|
for (int i = 0; i < model.getRowsCount(); i++) {
|
||||||
|
HashMap<String, Object> newRow = new HashMap<>();
|
||||||
|
rows.add(newRow);
|
||||||
|
String[] ligne = contenuTable[i];
|
||||||
|
int k = 0;
|
||||||
|
for (InterpolationVariable j : variablesList) {
|
||||||
|
newRow.put(j.getVarName(), ligne[k]);
|
||||||
|
k++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Workbook workbook = new XSSFWorkbook();
|
||||||
|
CreationHelper createHelper = workbook.getCreationHelper();
|
||||||
|
Sheet sheet = workbook.createSheet(nameTemplate);
|
||||||
|
|
||||||
|
Font headerFont = workbook.createFont();
|
||||||
|
headerFont.setFontHeightInPoints((short) 12);
|
||||||
|
headerFont.setColor(IndexedColors.BLACK.getIndex());
|
||||||
|
|
||||||
|
CellStyle headerCellStyle = workbook.createCellStyle();
|
||||||
|
headerCellStyle.setFont(headerFont);
|
||||||
|
|
||||||
|
Row headerRow=sheet.createRow(0);
|
||||||
|
|
||||||
|
if(rows!=null&&rows.size()!=0){
|
||||||
|
int columnIndex=0;
|
||||||
|
for(Map.Entry<String,Object> t:rows.get(0).entrySet()){
|
||||||
|
Cell cell=headerRow.createCell(columnIndex);
|
||||||
|
cell.setCellValue(t.getKey());
|
||||||
|
cell.setCellStyle(headerCellStyle);
|
||||||
|
columnIndex++;
|
||||||
|
}
|
||||||
|
int rowIndex=1;
|
||||||
|
for(HashMap<String,Object> t:rows) {
|
||||||
|
|
||||||
|
int columnIndexTmp=0;
|
||||||
|
Row r=sheet.createRow(rowIndex);
|
||||||
|
|
||||||
|
for (Map.Entry<String, Object> tmp : t.entrySet()) {
|
||||||
|
Cell cell=r.createCell(columnIndexTmp);
|
||||||
|
cell.setCellValue(String.valueOf(tmp.getValue()));
|
||||||
|
cell.setCellStyle(headerCellStyle);
|
||||||
|
columnIndexTmp++;
|
||||||
|
}
|
||||||
|
rowIndex++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ByteArrayOutputStream bos = new ByteArrayOutputStream();
|
||||||
|
try {
|
||||||
|
FileOutputStream fileOutputStream=new FileOutputStream("/home/guillaume/test.xlsx");
|
||||||
|
workbook.write(fileOutputStream);
|
||||||
|
} catch (FileNotFoundException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
workbook.write(bos);
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
byte[] barray = bos.toByteArray();
|
||||||
|
ByteArrayInputStream is = new ByteArrayInputStream(barray);
|
||||||
|
|
||||||
|
try {
|
||||||
|
workbook.close();
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
return is;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -9,20 +9,18 @@ import org.chtijbug.drools.console.service.model.kie.JobStatus;
|
||||||
import org.chtijbug.guvnor.server.jaxrs.api.UserLoginInformation;
|
import org.chtijbug.guvnor.server.jaxrs.api.UserLoginInformation;
|
||||||
import org.chtijbug.guvnor.server.jaxrs.jaxb.Asset;
|
import org.chtijbug.guvnor.server.jaxrs.jaxb.Asset;
|
||||||
import org.chtijbug.guvnor.server.jaxrs.model.PlatformProjectResponse;
|
import org.chtijbug.guvnor.server.jaxrs.model.PlatformProjectResponse;
|
||||||
|
import org.drools.workbench.models.guided.template.backend.RuleTemplateModelXMLPersistenceImpl;
|
||||||
|
import org.drools.workbench.models.guided.template.shared.TemplateModel;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.http.HttpHeaders;
|
import org.springframework.core.ParameterizedTypeReference;
|
||||||
import org.springframework.http.HttpMethod;
|
import org.springframework.http.*;
|
||||||
import org.springframework.http.MediaType;
|
|
||||||
import org.springframework.http.ResponseEntity;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.web.client.RequestCallback;
|
import org.springframework.web.client.RequestCallback;
|
||||||
import org.springframework.web.client.RestTemplate;
|
import org.springframework.web.client.RestTemplate;
|
||||||
|
|
||||||
import java.nio.charset.Charset;
|
import java.nio.charset.Charset;
|
||||||
import java.util.Arrays;
|
import java.util.*;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Scanner;
|
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class KieRepositoryService {
|
public class KieRepositoryService {
|
||||||
|
|
@ -35,8 +33,57 @@ public class KieRepositoryService {
|
||||||
|
|
||||||
private ObjectMapper mapper = new ObjectMapper();
|
private ObjectMapper mapper = new ObjectMapper();
|
||||||
|
|
||||||
|
private String pojoToStringMethod(String assetContent,List<HashMap<String,Object>> objects){
|
||||||
|
|
||||||
public String getAssetSource(String url, String username, String password, String spaceName, String projectName, String assetName) {
|
TemplateModel model = RuleTemplateModelXMLPersistenceImpl.getInstance().unmarshal(assetContent);
|
||||||
|
int i=0;
|
||||||
|
model.clearRows();
|
||||||
|
for(HashMap<String,Object> t:objects){
|
||||||
|
|
||||||
|
List<String> row=new ArrayList<>();
|
||||||
|
for (Map.Entry<String,Object> entry:t.entrySet()){
|
||||||
|
row.add(String.valueOf(entry.getValue()));
|
||||||
|
}
|
||||||
|
model.addRow(i,row.toArray(new String[row.size()]));
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return RuleTemplateModelXMLPersistenceImpl.getInstance().marshal(model);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void updateAssetSource(String url, String username, String password, String spaceName, String projectName, String assetName,List<HashMap<String,Object>> objects) {
|
||||||
|
|
||||||
|
String assetContent = getAssetSource(url,
|
||||||
|
username,
|
||||||
|
password,
|
||||||
|
spaceName,
|
||||||
|
projectName,
|
||||||
|
assetName);
|
||||||
|
|
||||||
|
|
||||||
|
String completeurl = url + "/chtijbug/" + spaceName + "/" + projectName + "/assets/" + assetName + "/source";
|
||||||
|
|
||||||
|
String content=pojoToStringMethod(assetContent,objects);
|
||||||
|
logger.info("url moteur reco : " + completeurl);
|
||||||
|
|
||||||
|
ResponseEntity response = restTemplateKiewb
|
||||||
|
.execute(completeurl, HttpMethod.POST, requestCallback(content, username, password), clientHttpResponse -> {
|
||||||
|
String extractedResponse = null;
|
||||||
|
if (clientHttpResponse.getBody() != null) {
|
||||||
|
Scanner s = new Scanner(clientHttpResponse.getBody()).useDelimiter("\\A");
|
||||||
|
String result = s.hasNext() ? s.next() : "";
|
||||||
|
extractedResponse = result;
|
||||||
|
}
|
||||||
|
ResponseEntity extractedValue = new ResponseEntity<>(extractedResponse, clientHttpResponse.getHeaders(), clientHttpResponse.getStatusCode());
|
||||||
|
return extractedValue;
|
||||||
|
});
|
||||||
|
|
||||||
|
// restTemplateKiewb.exchange(completeurl, HttpMethod.POST, requestCallBack(content, username, password), void.class);
|
||||||
|
System.out.println("");
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAssetSource(String url, String username, String password, String spaceName, String projectName, String assetName) {
|
||||||
String completeurl = url + "/chtijbug/" + spaceName + "/" + projectName + "/assets/" + assetName + "/source";
|
String completeurl = url + "/chtijbug/" + spaceName + "/" + projectName + "/assets/" + assetName + "/source";
|
||||||
logger.info("url moteur reco : " + completeurl);
|
logger.info("url moteur reco : " + completeurl);
|
||||||
ResponseEntity<String> response = restTemplateKiewb
|
ResponseEntity<String> response = restTemplateKiewb
|
||||||
|
|
@ -169,6 +216,23 @@ public class KieRepositoryService {
|
||||||
return reponseMoteur;
|
return reponseMoteur;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private HttpEntity requestCallBack(final Object content, String username, String password){
|
||||||
|
HttpHeaders httpHeaders=new HttpHeaders();
|
||||||
|
httpHeaders.add(
|
||||||
|
HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE);
|
||||||
|
httpHeaders.add(
|
||||||
|
HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON_VALUE);
|
||||||
|
String auth = username + ":" + password;
|
||||||
|
byte[] encodedAuth = Base64.encodeBase64(
|
||||||
|
auth.getBytes(Charset.forName("UTF-8")));
|
||||||
|
String authHeader = "Basic " + new String(encodedAuth);
|
||||||
|
httpHeaders.add(
|
||||||
|
HttpHeaders.AUTHORIZATION, authHeader);
|
||||||
|
HttpEntity httpEntity=new HttpEntity(content,httpHeaders);
|
||||||
|
|
||||||
|
|
||||||
|
return httpEntity;
|
||||||
|
}
|
||||||
|
|
||||||
private RequestCallback requestCallback(final Object content, String username, String password) {
|
private RequestCallback requestCallback(final Object content, String username, String password) {
|
||||||
return clientHttpRequest -> {
|
return clientHttpRequest -> {
|
||||||
|
|
|
||||||
|
|
@ -27,21 +27,12 @@ import java.time.ZoneId;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
@StyleSheet("css/accueil.css")
|
@StyleSheet("css/accueil.css")
|
||||||
public class AssetEdit extends VerticalLayout {
|
public class AssetEdit extends Grid<HashMap<String, Object>> {
|
||||||
|
|
||||||
private KieRepositoryService kieRepositoryService;
|
private KieRepositoryService kieRepositoryService;
|
||||||
private KieConfigurationData config;
|
private KieConfigurationData config;
|
||||||
private UserConnected userConnected;
|
|
||||||
private String assetToUpdate;
|
|
||||||
private XmlMapper mapper = new XmlMapper();
|
|
||||||
|
|
||||||
private Grid<Map<String, Object>> gridAssetTable;
|
|
||||||
private Button startUpdate;
|
|
||||||
private Button commitUpdate;
|
|
||||||
private Button undoUpdate;
|
|
||||||
private UserConnectedService userConnectedService;
|
private UserConnectedService userConnectedService;
|
||||||
private String spaceName;
|
|
||||||
private String projectName;
|
|
||||||
|
|
||||||
public AssetEdit() {
|
public AssetEdit() {
|
||||||
|
|
||||||
|
|
@ -50,171 +41,65 @@ public class AssetEdit extends VerticalLayout {
|
||||||
this.kieRepositoryService = AppContext.getApplicationContext().getBean(KieRepositoryService.class);
|
this.kieRepositoryService = AppContext.getApplicationContext().getBean(KieRepositoryService.class);
|
||||||
this.config = AppContext.getApplicationContext().getBean(KieConfigurationData.class);
|
this.config = AppContext.getApplicationContext().getBean(KieConfigurationData.class);
|
||||||
this.userConnectedService = AppContext.getApplicationContext().getBean(UserConnectedService.class);
|
this.userConnectedService = AppContext.getApplicationContext().getBean(UserConnectedService.class);
|
||||||
this.userConnected = userConnectedService.getUserConnected();
|
|
||||||
this.assetToUpdate = userConnectedService.getAsset();
|
|
||||||
|
|
||||||
this.spaceName = userConnectedService.getSpace();
|
String assetContent = kieRepositoryService.getAssetSource(config.getKiewbUrl(),
|
||||||
this.projectName = userConnectedService.getProject();
|
userConnectedService.getUserConnected().getUserName(),
|
||||||
String assetContent = kieRepositoryService.getAssetSource(config.getKiewbUrl(), userConnected.getUserName(), userConnected.getUserPassword(), spaceName, projectName, assetToUpdate);
|
userConnectedService.getUserConnected().getUserPassword(),
|
||||||
|
userConnectedService.getSpace(),
|
||||||
|
userConnectedService.getProject(),
|
||||||
|
userConnectedService.getAsset());
|
||||||
|
|
||||||
TemplateModel model = RuleTemplateModelXMLPersistenceImpl.getInstance().unmarshal(assetContent);
|
TemplateModel model = RuleTemplateModelXMLPersistenceImpl.getInstance().unmarshal(assetContent);
|
||||||
|
|
||||||
HorizontalLayout actionButtons = new HorizontalLayout();
|
|
||||||
add(actionButtons);
|
|
||||||
startUpdate = new Button("Update");
|
|
||||||
actionButtons.add(startUpdate);
|
|
||||||
|
|
||||||
startUpdate.addClickListener(event -> {
|
|
||||||
startUpdate.setEnabled(false);
|
|
||||||
commitUpdate.setEnabled(true);
|
|
||||||
undoUpdate.setEnabled(true);
|
|
||||||
gridAssetTable.setEnabled(true);
|
|
||||||
//gridAssetTable.getEditor().setEnabled(true);
|
|
||||||
});
|
|
||||||
commitUpdate = new Button("Commit");
|
|
||||||
commitUpdate.setEnabled(false);
|
|
||||||
commitUpdate.addClickListener(event -> {
|
|
||||||
startUpdate.setEnabled(true);
|
|
||||||
commitUpdate.setEnabled(false);
|
|
||||||
undoUpdate.setEnabled(false);
|
|
||||||
// gridAssetTable.getEditor().setEnabled(false);
|
|
||||||
|
|
||||||
});
|
|
||||||
actionButtons.add(commitUpdate);
|
|
||||||
undoUpdate = new Button("undo");
|
|
||||||
undoUpdate.setEnabled(false);
|
|
||||||
undoUpdate.addClickListener(event -> {
|
|
||||||
startUpdate.setEnabled(true);
|
|
||||||
commitUpdate.setEnabled(false);
|
|
||||||
undoUpdate.setEnabled(false);
|
|
||||||
// gridAssetTable.getEditor().setEnabled(false);
|
|
||||||
fillTable(model);
|
|
||||||
|
|
||||||
});
|
|
||||||
actionButtons.add(undoUpdate);
|
|
||||||
InterpolationVariable[] variablesList = model.getInterpolationVariablesList();
|
InterpolationVariable[] variablesList = model.getInterpolationVariablesList();
|
||||||
gridAssetTable = new Grid<>();
|
|
||||||
add(gridAssetTable);
|
setClassName("grid-perso");
|
||||||
gridAssetTable.setClassName("grid-perso");
|
|
||||||
gridAssetTable.setSelectionMode(Grid.SelectionMode.SINGLE);
|
Binder<HashMap<String, Object>> binder = new Binder<>();
|
||||||
Binder<Map<String, Object>> binder = new Binder<>();
|
getEditor().setBinder(binder);
|
||||||
gridAssetTable.getEditor().setBinder(binder);
|
|
||||||
|
|
||||||
|
|
||||||
Map<String, Object> initRow = new HashMap<>();
|
|
||||||
for (InterpolationVariable i : variablesList) {
|
for (InterpolationVariable i : variablesList) {
|
||||||
gridAssetTable.addColumn(hashmap -> hashmap.get(i.getVarName()));
|
addColumn(hashmap -> hashmap.get(i.getVarName())).setHeader(i.getVarName());
|
||||||
/**
|
|
||||||
if (i.getDataType().equals("String")) {
|
|
||||||
Binder.Binding<Map<String, Object>, String> b = createTextField(i.getVarName(), binder);
|
|
||||||
initRow.put(i.getVarName(), i.getVarName());
|
|
||||||
gridAssetTable.addColumn(hashmap -> hashmap.get(i.getVarName()), new ComponentRenderer(()).setEditorBinding(b).setCaption(i.getVarName());
|
|
||||||
|
|
||||||
} else if (i.getDataType().equals("Date")) {
|
|
||||||
Binder.Binding<Map<String, Object>, LocalDate> b = createDateField(i.getVarName(), binder);
|
|
||||||
initRow.put(i.getVarName(), new Date());
|
|
||||||
gridAssetTable.addColumn(hashmap -> toDate((String) hashmap.get(i.getVarName())), new DateRenderer()).setId(i.getVarName()).setEditorBinding(b).setCaption(i.getVarName());
|
|
||||||
} else {
|
|
||||||
Binder.Binding<Map<String, Object>, String> b = createTextField(i.getVarName(), binder);
|
|
||||||
initRow.put(i.getVarName(), i.getVarName());
|
|
||||||
gridAssetTable.addColumn(hashmap -> hashmap.get(i.getVarName()), new com.vaadin.ui.renderers.TextRenderer()).setId(i.getVarName()).setEditorBinding(b).setCaption(i.getVarName());
|
|
||||||
}
|
|
||||||
**/
|
|
||||||
}
|
}
|
||||||
binder.setBean(giveInitRow(model));
|
|
||||||
fillTable(model);
|
fillTable(model);
|
||||||
gridAssetTable.setSizeFull();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private Date toDate(String dateString) {
|
public AssetEdit(List<HashMap<String, Object>> objects) {
|
||||||
DateFormat format = new SimpleDateFormat("dd-MMM-yyyy", Locale.FRANCE);
|
|
||||||
Date result = null;
|
|
||||||
try {
|
|
||||||
result = format.parse(dateString);
|
|
||||||
} catch (ParseException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
private Binder.Binding<Map<String, Object>, String> createTextField(String code, Binder<Map<String, Object>> binder) {
|
setClassName("assetEdit-content");
|
||||||
TextField tf = new TextField();
|
|
||||||
//tf.setWidth(250, Plotter.Unit.PIXELS);
|
|
||||||
|
|
||||||
//bind element
|
this.kieRepositoryService = AppContext.getApplicationContext().getBean(KieRepositoryService.class);
|
||||||
|
this.config = AppContext.getApplicationContext().getBean(KieConfigurationData.class);
|
||||||
|
this.userConnectedService = AppContext.getApplicationContext().getBean(UserConnectedService.class);
|
||||||
|
|
||||||
Binder.Binding<Map<String, Object>, String> binding = binder.forField(tf).bind(// getter
|
setClassName("grid-perso");
|
||||||
hash -> {
|
|
||||||
return (String) hash.get(code);
|
|
||||||
},
|
|
||||||
//setter
|
|
||||||
(hash, fieldValue) -> {
|
|
||||||
hash.put(code, fieldValue);
|
|
||||||
});
|
|
||||||
return binding;
|
|
||||||
|
|
||||||
}
|
Binder<HashMap<String, Object>> binder = new Binder<>();
|
||||||
|
getEditor().setBinder(binder);
|
||||||
|
|
||||||
private Binder.Binding<Map<String, Object>, LocalDate> createDateField(String code, Binder<Map<String, Object>> binder) {
|
if(objects.size()>0){
|
||||||
DatePicker tf = new DatePicker();
|
for(Map.Entry<String,Object> t:objects.get(0).entrySet()){
|
||||||
// tf.setWidth(250, Unit.PIXELS);
|
addColumn(hashmap -> hashmap.get(t.getKey())).setHeader(t.getKey());
|
||||||
|
|
||||||
//bind element
|
|
||||||
|
|
||||||
Binder.Binding<Map<String, Object>, LocalDate> binding = binder.forField(tf).bind(// getter
|
|
||||||
hash -> {
|
|
||||||
return toLocalDate(toDate((String) hash.get(code)));
|
|
||||||
},
|
|
||||||
//setter
|
|
||||||
(hash, fieldValue) -> {
|
|
||||||
hash.put(code, toString(fieldValue));
|
|
||||||
gridAssetTable.getDataProvider().refreshAll();
|
|
||||||
});
|
|
||||||
return binding;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private String toString(LocalDate input) {
|
|
||||||
String result = null;
|
|
||||||
|
|
||||||
DateFormat format = new SimpleDateFormat("dd-MMM-yyyy", Locale.FRANCE);
|
|
||||||
Date theDate = Date.from(input.atStartOfDay()
|
|
||||||
.atZone(ZoneId.systemDefault())
|
|
||||||
.toInstant());
|
|
||||||
result = format.format(theDate);
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
private LocalDate toLocalDate(Date input) {
|
|
||||||
LocalDate result = null;
|
|
||||||
if (input != null) {
|
|
||||||
result = Instant.ofEpochMilli(input.getTime()).atZone(ZoneId.of("Europe/Paris")).toLocalDate();
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
private Map<String, Object> giveInitRow(TemplateModel model) {
|
|
||||||
InterpolationVariable[] variablesList = model.getInterpolationVariablesList();
|
|
||||||
Map<String, Object> newRow = new HashMap<>();
|
|
||||||
String[][] contenuTable = model.getTableAsArray();
|
|
||||||
if (contenuTable.length > 0) {
|
|
||||||
String[] ligne = contenuTable[0];
|
|
||||||
int k = 0;
|
|
||||||
for (InterpolationVariable j : variablesList) {
|
|
||||||
newRow.put(j.getVarName(), ligne[k]);
|
|
||||||
k++;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return newRow;
|
|
||||||
|
setItems(objects);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void maj(List<HashMap<String, Object>> objects){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private void fillTable(TemplateModel model) {
|
private void fillTable(TemplateModel model) {
|
||||||
InterpolationVariable[] variablesList = model.getInterpolationVariablesList();
|
InterpolationVariable[] variablesList = model.getInterpolationVariablesList();
|
||||||
DateFormat format = new SimpleDateFormat("dd-MMM-yyyy", Locale.FRANCE);
|
DateFormat format = new SimpleDateFormat("dd-MMM-yyyy", Locale.FRANCE);
|
||||||
String[][] contenuTable = model.getTableAsArray();
|
String[][] contenuTable = model.getTableAsArray();
|
||||||
List<Map<String, Object>> rows = new ArrayList<>();
|
List<HashMap<String, Object>> rows = new ArrayList<>();
|
||||||
for (int i = 0; i < model.getRowsCount(); i++) {
|
for (int i = 0; i < model.getRowsCount(); i++) {
|
||||||
Map<String, Object> newRow = new HashMap<>();
|
HashMap<String, Object> newRow = new HashMap<>();
|
||||||
rows.add(newRow);
|
rows.add(newRow);
|
||||||
String[] ligne = contenuTable[i];
|
String[] ligne = contenuTable[i];
|
||||||
int k = 0;
|
int k = 0;
|
||||||
|
|
@ -223,7 +108,7 @@ public class AssetEdit extends VerticalLayout {
|
||||||
k++;
|
k++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
gridAssetTable.setItems(rows);
|
setItems(rows);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -123,6 +123,7 @@ public class GridActionLogging extends Grid<BusinessTransactionAction> {
|
||||||
addColumn(new ComponentRenderer<>(runtimePersist -> {
|
addColumn(new ComponentRenderer<>(runtimePersist -> {
|
||||||
|
|
||||||
Checkbox label=new Checkbox();
|
Checkbox label=new Checkbox();
|
||||||
|
label.setEnabled(false);
|
||||||
label.setValue(false);
|
label.setValue(false);
|
||||||
|
|
||||||
if(runtimePersist.getInputData()!=null&&runtimePersist.getInputData().getRealFact()!=null){
|
if(runtimePersist.getInputData()!=null&&runtimePersist.getInputData().getRealFact()!=null){
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,12 @@
|
||||||
package org.chtijbug.drools.console.vaadinComponent.leftMenu.Action;
|
package org.chtijbug.drools.console.vaadinComponent.leftMenu.Action;
|
||||||
|
|
||||||
import com.vaadin.flow.component.button.Button;
|
import com.vaadin.flow.component.button.Button;
|
||||||
|
import com.vaadin.flow.component.combobox.ComboBox;
|
||||||
import com.vaadin.flow.component.icon.VaadinIcon;
|
import com.vaadin.flow.component.icon.VaadinIcon;
|
||||||
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
|
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
|
||||||
|
import org.chtijbug.drools.console.vaadinComponent.ComponentPerso.ComboBoxPerso;
|
||||||
import org.chtijbug.drools.console.view.TemplateView;
|
import org.chtijbug.drools.console.view.TemplateView;
|
||||||
|
import org.chtijbug.guvnor.server.jaxrs.model.PlatformProjectResponse;
|
||||||
|
|
||||||
public class TemplatesAction extends VerticalLayout {
|
public class TemplatesAction extends VerticalLayout {
|
||||||
|
|
||||||
|
|
@ -13,16 +16,28 @@ public class TemplatesAction extends VerticalLayout {
|
||||||
|
|
||||||
private Button edit;
|
private Button edit;
|
||||||
|
|
||||||
|
private ComboBoxPerso<PlatformProjectResponse> spaceSelection;
|
||||||
|
|
||||||
public TemplatesAction(TemplateView templateView){
|
public TemplatesAction(TemplateView templateView){
|
||||||
|
|
||||||
setClassName("leftMenu-global-action");
|
setClassName("leftMenu-global-action");
|
||||||
|
|
||||||
|
|
||||||
|
spaceSelection = new ComboBoxPerso<>("Project",VaadinIcon.SEARCH.create());
|
||||||
|
spaceSelection.getComboBox().setItems(templateView.getUserConnectedService().getUserConnected().getProjectResponses());
|
||||||
|
spaceSelection.getComboBox().setItemLabelGenerator(PlatformProjectResponse::getName);
|
||||||
|
spaceSelection.getComboBox().addValueChangeListener(valueChangeEvent -> {
|
||||||
|
templateView.setDataProvider(spaceSelection.getComboBox());
|
||||||
|
});
|
||||||
|
add(spaceSelection);
|
||||||
|
|
||||||
|
|
||||||
refresh =new Button("Refresh", VaadinIcon.ROTATE_LEFT.create());
|
refresh =new Button("Refresh", VaadinIcon.ROTATE_LEFT.create());
|
||||||
refresh.setClassName("leftMenu-global-button");
|
refresh.setClassName("leftMenu-global-button");
|
||||||
add(refresh);
|
add(refresh);
|
||||||
refresh.addClickListener(buttonClickEvent -> {
|
refresh.addClickListener(buttonClickEvent -> {
|
||||||
active(refresh);
|
active(refresh);
|
||||||
templateView.refreshList();
|
templateView.refreshList(spaceSelection.getComboBox());
|
||||||
});
|
});
|
||||||
|
|
||||||
duplicate =new Button("Duplicate",VaadinIcon.TOOLS.create());
|
duplicate =new Button("Duplicate",VaadinIcon.TOOLS.create());
|
||||||
|
|
@ -40,7 +55,7 @@ public class TemplatesAction extends VerticalLayout {
|
||||||
add(edit);
|
add(edit);
|
||||||
edit.addClickListener(buttonClickEvent -> {
|
edit.addClickListener(buttonClickEvent -> {
|
||||||
active(edit);
|
active(edit);
|
||||||
templateView.edit();
|
templateView.edit(spaceSelection.getComboBox());
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
private boolean isActive(Button button){
|
private boolean isActive(Button button){
|
||||||
|
|
@ -58,7 +73,6 @@ public class TemplatesAction extends VerticalLayout {
|
||||||
removeActive(edit);
|
removeActive(edit);
|
||||||
button.getClassNames().add("active");
|
button.getClassNames().add("active");
|
||||||
}
|
}
|
||||||
|
|
||||||
public Button getRefresh() {
|
public Button getRefresh() {
|
||||||
return refresh;
|
return refresh;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -116,6 +116,7 @@ public class ActionLoggingView extends VerticalLayout {
|
||||||
verticalLayout.setClassName("content-action-logging");
|
verticalLayout.setClassName("content-action-logging");
|
||||||
|
|
||||||
TextArea textArea=new TextArea(b.getInputData().getFactType().name());
|
TextArea textArea=new TextArea(b.getInputData().getFactType().name());
|
||||||
|
textArea.setReadOnly(true);
|
||||||
textArea.setClassName("content-log");
|
textArea.setClassName("content-log");
|
||||||
textArea.setValue(
|
textArea.setValue(
|
||||||
b.getInputData().getRealFact().toString().replaceAll(",",",\n")
|
b.getInputData().getRealFact().toString().replaceAll(",",",\n")
|
||||||
|
|
@ -147,6 +148,7 @@ public class ActionLoggingView extends VerticalLayout {
|
||||||
verticalLayout.setClassName("content-action-logging");
|
verticalLayout.setClassName("content-action-logging");
|
||||||
|
|
||||||
TextArea textArea=new TextArea(b.getFact().getFactType().name());
|
TextArea textArea=new TextArea(b.getFact().getFactType().name());
|
||||||
|
textArea.setReadOnly(true);
|
||||||
textArea.setClassName("content-log");
|
textArea.setClassName("content-log");
|
||||||
textArea.setValue(
|
textArea.setValue(
|
||||||
b.getFact().getRealFact().toString().replaceAll(",",",\n")
|
b.getFact().getRealFact().toString().replaceAll(",",",\n")
|
||||||
|
|
@ -180,6 +182,7 @@ public class ActionLoggingView extends VerticalLayout {
|
||||||
if(fact!=null&&fact.getRealFact()!=null){
|
if(fact!=null&&fact.getRealFact()!=null){
|
||||||
|
|
||||||
TextArea textArea=new TextArea(fact.getFactType().name());
|
TextArea textArea=new TextArea(fact.getFactType().name());
|
||||||
|
textArea.setReadOnly(true);
|
||||||
textArea.setClassName("content-log");
|
textArea.setClassName("content-log");
|
||||||
textArea.setValue(
|
textArea.setValue(
|
||||||
fact.getRealFact().toString().replaceAll(",",",\n")
|
fact.getRealFact().toString().replaceAll(",",",\n")
|
||||||
|
|
@ -212,6 +215,7 @@ public class ActionLoggingView extends VerticalLayout {
|
||||||
if(fact!=null&&fact.getRealFact()!=null){
|
if(fact!=null&&fact.getRealFact()!=null){
|
||||||
|
|
||||||
TextArea textArea=new TextArea(fact.getFactType().name());
|
TextArea textArea=new TextArea(fact.getFactType().name());
|
||||||
|
textArea.setReadOnly(true);
|
||||||
textArea.setClassName("content-log");
|
textArea.setClassName("content-log");
|
||||||
textArea.setValue(
|
textArea.setValue(
|
||||||
fact.getRealFact().toString().replaceAll(",",",\n")
|
fact.getRealFact().toString().replaceAll(",",",\n")
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,129 @@
|
||||||
|
package org.chtijbug.drools.console.view;
|
||||||
|
|
||||||
|
import com.vaadin.flow.component.button.Button;
|
||||||
|
import com.vaadin.flow.component.html.Span;
|
||||||
|
import com.vaadin.flow.component.notification.Notification;
|
||||||
|
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
|
||||||
|
import com.vaadin.flow.component.upload.Upload;
|
||||||
|
import com.vaadin.flow.component.upload.receivers.FileBuffer;
|
||||||
|
import com.vaadin.flow.component.upload.receivers.MemoryBuffer;
|
||||||
|
import com.vaadin.flow.component.upload.receivers.MultiFileBuffer;
|
||||||
|
import com.vaadin.flow.server.StreamResource;
|
||||||
|
import org.chtijbug.drools.console.service.ExcelService;
|
||||||
|
import org.chtijbug.drools.console.service.KieRepositoryService;
|
||||||
|
import org.chtijbug.drools.console.service.UserConnectedService;
|
||||||
|
import org.chtijbug.drools.console.service.model.kie.KieConfigurationData;
|
||||||
|
import org.chtijbug.drools.console.service.util.AppContext;
|
||||||
|
import org.chtijbug.drools.console.vaadinComponent.ComponentPerso.DialogPerso;
|
||||||
|
import com.vaadin.flow.component.html.Label;
|
||||||
|
import org.chtijbug.drools.console.vaadinComponent.componentView.AssetEdit;
|
||||||
|
import org.vaadin.olli.FileDownloadWrapper;
|
||||||
|
|
||||||
|
import java.io.ByteArrayInputStream;
|
||||||
|
import java.io.FileOutputStream;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
|
||||||
|
public class EditTemplateView extends VerticalLayout {
|
||||||
|
|
||||||
|
private Button exportExcel;
|
||||||
|
|
||||||
|
private Upload importExcel;
|
||||||
|
|
||||||
|
private Label title;
|
||||||
|
|
||||||
|
private AssetEdit assetEdit;
|
||||||
|
|
||||||
|
private ExcelService excelService;
|
||||||
|
|
||||||
|
private KieRepositoryService kieRepositoryService;
|
||||||
|
|
||||||
|
private KieConfigurationData config;
|
||||||
|
|
||||||
|
private UserConnectedService userConnectedService;
|
||||||
|
|
||||||
|
public EditTemplateView(DialogPerso dialogPerso,String nameTemplate){
|
||||||
|
|
||||||
|
excelService= AppContext.getApplicationContext().getBean(ExcelService.class);
|
||||||
|
kieRepositoryService=AppContext.getApplicationContext().getBean(KieRepositoryService.class);
|
||||||
|
this.config = AppContext.getApplicationContext().getBean(KieConfigurationData.class);
|
||||||
|
this.userConnectedService = AppContext.getApplicationContext().getBean(UserConnectedService.class);
|
||||||
|
|
||||||
|
dialogPerso.getClose().setVisible(false);
|
||||||
|
|
||||||
|
|
||||||
|
MemoryBuffer fileBuffer = new MemoryBuffer();
|
||||||
|
|
||||||
|
|
||||||
|
importExcel=new Upload(fileBuffer);
|
||||||
|
importExcel.setDropLabel(new Span("drag and Drop Excel file here"));
|
||||||
|
importExcel.setClassName("menu-upload");
|
||||||
|
importExcel.setId("exampleupload");
|
||||||
|
|
||||||
|
dialogPerso.getBar().add(importExcel);
|
||||||
|
|
||||||
|
importExcel.addSucceededListener(succeededEvent -> {
|
||||||
|
|
||||||
|
if(!succeededEvent.getFileName().contains("xlsx")){
|
||||||
|
|
||||||
|
Notification.show("The file is incompatible, it must be in xlsx format");
|
||||||
|
|
||||||
|
}else {
|
||||||
|
|
||||||
|
try {
|
||||||
|
List<HashMap<String, Object>> objects= excelService.importExcel(fileBuffer.getInputStream());
|
||||||
|
if(objects!=null&&objects.size()>0){
|
||||||
|
if(objects.get(0).values().size()!=assetEdit.getColumns().size()){
|
||||||
|
Notification.show("Unable to add columns with the excel import for the moment");
|
||||||
|
}else {
|
||||||
|
remove(assetEdit);
|
||||||
|
assetEdit = new AssetEdit(objects);
|
||||||
|
add(assetEdit);
|
||||||
|
|
||||||
|
kieRepositoryService.updateAssetSource(config.getKiewbUrl(),
|
||||||
|
userConnectedService.getUserConnected().getUserName(),
|
||||||
|
userConnectedService.getUserConnected().getUserPassword(),
|
||||||
|
userConnectedService.getSpace(),
|
||||||
|
userConnectedService.getProject(),
|
||||||
|
userConnectedService.getAsset(),objects);
|
||||||
|
}
|
||||||
|
}else {
|
||||||
|
Notification.show("illegible or empty document");
|
||||||
|
}
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
Notification.show("The file is incompatible, it must be in xlsx format");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
importExcel.addFailedListener(failedEvent -> {
|
||||||
|
Notification.show("Error in the upload, please start again with another file");
|
||||||
|
});
|
||||||
|
|
||||||
|
FileDownloadWrapper fileDownloadWrapper=new FileDownloadWrapper(
|
||||||
|
new StreamResource("fsdfs.xlsx",
|
||||||
|
()->excelService.exportExcel(nameTemplate)));
|
||||||
|
|
||||||
|
exportExcel=new Button("Export excel");
|
||||||
|
fileDownloadWrapper.wrapComponent(exportExcel);
|
||||||
|
exportExcel.setClassName("menu-button-asset-edit");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
dialogPerso.getBar().add(fileDownloadWrapper);
|
||||||
|
|
||||||
|
|
||||||
|
title=new Label(nameTemplate);
|
||||||
|
title.setClassName("creation-runtime-title");
|
||||||
|
|
||||||
|
add(title);
|
||||||
|
|
||||||
|
assetEdit=new AssetEdit();
|
||||||
|
add(assetEdit);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -15,6 +15,7 @@ import org.chtijbug.drools.console.service.UserConnectedService;
|
||||||
import org.chtijbug.drools.console.service.model.UserConnected;
|
import org.chtijbug.drools.console.service.model.UserConnected;
|
||||||
import org.chtijbug.drools.console.service.model.kie.KieConfigurationData;
|
import org.chtijbug.drools.console.service.model.kie.KieConfigurationData;
|
||||||
import org.chtijbug.drools.console.service.util.AppContext;
|
import org.chtijbug.drools.console.service.util.AppContext;
|
||||||
|
import org.chtijbug.drools.console.vaadinComponent.ComponentPerso.DialogPerso;
|
||||||
import org.chtijbug.drools.console.vaadinComponent.componentView.AssetEdit;
|
import org.chtijbug.drools.console.vaadinComponent.componentView.AssetEdit;
|
||||||
import org.chtijbug.drools.console.vaadinComponent.leftMenu.Action.TemplatesAction;
|
import org.chtijbug.drools.console.vaadinComponent.leftMenu.Action.TemplatesAction;
|
||||||
import org.chtijbug.guvnor.server.jaxrs.jaxb.Asset;
|
import org.chtijbug.guvnor.server.jaxrs.jaxb.Asset;
|
||||||
|
|
@ -37,8 +38,6 @@ public class TemplateView extends VerticalLayout {
|
||||||
|
|
||||||
private ListDataProvider<Asset> dataProvider;
|
private ListDataProvider<Asset> dataProvider;
|
||||||
|
|
||||||
private ComboBox<PlatformProjectResponse> spaceSelection;
|
|
||||||
|
|
||||||
private Grid<Asset> assetListGrid;
|
private Grid<Asset> assetListGrid;
|
||||||
|
|
||||||
private TextField searchTemplate;
|
private TextField searchTemplate;
|
||||||
|
|
@ -59,14 +58,6 @@ public class TemplateView extends VerticalLayout {
|
||||||
this.userConnected = userConnectedService.getUserConnected();
|
this.userConnected = userConnectedService.getUserConnected();
|
||||||
this.config = AppContext.getApplicationContext().getBean(KieConfigurationData.class);
|
this.config = AppContext.getApplicationContext().getBean(KieConfigurationData.class);
|
||||||
|
|
||||||
spaceSelection = new ComboBox("Project", userConnected.getProjectResponses());
|
|
||||||
spaceSelection.setItemLabelGenerator(PlatformProjectResponse::getName);
|
|
||||||
spaceSelection.addValueChangeListener(valueChangeEvent -> {
|
|
||||||
setDataProvider();
|
|
||||||
});
|
|
||||||
|
|
||||||
add(spaceSelection);
|
|
||||||
|
|
||||||
assetListGrid = new Grid();
|
assetListGrid = new Grid();
|
||||||
assetListGrid.setClassName("templates-grid-perso");
|
assetListGrid.setClassName("templates-grid-perso");
|
||||||
assetListGrid.setSelectionMode(Grid.SelectionMode.SINGLE);
|
assetListGrid.setSelectionMode(Grid.SelectionMode.SINGLE);
|
||||||
|
|
@ -89,8 +80,8 @@ public class TemplateView extends VerticalLayout {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setDataProvider(){
|
public void setDataProvider(ComboBox<PlatformProjectResponse> spaceSelection){
|
||||||
PlatformProjectResponse response = (PlatformProjectResponse) spaceSelection.getValue();
|
PlatformProjectResponse response = spaceSelection.getValue();
|
||||||
List<Asset> tmp = kieRepositoryService.getListAssets(config.getKiewbUrl(), userConnected.getUserName(), userConnected.getUserPassword(), response.getSpaceName(), response.getName());
|
List<Asset> tmp = kieRepositoryService.getListAssets(config.getKiewbUrl(), userConnected.getUserName(), userConnected.getUserPassword(), response.getSpaceName(), response.getName());
|
||||||
List<Asset> result = new ArrayList<>();
|
List<Asset> result = new ArrayList<>();
|
||||||
for (Asset asset : tmp) {
|
for (Asset asset : tmp) {
|
||||||
|
|
@ -105,10 +96,10 @@ public class TemplateView extends VerticalLayout {
|
||||||
reinitFilter();
|
reinitFilter();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void refreshList() {
|
public void refreshList(ComboBox<PlatformProjectResponse> spaceSelection) {
|
||||||
spaceSelection.setItems(userConnected.getProjectResponses());
|
spaceSelection.setItems(userConnected.getProjectResponses());
|
||||||
}
|
}
|
||||||
public void edit(){
|
public void edit(ComboBox<PlatformProjectResponse> spaceSelection){
|
||||||
Set<Asset> selectedElements = assetListGrid.getSelectedItems();
|
Set<Asset> selectedElements = assetListGrid.getSelectedItems();
|
||||||
if (selectedElements.toArray().length > 0) {
|
if (selectedElements.toArray().length > 0) {
|
||||||
String assetName = selectedElements.stream().findFirst().get().getTitle();
|
String assetName = selectedElements.stream().findFirst().get().getTitle();
|
||||||
|
|
@ -117,9 +108,9 @@ public class TemplateView extends VerticalLayout {
|
||||||
userConnectedService.addAssetToSession(assetName);
|
userConnectedService.addAssetToSession(assetName);
|
||||||
userConnectedService.addProjectToSession(response.getName());
|
userConnectedService.addProjectToSession(response.getName());
|
||||||
userConnectedService.addSpaceToSession(response.getSpaceName());
|
userConnectedService.addSpaceToSession(response.getSpaceName());
|
||||||
Dialog dialog=new Dialog();
|
DialogPerso dialog=new DialogPerso();
|
||||||
|
|
||||||
dialog.add(new AssetEdit());
|
dialog.add(new EditTemplateView(dialog,assetName));
|
||||||
dialog.open();
|
dialog.open();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -140,6 +131,15 @@ public class TemplateView extends VerticalLayout {
|
||||||
}
|
}
|
||||||
return columnPredicate;
|
return columnPredicate;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public UserConnectedService getUserConnectedService() {
|
||||||
|
return userConnectedService;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserConnectedService(UserConnectedService userConnectedService) {
|
||||||
|
this.userConnectedService = userConnectedService;
|
||||||
|
}
|
||||||
|
|
||||||
public void duplicate(){}
|
public void duplicate(){}
|
||||||
|
|
||||||
public void reinitFilter(){
|
public void reinitFilter(){
|
||||||
|
|
|
||||||
|
|
@ -2,3 +2,23 @@
|
||||||
width: 77vw!important;
|
width: 77vw!important;
|
||||||
height: 34vw;
|
height: 34vw;
|
||||||
}
|
}
|
||||||
|
.menu-upload{
|
||||||
|
background: transparent;
|
||||||
|
/* width: 100%; */
|
||||||
|
font-size: 1vw;
|
||||||
|
margin: 0px;
|
||||||
|
margin-left: 10px;
|
||||||
|
height: 4vw;
|
||||||
|
color: rgb(0,0,0,0.4);
|
||||||
|
border-radius: 0px;
|
||||||
|
}
|
||||||
|
.menu-button-asset-edit {
|
||||||
|
background: transparent;
|
||||||
|
/* width: 100%; */
|
||||||
|
font-size: 1vw;
|
||||||
|
margin: 0.5vw;
|
||||||
|
height: 3vw;
|
||||||
|
color: rgb(0,0,0,0.4);
|
||||||
|
border-radius: 0px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
@ -10,3 +10,36 @@
|
||||||
</style>
|
</style>
|
||||||
</template>
|
</template>
|
||||||
</dom-module>
|
</dom-module>
|
||||||
|
|
||||||
|
<dom-module id="other" theme-for="vaadin-upload">
|
||||||
|
<template>
|
||||||
|
<style>
|
||||||
|
[part="upload-button"]{
|
||||||
|
color:rgb(0,0,0,0.4)!important;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</template>
|
||||||
|
</dom-module>
|
||||||
|
|
||||||
|
|
||||||
|
<dom-module id="my-file-download" theme-for="file-download-wrapper">
|
||||||
|
<template>
|
||||||
|
<style>
|
||||||
|
:host {
|
||||||
|
--my-color-exceptionnel:rgb(0,0,0,0.4);
|
||||||
|
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</template>
|
||||||
|
</dom-module>
|
||||||
|
|
||||||
|
<dom-module id="button-link" theme-for="vaadin-button">
|
||||||
|
<template>
|
||||||
|
<style>
|
||||||
|
:host(.menu-button-asset-edit){
|
||||||
|
color:var(--my-color-exceptionnel, rgb(0,0,0,0.4));
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</template>
|
||||||
|
</dom-module>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -26,3 +26,5 @@ jenkins.group=EPO
|
||||||
|
|
||||||
spring.data.mongodb.database=businessProxyDB
|
spring.data.mongodb.database=businessProxyDB
|
||||||
spring.data.mongodb.host=localhost:27017
|
spring.data.mongodb.host=localhost:27017
|
||||||
|
|
||||||
|
spring.servlet.multipart.enabled=false
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,20 @@
|
||||||
|
package org.chtijbug.kie.rest.backend;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
import javax.ws.rs.container.ContainerRequestContext;
|
||||||
|
import javax.ws.rs.container.ContainerResponseContext;
|
||||||
|
import javax.ws.rs.container.ContainerResponseFilter;
|
||||||
|
import javax.ws.rs.ext.Provider;
|
||||||
|
|
||||||
|
@Provider
|
||||||
|
public class CORSFilter implements ContainerResponseFilter {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void filter(final ContainerRequestContext requestContext,
|
||||||
|
final ContainerResponseContext cres) throws IOException {
|
||||||
|
cres.getHeaders().add("Allow", "GET, POST, PUT, DELETE, OPTIONS, HEAD");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -400,14 +400,12 @@ public class PackageResource {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@PUT
|
@POST
|
||||||
@Path("{organizationalUnitName}/{projectName}/asset/{assetName}/source")
|
@Path("{organizationalUnitName}/{projectName}/asset/{assetName}/source")
|
||||||
@Consumes({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN})
|
@Consumes({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN})
|
||||||
@Produces({MediaType.WILDCARD})
|
|
||||||
public void updateAssetSource(
|
public void updateAssetSource(
|
||||||
@PathParam("organizationalUnitName") String organizationalUnitName, @PathParam("projectName") String projectName, @PathParam("assetName") String assetName, String content) {
|
@PathParam("organizationalUnitName") String organizationalUnitName, @PathParam("projectName") String projectName, @PathParam("assetName") String assetName, String content) {
|
||||||
updateAssetContent(organizationalUnitName, projectName, assetName, content);
|
updateAssetContent(organizationalUnitName, projectName, assetName, content);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateAssetContent(String organizationalUnitName, String projectName, String assetName, String content) {
|
private void updateAssetContent(String organizationalUnitName, String projectName, String assetName, String content) {
|
||||||
|
|
|
||||||
Loading…
Add table
editor.link_modal.header
Reference in a new issue