private void setupTableHeaders(boolean includeMappingColumn) { Label defsLabel = new Label(definitionsLabel); defsLabel.setStyleName(style.definitionHeader()); table.setWidget(0, 0, defsLabel); table.getFlexCellFormatter().setColSpan(0, 0, includeMappingColumn ? 2 : 4); table.getFlexCellFormatter().setStyleName(0, 0, style.headerCell()); if (includeMappingColumn) { Label tarsLabel = new Label(targetsLabel); tarsLabel.setStyleName(style.targetHeader()); table.setWidget(0, 1, tarsLabel); table.getFlexCellFormatter().setColSpan(0, 1, 2); table.getFlexCellFormatter().setStyleName(0, 1, style.headerCell()); } }
public DefinitionsMappingPanel( DefinitionWidgetProvider<T> widgetProvider, String definitionsLabel, String targetsLabel, boolean includeTargetColumn) { this.widgetProvider = widgetProvider; this.definitionsLabel = definitionsLabel; this.targetsLabel = targetsLabel; this.includeTargetColumn = includeTargetColumn; container = new SimplePanel(); table = new FlexTable(); table.setCellPadding(5); table.setCellSpacing(5); table.setStyleName(style.table()); setupLoadingContainer(); container.setWidget(table); initWidget(container); }
/** {@inheritDoc} */ @SuppressWarnings("unchecked") public void setMappings(List<DefinitionMapping> mappings) { table.removeAllRows(); definitionsPanels.clear(); includeCheckBoxes.clear(); targetWidgets.clear(); definitions.clear(); setupTableHeaders(includeTargetColumn); table.getColumnFormatter().setWidth(DEFINITION_COLUMN, "100%"); // table.getColumnFormatter().setWidth(ARROW_COLUMN, "70px"); if (mappings.isEmpty()) { Label noAttributesLabel = new Label("No attributes or links"); table.setWidget(1, 0, noAttributesLabel); table.getFlexCellFormatter().setColSpan(1, 0, includeTargetColumn ? 3 : 4); table.getFlexCellFormatter().setStyleName(1, 0, style.emptyCell()); } else { FlexCellFormatter cellFormatter = table.getFlexCellFormatter(); for (DefinitionMapping mapping : mappings) { final int row = table.getRowCount(); UIDefinition definition = mapping.getDefinition(); definitions.add(definition); DefinitionPanel definitionPanel = new DefinitionPanel(); definitionPanel.setDefinition(definition); definitionPanel.setEnabled(mapping.isMapped()); definitionsPanels.add(definitionPanel); table.setWidget(row, DEFINITION_COLUMN, definitionPanel); cellFormatter.setVerticalAlignment( row, DEFINITION_COLUMN, HasVerticalAlignment.ALIGN_MIDDLE); final SimpleCheckBox includeCheckBox = new SimpleCheckBox(); includeCheckBox.setStyleName( CommonResources.INSTANCE.css().simpleCheckbox() + " " + style.checkbox()); includeCheckBox.addClickHandler( new ClickHandler() { @Override public void onClick(ClickEvent event) { setInclude(row, includeCheckBox.getValue()); } }); includeCheckBox.setValue(mapping.isMapped()); table.setWidget(row, INCLUDE_COLUMN, includeCheckBox); cellFormatter.setVerticalAlignment(row, INCLUDE_COLUMN, HasVerticalAlignment.ALIGN_MIDDLE); includeCheckBoxes.add(includeCheckBox); Widget targetWidget = widgetProvider.getTargetWidget((T) mapping.getTarget()); if (targetWidget != null) { Image arrow = new Image(Resources.INSTANCE.arrow()); arrow.setStyleName(style.arrow()); table.setWidget(row, ARROW_COLUMN, arrow); cellFormatter.setVerticalAlignment(row, ARROW_COLUMN, HasVerticalAlignment.ALIGN_MIDDLE); // table.getCellFormatter().setWidth(row, ARROW_COLUMN, "60px"); table.getCellFormatter().setHeight(row, ARROW_COLUMN, "40px"); widgetProvider.include(targetWidget, mapping.isMapped()); table.setWidget(row, TARGET_COLUMN, targetWidget); cellFormatter.setVerticalAlignment(row, TARGET_COLUMN, HasVerticalAlignment.ALIGN_MIDDLE); targetWidgets.add(targetWidget); } } } }