private boolean readOnly = false;
private boolean immediate = false;
private String style = "";
+ private boolean disabled = false;
- // TODO more fields to move here: disabled, caption and description
+ // TODO more fields to move here: caption and description
/**
* Returns the component height as set by the server.
/**
* Returns true if the component is in read-only mode.
*
- * @see Component.isReadOnly()
+ * @see com.vaadin.ui.Component#isReadOnly()
*
* @return true if the component is in read-only mode
*/
/**
* Sets or resets the read-only mode for a component.
*
- * @see Component.setReadOnly()
+ * @see com.vaadin.ui.Component#setReadOnly()
*
* @param readOnly
* new mode for the component
/**
* Returns true if the component is in immediate mode.
*
- * @see VariableOwner.isImmediate()
+ * @see com.vaadin.terminal.VariableOwner#isImmediate()
*
* @return true if the component is in immediate mode
*/
/**
* Sets or resets the immediate mode for a component.
*
- * @see VariableOwner.setImmediate()
+ * @see com.vaadin.terminal.VariableOwner#setImmediate()
*
* @param immediate
* new mode for the component
return !"".equals(getStyle());
}
+ /**
+ * Returns true if the component is disabled.
+ *
+ * @see com.vaadin.ui.Component#isEnabled()
+ *
+ * @return true if the component is disabled
+ */
+ public boolean isDisabled() {
+ return disabled;
+ }
+
+ /**
+ * Disables or enables the component.
+ *
+ * @see com.vaadin.ui.Component#setEnabled(boolean)
+ *
+ * @param disabled
+ * new mode for the component
+ */
+ public void setDisabled(boolean disabled) {
+ this.disabled = disabled;
+ }
+
}
style += " " + CLASSNAME + "-" + styles[i];
}
}
- if (uidl.hasAttribute(VAbstractPaintableWidget.ATTRIBUTE_DISABLED)) {
+ if (owner.getState().isDisabled()) {
style += " " + ApplicationConnection.DISABLED_CLASSNAME;
}
setStyleName(style);
}
@Deprecated
- public void updateCaptionWithoutOwner(UIDL uidl) {
+ public void updateCaptionWithoutOwner(boolean disabled,
+ boolean hasDescription) {
// TODO temporary method, needed because some tabsheet and accordion
// internal captions do not have an owner or shared state.
// Remaining such cases do not use the "style" attribute - see
// Tabsheet.paintContent().
String style = VCaption.CLASSNAME;
- if (uidl.hasAttribute(VAbstractPaintableWidget.ATTRIBUTE_DISABLED)) {
+ if (disabled) {
style += " " + ApplicationConnection.DISABLED_CLASSNAME;
}
setStyleName(style);
- boolean hasDescription = uidl
- .hasAttribute(VAbstractPaintableWidget.ATTRIBUTE_DESCRIPTION);
if (hasDescription) {
if (captionText != null) {
addStyleDependentName("hasdescription");
public static final String ATTRIBUTE_REQUIRED = "required";
public static final String ATTRIBUTE_ERROR = "error";
public static final String ATTRIBUTE_HIDEERRORS = "hideErrors";
- public static final String ATTRIBUTE_DISABLED = "disabled";
private Widget widget;
private ApplicationConnection connection;
((Focusable) getWidgetForPaintable()).setTabIndex(uidl
.getIntAttribute("tabindex"));
}
- setEnabled(!uidl.getBooleanAttribute(ATTRIBUTE_DISABLED));
+ setEnabled(!getState().isDisabled());
// Style names
String styleName = getStyleNameFromUIDL(getWidgetForPaintable()
*/
protected static String getStyleNameFromUIDL(String primaryStyleName,
UIDL uidl, ComponentState state, boolean field) {
- boolean enabled = !uidl.getBooleanAttribute(ATTRIBUTE_DISABLED);
+ boolean enabled = !state.isDisabled();
StringBuffer styleBuf = new StringBuffer();
styleBuf.append(primaryStyleName);
getWidgetForPaintable().rendering = false;
return;
}
- getWidgetForPaintable().setEnabled(
- !uidl.getBooleanAttribute(ATTRIBUTE_DISABLED));
+ getWidgetForPaintable().setEnabled(!getState().isDisabled());
clickEventHandler.handleEventHandlerRegistration(client);
if (getState().hasStyles()) {
public void updateCaption(UIDL uidl) {
caption.updateCaption(uidl);
// TODO required because the caption does not have an owner
- caption.updateCaptionWithoutOwner(uidl);
+ caption.updateCaptionWithoutOwner(
+ uidl.hasAttribute(VTabsheetBasePaintable.ATTRIBUTE_TAB_DISABLED),
+ uidl.hasAttribute(VTabsheetBasePaintable.ATTRIBUTE_TAB_DESCRIPTION));
}
public int getWidgetWidth() {
getWidgetForPaintable().immediate = getState().isImmediate();
getWidgetForPaintable().readonly = getState().isReadOnly();
- getWidgetForPaintable().enabled = !uidl
- .getBooleanAttribute(ATTRIBUTE_DISABLED);
+ getWidgetForPaintable().enabled = !getState().isDisabled();
if (uidl.hasAttribute("locale")) {
final String locale = uidl.getStringAttribute("locale");
getWidgetForPaintable().paintableId = uidl.getId();
getWidgetForPaintable().readonly = getState().isReadOnly();
- getWidgetForPaintable().enabled = !uidl
- .hasAttribute(ATTRIBUTE_DISABLED);
+ getWidgetForPaintable().enabled = !getState().isDisabled();
getWidgetForPaintable().tb.setEnabled(getWidgetForPaintable().enabled);
getWidgetForPaintable().updateReadOnly();
}
/**
- * Parses the stylenames from an uidl
+ * Parses the stylenames from shared state
*
- * @param uidl
- * The uidl to get the stylenames from
* @param state
* shared state of the component
* @return An array of stylenames
*/
- private String[] getStylesFromUIDL(UIDL uidl, ComponentState state) {
+ private String[] getStylesFromState(ComponentState state) {
List<String> styles = new ArrayList<String>();
if (state.hasStyles()) {
String[] stylesnames = state.getStyle().split(" ");
}
}
- if (uidl.hasAttribute(VAbstractPaintableWidget.ATTRIBUTE_DISABLED)) {
+ if (state.isDisabled()) {
styles.add(ApplicationConnection.DISABLED_CLASSNAME);
}
setVisible(!uidl.getBooleanAttribute("invisible"));
// Update styles as they might have changed when the caption changed
- setStyles(getStylesFromUIDL(uidl, state));
+ setStyles(getStylesFromState(state));
boolean isEmpty = true;
getWidgetForPaintable().client = client;
- getWidgetForPaintable().enabled = uidl.hasAttribute(ATTRIBUTE_DISABLED) ? false
- : true;
+ getWidgetForPaintable().enabled = !getState().isDisabled();
getWidgetForPaintable().readonly = getState().isReadOnly();
if (uidl.hasAttribute("name")) {
public static final String ATTRIBUTE_CHECKED = "checked";
public static final String ATTRIBUTE_ITEM_DESCRIPTION = VAbstractPaintableWidget.ATTRIBUTE_DESCRIPTION;
public static final String ATTRIBUTE_ITEM_ICON = VAbstractPaintableWidget.ATTRIBUTE_ICON;
- public static final String ATTRIBUTE_ITEM_DISABLED = VAbstractPaintableWidget.ATTRIBUTE_DISABLED;
+ public static final String ATTRIBUTE_ITEM_DISABLED = "disabled";
public static final String ATTRIBUTE_ITEM_STYLE = "style";
public static final String HTML_CONTENT_ALLOWED = "usehtml";
getWidgetForPaintable().openRootOnHover = uidl
.getBooleanAttribute(VMenuBar.OPEN_ROOT_MENU_ON_HOWER);
- getWidgetForPaintable().enabled = !uidl
- .getBooleanAttribute(ATTRIBUTE_DISABLED);
+ getWidgetForPaintable().enabled = !getState().isDisabled();
// For future connections
getWidgetForPaintable().client = client;
public static final String CLASSNAME = "v-select-optiongroup";
- public static final String ATTRIBUTE_OPTION_DISABLED = VAbstractPaintableWidget.ATTRIBUTE_DISABLED;
+ public static final String ATTRIBUTE_OPTION_DISABLED = "disabled";
protected final Panel panel;
.getStringArrayVariableAsSet("selected");
getWidgetForPaintable().readonly = getState().isReadOnly();
- getWidgetForPaintable().disabled = uidl
- .getBooleanAttribute(ATTRIBUTE_DISABLED);
+ getWidgetForPaintable().disabled = getState().isDisabled();
getWidgetForPaintable().multiselect = "multi".equals(uidl
.getStringAttribute("selectmode"));
getWidgetForPaintable().immediate = getState().isImmediate();
if (getWidgetForPaintable().indeterminate) {
String basename = VProgressIndicator.CLASSNAME + "-indeterminate";
getWidgetForPaintable().addStyleName(basename);
- if (uidl.getBooleanAttribute(ATTRIBUTE_DISABLED)) {
+ if (getState().isDisabled()) {
getWidgetForPaintable().addStyleName(basename + "-disabled");
} else {
getWidgetForPaintable().removeStyleName(basename + "-disabled");
}
}
- if (!uidl.getBooleanAttribute(ATTRIBUTE_DISABLED)) {
+ if (!getState().isDisabled()) {
getWidgetForPaintable().interval = uidl
.getIntAttribute("pollinginterval");
getWidgetForPaintable().poller
return;
}
- getWidgetForPaintable().enabled = !uidl
- .hasAttribute(ATTRIBUTE_DISABLED);
+ getWidgetForPaintable().enabled = !getState().isDisabled();
if (BrowserInfo.get().isIE8() && !getWidgetForPaintable().enabled) {
/*
}
getWidgetForPaintable().immediate = getState().isImmediate();
- getWidgetForPaintable().disabled = uidl
- .getBooleanAttribute(ATTRIBUTE_DISABLED);
+ getWidgetForPaintable().disabled = getState().isDisabled();
getWidgetForPaintable().readonly = getState().isReadOnly();
getWidgetForPaintable().vertical = uidl.hasAttribute("vertical");
boolean ret = super.updateCaption(uidl);
// TODO required because the caption does not have an owner
- updateCaptionWithoutOwner(uidl);
+ updateCaptionWithoutOwner(
+ uidl.hasAttribute(VTabsheetBasePaintable.ATTRIBUTE_TAB_DISABLED),
+ uidl.hasAttribute(VTabsheetBasePaintable.ATTRIBUTE_TAB_DESCRIPTION));
setClosable(uidl.hasAttribute("closable"));
public abstract class VTabsheetBasePaintable extends
VAbstractPaintableWidgetContainer {
- // this needs to match ATTRIBUTE_DISABLED as it is used in building captions
- public static final String ATTRIBUTE_TAB_DISABLED = VAbstractPaintableWidget.ATTRIBUTE_DISABLED;
+ public static final String ATTRIBUTE_TAB_DISABLED = "disabled";
+ // TODO currently, this needs to match ATTRIBUTE_DESCRIPTION as also used in
+ // captions
+ public static final String ATTRIBUTE_TAB_DESCRIPTION = VAbstractPaintableWidget.ATTRIBUTE_DESCRIPTION;
@Override
public void updateFromUIDL(UIDL uidl, ApplicationConnection client) {
// Update member references
getWidgetForPaintable().id = uidl.getId();
- getWidgetForPaintable().disabled = uidl
- .hasAttribute(ATTRIBUTE_DISABLED);
+ getWidgetForPaintable().disabled = getState().isDisabled();
// Render content
final UIDL tabs = uidl.getChildUIDL(0);
getWidgetForPaintable().immediate = getState().isImmediate();
- getWidgetForPaintable().disabled = uidl
- .getBooleanAttribute(ATTRIBUTE_DISABLED);
+ getWidgetForPaintable().disabled = getState().isDisabled();
getWidgetForPaintable().readonly = getState().isReadOnly();
getWidgetForPaintable().dragMode = uidl.hasAttribute("dragMode") ? uidl
getWidgetForPaintable().fu.setName(getWidgetForPaintable().paintableId
+ "_file");
- if (uidl.hasAttribute(ATTRIBUTE_DISABLED) || getState().isReadOnly()) {
+ if (getState().isDisabled() || getState().isReadOnly()) {
getWidgetForPaintable().disableUpload();
} else if (!uidl.getBooleanAttribute("state")) {
// Enable the button only if an upload is not in progress
}
}
if (isRealUpdate(uidl)) {
- getWidgetForPaintable().setEnabled(
- !uidl.getBooleanAttribute(ATTRIBUTE_DISABLED));
+ getWidgetForPaintable().setEnabled(!getState().isDisabled());
}
super.updateFromUIDL(uidl, client);
// TODO probably can remove some of these (caption, icon, ...)
// once all the VCaption related code has been updated
- if (!isEnabled()) {
- target.addAttribute(
- VAbstractPaintableWidget.ATTRIBUTE_DISABLED, true);
- }
if (getCaption() != null) {
target.addAttribute(
VAbstractPaintableWidget.ATTRIBUTE_CAPTION,
sharedState.setImmediate(isImmediate());
sharedState.setReadOnly(isReadOnly());
+ sharedState.setDisabled(!isEnabled());
sharedState.setStyle(getStyleName());
// TODO use the rest on the client side
- // TODO icon also in shared state - how to convert Resource?
// sharedState.setCaption(getCaption());
- // if (!isEnabled()) {
- // state.put(ComponentState.STATE_DISABLED, true);
- // }
- // // TODO add icon (Resource)
+ // // TODO icon also in shared state - how to convert Resource?
// if (getDescription() != null && getDescription().length() > 0) {
// state.put(ComponentState.STATE_DESCRIPTION, getDescription());
// }
final String description = tab.getDescription();
if (description != null) {
- target.addAttribute("description", description);
+ target.addAttribute(
+ VTabsheetBasePaintable.ATTRIBUTE_TAB_DESCRIPTION,
+ description);
}
final ErrorMessage componentError = tab.getComponentError();