Browse Source

Revert multi select using state change

tags/8.1.0.alpha1
Teemu Suo-Anttila 7 years ago
parent
commit
6e8e010356

+ 2
- 2
compatibility-client/src/main/java/com/vaadin/v7/client/ui/optiongroup/OptionGroupBaseConnector.java View File

@@ -43,8 +43,8 @@ public abstract class OptionGroupBaseConnector extends AbstractFieldConnector
getWidget().selectedKeys = uidl.getStringArrayVariableAsSet("selected");

getWidget().setReadonly(isReadOnly());
// Intentional change to use state over UIDL in compatibility package
getWidget().multiselect = getState().multiSelect;
getWidget().multiselect = "multi"
.equals(uidl.getStringAttribute("selectmode"));
getWidget().immediate = getState().immediate;
getWidget().nullSelectionAllowed = uidl
.getBooleanAttribute("nullselect");

+ 12
- 4
compatibility-server/src/main/java/com/vaadin/v7/ui/AbstractSelect.java View File

@@ -220,6 +220,11 @@ public abstract class AbstractSelect extends AbstractField<Object> implements

}

/**
* Is the select in multiselect mode?
*/
private boolean multiSelect = false;

/**
* Select options.
*/
@@ -354,6 +359,9 @@ public abstract class AbstractSelect extends AbstractField<Object> implements
public void paintContent(PaintTarget target) throws PaintException {

// Paints select attributes
if (isMultiSelect()) {
target.addAttribute("selectmode", "multi");
}
if (isNewItemsAllowed()) {
target.addAttribute("allownewitem", true);
}
@@ -1097,7 +1105,7 @@ public abstract class AbstractSelect extends AbstractField<Object> implements
* @return the Value of property multiSelect.
*/
public boolean isMultiSelect() {
return getState(false).multiSelect;
return multiSelect;
}

/**
@@ -1116,12 +1124,12 @@ public abstract class AbstractSelect extends AbstractField<Object> implements
throw new IllegalStateException(
"Multiselect and NullSelectionItemId can not be set at the same time.");
}
if (multiSelect != getState(false).multiSelect) {
if (multiSelect != this.multiSelect) {

// Selection before mode change
final Object oldValue = getValue();

getState().multiSelect = multiSelect;
this.multiSelect = multiSelect;

// Convert the value type
if (multiSelect) {
@@ -1789,7 +1797,7 @@ public abstract class AbstractSelect extends AbstractField<Object> implements
*/
@Override
public boolean isEmpty() {
if (!isMultiSelect()) {
if (!multiSelect) {
return super.isEmpty();
} else {
Object value = getValue();

+ 0
- 8
compatibility-shared/src/main/java/com/vaadin/v7/shared/ui/select/AbstractSelectState.java View File

@@ -27,12 +27,4 @@ public class AbstractSelectState extends AbstractFieldState {
{
primaryStyleName = "v-select";
}

/**
* Is the select in multiselect mode?
*
* Note that Table and Tree still use the old communication mechanism for
* multi-mode support.
*/
public boolean multiSelect;
}

Loading…
Cancel
Save