remove usage of vaadin table => grid instead
Vaadin 8++
This commit is contained in:
parent
724d0f8e11
commit
9201686d7b
11 changed files with 241 additions and 178 deletions
|
|
@ -68,7 +68,7 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.vaadin</groupId>
|
<groupId>com.vaadin</groupId>
|
||||||
<artifactId>vaadin-spring-boot-starter</artifactId>
|
<artifactId>vaadin-spring-boot-starter</artifactId>
|
||||||
<version>1.2.0</version>
|
<version>3.1.1</version>
|
||||||
<exclusions>
|
<exclusions>
|
||||||
<exclusion>
|
<exclusion>
|
||||||
<artifactId>spring-boot-autoconfigure</artifactId>
|
<artifactId>spring-boot-autoconfigure</artifactId>
|
||||||
|
|
@ -93,24 +93,24 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.vaadin</groupId>
|
<groupId>com.vaadin</groupId>
|
||||||
<artifactId>vaadin-push</artifactId>
|
<artifactId>vaadin-push</artifactId>
|
||||||
<version>7.7.6</version>
|
<version>8.2.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
<artifactId>spring-boot-starter-tomcat</artifactId>
|
<artifactId>spring-boot-starter-tomcat</artifactId>
|
||||||
<version>1.5.1.RELEASE</version>
|
<version>1.4.7.RELEASE</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
<artifactId>spring-boot-autoconfigure</artifactId>
|
<artifactId>spring-boot-autoconfigure</artifactId>
|
||||||
<version>1.5.1.RELEASE</version>
|
<version>1.4.7.RELEASE</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
<artifactId>spring-boot</artifactId>
|
<artifactId>spring-boot</artifactId>
|
||||||
<version>1.5.1.RELEASE</version>
|
<version>1.4.7.RELEASE</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.fasterxml.jackson.core</groupId>
|
<groupId>com.fasterxml.jackson.core</groupId>
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ import org.chtijbug.drools.console.view.TableLikeArtefactView;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
|
||||||
@Push
|
@Push
|
||||||
@Theme("runo")
|
@Theme("mytheme")
|
||||||
@SpringUI
|
@SpringUI
|
||||||
@PreserveOnRefresh
|
@PreserveOnRefresh
|
||||||
@SuppressWarnings("serial")
|
@SuppressWarnings("serial")
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
package org.chtijbug.drools.console;
|
package org.chtijbug.drools.console;
|
||||||
|
|
||||||
import com.vaadin.event.FieldEvents;
|
import com.vaadin.data.HasValue;
|
||||||
import com.vaadin.navigator.View;
|
import com.vaadin.navigator.View;
|
||||||
import com.vaadin.navigator.ViewChangeListener;
|
import com.vaadin.navigator.ViewChangeListener;
|
||||||
import com.vaadin.ui.*;
|
import com.vaadin.ui.*;
|
||||||
|
|
@ -44,13 +44,13 @@ public class WelcomeView extends VerticalLayout implements View {
|
||||||
userNameTextField = new TextField("User name");
|
userNameTextField = new TextField("User name");
|
||||||
userNameTextField.setValue(configKie.getUserName());
|
userNameTextField.setValue(configKie.getUserName());
|
||||||
userConnected.setUserName(configKie.getUserName());
|
userConnected.setUserName(configKie.getUserName());
|
||||||
userNameTextField.addTextChangeListener((FieldEvents.TextChangeListener) textChangeEvent -> userConnected.setUserName(textChangeEvent.getText()));
|
userNameTextField.addValueChangeListener((HasValue.ValueChangeListener<String>) valueChangeEvent -> userConnected.setUserName(valueChangeEvent.getValue()));
|
||||||
|
|
||||||
userHorizontal.addComponent(userNameTextField);
|
userHorizontal.addComponent(userNameTextField);
|
||||||
userpasswdTextField = new PasswordField("Password");
|
userpasswdTextField = new PasswordField("Password");
|
||||||
userpasswdTextField.setValue(configKie.getPassword());
|
userpasswdTextField.setValue(configKie.getPassword());
|
||||||
userConnected.setUserPassword(configKie.getPassword());
|
userConnected.setUserPassword(configKie.getPassword());
|
||||||
userpasswdTextField.addTextChangeListener((FieldEvents.TextChangeListener) textChangeEvent -> userConnected.setUserPassword(textChangeEvent.getText()));
|
userpasswdTextField.addValueChangeListener((HasValue.ValueChangeListener<String>) valueChangeEvent -> userConnected.setUserPassword(valueChangeEvent.getValue()));
|
||||||
userHorizontal.addComponent(userpasswdTextField);
|
userHorizontal.addComponent(userpasswdTextField);
|
||||||
loginButton = new Button("login");
|
loginButton = new Button("login");
|
||||||
userHorizontal.addComponent(loginButton);
|
userHorizontal.addComponent(loginButton);
|
||||||
|
|
|
||||||
|
|
@ -149,6 +149,10 @@ public class KieServerRepositoryService {
|
||||||
reponseMoteur = response.getBody();
|
reponseMoteur = response.getBody();
|
||||||
workOnGoingView.addRow(reponseMoteur.toString());
|
workOnGoingView.addRow(reponseMoteur.toString());
|
||||||
KieContainerInfo result = new KieContainerInfo();
|
KieContainerInfo result = new KieContainerInfo();
|
||||||
|
if (reponseMoteur.get("result") != null) {
|
||||||
|
String containerID = (String) ((Map) ((Map) reponseMoteur.get("result")).get("kie-container")).get("container-id");
|
||||||
|
result.setContainerId(containerID);
|
||||||
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,20 +1,17 @@
|
||||||
package org.chtijbug.drools.console.view;
|
package org.chtijbug.drools.console.view;
|
||||||
|
|
||||||
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
|
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
|
||||||
import com.vaadin.data.Container;
|
import com.vaadin.data.Binder;
|
||||||
import com.vaadin.data.Item;
|
|
||||||
import com.vaadin.navigator.View;
|
import com.vaadin.navigator.View;
|
||||||
import com.vaadin.navigator.ViewChangeListener;
|
import com.vaadin.navigator.ViewChangeListener;
|
||||||
import com.vaadin.ui.Button;
|
import com.vaadin.ui.*;
|
||||||
import com.vaadin.ui.Grid;
|
import com.vaadin.ui.renderers.DateRenderer;
|
||||||
import com.vaadin.ui.HorizontalLayout;
|
import com.vaadin.ui.renderers.TextRenderer;
|
||||||
import com.vaadin.ui.VerticalLayout;
|
|
||||||
import org.chtijbug.drools.console.AddLog;
|
import org.chtijbug.drools.console.AddLog;
|
||||||
import org.chtijbug.drools.console.service.KieRepositoryService;
|
import org.chtijbug.drools.console.service.KieRepositoryService;
|
||||||
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.guvnor.server.jaxrs.jaxb.Asset;
|
|
||||||
import org.drools.workbench.models.datamodel.rule.InterpolationVariable;
|
import org.drools.workbench.models.datamodel.rule.InterpolationVariable;
|
||||||
import org.drools.workbench.models.guided.template.backend.RuleTemplateModelXMLPersistenceImpl;
|
import org.drools.workbench.models.guided.template.backend.RuleTemplateModelXMLPersistenceImpl;
|
||||||
import org.drools.workbench.models.guided.template.shared.TemplateModel;
|
import org.drools.workbench.models.guided.template.shared.TemplateModel;
|
||||||
|
|
@ -22,32 +19,34 @@ import org.drools.workbench.models.guided.template.shared.TemplateModel;
|
||||||
import java.text.DateFormat;
|
import java.text.DateFormat;
|
||||||
import java.text.ParseException;
|
import java.text.ParseException;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.Date;
|
import java.time.Instant;
|
||||||
import java.util.Locale;
|
import java.time.LocalDate;
|
||||||
|
import java.time.ZoneId;
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
public class AssetEditView extends VerticalLayout implements AddLog, View {
|
public class AssetEditView extends VerticalLayout implements AddLog, View {
|
||||||
|
|
||||||
final private KieRepositoryService kieRepositoryService;
|
final private KieRepositoryService kieRepositoryService;
|
||||||
final private KieConfigurationData config;
|
final private KieConfigurationData config;
|
||||||
private UserConnected userConnected;
|
private UserConnected userConnected;
|
||||||
private Asset assetToUpdate;
|
private String assetToUpdate;
|
||||||
private XmlMapper mapper = new XmlMapper();
|
private XmlMapper mapper = new XmlMapper();
|
||||||
private String spaceName;
|
private String spaceName;
|
||||||
private String projectName;
|
private String projectName;
|
||||||
private Grid gridAssetTable;
|
private Grid<Map<String, Object>> gridAssetTable;
|
||||||
private Button startUpdate;
|
private Button startUpdate;
|
||||||
private Button commitUpdate;
|
private Button commitUpdate;
|
||||||
private Button undoUpdate;
|
private Button undoUpdate;
|
||||||
|
|
||||||
|
|
||||||
public AssetEditView(UserConnected userConnected, String spaceName, String projectName, Asset assetToUpdate) {
|
public AssetEditView(UserConnected userConnected, String spaceName, String projectName, String assetToUpdate) {
|
||||||
this.userConnected = userConnected;
|
this.userConnected = userConnected;
|
||||||
this.assetToUpdate = assetToUpdate;
|
this.assetToUpdate = assetToUpdate;
|
||||||
this.spaceName = spaceName;
|
this.spaceName = spaceName;
|
||||||
this.projectName = projectName;
|
this.projectName = projectName;
|
||||||
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);
|
||||||
String assetContent = kieRepositoryService.getAssetSource(config.getKiewbUrl(), userConnected.getUserName(), userConnected.getUserPassword(), spaceName, projectName, assetToUpdate.getTitle());
|
String assetContent = kieRepositoryService.getAssetSource(config.getKiewbUrl(), userConnected.getUserName(), userConnected.getUserPassword(), spaceName, projectName, assetToUpdate);
|
||||||
TemplateModel model = RuleTemplateModelXMLPersistenceImpl.getInstance().unmarshal(assetContent);
|
TemplateModel model = RuleTemplateModelXMLPersistenceImpl.getInstance().unmarshal(assetContent);
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -60,9 +59,8 @@ public class AssetEditView extends VerticalLayout implements AddLog, View {
|
||||||
startUpdate.setEnabled(false);
|
startUpdate.setEnabled(false);
|
||||||
commitUpdate.setEnabled(true);
|
commitUpdate.setEnabled(true);
|
||||||
undoUpdate.setEnabled(true);
|
undoUpdate.setEnabled(true);
|
||||||
gridAssetTable.setEditorEnabled(true);
|
gridAssetTable.setEnabled(true);
|
||||||
gridAssetTable.setReadOnly(false);
|
gridAssetTable.getEditor().setEnabled(true);
|
||||||
|
|
||||||
});
|
});
|
||||||
commitUpdate = new Button("Commit");
|
commitUpdate = new Button("Commit");
|
||||||
commitUpdate.setEnabled(false);
|
commitUpdate.setEnabled(false);
|
||||||
|
|
@ -70,10 +68,7 @@ public class AssetEditView extends VerticalLayout implements AddLog, View {
|
||||||
startUpdate.setEnabled(true);
|
startUpdate.setEnabled(true);
|
||||||
commitUpdate.setEnabled(false);
|
commitUpdate.setEnabled(false);
|
||||||
undoUpdate.setEnabled(false);
|
undoUpdate.setEnabled(false);
|
||||||
gridAssetTable.cancelEditor();
|
gridAssetTable.getEditor().setEnabled(false);
|
||||||
gridAssetTable.setEditorEnabled(false);
|
|
||||||
gridAssetTable.setReadOnly(true);
|
|
||||||
|
|
||||||
|
|
||||||
});
|
});
|
||||||
actionButtons.addComponent(commitUpdate);
|
actionButtons.addComponent(commitUpdate);
|
||||||
|
|
@ -83,77 +78,143 @@ public class AssetEditView extends VerticalLayout implements AddLog, View {
|
||||||
startUpdate.setEnabled(true);
|
startUpdate.setEnabled(true);
|
||||||
commitUpdate.setEnabled(false);
|
commitUpdate.setEnabled(false);
|
||||||
undoUpdate.setEnabled(false);
|
undoUpdate.setEnabled(false);
|
||||||
gridAssetTable.cancelEditor();
|
gridAssetTable.getEditor().setEnabled(false);
|
||||||
gridAssetTable.setEditorEnabled(false);
|
|
||||||
gridAssetTable.cancelEditor();
|
|
||||||
gridAssetTable.setReadOnly(true);
|
|
||||||
fillTable(model);
|
fillTable(model);
|
||||||
|
|
||||||
});
|
});
|
||||||
actionButtons.addComponent(undoUpdate);
|
actionButtons.addComponent(undoUpdate);
|
||||||
InterpolationVariable[] variablesList = model.getInterpolationVariablesList();
|
InterpolationVariable[] variablesList = model.getInterpolationVariablesList();
|
||||||
gridAssetTable = new Grid("Data");
|
gridAssetTable = new Grid<>("Data");
|
||||||
this.addComponent(gridAssetTable);
|
this.addComponent(gridAssetTable);
|
||||||
gridAssetTable.setEditorEnabled(false);
|
|
||||||
gridAssetTable.setSelectionMode(Grid.SelectionMode.SINGLE);
|
gridAssetTable.setSelectionMode(Grid.SelectionMode.SINGLE);
|
||||||
gridAssetTable.setReadOnly(true);
|
|
||||||
|
Binder<Map<String, Object>> binder = gridAssetTable.getEditor().getBinder();
|
||||||
|
|
||||||
|
|
||||||
|
Map<String, Object> initRow = new HashMap<>();
|
||||||
for (InterpolationVariable i : variablesList) {
|
for (InterpolationVariable i : variablesList) {
|
||||||
|
|
||||||
if (i.getDataType().equals("String")) {
|
if (i.getDataType().equals("String")) {
|
||||||
gridAssetTable.addColumn(i.getVarName(), String.class);
|
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 TextRenderer()).setEditorBinding(b).setCaption(i.getVarName());
|
||||||
|
|
||||||
} else if (i.getDataType().equals("Date")) {
|
} else if (i.getDataType().equals("Date")) {
|
||||||
gridAssetTable.addColumn(i.getVarName(), Date.class);
|
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 {
|
} else {
|
||||||
gridAssetTable.addColumn(i.getVarName(), String.class);
|
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();
|
gridAssetTable.setSizeFull();
|
||||||
/**
|
/**
|
||||||
excelExporter = new ExcelExporter();
|
*
|
||||||
excelExporter.setDateFormat("dd-MM-yyyy");
|
*/
|
||||||
excelExporter.setLocale(Locale.FRANCE);
|
}
|
||||||
excelExporter.setTableToBeExported(gridAssetTable);
|
|
||||||
excelExporter.setCaption("Export to Excel");
|
|
||||||
actionButtons.addComponent(excelExporter);
|
|
||||||
excelExporter.setEnabled(true);
|
|
||||||
|
|
||||||
excelImportTable = new ExcelImportTable(gridAssetTable);
|
private Date toDate(String dateString) {
|
||||||
excelImportTable.setLocale(Locale.FRANCE);
|
DateFormat format = new SimpleDateFormat("dd-MMM-yyyy", Locale.FRANCE);
|
||||||
actionButtons.addComponent(excelImportTable);
|
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) {
|
||||||
|
TextField tf = new TextField();
|
||||||
|
tf.setWidth(250, Unit.PIXELS);
|
||||||
|
|
||||||
|
//bind element
|
||||||
|
|
||||||
|
Binder.Binding<Map<String, Object>, String> binding = binder.forField(tf).bind(// getter
|
||||||
|
hash -> {
|
||||||
|
return (String) hash.get(code);
|
||||||
|
},
|
||||||
|
//setter
|
||||||
|
(hash, fieldValue) -> {
|
||||||
|
hash.put(code, fieldValue);
|
||||||
|
});
|
||||||
|
return binding;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private Binder.Binding<Map<String, Object>, LocalDate> createDateField(String code, Binder<Map<String, Object>> binder) {
|
||||||
|
DateField tf = new DateField();
|
||||||
|
tf.setWidth(250, Unit.PIXELS);
|
||||||
|
|
||||||
|
//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;
|
||||||
}
|
}
|
||||||
|
|
||||||
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();
|
||||||
Container dataSource = gridAssetTable.getContainerDataSource();
|
List<Map<String, Object>> rows = new ArrayList<>();
|
||||||
dataSource.removeAllItems();
|
|
||||||
for (int i = 0; i < model.getRowsCount(); i++) {
|
for (int i = 0; i < model.getRowsCount(); i++) {
|
||||||
|
Map<String, Object> newRow = new HashMap<>();
|
||||||
|
rows.add(newRow);
|
||||||
String[] ligne = contenuTable[i];
|
String[] ligne = contenuTable[i];
|
||||||
Object item = dataSource.addItem();
|
|
||||||
Item row1 = dataSource.getItem(item);
|
|
||||||
int k = 0;
|
int k = 0;
|
||||||
for (InterpolationVariable j : variablesList) {
|
for (InterpolationVariable j : variablesList) {
|
||||||
if (j.getDataType().equals("String")) {
|
newRow.put(j.getVarName(), ligne[k]);
|
||||||
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++;
|
k++;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
gridAssetTable.setItems(rows);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,8 @@
|
||||||
package org.chtijbug.drools.console.view;
|
package org.chtijbug.drools.console.view;
|
||||||
|
|
||||||
import com.vaadin.data.Item;
|
|
||||||
import com.vaadin.data.Property;
|
|
||||||
import com.vaadin.data.util.BeanItemContainer;
|
|
||||||
import com.vaadin.data.util.IndexedContainer;
|
|
||||||
import com.vaadin.navigator.View;
|
import com.vaadin.navigator.View;
|
||||||
import com.vaadin.navigator.ViewChangeListener;
|
import com.vaadin.navigator.ViewChangeListener;
|
||||||
import com.vaadin.ui.*;
|
import com.vaadin.ui.*;
|
||||||
import com.vaadin.ui.themes.Runo;
|
|
||||||
import org.chtijbug.drools.console.AddLog;
|
import org.chtijbug.drools.console.AddLog;
|
||||||
import org.chtijbug.drools.console.service.KieRepositoryService;
|
import org.chtijbug.drools.console.service.KieRepositoryService;
|
||||||
import org.chtijbug.drools.console.service.KieServerRepositoryService;
|
import org.chtijbug.drools.console.service.KieServerRepositoryService;
|
||||||
|
|
@ -16,15 +11,16 @@ import org.chtijbug.drools.console.service.model.kie.*;
|
||||||
import org.chtijbug.drools.console.service.util.AppContext;
|
import org.chtijbug.drools.console.service.util.AppContext;
|
||||||
import org.guvnor.rest.client.ProjectResponse;
|
import org.guvnor.rest.client.ProjectResponse;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class DeploymentView extends VerticalLayout implements AddLog, View {
|
public class DeploymentView extends VerticalLayout implements AddLog, View {
|
||||||
|
|
||||||
|
|
||||||
final private Grid gridLogging = new Grid();
|
final private Grid<List<String>> gridLogging = new Grid();
|
||||||
final private Button buttonDeployProject = new Button("Deploy project");
|
final private Button buttonDeployProject = new Button("Deploy project");
|
||||||
final private KieConfigurationData config;
|
final private KieConfigurationData config;
|
||||||
final private BeanItemContainer<ProjectResponse> spaceContainer;
|
private ComboBox<ProjectResponse> spaceSelection;
|
||||||
|
|
||||||
final private TextField projectArtifactIDTextField = new TextField("Project Artifact ID");
|
final private TextField projectArtifactIDTextField = new TextField("Project Artifact ID");
|
||||||
final private TextField projectGroupIDTextField = new TextField("Project Group ID");
|
final private TextField projectGroupIDTextField = new TextField("Project Group ID");
|
||||||
|
|
@ -36,6 +32,7 @@ public class DeploymentView extends VerticalLayout implements AddLog, View {
|
||||||
final private KieServerRepositoryService kieServerRepositoryService;
|
final private KieServerRepositoryService kieServerRepositoryService;
|
||||||
|
|
||||||
final private UserConnected userConnected;
|
final private UserConnected userConnected;
|
||||||
|
private List<String> logs = new ArrayList<>();
|
||||||
|
|
||||||
public DeploymentView(UserConnected userConnected) {
|
public DeploymentView(UserConnected userConnected) {
|
||||||
|
|
||||||
|
|
@ -46,7 +43,7 @@ public class DeploymentView extends VerticalLayout implements AddLog, View {
|
||||||
this.userConnected = userConnected;
|
this.userConnected = userConnected;
|
||||||
this.config = AppContext.getApplicationContext().getBean(KieConfigurationData.class);
|
this.config = AppContext.getApplicationContext().getBean(KieConfigurationData.class);
|
||||||
Button button = new Button("Refresh");
|
Button button = new Button("Refresh");
|
||||||
button.addStyleName(Runo.BUTTON_SMALL);
|
// button.addStyleName(Runo.BUTTON_SMALL);
|
||||||
|
|
||||||
button.addClickListener((Button.ClickListener) event -> {
|
button.addClickListener((Button.ClickListener) event -> {
|
||||||
this.refreshCombo();
|
this.refreshCombo();
|
||||||
|
|
@ -56,27 +53,17 @@ public class DeploymentView extends VerticalLayout implements AddLog, View {
|
||||||
this.addComponent(button);
|
this.addComponent(button);
|
||||||
|
|
||||||
|
|
||||||
spaceContainer =
|
spaceSelection = new ComboBox("Project", userConnected.getProjectResponses());
|
||||||
new BeanItemContainer<ProjectResponse>(ProjectResponse.class);
|
spaceSelection.setItemCaptionGenerator(ProjectResponse::getName);
|
||||||
|
spaceSelection.addValueChangeListener(valueChangeEvent -> {
|
||||||
ComboBox spaceSelection = new ComboBox("Project", spaceContainer);
|
ProjectResponse response = (ProjectResponse) spaceSelection.getValue();
|
||||||
|
projectArtifactIDTextField.setValue(response.getName());
|
||||||
spaceSelection.setNullSelectionAllowed(false);
|
projectGroupIDTextField.setValue(response.getGroupId());
|
||||||
|
projectVersionTextField.setValue(response.getVersion());
|
||||||
spaceSelection.setItemCaptionPropertyId("name");
|
refreshList();
|
||||||
|
|
||||||
spaceSelection.setNewItemsAllowed(false);
|
|
||||||
spaceSelection.setImmediate(true);
|
|
||||||
spaceSelection.addListener(new Property.ValueChangeListener() {
|
|
||||||
@Override
|
|
||||||
public void valueChange(Property.ValueChangeEvent valueChangeEvent) {
|
|
||||||
ProjectResponse response = (ProjectResponse) spaceSelection.getValue();
|
|
||||||
projectArtifactIDTextField.setValue(response.getName());
|
|
||||||
projectGroupIDTextField.setValue(response.getGroupId());
|
|
||||||
projectVersionTextField.setValue(response.getVersion());
|
|
||||||
refreshList();
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
this.addComponent(spaceSelection);
|
this.addComponent(spaceSelection);
|
||||||
|
|
||||||
projectArtifactIDTextField.setEnabled(false);
|
projectArtifactIDTextField.setEnabled(false);
|
||||||
|
|
@ -90,7 +77,7 @@ public class DeploymentView extends VerticalLayout implements AddLog, View {
|
||||||
|
|
||||||
this.buttonDeployProject.setEnabled(false);
|
this.buttonDeployProject.setEnabled(false);
|
||||||
this.addComponent(buttonDeployProject);
|
this.addComponent(buttonDeployProject);
|
||||||
buttonDeployProject.addStyleName(Runo.BUTTON_SMALL);
|
// buttonDeployProject.addStyleName(Runo.BUTTON_SMALL);
|
||||||
|
|
||||||
|
|
||||||
buttonDeployProject.addClickListener((Button.ClickListener) event -> {
|
buttonDeployProject.addClickListener((Button.ClickListener) event -> {
|
||||||
|
|
@ -134,20 +121,17 @@ public class DeploymentView extends VerticalLayout implements AddLog, View {
|
||||||
gridLogging.setSizeFull();
|
gridLogging.setSizeFull();
|
||||||
|
|
||||||
gridLogging.setColumnReorderingAllowed(false);
|
gridLogging.setColumnReorderingAllowed(false);
|
||||||
gridLogging.setImmediate(true);
|
|
||||||
|
|
||||||
|
|
||||||
IndexedContainer container = new IndexedContainer();
|
// gridLogging.addColumn("Message", new com.vaadin.ui.renderers.TextRenderer()).setCaption("Message");
|
||||||
container.addContainerProperty("Message", String.class, "none");
|
|
||||||
|
|
||||||
gridLogging.setContainerDataSource(container);
|
|
||||||
this.addComponent(gridLogging);
|
this.addComponent(gridLogging);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void refreshCombo() {
|
public void refreshCombo() {
|
||||||
spaceContainer.removeAllItems();
|
spaceSelection.setItems(userConnected.getProjectResponses());
|
||||||
spaceContainer.addAll(userConnected.getProjectResponses());
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -169,23 +153,13 @@ public class DeploymentView extends VerticalLayout implements AddLog, View {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addRow(String textToAdd) {
|
public void addRow(String textToAdd) {
|
||||||
int nbRows = gridLogging.getContainerDataSource().getItemIds().size() + 1;
|
logs.add(textToAdd);
|
||||||
Item item = gridLogging.getContainerDataSource().addItem(nbRows);
|
gridLogging.setItems(logs);
|
||||||
if (item != null) {
|
|
||||||
Property<String> nameProperty =
|
|
||||||
item.getItemProperty("Message");
|
|
||||||
|
|
||||||
nameProperty.setValue(textToAdd);
|
|
||||||
gridLogging.setContainerDataSource(gridLogging.getContainerDataSource());
|
|
||||||
} else {
|
|
||||||
System.out.println("null");
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void enter(ViewChangeListener.ViewChangeEvent viewChangeEvent) {
|
public void enter(ViewChangeListener.ViewChangeEvent viewChangeEvent) {
|
||||||
spaceContainer.removeAllItems();
|
spaceSelection.setItems(userConnected.getProjectResponses());
|
||||||
spaceContainer.addAll(userConnected.getProjectResponses());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,9 @@
|
||||||
package org.chtijbug.drools.console.view;
|
package org.chtijbug.drools.console.view;
|
||||||
|
|
||||||
import com.vaadin.data.Property;
|
import com.vaadin.data.HasValue;
|
||||||
import com.vaadin.data.util.BeanItemContainer;
|
|
||||||
import com.vaadin.navigator.View;
|
import com.vaadin.navigator.View;
|
||||||
import com.vaadin.navigator.ViewChangeListener;
|
import com.vaadin.navigator.ViewChangeListener;
|
||||||
import com.vaadin.ui.*;
|
import com.vaadin.ui.*;
|
||||||
import com.vaadin.ui.themes.Runo;
|
|
||||||
import org.chtijbug.drools.console.AddLog;
|
import org.chtijbug.drools.console.AddLog;
|
||||||
import org.chtijbug.drools.console.service.KieRepositoryService;
|
import org.chtijbug.drools.console.service.KieRepositoryService;
|
||||||
import org.chtijbug.drools.console.service.KieServerRepositoryService;
|
import org.chtijbug.drools.console.service.KieServerRepositoryService;
|
||||||
|
|
@ -15,14 +13,11 @@ import org.chtijbug.drools.console.service.util.AppContext;
|
||||||
import org.chtijbug.guvnor.server.jaxrs.jaxb.Asset;
|
import org.chtijbug.guvnor.server.jaxrs.jaxb.Asset;
|
||||||
import org.guvnor.rest.client.ProjectResponse;
|
import org.guvnor.rest.client.ProjectResponse;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.*;
|
||||||
|
|
||||||
public class TableLikeArtefactView extends VerticalLayout implements AddLog, View {
|
public class TableLikeArtefactView extends VerticalLayout implements AddLog, View {
|
||||||
|
|
||||||
final private KieConfigurationData config;
|
final private KieConfigurationData config;
|
||||||
final private BeanItemContainer<ProjectResponse> spaceContainer =
|
|
||||||
new BeanItemContainer<ProjectResponse>(ProjectResponse.class);
|
|
||||||
;
|
|
||||||
|
|
||||||
|
|
||||||
final private KieRepositoryService kieRepositoryService;
|
final private KieRepositoryService kieRepositoryService;
|
||||||
|
|
@ -31,11 +26,10 @@ public class TableLikeArtefactView extends VerticalLayout implements AddLog, Vie
|
||||||
|
|
||||||
final private UserConnected userConnected;
|
final private UserConnected userConnected;
|
||||||
|
|
||||||
final private BeanItemContainer<Asset> assetBeanItemContainer = new BeanItemContainer<>(Asset.class);
|
|
||||||
|
|
||||||
private Grid assetListGrid;
|
|
||||||
|
|
||||||
|
private Grid<Map<String, String>> assetListGrid;
|
||||||
|
|
||||||
|
private ComboBox<ProjectResponse> spaceSelection;
|
||||||
private Button deleteRow;
|
private Button deleteRow;
|
||||||
|
|
||||||
private Button editRow;
|
private Button editRow;
|
||||||
|
|
@ -52,37 +46,29 @@ public class TableLikeArtefactView extends VerticalLayout implements AddLog, Vie
|
||||||
|
|
||||||
this.config = AppContext.getApplicationContext().getBean(KieConfigurationData.class);
|
this.config = AppContext.getApplicationContext().getBean(KieConfigurationData.class);
|
||||||
Button button = new Button("Refresh");
|
Button button = new Button("Refresh");
|
||||||
button.addStyleName(Runo.BUTTON_SMALL);
|
|
||||||
|
|
||||||
button.addClickListener((Button.ClickListener) event -> {
|
button.addClickListener((Button.ClickListener) event -> {
|
||||||
this.refreshList();
|
this.refreshList();
|
||||||
});
|
});
|
||||||
|
|
||||||
this.addComponent(button);
|
this.addComponent(button);
|
||||||
|
spaceSelection = new ComboBox("Project", userConnected.getProjectResponses());
|
||||||
|
spaceSelection.setItemCaptionGenerator(ProjectResponse::getName);
|
||||||
ComboBox spaceSelection = new ComboBox("Project", spaceContainer);
|
spaceSelection.addValueChangeListener((HasValue.ValueChangeListener<ProjectResponse>) valueChangeEvent -> {
|
||||||
|
ProjectResponse response = (ProjectResponse) spaceSelection.getValue();
|
||||||
spaceSelection.setNullSelectionAllowed(false);
|
spaceSelection.setSelectedItem(response);
|
||||||
|
assetListGrid.addColumn(hashmap -> hashmap.get("title"));
|
||||||
spaceSelection.setItemCaptionPropertyId("name");
|
List<Asset> assets = kieRepositoryService.getListAssets(config.getKiewbUrl(), userConnected.getUserName(), userConnected.getUserPassword(), response.getSpaceName(), response.getName());
|
||||||
|
List<Map<String, String>> rows = new ArrayList<>();
|
||||||
spaceSelection.setNewItemsAllowed(false);
|
for (Asset asset : assets) {
|
||||||
spaceSelection.setImmediate(true);
|
if (asset.getTitle().endsWith(".template")
|
||||||
spaceSelection.addListener(new Property.ValueChangeListener() {
|
|| asset.getTitle().endsWith(".gdst")) {
|
||||||
@Override
|
Map<String, String> line = new HashMap<>();
|
||||||
public void valueChange(Property.ValueChangeEvent valueChangeEvent) {
|
line.put("title", asset.getTitle());
|
||||||
ProjectResponse response = (ProjectResponse) spaceSelection.getValue();
|
rows.add(line);
|
||||||
assetBeanItemContainer.removeAllItems();
|
|
||||||
List<Asset> assets = kieRepositoryService.getListAssets(config.getKiewbUrl(), userConnected.getUserName(), userConnected.getUserPassword(), response.getSpaceName(), response.getName());
|
|
||||||
for (Asset asset : assets) {
|
|
||||||
if (asset.getTitle().endsWith(".template")
|
|
||||||
|| asset.getTitle().endsWith(".gdst")) {
|
|
||||||
assetBeanItemContainer.addBean(asset);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
assetListGrid.setItems(rows);
|
||||||
|
|
||||||
|
|
||||||
});
|
});
|
||||||
this.addComponent(spaceSelection);
|
this.addComponent(spaceSelection);
|
||||||
HorizontalLayout actionButtons = new HorizontalLayout();
|
HorizontalLayout actionButtons = new HorizontalLayout();
|
||||||
|
|
@ -92,32 +78,23 @@ public class TableLikeArtefactView extends VerticalLayout implements AddLog, Vie
|
||||||
editRow = new Button("Edit");
|
editRow = new Button("Edit");
|
||||||
actionButtons.addComponent(editRow);
|
actionButtons.addComponent(editRow);
|
||||||
deleteRow = new Button("Delete");
|
deleteRow = new Button("Delete");
|
||||||
actionButtons.addComponent(deleteRow);
|
|
||||||
assetBeanItemContainer.removeContainerProperty("author");
|
|
||||||
assetBeanItemContainer.removeContainerProperty("binaryLink");
|
|
||||||
assetBeanItemContainer.removeContainerProperty("sourceLink");
|
|
||||||
assetBeanItemContainer.removeContainerProperty("refLink");
|
|
||||||
//assetBeanItemContainer.removeContainerProperty("directory");
|
|
||||||
assetBeanItemContainer.removeContainerProperty("comment");
|
|
||||||
assetBeanItemContainer.removeContainerProperty("content");
|
|
||||||
assetBeanItemContainer.removeContainerProperty("description");
|
|
||||||
assetBeanItemContainer.removeContainerProperty("binaryContentAttachmentFileName");
|
|
||||||
assetBeanItemContainer.removeContainerProperty("published");
|
|
||||||
assetBeanItemContainer.removeContainerProperty("metadata");
|
|
||||||
|
|
||||||
|
|
||||||
assetListGrid = new Grid("List of assets", assetBeanItemContainer);
|
assetListGrid = new Grid("List of assets");
|
||||||
assetListGrid.setSelectionMode(Grid.SelectionMode.SINGLE);
|
assetListGrid.setSelectionMode(Grid.SelectionMode.SINGLE);
|
||||||
assetListGrid.setSizeFull();
|
assetListGrid.setSizeFull();
|
||||||
|
|
||||||
this.addComponent(assetListGrid);
|
this.addComponent(assetListGrid);
|
||||||
editRow.addClickListener(clickEvent -> {
|
editRow.addClickListener(clickEvent -> {
|
||||||
Asset selected = (Asset) assetListGrid.getSelectedRow();
|
Set<Map<String, String>> selectedElements = assetListGrid.getSelectedItems();
|
||||||
if (selected != null) {
|
if (selectedElements.toArray().length > 0) {
|
||||||
ProjectResponse response = (ProjectResponse) spaceSelection.getValue();
|
String assetName = ((Map<String, String>) selectedElements.toArray()[0]).get("title");
|
||||||
AssetEditView assetEditView = new AssetEditView(userConnected, response.getSpaceName(), response.getName(), selected);
|
if (assetName != null) {
|
||||||
UI.getCurrent().getNavigator().addView("Asset-" + selected.getTitle(), assetEditView);
|
ProjectResponse response = (ProjectResponse) spaceSelection.getValue();
|
||||||
UI.getCurrent().getNavigator().navigateTo("Asset-" + selected.getTitle());
|
AssetEditView assetEditView = new AssetEditView(userConnected, response.getSpaceName(), response.getName(), assetName);
|
||||||
|
UI.getCurrent().getNavigator().addView("Asset-" + assetName, assetEditView);
|
||||||
|
UI.getCurrent().getNavigator().navigateTo("Asset-" + assetName);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -125,15 +102,14 @@ public class TableLikeArtefactView extends VerticalLayout implements AddLog, Vie
|
||||||
|
|
||||||
|
|
||||||
public void refreshList() {
|
public void refreshList() {
|
||||||
spaceContainer.removeAllItems();
|
spaceSelection.setItems(userConnected.getProjectResponses());
|
||||||
spaceContainer.addAll(userConnected.getProjectResponses());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void enter(ViewChangeListener.ViewChangeEvent viewChangeEvent) {
|
public void enter(ViewChangeListener.ViewChangeEvent viewChangeEvent) {
|
||||||
spaceContainer.removeAllItems();
|
spaceSelection.setItems(userConnected.getProjectResponses());
|
||||||
spaceContainer.addAll(userConnected.getProjectResponses());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
/* This file is automatically managed and will be overwritten from time to time. */
|
||||||
|
/* Do not manually edit this file. */
|
||||||
|
|
||||||
|
/* Import and include this mixin into your project theme to include the addon themes */
|
||||||
|
@mixin addons {
|
||||||
|
}
|
||||||
|
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 30 KiB |
|
|
@ -0,0 +1,30 @@
|
||||||
|
// If you edit this file you need to compile the theme. See README.md for details.
|
||||||
|
// Global variable overrides. Must be declared before importing Valo.
|
||||||
|
// Defines the plaintext font size, weight and family. Font size affects general component sizing.
|
||||||
|
//$v-font-size: 16px;
|
||||||
|
//$v-font-weight: 300;
|
||||||
|
//$v-font-family: "Open Sans", sans-serif;
|
||||||
|
// Defines the border used by all components.
|
||||||
|
//$v-border: 1px solid (v-shade 0.7);
|
||||||
|
//$v-border-radius: 4px;
|
||||||
|
// Affects the color of some component elements, e.g Button, Panel title, etc
|
||||||
|
//$v-background-color: hsl(210, 0%, 98%);
|
||||||
|
// Affects the color of content areas, e.g Panel and Window content, TextField input etc
|
||||||
|
//$v-app-background-color: $v-background-color;
|
||||||
|
// Affects the visual appearance of all components
|
||||||
|
//$v-gradient: v-linear 8%;
|
||||||
|
//$v-bevel-depth: 30%;
|
||||||
|
//$v-shadow-opacity: 5%;
|
||||||
|
// Defines colors for indicating status (focus, success, failure)
|
||||||
|
//$v-focus-color: valo-focus-color(); // Calculates a suitable color automatically
|
||||||
|
//$v-friendly-color: #2c9720;
|
||||||
|
//$v-error-indicator-color: #ed473b;
|
||||||
|
// For more information, see: https://vaadin.com/book/-/page/themes.valo.html
|
||||||
|
// Example variants can be copy/pasted from https://vaadin.com/wiki/-/wiki/Main/Valo+Examples
|
||||||
|
@import "../valo/valo.scss";
|
||||||
|
|
||||||
|
@mixin mytheme {
|
||||||
|
@include valo;
|
||||||
|
|
||||||
|
// Insert your own theme rules here
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
@import "mytheme.scss";
|
||||||
|
@import "addons.scss";
|
||||||
|
|
||||||
|
// This file prefixes all rules with the theme name to avoid causing conflicts with other themes.
|
||||||
|
// The actual styles should be defined in mytheme.scss
|
||||||
|
|
||||||
|
.mytheme {
|
||||||
|
@include addons;
|
||||||
|
@include mytheme;
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
Add table
editor.link_modal.header
Reference in a new issue