editing rule template work
This commit is contained in:
parent
45f214dbd0
commit
e19bb642ca
52 changed files with 406 additions and 212 deletions
|
|
@ -121,6 +121,16 @@
|
|||
<artifactId>jackson-annotations</artifactId>
|
||||
<version>2.9.4</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.vaadin.addons</groupId>
|
||||
<artifactId>exporter</artifactId>
|
||||
<version>1.0.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.vaadin.addons</groupId>
|
||||
<artifactId>excelimporttable</artifactId>
|
||||
<version>1.1.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.dataformat</groupId>
|
||||
<artifactId>jackson-dataformat-xml</artifactId>
|
||||
|
|
@ -169,5 +179,10 @@
|
|||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
<repositories>
|
||||
<repository>
|
||||
<id>vaadin-addons</id>
|
||||
<url>http://maven.vaadin.com/vaadin-addons</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
</project>
|
||||
|
|
@ -4,6 +4,7 @@ import com.vaadin.event.FieldEvents;
|
|||
import com.vaadin.navigator.View;
|
||||
import com.vaadin.navigator.ViewChangeListener;
|
||||
import com.vaadin.ui.*;
|
||||
import org.chtijbug.drools.console.service.KieRepositoryService;
|
||||
import org.chtijbug.drools.console.service.model.UserConnected;
|
||||
import org.chtijbug.drools.console.service.model.kie.KieConfigurationData;
|
||||
import org.chtijbug.drools.console.service.util.AppContext;
|
||||
|
|
@ -13,12 +14,18 @@ public class WelcomeView extends VerticalLayout implements View {
|
|||
private UserConnected userConnected;
|
||||
private TextField userNameTextField;
|
||||
private PasswordField userpasswdTextField;
|
||||
private Button loginButton;
|
||||
private Button logoutButton;
|
||||
private KieRepositoryService kieRepositoryService;
|
||||
private KieConfigurationData configKie;
|
||||
|
||||
public WelcomeView(UserConnected userConnected, MenuBar menuBar) {
|
||||
this.kieRepositoryService = AppContext.getApplicationContext().getBean(KieRepositoryService.class);
|
||||
|
||||
this.userConnected = userConnected;
|
||||
final VerticalLayout layout = new VerticalLayout();
|
||||
layout.addComponent(menuBar);
|
||||
KieConfigurationData configKie = AppContext.getApplicationContext().getBean(KieConfigurationData.class);
|
||||
this.configKie = AppContext.getApplicationContext().getBean(KieConfigurationData.class);
|
||||
// GitLabConfigurationData configGitLab = AppContext.getApplicationContext().getBean(GitLabConfigurationData.class);
|
||||
// JenkinsConfigurationData jenkinsConfigurationData = AppContext.getApplicationContext().getBean(JenkinsConfigurationData.class);
|
||||
|
||||
|
|
@ -45,6 +52,31 @@ public class WelcomeView extends VerticalLayout implements View {
|
|||
userConnected.setUserPassword(configKie.getPassword());
|
||||
userpasswdTextField.addTextChangeListener((FieldEvents.TextChangeListener) textChangeEvent -> userConnected.setUserPassword(textChangeEvent.getText()));
|
||||
userHorizontal.addComponent(userpasswdTextField);
|
||||
loginButton = new Button("login");
|
||||
userHorizontal.addComponent(loginButton);
|
||||
logoutButton = new Button("logout");
|
||||
logoutButton.setEnabled(false);
|
||||
userHorizontal.addComponent(logoutButton);
|
||||
|
||||
loginButton.addClickListener((Button.ClickListener) event -> {
|
||||
UserConnected connected = kieRepositoryService.login(this.configKie.getKiewbUrl(), userConnected.getUserName(), userConnected.getUserPassword());
|
||||
userConnected.getProjectResponses().clear();
|
||||
userConnected.getProjectResponses().addAll(connected.getProjectResponses());
|
||||
userConnected.getRoles().clear();
|
||||
userConnected.getRoles().addAll(connected.getRoles());
|
||||
loginButton.setEnabled(false);
|
||||
logoutButton.setEnabled(true);
|
||||
userConnected.setConnected(true);
|
||||
});
|
||||
logoutButton.addClickListener((Button.ClickListener) event -> {
|
||||
userConnected.getRoles().clear();
|
||||
userConnected.getProjectResponses().clear();
|
||||
userConnected.setConnected(false);
|
||||
loginButton.setEnabled(true);
|
||||
logoutButton.setEnabled(false);
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -3,8 +3,10 @@ package org.chtijbug.drools.console.service;
|
|||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import org.apache.commons.codec.binary.Base64;
|
||||
import org.chtijbug.drools.console.AddLog;
|
||||
import org.chtijbug.drools.console.service.model.UserConnected;
|
||||
import org.chtijbug.drools.console.service.model.kie.JobStatus;
|
||||
import org.drools.guvnor.server.jaxrs.jaxb.Asset;
|
||||
import org.chtijbug.guvnor.server.jaxrs.api.UserLoginInformation;
|
||||
import org.chtijbug.guvnor.server.jaxrs.jaxb.Asset;
|
||||
import org.guvnor.rest.client.ProjectResponse;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
|
@ -74,6 +76,33 @@ public class KieRepositoryService {
|
|||
return reponseMoteur;
|
||||
}
|
||||
|
||||
public UserConnected login(String url, String username, String password) {
|
||||
String completeurl = url + "/chtijbug/login";
|
||||
logger.info("url moteur reco : " + completeurl);
|
||||
ResponseEntity<UserLoginInformation> response = restTemplateKiewb
|
||||
.execute(completeurl, HttpMethod.GET, requestCallback(null, username, password), clientHttpResponse -> {
|
||||
UserLoginInformation extractedResponse = null;
|
||||
if (clientHttpResponse.getBody() != null) {
|
||||
Scanner s = new Scanner(clientHttpResponse.getBody()).useDelimiter("\\A");
|
||||
String result = s.hasNext() ? s.next() : "";
|
||||
extractedResponse = mapper.readValue(result, UserLoginInformation.class);
|
||||
|
||||
}
|
||||
ResponseEntity<UserLoginInformation> extractedValue = new ResponseEntity<>(extractedResponse, clientHttpResponse.getHeaders(), clientHttpResponse.getStatusCode());
|
||||
return extractedValue;
|
||||
});
|
||||
UserConnected userConnected = new UserConnected();
|
||||
|
||||
UserLoginInformation responseBody = response.getBody();
|
||||
userConnected.setUserName(username);
|
||||
userConnected.setUserPassword(password);
|
||||
userConnected.setUserPassword(password);
|
||||
userConnected.getProjectResponses().addAll(responseBody.getProjects());
|
||||
userConnected.setUserName(username);
|
||||
|
||||
return userConnected;
|
||||
}
|
||||
|
||||
public List<Asset> getListAssets(String url, String username, String password, String spaceName, String projectName) {
|
||||
String completeurl = url + "/chtijbug/" + spaceName + "/" + projectName + "/assets";
|
||||
logger.info("url moteur reco : " + completeurl);
|
||||
|
|
|
|||
|
|
@ -1,10 +1,21 @@
|
|||
package org.chtijbug.drools.console.service.model;
|
||||
|
||||
import org.guvnor.rest.client.ProjectResponse;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class UserConnected {
|
||||
private String userName;
|
||||
|
||||
private String userPassword;
|
||||
|
||||
private List<ProjectResponse> projectResponses = new ArrayList<>();
|
||||
|
||||
private List<String> roles = new ArrayList<>();
|
||||
|
||||
private boolean connected;
|
||||
|
||||
public UserConnected() {
|
||||
}
|
||||
|
||||
|
|
@ -28,4 +39,30 @@ public class UserConnected {
|
|||
public void setUserPassword(String userPassword) {
|
||||
this.userPassword = userPassword;
|
||||
}
|
||||
|
||||
|
||||
public List<ProjectResponse> getProjectResponses() {
|
||||
return projectResponses;
|
||||
}
|
||||
|
||||
public void setProjectResponses(List<ProjectResponse> projectResponses) {
|
||||
this.projectResponses = projectResponses;
|
||||
}
|
||||
|
||||
public List<String> getRoles() {
|
||||
return roles;
|
||||
}
|
||||
|
||||
public void setRoles(List<String> roles) {
|
||||
this.roles = roles;
|
||||
}
|
||||
|
||||
public boolean getConnected() {
|
||||
return connected;
|
||||
}
|
||||
|
||||
public void setConnected(boolean connected) {
|
||||
this.connected = connected;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,17 +1,31 @@
|
|||
package org.chtijbug.drools.console.view;
|
||||
|
||||
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
|
||||
import com.vaadin.data.Container;
|
||||
import com.vaadin.data.Item;
|
||||
import com.vaadin.navigator.View;
|
||||
import com.vaadin.navigator.ViewChangeListener;
|
||||
import com.vaadin.ui.Button;
|
||||
import com.vaadin.ui.HorizontalLayout;
|
||||
import com.vaadin.ui.Table;
|
||||
import com.vaadin.ui.VerticalLayout;
|
||||
import org.chtijbug.drools.console.AddLog;
|
||||
import org.chtijbug.drools.console.service.KieRepositoryService;
|
||||
import org.chtijbug.drools.console.service.model.UserConnected;
|
||||
import org.chtijbug.drools.console.service.model.kie.KieConfigurationData;
|
||||
import org.chtijbug.drools.console.service.util.AppContext;
|
||||
import org.drools.guvnor.server.jaxrs.jaxb.Asset;
|
||||
import org.chtijbug.guvnor.server.jaxrs.jaxb.Asset;
|
||||
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.vaadin.haijian.ExcelExporter;
|
||||
import org.vaadin.winnid.excelimporttable.ExcelImportTable;
|
||||
|
||||
import java.text.DateFormat;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.Locale;
|
||||
|
||||
public class AssetEditView extends VerticalLayout implements AddLog, View {
|
||||
|
||||
|
|
@ -22,6 +36,12 @@ public class AssetEditView extends VerticalLayout implements AddLog, View {
|
|||
private XmlMapper mapper = new XmlMapper();
|
||||
private String spaceName;
|
||||
private String projectName;
|
||||
private Table assetTable;
|
||||
private Button startUpdate;
|
||||
private Button commitUpdate;
|
||||
private Button undoUpdate;
|
||||
private ExcelExporter excelExporter;
|
||||
private ExcelImportTable excelImportTable;
|
||||
|
||||
public AssetEditView(UserConnected userConnected, String spaceName, String projectName, Asset assetToUpdate) {
|
||||
this.userConnected = userConnected;
|
||||
|
|
@ -32,7 +52,105 @@ public class AssetEditView extends VerticalLayout implements AddLog, View {
|
|||
this.config = AppContext.getApplicationContext().getBean(KieConfigurationData.class);
|
||||
String assetContent = kieRepositoryService.getAssetSource(config.getKiewbUrl(), userConnected.getUserName(), userConnected.getUserPassword(), spaceName, projectName, assetToUpdate.getTitle());
|
||||
TemplateModel model = RuleTemplateModelXMLPersistenceImpl.getInstance().unmarshal(assetContent);
|
||||
System.out.println("coucou");
|
||||
|
||||
|
||||
HorizontalLayout actionButtons = new HorizontalLayout();
|
||||
this.addComponent(actionButtons);
|
||||
startUpdate = new Button("Update");
|
||||
actionButtons.addComponent(startUpdate);
|
||||
|
||||
startUpdate.addClickListener((Button.ClickListener) event -> {
|
||||
startUpdate.setEnabled(false);
|
||||
commitUpdate.setEnabled(true);
|
||||
undoUpdate.setEnabled(true);
|
||||
assetTable.setEditable(true);
|
||||
excelExporter.setEnabled(false);
|
||||
excelImportTable.setEnabled(false);
|
||||
});
|
||||
commitUpdate = new Button("Commit");
|
||||
commitUpdate.setEnabled(false);
|
||||
commitUpdate.addClickListener((Button.ClickListener) event -> {
|
||||
startUpdate.setEnabled(true);
|
||||
commitUpdate.setEnabled(false);
|
||||
undoUpdate.setEnabled(false);
|
||||
assetTable.setEditable(false);
|
||||
excelExporter.setEnabled(true);
|
||||
excelImportTable.setEnabled(false);
|
||||
});
|
||||
actionButtons.addComponent(commitUpdate);
|
||||
undoUpdate = new Button("undo");
|
||||
undoUpdate.setEnabled(false);
|
||||
undoUpdate.addClickListener((Button.ClickListener) event -> {
|
||||
startUpdate.setEnabled(true);
|
||||
commitUpdate.setEnabled(false);
|
||||
undoUpdate.setEnabled(false);
|
||||
assetTable.setEditable(false);
|
||||
fillTable(model);
|
||||
excelExporter.setEnabled(true);
|
||||
excelImportTable.setEnabled(false);
|
||||
});
|
||||
actionButtons.addComponent(undoUpdate);
|
||||
InterpolationVariable[] variablesList = model.getInterpolationVariablesList();
|
||||
assetTable = new Table("Data");
|
||||
this.addComponent(assetTable);
|
||||
assetTable.setSelectable(true);
|
||||
assetTable.setMultiSelect(false);
|
||||
for (InterpolationVariable i : variablesList) {
|
||||
if (i.getDataType().equals("String")) {
|
||||
assetTable.addContainerProperty(i.getVarName(), String.class, null);
|
||||
} else if (i.getDataType().equals("Date")) {
|
||||
assetTable.addContainerProperty(i.getVarName(), Date.class, null);
|
||||
} else {
|
||||
assetTable.addContainerProperty(i.getVarName(), String.class, null);
|
||||
}
|
||||
|
||||
}
|
||||
fillTable(model);
|
||||
|
||||
assetTable.setSizeFull();
|
||||
|
||||
excelExporter = new ExcelExporter();
|
||||
excelExporter.setDateFormat("dd-MM-yyyy");
|
||||
excelExporter.setLocale(Locale.FRANCE);
|
||||
excelExporter.setTableToBeExported(assetTable);
|
||||
excelExporter.setCaption("Export to Excel");
|
||||
actionButtons.addComponent(excelExporter);
|
||||
excelExporter.setEnabled(true);
|
||||
|
||||
excelImportTable = new ExcelImportTable(assetTable);
|
||||
excelImportTable.setLocale(Locale.FRANCE);
|
||||
actionButtons.addComponent(excelImportTable);
|
||||
}
|
||||
|
||||
private void fillTable(TemplateModel model) {
|
||||
InterpolationVariable[] variablesList = model.getInterpolationVariablesList();
|
||||
DateFormat format = new SimpleDateFormat("dd-MMM-yyyy", Locale.FRANCE);
|
||||
String[][] contenuTable = model.getTableAsArray();
|
||||
Container dataSource = assetTable.getContainerDataSource();
|
||||
dataSource.removeAllItems();
|
||||
for (int i = 0; i < model.getRowsCount(); i++) {
|
||||
String[] ligne = contenuTable[i];
|
||||
Object newItemId = assetTable.addItem();
|
||||
Item row1 = assetTable.getItem(newItemId);
|
||||
int k = 0;
|
||||
for (InterpolationVariable j : variablesList) {
|
||||
if (j.getDataType().equals("String")) {
|
||||
row1.getItemProperty(j.getVarName()).setValue(ligne[k]);
|
||||
} else if (j.getDataType().equals("Date")) {
|
||||
try {
|
||||
row1.getItemProperty(j.getVarName()).setValue(format.parse(ligne[k]));
|
||||
} catch (ParseException e) {
|
||||
row1.getItemProperty(j.getVarName()).setValue(new Date());
|
||||
}
|
||||
} else {
|
||||
row1.getItemProperty(j.getVarName()).setValue(ligne[k]);
|
||||
}
|
||||
|
||||
k++;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ public class DeploymentView extends VerticalLayout implements AddLog, View {
|
|||
|
||||
spaceContainer =
|
||||
new BeanItemContainer<ProjectResponse>(ProjectResponse.class);
|
||||
|
||||
ComboBox spaceSelection = new ComboBox("Project", spaceContainer);
|
||||
|
||||
spaceSelection.setNullSelectionAllowed(false);
|
||||
|
|
@ -147,10 +148,8 @@ public class DeploymentView extends VerticalLayout implements AddLog, View {
|
|||
}
|
||||
|
||||
public void refreshCombo() {
|
||||
List<ProjectResponse> projectResponses = kieRepositoryService.getListSpaces2(config.getKiewbUrl(), userConnected.getUserName(), userConnected.getUserPassword());
|
||||
spaceContainer.removeAllItems();
|
||||
|
||||
spaceContainer.addAll(projectResponses);
|
||||
spaceContainer.addAll(userConnected.getProjectResponses());
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -188,6 +187,7 @@ public class DeploymentView extends VerticalLayout implements AddLog, View {
|
|||
|
||||
@Override
|
||||
public void enter(ViewChangeListener.ViewChangeEvent viewChangeEvent) {
|
||||
|
||||
spaceContainer.removeAllItems();
|
||||
spaceContainer.addAll(userConnected.getProjectResponses());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ import org.chtijbug.drools.console.service.KieServerRepositoryService;
|
|||
import org.chtijbug.drools.console.service.model.UserConnected;
|
||||
import org.chtijbug.drools.console.service.model.kie.KieConfigurationData;
|
||||
import org.chtijbug.drools.console.service.util.AppContext;
|
||||
import org.drools.guvnor.server.jaxrs.jaxb.Asset;
|
||||
import org.chtijbug.guvnor.server.jaxrs.jaxb.Asset;
|
||||
import org.guvnor.rest.client.ProjectResponse;
|
||||
|
||||
import java.util.List;
|
||||
|
|
@ -140,15 +140,15 @@ public class TableLikeArtefactView extends VerticalLayout implements AddLog, Vie
|
|||
|
||||
|
||||
public void refreshList() {
|
||||
List<ProjectResponse> projectResponses = kieRepositoryService.getListSpaces2(config.getKiewbUrl(), userConnected.getUserName(), userConnected.getUserPassword());
|
||||
spaceContainer.removeAllItems();
|
||||
spaceContainer.addAll(projectResponses);
|
||||
spaceContainer.addAll(userConnected.getProjectResponses());
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void enter(ViewChangeListener.ViewChangeEvent viewChangeEvent) {
|
||||
|
||||
spaceContainer.removeAllItems();
|
||||
spaceContainer.addAll(userConnected.getProjectResponses());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
Loading…
Add table
editor.link_modal.header
Reference in a new issue