use of org.drools.workbench.screens.scenariosimulation.client.models.AbstractScesimGridModel in project drools-wb by kiegroup.
the class ScenarioGrid method setHeaderColumn.
protected void setHeaderColumn(int columnIndex, FactMapping factMapping, boolean editableHeaders) {
final FactIdentifier factIdentifier = factMapping.getFactIdentifier();
String columnId = factMapping.getExpressionIdentifier().getName();
String instanceTitle = factMapping.getFactAlias();
String propertyTitle = factMapping.getExpressionAlias();
String columnGroup = factMapping.getExpressionIdentifier().getType().name();
boolean isInstanceAssigned = isInstanceAssigned(factIdentifier);
boolean isPropertyAssigned = isPropertyAssigned(isInstanceAssigned, factMapping);
String placeHolder = getPlaceHolder(isInstanceAssigned, isPropertyAssigned, factMapping.getFactMappingValueType(), factMapping.getClassName());
ScenarioGridColumn scenarioGridColumn = getScenarioGridColumnLocal(instanceTitle, propertyTitle, columnId, columnGroup, factMapping.getExpressionIdentifier().getType(), placeHolder);
scenarioGridColumn.setInstanceAssigned(isInstanceAssigned);
scenarioGridColumn.setPropertyAssigned(isPropertyAssigned);
scenarioGridColumn.setFactIdentifier(factIdentifier);
scenarioGridColumn.setEditableHeaders(editableHeaders);
if (FactMappingType.OTHER.equals(factMapping.getExpressionIdentifier().getType())) {
scenarioGridColumn.setColumnWidthMode(ColumnWidthMode.FIXED);
scenarioGridColumn.setMinimumWidth(scenarioGridColumn.getWidth());
}
if (isPropertyAssigned) {
BaseSingletonDOMElementFactory factory = ((AbstractScesimGridModel) model).getDOMElementFactory(factMapping.getClassName(), type, factMapping.getFactMappingValueType());
scenarioGridColumn.setFactory(factory);
}
((AbstractScesimGridModel) model).insertColumnGridOnly(columnIndex, scenarioGridColumn);
}
use of org.drools.workbench.screens.scenariosimulation.client.models.AbstractScesimGridModel in project drools-wb by kiegroup.
the class CollectionEditorSingletonDOMElementFactory method createDomElement.
@Override
public CollectionEditorDOMElement createDomElement(final GridLayer gridLayer, final GridWidget gridWidget) {
if (this.widget != null) {
this.widget.close();
}
this.widget = createWidget();
/* Don't propagate MouseWheel and RightClick events to the Grid */
this.widget.addDomHandler(MouseWheelEvent::stopPropagation, MouseWheelEvent.getType());
this.widget.addDomHandler(event -> {
event.stopPropagation();
event.preventDefault();
}, ContextMenuEvent.getType());
this.widget.addDomHandler(ClickEvent::stopPropagation, ClickEvent.getType());
this.widget.addDomHandler(KeyDownEvent::stopPropagation, KeyDownEvent.getType());
final AbstractScesimGridModel<? extends AbstractScesimModel, ? extends AbstractScesimData> model = ((ScenarioGrid) gridWidget).getModel();
final GridData.SelectedCell selectedCellsOrigin = model.getSelectedCellsOrigin();
final Optional<GridColumn<?>> selectedColumn = model.getColumns().stream().filter(col -> col.getIndex() == selectedCellsOrigin.getColumnIndex()).findFirst();
selectedColumn.ifPresent(col -> {
final int actualIndex = model.getColumns().indexOf(col);
final FactMapping factMapping = model.getAbstractScesimModel().get().getScesimModelDescriptor().getFactMappingByIndex(actualIndex);
setCollectionEditorStructureData(this.widget, factMapping);
this.e = createDomElementInternal(widget, gridLayer, gridWidget);
});
return e;
}
use of org.drools.workbench.screens.scenariosimulation.client.models.AbstractScesimGridModel in project drools-wb by kiegroup.
the class AbstractDataManagementStrategy method getPropertiesToHide.
/**
* This method returns a <code>List</code> with the properties of a given <b>Type</b> (Fact, class, other dmn defined) instance,
* to be hidden from the right panel for the selected column.
* <p>
* If click happen on an already assigned property, <b>all</b> all the properties of given type should be shown;
* if, instead, click is on an unassigned property, the already assigned properties must be hidden.
* (e.g. inside GIVEN there is an "Author" group; if clicking on "books" property header, this method returns an <b>empty</b> <code>List</code>;
* if click is on an unassigned property column, this method returns a <code>List</code>.
* with all the <b>already assigned</b> Author's properties)
* @param selectedColumn
* @param abstractScesimGridModel
* @return
*/
protected <T extends AbstractScesimModel<E>, E extends AbstractScesimData> List<List<String>> getPropertiesToHide(ScenarioGridColumn selectedColumn, AbstractScesimGridModel<T, E> abstractScesimGridModel) {
List<List<String>> toReturn = new ArrayList<>();
if (!selectedColumn.isPropertyAssigned()) {
abstractScesimGridModel.getAbstractScesimModel().ifPresent(simulation -> {
final ScesimModelDescriptor simulationDescriptor = simulation.getScesimModelDescriptor();
List<ScenarioGridColumn> instanceColumns = abstractScesimGridModel.getInstanceScenarioGridColumns(selectedColumn);
toReturn.addAll(instanceColumns.stream().filter(ScenarioGridColumn::isPropertyAssigned).map(instanceColumn -> abstractScesimGridModel.getColumns().indexOf(instanceColumn)).map(columnIndex -> {
List<String> propertyNameElements = simulationDescriptor.getFactMappingByIndex(columnIndex).getExpressionElementsWithoutClass().stream().map(ExpressionElement::getStep).collect(Collectors.toList());
if (propertyNameElements.isEmpty()) {
propertyNameElements.add(VALUE);
}
return Collections.unmodifiableList(propertyNameElements);
}).collect(Collectors.toList()));
});
}
return toReturn;
}
Aggregations